LogoLogo
Reliability HubAPI DocsPlatform
  • Welcome to Steadybit
  • Quick Start
    • First Steps
    • Compatibility
    • Install Agent and Extensions
    • Run an Experiment
    • Deploy Example Application
  • Concepts
    • Actions
    • Discovery
    • Query Language
  • Install and Configure
    • Install Agent
      • Architecture
      • Install on Kubernetes
      • Install on Linux Hosts
      • Install using Docker Compose
      • Install on Amazon ECS
      • Extension Registration
      • Using Mutual TLS for Extensions
      • Configuration Options
      • Agent State
      • Agent API
    • Install On-Prem Platform
      • Install on Minikube
      • Advanced Agent Authentication
      • Configuration Options
      • Maintenance & Incident Support
      • Syncing Teams via OIDC Attribute
    • Manage Environments
    • Manage Teams and Users
      • Users
      • Teams
      • Permissions
    • Manage Experiment Templates
  • Use Steadybit
    • Experiments
      • Design
      • Run
      • Run History
      • Schedule
      • Variables
      • Emergency Stop
      • Share
        • Templates
        • Duplicate
        • File
      • OpenTelemetry Integration
    • Explorer
      • Landscape
      • Targets
      • Advice
    • Reporting
  • Integrate with Steadybit
    • Extensions
      • Anatomy of an Extension
      • Extension Installation
      • Extension Kits
      • Available Extensions
    • API
      • Interactive API Documentation
    • CLI
    • Badges
    • Webhooks
      • Custom Webhooks
      • Preflight Webhooks
    • Preflight Actions
    • Slack Notifications
    • Audit Log
    • Hubs
  • Troubleshooting
    • How to troubleshoot
    • Common fixes
      • Extensions
      • Agents
      • On-prem platform
Powered by GitBook

Extension Docs

  • ActionKit
  • DiscoveryKit
  • EventKit

More Resources

  • Reliability Hub
  • API Docs
On this page
  • Prerequisites
  • Step 1 - Have a look a the example application
  • Step 2 - Deploy the example application
  • Step 2a) Deploy on Minikube
  • Step 2b) Deploy on AWS EKS
  • Next Steps

Was this helpful?

Edit on GitHub
  1. Quick Start

Deploy Example Application

Last updated 8 months ago

Was this helpful?

When trying out Steadybit you may want to start easy instead of directly using your fully fledged system. Therefore, we have a small example application called which you can easily deploy on a local minikube or AWS EKS using this guide.

Simply follow these two steps:

Prerequisites

  • You have already signed up for an account

  • You are able to log in to the

  • You have installed

  • You have installed

Step 1 - Have a look a the example application

In order to give you a quick and easy start, we have developed a small demo application. Our shopping demo is a small product catalog provided by seven distributed backend services and a simple UI.

Step 2 - Deploy the example application

Step 2a) Deploy on Minikube

Prerequisite

Start your minikube cluster

From a terminal, run:

minikube start

You can access your cluster with:

kubectl get po -A

Deploy the example application

Now we use helm to deploy the demo by running the following command:

helm repo add steadybit-shopping-demo https://steadybit.github.io/shopping-demo
helm repo update
helm upgrade steadybit-shopping-demo \
    --install \
    --wait \
    --timeout 5m0s \
    --create-namespace \
    --namespace steadybit-shopping-demo \
    --set gateway.service.type=ClusterIP \
    steadybit-shopping-demo/steadybit-shopping-demo

Verify that all Shopping Demo pods are running:

kubectl get pods --namespace steadybit-shopping-demo

You will see the following result, all pods are ready if you can see the status Running:

NAME                                  READY   STATUS    RESTARTS   AGE
fashion-bestseller-79b9698f88-557vt   1/1     Running   0          11s
gateway-7fc74f7f9b-tshzg              1/1     Running   0          11s
hot-deals-75cb898ff7-wrnxc            1/1     Running   0          10s
postgres-68f9db56cc-wxxth             1/1     Running   0          10s
toys-bestseller-6df5bd864f-kzrt9      1/1     Running   0          11s
orders-dcf644b8-g277b                 1/1     Pending   0          10s
inventory-7895d47cb7-sfdqb            1/1     Pending   0          10s
activemq-6dd55b4b7-wqmk6              1/1     Running   0          11s

You can do a local port forward to your minikube to open the gateway service via your browser:

kubectl port-forward deployment/gateway 8080:8080 --namespace steadybit-shopping-demo

Visit http://127.0.01:8080/products in your browser to retrieve the aggregated list of all products or just use curl:

curl http://127.0.01:8080/products

The result is an aggregated list of all products of the services toys, hot-deals and fashion:

{
  "fashionResponse": {
    "responseType": "REMOTE_SERVICE",
    "products": [
      {
        "id": "e9f0bec4-989c-4b9f-8bf9-334622e915ad",
        "name": "Bob Mailor Slim Jeans",
        "category": "FASHION"
      },
      {
        "id": "b110185b-d808-4104-b605-08a90b1248ce",
        "name": "Lewi's Jeanshose 511 Slim Fit",
        "category": "FASHION"
      },
      {
        "id": "222d7084-3cc7-43c3-890f-4598aa44eb2f",
        "name": "Urban Classics Shirt Shaped Long Tee",
        "category": "FASHION"
      }
    ]
  },
  "toysResponse": {
    "responseType": "REMOTE_SERVICE",
    "products": [
      ...
    ]
  },
  "hotDealsResponse": {
    "responseType": "REMOTE_SERVICE",
    "products": [
      ...
    ]
  },
  "duration": 112,
  "statusFashion": "REMOTE_SERVICE",
  "statusToys": "REMOTE_SERVICE",
  "statusHotDeals": "REMOTE_SERVICE"
}

