2019-07-28

techquisitor: (sis)
2019-07-28 03:44 pm
Entry tags:

Architecting with Google Kubernetes Engine

Фу-у-ух! Пока Рунет бушует я, наконец-то, вылез из пары учебных штук. Пока расскажу про первую, она же "Architecting with Google Kubernetes Engine".

В этот раз изучал уже не просто курс, а влез в полноценную специализацию, состоящую из четырёх довольно приличного размера частей, посвящённых работе с Google Kubernetes Engine и общим основам работы с Google Cloud Platform (далее — GCP), а также интеграции GKE с платформой Google Cloud.

Начинается специализация с общего описания сервисов GCP. Чему посвящена вся первая неделя. В меру немногословно, по верхам я бы даже сказал, зато много практических лабораторных работ.
Кому интересно, здесь могут найти полный список CGPшных сервисов. Насколько вижу, большую часть затронул при изучении.
Заодно небольшой спойлер. Очень советую смотреть лекции довольно внимательно. Поскольку на протяжении всей специализации у вас в квизах будут попадаться вопросы по слайдам. И в заметных количествах.

Пожалуй, немного о самой GCP, раз уж начал. По первому впечатлению должен сказать... возможности этой штуковины реально впечатляют! Мне не так уж много есть с чем сравнить, но если говорить чисто за IaaS часть, то она там бесподобна по моему мнению. Ибо после Google Compute, Google Storage, IAM, VPC, Stackdriver, Containers и Storage ты понимаешь, как на самом деле должен был выглядеть тот же OpenStack, например. Который уже много лет пилит немало контор с весьма мизерным выхлопом и огромными финансовыми и инженерными вливаниями. Подозреваю, в создание GCP Google вбухала сравнимо с OpenStack, но результат в отличие от первых просто поразительный. Поспешу заметить, что сравнение с OpenStack не совсем корректное, поскольку сервисы эти у себя вы не развернёте. Я всего лишь рассматриваю именно в разрезе управления, удобства и возможностей платформ.
Впрочем, из on-premise решений для IaaS, которые вы можете развернуть у себя — это Nutanix, наверное. Да, за весьма немалые деньги, но зато с действительно хорошим саппортом и качественной работой. И OpenStack тоже даже рядом не валялся с ним ни по возможностям, ни по стабильности. Извините, что-то за больное задело, да.

kotiki.png
Действительно, ну как можно не любить платформу, где даже в лабах есть котики?

Так, о чём это я? А, да. Так или иначе, первая часть вводная и довольно несложная. Хотя про некоторые вещи пришлось всё же почитать отдельно, предварительно выписав. Самое интересное начинается дальше, со второй части специализации, под названием "Architecting with Google Kubernetes Engine: Foundations".

Отсюда и уже до самого конца идёт непосредственно знакомство и работа с GKE. Будет рассмотрено большое количество самых разнообразных вещей. От общих концептов, устройства и некоторых best practices, до применения данного инструмента применительно к практикам DevOps/SRE и релиз-инжинирингу. Последнее особенно порадовало. Учитывая, что я сейчас попутно читаю книгу Джина Кима «DevOps Handbook» (в русском переводе: «Руководство по DevOps»), где об этих вещах подробно излагается. При прохождении данной специализации отсылок к DevOps будет хватать. Например, в разделе про мониторинг.

В целом, на протяжении всей специализации практических лабораторных работ придётся сдавать много и они довольно длинные. Одна лаба рассчитана на час. В модуле может быть до трёх лабораторных работ. Суммарно по курсу может порой больше десятка. Прибавьте к этому большое количество промежуточных тестов и вы поймёте, что скучать вам точно не придётся.

И развернётесь вы там на полную, надо заметить. Тут вам и основы мониторинга кластеров и приложений в Stackdriver, балансировка нагрузки, объектные хранилища, менеджмент кластера (да, в одной из лабораторных работ вполне себе админскую задачу по обновлению кластера провести потребуется), масштабирования… Ой, чего там только нет! Сервисы придётся поднимать вполне рабочие и доступные для внешнего мира. От простых гостевых книг, до блогов на Wordpress с бэкэндом в виде базы данных. Шаловливыми ручками по БД полазить тоже разрешат. Даже краешком зацепите деплой кластера с помощью Terraform. Практики — вагон, одним словом.
Естественно, хотя бы начальное знание Bash, sed и Linux — обязательный пререквизит специализации. Поскольку из Google Cloud Console почти не будете вылезать, хотя визарды там очень годные и даже из браузера позволяющие задать большое количество настроек.

