(視頻)《快速創建網站》 4.1 爲啥造軟件不同於造汽車,爲啥是軟件就一定會有Bug - 構建開發運維一體化(DevOps)

本文是《快速創建網站》系列的第9篇,如果你還沒有看過之前的內容,建議你點擊以下目錄中的章節先閱讀其他內容再回到本文。訪問本系列目錄,請點擊:http://anb.io/blog/tag/wordpress-on-azure/

1. 網站管理平臺WordPress和雲計算平臺Azure簡介 (6分鐘視頻 )
2.1 在Azure上創建網站及網站運行機制 (13分鐘視頻)
2.2 域名綁定操作和Azure負載均衡機制 (12分鐘視頻)
2.3 WordPress 初始化和網站管理功能 (11分鐘視頻)
3.1 WordPress 數據導入 (12分鐘視頻)
3.2 WordPress 多站點支持和Azure在線代碼編輯器 (14分鐘視頻)
3.3 WordPress 多語言支持 Multisite Language Switcher (15分鐘視頻)
3.4 WordPress 主題安裝和配置,美化你的網站 (15分鐘視頻)
4.1 Visual Studio Online (VSO)在線開發平臺 (11分鐘視頻)
4.2 使用 Visual Studio Online 和 Azure 構建 DevOps環境 (13分鐘視頻)

經過前三部分的內容(視頻),我相信大家對如何使用雲計算平臺和WordPress來創建一個博客站點已經有了較爲完整的認識。在第四部分中,我將爲開發人員介紹任何使用Visual Studio Online和Azure來構建一套完整的在線開發平臺,讓你不需要任何的本地環境就可以完成項目管理,需求管理,任務管理,代碼管理,自動測試和部署;這樣的系統在ALM(應用生命週期管理)中叫做開發運維一體化(DevOps)系統。

請配合視頻閱讀本文

http://v.qq.com/page/h/s/0/h014753whs0.html

爲什麼我們需要開發運維一體化(DevOps)系統?

從事軟件開發年頭越多的人越有這樣一個共識,就是軟件開發無法依靠前期的計劃和完整的需求來保證質量和滿足用戶。這是軟件開發與傳統制造業最大的區別。其實,就算是在軟件行業內,仍然有很多人對此不認可,覺得開發人員受過專業訓練,我們又爲項目配備了經驗豐富的需求分析人員和項目管理人員,沒有理由不成功。都是在製造產品,爲什麼製造軟件不能像製造汽車,電視機一樣,依靠詳細的生產計劃,按照明確的時間表交付呢?

其實,這裏面大家忽略了一個最基本的事實。汽車/電視等工業化產品都是一次設計,多次重複生產的產品;在汽車/電視的設計過程中,我們仍然是無法充分預知設計過程的所有細節和交付時間,因爲這是一個“探索”過程,需要設計人員和工程師依靠自己的經驗和知識創造出一個不存在的產品,而且儘量的預測,確保交付的產品可以滿足用戶的要求。一旦進入生產過程,這類產品的所有的零件,裝配方式都不會再發生改變,這樣我們才能快速重複的生產。而軟件產品則永遠是處於類似汽車/電視機的設計過程,而不存在重複生產過程(也許有,但是你只需要複製/粘貼就可以完成)。所以,按照對汽車這類產品的交付方式來預期軟件產品的交付是完全錯誤,不符合實際的;這就好像每個人都要求大衆給每個人單獨設計一臺獨一無二的汽車,還要保證按時交付一個道理。

大家有這樣誤解的另外一個原因是我們的教育,大學裏面的所謂軟件工程所教授的都是設計-開發-測試-交付,這樣類似流水線(軟件工程中叫做瀑布模式)的方式。讓我們從離開學校的那一刻起就有這樣的誤解。

既然我們沒有辦法預測軟件的交付時間,也無法在交付之前預測是否可以滿足用戶的需求;好像我們就沒有必要做軟件了。因爲按時交付,滿足需求是軟件存在的價值。我們必須產出這樣的價值,否則大家都沒飯吃了。怎麼辦?敏捷,迭代,試錯;這些答案都對,只是出於不同人羣對這個問題的經驗和認知而產出的不同詞彙而已。

下圖中展示的是使用瀑布模式和敏捷開發模式時,對於複雜項目成功可能性的不同影響。

其實我們只要記住一個字:快!

• 快速的完成開發,測試,交付給用戶使用;
• 快速的獲取用戶反饋,並在下一個版本中調整軟件功能;
• 再,快速的完成開發,測試,交付給用戶使用;

下圖展示的是開發/運維之間的迭代關係,只有加快這個迭代速度,才能讓我們的軟件產品儘快的接近用戶的需求。

這就是爲什麼我們需要開發運維一體化(DevOps),因爲只有把開發系統和運維繫統打通,我們才能快起來,我們才能讓開發人員直接,準確的獲取用戶的反饋;這些反饋可能是運維繫統提供的監控數據,也可能是客戶直接反饋的問題,或者是其他社交網絡/論壇上的消息,總之任何可以幫助開發人員判斷用戶需求的信息都是需要反饋的內容。

