DevOps介紹和工具鏈

目前在國外谱醇,互聯(lián)網(wǎng)巨頭如Google暇仲、Facebook、Amazon副渴、LinkedIn奈附、Netflix、Airbnb煮剧,傳統(tǒng)軟件公司如Adobe斥滤、IBM、Microsoft勉盅、SAP等佑颇,亦或是網(wǎng)絡(luò)業(yè)務(wù)非核心企業(yè)如蘋果、沃爾瑪草娜、索尼影視娛樂挑胸、星巴克等都在采用DevOps或提供相關(guān)支持產(chǎn)品。那么DevOps究竟是怎樣一回事宰闰?

image.png

image.png

http://www.cnblogs.com/cy163/p/3869175.html
http://www.importnew.com/17770.html
什么是DevOps
DevOps (a clipped compound of "development" and "operations") is a software development process that emphasizes communication and collaboration between product management, software development, and operations professionals. DevOps also automates the process of software integration, testing, deployment and infrastructure changes.[1][2] It aims to establish a culture and environment where building, testing, and releasing software can happen rapidly, frequently, and more reliably.https://en.wikipedia.org/wiki/DevOps
DevOps是強調(diào)產(chǎn)品管理茬贵,軟件開發(fā)和運營專業(yè)人員之間溝通和協(xié)作的軟件開發(fā)過程簿透。DevOps還可以自動化軟件集成,測試解藻,部署和基礎(chǔ)設(shè)施變更過程老充。DevOps旨在建立一套快速、頻繁舆逃、穩(wěn)定地進行構(gòu)建蚂维,測試,發(fā)布軟件的文化與環(huán)境路狮。https://en.wikipedia.org/wiki/DevOps

DevOps as the intersection of development (software engineering), operations and quality assurance (QA) https://en.wikipedia.org/wiki/DevOps

2 DevOp工具鏈
Code — Code development and review, version control tools, code mergingBuild — Continuous integration tools, build statusTest — Continuous testing tools that provide feedback on business risksPackage — Artifact repository, application pre-deployment stagingRelease — Change management, release approvals, release automationConfigure — Infrastructure configuration and management, Infrastructure as Code toolsMonitor — Applications performance monitoring, end–user experiencehttps://en.wikipedia.org/wiki/DevOps#DevOps_toolchain

1
DevOps是什么虫啥?從哪里來?****DevOps的概念DevOps一詞的來自于Development和Operations的組合奄妨,突出重視軟件開發(fā)人員和運維人員的溝通合作涂籽,通過自動化流程來使得軟件構(gòu)建、測試砸抛、發(fā)布更加快捷评雌、頻繁和可靠。DevOps概念早先升溫于2009年的歐洲直焙,因傳統(tǒng)模式的運維之痛而生景东。

DevOps是為了填補開發(fā)端和運維端之間的信息鴻溝,改善團隊之間的協(xié)作關(guān)系奔誓。不過需要澄清的一點是斤吐,從開發(fā)到運維,中間還有測試環(huán)節(jié)厨喂。DevOps其實包含了三個部分:開發(fā)和措、測試和運維。

換句話說蜕煌,DevOps希望做到的是軟件產(chǎn)品交付過程中IT工具鏈的打通派阱,使得各個團隊減少時間損耗,更加高效地協(xié)同工作斜纪。專家們總結(jié)出了下面這個DevOps能力圖贫母,良好的閉環(huán)可以大大增加整體的產(chǎn)出。


歷史變革由上所述盒刚,相信大家對DevOps有了一定的了解腺劣。但是除了觸及工具鏈之外,作為文化和技術(shù)的方法論伪冰,DevOps還需要公司在組織文化上的變革誓酒≌寥洌回顧軟件行業(yè)的研發(fā)模式贮聂,可以發(fā)現(xiàn)大致有三個階段:瀑布式開發(fā)靠柑、敏捷開發(fā)、DevOps吓懈。DevOps早在九年前就有人提出來歼冰,但是耻警,為什么這兩年才開始受到越來越多的企業(yè)重視和實踐呢隔嫡?因為DevOps的發(fā)展是獨木不成林的,現(xiàn)在有越來越多的技術(shù)支撐甘穿。微服務(wù)架構(gòu)理念腮恩、容器技術(shù)使得DevOps的實施變得更加容易,計算能力提升和云環(huán)境的發(fā)展使得快速開發(fā)的產(chǎn)品可以立刻獲得更廣泛的使用温兼。

