• Stars
    star
    897
  • Rank 50,907 (Top 2 %)
  • Language
    Java
  • License
    Apache License 2.0
  • Created over 7 years ago
  • Updated 5 months 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,343
star
2

helm-charts

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

spring-boot-starter-batch-web

Java
264
star
4

gopass-ui

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

hikaku

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

cxf-spring-boot-starter

Enterprise & production ready SOAP webservices powered by Spring Boot & Apache CXF
Java
137
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
67
star
12

net_automatic_interface

.Net Source Generator for Automatic Interfaces
C#
60
star
13

merge-request-notifier

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

spring-samples

Java
43
star
15

aws-codepipelines-dashboard

Java
38
star
16

springboot-maven3-centos

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

cluster-overprovisioner

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

reedelk-runtime

Reedelk Runtime Platform Community Edition
Java
28
star
19

jenkins-scripts

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

java8-examples

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

kubebuilder-starwars-example

Demo example for a kubernetes custom CRD build with kubebuilder
Go
25
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

habitcentric

A microservice demo application showcasing cloud-native technologies
Java
22
star
27

springboot-sample-app

Minimal Spring Boot sample app
Java
21
star
28

codecentric.AI-bootcamp

Kurs Inhalte fรผr das codecentric.AI Bootcamp.
Jupyter Notebook
21
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

Base image and Helm chart for serving Single Page Applications (SPAs)
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

web-clip

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

codecentric-reveal-template

Template for reveal.js codecentric presentations
JavaScript
11
star
47

cleware-build-traffic-light-jenkins-connector

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

spring-boot-starter-admin-client

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

from-keras-to-production-workshop

HTML
10
star
50

event-processing-sample

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

elk_docker

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

softwerkerkonf

Landing Page for SoftwerkerKonf 2020
Shell
8
star
53

dotnet_gitlab_example

Example how to use dotnet with Gitlab
C#
8
star
54

movie-database-node

JavaScript
8
star
55

zucchini

Java
8
star
56

reedelk-module-scheduler

Reedelk Scheduler module
Java
7
star
57

TDDTrainingApplication

Training application for our TDD course
Java
7
star
58

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
59

reedelk-module-mail

Reedelk Mail module (SMTP/POP3/IMAP)
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

reedelk-module-csv

Reedelk CSV module
Java
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

extreme-startup-implementations

Implementations for the Extreme Startup game
Clojure
6
star
66

reedelk-module-mongodb

Reedelk MongoDB module
Java
6
star
67

reedelk-module-xml

Reedelk XML module
Java
6
star
68

reedelk-module-rabbitmq

Reedelk RabbitMQ module
Java
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

from-jupyter-to-production-workshop

Workshop for production-ready data science projects.
Jupyter Notebook
6
star
73

esp32-lora-temperature-sensor

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

elasticsearch-fileimport

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

reedelk-module-ftp

Reedelk FTP module
Java
5
star
76

reedelk-module-google-drive-v3

Reedelk Google Drive module
Java
5
star
77

check-staging-properties-maven-plugin

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

profiler-schulung

Code zu den รœbungen unserer Java Profiler Schulung
Java
5
star
79

log4j-logstash

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

smack-workshop-apps

Scala
5
star
81

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
82

hotwire-with-quarkus

Simple Todo application based an Quarkus, Qute and Hotwire
Java
4
star
83

spring-school

Java
4
star
84

tekton-catalog

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

Jenkins-AppDynamics-Plugin

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

spring-boot-admin-runtime-playground

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

azure-sphere-samples

Azure Sphere MT3620 samples
C
3
star
88

maximum-entropy

Python
3
star
89

junit-5-bdd

Java
3
star
90

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
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

codecentric.AI-docker

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

from-keras-to-production-baseimage

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

certspotter-sd

certspotter api based prometheus service discovery
Go
3
star
96

net_core_admin

C#
3
star
97

microsoft-entra-id-playground

This repository provides a setup to demonstrate service-to-service communication, authenticated by Microsoft Entra ID and Microsoft Identity Platform
C#
3
star
98

spring-hierarchical

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

event-driven-microservices-platform-config

3
star
100

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