Skip to main content

Microservices

Microservices is a service-oriented architecture pattern wherein applications are built as a collection of various smallest independent service units.

They 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.

Example for e-Commerce Microservice:

In Below architecture diagram explained implementing simple Microservice module.

   
Advantages of Microservices:

  • Microservices are self-contained, independent deployment module and independently manageable services.
  • Change or upgrade each service individually rather than upgrading in the entire application.
  • Enable easy integration
  • Less dependency and easy to test.
  • Dynamic scaling.
  • Faster release cycle.
Advantages of Microservices:

  • Microservices has all the associated complexities of the distributed system.
  • There is a higher chance of failure during communication between different services.
  • Difficult to manage a large number of services.
  • The developer needs to solve the problem, such as network latency and load balancing.
  • Complex testing over a distributed environment.

How Cloud (AWS) helps deploying and running Microservice based applications?

Computing power: AWS EC2 Elastic Container Service and AWS Lambda Serverless Computing

Storage: Secure Storage (Amazon S3) and Amazon ElastiCache

Databases: Amazon RDB, Amazon Aurora, Amazon DynamoDB

Networking: Amazon Service Discovery and AWS App Mesh, AWS Elastic Load Balancing, Amazon API Gateway and AWS Route 53 for DNS

Messaging: Amazon SQS for message queuing and SNS for publishing and notifications

Monitoring: AWS Cloudtrail for API monitoring and Amazon CloudWatch for infrastructure monitoring

DevOps and CI/CD: Amazon Container Image Repository (Amazon ECR) and other DevOps tools for enabling CI/CD workflows.


Comments

Popular posts from this blog

Scaled Agile Framework (SAFe)

The Scaled Agile Framework (SAFe) is a set of organizational and workflow patterns for implementing agile practices at an enterprise scale. The framework is a body of knowledge that includes structured guidance on roles and responsibilities, how to plan and manage the work, and values to uphold. Scrum is a simple, flexible approach to adopting Agile that's great for small teams. SAFe is an enterprise-wide Agile framework designed to help bring Agile beyond the team and into the company as a whole. Scaled Agile has built a comprehensive level that includes all the four layers called the team, program, large solutions, and portfolio level. 4 Layers: Portfolio - Strategy, Vision, Roadmap, Strategy goal, Decision making, Budget, Portfolio level metrics,  Program - Align multiple teams towards a common mission, Bring together all the Agile teams, transparency, collaboration, and synchronisation, Scrum of Scrums, Product Owners to define the overall vision. Large Solutions - archite

Risk Register

A project risk register is a tool project managers use to track and monitor any risks that might impact their projects. Risk management is a vital component of project management because it's how you proactively combat potential problems or setbacks. Risk Description Impact Risk Response Risk Level Risk Owner Automation Testing Software licence delay Delay in starting testing and project schedule impact As we have one licence. Planned to start automation testing in 2 shifts. Planned to get one more licence in 2 weeks’ time. High IT team Frequent Disruption in dependency API services Delay in development of integration and unit testing Dependency API service is down, and the team is working on resolving the issue. Continuously working with API team High External Team/ Project Manager There is chance of new requir

Lessons learned from sprint retrospective meeting

Scenario: Team Missed Sprint Goals Challenge: A development team consistently missed its sprint goals, leading to frustration and a drop in morale. Team members felt overwhelmed by the workload and struggled to communicate effectively. Retrospective Insights: During the retrospective, team members openly discussed their challenges and frustrations. They identified bottlenecks in communication, unclear priorities, and unrealistic expectations. The team realized that individual workloads were not evenly distributed, causing burnout for some members. Lessons Learned: Effective Communication Matters: The team recognized the importance of clear communication. They committed to regular stand-up meetings, where everyone shared progress, blockers, and priorities. Balancing Workloads: The retrospective highlighted the need to distribute tasks more evenly. They decided to monitor workloads and adjust assignments accordingly. Setting Realistic Goals: The team acknowledged that setting achievable