Wprowadzenie do narzędzi DevOps na AWS

Wprowadzenie do narzędzi DevOps na AWS
DevOps (Operacje rozwoju) to zestaw narzędzi i praktyk używanych do szybszego tworzenia i dostarczania aplikacji. Sam DevOps nie jest narzędziem używanym do szybszego rozwoju, wydania i dostarczania oprogramowania. Istnieje wiele narzędzi open source, które są używane do wdrożenia DevOps w organizacji. Ogólnie rzecz biorąc, to podstawowe kroki, które są wykonywane w celu wdrożenia najlepszych praktyk DevOps w celu szybszego opracowania i dostarczania kodu.
  • Plan
  • Kod
  • Zbudować
  • Test
  • Uwolnienie
  • Wdrożyć
  • Działać
  • Monitor

Oprócz narzędzi open source, różni dostawcy usług w chmurze zapewniają swoje narzędzia rodowe w chmurze do wdrażania praktyk DevOps w chmurze. W tym artykule opisano różne narzędzia i technologie dostarczone przez AWS do wdrożenia DevOps na AWS.

AWS CodeCommit

AWS CodeCommit to usługa używana do kontroli wersji i hostowana przez AWS. Podobnie jak inne usługi kontroli wersji, takie jak GitHub, Bitbucket i Gitlab, kod źródłowy można przesunąć do prywatnych repozytoriów w CodeCommit. Nie ma publicznych repozytoriów na AWS CodeCommit.

AWS CodeCommit to wysoce dostępna, bezpieczna i skalowalna usługa używana do hostowania prywatnych repozytoriów kodu. Korzystając z AWS CodeCommit, nie musisz zaktualizować usługi, jeśli repozytoria wzrośnie przekraczają limit. Automatycznie skaluje się wraz ze wzrostem liczby repozytoriów lub wielkości repozytorium.

Poniżej znajduje się lista pewnych świadczeń zapewnianych przez usługę AWS CodeCommit.

  • Wysoce dostępna i w pełni zarządzana usługa
  • Przechowuje kod z szyfrowaniem w spoczynku
  • Współpraca pracy
  • Skalowalna usługa kontroli wersji
  • Zintegrowane z niektórymi usługami AWS i stron trzecich
  • Łatwa migracja z innych repozytoriów
  • Obsługuje polecenia GIT, które już znasz

Konsola AWS CodeCommit zapewnia przyjazny graficzny interfejs użytkownika do wizualizacji żądań, zatrudnienia, gałęzi i tagów GIT. Repozytoria z CodeCommit można klonować za pomocą adresów URL SSH i HTTPS.

W ustawieniach repozytorium CodeCommit możesz włączyć powiadomienia i wyzwalacze, aby powiadomić, kiedy nastąpi konkretne zdarzenie, takie jak (Utwórz gałąź, usuń gałąź, na żądanie Pull).

AWS CodeBuild

AWS CodeBuild to w pełni zarządzana usługa używana do uruchamiania testów, zbudowania kodu i generowania artefaktów kompilacji z kodu. Korzystając z AWS CodeBuild, nie musisz dostarczać dodatkowego serwera kompilacji, aby zbudować kod źródłowy. Zapewnia wstępnie skonfigurowane środowiska dla większości popularnych języków programowania, takich jak Python, Java, Nodejs i Builds Tools. Możesz także tworzyć własne niestandardowe środowiska, aby zbudować projekt za pomocą AWS CodeBuild.

AWS CodeBuild to usługa bez serwera, a ty jesteś obciążony tylko wtedy, gdy uruchomi się kompilacja. W ten sposób możesz zaoszczędzić pieniądze na dodatkowy serwer do budowania projektów. Poniżej znajdują się korzyści z korzystania z usługi kodowej od AWS.

  • CodeBuild to w pełni zarządzana usługa i nie musisz aktualizować i zarządzać serwerem kompilacji.
  • Jest to skalowalna usługa i skale wraz ze wzrostem przetwarzania. Płacisz tylko za czas, w jakim będzie działać kompilacja.
  • Zapewnia wstępnie skonfigurowane środowiska kompilacji, które ułatwiają użycie.
  • Możesz także utworzyć własne konfigurowalne środowiska kompilacji na kodbuild.

AWS CodeBuild można zintegrować z różnymi usługami dostawcy kodu źródłowego, aby pobrać kod. Możesz pobrać kod z GitHub, Bitbucket, Github Enterprise, CodeCommit i S3. Możesz także skonfigurować usługę kodu, aby wysłać dzienniki kompilacji do dzienników CloudWatch, które mogą pomóc zdiagnozować awarie kompilacji. Aby komunikować się z CloudWatch, AWS CodeBuild potrzebuje roli IAM z określonymi uprawnieniami.

