Chinaunix首页 | 论坛 | 博客
  • 博客访问: 471273
  • 博文数量: 153
  • 博客积分: 0
  • 博客等级: 民兵
  • 技术积分: 1575
  • 用 户 组: 普通用户
  • 注册时间: 2016-12-20 17:02
文章分类

全部博文(153)

文章存档

2017年(111)

2016年(42)

我的朋友

分类: 云计算

2017-01-05 17:11:05

12月9日,在云栖计算之旅线下沙龙上,阿里云容器服务团队的高级研发工程师秦妤嘉分享了《基于容器技术的DevOps探索》。首先介绍了DevOps和CD,接着分析了Docker如何打破传统CD壁垒,最后讲解了怎样从零开始搭建一个持续交付系统。

视频回顾

DevOps与Continuous Delivery

DevOps

在一个较成熟的软件和服务交付的团队里,就技术层面来说主要分为三个组成部分:开发、测试和运维。开发测试团队比较关注的是代码能否运行,而运维比较关注的是系统能否在上线后稳定运行,于是隔阂就产生了。DevOps的出现就是为了解决这一问题。DevOps的作用就是将这三个部分紧密的连接起来,提供一条从软件开发到质量保障到技术运营的自动化流水线,加强不同角色之间的沟通和协作,从而减少资源浪费、提高质量,并将产品快速推向市场,快速有效的把一个想法变成价值交付到客户手中。

CD

52825a478044c7a423c164b0478c5b4900e119f6

怎样实现DevOps?我们定义了CD(持续集成),CD是一个方法。CD有三个重要的点:自动化、持续和有效的反馈。图中从左到右是代码到交付的过程。

CD过程中可能遇到几个问题,概括有三方面:环境一致性问题,开发人员之间环境也会产生不一致;版本管理问题;快速响应(发布、回滚)问题。

那么,问题的根源是什么呢?是因为Developer交付的只有代码,以及代码的依赖,而keep site running需要除了代码之外的运行环境,以及运行环境之间的依赖。

 

Docker如何打破传统CD壁垒?

Docker是实现DevOps最合适的工具之一,甚至变革了软件交付方式,可以有效解决持续交付过程中遇到的问题。

阿里云容器服务

6fae0ee87a729880328cbce7e0eb36620ee16a31

阿里云容器服务在资源层面有集群、节点,在内容层面有Compose模板、镜像,在应用层面有应用、服务和容器。

完整的容器化持续交付流程

cd96d08a5b1cbfeb2dce38318cd95bda3222dba7

传统的开发过程开发者的代码里有逻辑、应用以及代码依赖包,而我们的代码中会更多的加入Docker File、Docker Compose,用来制作集装箱和搬运集装箱,代码提交成功后代码服务器会通知CI server,CI server会拉取代码进行代码打包,打包后进行单元测试,如果单元测试没有通过,有效的反馈就会马上告诉开发者。如果通过,认为应用包括有应用,我们会根据代码给予的Docker file制作镜像,server会有配置的使用权限,会把镜像推送到阿里云容器,代码可交付的东西已经产生。

部署阶段,如果进行集成测试或回归测试,走测试环境,部署时Compose模板就是用来描述如何部署的,通过Jenkins来丰富功能,通过各种插件将镜像拉取下来部署在应用环境上,从而实现代码提交变更到整个部署过程。

阅读全文请点击:

阅读(1310) | 评论(0) | 转发(0) |
给主人留下些什么吧!~~