This repository is meant to be used as a challenge for DevOps candidates at Tradebyte.
You should fork/clone this repository to use as a basis for the challenge.
Subject of this challenge is to setup a robust, production ready and scalable Kubernetes deployment for the given demo application.
The demo application can be found in this repository.
The requirements are as follows:
- Use a container technology of your own choosing for the demo application.
- Setup a local Kubernetes cluster (e.g. minikube) for the containerized demo application as you would do it in production.
- It should have at least 3 replicas.
- It should automatically scale with CPU utilization.
- It should handle environment variables in a secure way.
- Think about scalability and performance.
- GNU/Linux
python
>= 3.7pip
>= 9.0redis
>= 5.0
>=
means any version of the package, above or equal to the specified version.
redis-py
tornado
You can find them in the requirements.txt
file and their required version number.
You can install them by using:
pip install -r requirements.txt
The application uses several environment variables.
You can find them all and their default values in the .env
file. They need to be avaiable at runtime. Here is an overview about the environment variables:
ENVIRONMENT
the environment in which the application is run. LikelyPROD
for production orDEV
for development context.HOST
the hostname on which the application is running. Locally it islocalhost
.PORT
is the port on which the application is running.REDIS_HOST
is the hostname on which redis is running. Locally it islocalhost
.REDIS_PORT
is the port on which to communicate with redis. Normally it is6379
.REDIS_DB
which redis db should be used. Normally it is0
.
Application can be found in hello.py
file. You can start the application by using:
export $(cat .env | xargs) && python hello.py
Although you don't have to export the environment variables that way. 😉
- Static files are located in
static/
folder. - Templates are located in
template/
folder.
Tests can be found in tests/test.py
file.
You can run the tests by using:
python tests/test.py
We love contributions from everyone. By participating in this project, you agree to abide by our code of conduct.
We expect everyone to follow the code of conduct anywhere in DevOps-Challenge
's project codebases, issue trackers, chatrooms, and mailing lists.
Thank you, contributors!
Copyright (c) 2024 by the Tradebyte Software GmbH.
DevOps-Challenge
is free software, and may be redistributed under the terms specified in the LICENSE file.
DevOps-Challenge
is maintained and funded by the Tradebyte Software GmbH.
The names and images for DevOps-Challenge
are trademarks of the Tradebyte Software GmbH.
We love free software!