陌陌基于陌陌基于K8s和和Docker容器管理平台的架构实践容器管理平台的架构实践
容器集群管理系统与容器云平台的选择非常重要,因为容器管理系统是否先进智能、容器云管理平台是否灵活易用且高效,直
接影响企业开发运维的效率与速度、资源利用率的高低。在这个竞争激烈,风云突变的时代,应用的开发效率、稳定性、扩展
性和安全性,决定了企业的竞争力与市值。
当下,K8s凭借在扩展性、管理、大数据分析、网络场景、兼容性、负载均衡、灰度升级、失败冗余、容灾恢复、 DevOps 等
方面的优势,受到部分企业的青睐。近日,由51CTO 主办的第十六期以“Tech Neo”为主题的技术沙龙活动中,来自陌陌科技
SRE团队负责人王景学分享了陌陌在K8s容器方面的一些应用实践。
为什么选择使用K8s?
在使用k8s之前,陌陌在应用发布和运行环境方面遇到的具体问题,如下:
1.应用发布时间很长,主要是因为发布过程中需要做隔离、恢复等动作,还需要登录查看实际状态、日志。
2.当遇到晚高峰情况这样的突发状况,需要紧急扩容。这时业务方会申请机器,可新机需要进行环境初始化、相关配置,这样
导致效率非常低。
3.应用运行环境的软件版本不一致,配置复杂,维护成本比较高。
4.硬件资源利用率不足,总体成本比较高。
针对以上遇到的问题,我们决定对架构进行改造,同时制定了一系列架构改进目标,如下:
1.提高服务可用性,可管理性。可用性是当某一台机器出现宕机,会自动切换到其他机器。可管理性是在应用需要扩容时,自
动化去部署运行环境、相关配置。开发不需要再去考虑服务器的问题。
2.提高资源隔离性,实现服务混合部署。
3.应用级别的监控,当机器需要扩容时,自动排查是哪个应用所致。
4.服务平滑迁移。
综合这些问题和目标,陌陌选择使用 Kubernetes来管理 Docker 集群,当 Kubernetes 满足不了需求时,可在部署平台开发相
应的功能来满足开发查看日志、监控和报警等需求,尽量避免登录主机和容器。
陌陌容器管理平台的架构演进
陌陌从2015年下半年开始对Docker进行调研和实践,2016年初开始调研k8s,尝试架构方面的改进工作,基于自研发布系统
及K8s、OVS和Docker构建容器管理平台。实现了基于Docker集群的部署系统,便于开发者便捷地部署自己的应用程序。最
终达到部署环境干净一致,可重复部署、迅速扩容和回滚。
如下图,是容器管理平台的架构图:
容器管理平台主要功能有集群管理和状态展示、灰度发布和代码回退、组件模板、应用管理、镜像仓库和权限管理等。它采用
前后端分离的架构,前端使用 JS 渲染,后端使用 Python 提供 API。这样开发者可以快速的进行发布和回退操作。
容器管理平台在应用发布流程,集群调度策略,k8s节点网络架构,阿里云支持,基础监控指标等方面进行了优化改进。
评论0