Class Central is learner-supported. When you buy through links on our site, we may earn an affiliate commission.

Coursera

Software Architecture Foundations & Intro to Microservices

Packt via Coursera

Overview

Coursera Flash Sale
40% Off Coursera Plus for 3 Months!
Grab it
This course features Coursera Coach! A smarter way to learn with interactive, real-time conversations that help you test your knowledge, challenge assumptions, and deepen your understanding as you progress through the course. Dive deep into the principles of software architecture and the foundations of microservices. Gain practical skills to design scalable, maintainable systems by exploring various architectural patterns such as monolithic, modular monolithic, and microservices architectures. This course will equip you with the knowledge to make informed decisions when designing software systems and will give you the tools to handle challenges such as scalability, performance, and system complexity. The journey begins with an understanding of software architecture’s evolution, followed by a deep dive into domain-specific design and use cases, especially for e-commerce applications. The course progresses to more complex architecture models, where you will design, iterate, and evaluate systems using monolithic, layered, clean, and modular monolithic architectures. As the course progresses, you will also learn how to scale systems using vertical and horizontal scaling methods. The final section of the course covers microservices architecture, focusing on its principles, benefits, and when to use it. You’ll learn to break down applications into independent services and gain hands-on experience designing scalable solutions. This course is ideal for developers and software architects looking to enhance their skills in modern software architecture. It’s suited for individuals with a basic understanding of software development and those looking to expand their knowledge of scalable and maintainable system designs.

Syllabus

  • Course Introduction
    • In this module, we will introduce you to the course's objectives and the importance of software architecture. You will explore the evolution of software architectures and understand how to select the right architecture for your application. This section sets the foundation for learning about architectural design and decision-making processes.
  • Understand E-Commerce Domain
    • In this module, we will dive into the domain of e-commerce, exploring the foundational requirements for building a successful online selling platform. You will understand both functional and non-functional requirements that are crucial for designing scalable e-commerce systems. This section establishes a deeper understanding of the context in which software architecture decisions are made.
  • Monolithic Architecture
    • In this module, we will provide a comprehensive overview of monolithic architecture, covering its core principles and characteristics. You will explore its benefits, such as simplified development and testing, as well as the challenges it presents, including scalability limitations. This section includes practical applications of design principles and hands-on architecture design for an e-commerce app.
  • Layered (N-Layer) Architecture
    • In this module, we will focus on layered architecture, learning how its structure promotes modularity and separation of concerns. You will explore SOLID design principles and apply these concepts to design and implement a scalable, maintainable e-commerce application. This section also includes a hands-on code review and evaluation of a layered architecture implementation.
  • Clean Architecture
    • In this module, we will introduce Clean Architecture and its principles, focusing on how it enables maintainable, testable, and flexible systems. You will learn about the Dependency Rule and apply Clean Architecture to design an e-commerce app. This section also explores the benefits and challenges of Clean Architecture and provides hands-on opportunities for you to review and refine your design.
  • Scalability - Vertical Scaling - Horizontal Scaling
    • In this module, we will explore scalability, focusing on both vertical and horizontal scaling strategies. You will learn how to design scalable architectures for applications, including the integration of load balancers to distribute traffic efficiently. This section will also assess the impact of scalability decisions on overall system performance.
  • Modular Monolithic Architecture
    • In this module, we will explore modular monolithic architecture, focusing on how it combines the simplicity of monolithic systems with modularity to improve scalability and maintainability. You will assess its benefits and challenges, and apply the concepts to design a scalable e-commerce application. This section also provides practical demos and evaluations of modular monolithic architectures.
  • Microservices Architecture
    • In this module, we will introduce microservices architecture, exploring its core characteristics and comparing it to monolithic systems. You will learn the benefits and challenges of adopting microservices and apply these principles to design an e-commerce application. This section includes practical design iterations and evaluations of microservices architectures.

Taught by

Packt - Course Instructors

Reviews

Start your review of Software Architecture Foundations & Intro to Microservices

Never Stop Learning.

Get personalized course recommendations, track subjects and courses with reminders, and more.

Someone learning on their laptop while sitting on the floor.