Stephen King, vCORE DevOps Engineering Lead | June 23, 2020
As mid-sized and large-scale organizations continue to adopt a hybrid and multi-cloud strategy, Flexera’s State of the Cloud report projects that 93% of organizations will have compute footprints on-prem and with at least one cloud vendor by 2021.
Still, hybrid cloud deployments are only as valuable as the workloads deployed on them.
The three considerations to keep in mind when designing a successful hybrid cloud architecture are serverless, multi-cloud networking and monitoring. Today we’ll take discuss serverless.
Serverless strategies provide unique challenges and benefits
When building an application modernization or greenfield architecture, Function as a Service (FaaS) is an increasingly popular choice. Serverless functions are in the top 5 technologies IT decision-makers are currently using or planning to use, according to Flexera.
About 80% of organizations that run containers now run FaaS in production environments, a clear indication that serverless deployments are no longer a niche area for cloud-native consumers.
While a serverless strategy and architecture can be quite beneficial to technology departments, it does introduce unique challenges in building seamless delivery pipelines and avoiding vendor lock.
Common challenges include:
- Designing and building serverless functions requires you to marry to a vendor’s technology, limiting your ability to change providers or leverage on-prem resources.
- Supporting multiple cloud vendors requires your staff to be trained on multiple development patterns and practices, which increases the already existing skills gaps in supporting your cloud environments.
- It also affects your continuous delivery pipelines, adding additional complexity depending on whether you are deploying AWS Lambda or Azure Functions.
- Serverless compute, networking and monitoring can also add complexity to managing your cloud technology platforms.
If you have Kubernetes running, you already have a platform which can support a cloud agnostic FaaS and will allow you to leverage the benefits of serverless operations to your application architecture.
How do you leverage on-prem hardware when using FaaS?
vCORE’s approach, and where we have found success, is with Knative and OpenFaaS. These are just two solutions in the vendor-agnostic landscape, and both are open-source solutions that allow you to leverage your existing on-prem or cloud Kubernetes clusters.
Do you already have Tanzu Kubernetes Grid and Elastic Kubernetes Service? No problem — Knative and OpenFaaS give you the freedom you the freedom to place your workloads where you want and uniquely solve a collection of challenges. Here’s a closer look at each:
- OpenFaaS was released in late 2016 for Docker Swarm and added Kubernetes support in the middle of 2017. OpenFaaS was built to be simple — it installs via YAML or Helm with a couple of lines, and your DevOps group can start leveraging it. The architecture includes an API gateway, Prometheus and a function watchdog all sitting on top of Kubernetes or Docker Swarm. One challenge with OpenFaaS is startup time of the container, and some languages take a while to spin up from a cold start. This can be handled with some configuration and caching, however.
- Knative was announced in 2018 and comes directly from Google. Knative is a little more complex to install and is really two different components: eventing and serving. These two components provide the platform for a cloud-vendor-agnostic FaaS solution. Knative also does not have the cold startup time issue. Knative has recently started to take off due to its leveraging of Istio and being backed by Google.
If you are already working with Kubernetes and want to give serverless a spin — or if you are trying to implement a vendor agnostic serverless hosting environment — these solutions are excellent options to evaluate.
Conclusion: Cloud-agnostic tooling can improve serverless technology adoption
Organizations continue to expand multi-cloud and hybrid-cloud footprints while adopting containerization and serverless functions.
Adopting a vendor-neutral serverless technology stack simplifies your continuous delivery pipeline and helps lower your technical debt.
Building a single-delivery pipeline while simplifying the developer and deployment experience lowers training costs and the barrier of entry, while increasing adoption of serverless technologies.
In my next blog, I will discuss the challenges around multi-cloud and hybrid-cloud networking, along with some of the tools we have leveraged to solve them.
More from the vCORE Technology Blog
2020: Cloudy with a Chance of DevOps
Accelerate with Cloud Automation
Business Re-Imagined: 3 Powerful Technology Trends to Watch in 2020
Five Questions with vCORE Cloud Technical Director Brent Piatti
Maintaining Compliance in the Cloud