Banzai Cloud Logo Close
Home Products Benefits Blog Company Contact
Get Started

Backyards - automated service mesh for multi and hybrid cloud deployments

A few weeks ago we announced Backyards, Banzai Cloud’s automated service mesh built on top of our Istio operator, which greatly simplifies the complex management of service meshes across multi and hybrid-cloud environments. Backyards is integrated into Banzai Cloud’s container management platform, Pipeline. However, it also works, and is available, as a standalone product. Naturally, using Backyards with Pipeline provides users with a variety of specific benefits (like managing applications in a multi-cloud world) but Backyards works on any Kubernetes installation.

In the post introducing Backyards, Istio the easy way, we discussed some of its main features, such as the ability to create a service mesh in a few simple clicks, the monitoring of applications through a unique graph view, and the management of Istio features from a convenient UI. If you read that post, you may also remember us mentioning that our platform is capable of managing multi-cluster Istio service meshes across multi-cloud and hybrid-cloud deployments.

In this post, we will be introducing our automated multi-cluster service mesh feature and exploring it in some detail.

Regardless of whether it’s in a single or multi-cluster (multi-cloud or hybrid-cloud) environment, Backyards uses of the same set of features and convenient management UI. It’s extremely simple to start in a single-cluster scenario, as well as to extend, with a few clicks, into a multi-cluster (multi-cloud or hybrid-cloud) service mesh.


Motivation

Hybrid and multi-cloud solutions are quickly becoming the new norm for enterprises. When Google announced Anthos a few months ago, the interest in, and adoption of, these solutions rapidly accelerated.

At Banzai Cloud, we noticed this accelerated interest at most of the companies we had discussions with. Some choose to run workloads in-house, in their own data centers, only scaling out to public clouds when peak-demand cannot be met. Others continually search for the cheapest prices across cloud vendors, only spinning up workloads when their cost criteria are met. However, all of them need a convenient way to move into different public clouds as requested by a given customer, regulation or business criteria, and to build multiple topologies across these public and hybrid clouds.

As demand began to emerge for hybrid and multi-cluster solutions, we started to look for ways to address our customers’ needs.

While the needs of Pipeline users vary depending on whether they employ a single or multi-cloud approach, they usually build upon one or more of these key features:


Background

From its very inception, the Pipeline platform has supported multiple cloud providers: connecting these providers on different levels (clusters, deployments and services) has always been one of our primary objectives.

Simultaneously, we have been working extensively with Istio. First, we released an operator for simplifying the deployment and management of Istio, then we investigated its multi-cluster capabilities. Based on our experiences, we built Backyards, an automated multi and hybrid-cloud product, integrated into Pipeline, utilizing our open-source Istio operator.

Backyards in Pipeline

In Pipeline, you can install and manage a hybrid, or multi-cluster service mesh on-premise, or with any combination of the five cloud providers we support.

Using a feature called Cluster group, we can form multiple clusters into groups, provided we select one as a master cluster, and can associate them with different features, like Multi-cluster Deployment or Service Mesh.

Multi-cluster Deployment makes it possible to deploy an application on multiple clusters simultaneously. This is not the feature we will be highlighting in this post, but it will be used to easily deploy an application on multiple clusters. You can read more about this feature in this blog post.

Service Mesh is the feature which we’ll be exploring in depth in this post. When it is turned on, it installs Istio on the master cluster and automatically connects all the clusters in a group using the Istio operator. When this happens, you’ll get an inter-cluster view of your services. From that point on, you can work with a multi-cluster mesh almost as if it were a single cluster.


Features

Creating a service mesh

Let’s start by creating a cluster on AWS, using Banzai Cloud’s lightweight and CNCF certified Kubernetes distribution, PKE. Next, we’ll create an Istio service mesh using that cluster.

Creating a service mesh also forms a cluster group that remains in the background.

After a few seconds the mesh will be installed and ready to use.

Create service mesh

Deploy an app

Now that we have our mesh, we’ll need a demo microservice application to showcase the capabilities of our product. To this end, we’ve created a very simple project that can be used to simulate a microservice application, called AllSpark. We’ve also built a Helm chart that contains a pre-configured AllSpark deployment, which simulates a cinema reservation system. We’ve made these available through our Helm chart as a service solution.

Using the aforementioned Multi-cluster Deployment feature, we can deploy this application by navigating to the Multi Cluster Deployments tab on the UI, and adding the https://charts.banzaicloud.io/gh/spotguidetest repo to Pipeline, then selecting the meshdemo chart and clicking on DEPLOY (make sure to set all values to true to install all components).