terraform.png
Пока все мои коллеги бухали на День Сисадмина, я познакомился с Terraform.

Но при всём этом, данный курс не избавит вас от чтения соответствующей дополнительной литературы, вроде "Kubernetes Up & Running" или общей теории по распределённым инфраструктурам. Но при этом, специализация эта хорошая точка отсчёта для понимания того, как должен выглядеть правильный результат и что должно работать. Само собой, данная специализация не заменит практику в реальном мире. GKE != кластеру Kubernetes развёрнутому на вашей площадке с вашими прикрученными туда модулями (расширяемость этой штуковины просто огромнейшая). Собственно, в более-менее ближайшее время я планирую купить себе небольшой NUC для подобных игрищ, чтобы можно было поставить его себе на стол и продолжить изучение предмета. Ну и как и у всякого инструмента, у него есть и свои недостатки. Так что без фанатизма.

Не обошлось и без некоторой ложки дёгтя. Во-первых, лабораторные работы изобилуют некоторым количеством мелких ошибок или там есть попросту совершенно бессмысленные этапы. Например, в одной из практических работ нужно будет поднять веб-сервер Apache, но там есть совершенно ненужные шаги по его перезапуску после того, как вы в каталог тестовый html положите. Зачем? Сервер и так обновит содержимое. Эти шаги можно было бы и пропустить, но без них вам не засчитают оценку.
Ещё один момент — как минимум два раза ответы в финальных квизах курсов были не совсем верные. Перепутали разные сервисы в GCP. Но хоть правильный ответ, который бы засчитал автогрейдер, нашёл разумеется. Само собой, дал фидбек по ошибке сразу после сдачи.

Помимо этого приготовьтесь к тому, что сгенерированные лабораторные работы могут глючить. В предпоследнюю неделю, судя по всему, там был какой-то достаточно масштабный сбой, который устраняли почти сутки и из-за него не работал механизм автогенерации лаб.
А ещё у меня была проблема, когда не засчитывались оценки за задание, несмотря на полное и аккуратное их выполнение. По итогам общения с техподдержкой это исправили, направив скриншоты stdout в Курсеру и оценку повысили.
И последнее. Не смертельное, но порой ощутимо раздражающее. Каждая лаба рассчитана на час, после чего созданное вами автоматически уничтожается. Но этого времени вам порой хватает очень впритык. Потому как создание кластера с большим количеством нод, workloads или обновление некоторых политик безопасности может занимать весьма долгое время. Из-за этого порой выполнять задания приходилось в режиме «быстро-быстро», что не давало мне возможности чуть побольше пощупать предлагаемое. Давайте хотя бы часа полтора! Впрочем, если опустить все эти проблемы, сами такие лаборатории — очень прикольная вещь.

Что в остатке? По итогам прохождения я очень доволен. Было действительно интересно и познакомился наконец с тем, до чего у меня давно не доходили руки. Ну и в целом стало понятно, чем так хорош Kubernetes при всей его сложности и какие задачи он реально решает.
Заодно стало намного понятнее о чём пишут в блогах того же Google Cloud на Medium. Теперь все эти термины и названия превратились для меня в нечто осмысленное и знакомое.
Помимо этого, пометил себе, что имеет смысл посмотреть уже в самое ближайшее время. И не забыть бы полистать дополнительные материалы, которые приложены к каждому курсу. Там немало достаточно. До кучи в этот раз мной получена первая серьёзная ачивка, которую не стыдно засунуть в свой профиль на LinkedIn.

Что дальше? Немного отдыха, закрытие дел и снова учёба. Не переключайте канал, оставайтесь с нами. :)

Ах, да. Пруфы в студию, как у нас водится:
gke.png