POSTS
Зачем мне сертификат Google Cloud Engineer?
Начну с того, что получил я сертификат - Associate Cloud Engineer. На сайте Google Cloud в разделе о сертификатах, сказано, что этот тип сертификата подходит тем, кто только начинает работать с облачными решениями.
Простые облака
Раньше все свои Django приложения я деплоил на DigitalOcean.
В самом начале DigitalOcen предлагал лишь виртуальные машины - “Droplets”. Позже к ним добавились сервисы вроде Managed Databases, Networking и Storage. Некоторое время назад появилась CLI и API.
Однако, мы использовали старые добрые дроплеты. В зависимости от специфики проекта мой Линукс админ настраивал окружение одной или более машин:
- веб-сервер
- сервер бд
- очереди
Все это делалось в ручном режиме, по-старинке. Поскольку приложения, которые я разрабатывал были на уровне MVP, о масштабирований речи не шло. Апдейты делались вручную. В эти минуты сервис не работал. Опять, ничего страшного, ибо это были MVP и/или сервисы работающие в определенном регионе. А апдейт происходил в нерабочее для региона время.
The next level
Мой бэкграунд full-stack разработчика наложил отпечаток: я плохо разбираюсь в сетях. А любой живой веб-сервис представляет из себя распределенную систему. В распределенной системе каждая составная часть должна тем или иным образом взаимодействовать с другой. А для этого и нужна сеть.
Заставить работать два сервера друг с другом я мог только по туториалу. Однако это не продакшен френдли. Поэтому, в тех случаях когда сервис требовал более одной машины мы с моим админом работали над этим вместе: я говорил, что приложению требуется, а он настраивал окружение в соответствии с этими требованиями. Но все это было настолько ручным и не future-proof, что становилось не по себе. Ведь нужно автоматизировать все, что только можно.
Кто-то скажет: есть Jenkins, Ansible, … Да есть. Но их тоже надо ставить, настраивать и так далее.
Время дорого. И не вижу смысла тратить его на то, что уже хорошо сделано Амазоном, Гуглом или Майкрософтом. Понимание было, оставалось определиться с тем, какую платформу выбрать?
Firebase
Поскольку мне надоело каждый раз настраивать окружение для приложения и поскольку у Firebase есть Firestore (NoSQL DB + socket на стеройдах), то однажды я решил все же попробовать Firebase.
Порог входа был невелик, но он был. В особенности это касается специфики дизайна модели данных и связей между ними в NoSQL, когда ранее опыт был только с реляционными БД.
На одном Firebase’ном проекте возникла потребность в CRON задаче. К моему приятному удивлению удовлетворить эту потребность можно было с помощью Firebase Functions. Требовалось лишь сделать пару настроек в Google Cloud Console соответсвтующего проекта.
С этого момента у меня начали появляться мысли об освоении GCP в целом. Ведь рано или поздно может потребоваться сделать проект на том же Django. И совсем не хочется настраивать и деплоить все как прежде, вручную и вслепую.
Таким обрахом, задача выбора облачной платформы была предрешена: раз пользуюсь Firebase, то логично въехать в GCP.
Как научиться?
Читать документацию больше 10 минут показалось непродуктивным и утомительным. Возможно я привык к другому стилю и тематике. Тот же React или Django осваиваются прекрасно по официальной документации. А документация GCP была… миллион точек входа, никакой явной свзяи или последовательности обучения сразу обнаружить не удалось.
Взять и запустить виртуальную машину на GCP совсем несложно. Но это возвратило бы меня обратно к моему уровню с DigitalOcean. А судя по всему GCP про другое (как AWS и Azure). Определенно нужна методичка, подумал я.
Погуглив нашел страницу Google Cloud о сертификатах. На ней перечень разных сертификатов, гайды по подготовке к экзаменам и дополнительная информация. Там же были ссылки на лабораторные Qwiklabs. По ним и готовился.
По мере прохождения лаб, приходило понимание крутизны подобного рода “облака”. Я прям начал понимать словосочетание “отказоустойчивый сервис” на практике. А главное, понял, что это вполне себе реальная цель.
Помимо лаб, есть и курсы с преподавателем, и книга по подготовке к конкретно этому экзамену, и тестовый экзамен.
Про книгу я узнал лишь за день до самого экзамена. Курс с преподом мне показался too much. А вот тестовый экзамен сдавал несколько раз. В первый раз оказалось, что я допустил ошибки только в вопросах о Kubernetes. Так что я скорректировал свое обучение с учетом этой специфики.
Экзамен
Записался на экзамен я за пару месяцев. Этого хватило для подготовки и вписывалось в мои планы по путешествиям.
В назначанное время пришел в авторизованный центр. Выложил содержимое карманов на хранение и прошел в коморку с компьютером где уже был настроен мой экзамен.
На экзамен дается 2 часа. Этого времени хватает чтобы ответить на примерно 50 вопросов и еще перепроверить свои ответы. После финального сабмита, программа некоторое время “думает”, а после перенаправляет на страницу с результатом. Помимо сопутствующей информации, на странице был предварительный статус: СДАЛ/НЕ СДАЛ. Я сдал. Но по условиям официальное подтверждение и сертификат пришлют в течении 7-10 дней.
Планы
Подготовиться и сдать сертификат по фронту - Mobile Web Specialist
Заключение
Сертификат помог мне разобраться в том как пользоваться современными облачными решениями. Ведь помимо гайда по подготовке, в получений сертификата есть и игровая составляющая: сертификатом можно похвастаться.
В англоязычной части мира считается, что наличие сертификата хорошо сказывается на карме разработчика-одиночки: вызывает доверие клиента. Возможно это так: теперь я себе тоже больше доверяю.