Чем разработчику полезен Kubernetes
Kubernetes — система с открытым исходным кодом, предназначенная для работы с контейнерными приложениями: развертыванием, масштабированием и управлением (оркестрацией). Понимание основ технологии позволяет увеличить эффективность разработки и выводить новые продукты на рынок едва ли не каждый день.
Как отмечают представители бизнеса, необходимость в использовании оркестраторов назрела давно. Стандартная схема, при которой разработчик создает приложение, а админ его деплоит, устарела. Эффективность первых и объем работы вторых приводят к тому, что многие процессы тормозятся, продукты выходят с задержкой, а любой программный сбой чреват финансовыми потерями.
Технология Kubernetes в корне меняет подход. С момента ее внедрения разработчики смогут сами выкатывать и эксплуатировать сервис, разбираться, что происходит внутри. Фактически они будут приравнены к DevOps/SRE.
Сложность изучения инструмента привела к нехватке кадров. Посмотреть пару видео и приступить сразу к работе не получится. Технология действительно сложная и требуется комплексного подхода.
Есть два варианта подготовки:
- Специальная литература — изучение базовых основ, принципов, системы работы технологии
- Профильные курсы — отработка теории на практике
В идеале — совместить оба способа. Остановимся на первом и приведем несколько наиболее интересных и полезных книг по Kubernetes.
Kubernetes в действии
Автор: Марко Лукша
«Библия» разработчика, где коротко, по существу, без лишней «воды» и на понятных примерах автор объясняет, как использовать K8s для развертывания контейнеризованных приложений.
Книга начинается с обзора системы Docker как основополагающей в оркестрации приложений. Далее темы постепенно расширяются:
- Функциональные возможности
- Архитектура и принципы работы
- Устройство модулей фреймворка
- Анализ задач обеспечения безопасности
Автор уделяет внимание таким важным моментам, как мониторинг, настройка и масштабирование приложений.
Большой плюс книги — отсутствие ненужных введений и непонятных терминов. Если появляется новое понятие, сразу есть ссылка на тот абзац, где можно прочитать о нем.
Минус — книга вышла в 2019 году и не учитывает самых последний изменений K8s.
Осваиваем Kubernetes. Оркестрация контейнерных архитектур
Автор: Джиджи Сайфан
Литература для профессиональных разработчиков. Самое полное издание по функциям, основам архитектуры и дизайна Kubernetes. Книга начинается с изучения основ K8s, архитектуры и компоновки этой системы.
В перечень изучаемых тем включены:
- Запуск микросервисов с мониторингом состояния
- Горизонтальное и вертикальное масштабирование
- Автомасштабирование подов
- Деплоит обновлений
- Работа с backend (долговременное хранилище)
В книге рассмотрена версия 1.0 (сейчас уже актуальная — 1.29). Но объяснения даны настолько точно и понятно, что работа с последующими версиями не вызывает проблем. Существенное преимущество перед другими учебниками — реальные примеры, на которых автор объясняет возможности сетевой конфигурации, подключение и настройку плагинов.
Плюсы:
- Подробное изучение каждой функции
- Разбор архитектуры
- Большой пласт информации по безопасности
Минус только один:
- Много специфических терминов. Книга рекомендована опытным программистам
Автор сборника — главный архитектор ПО в Helix, который более 20 лет занимается разработкой приложений. С этим и связана специфика подачи материала.
Kubernetes на практике
Авторы: Алексей Пыльцын и Найджел Пультон
Настольный справочник системных архитекторов, разработчиков и специалистов по информационной безопасности. В основе книги — практическое применение с попутным объяснением, какой элемент за что отвечает.
Каждый раздел посвящен отдельной функции:
- Архитектура и составные компоненты
- Модели развертывания инфраструктуры
- Принципы автоматизации процессов
- Плоскость выполнения контейнеров
- Мультитенантность
- Сетевое взаимодействие
Отдельно авторы останавливаются на логистике доставки программного обеспечения. Это тот «подводный камень», на котором спотыкается большинство новичков.
Основное преимущество — это именно практикум, где объясняют, как работает система, и приводят сразу примеры. Минус — не хватает теории для глубинного понимания некоторых процессов.
Kubernetes изнутри
Авторы: Джей Вьяс и Крис Лав
Рекомендуемая аудитория: разработчики и администраторы с уровнем подготовки middle. Справочник по настройке и управлению платформой, устранению неполадок, работе с безопасностью.
Авторы предлагают комплексный «тур» в экосистему. В начале читателей ждет обзор архитектуры приложений с последующим переходом к масштабируемым кластерам. Далее исследуются отдельные функции, а именно:
- Изоляция процессов
- Разделение доступа к файлам и контейнерам
- Формирование контейнерных образов
- Разверстка и администрирование кластеров
- Отладка на уровне операционной системы
В книге много практических задач и оптимизированных решений. Удобно использовать справочник по мере работы с платформой. Минус — нет ни одного изображения, что может вызвать затруднение у тех, кто привык опираться на схемы, графики и таблицы.
Kubernetes: Up and Running
Авторы: Брендан Бёрнс, Джо Беда и Келси Хайтауэр
Авторы книги — те самые разработчики Google, которые стояли у истоков оркестрации приложений и придумывали основную канву. Фирменный американский стиль изложения (я подумал, мы решили, было интересно попробовать) в сочетании с профессиональным подходом к каждому аспекту дают полное понимание системы. Как работает, как взаимодействуют между собой элементы, почему много проблем с безопасностью. Все это авторы изложили максимально просто и доступно.
Фактически, это пошаговая инструкция по использованию инструментов и API для автоматизации масштабируемых распределенных систем.
Плюсы:
- Много наглядных примеров
- Формат «вопрос — ответ — пример» исключает недопонимание отдельных тем
Минус:
- Читать лучше в оригинале на английском языке. В русском переводе не хватает «живости» и юмора
Изучение K8s лучше начинать именно с этой книги. Именно она дает тот самый базис, глубинную основу, на которую потом наслаиваются дополнительные навыки и умения.
Заключение
Каждая книга из списка в полной мере раскрывает особенности работы платформы. Но без практики это будет просто чтиво выходного дня. Лучший способ усвоить информацию — садиться за компьютер и пробовать все то, что только что прочел. Ошибки будут. Но лучше ошибиться, исправить и сделать правильно, чем прочитать и забыть.