Docker应用方案:美团网站服务器
2021-01-05 09:53:39 阅读(239) 评论(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.Anais Anais 是香水经典的后起之秀,…查看详情
- 直播软件哪个好用 2022热门直播软件有哪些
就现在看来,直播行业是比较赚钱的一个行业,所以,大多数人想通过直播进行赚钱,毕竟这个行业的流量是特别大的,那么,我们需要先了解一下直播软件都有哪些,然后在选择软件去直播。 1、虎牙直播 虎牙直播是我国领跑的游戏直播平台的一种…查看详情
- instruments什么意思
music的形容词?形容词是musical,中文意思是adj.音乐的,配乐的;喜爱音乐的,精通音乐的;悦耳的,动听的 Wearenowabletoprintthingssuchasclothing,musicali1trumentsand…查看详情
- mysql的数据类型有哪些?
mysql中int是什么字符类型?MySQL中,INT代表整数型。 1、int:在mysql中,int的数据类型是基本数据类型,是对integer的拆箱。 2、integer:在mysql中,integer的数据类型是引用数据类型,是对…查看详情
- 实用小程序推荐丨符合当下用户习惯的轻量化工具
小程序是各大流量平台都在执行推广是发展规划和市场战略,有人甚至表示,小程序的商业价值是公众号的十倍、百倍。从2018年开始,各类小程序逐渐被推出,微、小、中、大型企业都在推出自己的小程序。几大平台中,微信小程序是B、C端接受度和使用率比较好…查看详情
- 专利权产品的分类 专利权产品有哪些分类
在平时很多的小伙伴都不知道专利权产品的分类的基本情况,而且对专利权产品的分类都不是很熟悉,下面万商云集小编就为大家整理了专利权产品的分类这方面的相关内容,希望下面的内容能帮助到各位。 一、专利权产品的分类 专利它是国家按专利…查看详情
- 卫生巾品牌排行榜前十
以下是关于卫生巾品牌排行榜前十的相关信息: 1.姨妈帮(Always):作为全球领先的卫生巾品牌之一,Always以其舒适度和安全性而闻名。他们提供多种类型的卫生巾,以满足女性在不同时期和需求下的要求。 2.卫洲(Whisper):卫洲是宝…查看详情
- 海外购物网站有哪些 国外购物网站排名
国外购物网站有哪些?知乎分享次数最多的网站系列!经常有人问我“你这瓶面霜哪买的呀”或“你这衣服哪买的呀”,我都会说“海淘的呀”,然后对方就嘤嘤嘤“我没有海外卡怎么办”。下面万商云集小编就为大家整理一下关于国外购物网站排名的相关内容。 …查看详情
- 淘宝刷单应该根据转化率来刷以及我们该怎样提高店铺转化率
刷单对于很多商家并不陌生,相信很多淘宝店都有过刷单的经历,面对现在淘宝如此巨大的竞争,不刷单店铺经营确实很难,这也让很多商家踏上了刷单之路,但是刷单是有风险的,有的商家刷着刷着,发现店铺的流量不但没有提升,反而降权甚至被封店,出现这样的原因…查看详情
- 内容运营是做什么的 内容运营具体工作内容
现在整个运营行业细分的岗位很多,有用户运营,内容运营,新媒体运营,下面万商云集小编就给大家详细介绍下内容运营是做什么的 内容运营具体工作内容这方面的内容、 1、什么是内容运营 其实你平时打开的门户网站、官网、app以及微博和知乎所有的内…查看详情
- 专利公告到发证要多长时间 专利公告到发证要多久?
在平时很多的小伙伴都不知道专利公告到发证要多长时间的基本情况,而且对专利公告到发证要多长时间都不是很熟悉,下面万商云集小编就为大家整理了专利公告到发证要多长时间这方面的相关内容,希望下面的内容能帮助到各位。 一、专利公告到发证要多…查看详情
- 项目文档管理软件的定义是什么
每一款软件都有它发光发亮的地方,当我们在上班的过程中遇到一系列的难题无法解决的时候,就可以上百度查找相关资料,看看运用什么软件能解决,那么,项目文档管理软件相关介绍是什么? 1、项目文档管理软件定义 项目管理是为了能够使工作…查看详情
- 通达信炒股软件合集,这几款都不错
对于想要炒股的人员,或者是已经投入股市的人员来说,一定要找到一款好用的软件,来实时的掌握股市的信息,这样才可以避免更多的损失,同时还能够为大家带来更多的惊喜,那么下面就要针对于通达信炒股软件,为大家进行推荐。 1、通达信金…查看详情
- 好看的动漫网有哪些 2022国内十大动漫网站
现在很多的人喜欢动漫二次元,其实目前这类群体也逐渐在扩大,很多的人都比较喜欢看这一类的漫画等,下面万商云集小编给大家来详细介绍一下好看的动漫网有哪些 2022国内十大动漫网站,不知道下面的这些网站大家使用过没有。 1、樱花动漫 …查看详情
- 怎么做自己的小程序?有复杂的开发制作,也有简单的模板搭建
微信小程序覆盖的行业范围很广泛,因此现在越来越多人都想到利用小程序来引流获客。随着各种小程序制作工具的兴起,如今个人制作小程序已经不是什么难事,懂代码的,可以用官方开发工具自己开发;不懂代码的,可以用第三方小程序工具来制作。那么怎么做自己的…查看详情
猜你喜欢
最新文章

扫码二维码
立即领取《千元实战营销秘籍》
还可免费试用营销管理系统
*如有疑问,请随时拨打免费咨询热线:400-0033-166
服务时间:8:30-18:00
软件企业
认定号:川RQ-2018-0216
高新技术企业
认定号:GR201951001121

关注微信公众号
和10万中小企业共同成长

扫码下载APP
享全方位服务一触即达
Copyright © 2004-2022 万商云集(成都)科技股份有限公司 版权所有
蜀ICP备12001963号-2
川公网安备 51010402000322号

快速找产品
找一找哪款产品适合您?
咨询热线:400-0033-166
-


-
电话沟通
在线咨询
获取方案
下载APP
官方微信
扫码下载APP
全方位服务一触即达
关注万商云集
和10万中小企共成长
TOP

企业首选的数字选用平台






