Программирование Cloud Native, Микросервисы, Docker и Kubernetes, Портянкин И., 2023.
Разработка программного обеспечения и сервисов для сети Интернет в глобальном масштабе стала как никогда доступна. Если только у вас и вашей команды есть интересная новая идея или необычное решение для уже известной проблемы, вся мощь вычислительных облаков Cloud и обеспечиваемый ими легкий доступ к прорывным технологиям, легкость и скорость запуска контейнеров, точная настройка и изоляция их деталей с помощью Docker, и оркестрация работающих в контейнерах микросервисов с помощью Kubernetes даст вам возможность работать с миллионами пользователей и запросов так, как если бы вы с полной уверенностью показали идеально настроенное демо приложения на вашем ноутбуке.
В этой книге мы взглянем на все с высоты птичьего полета, проанализируем популярную концепцию приложений, созданных работать в облаке (Cloud Native), вспомним как появились технологии виртуализации и масштабирования, разберем что именно принесут нам контейнеры и микросервисы, и увидим, как настройка и оркестрация Kubernetes позволяет развернуть систему любой сложности в любом облаке и мгновенно приспособить ее к растущим нагрузкам, при этом сделав ее надежной и устойчивой к отказам.

Основные положения концепции Cloud Native.
Возможность быстро и эффективно наращивать функциональность приложения, не переписывая и не ломая уже существующие функции и компоненты, а также их взаимодействия, требует особого подхода к разработке в общем, и к выпуску готовых релизов и их запуску на серверах в частности. Более того, для каждой задачи хорош свой инструмент, что в мире программирования означает, что для каждой задачи чуть лучше могут подходить свой собственный язык, его экосистема и набор библиотек.
Реализовать это возможно с помощью так называемых “микросервисов” (microservices), слабо связанных между собой компонентов единой системы или приложения. Они обмениваются данными через сеть, используя стандартные сетевые протоколы, как правило это протокол HTTP и стандарт REST. Разработка и обновление одного микросервиса никак не затрагивает остальные части системы. Микросервисы связываются друг с другом через сетевые порты и абстрактные протоколы, и каждый из них может быть написан на любых подходящих языках и технологиях. Обновляются и перезапускаются они также независимо. Микросервисы часто противопоставляются единому, большому серверному приложению, так называемому “монолиту” (monolith).
ОГЛАВЛЕНИЕ.
Введение.
Актуальность и глубина информации. Онлайн-документация.
Аудитория книги.
Программирование и архитектура. Концепция 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.
Резюме.
Завершение.
Купить .
Теги: учебник по программированию :: программирование :: Портянкин
Смотрите также учебники, книги и учебные материалы:
- Программирование промышленных роботов серии Mitsubishi Melfa, Громов В.С., Борисов О.И., Синетова М.М., 2023
- ScratchJr для самых юных программистов, Голиков Д.В., 2020
- Основы программирования приложений реального времени, Баландин А.В., 2023
- Разработка Паскаль-компилятора, Залогова Л.А., 2014