Jenkins is a powerful CI/CD orchestration tool that allows us to build pipelines that test our apps and builds them.
In this workshop, you will build a meme website. This site will only be deployed to its container when all test pass.
The application architecture uses Jenkins, docker, ansible and vagrant. You will build the needed infrastructure that hosts our project website. The configuration will be done through roles while the apps will be hosted on containers.
See the diagram below for a depiction of the complete architecture.
You will need to deactivate the HYPER-V off from the "Windows Features" window and activate the virtualization technology (AMD-v or VT-x). This can be done from the BIOS but is beyond the scope of this workhop.
In order to complete this workshop you'll need to install VirtualBox 5.2.4 VirtualBox is a general-purpose full virtualizer for x86 hardware, targeted at server, desktop and embedded use. This will allow us to create Virtual Machines on our host machine an AWS Account with sufficient permission to create AWS IAM, Amazon Lex, Amazon Connect, Lambda, DynamoDB and CloudFormation resources. The code and instructions in this workshop assume only one student is using a given AWS account at a time. If you try sharing an account with another student, you'll run into naming conflicts for certain resources. You can work around these by appending a unique suffix to the resources that fail to create due to conflicts, but the instructions do not provide details on the changes required to make this work.
After VirtualBox has been installed we need to install vagrant 2.0.2. Vagrant is a tool for building and managing virtual machine environments in a single workflow. With an easy-to-use workflow and focus on automation, Vagrant lowers development environment setup time, increases production parity, and makes the "works on my machine" excuse a relic of the past.
This workshop is broken up into multiple modules. For building out your website, you must complete the following modules in order before proceeding to the next:
