Откуда берется желание сдать сертификацию AWS Solutions Architect. И зачем это нужно
Популярность сертификаций AWS растет, на DOU уже было несколько статей о том, что это и зачем. Теперь взглянем на них с позиции «почему».
Две недели назад я сдал экзамен AWS Solutions Architect — Associate. По горячим следам попробую описать, почему возникла идея получать эту сертификацию.
Топоры, или Знай свои инструменты
Один из самых полезных для любого профессионала принципов — «знай свои инструменты» (или в одной из вариаций «точи пилу»).
Мы «в облаках» уже давно, но до поры до времени это были просто монолитные приложения с базами, развернутые на инстансах EC2 — дёшево и сердито. Постепенно нам стало тесно в рамках монолита. Взяли курс на распил в хорошем смысле — на модуляризацию, а затем и модные нынче микросервисы. И очень быстро на этой почве «расцветают сто цветов».
Например, проект логирования активности, который я сейчас веду, включает в себя:
- Клиентов в виде разнообразных приложений нашего продукта — от глухих уголков дремучего легаси до ультрамодных микросервисов на .NET Core.
- Очереди Amazon SQS, в которые складываются логи о том, что происходит с клиентами, самого разного вида. Допустим, отправлено письмо, или произведен платеж, или произведен запрос на выборку данных из базы.
- Микросервис на .NET Core, который достает сообщения из очереди и отправляет их в Amazon Kinesis Data Streams (KDS). Имеет также Web API интерфейс и swagger UI как дублирующий канал и для ручного тестирования. Оборачивается в докеровский Linux-контейнер и хостится под управлением Amazon ECS. Предусмотрен autoscaling на случай большого потока логов.
- Из KDS данные пожарными шлангами направляются в Amazon Redshift с промежуточными складами в Amazon S3 (автоматически by design — Redshift оптимизирован на загрузку больших объемов данных командой COPY из S3, Kinesis Firehose так и делает).
- Операционные логи для девелоперов (дебаг-информация, сообщения об ошибках и т. п.) форматируются в JSON и посылаются в Amazon CloudWatch Logs.
Работая с таким зоопарком сервисов AWS, хочется знать, что есть в арсенале и как это что-то лучше использовать. Вот представьте: у вас есть старый проверенный топор, который хорошо рубит деревья и неплохо забивает гвозди. За годы работы вы научились с ним хорошо обращаться, сколотили собачью будку, пару сараев и, может быть, даже избу. Иногда возникают сложности — допустим закрутить шуруп топором не всегда получается быстро, но обычно это решаемо с помощью терпения и такой-то матери.
И тут рядом появляется зажиточный сосед, у которого чёртова туча самых разных инструментов: электропилы, гвоздемёты, шуруповерты и бог знает, что ещё. Всё это богатство он круглосуточно готов сдавать в аренду. Что делать? Вариант взять топор и раскулачить мы отметаем как политический безграмотный. Самым разумным будет изучить, что там за инструменты, как они друг друга могут дополнять на разных работах и на каких условиях сдаются.
Поскольку для меня этот мотив был главным, подготовка была построена соответственно: найти фундаментальное руководство и тщательно его изучить. И такое руководство было найдено. Книга написана суховато, но вряд ли это может отпугнуть людей, учивших матан по Фихтенгольцу.
Прочитал от корки до корки и считаю, что поставленной цели книга полностью отвечает — дает хороший обзор как, собственно, сервисов, так и более общих концепций, которые могут встретиться на экзамене. Кроме того, есть возможность пройти несколько странноватую процедуру регистрации на Sybex и проходить все проверочные вопросы и пробные экзамены из книги онлайн.
Важный момент: я обучался по книге 2016 года выпуска, но в AWS всё меняется достаточно динамично, поэтому ищите самое свежее издание, которое будет на момент подготовки. К примеру, в пробных тестах часто появляются вопросы об availability и durability различных классов S3 и Glacier, но, когда я сдавал экзамен, некоторые из чисел изменились по сравнению с 2016 годом. Кроме того, добавились новые (например, INTELLIGENT_TIERING или ONEZONE_IA). В тоже время RRS уже считается устаревшим и вскоре, видимо, его уберут совсем.
Ну и, конечно, мы все против пиратства, поэтому не ходите в комментарии к этой статье, а заплатите 40 баксов и получите свой законный личный экземпляр.
Любовь к головоломкам
Напряженное мышление требует больших усилий. Но не секрет, что многие программисты испытывают определенное мазохистское удовольствие от задач-головоломок, вопросов и иногда даже экзаменов.
Думаю, это удовольствие во многом сродни игре «Что? Где? Когда?» (которой я в свое время увлекался на довольно приличном уровне) или, скажем, хорошей партии в шахматы (которыми порой развлекаюсь на крайне любительском уровне).
В этом смысле нынешний экзамен AWS Solutions Architect Associate очень хорош. Хотя во время подготовки среди проверочных вопросов время от времени встречались «зубрильные», типа «Сколько максимум elastic IP адресов можно иметь в VPC?» или «Какова availability S3 IA?». На самом экзамене таких не попадалось. По сути, практически каждый из 65 вопросов представлял собой мини-задачку на проектирование. Вот достаточно типичный пример из официальной документации:
A web application allows customers to upload orders to an S3 bucket. The resulting Amazon S3 events trigger a Lambda function that inserts a message to an SQS queue. A single EC2 instance reads messages from the queue, processes them, and stores them in an DynamoDB table partitioned by unique order ID. Next month traffic is expected to increase by a factor of 10 and a Solutions Architect is reviewing the architecture for possible scaling problems. Which component is MOST likely to need re-architecting to be able to scale to accommodate the new traffic?
A. Lambda function B. SQS queue C. EC2 instance D. DynamoDB table
Насколько я знаю, предыдущий вариант экзамена содержал 55 вопросов, и на него выделялось 80 минут. Судя по всему, над ним неплохо поработали: теперь там 65 вопросов и 130 минут на них. Время в пересчете на вопрос увеличилось, но при этом проходных вопросов практически нет. Над каждым приходилось думать, иногда и больше двух минут.
Кстати, отсюда практический вывод. Те, кто сдавал сертификации вроде майкрософтовских, знают, что, видимо, лучшая тактика — быстро пробежаться по вопросам, ответить на то, что отвечается сразу, и отметить флажками остальные. В случае с SAA-C01, это в общем-то не работает. Отмечать флажками придется практически каждый вопрос, иначе есть риск не заметить какую-то детальку и ответить неправильно. В итоге я отвечал, тратя минуту-две на каждый вопрос, а потом вернулся к зафлажкованным и потратил на них оставшиеся 20 минут.
«Если бы молодость знала, если бы старость могла»
Как известно, одна из самых частых причин отказов в работе, которые получают программисты за 40, — пониженная по сравнению с молодежью способность к обучению. Между тем есть ощущение, что к моим нынешним 44 годам в каких-то областях у меня способность к обучению даже повысилась по сравнению со студенчеством. Видимо за счет большей усидчивости и опыта, который позволяет привлекать знакомые аналогии для малознакомых вопросов.
Но ощущение может быть обманчивым, нужен объективный критерий. Подготовиться к экзамену и сдать его — чем не вариант? Считаю, что проверка удалась. Готовился я самостоятельно, и моя двухнедельная подготовка прошла достаточно гладко. Ну да, пару раз я уснул в гамаке, читая мануал, — но такое может случиться с каждым. Теперь есть сертификат и приличные очки за экзамен как признак того, что есть еще порох в пороховницах.
Суммарно я потратил на подготовку около
Дальше немного о том, что в принципе может быть мотивацией для сдачи экзамена, но вряд ли было в моем случае.
Капуста
Существуют любопытные исследования «Forbes» о том, спецы с какими сертификатами являются самыми оплачиваемыми в мире, и SAA там на почетном
Но, во-первых, что тут причина, а что следствие? Подозреваю, что ребята хорошо зарабатывают из-за определенных способностей, и эти же способности помогают сдать сертификацию. Во-вторых, терзают смутные сомнения, что кому-то будут платить $130 К в год вне США, хоть обсертифицируйся он с ног до головы. Да и в целом, как известно, после удовлетворения запросов из нижних уровней пирамиды зарплата перестает быть главным фактором.
Требования компании
Компании могут поощрять сертификации или даже требовать их (особенно если они нужны для партнерства, например, для вхождения в AWS APN в случае Amazon).
В моем случае, мы предоставляем независимый продукт и побаиваемся vendor lock-in. Так что сертификатов никто не требует. Похвалят и оплатят экзамен в знак признания определенных усилий — вот и весь официоз.
Трудоустройство
Возможно, наличие сертификатов будет определенным плюсом для получения работы, при прочих равных. Лично у меня нет планов менять работу. Мне интересно работать над сложным продуктом, который активно использует многие новомодные подходы и AWS сервисы. И уезжать я не планирую.
Нет, конечно, случаи разные бывают: за 23 года в IT я менял работу раз 5. Не факт, что не придется поменять опять, если протяну еще лет 20. Но будут бить — будем плакать.
Полезное
В заключение упомяну еще несколько материалов, которые я использовал в процессе подготовки к экзамену и просто в качестве «точила для пилы»:
- Видеокурсы pluralsight и cloud guru. Последние, говорят, особенно хороши, если купить подписку с доступом ко всем пробным экзаменам. Но у меня в качестве одного из условий игры значилось не потратить на подготовку ни цента, покупка подписки с этим плохо сочеталась. Кроме того, я в целом считаю видеоформат менее плотным с точки зрения объема информации на единицу времени. Впрочем, когда буду готовиться на SA Professional, то, скорее всего, подписку оформлю.
- Тонны амазоновской официальной документации, в том числе F.A.Q и WhitePapers.
- Ну и последняя, но значимая штука — проверочные тесты. Нашел их за пару дней перед экзаменом и неплохо потренировался. Читать там нечего, но онлайн-интерфейс и комментарии к ответам хороши.
Интересно было бы услышать, какой смысл вы находите в сертификациях вообще и в амазоновских в частности. Ну или почему не видите в них смысла? :)