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

本文是《快速建立網站》系列的第9篇,若是你尚未看過以前的內容,建議你點擊如下目錄中的章節先閱讀其餘內容再回到本文。html

訪問本系列目錄,請點擊:http://devopshub.cn/tag/wordpress-on-azure/web

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 爲啥造軟件不一樣於造汽車,爲啥是軟件就必定會有Bug - 構建開發運維一體化(DevOps)(11分鐘視頻)
4.2 完結篇 – 應用運營vs.發射衛星,遙測(Telemetry) 技術 (13分鐘視頻)xcode

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

請配合視頻閱讀本文

爲何咱們須要開發運維一體化(DevOps)系統?

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

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

你們有這樣誤解的另一個緣由是咱們的教育,大學裏面的所謂軟件工程所教授的都是設計-開發-測試-交付,這樣相似流水線(軟件工程中叫作瀑布模式)的方式。讓咱們從離開學校的那一刻起就有這樣的誤解。負載均衡

既然咱們沒有辦法預測軟件的交付時間,也沒法在交付以前預測是否能夠知足用戶的需求;好像咱們就沒有必要作軟件了。由於按時交付,知足需求是軟件存在的價值。咱們必須產出這樣的價值,不然你們都沒飯吃了。怎麼辦?敏捷,迭代,試錯;這些答案都對,只是出於不一樣人羣對這個問題的經驗和認知而產出的不一樣詞彙而已。運維

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

其實咱們只要記住一個字:快!分佈式

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

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

這就是爲何咱們須要開發運維一體化(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。每週推送內容,有技術也有生活,和你一塊兒作一個有情懷的程序猿。

相關文章
相關標籤/搜索