Embracing Agile Software Delivery and DevOps with Snowflake

Why Use Database DevOps?

DevOps is about automating (in code) every aspect of a software solution, including operations and security. It enables operations and security engineers to use the same techniques software developers use to automate their work. DevOps is one of the key pillars that enable agile software delivery and the following business results:

  • Faster delivery of software
  • Greater efficiency
  • Repeatable, measurable processes
  • Improved quality of software
  • Faster innovation
  • Ability to build the right solution for a given problem
  • Cheaper delivery of software
  • Greater return on investment and profitability
Unique challenges with doing DevOps for databases. Adapted from Francois Delport’s blog post Continuous Deployment Of Databases: Part 1.

Schema Change Management

Foundational to any release automation for databases is a schema change management (or schema migration) tool. Achieving database DevOps requires managing all database objects in code and automating their deployment.

Two approaches for schema change management compared (declarative and imperative).

Continuous Data Protection

Traditional on-premises data warehouses have unique challenges for automation (see “Why Use Database DevOps?” above). Chief among them is the requirement to maintain and protect valuable enterprise data while ensuring no downtime to the enterprise data warehouse during the release of database schema changes, data integration code, platform objects, or other changes. Historically this meant making costly backups before a release, complicated strategies for isolating tables during the release and ETL data load, and a time-consuming process for rolling back the database after a bad release (for example, if there are bugs in the release process, bugs in the published code, bad data, lost data, or other problems).

Snowflake Continuous Data Protection with Time Travel and Fail-Safe.

What’s Next?

The Snowflake platform offers some revolutionary capabilities that simplify enabling DevOps for data warehouses. I’ve touched only briefly on a few of them, but there are many other features currently available in Snowflake that make a DevOps approach much more manageable. I’m keeping an eye on schema change management tools and eagerly waiting for more tools that support the declarative-style approach to schema change management with Snowflake.

--

--

Get the Medium app

A button that says 'Download on the App Store', and if clicked it will lead you to the iOS App store
A button that says 'Get it on, Google Play', and if clicked it will lead you to the Google Play store
Jeremiah Hansen

Jeremiah Hansen

530 Followers

I’m currently a Field CTO Principal Architect at Snowflake. Opinions expressed are solely my own and do not represent the views or opinions of my employer.