Outshift Logo

9 min read

Blog thumbnail
Published on 07/07/2019
Last updated on 02/05/2024

Backyards - automated service mesh for multi and hybrid cloud deployments

Share

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. 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 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 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 cluster 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. app with hpa

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 and our Istio operator, it gives you flexibility, portability, and consistency across on-premise datacenters and 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
Subscribe card background
Subscribe
Subscribe to
the Shift!

Get emerging insights on emerging technology straight to your inbox.

Unlocking Multi-Cloud Security: Panoptica's Graph-Based Approach

Discover why security teams rely on Panoptica's graph-based technology to navigate and prioritize risks across multi-cloud landscapes, enhancing accuracy and resilience in safeguarding diverse ecosystems.

thumbnail
I
Subscribe
Subscribe
 to
the Shift
!
Get
emerging insights
on emerging technology straight to your inbox.

The Shift keeps you at the forefront of cloud native modern applications, application security, generative AI, quantum computing, and other groundbreaking innovations that are shaping the future of technology.

Outshift Background