DevOps是啥?为什么Container和它形影不离?

 

什么是DevOps?为什么最近谈到DevOps的时候总会出现Container的身影?DevOps和敏捷基础设施,持续交付,scriptedinfrastructure又有什么关系?...



DevOps是Developer Operations的缩写,出现于2009年,并没有一个官方的定义。对于DevOps是什么,也是仁者见仁智者见智,但有几点核心的基本原则,是大家公认的:

  • 加强开发人员(写代码的人)和IT运维人员(部署,管理应用的人)之间的合作;
  • 集成软件编码,测试和部署的流程;
  • 减少环境变量,从而让开发和部署更可控,更高效;
  • 通过自动化更多的流程,让软件开发和部署具有扩展性。


综上所述,这些概念在改变着企业开发和交付软件的方式。传统的方式中,编程和部署是不同阶段的操作。实际上,在某些方面的趋势是去集成化,因为面向对象的编程强调的是模块化,而不是不同组件的集成。DevOps却是不同的方向。

DevOps期望达到的结果是软件能够更快,更稳定地交付。这在唯快不破的移动互联网时代尤其重要,用户希望结果都是实时的,而云中,高可用和可移植性至关重要。

DevOps和容器
搜索
容器经常和DevOps一起出现,出自Docker,CoreOS和Canonical(最近发布了生产级别的LXD)等公司的容器平台,经过过去几年的发展,已经开始进入生产环境。

容器之所以能成为DevOps革命的重要部分,最主要的原因在于容器让开发者能够更容易地打包软件,以与平台无关的方式。如果你的应用是Docker化的,那么也能运行在任何支持Docker的数据中心或云中,并能很方便地在不同的主机间迁移,几乎完全消除了环境变量带来的不便。

当然,通过像VMware这种传统虚拟服务器镜像,也能达到这种效果。但是代价太大了,你必须要虚拟出一个完整的操作系统,而不是一个容器。另外,如果想要保持OS镜像的一致,不可避免地要用到比容器更多的配置变量。

容器对于DevOps的实现也非常重要。以前写了代码,要测试的时候得先停下开发的工作,开始编译、运行代码,看运行的结果,然后到下一轮代码的变更,循环往复。有了容器就不一样了,因为程序员和管理员只要把新容器运行起来,就能很快地测试新的代码和配置,结果就是实现了开发和测试代码的持续性。

敏捷基础设施,持续交付
搜索
像敏捷基础设施,持续交付和scripted infrastructure这些词都属于DevOps的范畴,因为他们描述了类似的过程或概念。

敏捷基础设施代表了类似容器的这种平台,可以更容易地集成开发和部署流程,帮助实现DevOps。一个可以很快扩展的云基础设施,或者一个可以提供多个虚拟服务器或容器的数据中心,都是敏捷基础设施。

持续交付是一种应用开发流程,也是DevOps的核心。正如上面所说,以持续的方式开发、测试和部署应用是DevOps最主要的好处之一。

Scripted infrastructure通常指IT运维人员所提供的,可以自动扩展的服务器基础设施。换句话说,他们可以指定基础设施,实现『infrastructure as code』。像Puppet和Ansible都是scripted infrastructureas的解决方案。

最后给大家分享几张关于Continuous Delivery小漫画,Spotify(Spotify也是Docker的资深用户)的一位程序媛Nhan Ngo,她在读《Continuous Delivery》这本书时,将书中的内容画成了小漫画。









原文链接:http://thevarguy.com/cloud-computing-services-and-business-solutions/what-does-devops-mean-and-how-will-it-affect-channel

想加入Docker大军吗?想成为一只云雀吗?想帮助我司HR美女实现梦想吗?迅速用简历甩她一脸吧!我们求贤若渴,我们爱才如命,万事俱备就差你!详情请点击【阅读原文】或公众号页面中『@灵雀云』『加入我们』,或直接发送简历至qianfan@alauda.io。等你哟~


    关注 灵雀云


微信扫一扫关注公众号

0 个评论

要回复文章请先登录注册