Juno: On demand microservice deployment
accentureurbanoshelmterraformtypescript
type
Post
summary
status
Published
tags
accenture
urbanos
helm
terraform
typescript
edited
Jul 23, 2023 07:54 PM
slug
juno
date
Jul 23, 2023
juno
UrbanOS-Public • Updated Feb 27, 2023
🥅 Goals
- Utilize my time in-between contracts at accenture to enable people in non technical roles to spin up and tear down a microservice suite for business demos
- Learn CDKTF + more helm best practices
🏛️ What is Juno
Juno is Typescript code that generates Terraform code using CDKTF. That terraform code creates a new Azure k8s cluster and associated node pools, and installs several helm charts onto it.
A preregistered domain is associated with an nginx reverse proxy, to connect 4 different frontend and API services to the web for anyone to use. All resources are torn down and spun back up by manually triggering a github action, and the entire suite runs for about
$0.60
an hour.🏄♀️ Why is Juno
Juno deploys UrbanOS, a microservice system built to ingest data sources. UrbanOS provides front ends for setting up data ingestion and viewing it in charts and graphs, as well as APIs for subscribing to data.
In the past UrbanOS has been difficult for programmers to deploy and maintain. Managing an environment for demos to new clients was hard to maintain while prioritizing existing clients. I wanted to use my time in-between contracts to free up developer time, by making a demo environment that could sustain itself, and be easily maintained + refreshed. I also wanted to invest in learning more about Azure, Terraform, and Terraform CDK.
📈 Outcomes
- Juno operates at over 500% cost savings compared to the previous demo environment.
- Juno has been used by non-technical roles to recreate successful product demos shown to prospective clients multiple times a week.
- Developers found Juno easy to understand, and it was extended by the team to be responsible for several environments at once.
- New teams at accenture are able to view the product and work on their own environments, and developers can spin up their own live environment.