Magento 2

Våre magneto2 nettbutikker hostes alle i Amazon AWS. Vi bruker en spesifik tjeneste som heter AWS Beanstalk. AWS Beanstalk er en av mange tjenester AWS tilbyr. Beanstalk er en tjeneste som gjør det enklere å legge opp nye applikasjoner på nettet, Beanstalk bruker flere AWS tjenester også. Det er flere måter AWS Beanstalk kan brukes på, vi bruker det som kalles for Multicontainer Docker.

Det er AWS Beanstalk som er mastertjenesten for hver nettbutikk. Hver nettbutikk bruker også minimum alle disse tjenestene fra AWS:

  • Beanstalk
  • ELB (Elastic Load Blanacer)
  • EC2
  • RDS
  • ElastiCache
  • EFS
  • SES
  • S3*

* En felles S3 brukes for å lagre backups for alle våre nettbutikker.

 

Arkitektur over oppsett av nye nettbutikker og deployment prosess

Flytdiagrammet under viser prosessen som kjøres.

  1. Oppsett av ny nettbutikk betyr at man kopierer github repoet som heter magento2-image til magento2-NAVNPÅNETTBUTIKK. (nettbutikk-x).
  2. For hver deploy man kjører via m2-provisioner skjer det som heter deployment prosessen. Oppgaven til m2-provisioner er følgende:
    1. Hente ned magento2-deployment pakken, som er basispakken som brukes for nye deployment.
    2. Hente ned nettbutikkkoden (nettbutikk-x)
    3. Konfigurere konfigurasjonsfiler og sette sammen strukturen for deployment pakken. Den henter innstillinger fra m2-provisioner databasen, f.eks. om man har satt at butikken skal ha SSL må det konfigureres i konfig filene i deployment pakken.
    4. Sende en ny deploy til Elastic Beanstalk når man har laget deployment pakken.

 

Kort forklart, de involverte git repoene:

 

 

magento2-how-it-works-deployment-til-elasticbeanstalk

 

 

 

 

Provision applikasjonen

http/m2-provision-prod.f8f4f28jcv.eu-west-1.elasticbeanstalk.com/

Markant har prøvd å gjøre det enklest mulig å starte nye nettbutikker, da dette er arbeid som gjerne er rutinearbeid. Derfor har vi bygget en webapplikasjon, som snakker med AWS via API’et til AWS. Denne webapplikasjonen gjør at du kan enkelt lage nye nettbutikker ved  å trykke på en knapp.

Oppsett av ny nettbutikk

Hva skjer når en ny nettbutikk lages via provision applikasjonen?

  1. Et nytt git-repo lages i github fra vår boilerplate repo ( https://github.com/markant-norge/magento2-image ) .

Deploy

Du har også mulighet til å kjøre ut ny deploy via provision applikasjonen. Denne kjører en deploy basert på master-branchen i gitrepoet som ble laget første gang man laget applikasjonen.

Hva skjer når man trykker på deploy?

  1. Git repoet ( https://github.com/markant-norge/magento2-deployment ) hentes ned og det lages en pakke ut ifra gitrepoet som ble laget under oppsett. Disse 2 pakkene blir altså merget sammen til en deploypakke.
  2. Deploypakken pushes til AWS Beanstalk («eb deploy»).