9.21和9.22這兩天參加了微軟DevOps的培訓,主要是圍繞TFS2015的不少新功能來講的,相比較之前我們一直使用TFS2013來管理團隊,確實強大了不少,也更加實用了。
首先,什么是DevOps?
運維說主要是發布管理、CI持續集成的,開發說是開發測試一體化的,項目經理說是項目流程管理的。。。其實都沒錯,只是都不全面。百度百科上較嚴格的定義,不過它的似乎就是像開源社區一樣,是經過大家集思廣益,各自的經驗方法總結而形成的一套覆蓋軟件開發運維流程的經驗論。
目標人群
(第1天)企業研發經理,部門經理、團隊經理與項目經理可以通過此培訓了解到:
敏捷開發最佳實踐分享,成功引入敏捷所需的企業文化變革,團隊管理理念轉換和對質量的全新理解;
DevOps研發流程落地項目的案例分享,了解研發全生命周期管理平台的持續價值交付能力。
(第2天)開發人員,測試人員,架構師,運維工程師和項目經理可以通過此參與此培訓獲得完整的敏捷團隊開發體驗:
參與培訓的人員被組織成“領航員團隊”,使用全生命周期管理平台實際進行為期2天的DevOps開發體驗;
經過“領航員團隊”培訓的人員在回到本人的團隊后可以作為領航員引導團隊的日常開發工作,並指導團隊進行改進。
了解一個項目從需求收集,規划,開發,測試到交付的全過程;
了解使用全生命周期管理平台支撐DevOps端到端過程和工程實踐
了解使用容器技術構建持續交付管道(Release Pipeline)的最佳實踐。
TFS可以為不同角色的團隊成員提供不同的視角,將你關注的內容呈現在系統儀表盤上
項目經理儀表盤
以下視圖展示了作為項目經理可以通過簡單的配置實現的項目儀表盤,包括:當前迭代進度(燃盡圖),團隊成員,成員工作分布和進度,逾期任務,代碼簽入量,Bug趨勢和項目總體進度。
開發儀表盤
TFS 也可以為開發團隊提供專注於開發過程的儀表盤,如以下儀表盤為每個開發人員提供了個性化的視角來查看:未完成工作,我的Bug,我的任務進展,當前版本的測試執行時間和測試結果,以及每次CI的執行結果。
測試儀表盤
測試人員也可以建立自己獨立的儀表盤,列出測試計划,測試執行情況,已經提交的BUG的進展情況以及測試結果分析。
Configuration as Code 基礎架構即代碼
這里印象深刻,把需要部署的環境封存成DLL或jar包,給我的代碼來結成,最后即使是一個新的環境,也可以通過發布包代碼直接部署。概念很超前,不過很多大公司的運維已經再用了,Docker——官網就是 Docker - Build, Ship, and Run Any App, Anywhere
質量
傳統模型是基於左邊的,而敏捷軟件開發強調的是右邊這張圖,在一定的約束條件下,為了獲得有價值的產品,只能犧牲相對的質量。
質量這個概念因人而已,需要分特定的條件。譬如說一款軟件,某一個功能一直被用戶抱怨,但確實是一直被用戶實用的最多的功能,而另一個功能,用戶從來沒有抱怨,實則用戶從來不用。所以質量在一定的環境條件范圍下,是可以被犧牲的。這就好比行走的骨骼,抓住重點。
敏捷的質量
敏捷不一定保證一定就是快速開發出一條軟件,相對的,它可能會更加復雜。它能保證給你的是優秀的軟件質量和優秀的團隊。Scrum的根本目標是提高質量,而不是滿足時間和成本要求!
誤解:敏捷開發是為了快速交付?
敏捷開發不是一種為了快速交付而出現的方法,它之所以比較快則是因為避開了許多浪費的處理方式。
影響地圖Impact Mapping
一個價值導向的實踐方法,透過可視化的方式, 建立商業目標與產品功能的關系, 以及背后關聯的假設.
舉了個琅琊榜的列子
以目標為導向
它主要解決的是
一、業務部門及開發部門之間的理解、溝通、協調及隔閡。
二、目標到功能間聯系的模糊和不一致。
影響地圖可以作為用戶故事地圖的輸入
用戶故事地圖User Story Mapping
透過可視化的方式, 建立用戶場景與技術規格之間的聯系,並輔助團隊有效溝通。
靠譜的想法到落地的計划
創建用戶故事地圖(User Story Mapping)的8個步驟
第一天的重點除了介紹DevOps概念,就是講解了如何產生需求,如何講用戶故事。通過兩種方法影響地圖Impact Mapping 和用戶故事地圖User Story Mapping。感覺主要內容是給管理者和業務產品的。
第二天的內容主要是講Scrum敏捷開發流程和CI持續集成。
重點強調一下完成規范
靜態代碼檢查(SonarQube)不能完全替代Code Review還是需要人工來驗證代碼的邏輯和架構等。
關於Code Review,TFS的sourceControl由於branch策略不同,所以需要簽入之前發給某人驗證。而Git可以簽入后去評審,由分支策略導致,簽入后合並前。
剩下的就是做實驗,演示用TFS做CI.
(部分內容摘自徐磊老師的PPT和相關博客文章)
相關鏈接: