DevOps——究竟爲什麼會興起?

DevOps——究竟為什麼會興起?

簡介

DevOps(英文Development和Operations的組合)是一組過程、方法與系統的統稱,用於促進開發(應用程序/軟件工程)、技術運營和質量保障(QA)部門之間的溝通、協作與整合。它的出現是由於軟件行業日益清晰地認識到:為了按時交付軟件產品和服務,開發和運營工作必須緊密合作。

其核心價值在於以下兩點:

  1. 更快速地交付, 響應市場的變化。
  2. 更多地關注業務的改進與提升。
DevOps——究竟為什麼會興起?

實現DevOps需要什麼?

硬性要求:工具上的準備

  • 代碼管理(SCM):GitHub、GitLab、BitBucket、SubVersion、TFS
  • 構建工具:Ant、Gradle、maven
  • 自動部署:Capistrano、CodeDeploy
  • 持續集成(CI):Bamboo、Hudson、Jenkins
  • 配置管理:Ansible、Chef、Puppet、SaltStack、ScriptRock GuardRail
  • 容器:Docker、LXC、Rkt、第三方廠商如AWS
  • 編排:Kubernetes、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

在工具的選擇上,需要結合公司業務需求和技術團隊情況而定。

DevOps——究竟為什麼會興起?

軟性需求:文化和人

DevOps成功與否,公司組織是否利於協作是關鍵。開發人員和運維人員可以良好溝通互相學習,從而擁有高生產力。並且協作也存在於業務人員與開發人員之間。出席了2016年倫敦企業級DevOps峰會的ITV公司在2012年就開始落地DevOps,其通用平臺主管Clark在接受了InfoQ的採訪,在談及成功時表示,業務人員非常清楚他們希望在最小化可行產品中實現什麼,工程師們就按需交付,不做多餘工作。這樣,工程師們使用通用的平臺(即打通的工具鏈)得到更好的一致性和更高的質量。此外,DevOps對工程師個人的要求也提高了,很多專家也認為招募到優秀的人才也是一個挑戰。

DevOps——究竟為什麼會興起?

優勢

  • DevOps的一個巨大優勢就是可以高效交付,這也正好是它的初衷

Puppet和DevOps Research and Assessment (DORA) 主辦了2016年DevOps調查報告,根據全球4600位各IT公司的技術工作者的提交數據統計,得出高效公司平均每年可以完成1460次部署。

與低效組織相比,高效組織的部署頻繁200倍,產品投入使用速度快2555倍,服務恢復速度快24倍。在工作內容的時間分配上,低效者要多花22%的時間用在為規劃好或者重複工作上,而高效者卻可以多花29%的時間用在新的工作上。所以這裡的高效不僅僅指公司產出的效率提高,還指員工的工作質量得到提升。

  • DevOps另外一個優勢就是會改善公司組織文化、提高員工的參與感

員工們變得更高效,也更有滿足和成就感;調查顯示高效員工的僱員淨推薦值(eNPS:employee Net Promoter Score)更高,即對公司更加認同。

重點

  1. 警惕總體安全風險。虛擬化、雲、BYOD以及軟件定義網絡(SDN)等新興技術不斷得到採用意味著網絡變得越來越複雜,愈發的異構化,安全風險也是如此。這其中的巨大挑戰是迄今為止,安全被視為是事後想法,而安全組織又被認為是企業的抑制因子,只會告訴企業什麼做不了而不是如何安全地做事情。這是一個文化問題,需要安全、開發者以及運營團隊培育出此前未有過的一定水平的信任和協作。做到這一點的唯一辦法是逐步地、帶著警惕地去做。[3]
  2. 觀察安全風險變化,把DevOps看作一種可將開發者和IT運營引向更快更高效的部署、運營及升級應用的協作理念和流程很重要。
  3. 注意可伸縮性。企業和技術的人必須在功能、推向市場的時間、成本以及風險承受能力等方面做出權衡。你需要有合適的衡量目標,包括特定模式下的那些端點上有多少用戶,有多少併發請求。
  4. 爭取實現易用-DevOps就是自動化和可重複性。
  5. 管理網關。儘管新的目標是在開發和運營團隊之間建設最好的文化,但為了確保產品環境保持穩定,在這兩個職能之間保留一些網關仍然是好的。
DevOps——究竟為什麼會興起?

DevOps的採用現狀

DevOps正在增長,尤其是在大企業中:調查發現,DevOps的接受度有了顯著提高。74%的受訪者已經接受了DevOps,而去年這一比例為66%。目前,在81%的大企業開始接受DevOps,中小企業的接受度僅為70%。

那麼具體而言都有些公司在採用DevOps呢?Adobe、Amazon、Apple、Airbnb、Ebay、Etsy、Facebook、LinkedIn、Netflix、NASA、Starbucks、Target(泛歐實時全額自動清算系統)、Walmart、Sony等等。

DevOps——究竟為什麼會興起?

為什麼會繼續火下去?

  • 條件成熟:技術配套發展

技術的發展使得DevOps有了更多的配合。早期時,大家雖然意識到了這個問題的,但是苦於當時沒有完善豐富的技術工具,是一種“理想很豐滿,但是現實很骨感”的情況。DevOps的實現可以基於新興的容器技術;也可以在自動化運維工具Puppet、SaltStack、Ansible之後的延伸;還可以構建在傳統的Cloud Foundry、OpenShift等PaaS廠商之上。

  • 來自市場的外部需求:這世界變化太快

IT行業已經越來越與市場的經濟發展緊密掛鉤,專家們認為IT將會有支持中心變成利潤驅動中心。事實上,這個變化已經開始了,這不僅體現在Google、蘋果這些大企業中,而且也發生在傳統行業中,比如出租車業務中的Uber、酒店連鎖行業中的Airbnb、圖書經銷商Amazon等等。能否讓公司的IT配套方案及時跟上市場需求的步伐,在今天顯得至關重要。

DevOps 2016年度報告給出了一個運維成本的計算公式:

停機費用成本 = 部署頻率 * 版本迭代失敗概率 * 平均修復時間 * 斷電的金錢損失

  • 來自團隊的內在動力:工程師也需要

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

工具鏈的打通使得開發者們在交付軟件時可以完成生產環境的構建、測試和運行;正如Amazon的VP兼CTO Werner Vogels那句讓人印象深刻的話:“誰開發誰運行”。(You build it, you run it)

DevOps——究竟為什麼會興起?


分享到:


相關文章: