• Stars
    star
    889
  • Rank 49,292 (Top 2 %)
  • Language
    Java
  • License
    Apache License 2.0
  • Created about 7 years ago
  • Updated 14 days ago

Reviews

There are no reviews yet. Be the first to send feedback to the community and the maintainers!

Repository Details

Chaos Monkey for Spring Boot

Apache License 2 Build Status codecov Maven Central Contributor Covenant

Open in Gitpod VS Code DevContainer

Chaos Monkey for Spring Boot

inspired by Chaos Engineering at Netflix

This project provides a Chaos Monkey for Spring Boot applications and will try to attack your running Spring Boot App.

Everything from getting started to advanced usage is explained in the Documentation for Chaos Monkey for Spring Boot

Introduction

If you're not familiar with the principles of chaos engineering yet, check out this blog post and enter the world of chaos engineering.

Chaos Engineering – withstanding turbulent conditions in production

Get familiar with the Chaos Monkey for Spring Boot in the following video, available on YouTube:

Chaos Monkey for Spring Boot

What is the goal of Chaos Monkey?

Inspired by PRINCIPLES OF CHAOS ENGINEERING, with a focus on Spring Boot, Chaos Monkey wants to test applications better and especially during operation.

After writing many unit and integration tests, a code coverage from 70% to 80%, this unpleasant feeling remains, how our baby behaves in production?

Many questions remain unanswered:

  • Will our fallbacks work?
  • How does the application behave with network latency?
  • What if one of our services breaks down?
  • Service Discovery works, but is our Client-Side-Load-Balancing also working?

As you can see, there are many more questions and open topics you have to deal with.

That was the start of Chaos Monkey for Spring Boot.

How does it work?

If Spring Boot Chaos Monkey is on your classpath and activated with profile name chaos-monkey, it will automatically hook into your application.

Now you can activate watchers, which look for classes to assault. There are also runtime assaults, which attack your whole application.

Be social and communicative!

If you start to implement Chaos Engineering at your company, then you must be a very social and communicative person. Why? Because you will get to know many of your colleagues personally in a very short time when your chaos experiments strike.

Check your resilience

Are your services already resilient and can handle failures? Don´t start a chaos experiment if not!

Implement active application monitoring

Check your monitoring and check if you can see the overall state of your system. There are many great tools out there to get a pleasant feeling about your entire system.

Define steady states

Define a metric to check a steady state of your service and of course your entire system. Start small with a service that is not critical.

Do not start in production

Of course, you can start in production, but keep in mind...

The best place on earth is...production!
Josh Long

...so let's keep production as the best place on earth and look for our first experiences on another stage. If all goes well, and you're confident, run it in production.

Documentation

Documentation

Help

We are using GitHub issues to track bugs, improvements and new features (for more information see Contributions). If you have a general question on how to use Chaos Monkey for Spring Boot, please ask on Stack Overflow using the tag #spring-boot-chaos-monkey.

Contributions

Chaos Monkey is open source and welcomes contributions from everyone. The contribution guideline is where you should begin in order to best understand how to contribute to this project.

Releases

Releases

More Repositories

1

spring-boot-admin

Admin UI for administration of spring boot applications
Java
12,142
star
2

helm-charts

A curated set of Helm charts brought to you by codecentric
Mustache
592
star
3

spring-boot-starter-batch-web

Java
263
star
4

gopass-ui

gopass CLI + UI = visual cross-platform password manager for teams
TypeScript
236
star
5

hikaku

A library that tests if the implementation of a REST-API meets its specification.
Kotlin
194
star
6

cxf-spring-boot-starter

Enterprise & production ready SOAP webservices powered by Spring Boot & Apache CXF
Java
138
star
7

javafxsvg

Java
132
star
8

NSMenuFX

Java
131
star
9

spring-batch-javaconfig

Java
74
star
10

computer-vision-drone

JavaScript
67
star
11

androidtestktx

Kotlin DSL for Espresso and UIAutomator.
Kotlin
66
star
12

merge-request-notifier

This app shows your merge requests grouped by projects and WIP status. It is accessible from the system tray.
TypeScript
48
star
13

net_automatic_interface

.Net Source Generator for Automatic Interfaces
C#
46
star
14

spring-samples

Java
43
star
15

aws-codepipelines-dashboard

Java
33
star
16

springboot-maven3-centos

S2I builder image for building and running maven based Spring Boot applications
Shell
30
star
17

reedelk-runtime

Reedelk Runtime Platform Community Edition
Java
27
star
18

jenkins-scripts

A repository containing useful scripts for the jenkins script console
Groovy
27
star
19

java8-examples

Some examples for the features introduced in Java 8
Java
25
star
20

kubebuilder-starwars-example

Demo example for a kubernetes custom CRD build with kubebuilder
Go
25
star
21

cluster-overprovisioner

Helm chart, that enables scheduled scaling of a target resource, intended to be add overprovisioning to an autoscaling k8s cluster.
Smarty
24
star
22

gatling-jdbc

JDBC support for Gatling
Scala
23
star
23

jmeter-graph-maven-plugin

ein Maven-Plugin mit dem man aus JMeter *.jtl Dateien Graphen zeichnen lassen kann
Java
22
star
24

example-google-sheet-as-database

TypeScript
22
star
25

spring-boot-monitoring-sample

Java
22
star
26

springboot-sample-app

Minimal Spring Boot sample app
Java
21
star
27

codecentric.AI-bootcamp

Kurs Inhalte für das codecentric.AI Bootcamp.
Jupyter Notebook
21
star
28

habitcentric

A microservice demo application showcasing cloud-native technologies
Java
20
star
29

cxf-spring-boot-starter-maven-plugin

Maven plugin complementing cxf-spring-boot-starter
Java
20
star
30

event-based-shopping-system

Event-Based-Shopping-System using Spring Boot and Apache Kafka (based on Movie Database @TobiasFlohre)
Java
18
star
31

elasticsearch-shield-kerberos-realm

Kerberos/SPNEGO custom realm for Elasticsearch Shield 2.0
Java
16
star
32

spa

Simple, O/RM inspired persistence library for Android
Java
16
star
33

apple-swift-playground

Swift
15
star
34

serverless-plugin-cloudwatch-dashboard

JavaScript
14
star
35

single-page-application-server

A base image for single page applications.
Java
14
star
36

job-dsl-promotions-plugin

Extension point for "JobDSL Plugin" that extends it with "Promoted Builds Plugin" features
Java
14
star
37

jenkins-deployment-dashboard-plugin

Jenkins plugin for a deployment dashboard
Java
14
star
38

kibconfig

A small library to sync Kibana config objects (dashboards, visuals, searches, etc...) with a local directory
JavaScript
13
star
39

conference-app

Hackergarden conference app
Java
13
star
40

DevOpsTraining

Python
12
star
41

dotnet_gitlab_code_quality

Convert .Net code quality reports into gitlab code quality reports
C#
12
star
42

soccer-prediction-2014

R
12
star
43

codecentric-cv-latex

LaTeX Vorlage für die intern genutzten CVs
TeX
12
star
44

android-timer

Java
12
star
45

codecentric-reveal-template

Template for reveal.js codecentric presentations
JavaScript
11
star
46

cleware-build-traffic-light-jenkins-connector

Connects the Cleware GmbH's traffic light to your Jenkins builds
Shell
11
star
47

spring-boot-starter-admin-client

Starter JAR for enabling registration of applications at the spring-boot-admin
Java
11
star
48

from-keras-to-production-workshop

HTML
10
star
49

event-processing-sample

Examples for the article: Event-driven Microservices & Event Processing
Java
10
star
50

web-clip

A Chrome extension to extract structured data from any web page and store it to a Solid Pod.
TypeScript
9
star
51

softwerkerkonf

Landing Page for SoftwerkerKonf 2020
Shell
8
star
52

elk_docker

ELK (Elasticsearch, Logstash, Kibana) as Docker Container
Shell
8
star
53

movie-database-node

JavaScript
8
star
54

zucchini

Java
8
star
55

reedelk-module-scheduler

Reedelk Scheduler module
Java
7
star
56

kong-plugin-reedelk-transformer

The Reedelk transformer plugin allows to transform the upstream request body or downstream response body by invoking a Reedelk REST flow before hitting the upstream server or before sending the response downstream back to the client.
Lua
7
star
57

TDDTrainingApplication

Training application for our TDD course
Java
7
star
58

reedelk-module-mail

