Master of Microservices Development Online Course
Microservices is an architectural style that structures an application as a collection of small, loosely coupled, and independently deployable services. Each service is tailored to perform a specific business function and can be developed, deployed, and scaled individually. This course explores how to design microservices architectures using proven patterns, principles, and best practices, with an emphasis on achieving high availability, scalability, low latency, and robust network resilience.
Who Should Take This Course?
This course is ideal for individuals aiming to deepen their understanding of software architecture, particularly those interested in mastering microservices through real-world scenarios. It’s especially valuable for those preparing for system design and architecture interviews. While the course is beginner-friendly, a basic understanding of software architecture is recommended.
Course Curriculum
Module 1: Microservices
- Course Introduction
- Understand E-Commerce Domain
- Monolithic Architecture
- Layered (N-Layer) Architecture
- Clean Architecture
- Scalability - Vertical Scaling - Horizontal Scaling
- Modular Monolithic Architecture
- Microservices Architecture
- Decomposition of Microservices Architecture
- Microservices Communications - The Basics
- Microservices Communication Patterns - API Gateways
- Microservices Asynchronous Message-Based Communication
- (Optional) Kafka and RabbitMQ Architectures
- Scale the Microservices Architecture Design
- Microservices Data Management - Choosing Right Database
- Microservices Data Management - Commands and Queries
- Microservices Distributed Transactions
- Event-Driven Microservices Architectures
- Microservices Distributed Caching
- Microservices Deployments with Containers and Orchestrators
- Microservices Resilience, Observability, and Monitoring
- Demo: E-Commerce Implementation of Microservices Architecture
- Serverless Microservices Architecture
Module 2: Kubernetes and Docker
- Introduction
- Docker Architecture and Dockerfiles
- Docker Images and Containers
- Docker Networks – Making Containers Talk!
- Storage with Docker
- Docker Compose
- Container Orchestration with Docker Swarm
- Introduction to Kubernetes
- Understanding Container Orchestration with Pods
- Kubernetes Workloads
- Networking and Storage with Kubernetes
- Advanced Orchestration with Kubernetes
- Managed Kubernetes as a Service on the Cloud
- Serverless Kubernetes
- Conclusion
Module 3: ElasticSearch
- Getting Started with ElasticSearch
- Dichotomy of ElasticSearch
- Get Going with Documents and Indices
- Querying with RESTful API
- Power Your Searches with DSL
- What ElasticSearch is NOT
- Getting More with ElasticStack
- Apache Log Analysis
- Advanced ElasticSearch Queries
- ElasticSearch versus Apache Solr
Module 4: Jenkins
- Introduction
- Getting started with Jenkins
- Configuring Jenkins
- Jenkins Pipeline
- Jenkins Blue Ocean
- Jenkins in Docker
- Jenkins Plugins
- Conclusion