Introducing Yeobot

Introducing Yeobot

Most of us work for a company with multiple AWS accounts. Perhaps there is one for Production and another one for everything else. Perhaps more. From a security perspective, this account-level isolation is great.

When it comes to running a reliable system, we've been trained to utilize services across multiple regions. An RDS master in N. Virginia and a read-replica in Oregon, for example.

We all know managing this type of infrastructure requires automation, so there's a little CloudFormation here, some custom scripts there, maybe even a little Terraform if you're into that kinda thing. It's infrastructure as code.

Let's step back a second and think this through. What does code do? Code typically interacts with data. We've built a lot of code to manage our infrastructure, so presumably there is a lot of data.

The problem is, the data our infrastructure as code is acting on is locked behind 100s of AWS APIs. Not dozens, hundreds! One for each region and each service combination. To get data about EC2 instances in Oregon and N. Virginia requires multiple API calls.

Even after combining data from multiple API calls, not all of the data is available. Want to know how much that EC2 instance costs? Forget it. That data isn't readily available [1].

At CloudNative, we've been working hard on a tool to solve this issue and are excited to announce the release of Yeobot.

We believe there should be a unified interface across all of your AWS accounts, regions and services. It should include data regarding pricing, best practices and performance metrics. It should be easy to query and easy to understand.

Yeobot is that unified interface. Let's take a look at some examples:

What is the IP address of my Bastion server in Oregon?

SELECT public_ip_address FROM ec2.instances WHERE tags.Name = Bastion AND region = us-west-2

Which instances are in the "web" autoscaling group?

SELECT instances.instance_id FROM autoscaling.asgs WHERE auto_scaling_group_name LIKE web

What are the top 5 most expensive instances in Production?

SELECT id, region, monthly_cost FROM ec2.instances WHERE account = Production ORDER BY monthly_cost DESC LIMIT 5

You might have noticed a few things just then. First, Yeobot is using SQL. Why on earth would we do that? Because love it or hate it, SQL is widely known and understood. It doesn't need to be taught. SQL has a balance between expressiveness and simplicity that is tough to beat.

Second, Yeobot is a Slack bot. Slack gives us something no other delivery platform could - a one for many experience. Only one person needs to add Yeobot to Slack for the whole team to use it. Only one person gives Yeobot read-only access to AWS once for all users. When one person sends a query to Yeobot, the results are there for everyone to observe and search for later on.

If information is power, Yeobot is the noble servant providing it.

This is the single pane of glass we have been looking for, and we have only just begun.

We'd like to invite you to experience Yeobot today and let us know what information you have been wishing was as quick and easy to get as an SQL query. Feedback is built right into Yeobot and we're loving the feedback we have already received. Keep it coming!


[1] Go ahead and try using the AWS Price List "API" - we'll wait while you parse the 45MB JSON file just for EC2.

Learn more about Yeobot today!

comments powered by Disqus