Part of the evolution of DevOps and microservices is driven from a need to homogenize the world of IT. Organizations and developers want to be able to create, deploy, and manage code without regard for the hardware or software it’s actually running on. Serverless applications appear to be the next phase of that evolution because they essentially remove the server from the equation.
Microservices is an umbrella term that covers a range of things—the most notable and obvious of which is containers. Containers, driven primarily by the rise of Docker, are now embraced and supported across a variety of operating systems and cloud platforms. The next step in the microservices evolution, however, is to eliminate those dependencies completely—or at least most of them—and move to serverless applications that run more or less natively in the cloud.
Al Hilwa, program director of software development research for IDC, told me late last year, “Microservices are typically developed with modern elastic and often stateless back-end architectures, but that does not mean they are automatically scalable. Architects have to take special care to make sure that centralized services or databases are also designed to be scalable. Microservices also put a lot of pressure on APIs highlighting the importance of strong API management technology in the software stack being employed.”
There has been a proliferation recently of services aimed at taking microservices to the next level and supporting a serverless application ecosystem. Amazon’s AWS Lambda and API Gateway, Google Cloud Functions, and Azure Container Service (ACS) are all built on the premise of providing a generic layer capable of running a container orchestration solution.
The whole thing reminds me a little of the quest for bare metal solutions with data backup and restoration. When I worked as a network admin in the IT trenches we dutifully backed up all of our crucial systems and data on a daily, weekly, and monthly basis so we could be prepared in the event that some catastrophe occurred. The real challenge, however, was that most backup solutions at the time were only really capable of restoring the data onto identical hardware. Any deviation in hardware architecture, graphics card, network adapter, etc. could complicate the whole process—or even render the backup more or less useless.
Some refer to serverless computing as “NoOps” because it essentially eliminates the operational infrastructure aspect of DevOps. “Developers follow the fire-and-forget paradigm where they upload individual code snippets that are hooked to a variety of events at runtime,” explains a Forbes contributor. “This model offers a low-touch, no-friction deployment mechanism without any administrative overhead. Serverless computing and microservices are ushering a new form of web-scale computing.
Check out the full post on ContainerJournal: Are Serverless Applications the Future of Microservices?