(注:上圖摘自上月紅帽副總裁Ashesh Badani的一次新聞分享會)
2
DevOps的幾個關(guān)鍵問題****好處是什么秸滴?****DevOps的一個巨大好處就是可以高效交付,這也正好是它的初衷募判。Puppet和DevOps Research and Assessment (DORA) 主辦了2016年DevOps調(diào)查報告荡含,根據(jù)全球4600位各IT公司的技術(shù)工作者的提交數(shù)據(jù)統(tǒng)計,得出高效公司平均每年可以完成1460次部署届垫。與低效組織相比释液,高效組織的部署頻繁200倍,產(chǎn)品投入使用速度快2555倍装处,服務(wù)恢復(fù)速度快24倍误债。在工作內(nèi)容的時間分配上,低效者要多花22%的時間用在為規(guī)劃好或者重復(fù)工作上符衔,而高效者卻可以多花29%的時間用在新的工作上找前。所以這里的高效不僅僅指公司產(chǎn)出的效率提高,還指員工的工作質(zhì)量得到提升判族。DevOps另外一個好處就是會改善公司組織文化躺盛、提高員工的參與感。員工們變得更高效形帮,也更有滿足和成就感槽惫;調(diào)查顯示高效員工的雇員凈推薦值(eNPS:employee Net Promoter Score)更高,即對公司更加認同辩撑。快速部署同時提高IT穩(wěn)定性界斜。這難道不矛盾嗎?快速的部署其實可以幫助更快地發(fā)現(xiàn)問題合冀,產(chǎn)品被更快地交付到用戶手中各薇,團隊可以更快地得到用戶的反饋,從而進行更快地響應(yīng)。而且峭判,DevOps小步快跑的形式帶來的變化是比較小的开缎,出現(xiàn)問題的偏差每次都不會太大,修復(fù)起來也會相對容易一些林螃。

因此奕删,認為速度就意味著危險是一種偏見。此外疗认,滯后軟件服務(wù)的發(fā)布也并不一定會完全地避免問題完残,在競爭日益激烈的IT行業(yè),這反而可能錯失了軟件的發(fā)布時機横漏。
3
為什么DevOps會興起谨设?****為什么會繼續(xù)火下去?****條件成熟:技術(shù)配套發(fā)展技術(shù)的發(fā)展使得DevOps有了更多的配合缎浇。早期時铝宵,大家雖然意識到了這個問題的,但是苦于當時沒有完善豐富的技術(shù)工具华畏,是一種“理想很豐滿鹏秋,但是現(xiàn)實很骨感”的情況。DevOps的實現(xiàn)可以基于新興的容器技術(shù)亡笑;也可以在自動化運維工具Puppet侣夷、SaltStack、Ansible之后的延伸仑乌;還可以構(gòu)建在傳統(tǒng)的Cloud Foundry百拓、OpenShift等PaaS廠商之上。來自市場的外部需求:這世界變化太快IT行業(yè)已經(jīng)越來越與市場的經(jīng)濟發(fā)展緊密掛鉤晰甚,專家們認為IT將會有支持中心變成利潤驅(qū)動中心衙传。事實上,這個變化已經(jīng)開始了厕九,這不僅體現(xiàn)在Google蓖捶、蘋果這些大企業(yè)中,而且也發(fā)生在傳統(tǒng)行業(yè)中扁远,比如出租車業(yè)務(wù)中的Uber俊鱼、酒店連鎖行業(yè)中的Airbnb、圖書經(jīng)銷商Amazon等等畅买。能否讓公司的IT配套方案及時跟上市場需求的步伐并闲,在今天顯得至關(guān)重要。DevOps 2016年度報告給出了一個運維成本的計算公式: 停機費用成本 = 部署頻率 * 版本迭代失敗概率 * 平均修復(fù)時間 * 斷電的金錢損失來自團隊的內(nèi)在動力:工程師也需要對于工程師而言谷羞,他們也是DevOps的受益者帝火。微軟資深工程師Scott Hanselman說過“對于開發(fā)者而言,最有力的工具就是自動化工具”(The most powerful tool we have as developers is automation)。工具鏈的打通使得開發(fā)者們在交付軟件時可以完成生產(chǎn)環(huán)境的構(gòu)建犀填、測試和運行萌京;正如Amazon的VP兼CTO Werner Vogels那句讓人印象深刻的話:“誰開發(fā)誰運行”。(You build it, you run it)
4
實現(xiàn)DevOps需要什么宏浩?********硬性要求:工具上的準備上文提到了工具鏈的打通,那么工具自然就需要做好準備】肯梗現(xiàn)將工具類型及對應(yīng)的不完全列舉整理如下:代碼管理(SCM):GitHub比庄、GitLab、BitBucket乏盐、SubVersion
構(gòu)建工具:Ant佳窑、Gradle、maven
自動部署:Capistrano父能、CodeDeploy
持續(xù)集成(CI):Bamboo神凑、Hudson、Jenkins
配置管理:Ansible何吝、Chef溉委、Puppet、SaltStack爱榕、ScriptRock GuardRail
容器:Docker瓣喊、LXC、第三方廠商如AWS
編排:Kubernetes黔酥、Core藻三、Apache Mesos、DC/OS
服務(wù)注冊與發(fā)現(xiàn):Zookeeper跪者、etcd棵帽、Consul
腳本語言:python、ruby渣玲、shell
日志管理:ELK逗概、Logentries
系統(tǒng)監(jiān)控:Datadog、Graphite忘衍、Icinga仗谆、Nagios
性能監(jiān)控:AppDynamics、New Relic淑履、Splunk
壓力測試:JMeter隶垮、Blaze Meter、loader.io
預(yù)警:PagerDuty秘噪、pingdom狸吞、廠商自帶如AWS SNS
HTTP加速器:Varnish
消息總線:ActiveMQ、SQS
應(yīng)用服務(wù)器:Tomcat、JBoss
Web服務(wù)器:Apache蹋偏、Nginx便斥、IIS
數(shù)據(jù)庫:MySQL、Oracle威始、PostgreSQL等關(guān)系型數(shù)據(jù)庫枢纠;cassandra、mongoDB黎棠、redis等NoSQL數(shù)據(jù)庫
項目管理(PM):Jira晋渺、Asana、Taiga脓斩、Trello木西、Basecamp、Pivotal Tracker

