DevOps开发运维与持续集成相关知识

什么是DevOps

DevOps(Development和Operations的组合词)是一种重视“软件开发人员(Dev)”和“IT运维技术人员(Ops)”之间沟通合作的文化、运动或惯例。透过自动化“软件交付”和“架构变更”的流程,来使得构建、测试、发布软件能够更加地快捷、频繁和可靠。–维基百科

DevOps(英文Development和Operations的组合)是一组过程、方法与系统的统称,用于促进开发(应用程序/软件工程)、技术运营和质量保障(QA)部门之间的沟通、协作与整合。它的出现是由于软件行业日益清晰地认识到:为了按时交付软件产品和服务,开发和运营工作必须紧密合作。–百度百科

提到DevOps不得不提到的就是持续集成:

持续集成是一种软件开发实践,团队成员经常整合他们的工作,通常每个人至少每天集成 – 每天都会进行多次整合。 每个集成都通过自动构建(包括测试)进行验证,以尽可能快地检测集成错误。 许多团队发现,这种方法导致了大大降低的集成问题,并允许团队更快地开发连贯的软件。

为什么会有DevOps/h2>

DevOps这个新理念的出现,是为了应对IT环境中普遍面临的一些挑战。

持续集成的好处是,集成不再是个头疼事。软件在一直被编写和集成。在持续集成之前,集成发生在创建过程的结尾阶段,一次性完成,并且不知道要耗时多久。而现在持续集成,每天都融入到了工作方式当中。

持续交付(Continuous Delivery,CD)

让我们说回到我们的两位开发人员,程序员A和程序员B。持续交付意味着每次程序员A或程序员B修改、整合和构建代码时,也同时在类似于生产环境中自动测试了这段代码。我们通常将这个在不同环境发布和测试的过程叫做部署流水线。通常部署流水线有一个开发环境,一个测试环境,一个准生产环境,但是这些阶段会根据不同的团队、产品和组织而变化。例如,Mingle团队有一个阶段叫做“纸杯蛋糕”的准生产环境,而Etsy的准生产环境叫做“公主”。

IBM DevOps 方法简介

IBM DevOps 方法加快并维持您在规划、开发、测试和交付方面的软件推动的创新。无论您的关注点是移动开发、云托管、大数据分析还是 交商务、您都可以更快地持续发布更好的软件和服务,而且成本更低,风险也更小。

IBM DevOps 通过吸引并协调软件交付生命周期中的所有参与者来完成其工作,这些参与者包括业务团队、架构师、开发人员和测试人员、还有 IT 运营和生产人员,他们都有一个共同的目标:持续创新,通过持续交付来支持持续创新,并通过持续反馈来改进创新。

采用 IBM DevOps 的前提条件

包含 IBM DevOps 方法的组织遵循 4 个指导原则。

  • 协作学习文化非常重要
  • 敏捷开发和自动化可加速创新
  • 反馈循环可缩短反馈的时间
  • 整个系统成为了目标

敏捷方法和自动化可加速创新

IBM DevOps 在整个软件开发生命周期中扩展了敏捷的、迭代的开发实践(开发、测试、部署、验证和调整)以及精益思想原则。

开发和测试类似生产的系统 与使用可重读的、可靠的流程执行可迭代的、频繁的部署 的敏捷特征是 DevOps 采用中的主要部分。敏捷实践提供了一些结构和规则,根据用户的需求,始终如一地向用户交付宝贵的软件。

系统化地消除一些行为和易错活动也是加速软件交付的关键。最大程度地减少引入的手动误差的一种方法就是部署自动化,自动化可加快测试和交付流程,同时确保满足法规需求。

自动部署有助于软件更快地到达生产服务器(物理、虚拟或云),从而加快上市时间。您可以建立可重复、无差错、可扩展的应用程序部署流程,并获取版本所在位置的可见性。相反,如果进行手动部署,那么部署、测试和生产环境中的差异(以及不连贯的部分流程)可能造成部署失败。

通过使用电脑自带的功能来处理重复的任务,团队可以进行一些批判性的思考,并提供一些有创造性的问题解决方案。

DevOps 的技术栈与工具链

Everything is Code,DevOps 也同样要通过技术工具链完成持续集成、持续交付、用户反馈和系统优化的整合。Elasticbox 整理了 60+ 开源工具与分类,其中包括版本控制&协作开发工具、自动化构建和测试工具、持续集成&交付工具、部署工具、维护工具、监控,警告&分析工具等等,
补充了一些国内的服务,可以让你更好的执行实施 DevOps 工作流。

  •     版本控制&协作开发:GitHub、GitLab、BitBucket、SubVersion、Coding、Bazaar
  •     自动化构建和测试:Apache Ant、Maven 、Selenium、PyUnit、QUnit、JMeter、Gradle、PHPUnit
  •     持续集成&交付:Jenkins、Capistrano、BuildBot、Fabric、Tinderbox、Travis CI、flow.ci Continuum、LuntBuild、CruiseControl、Integrity、Gump、Go
  •     容器平台: Docker、Rocket、Ubuntu(LXC)、第三方厂商如(AWS/阿里云)
  •     配置管理:Chef、Puppet、CFengine、Bash、Rudder、Powershell、RunDeck、Saltstack、Ansible
  •     微服务平台:OpenShift、Cloud Foundry、Kubernetes、Mesosphere
  •     服务开通:Puppet、docker Swarm、Vagrant、Powershell、OpenStack Heat
  •     日志管理:Logstash、CollectD、StatsD
  •     监控,警告&分析:Nagios、Ganglia、Sensu、zabbix、ICINGA、Graphite、Kibana

DevOps开发运维与持续集成相关知识

顺便再分享一个 DevOps BookMarks,涉及了DevOps方方面面的工具和内容,有兴趣可以去学习下。

参考资料

给 DevOps 初学者的入门指南

DevOps:从理念到实施

InfoQ DevOps相关内容

了解DevOps:从概念、关键问题、兴起到实现需求

致产品经理: 持续集成、持续交付、持续部署和DevOps

文章知识点与官方知识档案匹配,可进一步学习相关知识云原生入门技能树持续集成和部署(Jenkins)使用helm安装Jenkins8689 人正在系统学习中

声明:本站部分文章及图片源自用户投稿,如本站任何资料有侵权请您尽早请联系jinwei@zod.com.cn进行处理,非常感谢!

上一篇 2017年6月8日
下一篇 2017年6月8日

相关推荐