Microservices on Kubernetes

Kubernetes is an open source container-orchestration system for automating deployments, scaling and management of containerized applications. In this tutorial, you will learn how to get started with Microservices on Kubernetes. I will cover the below topics in details — How… Read More ›

Monolith to Microservices using Strangler Pattern

Transforming your existing legacy monolithic application into cloud native microservice is a nice end goal to have, but the journey is challenging and needs to be well architected and planned. In this article, we will discuss about a design pattern called as ‘Strangler Pattern’ which can assist you in this journey.

Breaking the Monolithic Database in your Microservices Architecture

Handling database changes in your journey from Monolith to Microservice is challenging. In this article, we will understand the problems with Monolithic Database Design and how you can handle your data in a microservice architecture.

Recent Posts

  • SQL Saturday Birmingham 2019

    SQL Saturday Birmingham 2019 was held at the Brock School of Business – Cooney Hall – Samford University on 27th July. The event was a huge success. We had close to 200 folks registered to the event and had a final turnaround of around 150.

  • SQL Saturday Pensacola 2019

    Just back from SQL Saturday Pensacola 2019, and I would say it was a fun event like always. This was my 3rd consecutive year speaking at the event and I really look forward to this event every year because the Organizing Team including Ed Watson, Karla Landrum, and others does a great job. Pensacola is also the summer holiday gateway for me so I do enjoy this trip.

  • Speaking at O’Reilly Software Architecture Conference 2019

    I am super excited to be presenting at the O’Reilly Software Architecture 2019, San Jose today.  Please join me at 3 PM in Room 210 D/H to learn about building a scalable microservice architecture with Envoy, Kubernetes, and Istio.

  • Smart Pipes and Smart Endpoints with Service Mesh

    Smart endpoints and Dumb Pipes has been one of the design principles for microservices during the last decade. Responsibility of the network is to just transfer messages between Source to Destination. Responsibility of microservices is to handle Business logic, transformation, validations, and process the messages.

  • Visualizing the Istio Service Mesh using Kiali

    Kiali lets you monitor and visualize the Istio Service Mesh from within a single user interface. Kiali lets you view configurations, monitor traffic flow between services and analyze traces. It provides visibility into features likes service health, request routing, circuit breakers, request rate, traffic flow, error rate and more.

  • Chaos Testing your Microservices with Istio

    Chaos Testing is a practice to intentionally introduce failures in your system to test the resiliency and recovery of your microservices architecture. The Mean Time to Recovery(MTTR) needs to be minimized in the current modern day architectures. Hence it is beneficial to validate different failure scenarios ahead of time and take necessary action items to stabilize the system and make it more resilient.

  • Retry Design Pattern with Istio

    Retry Design Pattern states that you can retry a connection automatically which has failed earlier due to a network exception. Istio provides a transparent approach of handling application retires in case of such intermittent network errors.

  • Handling Service Timeouts using Istio

    When you encounter latency with your service communication and you are not sure what the root cause is, it is a preferred approach to just not wait for the response. Implementing a timeout strategy between your service to service communication over the network is critical. Istio makes it pretty simple to implement this functionality within your service mesh.

  • Resilient Microservices with Istio Circuit Breaker

    Circuit Breaker is a design pattern to create resilient microservices by limiting the impact of service failures and latencies. One of the primary goals of the Circuit Breaker pattern is to handle failures gracefully so that no cascading failures occur. In a Microservice landscape, failing fast is critical. Circuit Breaker does a great job in protecting the service from a heavy load.

  • Istio Circuit Breaker with Outlier Detection

    Outlier Detection is an Istio Resiliency strategy to detect unusual host behavior and evict the unhealthy hosts from the set of load balanced healthy hosts inside a cluster. It automatically tracks the status of each individual host and checks metrics like consecutive errors and latency associated with service calls. If it finds outliers, it will automatically evict them.

  • Cloud Native Monitoring with Prometheus

    Prometheus is an open source metrics-based monitoring and alerting system. In 2016 the Prometheus project became the second member of the Cloud Native Computing Foundation, after Kubernetes. It has a powerful query language(PromQL) with a multidimensional data model suited to store time series data.

  • Microservices Journey from Netflix OSS to Istio Service Mesh

    Netflix OSS is a set of libraries & framework that Netflix open sourced to solve the issues with designing distributed systems at scale. In this blog post, you will understand the issues with the Netflix OSS libraries and why organizations are adapting the Sidecar Design pattern and Service Mesh technologies.

  • Istio Service Mesh Data Plane

    The Istio Data Plane is primarily comprised of the Envoy proxies which are attached as dedicated sidecars to each application instance. Istio Data Plane intercepts all incoming(Ingress) and outgoing(Egress) network traffic. This and gives us the ability to apply all the features at this layer, without polluting the application code.

  • Istio Service Mesh Control Plane

    Istio is a very popular Service Mesh Framework which uses Lyft’s Envoy as the sidecar proxy. Service Mesh gives you the freedom of not having to worry about the service to service communication as part of your application code. Instead of bloating your microservice with similar functionalities, you can let the Service Mesh handle that complexity for you.

  • Eight Fallacies of Distributed Computing

    The Eight Fallacies of Distributed Computing are a set of assumptions that developers make while designing Distributed Systems which might backfire and cause additional work and system redesign in the long run. Designing Distributed Systems is challenging and being aware of these eight fallacies will help you in architecting your systems better.

  • Istio 1.1 – The Enterprise Ready Service Mesh

    Yesterday Istio 1.1 was released which primary focuses on addressing the performance and scalability issues which organizations bumped into running large clusters in Production environment. There are a number of improvements to both the Data Plane & Control Plane to make it more efficient and also significant improvements to the overall product.

  • Speaking at SQL Saturday Jacksonville 2019

    I am delighted to be speaking at SQL Saturday Jacksonville 2019. This will be my first time speaking at this event.

  • CNCF Cloud Native Landscape and Trail Map

    The Cloud Native Ecosystem is constantly evolving and continues to grow at a fast pace. The usage of Cloud Native Technologies in Production has tremendously increased during the recent past.

  • My Favorite Feature in Azure Data Studio

    Azure Data Studio provides a lot of Extensibility options and its Extension Model is actually my favorite feature of this tool. There is no need of huge software installs and in the process getting tools/functionalities which you don’t require. The base install of Azure Data Studio is very small & lightweight. With Azure Data Studio you can customize your environment with the tooling you need. Extensions provide an easy way to add more functionality to the installation.

  • Flyway Error: Found non-empty schema(s) without schema history table

    We bumped into a Flyway error while trying to deploy new schema changes against an existing database. In this blog, I will explain how to identify and resolve this Flyway error so that you can successfully deploy your schema changes through an automated pipeline.

  • Speaking at CodeStock 2019

    I am super excited to be presenting at CodeStock 2019. This will be my 3rd year speaking at this awesome conference.

  • Friend of Redgate 2019

    I am happy and honored to be a Friend of Redgate 2019 — my 2nd year in a row. The Friends of Redgate program is an exclusive group of influential and active community members, such as popular blog writers, speakers, consultants, as well as Microsoft Data Platform MVPs.

  • PASS Summit 2018 Session Recording

    One of the benefits of being a PASS Summit Speaker was that PASS provided us with the exclusive download version of the PASS Summit 2018 session recordings.

  • GitHub Pull Requests for Visual Studio Code

    Few months back, Microsoft acquired GitHub and we expected to see some interesting collaboration following the acquisition. It was not a long wait and we saw a number of announcements made by Microsoft recently which includes its collaboration with GitHub…. Read More ›

  • Speaking at SteelCity SQL Meeting on Azure DevOps

    I will be presenting on Azure DevOps at the SteelCity SQL User Group September Meeting tonight. To all the user community in Birmingham please RSVP using the Meetup link below, so that we can plan the logistics accordingly.

  • Simplifying Microservice Architecture with Envoy and Istio

    Microservices are complex and building a scalable and resilient Microservice architecture is challenging. By using Kubernetes, Envoy and Istio you can reduce the complexity associated with your services.

  • SonarQube – Issues with Cyclomatic Complexity Metrics

    We have been using SonarQube for inspecting code quality of our applications for a long time now. We have integrated SonarQube with our CI/CD Pipeline and configured Quality Gates — hence with every code check in we perform a static code analysis of the changes. This provides developers an early feedback of their code changes. If the code changes does not meet quality standards, the code check-in is rejected.

  • Kubernetes Architecture

     If you are building cloud native applications, Kubernetes is a game changer in this space and lets you build and deploy reliable, scalable and highly available distributed systems. In this blog, we will discuss about the Kubernetes architecture and look at the various components of the Master and Worker Nodes.

  • Making your Microservices Resilient and Fault Tolerant

    While architecting distributed cloud applications, you should assume that failures will happen and design your applications for resiliency. A Microservice ecosystem is going to fail at some point or the other and hence you need to learn embracing failures.

  • Speaking at IT/Dev Connections, Dallas 2018

    One thing which sets IT/Dev Connections apart is the immense focus on deep-dive technical learning.  I am honored and super excited to have been selected to speak at IT/Dev Connections 2018.

  • Istio 1.0 – The Production Ready Service Mesh

    Istio 1.0 was released today – indicating that all the core features are now ready for Production use. The growth of Istio has been tremendous over the past few months and it has seen wider adoption from the developer community.

  • Sidecar Design Pattern in your Microservices Ecosystem

    The sidecar design pattern is gaining popularity and wider adoption within the community. Building a Microservice architecture that is highly scalable, resilient, secure and observable is challenging. The evolution of Service Mesh architecture has been a game changer.

  • Crash Loop Detection in Kubernetes

    In this blog, I will explain how to perform Crash Loop Detection in Kubernetes and ensure that your deployment is stable before you start routing live traffic to your new service version.

  • The Rise of Service Mesh Architecture

    In this blog, I will explain the concept of Service Mesh, why it is needed for your cloud native applications, the reason of its popularity & incredible growth/adoption within the community. Microservices have taken the software industry by storm and… Read More ›

  • End to End Testing in Kubernetes – Part II

    In this blog post, I will show you how to write End to End Tests in Kubernetes to verify the various objects in a Kubernetes cluster like Pods, Services, Nodes etc. I would highly recommend you to read my previous blog about End to End Testing in Kubernetes for context setting prior to looking at the below set of tests.

  • End to End Testing in Kubernetes

    In this blog post, I will show you how to write a series of end to end tests which can validate the Kubernetes cluster health and provide immediate feedback. These tests provides a good level of abstraction and will run fine irrespective of where you are deploying your Kubernetes cluster — Azure or AWS.

  • Speaking at SQL Saturday Pensacola 2018

    It’s almost time for SQL Saturday Pensacola and I am excited to be speaking at this fun filled event this weekend. I had lot of fun last year during this event & I am looking forward to have an awesome time this year too.

  • Speaking at SQL Saturday Atlanta 2018

    I am excited to be presenting at SQL Saturday Atlanta this weekend. This will be my 2nd year speaking at this awesome conference. I am looking forward to meet lot of folks from the Tech community and have a good time with friends and SQLFamily.

  • Load Testing in Kubernetes using Siege

    In this article, I will show you how to simulate traffic to your Kubernetes cluster using a tool called Siege and then verify the increased traffic/load using Prometheus.

  • Continuous Delivery with Blue-Green Deployments

    Blue-Green Deployment is a software pattern to deploy and release your application with minimal downtime and risk. This is achieved by maintaining multiple production-ready environments at the same time – termed as Blue and Green.