Microservices Classroomnotes 02/Jan/2022

The origins of Service-Oriented Architecture (SOA)

  • SOA is a way of thinking about software architecture that encourages reusable software components that provide well-defined interfaces.
  • This allowed those components to be reused and applied to new situations.
  • SOA services could communicate via Inter-process Communication (IPC) using the sockets on the same machine, through shared memory, through indirect message queues or even with Remote Procedure
  • Microsoft has developed SOAP (Simple Object Access protocol) Refer Here. This protocol can be used over http or tcp and uses xml schemas
  • Microsoft has developed WSDL (Webservice Definition Language) Refer Here for sample WSDL
  • This approach was widely adopted for communicate between reusable components
  • Then the REST principles were designed and create reusable service components has become much easier and light weight (We have already discussed about rest principles)

Monolith Approach

  • With a monolith, everything about the service is in one place, the API, database and all associated tools are managed as part of one code base.
  • Refer Here for the previous classroom notes

MicroServices

  • There is no standard definition for Microservices, but lets define Microservice as follows
  • A Microservices architecture is a type of application architecture where the application is developed as collection of services. It provides the framework, to develop, deploy and maintain services independently
  • Microservices are small independent and loosely couplde. A single team of developers can write and maintain a service
  • Each service is a seperate codebase, which can be managed by small development team.
  • Each Service can be deployed independtly
  • Each service is responsible for persisting its own data or external state
  • Services communicate with each other by using well-defined APIs. Internal implementation details of each service are hidden from other services
  • Benefits of Microservices
  • Agility:
    • Because microservices are deployed independently, its easier to manage bug fixes and feature releases
    • You can update a service without redeploying the entire application and roll back an update if something goes wrong
  • Small, focused teams
  • Small code base
  • Mix of technology
  • Scalability
  • Data isolation
  • Challenges:
  • Complexity: A microservices application has more moving parts than equivalent monolithic application. Each service is smaller but the entire system as a whole is more complex
  • Development and testing
  • Network Congestion and latency
  • Management
  • Versioning
  • Skill set.

Necessary Information

  • The GitHub Organization for Microservices Project will be Refer Here
  • We will be creating different repositories for each service
  • Setup in local system
  • Docker: Refer Here and install the Docker desktop for Windows/Mac
  • Create an Account in Docker Hub Refer Here
  • The following tools are already installed
  • Python
  • PyCharm
  • Git
  • GitHub Account is already created.

Leave a Comment

This site uses Akismet to reduce spam. Learn how your comment data is processed.

About continuous learner

devops & cloud enthusiastic learner