diego-paas-learn
本文将按如下结构开始分析diego-----------------------------------cloudfoundry 把第三代runtime的引擎命名为diego,虽然是一次被动的变革,但稍加分析后,发现diego变动的不仅仅是支持了docker那么简单,从整个架构的改变来看,后端容器的选择更加灵活,而且增加了对docker,buildpack 等形式应用的生命周期的管理,从一次tasks到一个LRP实例,至少和V2对比起来,这些都看起来优雅了很多。还是先上一个图:
可将其分为6层:* CC-Bridge层
Diego还是给我们带来了些惊喜,比如在某些时候(--exportNetworkEnvVars=true)可以自己指定容器IP端口等;对作业进行了生命周期式的划分,有点类似mesos+marathon的感觉;提供了计分的资源调度算法;引入btrfs(copy on write)文件系统,终于摆脱了aufs的束缚,也让docker image、layer更好的被引入;后端不仅支持linux还支持windows;引入cells的概念,跟k8s有点类似,一个cell就是一个调度的基本单元,上面可以有很多实例,rep相当于k8s的kubelete,garden相当于cell的代理,用来对接后端的各种类型容器;还有基本的容错功能,这都要归结于brain层的设计,等等等等。