Micro Focus is now part of OpenText. Learn more >

You are here

You are here

Serverless and multi-cloud: Hype or reality?

public://pictures/or_10428_1.jpg
Sebastien Goasguen Co-founder, TriggerMesh
 

Much has changed since serverless computing arrived, along with AWS Lambda in November 2014. Kubernetes has taken IT infrastructure by storm, developers have embraced containers, and IT now embraces public clouds as providers of managed services.

But beyond the dominance of Lambda, is there something else to the serverless computing model? As people have started talking about best-of-breed services in the public cloud, is there anything behind the emerging multi-cloud debate?

In a word, yes. Multi-cloud is real and will soon be a common application pattern in the serverless world, where you'll interconnect best-of-breed services through events.

AWS Lambda is the poster child for serverless

At first glance, AWS Lambda appears to be a function-as-a-service (FaaS) offering. It lets you define relatively small bits of code that make up key application logic and deploy it on an AWS managed infrastructure. It scales up and down transparently to users, and you pay only for the duration of the function call.

But Lambda is much more than a common gateway interface on steroids; it is the glue that connects AWS services and lets users build cloud-native applications without worrying about infrastructure setup and teardown.

Lambda appears to be the Holy Grail for developers. It lets you access powerful, state-of-the art, fully managed, resilient, and scalable services, and stitch them together through events to build impressive applications. This all occurs without needing to focus on infrastructure. Instead, you can put your time and effort into differentiating your business.

AWS recently announced EventBridge as an AWS-wide event gateway; you can use it to programmatically define event flows to help trigger Lambdas that compose those new cloud-native applications. Events are the exciting, value-added components of Lambda that differentiate it from other FaaS offerings. The rich event library available on AWS lets Amazon users tie multiple services together and automate their apps.

That said, while Lambda has been the poster child of serverless computing on Amazon, AWS has been categorizing more and more of its services as serverless. Aurora Serverless is a great example.

Beyond FaaS and event-driven applications, Amazon is positioning serverless as its overarching mindset for the cloud: Less infrastructure visibility, and a greater focus on applications and service compositions. Ultimately, Amazon is getting back to the core functionality of the cloud—to manage service with elasticity and a pay-as-you-go model.

Beyond Amazon: The AWS alternatives

Meanwhile, many other FaaS offerings have appeared, some of which already existed, but have evolved into serverless products. These include Google's Cloud Functions and Cloud Run, and Microsoft's Azure Functions, as well as more interesting incumbents, such as Cloudflare Workers.

In addition to the managed services offerings available from the major cloud service providers, the Kubernetes ecosystem has seen many open-source projects that offer FaaS capabilities, such as Kubeless, Fission, OpenFaas, Riff, Nuclio, and Knative.

Most of these address basic FaaS capabilities (such as packaging a function into a deployable runtime), but fall short in terms of event management. Events allow Lambda to link all its AWS services together.

The Knative project is the notable exception; it has a dedicated component that's specifically intended for event management, and you can use it to map event sources to functions.

For example, you can use it to configure a GitHub event source and trigger a function running as a Kubernetes service, or you can put that GitHub event into an event channel implemented with the Google Cloud Platform's Pub/Sub.

Moving to multi-cloud

That’s where the picture becomes interesting. What happens if the cloud services that you want to compose together don't reside on the same cloud?

Using cloud services across cloud providers is not heretical. People have long been looking to use best-of-breed services. After all, while AWS is arguably the most innovative cloud, it could be that the Google Cloud Platform offers superior services.

So, if you want to compose best-of-breed cloud services, you could face a multi-cloud issue. And in that case you'll need to use cloud events across multiple clouds to solve the problem.

The use of multi-cloud is also growing, but not always by design. For example, an organization might acquire a smaller company that uses a different cloud service and decide to keep it, if the cost of migrating is higher than working with both services.

Multi-cloud is becoming the new "on-premises" platform, with scenarios that include, say, hosting your VMware infrastructure in AWS while still using a managed OracleDB. 

Your future will be multi-cloud and serverless

So where does this leave things? Public cloud providers are abstracting away infrastructure management and giving customers ever more fine-grained billing mechanisms. Meanwhile, the lower end of the IT stack is getting commoditized. This is a great trend for non-IT companies, who can now invest more in core business needs instead of IT infrastructure.

As they do, they can pick and choose the best-of-breed services and go multi-cloud instead of settling on using a single cloud that may offer an inferior service than its competitor. Companies will become more cloud-savvy, and cloud providers will eventually adopt common APIs (such as the Kubernetes API, Google config connector, and AWS service operator projects).

Finally, in linking all of those services together, you will need to manage multi-cloud events, which will form the substrate that ties your application components together.

Give all of this, pursuing multi-cloud serverless may not be such a crazy idea after all.

To learn more, come to my presentation, "Deploying serverless applications to any cloud with Knative," at Velocity Berlin. I'll be demonstrating how to get hands on with serverless by deploying functions and configuring event flows on Kubernetes. The conference runs from November 4 to November 7, 2019, in Berlin, Germany. Get 20% off when you register with code TECH20.

Keep learning

Read more articles about: Enterprise ITCloud