Redis is a popular open-source in-memory database that supports multiple data structures like strings, hashes, lists, and sets. But similar to other tools, we can scale standalone Redis to a particular extent, but not beyond that. That’s why we have a cluster mode setup in which we can scale Redis nodes horizontally and then distribute data among those nodes.
Generally, we categorize the Redis setup into three different types:
- Leader-Follower (Replication)
In a Standalone setup, the complexity is minimal, but we cannot scale the solution if the data increases. Also, the fail-over and high availability will not be supported inside it.
Continue reading “All Redis Setup Under 7 Minutes!”
There are different application categories in the general application world, but we usually define them in two major types, i.e., stateless and stateful applications.
To have a clearer perspective, we can say that API-based applications are generally stateless, and databases are stateful. In simple words or definition, a stateless application is an application that doesn’t save or persists the client data. On the other hand, a stateful application saves data about each client and uses it for other requests.
In the older days, when we didn’t have a concept of containers and container orchestrators, there was a common way to manage both types of applications: server. For example- API and database-based applications get hosted on servers but with different configurations depending on the resource requirements.
Continue reading “Kubernetes CSI: Container Storage Interface – Part 1”
Nowadays, LoadBalancing is one of the basic needs for the application systems to perform optimally while considering some important factors like- scalability and high availability. Every cloud is providing LBaaS (LoadBalancing as a Service) as an offering so the consumers don’t have to worry about the setup and management of load-balancers by themselves.
But it’s not like that cloud is offering a single type of load balancer for every use case because for different use-case we require a different type of load balancer. For example- we have different load-balancers for Layer4 and Layer7 level traffic.
Recently AWS had a new family member in their load-balancer family and they named it “Gateway Load Balancer“. So gateway load-balancer is a load-balancing service provided by AWS to send traffic to the different appliances, applications, firewalls, etc. that are not part of the current VPC.
Continue reading “AWS Gateway LoadBalancer: A Load Balancer that we deserve”
MongoDB is a popular NoSQL database that supports large as well as small size of datasets. Just like any other database standalone setup, MongoDB is straightforward but we have to make a replicated or shared cluster of MongoDB, and there we have certain complications. Especially if we are doing these kinds of setups in orchestration tools like Kubernetes.
There is a lot of complexity in setting up MongoDB on Kubernetes that people(including me) have faced for a long time which I would like to highlight:-
Continue reading “MongoDB Setup on Kubernetes using MongoDB Operator”
- Standalone setup is pretty straightforward but for replicated and sharded clusters additional mongo configurations are required.
- In the replicated scenario, separate configurations need to be managed for the leader and follower.
- Monitoring and access management of MongoDB inside Kubernetes is a little tricky part to handle.
We are living in the microservice era, where we have a number of applications to support a business model. But our application success cannot be determined by the features only, it should have a scalable model as well. Otherwise, something like this would happen:-
When we generally talk about the scaling in the microservices, people think that applications that are running inside Kubernetes as containers. Since Kubernetes has its own method of autoscaling using the metrics-server, we don’t have to worry about the scaling of the applications inside it.
Continue reading “Autoscaling in Nomad Cluster”