DevOps究竟是什麼?

DevOps的概念

DevOps一次詞的來自於Development和Operations的組合,突出重視軟件開發人員和運維人員的溝通合作,通過自動化流程來使得軟件構建、測試、發佈更加快捷、頻繁和可靠。

DevOps是爲了填補開發端和運維端之間的信息鴻溝,改善團隊之間的協作關係。不過需要澄清的一點是,從開發到運維,中間還有測試環節。DevOps其實包含了三個部分:開發、測試和運維。

                                                           

 

換句話說,DevOps希望做到的是軟件產品交付過程中IT工具鏈的打通,使得各個團隊減少時間損耗,更加高效地協同工作。

DevOps的幾個關鍵問題

1 好處是什麼

DevOps的一個巨大好處就是可以高效交付,這也正好是它的初衷。Puppet和DevOps Research and Assessment (DORA) 主辦了2016年DevOps調查報告中,根據全球4600位各IT公司的技術工作者的提交數據統計,得出高效公司可以完成平均每年1460次部署。與低效組織相比,高效組織的部署頻繁200倍,產品投入使用速度快2555倍,服務恢復速度快24倍。在工作內容的時間分配上,低效者要多花22%的時間用在爲規劃好或者重複工作上,而高效者卻可以多花29%的時間用在新的工作上。所以這裏的高效不僅僅指公司產出的效率提高,還指員工的工作質量得到提升。

DevOps另外一個好處就是會改善公司組織文化、提高員工的參與感。員工們變得更高效,也更有滿足和成就感;調查顯示高效員工的僱員淨推薦值(eNPS:employee Net Promoter Score)更高,即對公司更加認同。

2 快速部署同時提高IT穩定性。這難道不矛盾嗎?

快速的部署其實可以幫助更快地發現問題,產品被更快地交付到用戶手中,團隊可以更快地得到用戶的反饋,從而進行更快地相應。而且,DevOps小步快跑的形式帶來的變化是比較小的,出現問題的偏差每次都不會太大,修復起來也會相對容易一些。

因此,認爲速度就意味着危險是一種偏見。此外,滯後軟件服務的發佈也並不一定會完全地避免問題,在競爭日益激烈的IT行業,這反而可能錯失了軟件的發佈時機。

 

而對於工程師而言,他們也是DevOps的受益者。微軟資深工程師Scott Hanselman說過“對於開發者而言,最有力的工具就是自動化工具”(The most powerful tool we have as developers is automation)。常用的自動化工具如下:

  • 代碼管理(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、IIS
  • Web服務器:Apache、Nginx
  • 數據庫:MySQL、Oracle、PostgreSQL等關係型數據庫;cassandra、mongoDB、redis等NoSQL數據庫
  • 項目管理(PM):Jira、Asana、Taiga、Trello、Basecamp、Pivotal Tracker

 


 

發表評論
所有評論
還沒有人評論,想成為第一個評論的人麼? 請在上方評論欄輸入並且點擊發布.
相關文章