Posts

Showing posts from January, 2021

Architecting Kubernetes for High Availability, Fault Tolerance and Business Continuity

Image
Kubernetes can take care of many things, and can solve many problems except the ones it doesn't know about such as region failure and  human errors. In this post I want to compare and contrast the differences between Single Cluster setup spread across multi Availability Zones that is very common vs Multi Cluster Setup Spread across different Region . Hopefully by then end of this post you have some clue about when to use which setup no matter which cloud provider you are using; be it AWS, Azure, or GCP. Single Cluster Setup: In this Setup the Kubernetes nodes and their storages are distributed across multiple Availability Zones (AZ). This model ensures the nodes are physically separated from each other and the outage in one of the AZ will not cause the entire cluster to go out of service. At the same time the communication between each node is via private connection and does not route over internet no matter which cloud provider you use. I took the following image wh...

Sync vs Async Interprocess communication in Microservices Acthictecture. When to use which?

Image
I spend the first half of 2020 researching about how services should communication with each other in Microservices architecture. This was a topic that I was and still genuinely interested   and curious about and turn it into my Master thesis research.  I then turn my work into a scientific paper and got it published at  the "International Workshop on Quantitative Approaches to Software Quality, 2020 " which you can read it here for free. But I wanted to write this blog post to explain what I did in a much more practical and less academic terms. So here we go: What is Interprocess communication? In simple term, IPC is the mechanism for two independent processes to communicate with each other in order to exchange information. Take a look at above diagram that I found here as an example, IPC is about answering how the RED service, can communicate with the Green service. What protocol it uses? does it use REST API over HTTP or some other protocol.   and what messag...