Skip to content

Latest commit

 

History

History
150 lines (109 loc) · 5.48 KB

M11.md

File metadata and controls

150 lines (109 loc) · 5.48 KB

Moduł 11

Przygotowanie nowego środowiska

Ponieważ moje obecne środowisko dev jest zablokowane jeszcze kilka dni (database credential nie może być utworzony przez stack, bo już istnieje "pending deletion"), klonuję nowe środowisko ndev. Jednocześnie ponieważ gałęzie w git-cie są tanie, wolę mieć nową gałąź ndevelopment przechowującą pliki dla tego środowiska zamiast trzymać je razem z obecnym środowiskiem.

Przygotowanie gałęzi w CodeCommit

W repozytorium z infrastrukturą odpalam

git checkout development
git checkout -b ndevelopment
git push -u origin ndevelopment 

obraz

Klonuję środowisko

Skrypt klonujący z obecnymi parametrami utworzy mi środowisko o nazwie ndev

git checkout -b feature/ndev-env-clone
bash memes-generator/cicd/scripts/clone-environment.sh
find . -type f -name "*-dev.json" -exec rm -f {} \;
git add .
git commit -m "Env: environment clone dev -> ndev"
git push origin feature/ndev-env-clone

W efekcie dostaję czystą gałąź tylko z parametrami dla środowiska ndev obraz

Scalam do gałęzi ndevelopment

Tworzę Pull Request z powyższej feature-branch na przygotowaną gałąź z nowym środowiskiem. (Ponieważ CLI jest bliższe mojemu ❤️)

aws codecommit create-pull-request \
   --title "NDev - environment" \
   --targets repositoryName=memes-generator-shared-cicd-infra,sourceReference=feature/ndev-env-clone,destinationReference=ndevelopment \
   --region eu-west-1

obraz

Uruchomienie środowiska pod infrastrukturę

W parametrach szablonu create-pipeline zmieniam nazwę gałęzi (ndevelopment) oraz target stage (ndev).

index 0789a4a..abfcc32 100644
--- a/memes-generator/cicd/parameters/create-resources-pipeline-target-dev-shared-dev.json
+++ b/memes-generator/cicd/parameters/create-resources-pipeline-target-dev-shared-dev.json
@@ -17,7 +17,7 @@
     },
     {
         "ParameterKey": "BranchName",
-        "ParameterValue": "development"
+        "ParameterValue": "ndevelopment"
     },
     {
         "ParameterKey": "CodePipelineRoleName",
     {
         "ParameterKey": "ReviewChangeSets",
@@ -57,7 +57,7 @@
     },
     {
         "ParameterKey": "TargetStage",
-        "ParameterValue": "dev"
+        "ParameterValue": "ndev"
     },

Wdrażam szablon pipeline. Po wdrożeniu szblon zostaje uruchomiony i buduje środowisko 👍

Sprawdźmy stan aplikacji

ALB_URL=$(aws ssm get-parameter --region eu-west-1 \
   --name /memes-generator/ndev/network/alb/url \
   --query 'Parameter.Value' --output text)

http ${ALB_URL}/actuator/health
HTTP/1.1 200
Connection: keep-alive
Content-Type: application/vnd.spring-boot.actuator.v3+json
Date: Sun, 01 Aug 2021 11:54:28 GMT
Transfer-Encoding: chunked

{
    "status": "UP"
}

Wdrożenie infrastruktury pod monitoring

Przygotowanie feature-branch

Zgodnie z wymaganiami przygotowuję nową gałąź feature/monitoring wywodzącą się z ndevelopment. Przygotowuję parametry dla środowiska ndev dla nowych zasobów. Czas na pierwszy commit.

Wdrożenie zasobów poza pipeline

1. Roles & Groups

  • Role do pracy na kontach ↪️ memes-generator/operations/commands/deploy-roles.sh
  • Grupy ↪️ memes-generator/operations/commands/deploy-groups.sh

Zmiany w plikach parametrów - commit - Roles & Group obraz

2. Root login alert

Wdrożenie stack-a i commit do gałęzi.

3. CloudTrait

Wdrożenie stack-a i commit do gałęzi.

4. Notification Topics

Wdrożenie stack-a i commit do gałęzi.

Modyfikacja pipeline

Ponieważ zmiany do monitoringu obejmują nie tylko nowe zasoby ale modyfikacje już istniejących plan wdrożenia jest następujący.

  • Dodaję resztę szablonów zasobów. Są to alerts i dashboard ale również zmiany w database,
  • Modyfikuję pipeline dodając nowy stage Monitoring wdrażający ww. alerts & dashboard,
  • Tworzę i scalam PR do gałęzi ndevelopment, która zawiera obecnie stworzone środowisko
  • Wdrażam nową wersję pipeline
  • Uruchamiam pipeline ponownie

obraz

Commit-y tworzone zgodnie z zaleceniem obraz

Stage CodePipeline wdrażający monitoring obraz

obraz

Widok customowego dashboardu obraz

Oczywiście aplikacja działa! obraz