最后活跃于 1712559086

readme.md 原始文件

省去虚拟机的烦恼

  • 攻击面显著减小。不需要维护那么多虚拟机的密码。
  • 不再需要配置复杂的 Linux 权限,反正在容器里就是 Root。
  • 不再需要配置复杂的路由器和 Linux 的路由表、networkmanager,反正容器开了都是建好的。
  • 不再需要重复运行大量无意义的 Linux 内核,巨大的节省资源
    • 过去,运行三个独立的业务,需要三个 VM。包括缓存,可能至少需要占用 20GB 的主机内存。
    • 迁移到容器后,唯一的内存开销就是容器的进程,每个业务只需要 200MB 内存。
  • 不再需要担心内存泄漏而对服务器定时重启,而是只重启容器即可

声明式数据中心

  • 整个数据中心可以一键启动,一键关闭。
  • 在事故时,可以使用备用设备启动集群,快速恢复。
  • 所有对数据中心的变更都可以由 Git 版本控制,快速回滚。
  • 可以非常容易的迁移到公有云、混合云。
  • 部署新业务变得非常快,并且不会弄脏数据中心:只需要提供 Image 即可。

软件定义网络

  • 不再需要手工建设交换机
    • 过去需要繁琐的建设交换机、网线,需要几个子网,就需要在交换机上手工配置隔离。
    • 现在一个主机只需要连接一根物理网线,直接使用分布式虚拟交换机,想要几个子网就有几个子网。
  • 对网络配置版本控制和声明式
    • 过去对于网络的定义是使用文字描述的,要想恢复一个网络,需要复杂的物理操作和软件配置。
    • 现在对于网络的定义是纯代码声明的,可以直接由 Git 版本控制,快速回滚。

开发测试更容易

  • 不需要配环境
  • 不会出现“我的电脑上是好的”

无需活迁移

  • 不需要为活迁移基础设施准备单独的网络设备。
  • 极快的维护速度
    • 过去为了对主机进行维护,需要复杂的操作,将主机上所有业务迁移到其它主机。这个过程需要 30 分钟。
    • 现在可以直接在新的主机上启动新的容器,将流量切过去,等老的容器将最后一个连接释放,只需要几秒钟即可维护主机。

更加容易 CI、CD

  • CD 0-down-time
    • 更新的本质是创建新版本的容器,再将新流量切过去,不会产生部署过程中的 downtime
  • 不需要在 CI 中配置密码
    • CI 只需要负责将容器编译并发布到 Registry 即可。
  • 不需要为了 CD 变更服务器
    • 服务器只需要定时从 Registry 拉取最新版的 Image,再增量替换老的容器即可