Introduction to Microservices

The goal of this assignment is to cover the basics of microservices, their benefits and challenges, popular tools, and case studies of their implementation.

Introduction


  • Define microservices architecture: An architectural style that structures an application as a collection of loosely coupled services, which implement business capabilities.
  • Briefly compare with monolithic architecture to highlight the context and evolution.

Principles of Microservices


  • Decentralization: Services are developed, deployed, and managed independently.
  • Componentization: Services are treated as independent components that can be easily replaced and upgraded.
  • Autonomy: Teams work independently on each service, reducing the coordination overhead.
  • Technology Diversity: Teams can choose the best tool for their specific needs, fostering innovation.

Advantages of Microservices


  • Scalability: Services can be scaled independently, allowing for more efficient use of resources.
  • Resilience: Faults in one service do not impact others, improving overall system robustness.
  • Technological Agility: Allows the adoption of new technologies and processes without overhauling the entire system.

Challenges of Microservices


  • Complexity: Increased operational and management complexity.
  • Data Integrity: Ensuring data consistency across services can be challenging.
  • Network Issues: Dependency on network latency and load balancing.
  • Skill Set: Requires a broad set of skills from development teams, including DevOps capabilities.

Submission


  • Summarize the key points made.
  • Submit the report in Word format.

Important Notes


  • You are not allowed to share codes with your classmates. If detected, you will get NC.
  • For pairs:
    • Individual's work will be checked from the commits.
    • Share tasks evenly and fairly.
    • To have a clearer understanding of pair programming:
      • Pair programming is an agile software development technique in which two programmers work together at one workstation. One, the driver, writes code while the other, the observer or navigator reviews each line of code as it is typed in. The two programmers switch roles frequently.

      • Wikipedia
  • Remember to respect the code honor submission policy. All written code must be original. Presenting something as one’s own work when it came from another source is plagiarism and is forbidden.

  • Plagiarism is a very serious thing in all American academic institutions and is guarded against vigilantly by every professor.