Paolo coppo hosting Drupal
Wiele blogach zostały przedstawione korzyści wynikające z zastosowania maszyn wirtualnych (maszyny wirtualnej) dla lokalnego rozwoju Drupal zamiast albo przy użyciu natywnego PHP i Apache, lub dołączonego środowiska jak MAMP, XAMPP lub Acquia Dev Desktop. Korzyści z zastosowania wirtualizacji (zwykle zarządzany przez Vagrant) są liczne, ale w niektórych przypadkach można zrobić dobry argument do przyklejania z tradycyjnymi rozwiązaniami.
Jeśli chcesz wziąć nurkowania i rozpocząć korzystanie z wirtualnych środowisk programistycznych, lub jeśli używasz już Vagrant i VirtualBox lub innego środowiska VM (np VMWare Fusion czy Parallels Desktop), jak można zoptymalizować rozwój lokalny, a który wcześniej -bundled rozwój Drupal VM będzie najlepsze dla Ciebie i Twojego zespołu?
Kryteria Perfect Local Development Environment
Są to kryteria używam przy ocenie rozwiązań dla lokalnego rozwoju Drupal (czy wirtualne lub tradycyjny):
- Powinien być prosty i łatwy do skonfigurowania
- Powinna być szybka domyślnie
- Powinien być elastyczny.
- Powinny współpracować z wieloma dostawcami; VirtualBox jest wolny, ale VMWare może być znacznie szybciej!
- Powinny umożliwić konfigurację wersji PHP.
- Powinien pracować z preferowanym workflow rozwoju (np drush, makefile, manualna synchronizacja bazy danych, itd.)
- Należy zapobiec tarcie systemu plików (na przykład problemy Uprawnienia d³ugiego dostępu do plików, itp)
- Nie powinno szuają domyślnych
Wiele z tych punktów mogą mieć większe lub mniejsze znaczenie dla konkretnego zespołu lub indywidualnego inwestora. Jeśli jesteś zagorzałym Mac użytkownikowi i nie zawsze działa ze wszystkimi deweloperów na Windows lub Linux, nie trzeba się martwić o wsparcie Windows. Ale niektóre z tych punktów stosuje się do wszystkich, jak jest szybki. prosty. i elastyczny.
Jeśli szukasz sposobu, aby poprawić zespołowej opartej Drupal rozwoju, stosować wszystkie te wypunktowania. Jeśli cały zespół zamierza ujednolicić na czymś, należy ujednolicić na coś, co daje każdemu standardowy układ, który jest wymagany, ale elastyczność pracy z każdym środowiskiem deweloperskim i preferowanych narzędzi programistycznych.
Ogłaszając Drupal VM
Zbudowałem Drupal VM w ciągu ostatnich dwóch lat na moich lokalnych potrzeb rozwojowych Drupal, i nadal rozwija się tak, że spełnia wszystkie powyższe kryteria.
Drupal VM jest środowiskiem rozwoju lokalnego, który działa z różnymi Drupal workflow zagospodarowania terenu z minimalnym tarciem. Czy strona jest zbudowana poprzez drush makefile, wykorzystuje podejście „codebase-w-git-repo”, czy jest zbudowana z profili i zainstalować polecenia drush, współpracuje z Drupal VM. Drupal VM obejmuje również wszystkie narzędzia potrzebne w moim Mam rozwoju z dnia na dzień, a nawet instaluje pomocne oprogramowanie jak Apache Solr, Memcache i MailHog.
Innym częstym scenariuszem mam jako opiekuna modułu contrib i Core wpłacającego jest moja potrzeba szybkiego, świeże środowisko Drupala gdzie mogę uruchomić Drupal 8, 7 lub 6 Szef i włamać na rdzeniu lub jednego z moich modułów contrib (jak Honeypot). Drupal VM jest wstępnie zainstalować nową kopię Drupal 8 do lokalnej hacking, ale to łatwo skonfigurować go uruchomić cokolwiek strona Drupal i konfiguracja chcesz!
Od Drupal VM był pomocny dla innych programistów, zrobiłem to bardziej elastyczny, zbudowany prostą stronę marketingową (w www.drupalvm.com), i wypolerowana dokumentacji na Drupal VM Wiki. Ja kontynuacji poprawy Drupal VM jak mam czas, dodając funkcje, takie jak:
- Możliwość wyboru między Nginx i Apache dla serwera WWW.
- Zdolność do wdrożenia do DigitalOcean, Linode lub AWS z taka sama (ale bezpieczeństwem utwardzone) konfiguracja jako lokalnego środowiska.
- Możliwość dodawania lakier lub Nginx jako cache odwrotnej proxy.
Drupal VM był również projekt zabawa do pracy podczas pisania ansibl dla devops. Moja praca na Drupal VM pozwala mi wygiąć jakiś mięsień ansibl i pracę na wielu stanowiskach ansibl Galaxy (jak geerlingguy.php i geerlingguy.solr), które są wykorzystywane przez Drupala VM-oprócz setek innych projektach związanych z Drupal !
VM dla każdego
Drupal VM jest moją bronią. ale istnieje wiele wspaniałych projektów o podobnych cechach:
Alternatywnie, jeśli wiesz, jak używać lalek, kucharz, ansibl lub SaltStack i chcą bulić i rozwijać swoje własne alternatywne środowisko dev, lub zbudować na własną rękę, to zawsze jest opcja! Zwłaszcza jeśli masz wysoce wyspecjalizowanego środowiska produkcyjnego, może być najlepiej odzwierciedla tego środowiska z bardziej wyspecjalizowanego środowiska rozwoju lokalnego.
Na Döcker i lxc / lxc (Pojemnik na bazie środowisk)
Zanim omotać, chciałem też specjalnie wywołać pewne projekty jak Drocker i projektu Drupal.org infrastruktury testbot następnej generacji, DrupalCI. z których oba są przy użyciu kontenerów dokowane dla rozwoju lokalnego. Kontenerowe środowisk programistycznych oferują wiele takich samych korzyści z wirtualizacji, ale może być szybciej budować i odbudowywać, i łatwiejszy w utrzymaniu.
Pojemnik na bazie infrastruktury prawdopodobnie staną się standardem w ciągu najbliższych 5-10 lat (podobnie jak VM infrastruktury opartej stał się standardem w ciągu ostatnich 5-10 lat) -Czy z Docker lub innego formatu Standard / metodologii (pojemnik po prostu pojemnik!).
Wiele platform hostingowych użyć podejścia kontenera-wszędzie, takich jak:
- Platform.sh
- Panteon
- Pojemnik Silnik Google
- Usługa Amazon EC2 Container
Ja jednak ostrzegają, że rozwój oparty na pojemnik ma swój własny komplikacji, zwłaszcza w produkcji, zwłaszcza przy bardziej skomplikowanych aplikacji internetowych, takich jak Drupal. Ja również przestrzec przed ślepo uruchomiony wstępnie zbudowane obrazy cudzych kontenerów w produkcji; należy je budować i zarządzać nimi na własną rękę (tak jak ja budować i zarządzać moje własne obrazy VM za pomocą pakowacz, np pakowacz-ubuntu-1404).
W podsumowaniu
Krótko mówiąc, ja pracuję na Drupal VM w ciągu ostatnich kilku lat, a ja zrobiłem to na tyle elastyczne, na różnych stronach Drupal pracuję dalej. Mam nadzieję, że jest wystarczająco elastyczny dla swoich potrzeb rozwojowych, a jeśli nie, otwórz problem, a ja zobaczę, co mogę zrobić!