Continuous integration and continuous delivery (CI/CD) is a software engineering practice that aims to improve the speed, quality, and reliability of software development by automating the build, test, and deployment process. This project established a CI/CD pipeline for our development environment.
Localized containerization is a way of packaging our web application, along with its dependencies and runtime environment, into a container that can be easily deployed and run in the cloud. This allows us to make it easier to deploy and run the application consistently, regardless of the host environment.
- Create a .env file and add values to each global variable listed in the env file.
- Create an
Aline Financial
parent folder. - Clone all Aline Financial repos into parent folder.
- Clone the develop branch in Aline DevOps
- Follow the steps in
Clone repo files above
if you do not haveAline Financial
repo files. - From the
docker
folder, move the following files to the parentAline Financial folder
you created in step 2.Dockerfile.maven
Dockerfile.node
docker-compose.yml
setup.py
.env
(the one you created inClone reop files:
step 1) - run
setup.py
:
py setup.py
orpython3 setup.py
- run
docker-compose.yml
- a. right-click
docker-compose.yml
- b. select
Compose Up
to run all services or selectCompose Up - Select Services
to build/run a subset of microservices.
-
Apply nginx Ingress Controller
kubectl apply -f https://raw.githubusercontent.com/kubernetes/ingress-nginx/controller-v1.5.1/deploy/static/provider/cloud/deploy.yaml
-
Create namespace
kubectl create namespace aline
-
Apply secrets for MYSQL_PASSWORD and secret keys within the aline namespace.
-
Apply manifest files. In
k8s
folder:kubectl apply -f .
-
Update /etc/hosts to route endpoints through localhost:
127.0.0.1 alinefinancial.com
127.0.0.1 member.alinefinancial.com
127.0.0.1 admin.alinefinancial.com
127.0.0.1 api.alinefinancial.com
Website is accessible through alinefinancial.com.
The files in the Jenkins folder were a dry run for a basic pipeline build to configure credientials and the pipeline process. A repo maybe created with these files to configure a pipeline provided the Jenkins servers and accounts are appropriately set up.
[email protected]
Cyber Cumulus Jira
Aline DevOps repo - Check the devlop branch for completed features.
-
Cloud Containerization
- Kubernetes Cloud - EKS
- Docker-Compose Cloud via ECS
-
Terraform CI/CD
- Architect Base Infrastructure
- Create Base Infrastructure
-
Jenkins CI/CD Jenkins distributed environment and SonarQube server is runs on 2 EC2 instances.
- Jenkins Pipelines for Microservices
- Jenkins Integration with SonarQube
- Tests and Quality Gates for each Maven and Node applications implemented.
- Docker-Compose via Jenkins
- Kubernetes via Jenkins
- Terraform Plan and Apply via Jenkins
-
General CI/CD
- Ansible Playbooks
- Vanilla CloudFormation Templates
Lead Developer: Lynda Foster
With support from the Cyber Cumulus Team:
Anthony Foster
Nathan Galler
Dennis Ghitas
Sebastian Marzal
Local Containerization and Automation Complete Coud Containerization and Automation Complete