Jak przebiega wdrożenie do produkcji z lokalnego środowiska programistycznego VirtualBox / Vagrant?

Ostatnio zacząłem czytać o budowaniu środowisk programistycznych z oprogramowaniem do wirtualizacji (jestem początkujący) i wydaje się, że 'infrastruktura jako kod' to naprawdę potężna koncepcja.

Bardzo podoba mi się struktura workflow opisana TUTAJ :

  1. ten sam podstawowy obraz VirtualBox jest używany wokół zespołu
  2. Vagrant jest używany do szybkiego "budowania" i "dostarczania" takiego obrazu do potrzebnej konfiguracji za pomocą
  3. kucharz (lub Pacynka) recipes, który jest jedynym fragmentem kodu potrzebnym do poddania kontroli wersji.

Nadal jednak nie do końca rozumiem, w jaki sposób kod jest przenoszony i wdrażany na serwerach produkcyjnych.

Jak rozumiem, powszechnym sposobem utrzymywania identyczności środowisk DEV i PROD jest zarządzanie instancją serwera produkcyjnego jako kolejnym wirtualnym obrazem, który ma być dostarczany z Chef. Mogę mieć dokładnie ten sam system operacyjny zainstalowany na serwerze produkcyjnym, z którego (i zespół) codziennie korzystam VirtualBox-Vagrant-Chef.

Ale serwer produkcyjny może mieć sprzęt, który różni się od tego w wirtualnym systemie operacyjnym gościa i może to ponownie prowadzić do niespójności.

Oto pytanie:

Jaka jest znana i powszechna najlepsza praktyka przenoszenia i wdrażania kodu na serwer produkcyjny ze środowiska programistycznego, które jest zarządzane za pomocą łańcucha narzędzi VirtualBox-Vagrant-Chef? Czy ta praktyka pozwala na ciągłe wdrażanie?

[Edytuj]: Uwaga: Czy istnieje jakaś praktyka uruchamiania tej samej instancji maszyny wirtualnej dostarczonej z Chef/Vagrant na serwerze produkcyjnym, jak to jest przedstawione na tym diagramie ?

Author: skanatek, 2014-06-12

2 answers

Jestem autorem artykułu, który podlinkowałeś, więc mój 0.02

Jeśli dobrze zrozumiałem twoje pytanie, nie przenosisz maszyn wirtualnych z dev do produkcji, tworzysz powtarzalny proces, który pozwala na tworzenie tego samego stanu końcowego (OS + config + app) w kółko, bez względu na to, gdzie jest miejsce docelowe.

Używając vagrant gwarantujesz, że twoi programiści używają tego samego systemu operacyjnego, z którego korzystają serwery produkcyjne, bez względu na to, jakiego systemu używają do rozwoju.

Using Puppet / Chef you upewnij się, że system operacyjny jest skonfigurowany tak samo, niezależnie od tego, czy jest uruchomiony w maszynie wirtualnej z Vagrant, maszynie wirtualnej w produkcji, maszynie wirtualnej w chmurze czy sprzęcie metalowym. Nie musi być wirtualny.

 22
Author: csanchez,
Warning: date(): Invalid date.timezone value 'Europe/Kyiv', we selected the timezone 'UTC' for now. in /var/www/agent_stack/data/www/doraprojects.net/template/agent.layouts/content.php on line 54
2014-06-16 11:07:56

W przypadku pacynek (kucharz może to zrobić również), możesz zbudować manifest (przepis) w taki sposób, aby zachowywały się inaczej w Twoim środowisku Włóczęgów, np.

if $::virtual != "virtualbox" { # not in vagrant
    include sysctl_tuning
}

Pytanie o ciągłe dostarczanie jest w tym kontekście nieco zbyt szerokie. Myślę, że odpowiedź brzmi "tak", jeśli to coś znaczy.

 1
Author: Felix Frank,
Warning: date(): Invalid date.timezone value 'Europe/Kyiv', we selected the timezone 'UTC' for now. in /var/www/agent_stack/data/www/doraprojects.net/template/agent.layouts/content.php on line 54
2014-06-12 21:07:52