Программирование Cloud Native. Микросервисы, Docker и Kubernetes
Реклама. ООО «ЛитРес», ИНН: 7719571260.
Оглавление
Иван Портянкин. Программирование Cloud Native. Микросервисы, Docker и Kubernetes
Введение
Актуальность и глубина информации. Онлайн-документация
Аудитория книги
Программирование и архитектура. Концепция Cloud Native
Русскоязычные термины
Пользовательские интерфейсы
Примеры на 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
Java
Go
Node. js
Многоступенчатая сборка. Размер образа image
Многоступенчатая сборка Java
Репозитории образов. Метки, версии, и latest
Альтернативы Dockerfile. Jib
Резюме
5. Первые шаги в Kubernetes
Первое развертывание
Сервисы Kubernetes – точка доступа к масштабируемому приложению
Доступ к сервису из Интернета – балансировщик нагрузки
Отладка сервисов – переадресация портов
Доступ к журналам (logs)
Простое горизонтальное масштабирование
Удаление развертывания и сервиса
Визуальное представление кластера
Простое развертывание с Kubernetes – резюме
6. Объекты Kubernetes. YAML. Декларативное управление кластером
Несколько слов об «ужасах» YAML
Объект Deployment вместо kubectl run
Объект Service вместо kubectl expose
Императивное управление кластером Kubernetes – create и delete
Декларативное управление кластером. Команда apply
Резюме
7. Взаимодействие сервисов Kubernetes
Обнаружение сервисов через DNS
Обнаружение сервисов с помощью переменных окружения
Сервисы и метки
Основные типы сервисов в Kubernetes
Виртуальные IP-адреса. Kube-proxy
Развертывание нескольких сервисов
Создание объектов Kubernetes и развертывание сервиса
Локальное тестирование взаимодействующих сервисов
Проверка готовности сервиса к работе
Резюме
8. Метки и аннотации Kubernetes. «Канарейки». Service Mesh
Метки на практике. «Канареечное» развертывание
Сине-голубое развертывание
Шаблоны YAML – Kustomize
Ручная отладка отсеков Pods и контейнеров с помощью меток
Сетка микросервисов – Service Mesh
Аннотации
Резюме
9. Непрерывное обновление в Kubernetes. Deployment
Непрерывное обновление (rolling update)
История обновлений. Откат к стабильным версиям
Помощник развертывания – ReplicaSet
Стратегия непрерывного обновления
Автоматическое масштабирование
Резюме
Завершение
Отрывок из книги
Разработка программного обеспечения и сервисов для сети Интернет в глобальном масштабе стала как никогда доступна. Если только у вас и вашей команды есть интересная новая идея или необычное решение для уже известной проблемы, вся мощь вычислительных облаков Cloud и обеспечиваемый ими легкий доступ к прорывным технологиям, легкость и скорость запуска контейнеров, точная настройка и изоляция их деталей с помощью Docker, и оркестрация работающих в контейнерах микросервисов с помощью Kubernetes даст вам возможность выйти на мировой уровень так, как если бы вы с полной уверенностью показали идеально настроенное демо приложения на вашем ноутбуке.
В этой книге мы взглянем на все с высоты птичьего полета, проанализируем популярную концепцию приложений, созданных работать в облаке (Cloud Native), вспомним как появились технологии виртуализации и масштабирования, разберем что именно принесут нам контейнеры и микросервисы, и увидим, как настройка и оркестрация Kunernetes позволяет развернуть систему любой сложности в любом облаке и мгновенно приспособить ее к растущим нагрузкам, при этом сделав ее надежной и устойчивой к отказам.
.....
Получив неизменную, эластичную инфраструктуру, и все преимущества изоляции и быстрого запуска контейнеров, необходим инструмент, обладающей достаточной мощью гибкостью для управления ими. Оркестратор Kubernetes, созданный на основе проверенной годами в компании Google системы управления контейнерами Borg, обладает всем необходимым для запуска и управления сложными системами, развернутыми в облаке. Все основные коммерческие провайдеры облака, Google Cloud, AWS, Azure, российские #CloudMTS и остальные, в обязательном порядке предоставляют сервисы на основе Kubernetes.
Исходный код Kubernetes открыт и находится на GitHub, это один из самых популярных проектов с огромным количеством программистов и компаний, работающих над ним. Запустить Kubernetes возможно на своем собственном, частном облаке и кластере, а начать эксперименты можно и вовсе на своем ноутбуке, используя совершенно полные локальные реализации, такие как Docker for Desktop и Minikube.
.....