Explained: Microservices

In this part, we’ll discuss Microservices and Why it’s gaining popularity in the Tech Industry.

Sparsh Gupta
Nerd For Tech
4 min readDec 9, 2020

--

First, What is Microservices?

Microservices is an architectural design for building a distributed application using containers. Microservices get their name because each function of the application operates as an independent service. This architecture allows for each service to scale or update without disrupting other services in the application.

Ahh lesser techie definition required ?? Down below

So, Let’s imagine a government is trying to build or develop a Highway in their country but how the government will gonna plan for it. Well, answer they will divide the process into small processes and that’s it. they will build the highway in phases and even there will be more division for eg. material providing, testing, transportation for creating a system.

And that’s how in system design or software development for creating the big Distributed system we decompose the processes for developing. for like there will be many services running independently for supporting other services to become a proper system. like in this image given above.

Why it is better from other architecture

What sets a microservices architecture apart from more traditional, monolithic approaches is how it breaks an app down into its core functions. Each function is called a service and can be built and deployed independently, meaning individual services can function (and fail) without negatively affecting the others. This helps you to embrace the technology side of DevOps and make constant iteration and delivery (CI/CD) more seamless and achievable.

Think of your last visit to an online retailer. You might have used the site’s search bar to browse products. That search represents a service. Maybe you also saw recommendations for related products — recommendations pulled from a database of shopper preferences. That’s also a service. Did you add an item to an online cart? You guessed it, another service.

That’s Why Microservices architecture are used so much in the Tech Industry so much

Advantages

  • Developer independence: Small teams work in parallel and can iterate faster than large teams.
  • Isolation and resilience: If a component dies, you spin up another while and the rest of the application continues to function.
  • Scalability: Smaller components take up fewer resources and can be scaled to meet the increasing demand for that component only.
  • Lifecycle automation: Individual components are easier to fit into continuous delivery pipelines and complex deployment scenarios not possible with monoliths.
  • Relationship to the business: Microservice architectures are split along business domain boundaries, increasing independence and understanding across the organization.
  • Ready for market faster: Since development cycles are shortened, a microservices architecture supports more agile deployment and updates.

How can anyone start with Microservices?

Okay, First you should you know blah, blah, blah, blah, blah…….Well, you just need to know splitting up a process or decomposing the system. and just Design a system. That’s how easy is

  1. First, try to make partition in services which you want to or could be
  2. Second, Design to make run services independently form each other
  3. Try to make services contributing to a service flow
  4. Decide which building tools you will use for particular services.
  5. Services synchronization (Most Important )
  6. Building and deploying
  7. Making standards
  8. Fault Resolving
  9. Monitoring and logging
  10. Production Deploying

Challenges…

There will advantages but with some challenges also

  1. Building: You have to spend time identifying dependencies between your services. Be aware that completing one build might trigger several other builds, due to those dependencies.
  2. Testing: Integration testing, as well as end-to-end testing, can become more difficult, and more important than ever.
  3. Versioning: When you update to new versions, keep in mind that you might break backward compatibility. You can build in conditional logic to handle this, but that gets unwieldy and nasty, fast.
  4. Deployment: Yes, this is also a challenge, at least in initial set up. To make deployment easier, you must first invest in quite a lot of automation as the complexity of microservices becomes overwhelming for human deployment.
  5. Logging: With distributed systems, you need centralized logs to bring everything together. Otherwise, the scale is impossible to manage.
  6. Monitoring: It’s critical to have a centralized view of the system to pinpoint sources of problems.
  7. Debugging: Remote debugging through your local integrated development environment (IDE) isn’t an option and it won’t work across dozens or hundreds of services
  8. Connectivity: Consider service discovery, whether centralized or integrated.

Just Try to make a small step at a time, you will get after time and with some experience. All the best as you travel down this exciting microservices architecture path.

For more readings :-

And Please do Like and share my content,

--

--