Sample Applications are used to interact and exemplify the features of your service mesh. They are often a collection of microservices which you can be used by the user as a sandbox playground to experiment and learn about the service mesh and it’s exhaustive set of features. Before deploying a sample app on top of your service mesh, the application needs to be exposed and allowed external access to the available services in a cluster. 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.
To deploy a sample app on Meshery:
- Go to the management page of any service mesh and install any of its stable versions
- Click (+) on
Manage Sample Application Lifecycle. You will now be able to see a drop down menu with the available sample applications
- 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
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.
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
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
HttpBin is a simple HTTP request and response service that responds to many kinds of http/https requests including the standaard http request methods (or verbs) used by REST.
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.
Hipster 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: