Jak pracować DevOps z AWS
Opublikowany: 2021-06-03Być może wielu z nas zetknęło się ze słowem DevOps w naszym codziennym życiu. Jeśli byliśmy nieco ciekawi, przekonamy się, że jest to ruch organizacyjno-kulturowy wspierany przez zestaw narzędzi, które ułatwiają i usprawniają ciągłe dostarczanie oprogramowania.
Narzędzia te koncentrują się na ułatwieniu każdego z procesów, które są częścią procesu wdrażania i dostarczania oprogramowania, od generowania kodu do publikacji w środowiskach skierowanych do użytkownika końcowego.
Podobnie w ramach DevOps istnieją dwie podstawowe praktyki: Continuous Integration i Continuous Delivery; są one odpowiedzialne za organizację procedury odpowiednio w fazach budowy produktu i dostarczania do środowisk produkcyjnych.
Warto zauważyć, że najwybitniejsi producenci oprogramowania i zespoły programistyczne w chmurze byli bardzo zainteresowani dostosowaniem tych procesów do zapewnienia większej płynności swoim klientom w zakresie działań związanych z wdrażaniem i dostarczaniem produktów końcowych.
Łatwość integracji produktów innych firm w połączeniu z doświadczeniem, jakie te platformy mają do tworzenia niestandardowych produktów w razie potrzeby, zaowocowały kompletnymi pakietami do praktyki DevOps, takimi jak dobrze znane Azure DevOps, Git CI/CD, Jenkins i inne.
Ale co z usługami Amazon Web? Największy współczesny dostawca chmury nie mógł pozostać w tyle, ponieważ oferuje zestaw narzędzi i usług, które mogą zaspokoić wszystkie potrzeby w zakresie cyklu życia wytwarzania oprogramowania.
Narzędzia te są zaprojektowane tak, aby nie zależeć od strony trzeciej, aby osiągnąć ten proces, a ich wszechstronność, oddzielenie i koszt są plusem DevOps na AWS. Narzędzia te są następujące:
AWS Cloud9 (środowisko programistyczne)
Cloud9 to oparte na chmurze zintegrowane środowisko programistyczne (IDE), które oferuje wzbogacone środowisko tworzenia kodu, umożliwiające pisanie, wykonywanie i debugowanie kodu za pomocą tylko przeglądarki. Podobnie, będąc IDE opartym na chmurze Amazon, możemy stwierdzić, że działa na poniższej instancji Amazon EC2. Ta instancja nie zapewnia niezbędnych zasobów do kompilowania i debugowania naszego kodu.
Z drugiej strony Cloud9 ułatwia współpracę poprzez kod, ponieważ możesz udostępniać swoje środowisko programistyczne zespołowi i widzieć w czasie rzeczywistym, kto, kiedy i gdzie jest wstrzykiwany nowy kod. Zawiera również czat, na którym zespół może natychmiast komunikować się i rozwiązywać wszelkie pytania lub wątpliwości.
Korzyści z chmury AWS9
Aby z niego skorzystać, wystarczy włączyć instancję (może to być domyślny Amazon) i połączyć się przez przeglądarkę, aby rozpocząć pisanie i testowanie kodu. Nie musisz więc martwić się o zasoby, konfigurację środowiska programistycznego, a tym bardziej o utrzymanie swojego IDE, ponieważ Aws cloud9 jest odpowiedzialny za zrobienie tego za Ciebie.
Oprócz tego Aws Cloud9 promuje współpracę poprzez zestaw narzędzi, takich jak predefiniowana konfiguracja środowisk, edycja w czasie rzeczywistym członków zespołu i wbudowany czat.
Koszt AWS Cloud9
Nie ma żadnych dodatkowych opłat za AWS Cloud9. Tak długo, jak korzystasz z instancji EC2, płacisz tylko za zasoby obliczeniowe i magazynowe (np. jeden przykład EC2, jeden wolumin EBS) używane do uruchamiania i przechowywania Twojego kodu.
AWS CodeCommit (kontrola wersji)
Usługa kontroli wersji w chmurze oparta na GIT może hostować i zarządzać dowolnym kodem, plikami binarnymi lub dokumentami. Eliminuje potrzebę zarządzania systemem, dzięki czemu nie musisz martwić się skalowaniem zasobów pamięci masowej.
Ponadto, ponieważ jest to system oparty na GIT, jest kompatybilny z podstawowymi funkcjami i można go bezproblemowo łączyć z istniejącymi narzędziami opartymi na GIT.
Kiedy używać CodeCommit?
Załóżmy, że musisz udostępnić serwer kontroli wersji kilku zespołom roboczym. W takim przypadku możesz w pełni wykorzystać tę usługę, ponieważ zapewnia korzyści, takie jak wysoka dostępność, bezpieczeństwo i jest komplementarnie zarządzana.
Z drugiej strony, jeśli musisz świadczyć usługę tylko dla kilku projektów, zysk jest minimalny, jeśli korzystasz z tej lub innej oferowanej na rynku.
Jaki jest koszt CodeCommit?
Bezpłatna warstwa Amazon daje nam limit 5 użytkowników, którzy mają dostęp do nieograniczonej liczby repozytoriów, 10 000 żądań GIT i 50 GB na miesiąc. Jeśli przekroczysz którekolwiek z tych ograniczeń, Amazon zacznie pobierać 1 USD miesięcznie.
AWS CodeDeploy (wdrożenie)
Ta usługa Amazon ułatwia nam zarządzanie i automatyzację wielu aplikacji opartych na usługach takich jak EC2, AWS Fargate, Aws Lambda i serwerach lokalnych. Innymi słowy, przyspiesza uruchamianie nowych komponentów oprogramowania.
Ponadto oferuje wdrożenia grupowe, które ułatwiają segmentację według środowisk. Oprócz tego CodeDeploy ma powinowactwo z takimi narzędziami jak CodeCommit, GitHub, GitLab, Jenkins, Travis czy CodePipeLine, dzięki czemu bardzo dobrze się z nimi integruje.
Zalety korzystania z AWS CodeDeploy
CodeDeploy daje nam znaczną przewagę w zarządzaniu wdrożeniami aplikacji, ponieważ ułatwia konfigurację przestojów, skalowanie aplikacji w celu maksymalizacji dostępności produktu.
Oprócz tego integruje się łatwo i prawie przejrzyście z produktami Amazon, takimi jak EC2, ECS lub aplikacjami bezserwerowymi. Może również integrować się z łańcuchami narzędzi o stałej dostawie, takimi jak AWS CodePipeline, GitHub lub Jenkins.
Kompilacja kodu AWS
W pełni zarządzana usługa ciągłej integracji kompiluje kod źródłowy, przeprowadza testy i tworzy pakiety oprogramowania gotowe do wdrożenia. Dzięki CodeBuild nie ma potrzeby udostępniania, zarządzania i skalowania serwerów kompilacji. CodeBuild stale wspina się i przetwarza wiele kompilacji naraz, więc kompilacje nie czekają w kolejce.
Możesz szybko rozpocząć pracę, korzystając ze wstępnie przygotowanych środowisk kompilacji lub tworzyć niestandardowe środowiska, które wykorzystują Twoje narzędzia do kompilacji.
Dlaczego warto budować kod AWS?
Niektóre z głównych zalet korzystania z tej usługi to jej elastyczność, skalowalność i dostosowywanie. Ma jednak swoje oprogramowanie do kompilacji. Może integrować dodatkowe narzędzia i włączać niestandardowe i zewnętrzne funkcje oraz obsługiwać duże obciążenia robocze, aby w razie potrzeby zwiększyć moc obliczeniową i zasoby.
Zadania kompilacji można zautomatyzować, tworząc automatyczne przepływy pracy wyzwalane za każdym razem, gdy nastąpi zmiana w kodzie źródłowym. Oprócz tego możesz zabezpieczyć elementy swojej kompilacji, ponieważ Code Build ma szyfrowanie części i treści.
Jaki jest koszt kompilacji kodu AWS?
Ta usługa nie wiąże się z żadnymi kosztami z góry; opłata za zasoby obliczeniowe jest naliczana tylko w oparciu o czas działania kompilacji. Stawka na minutę zależy od typu instancji wybranego do obliczeń.
AWS CodePipeline (przepływ procesu)
CodePipeline automatyzuje fazy kompilacji, testowania i wdrażania procesu wdrażania za każdym razem, gdy wprowadzana jest zmiana w kodzie, na podstawie zdefiniowanego modelu wdrażania.
Umożliwia szybkie i niezawodne dostarczanie funkcji i aktualizacji. Możesz łatwo zintegrować AWS CodePipeline z usługami innych firm, takimi jak GitHub lub Twoja niestandardowa wtyczka.
Korzyści z AWS CodePipeline
Oprócz możliwych integracji z usługami AWS, takimi jak CodeCommit, ECR, S3 do ekstrakcji kodu źródłowego, AWS CodePipeline umożliwia wdrażanie zmian za pomocą CodeDeploy, ECS za pośrednictwem instancji lub kontenerów Fargate.
Umożliwia uruchamianie w kilku równoległych segmentach przepływu pracy, aby zoptymalizować czas wdrażania i kontrolować dostęp w celu wprowadzania zmian za pośrednictwem uprawnień dla użytkowników, ról lub użytkowników federacyjnych.
Możesz również poznać stan swojego potoku, konfigurując alerty SNS, które będą wyświetlane jako powiadomienia zgodnie z wykonanymi zdarzeniami.
Ile jest wart AWS CodePipeline?
Z AWS CodePipeline płacisz tylko za to, z czego korzystasz. Koszt AWS CodePipeline to 1,00 USD za aktywny Pipeline miesięcznie. Amazon oferuje nam do celów testowych i innych rurociągów za darmo przez pierwsze 30 dni od jego utworzenia.
Krótko mówiąc, Amazon Web Services bardzo dobrze poradził sobie z przekazaniem w ręce swoich klientów wszystkich niezbędnych narzędzi do procesów integracji i ciągłego wdrażania.
Możliwość zintegrowania wszystkich tych usług w ramach jednej platformy chmurowej sprawia, że jest to bardzo opłacalna i korzystna opcja, a model kosztów i duża liczba oferowanych funkcji skłania nas do ponownego przemyślenia, w jaki sposób firmy mogą wejść w świat DevOps, mając narzędzia AWS jako filar ich procesy i wdrożenia.
Masz jakieś przemyślenia na ten temat? Daj nam znać poniżej w komentarzach lub przenieś dyskusję na naszego Twittera lub Facebooka.