Serverless – What are the options?
Serverless Architecture
I’m a big fan of serverless architecture. My view is that removing the infrastructure and operating systems from the business processes and services enables a different kind of thinking.
Ultimately, a business is only really interested in the successful operation, experience and outcomes of the applications, systems and data they are running on the infrastructure. If IT tell the business that to provide a successful operation etc. the infrastructure must be patched, backed-up, monitored etc. they aren’t going to argue. However, often the requirements of Operating Systems and the management platform, force constraints and take valuable time away from developing business services.
Removing the IaaS components, removes some of the technology constraints around the business services. It also removes the headache of moving code between development, testing and live environments, wondering if the environments are identically configured. Enabling a focus on the pure business logic of a problem, service or solution. That’s not to say in a serverless world we don’t care about monitoring, protecting or management of solutions. It just allows those requirements to be linked to business value and to provided by cloud native solutions instead.
Serverless Platforms
In a previous article, I briefly covered LogicApps and Functions from Azure. However, serverless architecture is a vendor neutral way of working and there are other companies and solutions that are providing serverless tools and platforms. Below is a quick look at three offerings outside of Azure.
AWS Lambda
AWS Lambda is the serverless offering from Amazon Web Services. Letting you run code without provisioning or managing servers, with support for code written in Node.js, Python, Java, C#, existing and native libraries. With integrations to call or trigger from other AWS services or an API (defined using Amazon’s API gateway) and providing an isolated environment to run within.
AWS Lambda only works within AWS boundaries, so if you’ve already started out in the AWS ecosystem and are interested in serverless, then Lamda should be in your sights.
So who uses Lamda? Netflix use AWS Lambda’s event-based rule management to remove the need to manually scale and maintain servers. With updates being frequently added by studios, and unpredictable demand, AWS Lambda’s OS abstraction increases efficiency.
Google Cloud Functions
Offered from the google cloud, Cloud Functions again allow you to spin up and pay for business logic on demand. With support for code written in Node.js and native libraries, with integrations to call or trigger from Google storage, messaging, events, webhooks and an API. With access offered under BETA terms, Google Cloud Functions is still under development, it will be very interesting to see the capabilities of the released version.
IBM Bluemix – OpenWhisk
Offered from IBMs Bluemix cloud platform, OpenWhisk is serverless, using rules to bind events, triggers and actions to each other. OpenWhisk actions run when called and are billed based upon usage. Currently OpenWhisk supports code written in Node.js and Swift and custom code from Docker containers. With a promise to expand the list of supported languages. Integrations to Watson and other Bluemix services with OpenWhisk actions directly callable via an API.
Summary
The cloud is more than just virtualisation with vendor managed compute. When moving to adopt cloud services, you do not have to lift and shift the existing infrastructure and management stacks. With multiple options and the continued emergence of new services, serverless delivery models in the cloud are maturing at pace. Providing viable, robust alternatives for business logic and services.
Simon