Learn about the benefits and drawbacks of one of the hottest trends in IT today.
The term “serverless architecture” can be somewhat misleading. After all, it’s not as if your applications literally don’t run on servers. Instead, the server and infrastructure is essentially hidden from you, typically managed by a service provider. This is appealing to many as it frees the business up to focus resources almost strictly on the application and not on the underlying components. In many ways, it’s just the next logical step in the data center. We’ve moved from server virtualization to containers and finally to serverless architectures.
Unlike traditional cloud services, serverless computing frees you from the management of virtual servers, operating systems, load balancers, and the software used to run application code. Serverless architecture is often thought of as the next evolution of Platform-as-a-Service, enabling organizations to focus on application code while the service provider manages everything else, including the back-end stack components.
But while there are many sound benefits with serverless architectures, there are some serious drawbacks that also must be considered. Simply put, serverless isn’t for everyone. In this slideshow, I’ll outline some of the pros and cons, then you decide if you are ready to fully hand over the keys of your infrastructure so you can solely focus on applications. But regardless of your view today, serverless architectures seem to be the logical evolution of enterprise IT technologies.
And if you think that serverless architecture is simply for small startups and lab environments, you’re sorely mistaken. There are plenty of large enterprises looking to rapidly adopt this new way of handling how applications are created. Netflix is one high-profile example.
Click ahead to see what serverless architectures can offer today and what to watch out for. As time moves on, the drawbacks of this approach likely will soon diminish just as fast as the advantages will increase. Is serverless the architecture of enterprise IT for the next decade? I think it very well could be.
Eliminates server stack management
Despite the fact that server virtualization, OS, runtime, databases and other infrastructure components still are technically required, a serverless architecture eliminates the management of the server stack and any concerns/planning that have to go into the potential scaling up or down of the stack. All of these processes are automated and you simply pay for the compute time you use.
Doesn't support legacy apps
If you’re thinking that you can simply move all your applications to a serverless architecture and never have to worry about infrastructure again, you’ll be sorely disappointed. While you technically could rewrite your applications to work on a serverless architecture, it’s not going to pay off in the end. Applications that run on serverless platforms are created using nanoservice, microservice or monolith architectures. This rethinking and redesigning of an application’s structure means that most legacy apps are not going to be an option.
Not only do you theoretically reduce costs by eliminating the need to hire staff to support servers and other infrastructure, you can also save a great deal of money if your application traffic is extra bursty. In traditional server architectures, bursty traffic means that you must build your server to handle maximum burst rates. But the rest of the time, you are wasting money with idle CPU cycles. Instead of having to pay for that idleness, a serverless architecture lets you only pay for what CPU cycles you actually consume and code is only run when needed.
No real roadmap
Despite the enthusiastic support and rapid growth of serverless architectures, Anthony Stanley, ServerlessConf co-organizer, noted that a blueprint or roadmap for the approach isn’t available. Because of this, it should serve as a warning sign that the world of serverless architecture is still the Wild West.
Popular programming languages supported
Despite the ability to program with many of the most popular languages, serverless computing still is limited, considering all the available languages that can be coded, compiled and run in traditional environments. In addition to that, there are only a handful of respectable serverless architecture service providers, many with roadmaps that are not yet fully baked. So if you decide to dive right in, be ready to adapt to an evolving framework.
Reduces development times
If you were to ask business leaders their biggest reason for an interest in developing on serverless architectures, more often than not, you’ll likely hear that it is due to the promise of significantly reduced development times. Not having to deal with the planning, setup and maintenance of the creation of software, organizational DevOps resources can drop the “ops” and simply focus on the “dev.”
You may think that since your applications are independent of specially crafted server architectures, moving from one serverless environment to the next would be a snap. But unfortunately, vendor lock-in once again rears its ugly head. You have to not only think about moving your code, which likely relies on various proprietary tools for operation and management, but other aspects of the application such as databases, load balancing and access control. All of those likely will use different components and implementation methods depending on which serverless architecture you use.