Serverless Computing: Why You Should Wait
Serverless computing -- also called function-as-as-service (FaaS) -- has been a hot topic of discussion in many trade publications and industry conferences as of late.
This is the concept of running applications without a traditional server operating system from a management perspective. Instead, application code is executed within a cloud provider's network, which then manages the specific resources the application requires in real time.
Doing so allows for more efficiency and scalability across your entire application platform. These efficiencies can ultimately turn into cost savings. (See Serverless Is Cheaper Than VMs, Containers – Report.)
Yet, despite all the hype, serverless architecture technologies probably aren't ready for production deployments just yet.
Before we get into the shortcomings of serverless architectures, let me state that it's my belief that this technology will likely be the future of cloud computing. Not only can it eliminate many of the wasteful components within public and private data centers that are prone to chewing up compute, storage and network resources, it also allows for seamless scalability.
However, as with any new technology, we must be aware of current limitations as they relate to production enterprise networks.
The maturity factor
The most obvious downfall of serverless computing in 2017 is that it's not yet widely available.
While the bigger players are already offering serverless architectures -- AWS Lambda, Google's Cloud Functions and Microsoft's Azure Functions -- other cloud providers do not yet offer a serverless option. For companies that are moving toward multi-cloud architecture, going serverless significantly limits cloud provider options. (See Google & Microsoft Tout Multi-Cloud, but Where's Amazon?.)
CIOs and their IT staff should consider the relative newness of a serverless architecture. While AWS Lambda has been available for several years now, Google's serverless offering has barely been around a year and is still considered to be in beta mode from the company's perspective. Microsoft's Azure Functions is even less mature having only recently launched in November 2016.
The recentness of these technologies should throw up warning flags to IT decision makers whose job is to develop an IT infrastructure strategy that is usable and stable. While moving to bleeding-edge technologies sounds exciting, it's often only a good idea in a few use-case scenarios.
And even in those, moving to an unproven technology can lead to a number of stability headaches.
That's why for most, the decision of letting a new technology mature is a far better option when dealing with large and complex enterprise infrastructures.
Consider the apps
Moving beyond the notion that serverless architectures should still be considered "beta" for most enterprise uses; your next consideration should be to determine your level of readiness from an application point of view.
Despite what some think, you can't simply take any existing application that's running in a traditional virtual machine environment and expect it to run in a serverless setting. We've all heard of cloud-native applications and how these types of apps are more efficient working inside the cloud.
Cloud native applications are coded as microservices and communicate with cloud resources through APIs. These are the types of applications that are fairly easy to migrate to serverless architectures. (See Rackspace, Pivotal Ink Partnership to Court Developers.)
However, most enterprises aren't running fully cloud-native apps. Instead, most are likely managing legacy applications that were taken directly from private data centers and simply moved to a public infrastructure-as-a-service (IaaS) provider.
IaaS is the second most popular cloud service offering, beaten by only software-as-a-service (SaaS), according to Gartner. It's these types of IaaS applications living in the cloud today that need to be dramatically re-worked or wholly re-written for use in a serverless environment.
Many in the IT industry correctly state that serverless architectures are a natural evolution of cloud computing. But it's crucial that we understand the technology remains in the early stages of this evolutionary process. That's why it's important to recognize how we should approach serverless architectures from an enterprise IT perspective.
Yes, it's a technology that will completely change how we design, build and manage cloud networks. Yet, keep in mind that it's not ready for production use. Knowing this, we can't simply ignore serverless architectures all together.
Instead, we should be researching and experimenting with current capabilities. Now is the time to begin working with one or more serverless architecture technologies in a development capacity. Doing so will give your software developers and infrastructure administrators a leg up on the competition when serverless architectures are finally ready for prime time.Related posts:
- Microsoft's Azure Stack Is Useful but Not for Everyone
- Intent-Based Networking: What Does It Mean for Your Cloud?
- Cloud Hopping: 5 Tips on Migrating Between Public Clouds
- Wasting Money on Cloud: 6 Ways to Stop