Skip to main content

Resoto vs. Steampipe

Resoto can be used as an alternative to Steampipe.

Steampipe is an open-source project that uses SQL to query cloud infrastructure, SaaS, code, logs, and more.

Steampipe uses foreign data wrappers to create a PostgreSQL abstraction on top of APIs.

Steampipe is developed and maintained by Turbot, a cloud governance platform.

Similarities Between Resoto and Steampipe

Just like Resoto, Steampipe queries cloud APIs to deliver resource metadata.

With both Resoto and Steampipe, you can:

  • Write queries to ask questions about your cloud infrastructure
  • Correlate data from different sources (e.g., a GitHub repository and a cloud resource)
  • Run security and compliance checks write the output of a query to a CSV file

Differences Between Resoto and Steampipe

At its core, Steampipe is a CLI tool with a wrapper around an embedded PostgreSQL instance.

The PostgreSQL instance starts and stops with the tool—i.e., Steampipe does not store any data. That makes Steampipe suitable for ad-hoc queries, but less ideal for exploration and tracking metrics.

ResotoSteampipe
Full-Text SearchCreates an inventory of discovered resources and offers full-text search as an easy way to explore your cloud inventory.Does not offer full-text search capabilities.
RemediationIntegrates analytics and governance into a single product to enforce policies and perform actions on resources.

Offers commands and jobs to automate remediation.

Can be used to write custom code and rules for any resource in a cloud-agnostic way.
Only runs queries and does not make changes to the state of resources.

An infrastructure-as-code tool (e.g., Terraform) or governance tool (e.g., Cloud Custodian) is required to modify resources,introducing friction, delays, and human error.
Data CollectionRuns an ETL process that syncs data on a regular schedule into a graph database.

Also exports metrics automatically to a time-series database.
Performs ad-hoc queries to cloud APIs and does not store data.
ContextProvides context for each resource through its asset inventory graph.Collects a list of resources, but not their dependencies and relationships.

(For example, Steampipe can surface a non-compliant resource, but not the "blast radius" that would result from deleting the resource.)
PerformanceSeparates data ingest, transformations, storage, and queries for a scalable approach to analyzing infrastructure.Works well for ad-hoc queries in smaller environments.

For larger infrastructures with hundreds of different accounts or complex queries, triggers a lot of connections and can stall during initialization. Every query opens up a new live connection.

Performing data collection in all accounts takes time and is resource intensive.

Let's say a user wants to query 100 Google Cloud projects with 85 services and 100 AWS accounts with 380 services. That's (100×85)+(100×380)=46,500(100 \times 85) + (100 \times 380) = 46,500 PostgreSQL tables to initialize (all foreign tables containing no data).
ResourcesSupports popular data sources and allows you to build your own plugins to collect data from any source.Currently supports more platforms and resources than Resoto.

Contact Us

Have feedback or need help? Don’t be shy—we’d love to hear from you!

 

 

 

Some Engineering Inc.