"Universal law is for lackeys. Context is for kings." The best practices are the ones that make sense for you. Embracing DevOps culture is not a binary decision. This thinking often leads to inaction. Should we use distributed tracing? Should there be 100% unit test coverage? Should we use Infrastructure-As-Code?
Continuously Deploying A Distributed Monolith
Nov 19, 2021
Microservices are not easy. We start with hopes of independent scaling, better resource utilisation, independent teams working on individual services. But if not carefully handled, we often end up (sometimes not even realising) with a complex distributed monolith that requires complex and error prone orchestration everyday, eventually slowing us down
Think Again Before Migrating To Kubernetes
Oct 7, 2021
Kubernetes has really gained mindshare with technology teams. There is a strong interest and desire in teams to migrate to Kubernetes and other new tech in the cloud-native ecosystem. However the journey to migrate to a cloud-native stack is complex and long and has a lot of hidden costs. A
Understanding Non-Blocking I/O
July 21, 2015
As an engineer working on any web stack, you may have heard about Blocking and Non-Blocking IO. You may as well have used any framework or library that supports Non-Blocking IO. After all, they are very useful as you don’t want to block execution of other tasks while one
legend - declarative Grafana dashboards for your services with best practices
Legend builds and publishes Grafana dashboards for your services with prefilled metrics and alerts for your services. Say you got an EC2 to monitor, an S3 to monitor, a Kubernetes cronjob to monitor (or one of many other things); legend has got your back. It will do all the menial
redux-cookies-middleware - syncs Redux store state with cookies
redux-cookies-middleware is a Redux middleware which watches for changes in Redux state & stores them in browser cookie.
Builds Table of Contents for a markdown file.
sherlock - easy distributed locks for Python with a choice of backendsSherlock
When you are working with resources which are accessed by multiple services or distributed services, more than often you need some kind of locking mechanism to make it possible to access some resources at a time. Distributed Locks or Mutexes can help you with this. Sherlock provides the exact same