Files
sa-lessons/modules/module3/sections/01-containerization-basics.md
Alexander Abakumov 15e744da49 Initial commit: Complete Software Architecture course with 11 modules
- Added comprehensive course structure with 11 modules
- Included theoretical content, practical examples, and tasks
- Multi-language code examples (Java, Rust, Node.js, Python)
- Detailed analysis of architectural approaches and trade-offs
- Complete caching strategies documentation
- Architecture examples from real-world systems (Twitter, Netflix, Uber)
- Structured navigation and learning path
- Ready for educational use
2025-09-09 22:08:07 +03:00

2.3 KiB

Основы контейнеризации

Навигация


Что такое контейнеризация

Контейнеризация — это технология упаковки приложений и их зависимостей в легковесные, переносимые контейнеры.

Преимущества контейнеризации

1. Портабельность

  • Одинаковая среда на всех платформах
  • "Работает на моей машине" больше не проблема
  • Легкая миграция между средами

2. Изоляция

  • Приложения изолированы друг от друга
  • Контроль ресурсов
  • Безопасность

3. Масштабируемость

  • Быстрое создание и удаление контейнеров
  • Горизонтальное масштабирование
  • Эффективное использование ресурсов

4. Консистентность

  • Одинаковая среда разработки, тестирования и продакшена
  • Предсказуемое поведение
  • Упрощение развертывания

Контейнеры vs Виртуальные машины

Аспект Контейнеры Виртуальные машины
Изоляция Процессная Аппаратная
Размер МБ ГБ
Запуск Секунды Минуты
Ресурсы Общие Выделенные
Безопасность Процессная Аппаратная

Компоненты контейнеризации

1. Container Runtime

  • containerd — стандартный runtime
  • runc — низкоуровневый runtime
  • CRI-O — Kubernetes-специфичный runtime

2. Container Image

  • Неизменяемый образ приложения
  • Слоистая структура
  • Версионирование

3. Container Registry

  • Хранение образов
  • Версионирование
  • Безопасность