Computer-Science

用AWS EC2集成Argo Rollouts实现Canary部署

上一篇:用AWS EC2从零搭建Jenkins并实现GitOps CI/CD

在上一篇里,我们在 AWS EC2 上从无到有,搭建了 Jenkins 并结合 ArgoCD 实现了一个 GitOps CI/CD 工作流。 然而 ArgoCD 本身只具备基础的滚动部署(rolling update),对于 Canary 部署支持并不友好。要实现全自动、智能化、省心的 Canary 部署策略,我们需要借助 Argo Rollouts

...

用AWS EC2从零搭建Kubernetes和ArgoCD

在AWS上实现 Kubernetes 集群最简单的方法是走 EKS(Elastic Kubernetes Service)托管服务(managed service)。但后来发现 EKS 成本高昂,会有一笔跟 EC2 计算费用无关的起步价,仅仅来源于 EKS。为了学习(省钱),我们来用裸机 EC2 实例搭建 Kubernetes 集群,以及集成 ArgoCD 实现 CD (Continuous Deployment)。

...

AWS Well-Architected Framework

要用AWS搭建一个优秀的系统,根据官方资料和一些第三方讲义,我把要义总结为四个需求八个字:

安全可靠,物美价廉

可以用买房子来类比,四个需求的层级是不一样的。除此之外,还有两朵锦上添花,最后再议。

...

理解汉明码

汉明距离是两个等长字符串之间对应位置上不同字符的个数。在编码理论中,用来衡量两个码字之间的差异。 001101 的汉明距离是1。 对于一个码字间最短汉明距离为 m 的编码,它可以检测出 r 比特个错误只要满足以下关系:

1 + r ≤ m

...

一种处理 Golang 中链式通道的方法

当使用通道来串行化任务时,我们因此创建了一个异步流。在异步编程中很容易搞砸,尤其是有额外的要求时,比如超时和取消。 真实世界的例子,是从文件读取器逐行读取数据,然后传递给另一个异步工作的文本解析器。

我找到了一个通用模式,可以用易于理解的代码覆盖大多数这样的场景。

异步生产者后跟同步消费者。

...

用Golang理解几种设计模式

大部分模式都有一个共同点,那就是通过接口连接生产者和消费者。接口的抽象是关键,它反映了对底层类型的深刻理解。知道这一点可以简化事情,无论我们处理的是什么场景,或者使用的是什么语言。

至于为什么现在有这些模式,还有多少尚未被发现,以及背后的数学本质是什么,我也还无法回答。

...