Jestem całkiem nowy w całym stosie Netflix OSS i ogólnie wdrożeniach. Jako tło dla mojego obecnego poziomu wiedzy, moją główną rolą jest jako inżynier aplikacji front-end. Jednak podoba mi się strona operacyjna rzeczy, dlatego próbuję skonfigurować nową strategię wdrażania i narzędzia do nowego projektu.
Nasze cele
- Bardzo łatwe wdrożenia (chcemy nacisnąć przycisk, aby zaktualizować produkcję)
- Zautomatyzowane wdrożenia w środowiskach testowych (za pomocą Jenkins)
- Łatwość konserwacji (mamy aplikację do napisania, nie chcemy spędzać czasu na majstrowaniu przy problemach produkcyjnych)
- Możliwość obsługi architektury zorientowanej na usługi (wiele małych aplikacji, różnych języków i magazynów danych)
- Wystarczająca elastyczność, aby zapewnić, że nie będziemy musieli zmieniać strategii w najbliższym czasie (już próbujemy uciec od RightScale)
Jesteśmy w porządku z nieco większym czasem początkowej konfiguracji, jeśli to pozwoli nam zaoszczędzić trochę problemów w przyszłości.
Tak więc, słuchając podcastów, oglądając rozmowy Ops i czytając mnóstwo postów na blogu, w oparciu o nasze cele i to, co uważałem za najlepsze praktyki, zaczęliśmy tworzyć plan, używając Asgard, zwijamy naszą paczkę do słoika i zwijamy to w AMI.
Mieliśmy to wszystko zaplanowane i podoba nam się zalety procesu w porównaniu z użyciem serwera szefa kuchni i konwergencji instancji w locie (czuliśmy, że jest to podatne na błędy, biorąc pod uwagę nasz ograniczony harmonogram i brak zrozumienia wokół przepływu pracy serwera szefa kuchni). Jednak współpracownik rozejrzał się trochę i czuł, że Elastyczna Fasolka szparagowa spełnia nasze potrzeby.
Przyjrzałem się temu i stworzyłem środowisko testowe z plikiem WAR i dołączoną bazą danych RDS. Wydaje się, że wszystko działa i uważam, że możemy zautomatyzować wdrażanie w środowisku testowym przy użyciu Jenkins za pośrednictwem interfejsu AWS API. Wydaje się dość proste ... może zbyt proste.
Zastanawiam się, jaki jest haczyk? Jeśli Elastic Beanstalk jest tak prosty i skuteczny, dlaczego nie mówi się o nim więcej? Trudno mi znaleźć wystarczającą liczbę obiektywnych opinii i faktów na temat dwóch różnych strategii wdrażania, więc pomyślałem, że zapytam.
Czy używasz Elastic Beanstalk? Jeśli tak, to dlaczego i jakie czynniki prowadzą do tej decyzji? Co lubisz a czego nie lubisz?
Jeśli nie używasz Elastycznej Fasoli, ale zastanawiasz się, co używasz i dlaczego nie użyłeś Elastycznej Fasoli?
Jakie są zalety i wady strategii wdrażania opartej na elastycznej fasoli dla SOA? To znaczy, czy Elastic Beanstalk działa dobrze z wieloma małymi aplikacjami, które działają w oparciu o siebie nawzajem?