Infrastructure for Non Devs: What CEOs Really Need to Know in 2017

Adam Gross and Russell Smith explain five infrastructure trends CEOs need to understand: cloud-native managed services, microservices, containers, advanced data services, and continuous delivery. Choosing managed services frees your team to focus on product while reducing ops headcount.
Chapters
Today we have co founder and Chief Technology Officer of Rainforest qa, Russell Smith, and CEO of Heroku, Adam Gross.
Alrighty. Good morning, everybody. Thank you for taking time for our very quick and modest presentation here. I'll give you a couple seconds on how this presentation came to pass and then you guys can tell me whether.
Or not it'll work.
So I was talking to Jason a couple months ago and we're talking about the show and we're talking about, you know, how much great sales and marketing content there is for SaaS leaders and what an amazing resource that is. And I was telling him, you know, I really think that the most determinative thing about the kind of nature of a SaaS company, given how you're going.
To sell, what the product's going to do, the nature of your customers, how.
You'Re going to support it, really kind of the core physics, the terroir of your company is a function of the infrastructure upon which your product is built. And so my goal here is to help kind of raise the consciousness and literacy of all of the major trends in infrastructure that are happening, infrastructure and app dev, so that we can help kind of bridge that divide between things that engineers and architects think about and things that the business side of the house think about ultimately, so that we can have kind of a more productive and fluid and collaborative conversation between those two halves. Because I think that's when really great companies and products occur. That into itself is modestly a two to three hour presentation and we're gonna try and do that in about 20 minutes. So if I go really, really, really fast, hopefully you'll glean a couple details from which you can kind of take that away.
I am not gonna spend a lot.
Of time talking about me other than.
I run Heroku, which is part of Salesforce's app Cloud. We have lots of really great customers across e commerce SaaS, companies like Get Feedback and Yesware. I've also launched and been part of.
The creation of a lot of different.
Platforms, including the original Salesforce API app.
Exchange, all that kind of good stuff.
Launched the Dropbox platform, started a company called Cloud Connect. Now I'm at Heroku. So why should you care about infrastructure? And if I leave with kind of.
One message today, it's that your infrastructure.
Choice, your platform choice is your destiny.
It is the single most determinative decision that your organization will make and will.
Have profound implications that will ripple across the rest of your go to market strategy, your organization, all that kind of the good stuff.
So I want to spend Real quick, five trends that you can kind of at least identify the titles of.
And so really the goal, when you see the developers and architects in your organization across the counter at lunch, you'll be able to have a modestly more interesting conversation with them.
Okay, platform is destiny.
I think we all know this intuitively, but it's important to remind ourselves of that.
Right.
What were some of the major decisions.
That companies made that was the single.
Most important decision that they made? Whether or not to build for DOS or Windows 3.1. Whether or not to build for client server or for web. Whether or not to build for BlackBerry or iOS. Whether or not to embrace a cloud strategy platform as a service. So we're all familiar with the really big choices that kind of define the platform landscape. And part of what I'm going to.
Talk about today in my remaining three.
Minutes is that there are lots of small ones too that are important to kind of have an aesthetic force, because these are ultimately really business decisions more than they're technology decisions. As an example, I started a company in 96 and back then that was.
Kind of right at the beginning of.
The app server era. Whether or not you embraced kind of a Java app server architecture or did something a little more baroque and esoteric, all that meant was were you going to spend the next five years moving to a Java app server model? Right. That was an essential decision to make. Or we've seen more recently kind of the emergence of these API first SaaS companies. Right. So both at the kind of macro and at the micro level, these platform choices are really, really important. Okay, you ready? We're going to do five. We're going to do it real quick. Okay. Number one, one of the more interesting things that's happening in kind of platform right now, and I would argue that we're kind of in this Cambrian explosion of platformness and of app dev technology. So you should not be thinking about what's happening in kind of the platform and app dev space as kind of relatively static or constant. You should be thinking about it as this period of kind of massive explosion of diversity and innovation that's happening. And one of the things that's driving that is up until, say about a year ago, there was still some pockets of the industry or kind of some part of shared consciousness. The idea that a platform was something that you could either purchase to run inside of a data center or that you could purchase from the cloud. That era is over, full stop. Microsoft doesn't really care. Right? I mean, they're the lagger on this. And insofar as they're not really pushing Windows, the idea that that's an operating system or app dev target that you care about isn't important. Clearly all that matters is Azure and of course, things like aws, obviously things like Heroku, things like GCE on Google. What this means is that the nature of how we kind of consume platform services and what they offer are fundamentally changing. Because at the core, what's happening is that the complexity and diversity of platform services is increasing, as is the requirements that you need to be able to operate quickly. And the idea that you can as an organization, embrace that complexity, embrace the operational experience and its skills necessary to be effective across that set of platform technologies is, is in a way that you are responsible for running those platform services, has now reached this kind of point of critical departure where it is not credible for an organization unless you're truly one of the top three technology organizations in the world to do that. Net. If your organization is thinking about building and running its own data centers, good luck, because that's no longer a thing. Okay? What that means is what your developers are going to consume are higher and higher forms of abstraction. A great example is probably most of the companies. I don't know what the average age of the company represented here, but it's still not uncommon, or it's still common for companies to run their own database services, to run their own instances of MySQL or Postgres or if you're a little more esoteric, Cassandra or Mongo, whatever that is. That's kind of a line on that gap. If you as a company are still running your own database service, you are so far down on the undifferentiated kind of, you know, not great part of your focus set, as opposed to just consuming those data services as higher level of abstractions where you don't have to run any of the operational constraints. And, you know, we've all been there. This is not a critique, but it's just an example of how hard running these services. If you remember what happened with GitLab in this past week, having a service that you know is gonna have all the kinds of backups, reliability, availability, scalability, guarantees, just puts you so much further ahead than actually spending the time and operating themselves. Okay, so that's number one, cloud native, number two is what we, we hear.
This term a lot.
I'm gonna spend a minute trying to decode exactly what that means and why it's relevant in microservices.
The part of this that you should.
Care about is if your company is more than three years old, your engineers are currently on a journey to take the application stack that you created, which.
Was a classic web application stack.
Right? This is what Salesforce looks like under.
The hood in 1999.
This is kind of what most SaaS apps looked like, which is a database and an app server equals a web app, right? That's the stack. And move that decompose that application into a set of more heterogeneous and horizontal services. So that kind of the model we're.
Looking to go for is a kind.
Of vertically integrated app dev stack model to instead a set of services that kind of operate more heterogeneously as well as kind of horizontally. Why is this important?
Why do you care?
Why is this an important business consideration?
Because what that. Because we have cloud nativeness, what we can now do is embrace more heterogeneity.
Into our architecture much more easily, which in turn means we can deliver much.
More sophisticated and new kinds of functionality.
And business value than would be able to otherwise express inside of that more traditional monolithic stack. So there's a direct connection between what's happening here and the ultimate surface area and capabilities of the product that you're creating. Nine minutes.
How am I doing?
Good. Okay.
So one kind of way of.
Thinking about this is, well, we'll get to that.
So three, and this is probably the.
Part that is the most present in the kind of public battles in the platform universe, which is containers. And maybe you've heard about this if you've heard about Docker. Right. All of these trends flow together. Cloud nativeness, microservices, Docker. Why is Docker so important? Why are containers so important? And there are a couple different flavors of containers. So it's not just necessarily Docker per.
Se, but fundamentally what was the strategic.
High ground in the entire platform and infrastructure space since the beginning of time. It was the operating system.
Then we kind of shifted that slightly.
In the past 10 years to be the virtual machine, where instead of thinking about the contents of a server literally being kind of physically bound to it.
I could have some measure of agility in being able to move those things.
Around, which create a little more agility in terms of my development process speed, pipeline flow.
What's happening now?
Containers represent the next level higher up of abstraction, where instead of thinking about virtualizing an entire operating system, I instead am able to kind of think about a measure of compute resource in a much more constrained way, such that my deployment target becomes much simpler to think about and As a result, the kind.
Of agility I can get in both.
Embracing heterogeneity as well as embracing scale increases orders of magnitude because again think about the difference in bare metal versus virtual machine and the agility from that. Now think about an entire new step function up from there. And this is where as a result I can do things like, you know.
Dynamically reprovision the load necessary to run.
A service automatically and instantaneously. Containers are kind of like the self driving car of infrastructure. If VMs were the kind of cruise control.
What's happening now under the hood is or kind of in the industry is there's this really kind of fierce battle.
Happening around the container ecosystem and this.
Will something be something that really kind.
Of drives the core dynamic of the infrastructure and platform business for the next couple of years.
This is really kind of the, if you remember 10 years ago, 15 years.
Ago, for those of you in the space kind of the app server battles were kind of the kind of main.
Strategic kind of contested area. Container runtimes and some of the ecosystem.
Related to that is really what's up.
For grabs right now.
There's Kubernetes from Google, there's Docker, and.
Then there are companies like mine that.
Provide those things as a service. Because of course our pitch is going to be you shouldn't have to worry.
About any of those things, you should just be consuming those capabilities as a service. Of course Amazon has services in there as well. The point is that this is going.
To be really important, really complex to negotiate and you should think about consuming.
Even these capabilities as a service as opposed to building it yourself.
Because we all know that engineers core MO is to just build everything themselves unless otherwise guided to. Okay, I'm going really fast.
How am I doing?
I need to hurry up. Okay, short question.
Okay, Cloud, native. Microservices, containers, number four, data services and the data stack. The way that all of you, especially if you've been around the industry for a while, think about your data tier is I have a relational database and I have a app server and what I can express in my application is a function of what I can encode in my relational database. The single biggest economic business opportunity in Sastem right now is related to the changes that are happening in the data platform or data services space.
And if I were starting a company.
Now, I would start a company by looking at the capabilities here and how I can apply it to a new business problem. Because fundamentally what's happening is the set of esoteric data processing and big data and machine learning technologies that emanated from organizations like Facebook and Google. If they kind of like if Facebook and Google could do it in the late 2000s, right? And then a well funded startup could do it in the early 2010s. By the end of the year, your.
Developers are going to be able to.
Stand up a stack that does this in 10 minutes because you're just going to consume all these things as a service and we're going to see a rapid and dramatic commoditization in the nature of these kind of data processing technologies which have. It's a very complex ecosystem, but it'll get kind of sorted out and smoothed over in the coming years or even by the end of the year. And the ability now for you to be able to do things like machine learning on random data sets on real time, very large scale invent ingestion by being able to process and do real time analytics on 20 billion events per day, all that stuff that's super, super hardcore, you know, rocket science right now will be something a developer in your team can get standing up within a.
Week by the end of the year. So could spend hours on this.
But pay attention. Think about how you're using data, how the processing, how the real time nature of it. Think beyond the relational database. If in fact that's kind of my one message for you today, that would be it. Because ultimately that's going to have such a huge effect on the capabilities that.
Your application can express.
Okay, great, I left you three minutes.
I think a quick summary of the stuff before. One of the key things to take away from this is that by using all these services like Heroku or any of the data platforms as a service, you're Basically a it's SaaS, which you should all love, but B you're buying your team focus. Your developers can spend all their time working on your actual product, not working out how to run it. So at Rainforest, we run almost exclusively on Heroku. We use some other stuff as well, but that means we don't have very many ops people. This has brought us tons of focus. It saved us two, three, four ops people. We don't have a team, all those engineers are shipping product. And this is the most cool thing for me as a founder is we can buy focus with money instead of hiring people. So anyway, the other key thing to understand about this is if you don't stitch all this together with something like CI and cd, then it's not as worthwhile. So continuous delivery is another super important trend. Ten years ago wasn't really a thing. Five years ago, it's kind of super edgy and now it's becoming much more common. For those of you that don't know what it is at a super high level, it's as soon as your developers do some changes, they push it somewhere and something runs the tests and checks, everything integrates correctly. That's CI CD is the process of when those tests pass, pushing it through a release pipeline so that eventually ends up with your customers and without having any touch from your developers. That's basically the perfect way. So automating all these things you see in this circle means you can go to the next slide, means you can reduce the next. Can you go to the next one?
Oh, sorry.
Means you can reduce the risk. So this is the other important thing is the, the amount of time it takes from your customer asking for something to your customer getting that goes through this whole process of going to product or your CSM team and then filtering through product again, prioritized, being done and shipped. And the faster you can make that cycle, the better. And continuous delivery is a super important part of that. There's other things in your business that you can do, but shortening that and by using the previous style stuff we've mentioned, all this technology enables you to do that so you can be a much more reactive, much more agile business. So this is probably one of the most important trends is if you're using this infrastructure, make sure you're using it with continuous delivery as well, because otherwise it's just you lose half the advantages of using this.
So just to kind of quickly summarize in our brief remaining minutes, why is this all so important? Why should you care? Why should you spend the time to kind of understand what the broad macro trends that are happening at platform in App Dev. And we're all here because of what happened in the shift from client server to cloud. We all know the implications for how we have to structure our sales, our customer success, our accounting, our finance, our funding. All of that is fundamentally a function of a change in our application creation and delivery model. And to think that somehow that was in one moment in time and that the fires of innovation have stopped. Of course they haven't. So my main message to you is develop enough of an aesthetic the key partnerships you need with the technologists in your organization in order to be an active participant in making these decisions, because they are the most determinative decisions in fundamentally kind of the terroir that you are ultimately going to operate. And that means being disciplined about consuming cloud services, even though an engineering organization might otherwise want to build it themselves. It means embracing a heterogeneous and complex architecture and giving your engineers the time to build that so you can create and express much more business value than would otherwise be possible. Leveraging technologies carefully like containers to allow you to manage that complexity and heterogeneity as the our application architectures increase in sophistication, leveraging all the unbelievable changes that are happening in data services to fundamentally be able to create new kinds of value and taking advantage of continuous delivery. So the goal is that you're not shipping three times a year because that is not okay anymore that you are shipping three times a day.
You also don't have to like if your engine team tell you that that's all they can do, you've got some problems. So I think just to add the key one for me is a remembering outsourcing stuff. Buying SaaS, you're buying your team focus. It costs more, but you don't have to have humans doing it. And then the other one is if you're not doing this today, then give your team time to investigate it and give your team time to learn this technology or hire the right people to help them.
It's never been a more interesting time in the platform and infrastructure and developer services space. I encourage you to go out and create amazing things with the technology we have. I hope these 20 minutes have been useful. Thanks.
Thanks.










