Why the Serverless and re:Invent 2017 stories matter to you
I’ve never really been a big vendor conference kind of person. I’ve never been at a company (until now) that’s thought it important enough to send me to these conferences either.
But now that I’m one of two Senior Developer Advocates for Serverless at AWS (I recently started), it’s part of my job to go to re:Invent and build the community, speak to people and help the community to understand Serverless better.
And I love it.
In fact, some people have said (jokingly) they thought I’ve been working for AWS for a lot longer!
Don’t get me wrong, I’m exhausted, jetlagged and trying to remember half the stuff that happened this week.
So, given that I’ve already forgotten some of it, I thought I’d give my opinion on the big highlights for Serverless that came out of re:Invent before I completely forget.
Because re:Invent 2017 has been a great one for Serverless.
There have been loads of Serverless announcements, like Serverless Application Repository and the coming Go support in Lambda (which is awesome btw). This blog isn’t about putting the same info out there that has already been done by AWS. You can simply look at the AWS blogs for dates around re:Invent to see what’s been released.
But there were real highlights for me and they may be a little different in focus to what you may have seen, simply because of my startup CTO background.
Canary and Blue/Green tooling
Simply put: Lambda is the future of compute.
Everyone will (eventually) be putting almost all of their business logic through an on-demand compute model because the more your code reflects your business logic, the less wasted compute and wasted time building and maintaining that compute you have.
And the ambition can be fulfilled to a great extent in Lambda.
With the release of canarying tools in Lambda and API Gateway canarying tools it has become a lot easier to deploy new features without the “on/off” nature of the switching between Lambdas and APIs we’ve had up until now.
Basically, the services (in different but similar ways) allow for traffic shifting from old to new. And that for many companies is really key.
When I was a CTO, one of the hardest things to manage was deployments of new features and bug fixes into our production environments. It was managed by doing things like not releasing just before you finish work (e.g. Friday!) and other process based things like that.
But in a world of “Continuous” deployment and integration the idea of blocking by default (while still useful) is not always helpful. Sometimes you have to deploy at the wrong time, and businesses have to be able to make decisions at the day/hour/minute level.
And that’s where the canarying tools are absolutely vital. As far as a business decision around whether or not to consider Lambda, this I think is the biggest positive to come out of re:Invent for the Serverless community.
We are now in a world where a key business decision could be made, and the tech to support it produced in hours. Canarying allows for new features to be released more quickly and allows decision makers to increase both their feature velocity and their ability to try new things.
I cannot wait to see companies starting to canary deploy and test new features at scale and speed.
Cloud9 IDE, AWS and Lambda Integration
This might seem a little less obvious than the big announcements but I think this one is absolutely brilliant.
I’ve been using Cloud9 for a while now, simply as a useful way to not have to worry about installing an IDE. I have a Chromebook at home and I experimented with using it as my development machine for a few weeks to try to work out if it was possible.
And it was.
But I’m not really talking about how good Cloud9 is, and how fast it’s developing, even thought it’s a great tool in the arsenal.
I’m also not talking about how you can enable it to use vim shortcuts (wheee!)
The thing that’s absolutely blown me away after only a few minutes of playing with it is how you can use it from within AWS, and the integrations with AWS and Lambda.
Previously, when you bundled a Lambda function into a zip file and uploaded it, there was no way of reviewing the code without downloading the zip file and unzipping it.
Now within the AWS console, you can go in and look at the entire zip file contents, and edit those contents with an embedded Cloud9 IDE.
Quick note: this isn’t the best way to build production systems — for that you need to care about automation, CI/CD, infrastructure as code (e.g. SAM/CloudFormation) etc.
For the situation where you are prototyping and wanting to create Proof of Concept solutions, an embedded IDE into Lambda is really really awesome.
But that’s just the Lambda integration.
My absolute favourite tip that someone showed me this week was how the Cloud9 IDE in AWS is beginning to integrate with all the AWS services.
They showed me how using CodeStar you can in just a few clicks, completely setup a project, with CI/CD, CloudFormation and integration with Cloud9.
You can create a production ready project starter and be coding and deploying in seconds.
And that includes multi-Lambda solutions, with integrated API Gateway and all that goes with it.
And not only that, but because it’s integrated with a version control system already, you are completely ready to start developing with your whole team.
It’s awesome! I’m sure I’ll do a blog somewhere on that in more detail, but for now, go and have a play.
Lambda and Serverless is becoming *the* ecosystem
One thing that was clear to me, is the sheer number of people wanting to learn about Serverless too. One of my colleagues talks had a near riot (total exaggeration I know) with the number of people trying to get into a room laid out for 50.
And when they put it in a much much bigger venue, it was packed out.
Lambda isn’t just that “new” thing that people struggle to understand anymore. It’s mainstream and it’s evolving and growing rapidly.
Now I know that I have a bias here. It’s my job to be all excited about Lambda and Serverless now. But I reckon you can tell from reading my blogs that I’ve been excited about this for a long time.
But those people who’ve only ever touched EC2 and load balancers and maybe VPCs here and there are now coming to sessions to learn about Lambda, API Gateway, Step Functions, Cognito, DynamoDB and all the other elements of a Serverless ecosystem.
The stories coming out of companies using Serverless solutions are increasingly compelling too from both a cost basis, and a development basis.
And I am really excited to hear the new stories this year. Because the momentum is shifting towards Lambda in a very big way.
We’re just starting to go beyond the “What is Serverless?” question now…
We are starting to see very big companies with very big solutions relying on a technology that was launched only 3 years ago.
Think about that.
It used to be that we were discussing how to go Cloud.
That discussion is now shifting rapidly to how to go Serverless.
Why does this matter to you?
I’m a former CTO and a former Startup CTO as well. I remember having to build prototypes of production systems, launch things before they were ready, backfill CI/CD processes, bug fix systems that were creaking because of how badly they were built by a junior a year ago who has now left… and so on.
Lambda and Serverless changed all that for me. I could immediately take an idea, and turn it into a scalable solution that would outlast the business decision being taken to develop it.
And that’s why this matters.
Because these tools + Serverless allow you to build not just scalable solutions, but solutions that can be…
ready-made for teams and
ready made for CI/CD and
ready made for immediate development and
ready made for changing business decisions and
ready made for future tech developments and
ready made for scale.
No solution is ever perfect. But when you look at the improvements of a Serverless approach over other approaches from a business point of view, it really can make a huge difference to speed of both getting to market fast and development of new features.
And underneath it all, (almost all) tech is about making a business work.
So why wouldn’t you want your business to work faster and be more adaptable than the competition?
Because that’s what I see as the value of Serverless.
And that’s why the Serverless stories from re:Invent should matter to you.
I currently work for AWS as a Senior Developer Advocate for Serverless based in the UK and working in EMEA.
Opinions expressed in this blog are mine and may or may not reflect the opinions of my employer.