從這個角度來說:其實我們應該叫它 開發運營一體化,但是能過做到這一點可能太困難了,我們暫且還是談開發運維一體化吧。

Visual Studio Online在線開發平臺

VSO的前身是tfspreview.com,也就是在線的Team Foundation Server (TFS)版本,由微軟運營,提供雲端的開發管理能力。VSO上主要包括以下功能:

  • 工作項管理:工作項代表在開發過程中需要跟蹤的各種需求,任務,測試,反饋,Bug,部署等工作事項。可以理解爲一個工單系統。每個工作項有一個獨立的類型,代表以上某一類的工作事項,通過查詢(列表)來訪問和管理。
  • 流程管理:每個工作項都配備一定的工作流,由工作項的狀態及轉換來進行控制,配合一定的權限管理,可以幫助我們組織這些工作流程。按照不同團隊的工作模式,提供敏捷,Scrum和CMMI三種不同的模版可供使用。
  • 源代碼管理:提供代碼的存儲,變更跟蹤,比較,分支合併和IDE集成能力。支持集中式(CVCS,TFSVC)和分佈式(DVCS,Git)兩種不同模式的管理方式。也對代碼評審提供了支持。
  • 測試管理:支持測試計劃,測試用例,測試執行,自動化測試和壓力測試支持。
  • 構建管理:提供自動化的代碼編譯,自動化測試,打包和部署能力。
  • 部署管理:提供目標環境的編排,串接和審覈能力;同時支持針對雲端和本地的環境部署能力。
  • 第三方系統集成:通過REST API和Service Hook提供與第三方系統的交互能力。
  • 監控和分析:提供應用運行情況,錯誤收集和用戶行爲分析能力(這個功能已經轉移到了Azure中)。

以上可以看到,這些功能基本上涵蓋了我們在開發過程中需要的所有功能。另外,VSO還對主流的IDE提供了很好的集成,如 Visual Studio和Eclipse。

跨平臺支持

對於Visual Studio的集成當然是毋庸置疑的,所以以下我僅列出對Eclipse的Java項目支持

你可以看到,使用Team Explorer Everywhere (TEE) (點擊下載)插件,你可以使用Eclipse連接到VSO的項目,使用Git代碼庫,訪問工作項,也可以配置雲端的自動化編譯和打包。

具體操作演示大家可以參考這段視頻:
http://channel9.msdn.com/Events/Visual-Studio/Connect-event-2014/219

對於使用Mac進行iOS開發的同學來說,你也可以使用XCode裏面所提供的Git集成,來配合VSO進行源代碼管理,具體操作請看這裏:
https://www.visualstudio.com/en-us/get-started/share-your-xcode-projects-vs.aspx

後續我也會單獨對這些功能錄製一些視頻供大家學習。

敏捷開發支持

敏捷開發已經是軟件開發行業不可逆轉的趨勢,在VSO也對敏捷開發提供了很好的支持。比如下面的Kanban和Sprint白斑的支持。

這是我用來規劃本博客內容和後臺開發的Kanban。

這是之前的工作項跟蹤出來的累計流圖

這是本博客當前迭代的Sprint白板(你可以看到當前這篇博客正處於進行中狀態)

當然,以上只是VSO中對於敏捷開發支持的冰山一角,後續我會在專門介紹ALM的文章中詳細介紹。

在本篇博客的視頻中,我演示瞭如何將Azure中的WordPress站點的後臺代碼推送到VSO的Git代碼庫中,並和相關的任務進行關聯。這樣我們就可以在開發過程中使用Azure中的在線IDE作爲開發環境,使用VSO作爲開發平臺。

下圖中你可以看到在過去的2周我所進行的改動都已經記錄在了VSO的代碼庫歷史紀錄中:

下圖中你可以看到我在配置多站點支持時所作的改動,與任務進行了關聯,同時可以直接進行代碼評審意見的添加:

免費的雲端開發平臺

希望本文可以幫助你對Visual Studio Online有初步的認識,當然最好的方式仍然是立即註冊一個賬號。對於獨立開發者和小於5個人的開發團隊,你可以完全免費的使用VSO所提供的所有功能,對項目數量,代碼量,工作項數量沒有任何限制;如果你希望讓一些項目相關成員也可以看到你團隊的進展,可以將他們添加爲Stakeholder賬號,這種賬號沒有數量限制,可以任意添加多個,只要他們不訪問代碼庫即可。

點擊下圖即可開始註冊 http://www.visualstudio.com

在下一節(4.2)中,我講介紹如何將VSO上面的內容和你本地的開發環境進行集成,雖然我們可以完全在雲端完成所有的開發工作,但如果你喜歡使用Visual Studio, Sublime,Notepad++或者任何其他的編輯器/IDE,那麼一個本地的環境仍然是很有用的。

歡迎關注本博客微信訂閱號 anb-io。每週推送內容,有技術也有生活,和你一起做一個有情懷的程序猿。


世界上不是所有的東西都是用直接經濟契約來維繫的,比如:陽光,空氣,愛情和開源軟件。
發表評論
所有評論
還沒有人評論,想成為第一個評論的人麼? 請在上方評論欄輸入並且點擊發布.
相關文章