访谈Stuart Davidson:Skyscanner的持续交付推广
看新聞很累?看技術(shù)新聞更累?試試下載InfoQ手機(jī)客戶端,每天上下班路上聽新聞,有趣還有料!
\\\Stuart Davidson是Skyscanner的一名工程管理者,他在QConLondon 2018上發(fā)表了一篇演講,講到他的組織已經(jīng)從被動的運營模式,轉(zhuǎn)變?yōu)槭跈?quán)給開發(fā)人員的團(tuán)隊。Davidson講述了他們自己的故事,他們從CTO那里得到了一個宏偉的目標(biāo)以及相應(yīng)的支持,他們開啟了一段讓他們的小團(tuán)隊每天能交付一萬次的旅程,現(xiàn)在,他們的組織已經(jīng)擁有600多名遍布全世界的技術(shù)人員,而且還是不斷增長。它們采取了一種具有小的增量和文化改變的迭代方式,最終形成了一個由授權(quán)團(tuán)隊擁有的容器化平臺。
\\Davidson負(fù)責(zé)Skyscanner的開發(fā)機(jī)制和部署及編排團(tuán)隊,他分享說,他最初是一個小團(tuán)隊的成員,他們整天忙于被動地交付一些次要的增量,比如開發(fā)團(tuán)隊要求的特定的持續(xù)集成增強。該公司的領(lǐng)導(dǎo)層認(rèn)識到,強大的部署管道將帶來戰(zhàn)略利益,他們設(shè)定了一個目標(biāo),要求創(chuàng)建一個能夠每天部署1萬次變更的平臺。Davidson 將其解釋為一種覺醒,因為他們意識到了當(dāng)時所設(shè)計的平臺永遠(yuǎn)不會達(dá)到這種能力。
\\Davidson 解釋說,他的團(tuán)隊發(fā)現(xiàn)必須意識到他們實際上是“戰(zhàn)略障礙”,才能成為公司的“戰(zhàn)略促進(jìn)者”。團(tuán)隊設(shè)立了提供持續(xù)集成的管道,“所有產(chǎn)品都必須經(jīng)由它”。Davidson 稱之為“Jenkins 悖論”,他將其描述為可重復(fù)構(gòu)建、基礎(chǔ)設(shè)施和健壯性之間的矛盾,同時卻還鼓勵探索和創(chuàng)新,使用新的和不熟悉的工具。
\\他們解決這些挑戰(zhàn)的方法是將他們的持續(xù)基礎(chǔ)設(shè)施遷移到一個容器原生工具Drone上,它分層管理構(gòu)建和由開發(fā)小組提供的持續(xù)集成環(huán)境。這使得小團(tuán)隊對他們的構(gòu)建、測試和運行時基礎(chǔ)設(shè)施有更大的自主權(quán)。他解釋說,讓團(tuán)隊對自己的可重復(fù)的管道負(fù)責(zé),這在小組中很受歡迎,于是大家通過培訓(xùn)來提升技能:
\\由于工程師們也看到了這種收益,所以大家都著了魔似地在用。這些半自治的小隊可以建造他們想要的管道。他們非常喜歡它…我們一不留神就在容器里對每個小隊都進(jìn)行了訓(xùn)練。每個團(tuán)隊中至少有一個人知道如何管理他們的Dockerfile,因為他們需要它來控制他們的構(gòu)建環(huán)境。所以我們想,讓我們把它應(yīng)用到生產(chǎn)環(huán)境中吧。
\\Skyscanner首先在生產(chǎn)環(huán)境中使用的是AWS的ECS容器服務(wù),因為它是“最便宜、最簡單、最容易訪問的容器調(diào)度程序”。雖然他們現(xiàn)在正遷移到托管的Kubernetes,但Davidson 懷疑,就算Kubernetes那時已經(jīng)是AWS的商店,那么當(dāng)初如果選擇Kubernetes能否取得今天的成功呢。他指出,技術(shù)性問題可以推遲處理,團(tuán)隊?wèi)?yīng)該考慮“如果采取迭代步驟,解決方案是否盡可能地簡單”。在談到他們?nèi)绾蔚f增時,他說:
\\不要投資太多。這是一個前提。不要讓自己動不動就先付出了六個月的努力。試著找些簡單快捷的方法。從中吸取教訓(xùn), 然后嘗試找出你下一步的工作要點是什么。
\\Davidson 還說,工具的實驗應(yīng)該與為實現(xiàn)持續(xù)交付而進(jìn)行的文化轉(zhuǎn)變保持平衡,他說:
\\如果您想嘗試一些工具,尋找一個健壯的并且能夠運行下去的工具,您就不必?fù)?dān)心它的運維。因為你總會找到辦法的,問題總會有辦法來解決。你會有文化上的轉(zhuǎn)變。
\\Skyscanner的部署解決方案迅速發(fā)展為團(tuán)隊能夠做具備集成監(jiān)控和可觀察的藍(lán)綠部署。Davidson 告訴觀眾,他們能夠“接受一個想法就將其投入生產(chǎn),并在30分鐘內(nèi)對其進(jìn)行監(jiān)控和提醒?!彼赋?#xff0c;他們采取的步驟“只是我們已經(jīng)擁有的想法的小規(guī)模迭代”。
\\Davidson 還談到了通過執(zhí)行小型部署可降低風(fēng)險,使團(tuán)隊更加安全,盡管他們對測試還有所顧慮:
\\每一個進(jìn)入GitLab的變更都以藍(lán)綠方式持續(xù)部署。這不太讓人放心,因為雖然我們的測試還不錯,但可能還沒那么好。通過持續(xù)部署我們發(fā)現(xiàn),如果你看看風(fēng)險方程式,被部署的變更非常非常小…所以如果有問題,很容易找到問題的根源。
\\Davidson談到了他們?nèi)绾卧谒{(lán)綠部署中添加一個類金絲雀的暫停,使用StackOverflow的開源監(jiān)控工具Bosun對一個具有系統(tǒng)和業(yè)務(wù)指標(biāo)的時間序列數(shù)據(jù)庫執(zhí)行查詢,用來評估發(fā)布的健康狀況。Davidson解釋說,小團(tuán)隊可以定義一個明確的首次上線百分比,針對接受的模式予以分析,如果證明不成功,該部署就會自動回滾。Davidson 說:
\\我們還可以查詢OpenTSDB,看看我們的航班銷售是否下降了。事實上,我們更傾向于如果突然出現(xiàn)暴跌就回滾。可能是電視上出現(xiàn)了一些好東西,大家不再關(guān)注Skyscanner,導(dǎo)致我們意外回滾了,但我們認(rèn)為這種情況是沒關(guān)系的。在這種事情上我們還是想保守些。
\\在演示的時候,Davidson 表示,Skyscanner上一個月在多個區(qū)域一共為456個不同的服務(wù)共計部署了3733次。他說他的團(tuán)隊的目標(biāo)是讓小組成員能夠?qū)W⒂跒槁眯姓咛峁﹥r值:
\\我們的目標(biāo)是成為一個力量倍增器。對于在Skyscanner工作的每一位工程師,我們都試圖讓他們在一天內(nèi)能夠做更多的事情。我們盡可能以最大的努力,令一個工程師就能盡可能快地、可靠地把他們的資源投入生產(chǎn)。這樣,他們就可以專注于我們給旅行者提供的產(chǎn)品和功能了。
\\InfoQ采訪了Davidson ,以了解關(guān)于這段擴(kuò)展持續(xù)集成之旅的更多內(nèi)容。
\\InfoQ: 在接受最初的挑戰(zhàn)之后,管理采取了什么支持形式,以達(dá)到每天10K的部署?
\\\Stuart Davidson: 布萊恩遵守了他的諾言,并盡可能多地向人提起我們的部署工具Slingshot ,我們甚至把它呈現(xiàn)給了董事會。
\\我的經(jīng)理(Ryan Crawford)和我的工程主管(Paul Gillespie)圍繞著工程領(lǐng)導(dǎo)力、獲得反饋和挑戰(zhàn)認(rèn)知做了大量的工作,并召集了一群有影響力的人,這些人應(yīng)該對把這些工具和做法推銷給公司其他人有所幫助。
\\但還并不僅僅是自上而下的支持,我們還得到了一個雄心勃勃的部落工程領(lǐng)導(dǎo)Dave Garcia的大力支持,他看到了我們所做的一切,并堅定不移地讓他的直接預(yù)訂團(tuán)隊成為了該產(chǎn)品的早期采用者。他們總是給我們反饋,幫助我們更好地規(guī)劃下一步的工作。
\\結(jié)果,我們的Slack 通道可忙壞了,工程師們會通過它互相幫助解決問題,交換這個系統(tǒng)的使用案例,它幾乎成了病毒,因為小團(tuán)隊在新工作上一用這個系統(tǒng)就會愛上它,隨后把它移植他們的現(xiàn)有系統(tǒng)上。整個企業(yè)的工程師們所呈現(xiàn)出的積極態(tài)度和韌勁代表它取得了真正的成功。
\\\InfoQ:Skyscanner的產(chǎn)品開發(fā)和業(yè)務(wù)敏捷性是如何應(yīng)對快速交付小變更的?
\\\Davidson: 實事上有趣的是,的確有一些很小的變更,它們真正關(guān)注的是數(shù)據(jù)驅(qū)動的實驗。然而,這些微小的變更能讓我們有信心做出Skyscanner運營方式上的更大的改變。
\\我們很快就在特定區(qū)域建立了新的垂直領(lǐng)域,來看看我們會有什么樣的吸引力。我們創(chuàng)建的內(nèi)容頁面或頁面關(guān)注的是特定的事件,比如冠軍聯(lián)賽或板球——這些不再需要6個月時間的規(guī)劃和硬件申請。
\\針對一個想法,可以在一個下午內(nèi)就生產(chǎn)上線最初版本,然后團(tuán)隊可以在他們所做的第一版上快速安全地迭代。
\\\InfoQ:你的一個重要經(jīng)驗就是要認(rèn)識到賦予團(tuán)隊能力,讓他們有能力幫助自己。在實踐中這是如何實現(xiàn)的呢?
\\\Davidson: 這實際上比在Skyscanner內(nèi)部聽到的還更容易些,因為我們的工程組織促進(jìn)了小團(tuán)隊的自治——即實際為那些好奇的早期采用者清除了障礙,讓他們得以嘗試并向我們提供反饋。這么做有一個負(fù)作用,那就是一些小團(tuán)隊最后很難遷過來,但是到那時,遷移的用戶體驗通常都有完備的文檔支撐了,甚至可能都是自動化的了。
\\例如,我們在開始時就做了很多工作,從開始講解一些概念的教程,然后最終有了完備的產(chǎn)品服務(wù),從頭開尾都可以脫離工程師了。這種體驗往往會讓人很快就能上手,而且它還能讓大家都參與進(jìn)來,并與公司里的其他人進(jìn)行交流。
\\在接下來的幾個月里,將會在InfoQ上提供關(guān)于Davidson訪談的幻燈片和錄像。
\\\\查看英文原文:Q\u0026amp;A With Stuart Davidson on Scaling CD at Skyscanner
總結(jié)
以上是生活随笔為你收集整理的访谈Stuart Davidson:Skyscanner的持续交付推广的全部內(nèi)容,希望文章能夠幫你解決所遇到的問題。
 
                            
                        - 上一篇: Spring--Redis入门集成配置
- 下一篇: 推荐阅读:变异检测到底应该用什么软件?