Step 2b) Deploy on AWS EKS

Prerequisites

Create your AWS Elastic Kubernetes Service (AWS EKS) cluster and nodes

Verfiy your AWS CLI configuration by running:

aws --version

Your output should be similiar to:

aws-cli/2.0.44 Python/3.8.5 Darwin/19.6.0 source/x86_64

From a terminal, run:

eksctl create cluster \
--name steadybit-demo-cluster \
--region us-west-2

You can access your cluster with:

kubectl get nodes

Your output should be look like:

NAME                                           STATUS   ROLES    AGE    VERSION
ip-192-168-53-195.us-west-2.compute.internal   Ready    <none>   113s   v1.17.12-eks-7684af
ip-192-168-68-23.us-west-2.compute.internal    Ready    <none>   118s   v1.17.12-eks-7684af

Deploy the Shopping Demo

Now we use kubectl to deploy the demo by running the following command:

helm repo add steadybit-shopping-demo https://steadybit.github.io/shopping-demo
helm repo update
helm upgrade steadybit-shopping-demo \
    --install \
    --wait \
    --timeout 5m0s \
    --create-namespace \
    --namespace steadybit-shopping-demo \
    -f <path-to-your-optional-values.yaml> \
    steadybit-shopping-demo/steadybit-shopping-demo

Maybe you need to edit some ingress hosts names in your own values.yaml file.

Verify that all Shopping Demo pods are running:

kubectl get pods --namespace steadybit-shopping-demo

You will see the following result, all pods are ready if you can see the status Running:

NAME                                  READY   STATUS    RESTARTS   AGE
fashion-bestseller-79b9698f88-557vt   1/1     Running   0          11s
gateway-7fc74f7f9b-tshzg              1/1     Running   0          11s
hot-deals-75cb898ff7-wrnxc            1/1     Running   0          10s
postgres-68f9db56cc-wxxth             1/1     Running   0          10s
toys-bestseller-6df5bd864f-kzrt9      1/1     Running   0          11s
orders-dcf644b8-g277b                 1/1     Pending   0          10s
inventory-7895d47cb7-sfdqb            1/1     Pending   0          10s
activemq-6dd55b4b7-wqmk6              1/1     Running   0          11s

With the following command you can now determine the external IP and port to access the gateway service:

kubectl get svc -n steadybit-shopping-demo

Example response:

NAME                 TYPE           CLUSTER-IP       EXTERNAL-IP   PORT(S)          AGE
fashion-bestseller   NodePort       -------------    <none>        ----:-----/---   ---
gateway              LoadBalancer   10.98.173.27     127.0.0.1     80:30131/TCP     3h15m
hot-deals            NodePort       -------------    <none>        ----:-----/---   ---
product-db           NodePort       -------------    <none>        ----:-----/---   ---
toys-bestseller      NodePort       -------------    <none>        ----:-----/---   ---
orders               NodePort       -------------    <none>        ----:-----/---   ---
inventory            NodePort       -------------    <none>        ----:-----/---   ---
activemq             NodePort       -------------    <none>        ----:-----/---   ---

Visit http://{EXTERNAL-IP}:{PORT}/products in your browser to retrieve the aggregated list of all products or just use curl:

curl http://{EXTERNAL-IP}:{PORT}/products

The result is an aggregated list of all products of the services toys, hot-deals and fashion:

{
  "fashionResponse": {
    "responseType": "REMOTE_SERVICE",
    "products": [
      {
        "id": "e9f0bec4-989c-4b9f-8bf9-334622e915ad",
        "name": "Bob Mailor Slim Jeans",
        "category": "FASHION"
      },
      {
        "id": "b110185b-d808-4104-b605-08a90b1248ce",
        "name": "Lewi's Jeanshose 511 Slim Fit",
        "category": "FASHION"
      },
      {
        "id": "222d7084-3cc7-43c3-890f-4598aa44eb2f",
        "name": "Urban Classics Shirt Shaped Long Tee",
        "category": "FASHION"
      }
    ]
  },
  "toysResponse": {
    "responseType": "REMOTE_SERVICE",
    "products": [
      ...
    ]
  },
  "hotDealsResponse": {
    "responseType": "REMOTE_SERVICE",
    "products": [
      ...
    ]
  },
  "duration": 112,
  "statusFashion": "REMOTE_SERVICE",
  "statusToys": "REMOTE_SERVICE",
  "statusHotDeals": "REMOTE_SERVICE"
}

Next Steps

If you want to learn more about our demo, please take a look at our GitHub repository:

The example application is already pre-configured to be deployed into a Kubernetes cluster. You can choose whether to deploy it into or .

, also known as k8s, is an open source system for automating the deployment, scaling, and management of containerized applications. You can use to set up a local Kubernetes cluster on macOS, Linux or Windows. As an alternative choose to set up a Kubernetes cluster in the cloud.

Make sure to afterwards into the same environment.

You have a running installation

Create your Amazon EKS cluster and containing 2 nodes by running the following command. More details are available at

Now, make sure to into the same environment (minikube or AWS EKS).

https://github.com/steadybit/shopping-demo
Kubernetes
minikube
AWS EKS
install the agents
minikube
AWS account
AWS Command Line Interface
AWS eksctl
AWS documentation
install the agents
a) local minikube installation
b) AWS EKS
Shopping Demo
on our website
Steadybit SaaS platform
Kubernetes kubectl
Helm - The package manager for Kubernetes
Step 1 - Check out example application
Step 2 - Deploy the example application
a) on Minikube
b) on AWS EKS
shopping-demo-app