AWS CODEDEPLOY

AWS CodeDePloy to w pełni zarządzana usługa świadczona przez AWS w celu wdrożenia wstępnie zbudowanej aplikacji do różnych usług obliczeniowych, takich jak EC2, AWS Lambda, AWS ECS i serwery lokalne. Usługa AWS CODEDEPLOY może automatycznie wdrażać następujący rodzaj treści.

  • Funkcja AWS Lambda
  • Pliki wykonywalne
  • Pliki multimedialne
  • Skrypty
  • Kod
  • Pakiety

AWS CodeDePloy to usługa bez serwera, a ty jesteś naliczany tylko wtedy, gdy uruchomi się wdrożenie, a przez resztę czasu nie jesteś naliczany. Podobnie jak AWS CodeBuild, AWS CodEdeploy eliminuje również potrzebę zapewnienia dodatkowego serwera do celów wdrażania. Poniżej znajdują się korzyści z korzystania z usługi AWS CodedoPloy.

  • CODEDEPLOY może być używany do wdrażania tradycyjnych aplikacji na serwerach i aplikacjach, które wdrażają funkcje Lambda na AWS Lambda.
  • Można go użyć do pełnej automatyzacji procesu wdrażania kodu w różnych środowiskach, takich jak (dev, test, produkt).
  • Można go użyć do wykonywania wdrożenia niebieskiego/zielonego, które pozwala uniknąć przestoju aplikacji podczas wdrażania.
  • Wdrożenie można cofnąć, jeśli wystąpi jakiś błąd podczas wdrażania najnowszej wersji.

AWS CodePipeline

AWS CodePipeline to usługa używana do wizualizacji kompletnego rurociągu CICD za pomocą przyjaznego graficznego interfejsu użytkownika. Tworzy ładny GUI rurociągu, łącząc różne usługi, takie jak AWS CodeCommit, AWS CodeBuild, AWS CodedoPloy. Ułatwia to proces uwalniania oprogramowania poprzez wizualizację każdego etapu rurociągu.

Gdy programista popycha kod do kodeCommit, CodePipeline, jeśli odpowiednio skonfigurowana, datuje nowy kod i przekazuje najnowszy kod do usługi AWS CodeBuild, aby uruchomić testy i budować artefakty kodu. Po zbudowaniu artefaktów te artefakty są przekazywane do usługi AWS CODEDEPLOY, aby wdrożyć najnowszą wersję aplikacji na serwerze.

Wszystkie te kroki można wizualizować i zintegrować ze sobą w usłudze CodePIPeline. Podczas wdrażania kodu od inscenizacji do środowiska produkcyjnego można dodać krok do zatwierdzenia za pomocą AWS CodePIPeline. Aby wdrożyć kod w środowisku produkcyjnym, osoba z określonymi uprawnieniami musi zatwierdzić wdrożenie. Unika wdrażania nieautentycznego zobowiązania do produkcji, co może złamać środowisko produkcyjne.

AWS CODEGURU

Amazon Codeguru to usługa świadczona przez AWS w celu przeglądu kodu źródłowego. AWS Codeguru używa uczenia maszynowego i analizy programów do przeglądu kodu źródłowego i znalezienia potencjalnych wad w kodzie. Po znalezieniu wad w kodzie źródłowym AWS Coduru sugestie dotyczące rozwiązania tych wad języków programowania Java i Python.

Obecnie AWS Coduru obsługuje tylko języki programowania Java i Python i może odczytać kod źródłowy od następujących dostawców źródeł.

  • AWS CodeCommit
  • AWS S3
  • Github Enterprise Cloud
  • Github Enterprise Server
  • Github
  • Bitbucket

Wniosek

Istnieją różne usługi natywne w chmurze AWS, które można wykorzystać do zbudowania kompletnego rurociągu CICD. Główną zaletą korzystania z usług zastrzeżonych AWS jest to, że usługi te są w pełni zarządzanymi usługami bez serwera i współdziałają ze sobą prywatnie. Istnieją różne usługi przechowywania kodu źródłowego (AWS CodeCommit), budowania i uruchamiania testów kodu (AWS CodeBuild), wdrażania kodu na serwerach (AWS CodedoPloy) na AWS. Te wszystkie usługi można ze sobą zintegrować, aby utworzyć kompletny rurociąg za pomocą AWS CodePipeline Service. Ten artykuł zawiera krótkie zrozumienie wszystkich tych usług AWS w celu wdrożenia praktyk DevOps na AWS.