Automation
Building an automation module for a network observability solution
Who the client is
A provider of a network monitoring and observability platform. It wanted to automate the onboarding of virtual private clouds to its network observability platform.
The challenge
Integrating a customer's virtual private cloud with the platform was a manual, error-prone process. Every cloud provider exposes flow logs differently, so AWS, GCP and Azure each needed their own access, storage and log configuration before the platform could consume them, and the resulting configuration had to be reproducible and trackable.
What was at risk:
- Errors in a manual integration process, and time and labor spent on every new cloud deployment
What we did
- Provided a team of developers and DevOps engineers with expertise in network monitoring and observability, cloud and automation.
- Designed and built the entire solution from the ground up: architecture, technology stack, execution and testing.
- Enabled configuration of the customer's observability platform with an Infrastructure-as-Code approach, using widely adopted technologies.
- Prepared AWS, GCP and Azure configurations to be consumed by the client's platform.
- Implemented a Terraform provider in Go, a Go SDK for the platform API, Terraform/Ansible modules and unit tests.
- Worked in close cooperation with the client and a fast feedback loop, with regular, recorded demos of new features.
How it works
Each cloud gets the configuration the platform needs to read its flow logs, and Terraform applies it automatically. Four parts make that work.
- AWS IAM roles and policies give the platform access to EC2 and S3 resources, an S3 bucket stores the flow logs, and the Flow Log configuration is set.
- GCP Flow logs are enabled for the required subnets, a flow log sink filters them to a Pub/Sub topic with a subscription, and roles allow the platform to pull the logs.
- Azure The appropriate providers are turned on for flow logs and network watchers, a network watcher gets logs from the resource group, a storage account is configured, and Azure roles grant the platform access.
- Terraform automation A Terraform provider written in Go uses the observability platform's API to configure flow log export from a cloud deployment, and Terraform/Ansible modules integrate new virtual private clouds automatically, with automated export from AWS and GCP. A Go SDK for the platform API and unit tests complete it.
Outcomes
Technical
Fully automated onboarding
The error-prone manual process of integrating a virtual private cloud with the platform was fully automated, reducing errors.
Business
Faster, simpler integration
Integrating a new cloud deployment with the network observability platform takes less time and labor.
Made possible
AWS, GCP + Azure
The IaC approach gives an easily reproducible and trackable configuration across clouds.
Tech & stack
Clouds
Google Cloud Platform
Ansible
Anonymized example — fuller write-up available on request.
