天天看點

devops學習

其實devops就是為了讓開發、運維和qa可以高效協作的流程。(可以把devops看作開發、技術營運和品質保障(qa)三者的交集。)

devops學習

devops對應用程式釋出的影響

在很多企業中,應用程式釋出是一項涉及多個團隊、壓力很大、風險很高的活動。然而在具備devops能力的組織中,應用程式釋出的風險很低,原因如下 [2] :

(1)減少變更範圍

與傳統的瀑布模式模型相比,采用靈活或疊代式開發意味着更頻繁的釋出、每次釋出包含的變化更少。由于部署經常進行,是以每次部署不會對生産系統造成巨大影響,應用程式會以平滑的速率逐漸生長。

(2)加強釋出協調

靠強有力的釋出協調人來彌合開發與營運之間的技能鴻溝和溝通鴻溝;采用電子資料表、電子資料表、電話會議和企業門戶(wiki、sharepoint)等協作工具來確定所有相關人員了解變更的内容并全力合作。

(3)自動化

強大的部署自動化手段確定部署任務的可重複性、減少部署出錯的可能性。

devops學習

與傳統開發方法那種大規模的、不頻繁的釋出(通常以“季度”或“年”為機關)相比,靈活方法大大提升了釋出頻率(通常以“天”或“周”為機關)。

實作devops需要什麼?

硬性要求:工具上的準備

上文提到了工具鍊的打通,那麼工具自然就需要做好準備。現将工具類型及對應的不完全列舉整理如下:

代碼管理(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對工程師個人的要求也提高了,很多專家也認為招募到優秀的人才也是一個挑戰。

作者:給你一顆小瓜子

著作權歸作者所有。商業轉載請聯系作者獲得授權,非商業轉載請注明出處。