AWS setup
Hieronder volgt het stappenplan zodat deployen naar AWS, ook wel Amazon Web Services, mogelijk wordt.
Een meer uitgebreide guide vind je in de README van seed/ops in Gitlab. Deze meer summiere guide zou je moeten in staat stellen om een bestaand project te deployen.
Stappen om alles klaar te zetten
-
Installeer aws-cli via
bash brew install awscliHet is mogelijk dat hierbij een error wordt teruggegeven wanneer Docker recent is verwijderd en opnieuw werd geïnstalleerd:
Permission denied @ apply2files - /usr/local/lib/docker/cli-plugins.Volgende stappen lossen dit probleem mogelijks op:
bash sudo rm -r /usr/local/lib/docker/cli-plugins mkdir -p /Applications/Docker.app/Contents/Resources/cli-plugins brew cleanup -
Maak een nieuwe folder
.awsop root niveau aan via het commando:bash mkdir ~/.aws -
Navigeer naar deze folder via
bash cd ~/.aws -
Maak een nieuw bestand aan met de naam credentials via
bash touch credentials -
Voeg volgende twee lijnen toe aan het begin van het bestand.
bash [default] region = eu-central-1 -
Installeer de chrome plugin SAML to AWS STS Keys Converter
-
Voeg een nieuwe lijn commentaar toe aan het credentials bestand met daarin de projectnaam. Op deze manier behoud je het overzicht. Dit kan door
# Projectnaamtoe te voegen boven de credentials voor dat specifieke project. -
Navigeer naar de Codifly AWS apps page. Login met de credentials die je kunt vinden in onePassword. Klik op de klant waar je aan werkt. De plugin zou moeten automatisch een
credentialsfile downloaden. Soms lukt het niet in één keer. Dus dan moet je gewoon de nieuwe tab sluiten en nog eens proberen. -
Kopieer de inhoud van het gedownloade
credentialsbestand en voeg het toe aan het in stap 4 aangemaakte bestand~/.aws/credentials. -
Vervang
[default]door de waarde in het deployscript bij AWS_PROFILE, dit zou moeten eindigen met DeploymentAccess. Behoud echter wel de vierkante haakjes errond. Het formaat van de string waar je[default]mee moet vervangen is[__accountId_DeploymentAccess].
Het credentials bestand zou nu volgende structuur moeten hebben:
[default]
region = eu-central-1
[<AWS_PROFILE>]
information from extension without default
Een concreet voorbeeld:

Deployen van een Codifly api of web app
Volgende stappen beschrijven het deployment proces van een api of web app. Onderstaand schema geeft je ook meer informatie over Codifly's Git strategie.
-
Wanneer er nieuwe features zijn toegevoegd zonder breaking changes, moet de versie verhoogd worden van
v0.1.0naarv0.2.0. Indien er een bug is opgelost spreken we over een patch, hiervoor wijzig je de versie vanv0.1.0naarv0.1.1. Het wijzigen van de versie gebeurt via de version property in de package.json file van web en api. Wijzig de versies en commit deze changes op de development branch, met als message het versienummer (bijvoorbeeldv0.2.0). -
Geef de gemaakte commit op de development branch een tag met als naam de nieuwe versie
v0.2.0. Zo kunnen we releases makkelijk terugvinden. Het aanmaken van een tag kan via SourceTree met een rechtermuisklik op de gemaakte commit. -
Zorg ervoor dat de credentials van de applicatie waaraan je werkt in de
~/.aws/credentialsfile staan. Hiervoor kan je bovenstaande stappen volgen. Voeg ook volgende lijnen toe zodat de aws-cli weet dat we onze rol gebruiken voor het deployen van de applicatie. Vervang hierbij__accountIddoor het ID van jouw applicatie.[__accountId_DeploymentAccess] source_profile=__accountId_CodiflyAdministratorAccess role_arn=arn:aws:iam::__accountId:role/DeploymentAccess -
Je bent nu klaar om te deployen! Navigeer met je terminal naar je project op de development branch en voer vervolgens in de api folder het volgende commando uit om de backend te deployen:
yarn run deploy -e stg. Achterliggend voert dit hetdeploy.shscript uit. De-eflag geeft de omgeving aan waarop je wil deployen.De commando's voor elke omgeving zijn:
- Staging:
yarn run deploy -e stg - Acceptance:
yarn run deploy -e acc - Production:
yarn run deploy -e prd
- Staging:
-
Doe vervolgens hetzelfde in de web folder om de frontend te deployen:
yarn run deploy -e stg. Let telkens op de output 'deploy script complete' om te bevestigen dat de release is gelukt. -
Wanneer je bevestigd dat het releasen is gelukt, door te gaan kijken op jouw omgeving, mag je de development branch inmergen in de staging branch. Dit doe je niet via een MR, maar via SourceTree. De commit van de merge geef je terug een Tag, met als naam
release/stg/v0.2.0. Wijzig dit naar jouw omgeving en versienummer. Zo kunnen we terug alle releases makkelijk terugvinden.
Codifly's Git strategy
