Microservices has the power to bring together those old monolithic applications in one seamless efficient application that is both secure and flexible.
What are Microservices?
Microservices is an approach to software architecture that builds a large, complex application from multiple small components that each perform a single function, such as authentication, notification, or payment processing. Each microservice is a distinct unit within the software development project, with its own codebase, infrastructure, and database. The microservices work together, communicating through web APIs or messaging queues to respond to incoming events.
Videos on Microservices
Microservices take a complex monolithic application and turn it into a set of services, which are faster to develop, and much easier to understand and maintain. Each of these services can also be developed independently by a team that is focused on that service. It also allows for continuous deployment, because each microservice can be deployed independently.
7 benefits of microservices
Safely scale out your app using advanced load balancing
Silo the dev teams and less dependence
Deploy piece by piece without affecting other systems
Easier to develop & maintain
Improve performance while reducing load on your app with flexible content caching
Easily identify failures in service
Run in containers, on your existing hardware, or in the cloud
What is a virtual machine?
A virtual machine is a computer file, typically called an image, that behaves like an actual computer. In short, it’s creating a computer within a computer. Entire operating systems can be run within one window of an existing computer. Each microservice is a container, and these containers are often run on multiple cloud virtual machines, or VMs. Most cloud providers use VMs as the basis for their infrastructure-as-a-service (IaaS) offerings.
Ingenious & the Fabric Model
Here is a great use-case: Ingenious is a photo-sharing demo app created by NGINX to show the Fabric Model approach to application development. The app is designed to allow the user to login to a personalized account, and then store, view and delete their own pictures. It also includes a blog in which users can view the latest news and updates within the application.
Learn more about this project on Github