筆記
組織
- 講Microsoft裡面的DevOps
- 故事描述的是Cloud & Enterprise and the Bing teams
- 以前,在一個Feature Team有三種角色:program managers, developers, and testers
- Developer與Tester在組織架構上就分開,還有一個operations team
- 我們想要減少內部溝通所需花的心力所以:
- 結合Developer與tester->software engineer:讓一個feature能從無到有產出並能正確穩定運行
- 把operations team的人也帶進來->service engineer
- 要做到最好的單一服務,就是需要一個可以緊密合作的團隊,寫code與測試與運營的人應該要能緊密合作。
- 最後組織的安排,把dev team與test team結合,operations team也拉進同一個大組織裡。
- 在這個大架構,接下來就分成Feture team,負責單一個解決方案,Feature,或Product
- 有專門開發運營內部工具的team
- 有開發功能的Feature team,由10~12人組成,採用自我組織,自我管理的方式
- 有4307人在Develper Division,436人在Team Service Team(指的是Visual Studio Team Service),在Team Service Team有35個Feature Team
- 一個Feature Team有
- 一個program manager
- 一個engneering lead
- 幾個software engineer
- 幾個service engineer,他們同時支援多個team,但是都在同一個Product裡
- 另外一個改變就是,相較於之前不同組織就在不同的區域,現在同一的Feture team的人都搬到一起,所以大家不管是討論、接電話,所有有關工作的事情都可以有共同的體驗
責任
- 上述的所有改變的主要目標就是責任的改變
- software engineer與service engineer要一起搞出最好的結果
- 要有量測數據來證明團隊做得好或不好,像是test coverage或是SLA
- software engineer的責任不再只是把東西做出來,並且還要保持產品的健康
- 要Feature team的成員對客戶的問題有所洞察,如何讓客戶能很喜歡產品
- Feature team有完全的責任在產品如何設計開發測試佈署
- service enginner要更多瞭解他們運營的產品,並提供基礎架構與產品的意見,與部署運營的script or code
- Automation是Microsoft裡面軟體生命週期與快速產出價值給使用者的關鍵
- 以前像是,手動測試,環境架設,發行管理,都被自動化了
- 這樣的運作方式更靈活,也有更多機會可以失敗
- 因為都做到自動化,Dev可以自己管理Change,並且導入Feature flags,用來減低風險。
- 導入這些改變之後作者覺得有在Startup的驅動力與興奮感(?)
飛行中(!)佈署
- 從Visual Studio Team Services到OneDrive iOS App,都用Canary Release (派一隻金絲雀到礦坑裡試試有沒有毒氣),這在VSTS team叫deployment rings。
- 團隊弄好版本後,經過自動build與test,然後發布到內部測試帳號,或早期體驗帳號,或是developer自己的機器裡。
- 現在在VSTS team的deployment ring有4個,有12個單位遍布Azure regions
- 第一個ring是有VSTS帳號的
- Feature team的lead engineer核准發布的第一個ring,因為在第一個ring的都是Feature team的人,自己先測完之後再自動化發布到其他的ring,如果有問題就自己趕快修。
- 而大部分的功能都有feature flag來控制
- 接下來是OneDrive App的例子
- OneDrive App團隊用VSTS來自動build與test,然後用HockeyApp來發布到ring上
- HockeyApp可以提供安裝,運行,Crash與使用者統計,目前是用在內部測試的ring
- 接下來就是用Apple的TestFlight來給beta tester測試
- 一旦ok了就打開feature flag正式發布給所有使用者
Idea Velocity
- 有了Continous Delivery,idea可以快速的被評估測試。
- 在Bing,任何idea都快速的被實驗測試收集統計資料,所以可以比較正確地被評估,這樣更激勵內部人員提出並實行他們的idea