Microservice
Resource Automation
Developed an automation service that efficiently provisions and deprovisions cloud resources on various platforms, transforming a 15-20 minute manual process into an under 2 min automated task.
The Story
What was built?
The Cloud Resource Automation Worker is an innovative solution to automate the lifecycle of cloud resources across a multitude of platforms.
This service listens to a Pub/Sub subscription which receives event based on modifications to service level customer SKU assignments, and manages the resources accordingly. It swiftly provisions resources when new Cloud based customers are added to an organization and equally promptly deprovisions them when a SKU is removed from an organization.
What was my role?
As a key developer on a tight-knit team, I was entrusted with a range of responsibilities. These included establishing the initial Golang service infrastructure, configuring the necessary Pub/Sub topics and subscriptions, implementing DataDog monitors, developing essential internal services, and creating the web driver service for manual resource creation.
What were the challenges?
One of the key challenges encountered was the absence of essential endpoints in a service we needed to provision resources. To overcome this, I engaged with the service's team and, despite the time constraints, explored alternative approaches, culminating in a web automation-based solution. I accounted for the volatile nature of the target DOM and designed the system to promote easy updates, tight monitoring, robust debugging, and thorough testing.
What was the impact?
The service revolutionized a common process by automating it, leading to significant time and cost savings. The 15-20 minute manual process was condensed to under 2 minutes, bringing with it the advantages of automation such as reliable monitoring, insightful metrics, and efficient scaling.
What lessons were learned?
This project enriched my understanding of OAuth2 interaction (particularly with Google APIs), the setup of sidecar containers in Kubernetes deployments, handling sealed secrets, and writing web drivers.