Размышления о том, откуда берется желание сдать сертификацию 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.
Операционные логи для девелоперов (дебаг-информация, сообщения об ошибках и т.п.) форматируются в приятный глазу JSON и отправляются в Amazon CloudWatch Logs
Работая с таким зоопарком сервисов AWS хочется знать что есть в арсенале и как это что-то лучше использовать.
Вот представьте – у вас есть старый проверенный топор, который хорошо рубит деревья и неплохо забивает гвозди. За годы работы вы научились с ним хорошо обращаться, сколотили собачью будку, пару сараев и может быть даже избу. Иногда возникают сложности – допустим закрутить шуруп топором не всегда получается быстро, но в обычно решаемо с помощью терпения и такой-то матери.
И тут рядом появляется зажиточный сосед, у которого чёртова туча самых разных инструментов: электропилы, гвоздемёты, шуруповерты и бог знает что ещё. Всё это богатство он круглосуточно готов сдавать в аренду. Что делать? Вариант взять топор и раскулачить мы отметаем, как политический безграмотный. Самым разумным будет изучить что там за инструменты, как они друг друга могут дополнять на разных работах и на каких условиях сдаются.
Поскольку для меня этот мотив был главным, подготовка была пострена соответственно – найти фундаментальное руководство и тщательно его изучить. И такое руководство было найдено. Книга написана суховато, но вряд ли это может отпугнуть людей, учивших матан по Фихтенгольцу.
Прочитал от корки до корки и считаю, что поставленной цели она полностью отвечает – дает хороший обзор как собственно сервисов, так и более общих концепций, которые могут встретиться на экзамене. Кроме того приятным бонусом идет возможность пройти несколько странноватую процедуру регистрации на Sybex и отвечать все проверочные вопросы и пробные экзамены из книги онлайн.
Важный момент: я обучался по книге 2016 года издания, но в AWS всё меняется достаточно динамично, поэтому ищите самое свежее издание, которое будет на момент подготовки. К примеру в пробных тестах часто появляются вопросы об availability и durability различных классов S3 и Glacier, но некоторые из чисел изменились по сравнению с 2016 годом. Кроме того добавились новые (к примеру INTELLIGENT_TIERING или ONEZONE_IA).
Мотив второй: «65 оттенков оранжевого»
Напряженное мышление требует определенных усилий. Но не секрет, что многие программисты испытывают мазохистское удовольствие от головоломных задач, вопросов и иногда даже экзаменов.
Думаю это удовольствие во многом сродни игре в «Что? Где? Когда?» или, скажем, хорошей партии в шахматы.
В этом смысле нынешний экзамен 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, – пониженная по сравнению с молодежью способность к обучению.
Между тем есть ощущение, что в каких-то областях у меня способность к обучению даже повысилась по сравнению со студенческими годами – за счет большей усидчивости, и опыта, который позволяет привлекать знакомые аналогии для малознакомых вопросов.
Но ощущение может быть обманчивым, нужен объективный критерий. Подготовится к экзамену и сдать его – чем не вариант?
Считаю, что проверка удалась. Готовился я самостоятельно и подготовка прошла достаточно гладко. Ну да, пару раз я уснул в гамаке читая мануал, – но такое может случиться с каждым.
Теперь есть сертификат и приличные очки за экзамен как признак пороха в пороховницах.
Ну и немного о том, что может быть мотивацией, но вряд ли было в моем случае.
Не мотив первый: «Капуста»
Существуют любопытные исследования “Forbes” о том, спецы с какими сертификатами являются самыми оплачиваемыми в мире, и AWS SAA там на почетном 4м месте
Но, во-первых, что тут причина, а что следствие? Подозреваю, что ребята хорошо зарабатывают
из-за определенных способностей, и эти же способности помогают сдать сертификацию. Во-вторых, терзают смутные сомнения, что кому-то будут платить $130 К в год вне США, хоть он обсертифицируйся с ног до головы.
Да и в целом, как известно, после удовлетворения нижних уровней пирамиды зарплата перестает быть главным фактором.
Не мотив второй: «Требования компании»
Компании могут поощрять сертификации или даже требовать их (особенно если они нужны для партнерства, например для вхождения в AWS APN в случае Amazon).
Но в нашем случае производится независимый продукт, кроме того стараемся избежать vendor lock-in. Так что сертификатов никто не требует. Похвалят и оплатят экзамен в знак признания определенных усилий – вот и весь официоз.
Не мотив третий: «Трудоустройство»
Возможно наличие сертификатов будет определенным плюсом для получения работы, при прочих равных. Но у меня нет планов менять работу. Интересно работать над сложным продуктом, который активно использует многие новомодные подходы и AWS сервисы. Всего этого хватает и на нынешнем месте.
Нет, конечно, случаи разные бывают: за 23 года в IT я менял работу раз 5. Не факт, что не придется поменять опять, если протяну еще лет 20. Но будут бить – будем плакать.
Полезное
В заключение упомяну еще несколько материалов, которые я использовал в процессе подготовки к экзамену и просто в качестве «точила для пилы»:
Видеокурсы pluralsight и cloud guru. Последние, говорят, особенно хороши если купить подписку с доступом ко всем пробным экзаменам. Но у меня в качестве одного из условий игры значилось не потратить на подготовку ни цента, покупка подписки с этим плохо сочеталась. Кроме того, я в целом считаю видеоформат менее плотным с точки зрения объема информации на единицу времени. Впрочем когда будут готовиться на SA Professional, то скорее всего подписку оформлю.
Тонны амазоновской официальной документации, в том числе F.A.Q и WhitePapers.
Ну и последняя, но значимая штука – проверочные тесты. Нашел их за пару дней перед экзаменом и неплохо потренировался. Читать там нечего, но онлайн-интерфейс и комментарии к ответам хороши.