Everything you care about in one place

Follow feeds: blogs, news, RSS and more. An effortless way to read and digest content of your choice.

Get Feeder

raychase.net

四火的唠叨

Get the latest updates from 四火的唠叨 directly as they happen.

Follow now 87 followers

Latest posts

Last updated 4 days ago

OAuth2.0 的几种授权流程

4 days ago

首先,从高维度看,OAuth 是要解决什么问题? OAuth 要解决的是客户端在不知道和不使用用户密码的情况下,怎么样安全访问并获取用户所拥有的资源的问题。 顺带说一句,经常和 OAuth 一起谈到的 OIDC 则是解决了用户信息(profile)获取的问题。简单说,OAuth 解决了 Authorization 的问题,OIDC...

初涉 ML Workflow 系统:Kubeflow Pipelines、Flyte 和 Metaflow

2 months ago

入职 Coupang 两个月了,第一个月主要上手和开发 BOS(Business Operating System)系统,第二个月开始调研选型 ML Workflow 平台。前者目前来说相对比较简单,后者对我来说是一个新坑,也比较有意思,随便写写技术上的体会。 先扯点题外话,其实这次求职有几个比较符合我预期的机会,可在思考之后,我基本上毫不犹豫就选择了 Coupang 这一家。最主要的原因,并非因为雇主,而是因为要做的事情。一个相当规模的团队,在大干一场的早期阶段,要在搭建起属于自己相当规模的...

关于近期求职的近况和思考

5 months ago

自去年秋天裸辞之后,一直在考虑职业生涯的问题。之后加入求职大军,目前进展还算顺利,作为软件工程师的下一站也将很快确定下来。但是这一次的 career break,虽说时间不算长,却给了我莫大的启发,我也有了一些思考。 从 fullstack engineer 到 platform engineer 其实在年初的时候就简要叙述过这个事情。熟悉我的朋友都知道,我的职业生涯有点奇怪,从 Huawei 开始,我是一个全栈工程师(fullstack...

聊一聊分布式系统中的时间

9 months ago

今天聊一下时间的话题。在分布式系统中,“时间” 是一个挺有趣,但是很难处理的东西。我把自己的理解简单整理下来。 不可靠的物理时钟 首先,单一节点的物理时钟是不可靠的。 物理时钟本身就有偏差,可是除此之外,可以引起节点物理时钟不准确的原因太多了,比如 clock jump。考虑到 NTP 协议,它基于 UDP 通信,可以从权威的时钟源获取信息,进行自动的时间同步,???就可能会发生 clock...

本地部署 Minikube + Docker 记录

10 months ago

我有 Mac 和 Windows,这些年折腾软件方面的环境 Linux 用得比较多,最近想安装一个 Kubernetes 的本地环境,本着 “生命不息,折腾不止” 的精神,打算在 Windows 上动手。了解到可以尝试...

几个有意思的分布式系统设计模式

10 months ago

分布式系统有它特有的设计模式,无论意识到还是没有意识到,我们都会接触很多,网上这方面的材料不少,比如 《Catalog of Patterns of Distributed Systems》,还有 《Cloud Design Patterns》等等。这里通过记录一些典型系统的方式,简单谈谈几个我接触过的,也觉得比较有意思的模式。 LSM Tree...

谈谈分布式锁

11 months ago

不要使用分布式锁 就像 Martin Fowler 说的那样,“分布式调用的第一原则就是不要分布式”,谈分布式锁也要先说,不要使用分布式锁。原因很简单,分布式系统是软件系统中复杂的一种形式,而分布式锁是分布式系统中复杂的一种形式,没有必要的复杂性就不要引入。 有的逻辑是没有副作用的(纯函数代码),那就可以无锁执行;有的数据经过合理的 sharding 之后,可以使用单线程(单节点)执行,那就单线程执行。 比如一种常见的模式就是使用 queue(比如 Kafka),任务全部放到队列中,然后根据 sharding...

我裸辞了

11 months ago

我裸辞了。 工作差不多十六年了,从来没有以离职后休假的方式休息过。今年还是比较特别的,我做了很多新的尝试,想改变一下自己,包括这最近发生的一件事情。事情发生得很快,我辞职了,在作为 engineer 加入 Doordash 一年零十个月后。 记录一下。 原因 我不是在二十岁的年纪,做决定容易缺乏思考,其实,我已经想了这件事情好久了。在这期间,我也和不同的朋友和同事讨论过,他们有的还在 Doordash,而有的也已经离开了。说起来,大致有三个原因: 第一个,是兴趣的不匹配。 郭德纲说过,如果你每天做的事情是你喜欢做的,那就是老天爷赏饭吃。这样的情况只在少数人身上发生,而我大致就是这样的少数人——不能说每天如此,但是在我职业生涯八成以上的时间,我工作做的事情,恰恰就是我喜欢做的。不过,今年我从一个做平台的...

入职后一些零散的感受和思考

over 2 years ago

有些时候自己会有一些想法,但是过于零散,想把它们记录下来,可是又找不到一个清晰脉络可以把它们串起来。入职已经两周了,我还记得快要五年前加入 Oracle 的时候,我也写了一篇类似零散的文字,不过那个时候是在入职一个月左右的时候。 Facebook 的唏嘘 我记得在五年前谈 offer 的时候,Facebook(现在改名叫 Meta 了)也给了 offer,他们的 recruiter...

近况更新:第三次换工作

over 2 years ago

最近发生了太多的事情,也没有更新 blog,来冒个泡。 我基本上是一个很长时间才会换一次工作的人,说好听点就是爱惜羽毛(工作经历),注重长期积累而非短期回报,说难听点那叫懒得动弹。 记得在 2012 年初的时候,我在人生中第一次换工作,从华为跳到亚马逊,那时候我已经在华为干了三年半了,其中的主要动机一个是想开阔眼界,另一个是可以不那么辛苦。 接着就是 2018 年初,在亚马逊干了六年之后,第二次换工作,从亚马逊跳到甲骨文,主要动机有两个,一个是我想在职业生涯有个突破,去参与云计算的浪潮;第二个是我觉得当时我的薪水已经严重偏离市场能给我的待遇了,所以想去谋取一份更合理的薪水。 这一次,在甲骨文干了 4 年...

常见分布式应用系统设计图解(十五):支付系统

almost 3 years ago

支付(Payment)系统可以很复杂,比如可以和银行打交道,和信用卡系统打交道。如果我们考虑用户在一家电商买东西,在结账的时候,借助电商支持的支付系统(Payment Service Provider)来完成支付行为。 支付系统需要结合商家(包含卖家和买家)一起来看。最典型的一种需求是,卖家在电商网站挂了东西卖,买家挑选了货物,结账并支付,电商依赖于支付系统来完成支付,并通知买家支付成功。 图中用两条虚线分隔出了 3 列,最左边是用户,中间是电商系统(比如 Amazon),右边是 Payment Service Provider(PSP,比如 PayPal)。支付操作需要保证幂等性,从而在重试的过程中保证不会被重复扣钱。有的电商自己会存储用户具体的支付信息,比如信用卡信息和银行账号信息,但是这样的数据管理成本由于安全需求的原因非常高,因此也有很多电商省掉这个麻烦,选择让...

常见分布式基础设施系统设计图解(八):分布式键值存储系统

almost 3 years ago

Key-value 存储系统大概是分布式存储系统中最常见的一种类型了。从功能需求的角度说,最核心的包括: 可以创建一张表和删除一张表,同时对于表的数据可以进行:读,即 get(key) 返回 value写,即 put(key, value) 当然,也有一些其它的功能需求,比如支持事务性,支持 key 排序查询,range key...