赞
踩
A compound of development (Dev) and operations (Ops), DevOps is the union of people, process, and technology to continually provide value to customers.
开发(Dev)和运营(Ops)的组合,DevOps是人员,流程和技术的结合,以不断为客户提供价值。
What does DevOps mean for teams? DevOps enables formerly siloed roles—development, IT operations, quality engineering, and security—to coordinate and collaborate to produce better, more reliable products. By adopting a DevOps culture along with DevOps practices and tools, teams gain the ability to better respond to customer needs, increase confidence in the applications they build, and achieve business goals faster.
DevOps对团队意味着什么? DevOps使以前孤立的角色(开发,IT运营,质量工程和安全性)能够协调和协作以生产更好,更可靠的产品。 通过采用DevOps文化以及DevOps的实践和工具,团队可以更好地响应客户需求,增强对所构建应用程序的信心,并更快地实现业务目标。
DevOps 集文化理念、实践和工具于一身,可以提高组织高速交付应用程序和服务的能力,与使用传统软件开发和基础设施管理流程相比,能够帮助组织更快地发展和改进产品。这种速度使组织能够更好地服务其客户,并在市场上更高效地参与竞争。
在 DevOps 模式下,开发团队和运营团队都不再是“孤立”的团队。 有时,这两个团队会合为一个团队,他们的工程师会在应用程序的整个生命周期(从开发测试到部署再到运营)内相互协作,开发出一系列不限于单一职能的技能。
在一些 DevOps 模式下,质保和安全团队也会与开发和运营团队更紧密地结合在一起,贯穿应用程序的整个生命周期。当安全是所有 DevOps 团队成员的工作重心时,这有时被称为“DevSecOps”。
这些团队会使用实践经验自动执行之前手动操作的缓慢流程。他们使用能够帮助其快速可靠地操作和发展应用程序的技术体系和工具。这些工具还可以帮助工程师独立完成通常需要其他团队协作才能完成的任务(例如部署代码或预置基础设施),从而进一步提高团队的工作速度。
速度
高速运转,让您可以更快速地针对客户进行创新、更好地适应不断变化的市场,同时更有效地推动业务成果。DevOps 模式能够帮助您的开发人员和运营团队实现这些目标。例如,微服务和持续交付能够让团队充分掌控服务,然后更快速地发布更新。
快速交付
提高发布的频率和速度,以便您能够更快速地进行创新并完善产品。您发布新功能和修复错误的速度越快,就越能快速地响应客户需求并建立竞争优势。持续集成和持续交付是自动执行软件发布流程(从构建到部署)的两项实践经验。
可靠性
确保应用程序更新和基础设施变更的品质,以便您能够在保持最终用户优质体验的同时,更加快速可靠地进行交付。使用持续集成和持续交付等实践经验来测试每次变更是否安全以及能够正常运行。监控和日志记录实践经验能够帮助您实时了解当前的性能。
规模
大规模运行和管理您的基础设施及开发流程。自动化和一致性可在降低风险的同时,帮助您有效管理复杂或不断变化的系统。例如,基础设施即代码能够帮助您以一种可重复且更有效的方式来管理部署、测试和生产环境。
增强合作
建立一个适应 DevOps 文化模式的更高效的团队,强调主人翁精神和责任感。开发人员和运营团队密切合作,共同承担诸多责任,并将各自的工作流程相互融合。这有助于减少效率低下的工作,同时节约大家的时间(例如,缩短开发人员和运营团队之间的交接时间,编写将运行环境考虑在内的代码)。
安全性
在快速运转的同时保持控制力和合规性。利用自动实施的合规性策略、精细控制和配置管理技术,您可以在不牺牲安全性的前提下采用 DevOps 模式。例如,利用基础设施即代码和策略即代码,您可以大规模定义并追踪合规性。
Terraform:Terraform 是一个基础设施管理工具,允许您正确地构建、更改和管理基础设施。Terraform 有一个企业版和开源版,还可以安装在 macOS、Linux 和 Windows 系统上。
Ansible:Ansible 也是一个基础设施管理工具。Ansible 可以帮助你部署应用程序,供应和配置管理的服务器。Ansible 是用 Python 构建的,由 RedHat 维护,是免费和开源的。
Packer:Packer 是另一个来自 Hashicorp 的 DevOps 工具。用 Golang 编写的 Packer 可以帮助你自动创建虚拟镜像。
Kubernetes (K8s) :Kubernetes (K8s) 是一个谷歌开源工具,它可以让你管理 Docker 容器。由于在生产中经常有大量的容器在运行,因此,Kubernetes 使编排这些容器成为可能。首先要了解编排 Docker 容器的原因。当有许多容器在运行时,很难手动监视这些容器,并使它们彼此通信;另外,这种扩展以及负载平衡也变得困难。
DevOps包括持续集成(Continuous Integration,CI)、持续部署(Continuous Deployment)和持续运维(Continuous Operations,CO)三部分。
自动化的开发、构建、发布、测试、监控与运维是DevOps的基本组成部分,通过持续集成工具可以将这些部分组合连接起来。自建持续集成系统一般以Jenkins作为核心。市场上还有丰富的集成套件,国外有CircleCI,Codeship、TravisCI TeamCity、Go CD、GitLab CI、Bamboo、Codeship、Codefresh等;国内有阿里的云效平台、EMAS,腾讯的织云、工蜂、Hub、蓝鲸、Coding、flow.ci、Walle等。
(以下内容转载自https://www.jianshu.com/p/c5d002cf25b9)
硬性要求:工具上的准备
上文提到了工具链的打通,那么工具自然就需要做好准备。现将工具类型及对应的不完全列举整理如下:
代码管理(SCM):GitHub、GitLab、BitBucket、SubVersion
构建工具:Ant、Gradle、maven
自动部署:Capistrano、CodeDeploy
持续集成(CI):Bamboo、Hudson、Jenkins
配置管理:Ansible、Chef、Puppet、SaltStack、ScriptRock GuardRail
容器:Docker、LXC、第三方厂商如AWS
编排:Kubernetes、Core、Apache Mesos、DC/OS
服务注册与发现:Zookeeper、etcd、Consul
脚本语言:python、ruby、shell
日志管理:ELK、Logentries
系统监控:Datadog、Graphite、Icinga、Nagios
性能监控:AppDynamics、New Relic、Splunk
压力测试:JMeter、Blaze Meter、loader.io
预警:PagerDuty、pingdom、厂商自带如AWS SNS
HTTP加速器:Varnish
消息总线:ActiveMQ、SQS
应用服务器:Tomcat、JBoss
Web服务器:Apache、Nginx、IIS
数据库:MySQL、Oracle、PostgreSQL等关系型数据库;cassandra、mongoDB、redis等NoSQL数据库
项目管理(PM):Jira、Asana、Taiga、Trello、Basecamp、Pivotal Tracker
在工具的选择上,需要结合公司业务需求和技术团队情况而定。(注:更多关于工具的详细介绍可以参见此文:51 Best DevOps Tools for #DevOps Engineers)
软性需求:文化和人
DevOps成功与否,公司组织是否利于协作是关键。开发人员和运维人员可以良好沟通互相学习,从而拥有高生产力。并且协作也存在于业务人员与开发人员之间。
出席了2016年伦敦企业级DevOps峰会的ITV公司在2012年就开始落地DevOps,其通用平台主管Clark在接受了InfoQ的采访,在谈及成功时表示,业务人员非常清楚他们希望在最小化可行产品中实现什么,工程师们就按需交付,不做多余工作。
这样,工程师们使用通用的平台(即打通的工具链)得到更好的一致性和更高的质量。此外,DevOps对工程师个人的要求也提高了,很多专家也认为招募到优秀的人才也是一个挑战。
Copyright © 2003-2013 www.wpsshop.cn 版权所有,并保留所有权利。