作者:天翼云 研发一部 赵恒
基本概念和延长的思考
DevOps,是 Development(开发)和 Operations(运维)组成的复合词,个别译为“开发运维一体化”。
看到这个概念,首先会产生几个问题:
开发是什么,哪些环节是开发?
运维是什么,哪些环节是运维?
开发人员写好代码在本地调试,环境出问题了本人来调整,这是开发工作还是运维工作?
系统故障后,运维人员发现是配置文件内容出错了就改成了正确的信息,这是运维还是开发工作?
这些问题不正是阐明自身开发和运维原本就是一体的吗,为何还要进行开发运维一体化?
每个切身参加到开发和运维的员工,日常工作肯定常常遇到各种界线不清晰的问题。面对这类问题,应答策略和解决办法,大抵分为如下两个方向:
1、从治理角度,制订工作环节和流程的规章制度,标准人员行为,确保开发和运维环节的连接。
2、从技术研发角度,钻研开发过程的管理工具,缩小人工的环节,从而缩小问题呈现的机会。
麻利治理
治理角度上,从瀑布式开发到麻利开发,人们始终在面对的是软件一直产生变更的需要场景,从而被动衍生进去一套应答频繁变动,疾速迭代的管理模式。
传统的瀑布开发流程是:
· 需要人员收集客户需要;
· 进行需要剖析,输入需要规格说明书;
· 招集开发部门宣讲需要,开发人员开始编写代码;
· 写好代码当前,进行后续的代码构建、测试环境部署;
· 通过测试部门测试,通过后交给施行部门;
· 施行部门进行生产环境部署。
在瀑布模式和麻利开发独特呈现的语境中,人们常常认为瀑布模式是一种过期的技术,毛病很多的技术。而通过上述的流程能够看出,瀑布模式清晰的定义出了各个环节的职责范畴,保障软件开发工作无偏差、高质量的实现。
而麻利开发呈现不是为了颠覆瀑布模式,而是补救瀑布模式周期较长不够灵便这一毛病。
麻利开发并没有摈弃瀑布开发的工作环节,而是在常常产生变更的场景下,进行灵便的工作调整,来实现在变动中迭代的成果。
丰盛的工具
技术角度上,开发过程的各个环节,都曾经诞生出多种实用于各种不同场景的工具。有开源、有商用,供各类不同的用户抉择。
一些常见的技术:
版本控制 & 合作开发: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
监控,正告 & 剖析:Prometheus、Nagios、Ganglia、Sensu、zabbix、ICINGA、Graphite、Kibana
能够看到工具不仅仅局限在开发环节,构建、测试、部署、运维工具也均倒退出了优良的软件和技术。
优良的开发管理模式和成熟的技术的相交融,造成了明天咱们看到的 DevOps 模式。
实际 DevOps 的准则
那么当初技术曾经具备了,优良的开发管理模式也具备了。如何联合两者,造成一个借助工具来疾速、自动化的实现整个开发生命周期的模式呢?
答案就是 DevOps。
但须要留神的是,DevOps 并非一套通用办法来做技术和流程的联合。而是技术和流程联合这一实际过程中,一直调整、摸索,最终达到一个适宜本人的模式。
每个开发者或者企业都有共性的工作和管理模式。没有一个规范的计划可能实用于每个企业,企业在践行 DevOps 时应该充分考虑这样一些准则:
1、基础设施即代码(Infrastructure as Code)
DeveOps 的根底是将反复的事件应用自动化脚本或软件来实现,例如 Docker(容器化)、Jenkins(继续集成)、Puppet(基础架构构建)、Vagrant(虚拟化平台)等。
2、继续交付(Continuous Delivery)
继续交付是在生产环境公布牢靠的软件并交付给用户应用。而继续部署则不肯定交付给用户应用。波及到 2 个工夫,TTR(Time to Repair)修复工夫,TTM(Time To Marketing)产品上线工夫。要做到高效交付牢靠的软件,须要尽可能的缩小这 2 个工夫。部署能够有多种形式,比方蓝绿部署、金丝雀部署等。
3、协同工作(Culture of Collaboration)
开发者和运维人员必须定期进行亲密的单干。开发应该把运维角色了解成软件的另一个用户群体。合作有几个的倡议:1、自动化(缩小不必要的合作);2、小范畴(每次批改的内容不宜过多,缩小公布的危险);3、对立信息集散地(如 wiki,让单方可能共享信息);4、标准化合作工具(比方 jenkins)。
高效便捷的 DevOps 体验 —- 天翼云 EasyCoding 麻利开发平台
论述了这些概念之后,有没有疾速实际 DevOps 的办法呢?
市面上目前曾经呈现大量成熟的 DevOps 平台供用户筛选了,很多平台都可能进行试用,让用户尝试 DevOps,体验 DevOps 带来的提高。
天翼云 EasyCoding 麻利开发平台就是这样一款产品,以产品价值在线化,交付价值自动化为设计理念,提供麻利开发 SaaS 服务,助力大中型企业高价值、高质量、高效率公布产品,开启高效研发之旅。
天翼云 EasyCoding 平台具备这些劣势:
1. 灵便的编排能力
可灵便编排的工作项界面、流程和规定,反对各种简单的业务,可编排的流水线。
2. 灵便的扩大能力
反对利用、单据、属性、事件多级扩大机制,实现无代码或低代码的扩大
3. 欠缺的凋谢生态
可基于丰盛的前端组件和后端 API、易用的公共服务定制开发衍生利用
4. 疾速稳固的响应
基于搜索引擎的读写拆散,保障高并发、大数据量场景下稳固的性能
5. 前瞻性的治理思维
交易流程在线,业务流动在线,端到端全程可视跟踪业务流动
6. 稳固平安的研发环境
基于天翼云的接入平安、数据安全治理,多正本容灾架构设计
下期咱们将介绍天翼云 EasyCoding 的根本应用办法,带您一步步走入 DevOps。