О топорах и капусте

Размышления о том, откуда берется желание сдать сертификацию 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.
  • Ну и последняя, но значимая штука – проверочные тесты. Нашел их за пару дней перед экзаменом и неплохо потренировался. Читать там нечего, но онлайн-интерфейс и комментарии к ответам хороши.

Источник: habr.com