Reedelk Mail module (SMTP/POP3/IMAP)
Java
6
star
59

reedelk-module-csv

Reedelk CSV module
Java
6
star
60

JavaScriptBasicsES2015

training slides and exercises for the JSBasics Training
JavaScript
6
star
61

reedelk-module-json

Reedelk JSON module
Java
6
star
62

extreme-startup-implementations

Implementations for the Extreme Startup game
Clojure
6
star
63

reedelk-modules

Maven pom file grouping all the Reedelk modules
6
star
64

reedelk-module-core

Reedelk Core module
Java
6
star
65

reedelk-module-rabbitmq

Reedelk RabbitMQ module
Java
6
star
66

reedelk-module-mongodb

Reedelk MongoDB module
Java
6
star
67

reedelk-module-xml

Reedelk XML module
Java
6
star
68

dotnet_gitlab_example

Example how to use dotnet with Gitlab
C#
6
star
69

reedelk-module-rest

Reedelk REST module
Java
6
star
70

reedelk-module-database

Reedelk JDBC Database module
Java
6
star
71

reedelk-module-file

Reedelk File module
Java
6
star
72

elasticsearch-fileimport

Import JSON files directly as documents into Elasticsearch by using the ES transport protocol (not HTTP/REST)
Java
5
star
73

reedelk-module-ftp

Reedelk FTP module
Java
5
star
74

reedelk-module-google-drive-v3

Reedelk Google Drive module
Java
5
star
75

check-staging-properties-maven-plugin

Maven-plugin for checking the equality of several staging properties files
Java
5
star
76

from-jupyter-to-production-workshop

Workshop for production-ready data science projects.
Jupyter Notebook
5
star
77

profiler-schulung

Code zu den Ãœbungen unserer Java Profiler Schulung
Java
5
star
78

log4j-logstash

A vagrant Multi Machine Installation to test log4j-logstash integration
Shell
5
star
79

smack-workshop-apps

Scala
5
star
80

jira-jenkins-plugin

The jira-jenkins-plugin integrates all necessary information from the continuous integration server Hudson into the Jira Dashboard. This way, everybody can check at a glance the state and health of your build.
Java
5
star
81

spring-school

Java
4
star
82

esp32-lora-temperature-sensor

ESP32 based LoRa transmitter that uses a DHT22 sensor to measure temperature and transmit the measurement via LoRa.
C++
4
star
83

tekton-catalog

Tekton Tasks with extended functionality compared to https://hub.tekton.dev
4
star
84

Jenkins-AppDynamics-Plugin

Jenkins plugin for AppDynamics integration, i.e. for getting performance measurements during acceptance performance test.
Java
4
star
85

spring-boot-admin-runtime-playground

Spring Boot Admin example projects including infrastructure for discovery use cases
Java
4
star
86

azure-sphere-samples

Azure Sphere MT3620 samples
C
3
star
87

hotwire-with-quarkus

Simple Todo application based an Quarkus, Qute and Hotwire
Java
3
star
88

accelerate-kickstarter-aws

Kickstarts a cloud environment with Terraform. Builds and deploys a Kotlin-based Spring Boot demo app to Amazon ECS (Fargate) using AWS CI/CD services (CodeBuild, CodeDeploy, etc.)
HCL
3
star
89

maximum-entropy

Python
3
star
90

junit-5-bdd

Java
3
star
91

spring-boot-api-first

Example project using Spring Boot and OpenAPI Processor
Java
3
star
92

reedelk-examples

Reedelk Flow Examples
Shell
3
star
93

event-driven-microservices-platform-config

3
star
94

codecentric.AI-docker

Automatic docker build for codecentric.AI bootcamp course.
Python
3
star
95

from-keras-to-production-baseimage

Base image for the workshop "From Keras TensorFlow-Models to production"
Python
3
star
96

certspotter-sd

certspotter api based prometheus service discovery
Go
3
star
97

spring-hierarchical

Spring HierarchicalThreadScope and CircularAutowired annotation to support better dependency injection for component based UI frameworks
Java
3
star
98

maschinen_meister

IoT for the Masses - Maschinen Meister is a MQTT Proxy. Meaning it adapts an outside MQTT world to an inside functional world
Java
3
star
99

edmp-sample-app

Java
2
star
100

clojure-dev-friday

Clojure
2
star