Microservices are an architectural approach to software development based on building an application as a collection of small services. Each service has its own unique and well-defined role, runs in its own process, and communicates via HTTP APIs or messaging. Each microservice can be deployed, upgraded, scaled, and restarted independently of all the sibling services in the application. They are typically orchestrated by an automated system, making it possible to have frequent updates of live applications without affecting the end users.
As a natural approach to optimizing work, we are already comfortable with the concept. Think about it: These days, your average cloud consumer — including adamantly non-technical people — easily and naturally uses multiple cloud products that are, essentially, micro-products and micro-apps. (They don’t call it “The App Store” for nothing). While an average enterprise organization uses, at minimum, a dozen different software products and integrations: one tool for logging business expenses, another for schedule tracking, another for payroll management. You get the idea.
Read more at The New Stack