随静、數(shù)據(jù)庫部署腳本

     1)add.sh  創(chuàng)建 grp_000* 庫八千,在該庫下創(chuàng)建schema :grp_000*、log_000*燎猛、stat_000*恋捆。其中序列號從1開始遞增,庫的序列號和schema序列號一直

               ./add.sh 創(chuàng)建線上庫

               ./add.sh test 創(chuàng)建測試庫(參數(shù)為test)

               ./add.sh train 創(chuàng)建聯(lián)系庫(參數(shù)為train)

[[圖片上傳失敗...(image-2d3ade-1510644263836)]

add.sh](https://dev.jointwisdom.net/confluence/download/attachments/29101250/add.sh?version=1&modificationDate=1509520378000&api=v2)

     2)add_pms.sh 創(chuàng)建pms schema, 在grp_000*下創(chuàng)建名稱為pms_000*_00000* schema重绷。  標黃部分序列號和所屬庫一直鸠信,標藍的序列號從1開始遞增

    ./add_pms.sh grp_000* (參數(shù)為庫名)

[[圖片上傳失敗...(image-d468b-1510644263836)]

add_pms.sh](https://dev.jointwisdom.net/confluence/download/attachments/29101250/add_pms.sh?version=1&modificationDate=1509520378000&api=v2)

2、備份腳本

     1)備份非pms庫论寨,備份文件會打tar壓縮包

               pg_backup_all.sh

[[圖片上傳失敗...(image-8f2208-1510644263835)]

pg_backup_all.sh](https://dev.jointwisdom.net/confluence/download/attachments/29101250/pg_backup_all.sh?version=1&modificationDate=1509520379000&api=v2)

     2)夜審備份

               A星立、夜審前備份

                        pms_before_night_audit.sh pms_0001_000001 (參數(shù)為pms類schema名稱)

