说明

记录一些需要关注的事情。

kubernetes 相关项目进展跟踪

kubernetes

容器技术

《docker/moby/docker-ce 与 docker-ee 的关系和获取方法》

能力扩展

网络方案

镜像管理

CNCF 项目

CNCF:cncf blog

沙盒项目:

孵化项目:

毕业项目:

参考

  1. 李佶澳的博客

SAAS 服务收集与进展跟踪

发号器

参考

  1. 李佶澳的博客

应用配置中心项目跟踪

参考

  1. 李佶澳的博客

高速缓存系统进展跟踪

kv 缓存

codis 和 twemproxy 是 proxy, 前者解决了 redis 无法水平扩展的问题,后者同时解决了 redis 和 memcached 无法水平扩展的问题。这两个项目都已经多年不更新。现在 redis 支持 cluster 模式,水平扩展不再是问题。

很明显,有了 kubernetes 之后,不再需要单独维护一个巨大无比的支持多租户的缓存集群,把缓存做成 operator 直接部署在用户侧即可,不仅实现简单,还实现了天然的隔离。如果担心用户应用影响 kubernetes 集群的稳定性,可以为缓存等基础服务单独准备一个 kubernetes 集群,实现基础服务与业务系统的分离。

redis cluster 的设计

Redis cluster 实现了两个功能:

  1. 自动将数据分散到多个 redis 实例;
  2. 部分 redis 实例故障时,整体依旧可用。

通过以下方式实现上述功能:

  • redis 实例启动两个 tcp 端口,6379 服务于客户端,6379+10000 用于 redis 间通信
  • key 在多个 redis 实例间分配,hash slot 容量为 16384(2^14),哈希算法 CRC16
  • 多 key 操作的目标必须在同一个 slot 中,写入 key 时用 hashtag 保证,{hashtag}key
  • 每个 redis 实例通过 master-slave 的方式保证高可用
  • redis cluster 非强一致性,数据异步同步,存在丢失的可能性(master 宕机/集群分裂等)
  • redis clsuter 支持 reshard,但是不支持自动 reshard @2020-01-04 21:00:36
  • 通过手动 faileover 的方式升级
  • 支持 salve 自动迁移,保证每个 master 的副本数

更多细节:

参考

  1. 李佶澳的博客

网关网格系统进展跟踪

网关、网格与 服务框架 的区别在哪里:

  • 网关网格是语言无关、非植入式
  • 服务框架是语言相关、植入式

服务框架基本上来说就是一个提供服务地址发现的「注册中心」,通过用户端植入的 sdk 实现更丰富的功能。植入带来耦合,维护和适配的成本非常高。通过网关或者网格实现微服务的治理是正确的发展方向。

实践分享

在40并发、1600RPS的情况下,cNginx的延时增加0.4ms(相比直连),Envoy(社区版本,优化前)Client Sidecar模式延时增加0.6ms(相比直连)。

istio 与 knative 的实践,knative 是 serviceless,当前需要 Ambassador、gloo 和 istio 三者之一作为 ingress。

参考

  1. 李佶澳的博客

函数计算最新进展跟踪

参考

  1. 李佶澳的博客

服务框架系统进展跟踪

非常明显,未来属于 网格

不过服务框架的发展依然值得关注,植入有植入的优势,虽然未来属于非植入式的,但是很多问题和方法是通用的。

主要问题:

  • 服务注册信息的维护:分布式、更新及时、一致性与分区容忍
  • 负载均衡策略
  • 熔断限流策略
  • 认证、牵引的更多策略
  • 状态测度

bilibili/kratos

kratos 是 bilibili 研发并使用的服务框架系统。

公开分享资料:B站在微服务治理中如何探索与实践?

  • 分布式 discovery 组件负责服务信息的维护
  • 植入客户端,客户端执行负载均衡
  • 熔断限流当前不是全局的,疑似在客户端实现

限流算法进化:

  • 单机令牌桶算法:常规限速,配置不灵活
  • Hystrix 熔断算法:当请求失败比率达到一定阈值之后,熔断器开启,无差别熔断
  • Google SRE 弹性熔断算法:弹性熔断是根据成功率进行调整的,当成功率越高的时候,被熔断的概率就越小
  • 基于 BBR 算法的自适应限流:用 CPU\IOPS 计算出最大承载量,超出的请求入队等待

参考

  1. 李佶澳的博客

操作系统进展跟踪

kernel

发行版

参考

  1. 李佶澳的博客

消息队列系统进展跟踪

消息队列

参考

  1. 李佶澳的博客

数据库系统进展跟踪

关系型数据库

图数据库:

参考

  1. 李佶澳的博客

分布式存储系统进展跟踪

参考

  1. 李佶澳的博客

日志系统进展跟踪

参考

  1. 李佶澳的博客

监控系统进展跟踪

参考

  1. 李佶澳的博客

负载均衡系统进展跟踪

参考

  1. 李佶澳的博客