DevOps Pro Europe 2021

May 11-13


Lukonde Mwila

Positon: Senior Software Engineer

Company: Entelect

Country: South Africa


Lukonde is a Senior Software Engineer at Entelect and an AWS Container Hero. He currently consults in the financial services sector specialising in cloud and DevOps engineering, cloud architecture designs and cloud security at an enterprise level in the AWS landscape.

He has a passion for sharing knowledge through speaking engagements such as meetups and tech conferences, as well as writing technical articles. His talk at DockerCon 2020 on deploying multi-container applications to AWS was one of the top rated and most viewed sessions of the event.

He is 5x AWS certified and is an advocate for containerisation and serverless technologies. Lukonde enjoys sharing experiences of building out AWS infrastructure on Medium and sharing open source projects on GitHub for the developer community to easily consume, replicate and improve for their own benefit.


Automate React Site Deployments from GitHub to S3 & CloudFront

In this talk, Lukonde will demonstrate how to create a CI/CD pipeline for a React application. The aim will be to show a detailed approach in creating an automated flow for distributing the app from a repository all the way to a live deployment for multiple environments.

The CI/CD pipeline in AWS will pull the source code from GitHub and run tests against the application before deploying it to an S3 bucket for static site hosting. The site will then be distributed using CloudFront which will point to the S3 bucket. All of the infrastructures will be built using Terraform.

As a little cherry on top, he will demonstrate how to build pipeline status notifications that get pushed through to a Slack channel.

The main technologies used in this talk will include the following: ReactJS, Terraform, Terragrunt and AWS Resources such as CodeBuild, CodePipeline, Secrets Manager, S3 and CloudFront.

Lukonde will share a public repository with all of the source code used in the talk for viewers to clone.

Table of Contents:
Birds Eye View of what we’ll be building
Create React Project
Create GitHub Repo & Generate Personal Access Token Save Access Token in AWS Secrets Manager
Create S3 Bucket for Hosting using Terraform
Create CloudFront CDN Distribution for Site using Terraform
Create CI/CD Pipeline with GitHub and CodeBuild using Terraform
Configure CodeBuild CI stage to run React application tests
Use Terragrunt for Deploying Infrastructure to multiple environments
Setup Pipeline Notifications to Slack
Test Application Deployment to separate environments

Session Keywords

🔑 CI/CD Pipeline
🔑 IaC
🔑 React