Deploy app

We could also have used a simple single cluster deployment for one cluster, but we chose a multi-cluster deployment because we’ll be using it again later, when working with multiple clusters.

Service mesh overview

If you go back to the service mesh list and hit the observe button, you’ll be presented with the service mesh control panel. Since our test application hasn’t received any traffic, there are no metrics in the system and you won’t get any visualization yet. The UI has a test flight feature that directs traffic to selected endpoints. If you hit the HTTP button in the top right corner of the screen, you’ll be able to fill out a form that includes endpoint details, and send some test traffic to your services. In the case of our current example, traffic should hit the frontpage service on port 8080.

After a few seconds, a graph of your services will appear. The nodes in the graph will be services or workloads, while the the arrows will represent network connection between different services. These are based on Istio metrics that come from Prometheus.

Simple graph

Create additional clusters

Extending our service mesh with more clusters – even on multiple cloud providers – only takes a few clicks. Let’s create three additional clusters, on three different providers, to make things a bit more fun. We can easily spin up another PKE cluster on Azure, as well as an OKE and a GKE cluster.

Create additional clusters

Extend service mesh

Go back to the service mesh list and hit RESIZE MESH, then ADD NEW CLUSTER. Select the previously created clusters as remote, and press ADD. It’s as simple as that.

Extend service mesh

It may take several minutes for the mesh to expand: for every cluster to join and to reach a HEALTHY state.

Deploy an app on multiple clusters

Now that we have multiple clusters within the mesh, and we’re leveraging Pipeline’s Multi-cluster Deployment feature, we can easily spread our demo microservices to those clusters. This particular helm chart has the option to easily turn components on and off. Because the Multi-cluster Deployment feature supports setting overrides for each cluster, we just need to edit our deployment and set which components we’d like to run on which cluster.

We used the following cluster overrides for the multi-cluster deployment:

PKE on AWS

services: true
istioresources: true
frontpage: true
catalog: true
bookings: true

PKE on Azure

services: true
moviesv1: true
moviesv2: true
moviesv3: true

OKE

services: true
payments: true
notifications: true

GKE

services: true
analytics: true

Deploy multi app

Service mesh overview on multiple clusters

You can use the UI’s test flight feature, again, to send more traffic to the endpoint we previously selected. After a few seconds, something similar to the graph below should appear. Now our application is spread across four clusters on four different providers.

Awesome, right?!

Multi app graph

Configure HPA

Before wrapping up this post, let’s take a look at one last feature: setting up a Horizontal Pod Autoscaler. On the Single-cluster Deployment page of Pipeline, you can easily configure a HPA for the deployment of your choice (in our case, analytics-v1).

Set HPA

Once you’ve created the HPA and sent enough traffic to your services to trigger upscaling, you’ll start to see an increasing number of pods on the UI, which correspond to the analytics-v1 deployment. You’ll also see increased request rates along the edges of the graph, represented both in numbers and in the thickness of the edges.

HPA graph

Takeaway

In Pipeline, you can set up a hybrid or multi-cluster service mesh with Backyards with ease. You can then deploy, monitor, manage and troubleshoot your applications on multiple clusters from one convenient UI.

Give it a try for free!


About Backyards

Banzai Cloud’s Backyards is a multi and hybrid-cloud enabled service mesh platform for constructing modern applications. Built on Kubernetes, our Istio operator and Pipeline enables flexibility, portability and consistency across on-premise datacenters and on five cloud environments. Use our simple, yet extremely powerful, UI and CLI, and experience automated canary releases, traffic shifting, routing, secure service communication, in-depth observability and more, for yourself.

About Pipeline

Banzai Cloud’s Pipeline provides a platform which allows enterprises to develop, deploy and scale container-based applications. It leverages best-of-breed cloud components, such as Kubernetes, to create a highly productive, yet flexible environment for developers and operations teams alike. Strong security measures—multiple authentication backends, fine-grained authorization, dynamic secret management, automated secure communications between components using TLS, vulnerability scans, static code analysis, CI/CD, etc.—are a tier zero feature of the Pipeline platform, which we strive to automate and enable for all enterprises.

About Banzai Cloud

Banzai Cloud is changing how private clouds are built: simplifying the development, deployment, and scaling of complex applications, and putting the power of Kubernetes and Cloud Native technologies in the hands of developers and enterprises, everywhere.

#multicloud #hybridcloud #BanzaiCloud

If you are interested in our technology and open source projects, follow us on GitHub, LinkedIn or Twitter:


Comments

comments powered by Disqus