aws, azure or gcp project readme.md prepare
Budget: $10 – $30 USD
Assume you’re running on your favorite cloud (Azure, AWS, GCP) - you don’t have to make this work specifically for GCP GKE.
Create a README.md that outlines your line of thinking for the solution.
Create plain Kubernetes resources (yaml or json). Please return this file in your response with any other materials you want to share with us.
You can make the following assumptions:
Each system you’re deploying has its own isolated database. You don’t have to worry about the type. You can assume the database is in the same region as your k8s.
You can use any docker image you’d like for your containers. It’s just an example and does not have to work. Any, say, default php docker you can deploy on a pod. What the container it is, does not matter - but we’ll be talking about two different containers in the exercise, one for users, and one for shifts.
Assume daily bell-curve scaling. High traffic during the day, low traffic during the night.
Exercise
1.) We want to deploy two containers that scale independently from one another.
Container 1: This container runs code that runs a small API that returns users from a database.
Container 2: This container runs code that runs a small API that returns shifts from a database.
2.) For the best user experience auto scale this service when the average CPU reaches 70%.
3.) Ensure the deployment can handle rolling deployments and rollbacks.
4.) Your development team should not be able to run certain commands on your k8s cluster, but you want them to be able to deploy and roll back. What types of IAM controls do you put in place?
Bonus
· How would you apply the configs to multiple environments (staging vs production)?
· How would you auto-scale the deployment based on network latency instead of CPU?
Create a README.md that outlines your line of thinking for the solution.
Create plain Kubernetes resources (yaml or json). Please return this file in your response with any other materials you want to share with us.
You can make the following assumptions:
Each system you’re deploying has its own isolated database. You don’t have to worry about the type. You can assume the database is in the same region as your k8s.
You can use any docker image you’d like for your containers. It’s just an example and does not have to work. Any, say, default php docker you can deploy on a pod. What the container it is, does not matter - but we’ll be talking about two different containers in the exercise, one for users, and one for shifts.
Assume daily bell-curve scaling. High traffic during the day, low traffic during the night.
Exercise
1.) We want to deploy two containers that scale independently from one another.
Container 1: This container runs code that runs a small API that returns users from a database.
Container 2: This container runs code that runs a small API that returns shifts from a database.
2.) For the best user experience auto scale this service when the average CPU reaches 70%.
3.) Ensure the deployment can handle rolling deployments and rollbacks.
4.) Your development team should not be able to run certain commands on your k8s cluster, but you want them to be able to deploy and roll back. What types of IAM controls do you put in place?
Bonus
· How would you apply the configs to multiple environments (staging vs production)?
· How would you auto-scale the deployment based on network latency instead of CPU?