We are currently working on 5 independent code bases that we want to deploy to Amazon AWS independently when code is pushed to github, first a test server in a testing branch and then the live server in the main branch.
We also need a setup where the developers can easily pull the code from github (or gitlab), then run docker-compose to have a testing environment that is equal to the server environment. For us it’s important that new developers can easily start coding instead of spending lots of time setting up the project locally.
We need a DevOps professional who can advise, setup, test and deliver a complete CI/CD setup for all of our branches. We do not need DevOps guys who speak a technical language that we are not familiar with and who assume that everybody should understand CI/CD. Why would we hire you if we already have that competence?
- All developers must be able to install the project locally in an easy way and without hassle.
- Developer pulls the code from github/gitlab
- Developer installs Docker locally.
- Developer runs docker-compose to create dev environment locally
- Developer programs and test the code locally
- Developer push the code to github
- Developer creates a pull request to the testing branch
- Github creates an image that is pushed to AWS ECS
- K8S deploys the test server image at AWS EKS
- If the test looks okay, the developer can make pull requests to the main branch.
- If pull request is accepted, then the image is built and pushed to AWS ECS.
- K8S deploys the live site on the main server.
This only represents an example on how we can automate the deployment process. We expect you as a DevOps professional to have a better plan than this.
1. Dating frontend - a vue.js 3 frontend using Nuxt and consuming our backend apis.
2. Dating backend - a laravel with apis used by the frontend, using mysql and redis.
3. Marketing frontend - a vue.js 3 frontend consuming backend apis.
4. Marketing backend - a laravel with apis used by the frontend.
5. Crypto backend - a [login to view URL] with Sequelize ORM with its own database
1. Plan the whole progress and present a visual plan for it.
2. Advise us on how to improve the process.
3. Dockerize all 5 repos and make it easy for developers.
4. Create Github actions that does their job.
5. Use Kubernetes to deploy the images.
6. Test that the pipeline works well.