Page 1
stonetowers
Standard

Distributed Load Balancing: Solution to Load Balancing of Micro-Services and Other Attached Resources

Distributed load balancing, is an approach to use load balancing on each service to connect to the attached resources. This is an approach that can be very useful for building micro-services or service oriented architecture, where you have many resources(e.g. email-service, notification, message-queue, NoSQL database) that connects each other or requires other services to complete some sort of functionality.

In today’s standards, scalability is a part of a system design. As soon as the demand of the system increases, there comes the need to increase the capacity (e.g. CPU, memory, etc). Historically most systems have been designed in a way to scale-up, or in other terms vertical scalability, meaning, adding more resources to a single server. A good example of this is database servers. Horizontal scalability, on the other hand, solves the same resource problem by adding more servers, which also being referred as scaling-out.

Continue Reading →

more
4659544550_b2f01a439e_b
Standard

On the Art of Programming

There is something magical in the computer world, you may not be the king of Asgard, Odin, but your words are law, and that law must be obeyed. Programmers, do that. It is an activity called programming. And programming is a very complicated progress that one cannot simply describe, so I took the challenge to simply describe what is programming and what sort of activity it really is.

Programming, in essence, is writing code, and to do that one must have enough skills to understand the problem that is to be solved, to analyze, to generate hypotheses, to test hypotheses, and to finally implement it. Therefore, writing code requires a lot of attention, creativity, problem-solving, reasoning, learning abstract concepts, concept definition, and many other cognitive skills.

Continue Reading →

more
vintage-clockwork-macro
Standard

On Micro-Services

A micro-service is a small, discrete, isolated, stateless, lightweight application that can be deployed separately from other services that depend on it. In this sense, the term micro-service architecture refers to an approach to structuring a single software application as a group of small services, each running in its own process and communicating with lightweight mechanisms.

Continue Reading →

more
the-monolith-monster
Standard

On Monolithic Architectures

Let’s imagine that you are a software developer and it is your first day in your new job. A fantastic product, a good company, nice people around, and hopefully, a good salary. Now, after while, reading hundred of pages documents about architecture, software design guidelines, good or bad decisions, you find out that the product, that the company has it, is a single project which has approximately 4 million lines of code. Assuming products works great, what would be your reaction?

Continue Reading →

more
Computer Production Line
Standard

On DevOps

Adam Smith, a pioneer of political economy has predicted the essence of industrialism, that is the division of labour. He argued that, businesses will be much more profitable by splitting tasks formerly accomplished by one person in a single day, into many discrete tasks carried out by multiple people over their whole careers. Which is the reason why you would hear titles such as Senior Channel Executive or Chocolate Beer Specialist. This was the fast track industrialism, you could put 100 people in a room of 1000 square meter, mark a line for everyone, define what they are going to do, and build your product line and produce the same product thousand times a day.

Continue Reading →

more