Chaos Engineering
翻译过来就是混沌工程,什么是混沌呢?未知、随机、不可预测等。简单来说就是随机而来的故障会给系统带来巨大的风险,从而给公司造成巨大损失。当机器与业务到达一定规模后,故障是大概率而不是小概率。

望文生义就是“无服务器”的意思。无服务器不是真的没有服务器,而是不用关心物理服务器。因为云厂商会解决服务器的问题,他们为开发者提供一些无状态的容器,开发者可以在其中运行自己的逻辑。
Serverless在某种场景下更进一步的解放了开发者,使其更加关心业务逻辑而不是运维,而且无状态的容器可以提供极大的扩展性,这是云所擅长的,不过托管的部分及其依赖云平台,如果从一个云厂商切换到另外一个云厂商成本还比较高。
Serverless有两个基本的应用特征:BaaS(Backend as a Service,后端即服务)和FaaS(Function as a Service,函数即服务)。符合这两个基本特征的应用可称为Serverless应用。其中BaaS是指云厂商提供的对象存储与数据库存储等服务,而开发者自己写的基于云厂商的容器的逻辑就是FaaS。
进公司六年多了,刚开始的时候参加过一些培训课程,但是感觉收获都不是很大,可能我自己不太适合培训这种方式吧,所以渐渐的都不去参加了。公司有两门非常热门的课程叫《五星级沟通》与《金字塔思维》,陆陆续续听到有些同事去听这两门课程,搞得自己也忍不住想去听一下,所以就都报名了。因为太火爆了,所以根据报名情况进行排队在,直到今天才去学习了《五星级沟通》。下面对今天的学习进行总结下,也算是复习了。
人最重要的属性是社会性,社会性就是指人不是孤立存在的,他是需要与周围的人交流互动进而产生一定关系的。所以沟通就是最常见也最必不可少的方式了。参加课程前我只知道沟通的学问很多,因为无论在生活中还是在工作中,总会有人沟通起来很顺畅,有些人沟通起来很费劲,这里面一定有些门道。那怎么样才能做好沟通呢?
在我们的工作中,经常会遇到需要生成ID的场景,比如全链路日志中标识唯一请求或者说唯一链路的ID,用户注册过程中给用户分配的唯一账号ID,交易过程中的幂等值等。下面就说说几种常见的ID生成方法,也就是Id Maker的实现方案。
我们很容易的想到,数据库中auto increment就是为了生成唯一主键ID的,而且数据库的ACID特性,保证该过程肯定是原子的,原子的意思就是不会有ID冲突即有两个ID生成的一模一样。该方法对于生成ID不是很频繁的场景还是比较适用的,一般是生成请求在几千次/s的情况下。
redis有个incrby的命令,通用点的叫法就是计数器,其实这种思路与mysql的自增并没有什么分别,不过因为存储方式的原因,使用redis做id maker可以在单位时间内生成更多的ID,redis的性能都是10W/s的。不过使用redis没有使用mysql那么简单,它需要在业务层面做一些保护。