This repository is a reference template for Anomaly projects provisioning and managing infrastructure on Linode using Terraform. The stack aims to the standard environment for our web based projects.
As Linode move services like Databases to a managed product. We will evolve this template to use those services. As a small team Anomaly wishes to leverage off the strengths of providers Linode and have them do as much of the heavy lifting as possible.
Our template provides a VCS (centred around branches and pull requests) based workflow.
While this README
outlines what we deliver, our GUIDE offers a step-by-step walk through of using the template and deploying your own apps.
A typical web project at Anomaly features:
Each server side component e.g API, worker, is containerised using Docker.
We assume the use of Terraform Cloud to preserve the state of the infrastructure.
This template will provision the following:
pods
from a private Docker repository (typical use case for deployments)Additionally we provide:
We will also explore using Kubernetes secrets and alternatively Hashicorp's Vault product offering to manage:
As resources are provisioned we will proxy the secrets to a managed services or the K8s cluster.
The setup uses a mock application to test the infrastructure. This application is highly insecure and should not be used in production. The mock application is a Python endpoint designed to prove that a real life app will:
The web page generated by this mock application displays these on the landing page. This is obviously for demonstration purposes only, in a real life scenario these credentials are used internally by the server Pods.
If you are interesting in building server side applications using Python please see lab-python-server.
Useful repositories:
Video tutorials:
Content of this repository are licensed under the Apache 2.0 license.