Metrics with Spring Boot, Prometheus and Grafana

Capturing metrics from your system is critical to understanding its internal behavior and to tune its performance. Without this you are operating in the blind. In this post we will go through how you can gather metrics from a Spring Boot application using Prometheus, Grafana and Micrometer.

Continue reading

Running Istio on Minikube to implement traffic routing

There are multiple strategies you could use to introduce new service versions to an existing product. In this article I will go over how you can implement Canary deployments using Istio in a k82 cluster. The same approach can be used to implement Blue/Green deployments too.

Continue reading

Digital Transformation

You probably have heard leadership talk about Digital Transformation in meetings, town halls and blogs. Industry pundits seem to talk/write about it; often using it to rank which companies are competing at the topmost level in their industry. Often though there is  confusion among the rank and file employees about this whole “Digital” thing. Is it the latest buzzword that executives are in love with (probably true to some extent)? Is there anything behind it or just a lot of hot air? Who are all those high priced management consultants that show up to tell us about Digital Transformation, without explaining what it is?

Continue reading

Having some fun with Voltswagen to get tests to pass always :)

I will begin by saying ” DON’T EVER DO THIS IN THE REAL WORLD”. https://github.com/auchenberg/volkswagen will detect if your build is running inside a CI tool and then force all tests to pass; even if they fail. Now you know why I said “DON’T EVER DO THIS IN THE REAL WORLD”. Hey just having some fun … code quality purists you have been warned not to read further! 🙂

Continue reading

AWS Beanstalk (running Spring Boot jar) and Log aggregation with ElasticSearch & Filebeat

Most serious applications (and distributed microservices style architectures) will require to provide a log aggregation & analysis feature to its dev & operations teams. Reviewing log entires from 10s or 100s of server instances is not something to take lightly. Whether you choose to use a commercial product or an open source offering – that does not matter; just make sure you have one available.

Recently I have been deploying applications using AWS Beanstalk. You can definitely configure CloudWatch Logs to send log streams over to AWS ElasticSearch service. Log messages can be routed to a Lambda function which would break the log messages into individual attributes suitable for indexing. I wanted to try a slightly different route where I depend less on CloudWatch Logs and more on open source tools. Enter filebeat on Beanstalk.

Continue reading

forge for fast build/deploy for kubernetes (with minikube)

Just came across a nice dev tool to build and deploy Docker’ized applications. A developer may want to independently build/deploy to a local docker container or another Kubernetes cluster vs. waiting for a remote CI/CD process to deploy to a dev environment. This involves some repetitive tasks such as building the binary, packaging into a Docker container, pushing to a Docker registry and all the way to deploying to a running container. If you run this often it can be a time suck for developers. forge.sh takes away those repetitive steps and lets you build/deploy locally or to another cluster.

Continue reading