This post is the second in a multipart series exploring the basics of serverless. Check back each Monday for additional installments.
Serverless technologies are gaining traction in both enterprise and startup environments, at a pace much faster than seen with containers, which was the last widespread industry adoption rollout.
No matter what metric is used to analyze it, serverless is definitely gaining interest:
- Attendance and speaker diversity continues to grow and widen at both Serverlessconf and ServerlessDays events
- 19 percent of backend developers are using serverless platforms, up from 16 percent six months earlier, and is now reaching parity with virtual machine usage, at least according to the latest quarterly survey from Developer Economics.
- Cloudability’s State of the Cloud 2018 report, analyzing the IT spend of 1,500 organizations in 2017 shows a serverless quarter-over-quarter growth rate of 667 percent.
- TweetReach estimates 100 tweets an hour are hashtagged serverless:
- Google searches for the term serverless have risen fairly steadily for the past 12 months
While some startups might go all-in on serverless, the majority of adoption is done in enterprises with a specific project use case, to test the infrastructure approach and the team’s cultural fit for implementing it.
But as serverless technologies are being tested on discrete projects, they are starting a domino effect that is influencing business in unexpected ways. Serverless speeds up production time, introduces cost-for-usage models and encourages team members to be more autonomous. Those impacts influence the way a business works. This includes choosing what to run in serverless, a business’ willingness to create new product and feature experiments, how budgets are managed and how developers and product managers carry out their responsibilities.
Serverless and Microservices
Some of the speed benefits of serverless are first enabled by a microservices architecture. Microservices break down a monolithic code base into small, autonomous services and, because of this, enable businesses to build solutions “with speed and safety at scale,” according to the O’Reilly book Microservices Architecture.
In a blog post at the start of the year, Mike Anderson of machine learning platform Algorithmia showed how a typical tech enterprise’s standard release cycle would move from 65 days to 16 because of microservices. “Microservices allowed them to decouple blocking portions of the development workflow, clarify and isolate concerns, and focus on component-level changes,” wrote Anderson in January.
Once an enterprise’s code base is available as microservices instead of as a monolith, serverless becomes an option. Now, an enterprise can identify specific, predominantly stateless tasks that might be suited to being trialed in a serverless architecture. A cloud platform handles the operational tasks of allocating compute resources to solve the problem, spinning up servers to do the calculations, and then shutting them down again once the data is transformed.
Rich Sharples, a senior director of product management at Red Hat, says the company has had serverless on the radar for the past two or three years and is working on an open source, enterprise-ready serverless offering that will work with Kubernetes. Sharples said that Red Hat expects a full product to be available this year.
“What we are seeing with customers is that tech is coming up the hype curve pretty quickly,” said Sharples. “Microservices was a pretty quick climb, and serverless is in steeper than that.”
Sharples said the main interest stems from an enterprise love of microservices, where incremental delivery, agility and faster delivery are being embraced. “But we see adopters struggle with the operational complexity of managing and monitoring distributed systems, and that is where serverless has gotten their attention. You get the microservices benefits, but from a developer perspective it is very easy — it is just about the code. And on the ops side, serverless is a very good model for those building automated ops systems. To respond to a log event, doing that as a serverless invocation is pretty convenient.” Sharples says that in his weekly and daily chats with enterprise customers, serverless is piquing their interest.
“Anything that is short-running, stateless, anything that can be run as an isolated task is a great fit for serverless,” Sharples said.
Aaron Miller, senior solutions engineer at open source API Gateway Kong, said that the majority of customers who start designing serverless architectures come from either a grassroots up or top-down approach. Grassroots adopters have already transformed their legacy architecture into microservices and are now looking around and see that they are using Kong in multiple ways across the enterprise. They tend to move to an enterprise plan of the open source tech, and are keen to move onto new frontiers by identifying serverless job opportunities.
The top-down adopters are those where the chief technology officers of their enterprise have been charged with a “digital transformation” agenda and are looking to Kong for help with microservices and newer architectures. They are hoping that they can not only play catch up with microservices but gain some lead by starting to trial serverless at the same time.
Miller said at Kong, there are standout examples of serverless projects that are drawing interest from those chief technology officers who want to move faster. Expedia’s serverless projects use the Kong technologies. “Expedia is a very advanced user of serverless. [The company uses] Kong for all the common API gateway use cases, and we have an AWS Lambda plugin so they have an easy way to connect. Every time someone buys a hotel or books a flight, Expedia offers the customer a discount for their next purchase. Serverless is a perfect technology for powering that use case.”
Miller argued that while cost reduction is definitely a benefit of serverless, it is much more about the velocity of development. “If teams are just writing code, they are only worried about the quality of the functions, they don’t have to worry about running on Linux version this or that. Those problems become someone else’s problems, team members can focus on writing code in Node, or Python, or any serverless language today, so everyone benefits. It lets people be narrow but deliver broad functionality,” said Miller.
What to Run as Serverless
Many enterprises and startups looking to test the potential for serverless need to find an initial use case. The New Stack has regularly documented a number of the low-hanging fruit use cases for serverless:
- Image resizing (and any task that might need to clean or alter a media file)
- ETL tasks that may need to clean unstructured data or organize it into some standard format
- Cron-type jobs.
Steve Faulkner helped create the serverless infrastructure at media company Bustle, which now runs 100 percent of its operations on serverless architecture, with a single part-time Ops team member. He has a simple rule of thumb for identifying where any business could start their serverless journey:
“Where are there deficiencies in your CI/CD pipeline?” He asked. “A really simple test for whether your CI/CD pipeline is any good is: Can a non-technical person make a change to text or copy on your website or in your documentation, and how fast can that change be deployed to production? Most organizations can’t even do that.”
Faulkner says he has seen businesses where a CEO could spot a typo in the website, make a change in Git, and have that correction go live in production within an hour. “That’s a high bar, but it is a good test for seeing where your CI/CD deficiencies are and is a ripe case for using serverless to solve.”
Kong’s Miller suggests a way of deciding where to trial serverless is to look for processing tasks where the amount of resources required is unpredictable. “Anywhere where you are unsure of the capacity of the compute in the equation: am I going to need one server or 100? If there is no way of predicting that, it is a good candidate for a serverless approach,” said Miller. “The other one is where you have high, spikey demand, and you have serious concerns about budget and have to justify costs closely.”
Like in the Expedia use case, he also suggests tech leads speak with product managers and sales and marketing teams to look over current thoughts about how the business wants to increase customer stickiness, and see if there is a use case that fits.
That is often the starting point for James Beswick, whose Indevelo dev shop creates web and mobile applications, completely on serverless architectures for its enterprise and B2B clients. Originally, Beswick was using serverless for all the standard image resizing type tasks, but at the last Serverlessconf in New York, “I had an epiphany and realized I could put all of our work on serverless,” he said.
Beswick says when starting with new customers they often have to discuss serverless from the very beginning, and he usually uses the costings as his major focal point.
“We have to explain the whole thing,” said Beswick. “First we talk about what the software requirements are, then we talk about the architecture. With the architecture, we start from the financial aspect. We explain why it is cheaper and more available with serverless.”
Beswick says that because serverless “is notoriously difficult to estimate,” he tends to give potential customers a range for estimates. “Web-scale apps are incredibly expensive, however you run them,” said Beswick. I tend to show, if an application is doing 10,000 transactions, what does that look like on a monthly account? If an event was costing $500 a month, what could cause it to suddenly cost $5,000 a month?”
How Serverless Is Changing Business
Starting with costing also inspires businesses to think about the huge impact serverless may have on how they operate in the future.
For example, in the U.S., IT projects may be budgeted based on staffing resources and capital expenditures (capX), rather than on pure cost allocations and operating expenditure (opX). A lot of enterprises see their IT as capX, which garners specific tax discounts. But with cloud environments, and even more so with serverless, where pricing is based on actual usage, it is all opX. That worries some chief financial officers, who fear to lose the tax write-offs on their IT projects. Others are not really set up to discount payroll costs of existing staff when budgeting projects.
“You may have a database employee who is paid $120,000 a year,” explained Beswick. “If you are running AWS Aurora, that might cost, say $500 a month. That is a lot cheaper, but people don’t account for the headcount cost because it is split across multiple things.” Beswick says businesses will have to catch up to new accounting methods that aren’t looking for CapX tax write-offs and that are a pure cost allocation, with HR budgeted in new ways rather than as portions of project costs.
There are other business impacts that serverless is introducing. Some of these impacts were already emerging from cloud and SaaS technologies, but like with serverless application development, the velocity is increasing.
One area that Beswick points to is that his design shop is usually hired by lines of business outside of IT: marketing and sales teams in enterprises, for example. Like with SaaS tools that may be taken up by one department, but then have a data integration and mobile device implication that stretches across lines of business, application development has to find workarounds to limit the participation of the traditional IT department. “When you work with IT departments, there are a whole set of factors in play: their kingdom is disappearing, they are uncomfortable with what happens in case of a catastrophe, there is really a disbelief that it is being run in serverless environments. IT groups are so behind the curve on this,” Beswick warned.
“IT has become paralyzed: They fall into the trap of not changing anything, but most businesses are seeing change happening in their industries, so they turn away from their IT departments and look externally to get things done,” Beswick believes most businesses are in a middle ground where the organizational structure and role of traditional IT departments will disappear, and serverless is speeding up that move towards new organizational structures.
How Serverless Is Changing Processes
“I definitely saw some changes to business processes with serverless,” said Faulkner. “I think serverless is about increasing velocity, not just of software development but also how you can modularize your application. We re-architected Bustle by going serverless. When you have a serverless architecture it is modular and has a bunch of functions, so it is easier to plug into. In the last year, we started setting up business systems that could piggyback on the events architecture and provide new value.”
Beswick agrees. “If you think about the previous world, minimum viable products were not scalable, they were not bulletproof. Most of that work would get discarded if the idea took off and got to the production stage. Now with serverless, we can build high-grade applications very easily from MVP to production, so that changes the question. It becomes much more nimble. When something scales, you used to cross your fingers and pray, but with serverless scaling is much more stable.”
Beswick said with microservices and functions, a lot of the code units required to build an MVP already exist. And with the usage pricing of serverless, businesses can speed up development and face less risk in releasing prototypes to customer cohorts for feedback. If they are successful, they can move to production faster without having to be rebuilt.
Steven Surgnier, co-founder and chief technology officer at insurance tech startup Fabric, said that using a serverless architecture for their business gave the company a business process advantage along the lines that Faulkner and Beswick mention.
“It comes down to execution,” Surgnier said. “As an early stage startup, we want to execute quickly and minimize the complexity of our overall technology. We use serverless to decrease the time from our idea to getting the end product in our customer’s hand.”
Miller and Surgnier also agree that serverless is helping retain key developer talent. Miller said that internal enterprise dev teams are often interested in trialing new technologies, so they find a project, allocate a small team and give them a couple of weeks to build a prototype. “These enterprises are attracting and maintaining better talent by giving them interesting work,” explained Miller. Surgnier said serverless is benefiting both the company and the individual engineers: “Engineers want to build. So by providing them with a serverless infrastructure and an opportunity to focus on product, you are allowing the engineer to build more things in their career.”
How Serverless Is Changing Culture
Steve Faulkner says serverless changes fundamental processes in software development where developer autonomy within an enterprise is fostered.
As the champion of serverless at Bustle, he spent much of his initial time maintaining the first bash scripts and then building a fully fledged framework. “I wanted people to understand how it works, but I am also a big believer that anyone should be able to deploy to production at any time. And preferably with one command,” he said.
That kind of developer autonomy culture is encouraged by serverless. “If anything, everything gets way faster,” Faulkner said. “A fully deployed Lambda change can happen in under 30 seconds. It removes this mental barrier of deploying to production. If you know that is going to be some sort of process, it naturally introduces inertia, like, should I do it now, should I wait for someone else. But if anyone can deploy to any production endpoint at any time, it gives people autonomy and power.”
Faulkner said that at Bustle, this was already part of the culture, whereas larger companies may have a mindset and culture ingrained where developers are encouraged to wait for sign-off. “But I imagine if you are using serverless at a big enterprise, if the culture is already bad, serverless isn’t going to help you.”
Faulkner says one of the other fundamental cultural changes serverless is speeding up is the need for lightweight architectural decision records. “People need to be documenting what they are doing,” he urged. “If you are operating under the goal of anyone can deploy to production at any time, that precipitates that you work with short-lived feature branches. You need a feature flag system so things in production are not fully exposed to the world.” While Faulkner said this is not the norm as yet and is a wider trend for software application at a distributed scale, the agenda and need is pushed by the impacts serverless adoption creates on velocity and ability to released production-grade changes.
“My latest hot take is that feature flags are probably the most useful way to improve your software development process, especially as you grow in size,” Faulkner suggested.
Serverless Generates Industry Excitement
Indevelo’s Beswick believes that there is a fork in the road facing many enterprises, IT leads, and lines of business managers. Cloud has already introduced new frontiers, but serverless moves that forward by a level of magnitude.
“I have never been more excited by technology than I am now,” Beswick said, a sentiment echoed by Faulkner, Surgnier, Miller and Sharples. “You have this confluence of things coming together,” Beswick continued. “Serverless is delivering beyond belief. And add to that machine learning. Then you have the mobile aspect. If you go in with a fresh mindset, rather than that we are dragging the legacy, this is the exciting part of it. We can better ask, what are the customers’ problems, and how can we make it easier for everybody to solve them.”
Red Hat is a sponsor of The New Stack.