服务热线:400-0033-166
万商云集 - 企业数字化选用平台

企业首选的

数字选用平台

Docker应用方案:美团网站服务器

2021-01-05 09:53:39 阅读(259 评论(0)

自动构建系统是美团自动部署系统发展起来的一项新功能。每当开发人员向仓库提交代码时,系统都会根据开发人员定制的构建配置自动启动新的docker容器,其中构建源代码。(build),包括编译(如Java)、C 和Go)、预处理(如JavaScript和CSS)、压缩(如图片)等操作,生成最终需要上线的程序包。美团代码自动部署系统的背景和问题承载着美团所有业务的代码*工作。一开始,基于简单的Bash脚本,代码部署系统通过Rsync和SSH从中央主机传输和执行文件。图1 经过多次演变,代码部署系统架构图代码发布系统增加了许多功能,但原来的中央架构仍然保留下来,见图1。出版商通过Web界面或RESTAPI控制中央控制器。中央控制器负责从Git服务中提取代码,构建应用程序包,然后通过RSYNC将程序包上传到应用集群,并使用SSH执行远程命令。自动部署系统为美团业务的快速发展提供了强有力的支持。由于我们采用开发人员自助上线的方式,发布操作频繁,工作日每天上线数千次。图2是过去15个月每月发布的次数。为了不断优化发布速度,为发布者提供良好的体验,我们将单次发布的平均时间作为发布系统的重要KPI。然而,随着美团业务的快速扩张,服务的增加,应用程序的发布数量也在增加,集中体系结构的问题也得到了突出。问题1:同时进行多项资源竞争建设任务,竞争中控机资源,影响发布速度。有一次,一个应用程序受到Java应用程序同时发布的影响,通常两分钟的发布变成十分钟以上,严重影响发布体验。如果发生事故需要回滚,问题会更严重。问题2:不同的环境冲突应用程序的构建依赖于发布机上的环境,需要考虑环境冲突和隔离。例如,Java1.6/1.7共存,Java版本需要Java_HOME变量指定,Maven2/3也存在同样的问题。npm的global包也需要与多个应用程序的构建兼容。问题3:在公共发布机上运行安全隐患应用的构建脚本,脚本的bug可能会影响发布机的正常运行。例如,某个构建脚本中的sudoservicenginxreload命令应该在应用服务器上执行,但开发人员错误地将其配置到在发布机上执行的构建脚本中。为了解决上述三个问题,我们首先想到的解决方案自然是重构为多台中控机器的横向扩展。但由于某些应用的特殊性,变化比较麻烦,所以一开始并没有走这个方向(现在已经实现了多中控机)。那么另一个想法:能否将施工过程与中控机分离?TravisCI受到这种想法的影响(https://travis-ci.org)的启发。我们从TravisCI中学习,在代码提交过程中自动触发应用程序的构建。因此,我们的解决方案可以概括为以下三点:将构建过程放置在Docker容器中;提交代码时自动触发构建;发布时直接使用构建的应用程序包。使用前配置如下:发布系统配置发布项目(build.yml);URLLL在Stash配置自动构建服务;定制镜像(可选)上传到私有Dockeregistry。使用过程相对简单,主要有以下步骤:开发人员向Stash提交代码;触发自动构建;根据配置自动构建生成任务;启动Docker服务器上的容器完成构建;将构建好的包上传到美团云对象存储服务(MSS);发布时从MSS拉软件包并发布。自动构建API将在每次提交代码时触发。在Docker服务器中执行构建任务进入队列。发布时不需要编译,直接拉软件包发布。从图6、从图7中可以看出,已经自动构建的文件在发布过程中直接用于部署。图3 配置图4自动构建 发布系统配置界面图5 自动构建架构图6 自动构建的日志图7 为什么嵌入自动构建日志的发布日志不使用虚拟机?美团的虚拟化比较彻底,虚拟机而不是容器也可以自动构建。但虚拟机与业务有关,会长期保留。二是虚拟机与CMDB的深度结合,创建后将报告基本信息,部署Agent,配置监控项等。此外,虚拟机的创建相对较慢。考虑到以上几点,我们使用Docker而不是虚拟机作为自动构建的基本单元。基于Docker容器的自动构建,解决了资源竞争、环境冲突和安全隐患三个问题。构建任务移出发布机,构建Docker服务器可以横向扩展,解决资源竞争问题。每一个建筑都是独立的镜像,环境冲突问题不复存在。在独立于发布机的Docker服务器上构建脚本,自然消除了发布机造成的安全隐患。除解决上述三个问题外,自动构建还显著提高了发布速度。据统计,自动构建任务的平均执行时间为197s,而自动构建应用的平均发布时间为99s。如果不使用自动构建,这些应用程序的发布时间是197s 99s,大约300秒。由此可见,自动构建将应用程序的发布时间缩短了三分之二。总结自动构建是美团首次应用Docker。这个应用程序不是用Docker来解决代码部署系统中的问题,而是用Docker来解决我们遇到的问题。该应用只使用Docker的核心容器功能,而不使用Docker集群管理、调度、自动扩展等先进功能。Docker非常适合自动构建场景。希望本文能启发计划开始使用Docker的公司。

内容来源:网络,以上内容来源于网络,不代表本站观点,如有侵权,请联系删除。

推荐阅读

各类商标注册注册大全 进来了解一下

商标是标明商品或服务来源的标志,是将自己的品牌、商品或服务与他人的品牌、商品和服务区分开的标志,其覆盖范围包括文字、图形、字母、数字、声音、三维标志和颜色及其随意组合,是对自我品牌、商品、服务的一种法律保护手段,能有效防止品牌被他人恶意盗用…查看详情

视频和图片合并成一个视频的软件有哪些?具体推荐如下介绍

现在很多人都特别喜欢制作小视频,而且还会拍一些精美的图片,这样视频跟图片结合在一起,就成了一个比较不错的短片。但是针对视频和图片合成,很多人并不知道应该要选择什么样的软件来使用,其实有很多的软件可以选择,选择对了软件就会带来很好…查看详情

想要了解加密软件哪个好,可以看详细的推荐

因为现在的人越来越注重自己的信息保护,所以很多人在工作以及聊天的时候不放心,怕怕不法之人监测自己的手机后台,所以很多人都会考虑在手机当中安装一个加密软件,具体来说加密软件哪个好呢? 1、易通文件夹锁软件 这个加密软件其实在…查看详情

编程语言排行榜,可以参考一下

在进行程序设计的时候,选择一种编程语言也是必要的,因为属于不能缺少的设计工具,编程语言也是可以让计算机充分接受的,并且具有相关语法规定的语言。而随着生活中越来越多的计算机使用,以及技术方面的进步,现在的编程语言自然也是人们不可忽…查看详情

小程序开发公司哪些比较靠前?小程序开发口碑好的公司介绍

小程序的开发对一些企业的发展也是非常重要的,因为现在是一个使用小程序比较火爆的时代,不少的商户以及企业都拥有自己的小程序,而且利用小程序能够带来更多的客流量,也能够将自己的产品更好的进行推广。所以说很多企业也都想要开发小程序,但…查看详情

为什么越来越多企业开始布局小程序?

继万商云集小程序斩获“2019年度中国IT互联网产品创新大奖”以来,最新一批上线万商云集小程序的30+企业新鲜出炉啦~简阳XX生态农业、北京XX科技、西安XX劳务、北京XX文化发展、陕西XX商贸、北京XX教育、西安XX科技环保、陕西XX建筑…查看详情

知识产权专利申请流程是什么样的

知识产权专利申请流程是指在保护发明创造的知识产权方面,从申请到授权的一系列步骤和程序。以下是一个常见的知识产权专利申请流程的概述: 1.发明创造:首先,申请人需要进行技术研究和创新活动,发现或开发出新的发明性创造。这可以是一项新的产品、工艺…查看详情

windows10命令提示符在哪个文件夹

  Windows10是目前实用广泛的操作系统之一,它具有许多强大的功能,包括与命令提示符相关的功能。Windows10 命令提示符(也称为控制台)是一种系统资源,它提供了许多有用的功能,比如查看文件,访问网络资源以及运行计算机上的各种应…查看详情

二手车平台哪个好 十大二手车品牌

  随着消费习惯的改变,无论哪个消费阶层的潜在车主都很好,二手车往往会带来更具成本效益的体验。然而,二手车市场的深度足以说服许多感兴趣的车主;下面万商云集*给大家来详细介绍一下二手车平台哪个好 十大二手车品牌这一块的内容,希望能帮助到大家啊…查看详情

电商快递如何实现?电商快递的原则和优势分析

如今,网络越来越发达,为提升企业寄收件效率和降低物流管理成本,电商与快递的合作必不可少,接下来*就把调查到的关于电商快递合作的要点做如下介绍。 一、电商快递的原则: 1、成本原则,在自己销量不是很大的情况,你选择的快递,最好是性价比比较高的…查看详情

3D建模软件哪个好用 3D建模软件排行榜

  3D建模算是很多的行业都会使用到的一个技能和工作,现在市面上也有很多的这一种软件,下面*就给大家来详细介绍一下3D建模软件哪个好用 3D建模软件排行榜这一块的内容。 3D建模软件排行榜  1、《CAD建模号》  一款在手机上就可以进…查看详情

地名商标注册需要什么材料 地名商标注册所需材料

 现在地名注册商标也是很常见的了,很多人对地名都申请商标保护,下面万商云集*给大家介绍下地名商标注册需要什么材料。 一、地名商标注册需要什么材料  1、地名商标注册需要的材料:  (1)以企业名称申请注册的,需提供营业执照复印件,并需在营业…查看详情

iframe框架使用方法

iframe子页面的js和css父页面怎么调用?找到iframe里面js和css的引用文件路径在父页面里面重新引用下,框架里面引用都是独立的不能共通,框架的意义也在此了否则也就没必要存在了。用iframe嵌套页面时四周的白边如何去掉?可以设…查看详情

免费好用的文件加密软件有哪些 文件加密软件排行榜

  当我们的文件中有着重要的信息,为了保护自己的隐私,不想让他人知道时应该怎么做呢?文件加密软件能够很好的能够很好地对文件进行保护防止信息泄露,那么在众多的文件加密软件面前该如何做出选择呢?下面*就给大家来详细介绍一下免费好用的文件加密软件…查看详情

小程序制作费用多少

  做一个小程序商城大概需要多少钱?  制作一个小程序商城的费用大概如下:1,微信公众号或小程序的认证费(300元)2,小程序商城的费用,这一块就要根据选用哪一种开发方式来决定。  使用小程序平台上的话,价格会比较低,一般在几千元每年就可以…查看详情

最新文章