A demonstration of a todo application in a container orchestration environment.
Getting Started
Monitoring
·
Load testing
·
Chaos testing
Findings
·
Acknowledgments
This project was made to solve the problem of introducing new team members into Kubernetes. Demonstrating tool to host a microservices app in Kubernetes along with testing and monitoring capabilities.
We're using Minikube as a baseline to deploy services into Kubernetes. However, this can be compatible with Managed Kubernetes Services give or take some modification to adapt to cloud providers.
Notable tools including, but not limited to:
- NodeJS v17+
- Docker
- Minikube
Use Homebrew to install required tools.
brew bundle
# Install NodeJS
nvm use 16
Use Chocolatey to install required tools. Run the PowerShell script as admin.
.\Install-ChocoTools.ps1
# Install NodeJS
nvm use 16
Alternatively, we can use VSCode dev containers to open a cluster environment. This only requires Docker.
Open this project in VSCode, ctrl + p
and enter Remote-Containers: Rebuild and Reopen in Container
.
Feel free to inspect
make
commands in theMakefile
# Start local cluster
make local-cluster
# Create a tunnel between Minikube and our local machine (localhost)
make tunnel
make deploy-monitoring
We can run load tests locally. This requires k6
and NodeJS with Yarn.
make load-test
TODO
# Start local cluster
make local-cluster
# Build images, deploy, port-forward and watch for changes
skaffold dev
# OR
# Do everything `skaffold dev` except watching & port-forwarding
skaffold build -q | skaffold deploy --build-artifacts -
Little tid bits can me found in FINDINGS.md
Distributed under the MIT License. See LICENSE
for more information.
TODO