[[圖片上傳失敗...(image-9e18ed-1510644263835)]

pms_before_night_audit.sh](https://dev.jointwisdom.net/confluence/download/attachments/29101250/pms_before_night_audit.sh?version=1&modificationDate=1509520379000&api=v2)

               B、夜審后備份

                        pms_after_night_audit.sh pms_0001_000001 (參數(shù)為pms類schema名稱)葬凳。 判斷依據(jù) hpt_cmm_hoteldate表字段ngt_dt大于今天時間绰垂。

[[圖片上傳失敗...(image-7d5712-1510644263835)]

pms_after_night_audit.sh](https://dev.jointwisdom.net/confluence/download/attachments/29101250/pms_after_night_audit.sh?version=1&modificationDate=1509520379000&api=v2)

3、數(shù)據(jù)遷移

     1)單庫遷移(庫為單位)

          備份文件位置/mnt/ops/scripts/test_env/pg_migrate火焰, 備份文件庫名.sql

               a.備份./export_db.sh grp_0001 (參數(shù) 為庫名)

[[圖片上傳失敗...(image-31931b-1510644263835)]

export_db.sh](https://dev.jointwisdom.net/confluence/download/attachments/29101250/export_db.sh?version=1&modificationDate=1509520379000&api=v2)

               b.拷貝備份文件到要目標服務(wù)器下的 /mnt/ops/scripts/test_env/pg_migrate

              c.導(dǎo)入數(shù)據(jù)./import_db.sh grp_0001 (參數(shù) 為庫名)

[[圖片上傳失敗...(image-4df6bf-1510644263835)]

import_db.sh](https://dev.jointwisdom.net/confluence/download/attachments/29101250/import_db.sh?version=1&modificationDate=1509520379000&api=v2)

     2)單schema遷移(schema為單位)

               備份文件位置/mnt/ops/scripts/test_env/pg_migrate 劲装,備份文件庫名.schema名稱

               a. 備份./ schema_migration.sh expect grp_0001 grp_0001 (3參數(shù),第1個 expect 操作類型為導(dǎo)出昌简, 第2個grp_0001為庫名占业, 第3個grp_0001為schema名稱)

[[圖片上傳失敗...(image-ec47b8-1510644263835)]

schema_migration.sh](https://dev.jointwisdom.net/confluence/download/attachments/29101250/schema_migration.sh?version=1&modificationDate=1509520379000&api=v2)

               b. 拷貝備份文件到要目標服務(wù)器下的      /mnt/ops/scripts/test_env/pg_migrate

               c. 導(dǎo)入數(shù)據(jù)./ schema_migration.sh import grp_0001 grp_0001 grp_test_0001 grp_test_0001 (5參數(shù), 第1個impect 操作類型為入纯赎, 第2個grp_0001為導(dǎo)出庫名谦疾, 第3個grp_0001為導(dǎo)出schema名稱,第4個grp_test_0001 為導(dǎo)入庫名 第5個grp_test_0001為導(dǎo)入schem名稱)

4犬金、新增腳本

   1)export_template_and_scp.sh

[[圖片上傳失敗...(image-e14791-1510644263835)]

export_template_and_scp.sh](https://dev.jointwisdom.net/confluence/download/attachments/29101250/export_template_and_scp.sh?version=1&modificationDate=1509520379000&api=v2)

        導(dǎo)出模板并傳輸?shù)铰?lián)系庫念恍,供線上和練習(xí)系統(tǒng)部署庫使用

   2)transmit_dev_to_train.sh   庫名grp_0001

         導(dǎo)數(shù)數(shù)據(jù)庫六剥,傳輸?shù)铰?lián)系庫

[[圖片上傳失敗...(image-70d672-1510644263835)]

transmit_dev_to_train.sh](https://dev.jointwisdom.net/confluence/download/attachments/29101250/transmit_dev_to_train.sh?version=1&modificationDate=1509520379000&api=v2)

   3)export_template_and_scp.sh  庫名grep_train_0003

        練習(xí)庫導(dǎo)入

[圖片上傳失敗...(image-1d3558-1510644263835)]

