Введение
- Актуальность и глубина информации. Онлайн-документация
- Аудитория книги
- Программирование и архитектура. Концепция Cloud Native
- Русскоязычные термины
- Пользовательские интерфейсы
- Примеры и их тестирование на GitHub
- Выбор Go и Java
- Сторонние библиотеки и инструменты
- Основные провайдеры облачных услуг - Amazon, Google, Microsoft
- Дополнительные форматы книги на ipsoftware.ru
- Открытый текст. Благодарности
1. Приложения, созданные для облака — концепция Cloud Native
- Основные положения концепции Cloud Native
- Микросервисы — быстрый цикл разработки и постоянный выпуск
- Контейнеры — изоляция и гарантия неизменяемости версий
- Облако — неизменная эластичная инфраструктура. “Феникс” вместо “снежинки”
- Оркестровка Kubernetes — декла ративное описание состояния
- Инструменты для сбора журналов и наблюдения
- Разработка на практике — 12 факторов облачного приложения
- Резюме
2. Микросервисы
- Монолиты
- Архитектура на основе сервисов (SOA)
- Микросервисы по Мартину Фаулеру
- Разбиение системы на микросервисы
- Обратная сторона медали
- Резюме
3. Контейнеры и Docker
- Контейнеры — это Linux
- Docker
- Образы (image) Docker
- Интерактивные контейнеры — запуск и управление на примере образа Ubuntu
- Открытие мира для контейнера — веб-сервер nginx и работа с портами
- Резюме
4. Создание образов Docker. Команды Dockerfile
- Структура Dockerfile. Основные команды. Базовый образ
- Создание образов для приложений Java, Go, Node.js
- Многоступенчатая сборка. Размер образа image
- Репозитории образов. Метки, версии и latest
- Альтернативы Dockerfile. Jib
- Альтернативы Dockerfile. Buildpacks
- Резюме
5. Первые шаги в Kubernetes
- Первые выводы
- Первое развертывание
- Сервисы Kubernetes — точка доступа к масштабируемому приложению
- Отладка сервисов — переадресация портов
- Доступ к сервису из Интернета — балансировщик нагрузки
- Доступ к журналам (logs)
- Простое горизонтальное масштабирование
- Удаление развертывания и сервиса
- Визуальное представление кластера
- Версии Kubernetes
- Резюме
6. Объекты Kubernetes. YAML. Декларативное управление кластером
- Несколько слов об «ужасах» YAML
- Объект
Deploymentвместоkubectl create deployment - Объект
Serviceвместоkubectl expose - Императивное управление кластером Kubernetes — create и delete
- Декларативное управление кластером. Команда apply
- Резюме
7. Взаимодействие сервисов Kubernetes
- Обнаружение сервисов через DNS
- Обнаружение сервисов с помощью переменных окружения
- Сервисы и метки
- Основные типы сервисов в Kubernetes
- Виртуальные IP-адреса. Kube-proxy
- Развертывание нескольких сервисов
- Локальное тестирование взаимодействующих сервисов
- Проверка готовности сервиса к работе
- Резюме
8. Метки и аннотации Kubernetes. «Канарейки». Service Mesh
- Метки на практике. «Канареечное» развертывание
- «Сине-зеленое» развертывание
- Шаблоны YAML — Kustomize
- Ручная отладка отсеков Pods и контейнеров с помощью меток
- Сетка микросервисов — Service Mesh
- Аннотации
- Резюме
9. Непрерывное обновление в Kubernetes. Deployment
- Непрерывное обновление (rolling update)
- История обновлений. Откат к стабильным версиям.
- Стратегия непрерывного обновления
- Автоматическое масштабирование
- Проверка жизнеспособности (liveness)
- Резюме
10. Управление ресурсами Kubernetes
- Распределение ресурсов по умолчанию
- Требования к ресурсам в развертываниях Deployment
- Пространства имен Namespace
- Дополнительные контексты kubectl
- Резюме