标签:16px 架构 docker容器 重复 技术 .com 不一致 机器 权限管理
在使用k8s之前,陌陌在应用发布和运行环境方面遇到的具体问题,如下:
针对以上遇到的问题,我们决定对架构进行改造,同时制定了一系列架构改进目标,如下:
综合这些问题和目标,陌陌选择使用 Kubernetes来管理 Docker 集群,当 Kubernetes 满足不了需求时,可在部署平台开发相应的功能来满足开发查看日志、监控和报警等需求,尽量避免登录主机和容器。
陌陌从2015年下半年开始对Docker进行调研和实践,2016年初开始调研k8s,尝试架构方面的改进工作,基于自研发布系统及K8s、OVS和Docker构建容器管理平台。实现了基于Docker集群的部署系统,便于开发者便捷地部署自己的应用程序。最终达到部署环境干净一致,可重复部署、迅速扩容和回滚。
如下图,是容器管理平台的架构图:
容器管理平台主要功能有集群管理和状态展示、灰度发布和代码回退、组件模板、应用管理、镜像仓库和权限管理等。它采用前后端分离的架构,前端使用 JS 渲染,后端使用 Python 提供 API。这样开发者可以快速的进行发布和回退操作。
容器管理平台在应用发布流程,集群调度策略,k8s节点网络架构,阿里云支持,基础监控指标等方面进行了优化改进。
应用发布流程
陌陌之前老版本发布系统是串行的,需要单台进行替换。如下图,是新架构下应用的发布流程:
新的发布系统是用户提交代码后,在发布系统选择要部署的commit,点击构建以后,系统会自动编译,打包成镜像,推送镜像仓库。如果构建成功,用户点击发布新版本的实例,灰度没有问题,全量,下线老版本的实例。回退时代码不需要构建,直接发布老版本实例。在某段时间内,新老版本是同时存在的。
标签:16px 架构 docker容器 重复 技术 .com 不一致 机器 权限管理
原文地址:https://www.cnblogs.com/xiaocao123/p/9867865.html