Qunar如何借助Mesos和Docker构建DEV/BETA环境

需积分: 9 7 下载量 199 浏览量 更新于2024-07-19 2 收藏 1.12MB PDF 举报
"去哪儿网利用Mesos和Docker构建dev/beta环境,旨在解决业务线对快速、隔离的开发测试环境的需求。通过采用轻量级的Docker容器技术和Mesos集群管理框架,去哪儿网实现了环境的一键部署和高效管理。在落地过程中,他们面临了镜像构建、使用方式过渡、容器发布流程标准化以及运维支持等问题,并逐步优化了系统架构和功能。然而,目前仍存在如无固定IP和端口、应用自动漂移可能导致失败、监控报警系统完善等挑战,未来计划包括改进网络方案、增强高可用性、优化日志和监控系统,并灵活应对系统扩容需求。" 去哪儿网在构建dev/beta环境时,选择Mesos和Docker的主要原因是它们的轻量级特性,可以实现快速部署,同时Mesos+Marathon的组合满足了自动化部署和管理的需求。此外,公司已有日志系统的支持也是决策因素之一。 在具体实施中,去哪儿网面临了一系列决策,如是否每次构建镜像、是否利用Jenkins与Mesos集成来加速环境构建,以及如何确保运维团队能够有效支撑新的部署模式。他们设计了一套系统架构,其中应用运行架构和QA/CI(质量保证/持续集成)架构并行,使用app_code作为应用标识,统一记录基础信息,配置文件模板化,以简化管理和部署流程。此外,还计算了部署顺序,并采用了泛域名策略以适应动态环境。 尽管如此,当前系统仍存在一些问题。例如,由于缺乏固定的IP和端口,使用Calico进行网络管理成为解决途径之一。当集群中的主机出现问题时,应用的自动漂移可能导致启动失败,这需要优化容错机制。日志管理和监控是另一个关注点,使用heka收集日志并结合ELK(Elasticsearch, Logstash, Kibana)进行查询,但Kibana上的日志查看和监控报警系统仍有待加强。 为了应对这些挑战,去哪儿网计划进一步优化系统,如绑定设备库以优先使用未分配的机器,紧急情况下使用OpenStack虚拟机进行快速扩容。此外,针对Marathon的使用,他们提出了一些经验教训,比如增大dockerdevicemapper限制,确保高可用性,并避免在app_id中使用重叠字段。 去哪儿网通过采用Mesos和Docker成功地改进了其dev/beta环境,但依然面临着技术挑战和持续优化的需求。他们的实践为其他寻求高效开发测试环境的企业提供了有价值的参考。