導讀 | 當我們談到 DevOps 時,可能討論的是:流程和管理,運維和自動化,架構(gòu)和服務,以及文化和組織等等概念。那么,到底什么是"DevOps"呢? |
隨著軟件發(fā)布迭代的頻率越來越高,傳統(tǒng)的「瀑布型」(開發(fā)—測試—發(fā)布)模式已經(jīng)不能滿足快速交付的需求。2009 年左右 DevOps 應運而生,簡單地來說,就是更好的優(yōu)化開發(fā)(DEV)、測試(QA)、運維(OPS)的流程,開發(fā)運維一體化,通過高度自動化工具與流程來使得軟件構(gòu)建、測試、發(fā)布更加快捷、頻繁和可靠。
在2016 DevOps 新趨勢調(diào)查報告顯示,74% 的公司在嘗試接受 DevOps,那么 Devops 有哪些好處與價值呢?
- 代碼的提交直接觸發(fā):消除等待時間,快速反饋
- 每個變化對應一個交付管道:使問題定位和調(diào)試變得簡單
- 全開發(fā)流程高效自動化:穩(wěn)定,快速,交付結(jié)果可預測
- 持續(xù)進行自動化回歸測試:提升交付質(zhì)量
- 設施共享并按需提供:資源利用最大化
以上可以看出,DevOps 的好處更多基于在于持續(xù)部署與交付,這是對于業(yè)務與產(chǎn)品而言。而 DevOps 始于接受 DevOps 文化與技術(shù)方法論,它是部門間溝通協(xié)作的一組流程和方法,有助于改善公司組織文化、提高員工的參與感。
Devops與持續(xù)集成DevOps 是一個完整的面向IT運維的工作流,以 IT 自動化以及持續(xù)集成(CI)、持續(xù)部署(CD)為基礎,來優(yōu)化程式開發(fā)、測試、系統(tǒng)運維等所有環(huán)節(jié)。
縱觀各個 DevOps 實踐公司的技術(shù)資料,最全面最經(jīng)典的是 flickr 的10+ deploys per day最 佳實踐提到的 DevOps Tools 的技術(shù)關鍵點:
1.Automatedinfrastructure(自動化,系統(tǒng)之間的集成) 2.sharedversioncontrol(SVN共享源碼) 3.onestepbuildanddeploy(持續(xù)構(gòu)建和部署) 4.featureflags(主干開發(fā)) 5.Sharedmetrics 6.IRCandIMrobots(信息整合)
以上的技術(shù)要點由持續(xù)集成/部署一線貫穿,主干開發(fā)是進行持續(xù)集成的前提,自動化以及代碼周邊集中管理是實施持續(xù)集成的必要條件。毫無疑問,DevOps 是持續(xù)集成思想的延伸,持續(xù)集成/部署是 DevOps 的技術(shù)核心,在沒有自動化測試、持續(xù)集成/部署之下,DevOps就是空中樓閣。
Everything is Code,DevOps 也同樣要通過技術(shù)工具鏈完成持續(xù)集成、持續(xù)交付、用戶反饋和系統(tǒng)優(yōu)化的整合。Elasticbox 整理了 60+ 開源工具與分類,其中包括版本控制&協(xié)作開發(fā)工具、自動化構(gòu)建和測試工具、持續(xù)集成&交付工具、部署工具、維護工具、監(jiān)控,警告&分析工具等等,
補充了一些國內(nèi)的服務,可以讓你更好的執(zhí)行實施 DevOps 工作流。
- 版本控制&協(xié)作開發(fā):GitHub、GitLab、BitBucket、SubVersion、Coding、Bazaar
- 自動化構(gòu)建和測試:Apache Ant、Maven 、Selenium、PyUnit、QUnit、JMeter、Gradle、PHPUnit
- 持續(xù)集成&交付: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、Power 、RunDeck、Saltstack、Ansible
- 微服務平臺:OpenShift、Cloud Foundry、Kubernetes、Mesosphere
- 服務開通:Puppet、Docker Swarm、Vagrant、Powershell、OpenStack Heat
- 日志管理:Logstash、CollectD、StatsD
- 監(jiān)控,警告&分析:Nagios、Ganglia、Sensu、zabbix、ICINGA、Graphite、Kibana
如果想整個業(yè)務部署 DevOps,不但需要軟性要求即從上而下的培養(yǎng) DevOps 文化自上而下地進行探索,也有硬性工具鏈要求,才能獲得更高質(zhì)量的軟件交付。
最后,不論你是技術(shù)Leader,還是一名Dev、QA 或 Ops,實現(xiàn)全面的 DevOps 非常理想化也十分有挑戰(zhàn)。
原文來自: http://www.zmynmublwnt.cn/uploads/allimg/devops.html