Serverless computing has been on the climb these last few years. It offers teams an easier and quicker way to establish their back-end infrastructure. Evaluated as a $1.6B market in 2016, it is now expected to be a $7.7B market by the end of this year.
What should you consider when experimenting with the switch to serverless? What advantages and disadvantages does going serverless have over traditional options?
John Petitte, Principal and Co-Founder at Amplifi Labs, a software development and staff augmentation agency, shares his experience and advice regarding the move to serverless. He discusses its advantages for a startup but also outlines the hurdles it presents. Petitte also goes into his own company’s journey, switching over to serverless, and emphasizes how important it is to understand the serverless product.
In this interview, we cover:
- Why and when serverless computing can be the right choice for startups
- The downsides of going serverless in terms of infrastructure and pricing
- The growth and current state of the serverless market
- Key things to consider when switching to serverless
The conversation below has been edited for length and content.
Why would you recommend that early-stage startups choose serverless?
Going serverless accelerates your ability to create the high value portions of your application. For startups, that’s usually a good investment, because it allows you to build your core product faster. Going serverless will improve your build, measure, and learn cycle and the time it takes to test your product market fit. Since you don’t know if the product will take off in your market, speed to market is critical.
Also, most of the serverless options have free tiers, so it’s a great opportunity for a startup to save money at the beginning. There will be a time during scaling where you’ll have to consider staying with serverless versus setting up your own infrastructure, but that’s a problem for another day in the startup world.
Tell me about a time that going serverless really helped out.
With the number of serverless options being offered, you can go serverless in just about any aspect of your application. For example, we had a project where we were looking at doing some machine learning for one of our customers. We built some proofs of concept and realized that refining them was going to take more time than we wanted and more time than we thought our customer should be spending. So, we went out and found some serverless options to accelerate us through that hump. It made a huge difference.
I’m talking about potentially a month to a year’s work getting cut down: we did our proof of concept in two hours.
What would you say then are some downsides to serverless? When would it not be the best choice?
Five years or so ago, using serverless products had fairly high restrictions. For example, back then, no one had an option for a serverless WebSocket. So if you had an application where you needed WebSockets, you weren’t able to go fully serverless. You had no choice.
That’s changed now because there’s been innovation in that space. But even though those restrictions have been reduced, there are still going to be instances where the serverless product you want isn’t going to meet some of the special needs of your application.
As long as you play within their serverless product guidelines, what they’ve been specifically designed to do, you’re going to be okay. If you walk outside of those, that’s when it could become more expensive than building your own solution from scratch. You need to make sure that you understand those limitations to reduce the probability of walking outside of those guidelines. Otherwise, you might spend a lot more time and money than you would have by just rolling your own solution.
The other downside of going serverless is the pricing. Frequently, SaaS products start at a very inexpensive rate because they want startups and developers to use their systems early on. But then as your usage scales, pricing is not necessarily linear.
There’s going to be a hump where it gets very expensive, very fast. Before you start to hit economies of scale, that hump can hurt. If you’re not financially prepared for the price jump, there can be a serious downside.
Do you have any tips for startups that are new to serverless?
I would say first design what your application should do. Figure that out from a user standpoint. Then, consider how to break the application into microservices. Assess those and ask, can this be done with a serverless product? Then, look at the serverless market to see your options. You’re going to have to spend time doing their tutorials and reading their documentation to understand which one has the highest probability of meeting your needs down the road.
You mentioned how the serverless world has matured in the last five years. Could you speak about the market and talk about its leaders?
We haven’t reached the phase of disillusionment, where everybody has tried it, gotten hurt, and realized the limitations. We’re still in the upswing of the hype curve where capability continues to be added. Because of that, the leaders aren’t defined yet. From a market standpoint, you can say there are main players, but more join every month.
I wouldn’t say you should go with the ones that have the largest market share by dollar amount. You have to assess them and figure out who’s going to fit your needs the best at the moment. AWS has a huge share of serverless functions, but they’re not necessarily the ones that I would recommend for everything.
To sum it up in one sentence: serverless computing is still heading towards the peak of inflated expectations in the hype cycle and in the process of reaching full potential and establishing its core players.
Can you walk us through your company’s journey when it came to choosing serverless? What did it take to delve into that realm?
I was really excited about serverless back in 2016, but it became clear that it was good at very specific tasks, not a complete solution. Since then, we’ve been watching it and using it in small pieces. Our journey has been incremental. We were conscious of the fact that we may have jumped on a particular solution too early, and we were prepared to find an alternate solution if necessary. Some of that risk is still there, but now it’s hit a point where it’s possible to build entire applications.
Was there anything else you wanted to share related to serverless for startups?
The key thing I would reiterate is that you have to understand the tool before you use it or you’re going to hit serious problems – even if you’re using some of the best ones out there. We’ve got a partner who was using Hasura for GraphQL. He loves Hasura and actually got us interested in it. He told me recently that they might need to switch to a different solution because they’re moving outside of Hasura’s safety ropes. He explained that it was starting to cause them more pain and time to try and adapt Hasura than it would be using another solution. They are most likely going to have to rewrite that whole service. So, it’s very real that you can make a mistake if you don’t fully understand how your needs match the tool you’re using.