2016-04-06 117 views
1

我有一個由一組微服務組成的正在運行的項目。我們計劃引入Vagrant,以便任何加入該團隊的新開發人員都能夠輕鬆地在他/她的機器上啓動並運行環境。流浪和微服務開發環境

我一直在讀Vagrant一​​段時間,它看起來很有趣。我開始簡單。我使用Vagrant初始化了一個微服務,然後創建了一個VagrantFile。這是一個好方法嗎?每個微服務有一個VagrantFile?

然後我試圖爲這個微服務創建一個Box。這個盒子有什麼名字?我應該堅持任何命名約定嗎?這個盒子應該如何以及在哪裏堅持?這應該成爲我的微服務組件的源代碼的一部分?

回答

1

我看到你也問過關於這個東西的similar and possibly duplicate問題。

我也不確定你爲什麼要利用微服務,因爲我不知道任何具體命名的軟件。

一般而言,流浪和虛擬化/虛擬機讓您選擇系統架構 - 通常人們會嘗試選擇與生產或將要生產的東西接近的東西。如果你有一個小型網站,所有東西都會從一個共享的盒子或VPS上運行,那麼把所有東西都安裝在一個流浪盒子中並配置(無論是使用Docker還是簡單的shell配置腳本)都沒問題。

如果您在生產中有多個服務器(www,app,db,whatever),那麼您可以選擇。您仍然可以將所有這些角色配置到一個流浪盒中,或者您可以啓動多個盒子來嘗試複製這些角色(請參閱multi-machine vagrant) - 這種情況下您可能更喜歡Docker而不是shell配置腳本。大概你可以在所有環境(dev,qa,production等)中使用相同或非常類似的Docker配置。

在最後一段的問題,

應該這個盒子有什麼名字?我應該堅持任何命名 公約?這個盒子應該如何以及在哪裏堅持?這個 是否應該成爲我的微服務組件的源代碼的一部分?

通常取決於您和您的開發和部署工作流程。在多種開發環境中,我通常會將Vagrantfile以及源代碼存儲在版本控制中,這樣所有開發人員都可以在相同的開發環境中工作,並且可以快速輕鬆地將新開發人員加入或將核心包裝盒複製並重新啓動您正在開展部署和配置。

  • 命名框,命名規範不是必需的,給你
  • 持久盒子一般不高優先級 - 的想法是,你可以方便快捷地(每隔幾個小時,幾天,一旦一個星期,等)重新創建箱
  • 我不能肯定地說,如果你要存儲Vagrantfile與你的源代碼,這將取決於你的團隊組成,開發流程等
+0

我說的是微服務架構以及如何放浪適用於集微服務的,我有我的應用程序環境 – sparkr

+0

@sparkr它仍然不是專有名詞,不應該被大寫。 –

+0

看看這裏http://martinfowler.com/articles/microservices.html – sparkr

1

我同意@Brian的大部分答案

我一直在讀通過流浪漢一段時間,它看起來 有趣。我開始簡單。我使用Vagrant初始化了一個 微服務,然後創建了一個VagrantFile。這是 一個很好的方法?每個微服務有一個VagrantFile?

我不會那麼做的,有一定的成本(CPU,RAM)設置整個VM(如流浪者那樣,使用docker provider即使),所以最好的辦法是有一個單一的Vagrantfile對您的服務部署因此,如果部署新服務,則可以在此VM上進行部署。

你可以看到(我覺得)看到微服務架構的一個很好的例子與流浪https://github.com/ewolff/microservice/tree/master/docker-vagrant

+0

docker-vagrant GitHub示例服務器作爲一個起點。感謝那。在我的情況下,問題是我們擁有的所有微服務都在單獨的GitHub存儲庫中,需要以某種方式將其拉到一起並協調。這些行中的任何指針? – sparkr

+1

聽起來像你有同樣的問題http://stackoverflow.com/questions/36364652/shared-vagrant-configuration-across-multiple-projects你可以看看我的答案與同步文件夾 –