Hang

istio

2019-03-25

整个容器化浪潮诞生了三个胜利者,分别是 docker, kubernetes, istio。
一个额外的胜利者是 golang。

Docker#

docker 的作用是:

  1. 用标准语法描述出一个服务的静态/运行时环境,无关语言与操作系统
  2. 资源隔离

被打死的是 lxc, 它有资源隔离的功能,但是缺点太明显:

  1. 没有上面的 docker 提供的第一个功能
  2. 架构不如 docker 的 cli/server 的简洁明了,易于学习

受威胁的是 VM

  1. 太慢了
  2. 性能损耗大
  3. 无法 API 化

Kubernetes#

真正的 DCOS,核心优势:

  1. 统一资源模型
  2. 统一 API 模型 (引导业务 API 向其靠拢)
  3. Node 横向扩展
  4. 插件化

被打死的是 Mesos/Marathon,缺点

  1. 两层架构的低效率 (仁慈独裁与低效民主)
  2. C++
  3. C++ 导致的难以 debug
  4. 难以扩展以增加新功能

另一个被打死的是 swarm/compose, 缺点

  1. 架构不清晰
  2. 自下而上地缓慢地堆功能

受威胁的是 YARN, 不如 kubernetes 通用性强

Istio#

微服务相比于单体服务的一切问题都应该在这层解决, trace, 限流, metrics 等等

  1. 不需要修改业务代码
  2. 比手工的实现更完善,功能更强

受影响的:微服务业务代码

Golang#

  1. 可读性最好之一
  2. 性能好到不用自己刻意关注