从持续集成到持续交付——Docker Cloud概览

本文讲的是从持续集成到持续交付——Docker Cloud概览【编者的话】本文介绍了Docker Cloud的概况,以及如何使用Docker Cloud改进我们的持续集成和持续发布的流程。也指出了目前Docker Cloud还存在的功能方面的问题。

容器化(Docker容器),持续集成(CI),持续部署或持续交付(CD)是简化DevOps工作的终极方案。这展示了一个未来的场景:当代码被提交到代码库之后,所有的后续工作包括编译、配置、交付和部署,甚至是高可用性都是完全标准化和自动化的。从这个角度我们可以看到一个美好的未来,将开发人员和运维人员从繁复的工作中解放出来,节省出来的人力资源可以更专注在更加创造性的开发工作。

官方的Docker镜像仓库和CI服务

从Docker的第一版本发布以来,这个公司持续行进在一个正确的方向上前进,虽然前进的有点慢。尽管如此,在Docker收购Tutum一年之后,Docker最终发布了正式的云服务Docker Cloud(cloud.docker.com)。现在围绕Docker的生态系统已经接近完备了。

在深入到Docker Cloud的技术细节之前,让我们看一下Docker的镜像仓库和自动构建服务——Docker Hub(hub.docker.com)。作为我使用了将近一年的CI工具,我觉得它还是非常好用的。它的工作方式也是很简单的,你只需要写好一个Dockefile并把它放在GitHub或者Bitbucket上,Docker Hub就会在每次代码提交之后自动构建Docker镜像并将其放置到Docker Hub镜像仓库上提供下载。

例如,https://hub.docker.com/r/tomasen/frontd/builds/ 就是这样一个在Docker Hub上自动构建的Docker镜像。我可以指定镜像的分支并分配不同的标签。这个流程有助于区分版本,使其更适用于开发或者生产环境。

当然,这个构建过程会在每次代码提交时被执行。

Docker Cloud!

2016年3月,Docker发布了Docker Cloud的第一个版本。现在,在Docker Cloud上,我们可以添加我们数据中心或者AWS中的服务器添加到Docker Cloud中让Docker Cloud来控制它。因此无论是AWS或者Google或者Linode的虚机,甚至是裸机都可以通过一个简单的shell脚本命令将其添加到Docker Cloud中,这个shell脚本会在服务器中安装一个代理程序并将服务器转给Docker Cloud。

Docker Cloud跟传统的云服务提供商的主要区别是Docker Cloud本身不提供任何的服务器或者虚机,只是提供某种服务器/服务的管理系统。因此Docker公司可以通过提供持续部署的方案来产生利润。

将服务器添加到Docker Cloud的命令是非常简单的,如下所示:

curl -Ls https://get.cloud.docker.com/ | sudo -H sh -s <token>

这个脚本安装和配置Docker守护进程并设置这个节点到Docker Cloud的通信隧道,因此Docker Cloud就可以管理这个节点上的服务了。

当这些节点配置完成后,我们就可以添加服务了,这意味着我们可以利用策略来部署Docker镜像到节点上运行。

如果Docker镜像是来自我们前面提到的Docker Hub,整个设置过程就会非常容易了。

从用户界面上,我们可以设置部署策略是到所有节点,到最空闲的节点或者高可用。 

除了最基本的端口发布、网络和存储配置功能外,Docker Cloud提供了高级的概念例如Stack和服务关联,这使得平台越来越成熟和完备。

未完待续

Docker Cloud依然还有一些问题可以被修复,以使得其持续交付服务能变得完美:

  • 缺少服务监控,或者测试驱动部署策略。
  • 缺少对持久存储的管理。
  • 在每个Docker Cloud节点上都需要安装高权限的代理程序,在企业环境中将会造成严重的安全问题。

未来

每次我都在思考彻底摆脱命令行终端和ssh,只需要简单的将代码提交到某个分支,然后服务就会被部署到合适的服务器上去。在任何时候都会有一个进程去去监控并在合适的时候重新部署或者弹性扩展。这样将会极大的提高迭代的速度和效率,还有一个好处是我们将无需再担心运维人员可能会犯的错误。想到这里,我是非常兴奋的。

原文链接:From CI to CD, Docker Cloud Tour (翻译:李光成)

原文发布时间为:2016-09-13

本文作者:李光成

本文来自合作伙伴Dockerone.io,了解相关信息可以关注Dockerone.io。

原文标题:从持续集成到持续交付——Docker Cloud概览

时间: 2024-11-02 13:20:59

从持续集成到持续交付——Docker Cloud概览的相关文章

超大型系统的持续集成与持续交付解决方案与阿里宙斯盾

作者简介:鲁小川,09年本科毕业于浙江大学软件学院,之后就一直就职于阿里巴巴B2B质量保障部,目前是云效持续集成与持续交付解决方案的负责人. 以下内容根据演讲嘉宾分享以及PPT整理而成. 今天分享的议题是<超大型系统的持续集成与持续交付解决方案及案例分析>,主要就是和大家聊聊阿里巴巴B2B技术部这几年来在持续集成与持续交付上实践经验,以及为什么要做宙斯盾系统平台产品来支撑持续交付.宙斯盾平台在阿里内部经过了5年多的积累沉淀,现在已经对外服务输出了,对外服务产品的名字叫做云效平台,后面还会介绍云

基于容器服务的持续集成与云端交付(一)- 交付之禅

