Soundwave: an open source configuration management database

Pinterest Engineering
4 min readintermediate
--
View Original

Overview

Soundwave is an open-source configuration management database (CMDB) developed by Pinterest to manage and track AWS EC2 instances and their metadata. It enhances resource management, service automation, and capacity planning while providing a cloud-agnostic abstraction layer for configuration management.

What You'll Learn

1

How to use Soundwave to track current and historic EC2 instances

2

Why Soundwave provides better query performance than the EC2 API

3

How to implement a cloud-agnostic configuration management solution

Prerequisites & Requirements

  • Understanding of AWS EC2 and configuration management concepts
  • Familiarity with Elasticsearch and RESTful APIs(optional)

Key Questions Answered

What is Soundwave and how does it function?
Soundwave is a configuration management database designed to track AWS EC2 instances and their metadata. It synchronizes instance data with EC2, provides a RESTful API for data access, and features a UI dashboard for ad hoc queries, significantly improving query performance compared to the EC2 API.
How does Soundwave handle eventual consistency issues with EC2 API?
Soundwave addresses eventual consistency by using Java workers that check for critical instance attributes. If attributes are unavailable, the notification is returned to the SQS queue with an exponential backoff until the required data is available, ensuring accurate tracking of instances.
What are the main components of Soundwave's architecture?
Soundwave consists of three main components: a Java-based worker system for data synchronization, a RESTful API layer for instance data access, and a UI dashboard for performing ad hoc searches. This architecture allows for efficient data management and querying.
What benefits does Soundwave provide over the EC2 API?
Soundwave offers improved query performance, with instance information retrieval taking approximately 5 seconds compared to over a minute using the EC2 API. It also provides a cloud-agnostic abstraction layer, facilitating hybrid cloud scenarios.

Key Statistics & Figures

Time to retrieve instance information
5 seconds
This is the time taken by Soundwave compared to over a minute using the EC2 API.

Technologies & Tools

Some links below are affiliate links. We may earn a commission if you make a purchase.

Key Actionable Insights

1
Implement Soundwave to enhance your AWS EC2 instance tracking and management.
Using Soundwave can significantly reduce the time it takes to retrieve instance data, improving operational efficiency and enabling better resource management.
2
Utilize the RESTful API provided by Soundwave for seamless integration with existing automation systems.
This allows for direct querying of instance information, streamlining workflows and enhancing service automation capabilities.
3
Leverage the cloud-agnostic features of Soundwave to support hybrid cloud environments.
This flexibility can help organizations manage resources across different cloud providers more effectively, reducing vendor lock-in.

Common Pitfalls

1
Assuming that instance attributes will be immediately available after launching an EC2 instance.
Due to the eventual consistency model of the EC2 API, attributes may not be populated right away. Soundwave mitigates this by implementing a retry mechanism for critical attributes.

Related Concepts

AWS EC2 Management
Configuration Management Databases
Cloud-agnostic Solutions
Eventual Consistency In Distributed Systems