2010-12-05 70 views
5

什麼是可以支持我持續部署Web應用程序的最佳實踐和工具?如何以敏捷的方式部署網絡應用程序

我們應該能夠毫不費力地部署一天幾次。

這是一個Ruby on Rails 3應用程序。我們使用Git和Github。

+0

就在一旁:RoR支持應用程序的極速開發。一個包含管理部分和Markdown的博客可以在10分鐘內完成。 – 2010-12-06 00:25:46

+0

@TimeMachine - 真的嗎?現在我想學習Ruby和RoR。我在哪裏可以得到一些信息?我在Mac OS X上。 – Moshe 2010-12-06 00:42:13

回答

4

什麼是實踐

我假設你正在嘗試敏捷這裏最好的一套。你試圖推出一套用於部署的最佳實踐是有點可怕的。對於這個問題,任何一個敏捷團隊的最佳實踐清單都是可怕的。如果你仔細研究敏捷,你會意識到它需要團隊檢查和適應並不斷改進,當你認爲你的團隊已經找到「最佳實踐」時,你默認同意你可以停止改進,從而停止檢查,適應和改進。作者Agile Estimating and Planning的作者Mike Cohn認爲,敏捷團隊不應該提出一套最佳實踐,而應該通過檢查和調整來不斷改進。

爲了給您一些建設性的反饋,以下是我們的Scrum團隊遵循的一些做法,我們通過檢查和調整我們自己的部署流程來了解這些做法。我將在實踐中添加關於我們的源代碼檢查以及部署的信息。

  • 每次開發人員檢入代碼時,Hudson-ci都會使用scm輪詢觸發器並自動構建代碼並將其部署到開發環境中。它通過電子郵件發送了適當的成功或失敗通知。

  • 每天晚上都會在Hudson-ci自動觸發的開發環境中進行夜間構建。

  • 在開發環境中準備並初步測試了功能之後,團隊中的QA觸發了Hudson-ci構建並部署到集成服務器,其中功能可以進行集成測試。集成環境是生產環境的完全複製品。
  • 生產部署通常是基於發佈計劃再次使用Hudson完成的。

和可以支持我持續部署Web應用程序的工具?

這裏有幾個CI工具。我最喜歡的是Hudson-ci。其他則是Continuum和Cruise控制。但我認爲哈德森是最通用和最易於使用的工具,並且由於它具有社區驅動插件,因此您可以非常輕鬆地找到適用於git的插件以及適用於Rails應用的ruby。

0

IMVU is這是一個持續部署的海報小孩,他們通過遵循「如果我們確信我們沒有破壞我們需要立即部署的任何東西」的規則來獲得它們。他們現在在他們的流程中擁有非常令人印象深刻的自動化,但是它始於這一規則

我覺得有些與持續部署幫助的成分包括:

  1. 始終有一個工作版本。這意味着持續集成運行自動提交單元測試,並立即響應任何失敗。在IMVU上,他們儘可能自動恢復提交,這些提交會破壞大量的功能測試版本
  2. 。這是什麼讓你相信你沒有破壞任何東西。這些測試往往很慢,所以你需要一個策略來保持測試的時間縮短,比如在多臺機器上並行運行測試或者使用像SauceLabs這樣的服務。
  3. 自動化部署。從不手動部署。切勿手動更改配置。使用相同的技術部署到所有環境。

當你說連續部署時,大多數人都認爲自動生產不需要人工干預。你可以做到這一點 - 按鈕式生產部署 - 並且仍然有很大的價值。我們(urbancode,AnthillPro的製造商)幫助很多客戶將這些元素置於適當的位置。很少有人進行自動生產部署,但自動化部署對每個人都有幫助。

Jtf

相關問題