
Course Description
This course explores the principles of virtualized cloud computing architectures based on containerization and orchestration, bridging theoretical foundations with hands-on implementation. Starting with cloud architecture, you will analyze and contrast VM-based and container-based virtualization techniques. The course then dives into containerization and orchestration, covering Docker for lightweight application packaging and Kubernetes for orchestrating scalable containerized workloads.
Through practical labs, deploying real applications in Docker and Kubernetes, you will compare traditional virtualization with modern cloud-native approaches. By the end, you will understand how to design resilient, scalable systems while evaluating the performance, security, and operational implications of different architectures. Ideal for professionals seeking to leverage cloud technologies for efficient, agile cloud infrastructure.
Prerequisites
- General understanding of distributed computing and networking concepts
- Good command of Linux including the command line
- Some prior experience in developing and/or deploying distributed applications (web servers, application servers, database servers)
Course Learning Outcomes
After successfully finishing the course, you will be able to:
- Analyze the fundamental principles of cloud computing and virtualization to explain how abstraction layers enable scalable, elastic infrastructure
- Apply cloud architecture paradigms to design resilient, cost-efficient solutions for real-world use cases
- Evaluate trade-offs between different cloud deployment models based on business and technical requirements
- Design containerized applications using Docker, considering performance, security, and scalability constraints
- Orchestrate containerized workloads with Kubernetes, including scaling strategies, networking, and fault tolerance mechanisms
- Justify architectural decisions by comparing traditional systems with cloud-native approaches
Course Conduct
- Initial Assessment: The course starts with a brief knowledge check to confirm prerequisites.
- Interactive Learning: Short questions are integrated into each lecture to reinforce understanding.
- Chapter Reinforcement: Each chapter concludes with a quiz, assessing both theoretical and practical knowledge.
- Hands-On Practice: Practical sessions are included within each chapter to apply learned concepts. You are provided with solution walkthroughs, hints and guidance and/or structured rubrics to help you self-assess your work.
Time Commitment & Schedule
This course is self-paced, allowing you to progress through the material at a speed that suits your professional and personal commitments. The estimated time required to complete all content and activities is approximately 25 hours. This includes engaging with lectures, participating in hands-on labs, and completing assessments.
Course Outline
- Introduction (2 hours)
- Part I – Virtualization: How cloud enables abstraction and efficiency (5 hours)
- Part II – Cloud Architecture: Definitions, paradigms, and key components (5 hours)
- Part III – Containers and Docker: Lightweight application deployment (5 hours)
- Part IV – Orchestration and Kubernetes: cloud-native deployment (5 hours)
Textbook and Reference Materials
- Docker: Up & Running; Shipping Reliable Containers in Production. Sean P Kane and Karl Matthias, O’Reilly Media, 2023.
- Kubernetes: Up and Running: Dive Into the Future of Infrastructure. Brendan Burns, Joe Beda, Kelsey Hightower and Lachlan Evenson, O’Reilly Media, 2022.
Instructor
Guillaume Pierre – Professor of Computer Science at the University of Rennes
About Instructor