Episode Show Notes & Transcript
- Liquibase: https://www.liquibase.com
- Liquibase Community: https://www.liquibase.org
- Liquibase AWS Marketplace: https://aws.amazon.com/marketplace/seller-profile?id=7e70900d-dcb2-4ef6-adab-f64590f4a967
- Github: https://github.com/liquibase
- Twitter: https://twitter.com/liquibase
Corey: It seems like there is a new security breach every day. Are you confident that an old SSH key, or a shared admin account, isn’t going to come back and bite you? If not, check out Teleport. Teleport is the easiest, most secure way to access all of your infrastructure. The open source Teleport Access Plane consolidates everything you need for secure access to your Linux and Windows servers—and I assure you there is no third option there. Kubernetes clusters, databases, and internal applications like AWS Management Console, Yankins, GitLab, Grafana, Jupyter Notebooks, and more. Teleport’s unique approach is not only more secure, it also improves developer productivity. To learn more visit: goteleport.com. And not, that is not me telling you to go away, it is: goteleport.com.
Corey: You know how Git works right?
Announcer: Sorta, kinda, not really. Please ask someone else.
Corey: That's all of us. Git is how we build things, and Netlify is one of the best ways I’ve found to build those things quickly for the web. Netlify’s Git-based workflows mean you don’t have to play slap-and-tickle with integrating arcane nonsense and web hooks, which are themselves about as well understood as Git. Give them a try and see what folks ranging from my fake Twitter for Pets startup, to global Fortune 2000 companies are raving about. If you end up talking to them—because you don’t have to; they get why self-service is important—but if you do, be sure to tell them that I sent you and watch all of the blood drain from their faces instantly. You can find them in the AWS marketplace or at www.netlify.com. N-E-T-L-I-F-Y dot com.
Corey: Welcome to Screaming in the Cloud. I’m Corey Quinn. This is a promoted episode. What does that mean in practice? Well, it means the company who provides the guest has paid to turn this into a discussion that’s much more aligned with the company than it is the individual.
Sometimes it works, Sometimes it doesn’t, but the key part of that story is I get paid. Why am I bringing this up? Because today’s guest is someone I met in person at Monktoberfest, which is the RedMonk conference in Portland, Maine, one of the only reasons to go to Maine, speaking as someone who grew up there. And I spoke there, I met my guest today, and eventually it turned into this, proving that I am the envy of developer advocates everywhere because now I can directly tie me attending one conference to making a fixed sum of money, and right now they’re all screaming and tearing off their headphones and closing this episode. But for those of you who are sticking around, thank you. My guest today is the CTO and co-founder of Liquibase. Please welcome Robert Reeves. Robert, thank you for joining me, and suffering the slings and arrows I’m about to hurled directly into your arse, as a warning shot.
Robert: [laugh]. Man. Thanks for having me. Corey, I’ve been looking forward to this for a while. I love hanging out with you.
Corey: One of the things I love about the Monktoberfest conference, and frankly, anything that RedMonk gets up to is, forget what’s on stage, which is uniformly excellent; forget the people at RedMonk who are wonderful and I aspire to do more work with them in different ways; they’re great, but the people that they attract are invariably interesting, they are invariably incredibly diverse in terms of not just demographics, but interests and proclivities. It’s just a wonderful group of people, and every time I get the opportunity to spend time with those folks I do, and I’ve never once regretted it because I get to meet people like you. Snark and cynicism about sponsoring this nonsense aside—for which I do thank you—you’ve been a fascinating person to talk to you because you’re better at a lot of the database-facing things than I am, so I shortcut to instead of forming my own opinions, I just skate off of yours in some cases. You’re going to get letters now.
Robert: Well, look, it’s an occupational hazard, right? Releasing software, it’s hard so you have to learn these platforms, and part of it includes the database. But I tell you, you’re spot on about Monktoberfest. I left that conference so motivated. Really opened my eyes, certainly injecting empathy into what I do on a day-to-day basis, but it spurred me to action.
And there’s a lot of programs that we’ve started at Liquibase that the germination for that seed came from Monktoberfest. And certainly, you know, we were bummed out that it’s been canceled two years in a row, but we can’t wait to get back and sponsor it. No end of love and affection for that team. They’re also really smart and right about a hundred percent of the time.
Corey: That’s the most amazing part is that they have opinions that generally tend to mirror my own—which, you know—
Corey: —confirmation bias is awesome, but they almost never get it wrong. And that is one of the impressive things is when I do it, I’m shooting from the hip and I already have an apology half-written and ready to go, whereas when dealing with them, they do research on this and they don’t have the ‘I’m a loud, abrasive shitpostter on Twitter’ defense to fall back on to defend opinions. And if they do, I’ve never seen them do it. They’re right, and the fact that I am as aligned with them as I am, you’d think that one of us was cribbing from the other. I assure you that’s not the case.
But every time Steve O’Grady or Rachel Stephens, or Kelly—I forget her last name; my apologies is all Twitter, but she studied medieval history, I remember that—or James Governor writes something, I’m uniformly looking at this and I feel a sense of dismay, been, “Dammit. I should have written this. It’s so well written and it makes such a salient point.” I really envy their ability to be so consistently on point.
Robert: Well, they’re the only analysts we pay money to. So, we vote with our dollars with that one. [laugh].
Corey: Yeah. I’m only an analyst when people have analyst budget. Other than that, I’m whatever the hell you describe me. So, let’s talk about that thing you’re here to show. You know, that little side project thing you found and are the CTO of.
I wasn’t super familiar with what Liquibase does until I looked into it and then had this—I got to say, it really pissed me off because I’m looking at it, and it’s how did I not know that this existed back when the exact problems that you solve are the things I was careening headlong into? I was actively annoyed. You’re also an open-source project, which means that you’re effectively making all of your money by giving things away and hoping for gratitude to come back on you in the fullness of time, right?
Robert: Well, yeah. There’s two things there. They’re open-source component, but also, where was this when I was struggling with this problem? So, for the folks that don’t know, what Liquibase does is automate database schema change. So, if you need to update a database—I don’t care what it is—as part of your application deployment, we can help.
Instead of writing a ticket or manually executing a SQL script, or generating a bunch of docs in a NoSQL database, you can have Liquibase help you out with that. And so I was at a conference years ago, at the booth, doing my booth thing, and a managing director of a very large bank came to me, like, “Hey, what do you do?” And saw what we did and got angry, started yelling at me. “Where were you three years ago when I was struggling with this problem?” Like, spitting mad. [laugh]. And I was like, “Dude, we just started”—this was a while ago—it was like, “We just started the company two years ago. We got here as soon as we could.”
But I struggled with this problem when I was a release manager. And so I’ve been doing this for years and years and years—I don’t even want to talk about how long—getting bits from dev to test to production, and the database was always, always, always the bottleneck, whether it was things didn’t run the same in test as they did, eventually in production, environments weren’t in sync. It’s just really hard. And we’ve automated so much stuff, we’ve automated application deployment, lowercase a compiled bits; we’re building things with containers, so everything’s in that container. It’s not a J2EE app anymore—yay—but we haven’t done a damn thing for the database.
And what this means is that we have a whole part of our industry, all of our database professionals, that are frankly struggling. I always say we don’t sell software Liquibase. We sell piano recitals, date nights, happy hours, all the stuff you want to do but you can’t because you’re stuck dealing with the database. And that’s what we do at Liquibase.
Corey: Well, you’re talking about database people. That’s not how I even do it. I would never call myself that, for very good reason because you know, Route 53 remains the only database I use. But the problem I always had was that, “Great. I’m doing a deployment. Oh, I’m going to put out some changes to some web servers. Okay, what’s my rollback?” “Well, we have this other commit we can use.” “Oh, we’re going to be making a database schema change. What’s your rollback strategy,” “Oh, I’ve updated my resume and made sure that any personal files I had on my work laptop been backed up somewhere else when I immediately leave the company when we can’t roll back.” Because there’s not really going to be a company anymore at that point.
It’s one of those everyone sort of holds their breath and winces when it comes to anything that resembles a schema change—or an ALTER TABLE as we used to call it—because that is the mistakes will show territory and you can hope and plan for things in pre-prod environments, but it’s always scary. It’s always terrifying because production is not like other things. That’s why I always call my staging environment ‘theory’ because things work in theory but not in production. So, it’s how do you avoid the mess of winding up just creating disasters when you’re dealing with the reality of your production environments? So, let’s back up here. How do you do it? Because it sounds like something people would love to sell me but doesn’t exist.
Robert: [laugh]. Well, it’s real simple. We have a file, we call it the change log. And this is a ledger. So, databases need to be evolved. You can’t drop everything and recreate it from scratch, so you have to apply changes sequentially.
And so what Liquibase will do is it connects to the database, and it says, “Hey, what version are you?” It looks at the change log, and we’ll see, ehh, “There’s ten change sets”—that’s what components of a change log, we call them change sets—“There’s ten change sets in there and the database is telling me that only five had been executed.” “Oh, great. Well, I’ll execute these other five.” Or it asks the database, “Hey, how many have been executed?” And it says, “Ten.”
And we’ve got a couple of meta tables that we have in the database, real simple, ANSI SQL compliant, that store the changes that happen to the database. So, if it’s a net new database, say you’re running a Docker container with the database in it on your local machine, it’s empty, you would run Liquibase, and it says, “Oh, hey. It’s got that, you know, new database smell. I can run everything.”
And so the interesting thing happens when you start pointing it at an environment that you haven’t updated in a while. So, dev and test typically are going to have a lot of releases. And so there’s going to be little tiny incremental changes, but when it’s time to go to production, Liquibase will catch it up. And so we speak SQL to the database, if it’s a NoSQL database, we’ll speak their API and make the changes requested. And that’s it. It’s very simple in how it works.
The real complex stuff is when we go a couple of inches deeper, when we start doing things like, well, reverse engineering of your database. How can I get a change log of an existing database? Because nobody starts out using Liquibase for a project. You always do it later.
Corey: No, no. It’s one of those things where when you’re doing a project to see if it works, it’s one of those, “Great, I’ll run a database in some local Docker container or something just to prove that it works.” And, “Todo: fix this later.” And yeah, that todo becomes load-bearing.
Robert: [laugh]. That’s scary. And so, you know, we can help, like, reverse engineering an entire database schema, no problem. We also have things called quality checks. So sure, you can test your Liquibase change against an empty database and it will tell you if it’s syntactically correct—you’ll get an error if you need to fix something—but it doesn’t enforce things like corporate standards. “Tables start with T underscore.” “Do not create a foreign key unless those columns have an ID already applied.” And that’s what our quality checks does. We used to call it rules, but nobody likes rules, so we call it quality checks now.
Corey: How do you avoid the trap of enumerating all the bad things you’ve seen happen because at some point, it feels like that’s what leads to process ossification at large companies where, “Oh, we had this bad thing happen once, like, a disk filled up, so now we have a check that makes sure that all the disks are at least 20, empty.” Et cetera. Great. But you keep stacking those you have thousands and thousands and thousands of those, and even a one-line code change then has to pass through so many different tests to validate that this isn’t going to cause the failure mode that happened that one time in a unicorn circumstance. How do you avoid the bloat and the creep of stuff like that?
Robert: Well, let’s look at what we’ve learned from automated testing. We certainly want more and more tests. Look, DevOp’s algorithm is, “All right, we had a problem here.” [laugh]. Or SRE algorithm, I should say. “We had a problem here. What happened? What are we going to change in the future to make sure this doesn’t happen?” Typically, that involves a new standard.
Now, ossification occurs when a person has to enforce that standard. And what we should do is seek to have automation, have the machine do it for us. Have the humans come up and identify the problem, find a creative way to look for the issue, and then let the machine enforce it. Ossification happens in large organizations when it’s people that are responsible, not the machine. The machines are great at running these things over and over again, and they’re never hung over, day after Super Bowl Sunday, their kid doesn’t get sick, they don’t get sick. But we want humans to look at the things that we need that creative energy, that brain power on. And then the rote drudgery, hand that off to the machine.
Corey: Drudgery seems like sort of a job description for a lot of us who spend time doing operation stuff.
Corey: It’s drudgery and it’s boring, punctuated by moments of sheer terror. On some level, you’re more or less taking some of the adrenaline high of this job away from people. And you know, when it comes to databases, I’m kind of okay with that as it turns out.
Robert: Yeah. Oh, yeah, we want no surprises in database-land. And that is why over the past several decades—can I say several decades since 1979?
Corey: Oh, you can s—it’s many decades, I’m sorry to burst your bubble on that.
Robert: [laugh]. Thank you, Corey. Thank you.
Corey: Five, if we’re being honest. Go ahead.
Robert: So, it has evolved over these many decades where change is the enemy of stability. And so we don’t want change, and we want to lock these things down. And our database professionals have become changed from sentinels of data into traffic cops and TSA. And as we all know, some things slip through those. Sometimes we speed, sometimes things get snuck through TSA.
And so what we need to do is create a system where it’s not the people that are in charge of that; that we can set these policies and have our database professionals do more valuable things, instead of that adrenaline rush of, “Oh, my God,” how about we get the rush of solving a problem and saving the company millions of dollars? How about that rush? How about the rush of taking our old, busted on-prem databases and figure out a way to scale these up in the cloud, and also provide quick dev and test environments for our developer and test friends? These are exciting things. These are more fun, I would argue.
Corey: You have a list of reference customers on your website that are awesome. In fact, we share a reference customer in the form of Ticketmaster. And I don’t think that they will get too upset if I mention that based upon my work with them, at no point was I left with the impression that they played fast and loose with databases. This was something that they take very seriously because for any company that, you know, sells tickets to things you kind of need an authoritative record of who’s bought what, or suddenly you don’t really have a ticket-selling business anymore. You also reference customers in the form of UPS, which is important; banks in a variety of different places.
Yeah, this is stuff that matters. And you support—from the looks of it—every database people can name except for Route 53. You’ve got RDS, you’ve got Redshift, you’ve got Postgres-squeal, you’ve got Oracle, Snowflake, Google’s Cloud Spanner—lest people think that it winds up being just something from a legacy perspective—Cassandra, et cetera, et cetera, et cetera, CockroachDB. I could go on because you have multiple pages of these things, SAP HANA—whatever the hell that’s supposed to be—Yugabyte, and so on, and so forth. And it’s like, some of these, like, ‘now you’re just making up animals’ territory.
Robert: Well, that goes back to open-source, you know, you were talking about that earlier. There is no way in hell we could have brought out support for all these database platforms without us being open-source. That is where the community aligns their goals and works to a common end. So, I’ll give you an example. So, case in point, recently, let me see Yugabyte, CockroachDB, AWS Redshift, and Google Cloud Spanner.
So, these are four folks that reached out to us and said, either A) “Hey, we want Liquibase to support our database,” or B) “We want you to improve the support that’s already there.” And so we have what we call—which is a super creative name—the Liquibase test harness, which is just genius because it’s an automated way of running a whole suite of tests against an arbitrary database. And that helped us partner with these database vendors very quickly and to identify gaps. And so there’s certain things that AWS Redshift—certain objects—that AWS Redshift doesn’t support, for all the right reasons. Because it’s data warehouse.
Okay, great. And so we didn’t have to run those tests. But there were other tests that we had to run, so we create a new test for them. They actually wrote some of those tests. Our friends at Yugabyte, CockroachDB, Cloud Spanner, they wrote these extensions and they came to us and partnered with us.
The only way this works is with open-source, by being open, by being transparent, and aligning what we want out of life. And so what our friends—our database friends—wanted was they wanted more tooling for their platform. We wanted to support their platform. So, by teaming up, we help the most important person, [laugh] the most important person, and that’s the customer. That’s it. It was not about, “Oh, money,” and all this other stuff. It was, “This makes our customers' lives easier. So, let’s do it. Oop, no brainer.”
Corey: There’s something to be said for making people’s lives easier. I do want to talk about that open-source versus commercial divide. If I Google Liquibase—which, you know, I don’t know how typing addresses in browsers works anymore because search engines are so fast—I just type in Liquibase. And the first thing it spits me out to is liquibase.org, which is the Community open-source version. And there’s a link there to the Pro paid version and whatnot. And I was just scrolling idly through the comparison chart to see, “Oh, so ‘Community’ is just code for shitty and you’re holding back advanced features.” But it really doesn’t look that way. What’s the deal here?
Robert: Oh, no. So, Liquibase open-source project started in 2006 and Liquibase the company, the commercial entity, started after that, 2012; 2014, first deal. And so, for—Nathan Voxland started this, and Nathan was struggling. He was working at a company, and he had to have his application—of course—you know, early 2000s, J2EE—support SQL Server and Oracle and he was struggling with it. And so he open-sourced it and added more and more databases.
Certainly, as open-source databases grew, obviously he added those: MySQL, Postgres. But we’re never going to undo that stuff. There’s rollback for free in Liquibase, we’re not going to be [laugh] we’re not going to be jerks and either A) pull features out or, B) even worse, make Stephen O’Grady’s life awful by changing the license [laugh] so he has to write about it. He loves writing about open-source license changes. We’re Apache 2.0 and so you can do whatever you want with it.
And we believe that the things that make sense for a paying customer, which is database-specific objects, that makes sense. But Liquibase Community, the open-source stuff, that is built so you can go to any database. So, if you have a change log that runs against Oracle, it should be able to run against SQL Server, or MySQL, or Postgres, as long as you don’t use platform-specific data types and those sorts of things. And so that’s what Community is about. Community is about being able to support any database with the same change log. Pro is about helping you get to that next level of DevOps Nirvana, of reaching those four metrics that Dr. Forsgren tells us are really important.
Corey: Oh, yes. You can argue with Nicole Forsgren, but then you’re wrong. So, why would you ever do that?
Robert: Yeah. Yeah. [laugh]. It’s just—it’s a sucker’s bet. Don’t do it. There’s a reason why she’s got a PhD in CS.
Corey: She has been a recurring guest on this show, and I only wish she would come back more often. You and I are fun to talk to, don’t get me wrong. We want unbridled intellect that is couched in just a scintillating wit, and someone is great to talk to. Sorry, we’re both outclassed.
Robert: Yeah, you get entertained with us; you learn with her.
Corey: Exactly. And you’re still entertained while doing it is the best part.
Robert: [laugh]. That’s the difference between Community and Pro. Look, at the end of the day, if you’re an individual developer just trying to solve a problem and get done and away from the computer and go spend time with your friends and family, yeah, go use Liquibase Community. If it’s something that you think can improve the rest of the organization by teaming up and taking advantage of the collaboration features? Yes, sure, let us know. We’re happy to help.
Corey: Now, if people wanted to become an attorney, but law school was too expensive, out of reach, too much time, et cetera, but they did have a Twitter account, very often, they’ll find that they can scratch that itch by arguing online about open-source licenses. So, I want to be very clear—because those people are odious when they email me—that you are licensed under the Apache License. That is a bonafide OSI approved open-source license. It is not everyone except big cloud companies, or service providers, which basically are people dancing around—they mean Amazon. So, let’s be clear. One, are you worried about Amazon launching a competitive service with a dumb name? And/or have you really been validated as a product if AWS hasn’t attempted and failed to launch a competitor?
Robert: [laugh]. Well, I mean, we do have a very large corporation that has embedded Liquibase into one of their flagship products, and that is Oracle. They have embedded Liquibase in SQLcl. We’re tickled pink because that means that, one, yes, it does validate Liquibase is the right way to do it, but it also means more people are getting help. Now, for Oracle users, if you’re just an Oracle shop, great, have fun. We think it’s a great solution. But there’s not a lot of those.
And so we believe that if you have Liquibase, whether it’s open-source or the Pro version, then you’re going to be able to support all the databases, and I think that’s more important than being tied to a single cloud. Also—this is just my opinion and take it for what it’s worth—but if Amazon wanted to do this, well, they’re not the only game in town. So, somebody else is going to want to do it, too. And, you know, I would argue even with Amazon’s backing that Liquibase is a little stronger brand than anything they would come out with.
Corey: This episode is sponsored by our friends at Oracle HeatWave is a new high-performance accelerator for the Oracle MySQL Database Service. Although I insist on calling it “my squirrel.” While MySQL has long been the worlds most popular open source database, shifting from transacting to analytics required way too much overhead and, ya know, work. With HeatWave you can run your OLTP and OLAP, don’t ask me to ever say those acronyms again, workloads directly from your MySQL database and eliminate the time consuming data movement and integration work, while also performing 1100X faster than Amazon Aurora, and 2.5X faster than Amazon Redshift, at a third of the cost. My thanks again to Oracle Cloud for sponsoring this ridiculous nonsense.
Corey: So, I want to call out though, that on some level, they have already competed with you because one of database that you do not support is DynamoDB. Let’s ignore the Route 53 stuff because, okay. But the reason behind that, having worked with it myself, is that, “Oh, how do you do a schema change in DynamoDB?” The answer is that you don’t because it doesn’t do schemas for one—it is schemaless, which is kind of the point of it—as well as oh, you want to change the primary, or the partition, or the sort key index? Great. You need a new table because those things are immutable.
So, they’ve solved this Gordian Knot just like Alexander the Great did by cutting through it. Like, “Oh, how do you wind up doing this?” “You don’t do this. The end.” And that is certainly an approach, but there are scenarios where those were first, NoSQL is not a acceptable answer for some workloads.
I know Rick [Horahan 00:26:16] is going to yell at me for that as soon as he hears me, but okay. But there are some for which a relational database is kind of a thing, and you need that. So, Dynamo isn’t fit for everything. But there are other workloads where, okay, I’m going to just switch over. I’m going to basically dump all the data and add it to a new table. I can’t necessarily afford to do that with anything less than maybe, you know, 20 milliseconds of downtime between table one and table two. And they’re obnoxious and difficult ways to do it, but for everything else, you do kind of need to make ALTER TABLE changes from time to time as you go through the build and release process.
Robert: Yeah. Well, we certainly have plans for DynamoDB support. We are working our way through all the NoSQLs. Started with Mongo, and—
Corey: Well, back that out a second then for me because there’s something I’m clearly not grasping because it’s my understanding, DynamoDB is schemaless. You can put whatever you want into various arbitrary fields. How would Liquibase work with something like that?
Robert: Well, that’s something I struggled with. I had the same question. Like, “Dude, really, we’re a schema change tool. Why would we work with a schemaless database?” And so what happened was a soon-to-be friend of ours in Europe had reached out to me and said, “I built an extension for MongoDB in Liquibase. Can we open-source this, and can y’all take care of the care and feeding of this?” And I said, “Absolutely. What does it do?” [laugh].
And so I looked at it and it turns out that it focuses on collections and generating data for test. So, you’re right about schemaless because these are just documents and we’re not going to go through every single document and change the structure, we’re just going to have the application create a new doc and the new format. Maybe there’s a conversion log logic built into the app, who knows. But it’s the database professionals that have to apply these collections—you know, indices; that’s what they call them in Mongo-land: collections. And so being able to apply these across all environments—dev, test, production—and have consistency, that’s important.
Now, what was really interesting is that this came from MasterCard. So, this engineer had a consulting business and worked for MasterCard. And they had a problem, and they said, “Hey, can you fix this with Liquibase?” And he said, “Sure, no problem.” And he built it.
So, that’s why if you go to the MongoDB—the liquibase-mongodb repository in our Liquibase org, you’ll see that MasterCard has the copyright on all that code. Still Apache 2.0. But for me, that was the validation we needed to start expanding to other things: Dynamo, Couch. And same—
Corey: Oh, yeah. For a lot of contributors, there’s a contributor license process you can go through, assign copyright. For everything else, there’s MasterCard.
Robert: Yeah. Well, we don’t do that. Look, you know, we certainly have a code of conduct with our community, but we don’t have a signing copyright and that kind of stuff. Because that’s baked into Apache 2.0. So, why would I want to take somebody’s ability to get credit and magical internet points and increase the rep by taking that away? That’s just rude.
Corey: The problem I keep smacking myself into is just looking at how the entire database space across the board goes, it feels like it’s built on lock-in, it’s built on it is super finicky to work with, and it generally feels like, okay, great. You take something like Postgres-squeal or whatever it is you want to run your database on, yeah, you could theoretically move it a bunch of other places, but moving databases is really hard. Back when I was at my last, “Real job,” quote-unquote, years ago, we were late to the game; we migrated the entire site from EC2 Classic into a VPC, and the biggest pain in the ass with all of that was the RDS instance. Because we had to quiesce the database so it would stop taking writes; we would then do snapshot it, shut it down, and then restore a new database from that RDS snapshot.
How long does it take, at least in those days? That is left as an experiment for the reader. So, we booked a four hour maintenance window under the fear that would not be enough. It completed in 45 minutes. So okay, there’s that. Sparked the thing up and everything else was tested and good to go. And yay. Okay.
It took a tremendous amount of planning, a tremendous amount of work, and that wasn’t moving it very far. It is the only time I’ve done a late-night deploy, where not a single thing went wrong. Until I was on the way home and the Uber driver sideswiped a city vehicle. So, there we go—
Corey: —that’s the one. But everything else was flawless on this because we planned these things out. But imagine moving to a different provider. Oh, forget it. Or imagine moving to a different database engine? That’s good. Tell another one.
Robert: Well, those are the problems that we want our database professionals to solve. We do not want them to be like janitors at an elementary school, cleaning up developer throw-up with sawdust. The issue that you’re describing, that’s a one time event. This is something that doesn’t happen very often. You need hands on the keyboard, you want people there to look for problems.
If you can take these database releases away from those folks and automate them safely—you can have safety and speed—then that frees up their time to do these other herculean tasks, these other feats of strength that they’re far better at. There is no silver bullet panacea for database issues. All we’re trying to do is take about 70% of DBAs time and free it up to do the fun stuff that you described. There are people that really enjoy that, and we want to free up their time so they can do that. Moving to another platform, going from the data center to the cloud, these sorts of things, this is what we want a human on; we don’t want them updating a column three times in a row because dev couldn’t get it right. Let’s just give them the keys and make sure they stay in their lane.
Corey: There’s something glorious about being able to do that. I wish that there were more commonly appreciated ways of addressing those pains, rather than, “Oh, we’re going to sell you something big and enterprise-y and it’s going to add a bunch of process and not work out super well for you.” You integrate with existing CI/CD systems reasonably well, as best I can tell because the nice thing about CI/CD—and by nice I mean awful—is that there is no consensus. Every pipeline you see, in a release engineering process inherently becomes this beautiful bespoke unicorn.
Robert: Mm-hm. Yeah. And we have to. We have to integrate with whatever CI/CD they have in place. And we do not want customers to just run Liquibase by itself. We want them to integrate it with whatever is driving that application deployment.
We’re Switzerland when it comes to databases, and CI/CD. And I certainly have my favorite of those, and it’s primarily based on who bought me drinks at the last conference, but we cannot go into somebody’s house and start rearranging the furniture. That’s just rude. If they’re deploying the app a certain way, what we tell that customer is, “Hey, we’re just going to have that CI/CD tool call Liquibase to update the database. This should be an atomic unit of deployment.” And it should be hidden from the person that pushes that shiny button or the automation that does it.
Corey: I wish that one day that you could automate all of the button pushing, but the thing that always annoyed me in release engineering was the, “Oh, and here’s where we stop to have a human press the button.” And I get it. That stuff’s scary for some folks, but at the same time, this is the nature of reality. So, you’re not going to be able to technology your way around people. At least not successfully and not for very long.
Robert: It’s about trust. You have to earn that database professional’s trust because if something goes wrong, blaming Liquibase doesn’t go very far. In that company, they’re going to want a person [laugh] who has a badge to—with a throat to choke. And so I’ve seen this pattern over and over again.
And this happened at our first customer. Major, major, big, big, big bank, and this was on the consumer side. They were doing their first production push, and they wanted us ready. Not on the call, but ready if there was an issue they needed to escalate and get us to help them out. And so my VP of Engineering and me, we took it. Great. Got VP of engineering and CTO. Right on.
And so Kevin and I, we stayed home, stayed sober [laugh], you know—a lot of places to party in Austin; we fought that temptation—and so we stayed and I’m texting with Kevin, back and forth. “Did you get a call?” “No, I didn’t get a call.” It was Friday night. Saturday rolls around. Sunday. “Did you get a—what’s going on?” [laugh].
Monday, we’re like, “Hey. Everything, okay? Did you push to the next weekend?” They’re like, “Oh, no. We did. It went great. We forgot to tell you.” [laugh]. But here’s what happened. The DBAs push the Liquibase ‘make it go’ button, and then they said, “Uh-Oh.” And we’re like, “What do you mean, uh-oh?” They said, “Well, something went wrong.” “Well, what went wrong?” “Well, it was too fast.” [laugh]. Something—no way. And so they went through the whole thing—
Corey: That was my downtime when I supposed to be compiling.
Robert: Yeah. So, they went through the whole thing to verify every single change set. Okay, so that was weekend one. And then they go to weekend two, they do it the same thing. All right, all right. Building trust.
By week four, they called a meeting with the release team. And they said, “Hey, process change. We’re no longer going to be on these calls. You are going to push the Liquibase button. Now, if you want to integrate it with your CI/CD, go right ahead, but that’s not my problem.” Dev—or, the release team is tier one; dev is tier two; we—DBAs—are tier three support, but we’ll call you because we’ll know something went wrong. And to this day, it’s all automated.
And so you have to earn trust to get people to give that up. Once they have trust and you really—it’s based on empathy. You have to understand how terrible [laugh] they are sometimes treated, and to actively take care of them, realize the problems they’re struggling with, and when you earn that trust, then and only then will they allow automation. But it’s hard, but it’s something you got to do.
Corey: You mentioned something a minute ago that I want to focus on a little bit more closely, specifically that you’re in Austin. Seems like that’s a popular choice lately. You’ve got companies that are relocating their headquarters there, presumably for tax purposes. Oracle’s there, Tesla’s there. Great. I mean, from my perspective, terrific because it gets a number of notably annoying CEOs out of my backyard. But what’s going on? Why is Austin on this meteoric rise and how’d it get there?
Robert: Well, a lot of folks—overnight success, 40 years in the making, I guess. But what a lot of people don’t realize is that, one, we had a pretty vibrant tech hub prior to all this. It all started with MCC, Microcomputer Consortium, which in the ’80s, we were afraid of the Japanese taking over and so we decided to get a bunch of companies together, and Admiral Bobby Inman who was director planted it in Austin. And that’s where it started. You certainly have other folks that have a huge impact, obviously, Michael Dell, Austin Ventures, a whole host of folks that have really leaned in on tech in Austin, but it actually started before that.
So, there was a time where Willie Nelson was in Nashville and was just fed up with RCA Records. They would not release his albums because he wanted to change his sound. And so he had some nice friends at Atlantic Records that said, “Willie, we got this. Go to New York, use our studio, cut an album, we’ll fix it up.” And so he cut an album called Shotgun Willie, famous for having “Whiskey River” which is what he uses to open and close every show.
But that album sucked as far as sales. It’s a good album, I like it. But it didn’t sell except for one place in America: in Austin, Texas. It sold more copies in Austin than anywhere else. And so Willie was like, “I need to go check this out.”
And so he shows up in Austin and sees a bunch of rednecks and hippies hanging out together, really geeking out on music. It was a great vibe. And then he calls, you know, Kris, and Waylon, and Merle, and say, “Come on down.” And so what happened here was a bunch of people really wanted to geek out on this new type of country music, outlaw country. And it started a pattern where people just geek out on stuff they really like.
So, same thing with Austin film. You got Robert Rodriguez, you got Richard Linklater, and Slackers, his first movie, that’s why I moved to Austin. And I got a job at Les Amis—a coffee shop that’s closed—because it had three scenes in that. There was a whole scene of people that just really wanted to make different types of films. And we see that with software, we see that with film, we see it with fashion.
And it just seems that Austin is the place where if you’re really into something, you’re going to find somebody here that really wants to get into it with you, whether it’s board gaming, D&D, noise punk, whatever. And that’s really comforting. I think it’s the community that’s just welcoming. And I just hope that we can continue that creativity, that sense of community, and that we don’t have large corporations that are coming in and just taking from the system. I hope they inject more.
I think Oracle’s done a really good job; their new headquarters is gorgeous, they’ve done some really good things with the city, doing a land swap, I think it was forty acres for nine acres. They coughed up forty for nine. And it was nine acres the city wasn’t even using. Great. So, I think they’re being good citizens. I think Tesla’s been pretty cool with building that factory where it is. I hope more come. I hope they catch what is ever in the water and the breakfast tacos in Austin.
Corey: [laugh]. I certainly look forward to this pandemic ending; I can come over and find out for myself. I’m looking forward to it. I always enjoyed my time there, I just wish I got to spend more of it.
Robert: How many folks from Duckbill Group are in Austin now?
Corey: One at the moment. Tim Banks. And the challenge, of course, is that if you look across the board, there really aren’t that many places that have more than one employee. For example, our operations person, Megan, is here in San Francisco and so is Jesse DeRose, our manager of cloud economics. But my business partner is in Portland; we have people scattered all over the country.
It’s kind of fun having a fully-distributed company. We started this way, back when that was easy. And because all right, travel is easy; we’ll just go and visit whenever we need to. But there’s no central office, which I think is sort of the dangerous part of full remote because then you have this idea of second-class citizens hanging out in one part of the country and then they go out to lunch together and that’s where the real decisions get made. And then you get caught up to speed. It definitely fosters a writing culture.
Robert: Yeah. When we went to remote work, our lease was up. We just didn’t renew. And now we have expanded hiring outside of Austin, we have folks in the Ukraine, Poland, Brazil, more and more coming. We even have folks that are moving out of Austin to places like Minnesota and Virginia, moving back home where their family is located.
And that is wonderful. But we are getting together as a company in January. We’re also going to, instead of having an office, we’re calling it a ‘Liquibase Lounge.’ So, there’s a number of retail places that didn’t survive, and so we’re going to take one of those spots and just make a little hangout place so that people can come in. And we also want to open it up for the community as well.
But it’s very important—and we learned this from our friends at GitLab and their culture. We really studied how they do it, how they’ve been successful, and it is an awareness of those lunch meetings where the decisions are made. And it is saying, “Nope, this is great we’ve had this conversation. We need to have this conversation again. Let’s bring other people in.” And that’s how we’re doing at Liquibase, and so far it seems to work.
Corey: I’m looking forward to seeing what happens, once this whole pandemic ends, and how things continue to thrive. We’re long past due for a startup center that isn’t San Francisco. The whole thing is based on the idea of disruption. “Oh, we’re disruptive.” “Yes, we’re so disruptive, we’ve taken a job that can be done from literally anywhere with internet access and created a land crunch in eight square miles, located in an earthquake zone.” Genius, simply genius.
Robert: It’s a shame that we had to have such a tragedy to happen to fix that.
Corey: Isn’t that the truth?
Robert: It really is. But the toothpaste is out of the tube. You ain’t putting that back in. But my bet on the next Tech Hub: Kansas City. That town is cool, it has one hundred percent Google Fiber all throughout, great university. Kauffman Fellows, I believe, is based there, so VC folks are trained there. I believe so; I hope I’m not wrong with that. I know Kauffman Foundation is there. But look, there’s something happening in that town. And so if you’re a buy low, sell high kind of person, come check us out in Austin. I’m not trying to dissuade anybody from moving to Austin; I’m not one of those people. But if the housing prices [laugh] you don’t like them, check out Kansas City, and get that two-gig fiber for peanuts. Well, $75 worth of peanuts.
Corey: Robert, I want to thank you for taking the time to speak with me so extensively about Liquibase, about how awesome RedMonk is, about Austin and so many other topics. If people want to learn more, where can they find you?
Robert: Well, I think the best place to find us right now is in AWS Marketplace. So—
Corey: Now, hand on a second. When you say the best place for anything being the AWS Marketplace, I’m naturally a little suspicious. Tell me more.
Robert: [laugh]. Well, best is, you know, it’s—[laugh].
Corey: It is a place that is there and people can find you through it. All right, then.
Robert: I have a list. I have a list. But the first one I’m going to mention is AWS Marketplace. And so that’s a really easy way, especially if you’re taking advantage of the EDP, Enterprise Discount Program. That’s helpful. Burn down those dollars, get a discount, et cetera, et cetera. Now, of course, you can go to liquibase.com, download a trial. Or you can find us on Github, github.com/liquibase. Of course, talking smack to us on Twitter is always appreciated.
Corey: And we will, of course, include links to that in the [show notes 00:46:37]. Robert Reeves, CTO and co-founder of Liquibase. I’m Cloud Economist Corey Quinn, and this is Screaming in the Cloud. If you’ve enjoyed this podcast, please leave a five-star review on your podcast platform of choice along with an angry comment complaining about how Liquibase doesn’t support your database engine of choice, which will quickly be rendered obsolete by the open-source community.
Corey: If your AWS bill keeps rising and your blood pressure is doing the same, then you need The Duckbill Group. We help companies fix their AWS bill by making it smaller and less horrifying. The Duckbill Group works for you, not AWS. We tailor recommendations to your business and we get to the point. Visit duckbillgroup.com to get started.
Announcer: This has been a HumblePod production. Stay humble.