My random thoughts on two things to keep in mind before you get into a legacy modernization effort. One is to “know what you are getting into” and the other is “have patience”.
Author Archives: Mathew
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.
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.
Mono’s Journey from monolith to microservices
Once upon a time there lived a monolith application named Mono (creative ah!).
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?
Container Native Serverless platform – fnProject
On a mission to run as many open source serverless/FaaS frameworks. Looking for ease of use on a local development machine (no cloud). Starting with fnproject first.
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! 🙂
Hello World with a basic Kafka Producer and Consumer
Hello World with a basic Kafka Producer and Consumer. It is assumed that you know Kafka terminology. There is a lot to learn about Kafka, but this starter is as simple as it can get with Zookeeper, Kafka and Java based producer/consumer.
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.
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.