Code Monkey home page Code Monkey logo

overview's Introduction

Overview

This application was built for demonstations of Dynatrace. The front-end look like this.

There are two topologies of the application

  1. Monolith - two Docker components: a frontend web UI and 1 backend services. Once monitored by Dynatrace, a multi-tier call flow will be available such as shown below.

  2. Multi-services - four Docker components: a frontend web UI and 3 backend services. Once monitored by Dynatrace, a multi-tier call flow will be available such as shown below.

How to run the application

Below are two options to deploy the application:

  • Using docker-compose. See the docker-compose sub-folder README
  • Using kubernetes. See the K8 sub-folder README

Traffic generators

Once the application is running, the Docker images from these two repos can be used to create traffic against the running application:

Problem Patterns

The dt-orders application has pre-built problems programmed within different versions that can be enabled as using a GET request to a setversion URL.

Pre-built docker images are also published to dockerhub with the problem patterns ON or OFF if that approach of deploying a new container is desired. The version is set as a Docker tag, for example: dtdemos/customer-service:2.0.0 is the customer service version 2.

Monolith App versions

Service Version Description
frontend 1 Normal behavior
backend 1 Normal behavior
backend 2 High Response time for all requests
backend 3 50% exception (http 500) for all requests

Multi-services versions

Service Version Description
frontend 1 Normal behavior
catalog-service 1 Normal behavior
customer-service 1 Normal behavior
customer-service 2 High Response time for view customer list only (/customer/list.html)
customer-service 3 High Response time for all requests
order-service 1 Normal behavior
order-service 2 50% exception (http 500) for new order line only (/order/line URL)
order-service 3 50% exception (http 500) for all requests
order-service 4 n+1 back-end calls for view order form only (/order/form.html)

Microservices - Pictures

View the Images Powerpoint in the images subfolder for pictures of these problems.

Set version while app is running

Use the version URLs below to view and set the version. The services read the provided or default environment variable and then maintain this as an internal variable that can be updated. You can use the URLs below in a browser or just make a GET request to the URL using a tool like curl.

What URL Description
View current version http://[hostname or IP]/[service name]/version Will just display a number
Set version http://[hostname or IP]/[service name]/setversion/X X = value like 1 or 2

Notes

  • [service name] is a value such as order, customer, backend
  • After setting the version - the response message will say Action was successful!.
  • Also, the version number on the DT Orders home page will reflect the new version.

Pre-built Docker Images

There is a buildpush.sh script in customer service and order service repos that will just set an ENVIRONMENT that will run the services with that version.

The version number on the DT Orders home page will reflect the service version.

The version can still be changed using the Feature Flag mentioned above.

overview's People

Contributors

robertjahn avatar

Stargazers

 avatar Mason Chen avatar

Watchers

James Cloos avatar  avatar

Recommend Projects

  • React photo React

    A declarative, efficient, and flexible JavaScript library for building user interfaces.

  • Vue.js photo Vue.js

    ๐Ÿ–– Vue.js is a progressive, incrementally-adoptable JavaScript framework for building UI on the web.

  • Typescript photo Typescript

    TypeScript is a superset of JavaScript that compiles to clean JavaScript output.

  • TensorFlow photo TensorFlow

    An Open Source Machine Learning Framework for Everyone

  • Django photo Django

    The Web framework for perfectionists with deadlines.

  • D3 photo D3

    Bring data to life with SVG, Canvas and HTML. ๐Ÿ“Š๐Ÿ“ˆ๐ŸŽ‰

Recommend Topics

  • javascript

    JavaScript (JS) is a lightweight interpreted programming language with first-class functions.

  • web

    Some thing interesting about web. New door for the world.

  • server

    A server is a program made to process requests and deliver data to clients.

  • Machine learning

    Machine learning is a way of modeling and interpreting data that allows a piece of software to respond intelligently.

  • Game

    Some thing interesting about game, make everyone happy.

Recommend Org

  • Facebook photo Facebook

    We are working to build community through open source technology. NB: members must have two-factor auth.

  • Microsoft photo Microsoft

    Open source projects and samples from Microsoft.

  • Google photo Google

    Google โค๏ธ Open Source for everyone.

  • D3 photo D3

    Data-Driven Documents codes.