Banzai Cloud is now part of Cisco

Banzai Cloud Logo Close
Home Products Benefits Blog Company Contact

Backyards - automated service mesh for multi and hybrid cloud deployments

Author Zsolt Varga

The content of this page hasn't been updated for years and might refer to discontinued products and projects.

Check out Backyards in action on your own clusters!

Register for a free version

Want to know more? Get in touch with us, or delve into the details of the latest release.

Or just take a look at some of the Istio features that Backyards automates and simplifies for you, and which we’ve already blogged about.

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 several 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.

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 click 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 click 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 on a GKE cluster.

Create additional clusters

Extend service mesh πŸ”—︎

Go back to the service mesh list, click RESIZE MESH, then ADD NEW CLUSTER. Select the previously created clusters as remote, then click 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 (now Cisco Service Mesh Manager) is a multi and hybrid-cloud enabled service mesh platform for constructing modern applications. Built on Kubernetes, our Istio operator and the Banzai Cloud Pipeline platform gives you 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 Banzai Cloud Pipeline πŸ”—︎

Banzai Cloud’s Pipeline provides a platform for 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, and so on β€” are default features of the Pipeline platform.

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