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 :
- ten sam podstawowy obraz VirtualBox jest używany wokół zespołu Vagrant jest używany do szybkiego "budowania" i "dostarczania" takiego obrazu do potrzebnej konfiguracji za pomocą
- 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 ?
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.
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.
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