前言 随着微服务架构与容器虚拟化技术的发展,持续集成与持续交付的概念又重新回到了大家的视野,越来越多的公司开始使用持续集成的系统来解决频繁发布带来的质量问题:使用持续交付的工具来实现代码在不同环境上的自动部署.原本有些学院派乌托邦式的思想正被千千万万次的集成与部署证明着它应有的价值.那么究竟是因为什么让持续集成与持续交付这个已经不再年轻的软件开发与交付的思想重新焕发绽放迷人的光彩呢? 传统软件交付之殇 传统软件的开发与交付的周期都很漫长,一款普通的企业软件通常需要十几个开发人员,几个月的时间来完

基于容器服务的持续集成与云端交付(五)- 探究持续交付系统的本质

换个角度看持续交付 在<基于容器服务的持续集成与云端交付>系列中,我们已经讨论了持续集成与持续交付给软件开发带来的变革,介绍了如何从零搭建一个持续交付系统以及在阿里云上面如何实现持续交付. 不过,在这篇文章中,我们会用一个不一样的角度来思考持续交付,到底持续交付给我们带来了什么,在容器的持续交付的场景中还缺少什么.回到本系列第一篇文章中的容器持续交付的流程图: 这张图中描述了一个基于容器的持续交付的流程,它定义了几个阶段,本地开发阶段.持续集成阶段.持续交付阶段等等,规定了在每个阶段中该做什么

基于容器服务的持续集成与云端交付(三)- 从零搭建持续交付系统

前言 在上一篇文章中讨论了容器服务提供的交付能力,在本文中我们将讨论如何从零搭建一个持续交付系统. 对于大多数公司而言,选择一个合适自己的持续交付系统是尤为重要的一件事情,不同的公司.不同的业务使用的场景也各不相同,因此要根据自己的业务场景与发展方向来选择合适的方案.根据不同的业务场景与交付方式,阿里云容器服务提供了三种不同的持续交付方案. 基于Jenkins的持续交付方案 基于Jenkins的持续集成和持续交付方案是所有方案中最灵活.能力最强的方式,但也是需要客户自主运维的方案.对于现有提供持

产品迭代发布如何更快速?阿里持续集成与持续交付实践之路全解析

2017年5月9日,云效平台资深研发工程师向禹通过直播分享了<持续集成与持续交付实践之路>.他从云效背景.云效方案.云效价值三个方面进行了分享.他主要分享了持续集成持续交付的解决方案和案例,并且对大型系统如何实现持续集成.持续交付.进行产品迭代发布进行了详细介绍. 以下内容根据直播视频整理而成. 云效背景--阿里巴巴<持续交付>之路 大应用下的交付 在七八年之前,阿里巴巴的B2B一直沿用瀑布的模式来进行项目管理,当时已经感觉到瀑布模式对应用持续快速的发展产生了很大的影响.并且当时很

谈谈持续集成,持续交付,持续部署之间的区别

经常会听到持续集成,持续交付,持续部署,三者究竟是什么,有何联系和区别呢? 假如把开发工作流程分为以下几个阶段: 编码 -> 构建 -> 集成 -> 测试 -> 交付 -> 部署 正如你在上图中看到,「持续集成(Continuous Integration)」.「持续交付(Continuous Delivery)」和「持续部署(Continuous Deployment)」有着不同的软件自动化交付周期. 持续集成 持续集成是指软件个人研发的部分向软件整体部分交付,频繁进行集成

云效平台:企业级互联网架构下的持续集成与持续交付实践

摘要:本文的整理自2017云栖大会-南京峰会上阿里云高级技术专家鲁小川的分享讲义,讲义主要分享了阿里云云效平台对于企业级互联网架构下的持续集成与持续交付的实践经验,首先介绍了阿里云云效平台的起源,之后对于企业并发研发项目交付流程存在痛点进行了介绍,并介绍了云效平台针对业务痛点所能够提供的服务和能力,并且结合实际案例分享了云效平台持续集成和持续交付实践. 在2017云栖大会-南京峰会上,阿里云高级技术专家鲁小川做了题为<企业级互联网架构下CI/CD实践>的精彩分享.所谓CI/CD也就是持续集成与

让IT跟上业务思考的速度--从持续集成到持续交付

通过 7 个持续交付最佳实践,给读者一个思路,无论是建设持续交付能力,还是在进行持续交付平台的选型,都能够在业界经验的基础上走向更为正确的道路.同时,本文还引入了持续交付成熟度模型,目的是想帮助企业,把一个想象中全面而复杂的交付流程进行切分,按照环节和成熟度等级展现,将实现持续交付能力之路变得更为清晰.更可操作.有助于企业建立良好的期望和愿景,并开展切实可行的行动. 市场和业务瞬息万变,企业的 IT 部门必须面对产品上线周期不断变短的事实,也就是说,需要建立产品交付反馈圈,并让这个闭环圈的反馈速

直播|超大型系统的持续集成与持续交付的解决方案及案例分析

人人都在谈敏捷开发的时代,大型系统要保证产品质量,实现快速迭代却变得不易.那么大型系统如何实现持续集成持续交付,进行产品迭代发布呢? 9月7日晚上20:00阿里巴巴高级测试开发专家--鲁小川,将在阿里云•为大家现场直播,提供解决方案!与此同时,直播现场特别设置答疑环节,让观众与专家进行一次零距离的沟通交流! 直播详情 直播时间:2016-09-07 20:00:00 直播地址:http://yq.aliyun.com/webinar/play/69 (报名之后才能收看直播哦~) 直播内容 主题: