Deploying Sample Applications

Meshery includes a few sample applications to help you explore cloud native infrastructure. Each is a collection of microservices for experimental purposes of learning about running workloads in Kubernetes clusters both on and off of a service mesh. When deploying a sample app onto your service mesh, your sample application needs will need to be externaally exposed from the cluster, if you would like to access it externally. There are a myriad of ways to do this, specific to the service mesh you are using.

A popular way of exposing your cluster is by using Ingress, an API object that defines rules which allow external access to services in a cluster.

Deploy a sample app on Meshery

  1. Go to the management page of any service mesh and install any of its stable versions. Consul-install

  2. Click (+) on Manage Sample Application Lifecycle. You will now be able to see a dropdown menu with the available sample applications. ImageHub sample app

  3. Click on the sample application you want to deploy. This might take up to a minute. You will be notified when the sample application has been deployed. ImageHub deployed

BookInfo

Originally built by Istio, BookInfo is a sample application which on deployment displays information about a book, similar to a single catalog entry of an online book store. Displayed on the page is a description of the book, book details (ISBN, number of pages, and so on), and a few book reviews. The application comprises of four microservices:

  • productpage: The productpage microservice calls the details and reviews microservices to populate the page.
  • details: The details microservice contains book information.
  • reviews: The reviews microservice contains book reviews. It also calls the ratings microservice.
  • ratings: The ratings microservice contains book ranking information that accompanies a book review.

Once BookInfo is deployed, you can use Meshery to apply custom configurations to control traffic, inject latency, perform context-based routing, and so on.

BookInfo sample app

Emojivoto

Emojivoto is a microservice application, originally built by Linkerd that allows users to vote for their favorite emoji, and tracks votes received on a leaderboard. The application is composed of three microservices:

  • emojivoto-web: Web frontend and REST API
  • emojivoto-emoji-svc: gRPC API for finding and listing emoji
  • emojivoto-voting-svc: gRPC API for voting and leaderboard

Emojivoto

ImageHub

Image Hub is a sample application for exploring WebAssembly modules used as Envoy filters. The application was originally written to run on Consul. However, it doesnโ€™t have any dependency on Consul and can be deployed on any service mesh. These modules can be used to implement multi-tenancy or to implement per user rate limiting in your applicationโ€™s endpoints, without messing with your application infrastructure. Follow this tutorial to set up ImageHub with Ingress

Imagehub-on-Consul

HTTPBin

HttpBin is a simple HTTP request and response service that responds to many kinds of http/https requests including the standard http request methods (or verbs) used by REST.

httpbin

Linkerd Books

Linkerd Books is a sample Ruby based application. It is designed to demonstrate the various value propositions, including debugging, observability, and monitoring of your service mesh. It can be used to scope out your meshโ€™s efficiency and for debugging.

Linkerd Books

Online Boutique

Online Boutique is a sample cloud-native application, originally built by Google. It comprises of 10 microservices and can be used to showcase and work with Kubernetes, Istio, gRPC and OpenCensus. On deployment, it runs a web-based e-commerce demo application, an example of which can be seen below:

Online Boutique

Suggested Reading

  • Infrastructure Discovery - MeshSync supports both greenfield and brownfield discovery of infrastructure. Greenfield discovery manages infrastructure created and managed entirely by Meshery, while brownfield discovery identifies separately created infrastructure.
  • Infrastructure Management - Meshery provides the ability to manage infrastructure for agility, maintainability, diversity, reliability and isolation, security, and speed.
  • Managing Connections - Manage the lifecycle of your infrastructure by registering each infrastructure element with Meshery.
  • Managing Events with Notification Center - Meshery tracks operations performed on your infrastructure and workloads, and provides notification of environment issues, application conflicts with infrastructure configuration, policy violations, and so on.