最后編輯于
?著作權(quán)歸作者所有,轉(zhuǎn)載或內(nèi)容合作請聯(lián)系作者
  • 序言:七十年代末,一起剝皮案震驚了整個濱河市峰伙,隨后出現(xiàn)的幾起案子疗疟,更是在濱河造成了極大的恐慌,老刑警劉巖瞳氓,帶你破解...
    沈念sama閱讀 206,311評論 6 481
  • 序言:濱河連續(xù)發(fā)生了三起死亡事件策彤,死亡現(xiàn)場離奇詭異,居然都是意外死亡匣摘,警方通過查閱死者的電腦和手機店诗,發(fā)現(xiàn)死者居然都...
    沈念sama閱讀 88,339評論 2 382
  • 文/潘曉璐 我一進店門,熙熙樓的掌柜王于貴愁眉苦臉地迎上來恋沃,“玉大人,你說我怎么就攤上這事必指∧矣剑” “怎么了?”我有些...
    開封第一講書人閱讀 152,671評論 0 342
  • 文/不壞的土叔 我叫張陵塔橡,是天一觀的道長梅割。 經(jīng)常有香客問我,道長葛家,這世上最難降的妖魔是什么户辞? 我笑而不...
    開封第一講書人閱讀 55,252評論 1 279
  • 正文 為了忘掉前任,我火速辦了婚禮癞谒,結(jié)果婚禮上底燎,老公的妹妹穿的比我還像新娘。我一直安慰自己弹砚,他們只是感情好双仍,可當我...
    茶點故事閱讀 64,253評論 5 371
  • 文/花漫 我一把揭開白布。 她就那樣靜靜地躺著桌吃,像睡著了一般朱沃。 火紅的嫁衣襯著肌膚如雪。 梳的紋絲不亂的頭發(fā)上茅诱,一...
    開封第一講書人閱讀 49,031評論 1 285
  • 那天逗物,我揣著相機與錄音,去河邊找鬼瑟俭。 笑死翎卓,一個胖子當著我的面吹牛,可吹牛的內(nèi)容都是我干的摆寄。 我是一名探鬼主播莲祸,決...
    沈念sama閱讀 38,340評論 3 399
  • 文/蒼蘭香墨 我猛地睜開眼蹂安,長吁一口氣:“原來是場噩夢啊……” “哼!你這毒婦竟也來了锐帜?” 一聲冷哼從身側(cè)響起田盈,我...
    開封第一講書人閱讀 36,973評論 0 259
  • 序言:老撾萬榮一對情侶失蹤,失蹤者是張志新(化名)和其女友劉穎缴阎,沒想到半個月后允瞧,有當?shù)厝嗽跇淞掷锇l(fā)現(xiàn)了一具尸體,經(jīng)...
    沈念sama閱讀 43,466評論 1 300
  • 正文 獨居荒郊野嶺守林人離奇死亡蛮拔,尸身上長有42處帶血的膿包…… 初始之章·張勛 以下內(nèi)容為張勛視角 年9月15日...
    茶點故事閱讀 35,937評論 2 323
  • 正文 我和宋清朗相戀三年述暂,在試婚紗的時候發(fā)現(xiàn)自己被綠了。 大學(xué)時的朋友給我發(fā)了我未婚夫和他白月光在一起吃飯的照片建炫。...
    茶點故事閱讀 38,039評論 1 333
  • 序言:一個原本活蹦亂跳的男人離奇死亡畦韭,死狀恐怖,靈堂內(nèi)的尸體忽然破棺而出肛跌,到底是詐尸還是另有隱情艺配,我是刑警寧澤,帶...
    沈念sama閱讀 33,701評論 4 323
  • 正文 年R本政府宣布衍慎,位于F島的核電站转唉,受9級特大地震影響,放射性物質(zhì)發(fā)生泄漏稳捆。R本人自食惡果不足惜赠法,卻給世界環(huán)境...
    茶點故事閱讀 39,254評論 3 307
  • 文/蒙蒙 一、第九天 我趴在偏房一處隱蔽的房頂上張望乔夯。 院中可真熱鬧砖织,春花似錦、人聲如沸末荐。這莊子的主人今日做“春日...
    開封第一講書人閱讀 30,259評論 0 19
  • 文/蒼蘭香墨 我抬頭看了看天上的太陽鞠评。三九已至茂蚓,卻和暖如春,著一層夾襖步出監(jiān)牢的瞬間剃幌,已是汗流浹背聋涨。 一陣腳步聲響...
    開封第一講書人閱讀 31,485評論 1 262
  • 我被黑心中介騙來泰國打工, 沒想到剛下飛機就差點兒被人妖公主榨干…… 1. 我叫王不留负乡,地道東北人牍白。 一個月前我還...
    沈念sama閱讀 45,497評論 2 354
  • 正文 我出身青樓,卻偏偏與公主長得像抖棘,于是被迫代替她去往敵國和親茂腥。 傳聞我的和親對象是個殘疾皇子狸涌,可洞房花燭夜當晚...
    茶點故事閱讀 42,786評論 2 345

推薦閱讀更多精彩內(nèi)容