Человек и машина – Telegram
Человек и машина
1.82K subscribers
46 photos
1 video
2 files
346 links
Авторский блог Карена Товмасяна.
Идеи, слова поддержки и критики отправляйте мне - @ThomasStorm.

С предложениями рекламы не обращайтесь.

I do not speak on behalf of my employer.
Download Telegram
Материал по Troposphere занимает гораздо больше времени, чем хотелось бы, но такого рода статью лучше преподнести позже, но подготовленнее.

Вот вам немного спойлеров для затравки:
«Когда Bool совсем не Bool.»
«Получаем гибкость Python и его же проблемы.»
«cfn-lint испортит вам все удовольствие.»
«Документацию пишет мизантроп-социопат.»

И много-много других подводных камней, которые я любезно собираю, чтобы выложить перед вами.

Оставайтесь на связи. ;)
Как вам новый формат лонгридов на Медиуме?
Почему Medium и почему на английском?

Потому что работать над личным брендом нужно по всем фронтам, и так получилось, что ЦА над которой я начинаю работать не говорит по-русски. Medium же популярная платформа, только и всего.

Заменит ли Medium мой канал? Абсолютно нет, потому что Medium - мой инструмент продвижения, Телега - мое хобби.

Всякие лонгриды будут идти в Медиум (результаты исследований, не попадающие под NDA, и прочие интересные материалы), что-то по чтению не больше 2 минут - в канал.

По итогам работы с Troposphere могу сказать лишь одно: динамическая типизация - зло.
Мой близкий друг и соратник @sonkintammio с месяц назад сподвиг меня приобрести электронную книжку.

Надо сказать, до этого я читал книги с телефона или компьютера, что приводило к уставшим глазам и плохо усвоенной информации (попробуй пойми прочитанное, когда в тебя со всех сторон нотификации стреляют).

Важным вопросом для меня был возврат инвестиций. Покупать устройство за 80 USD и класть его в полку не хотелось.

Женя в свою очередь убедил меня, что книжки я после этого буду пихать, как не в себя, и оказался прав.

С момента покупки (20ые числа апреля), я прочитал Site Reliability Engineering, Site Reliability Workbook, Systems Performance и Database Reliability Engineering.

На данный момент давлюсь Thinking: Fast and Slow (@count0ru, я смогу!), на очереди: Designing Distributed Systems.

Получается где-то по книжке в неделю (до этого была в лучшем случае одна в месяц).

Спасибо, Жека!
Вот эта статья (https://advancedweb.hu/2019/05/28/aws_config_credentials/) воистину “ор выше гор”.

Советы в ней из разряда “мойте руки перед едой и после туалета”, что огорчает меня еще больше.
Тема аутентификации в AWS прожевана вдоль и поперек, давно рекомендуется не использовать IAM пользователей и группы, а аутентификацию и авторизацию делать через IAM роли. Для пользователей - использовать SAML и опять же заставлять их assume’ить роль. Для EC2 - Instance Profile’ы.

При этом в статье нет таких полезностей как авторизовывать операцию sts:AssumeRole через Conditions (а там тоже много вкусного, от проверки MFA до Source IP Address).

В целом статья выглядит даже не как повторение всем известных постулатов, а очередной Security 101.

При всем при этом тему можно развить! Добавить туда такие вещи как Hashicorp Vault, Secrets Manager, SSM Parameter Store и сделать из посредственной материала настоящую рафаэлку.
То есть я отвлекся на новую статью, а за это время отвалился GCP и горит ЦОД в Москве?
Вчерашней историей навеяло.

Когда мне нужно рисовать стрелочки и квадратики с fault tolerance in mind, я спрашиваю заказчика про RPO (recovery point objective) и RTO (recovery time objective).

Кто не в курсе - это состояние системы к моменту восстановления, например как с PITR в СУБД (RPO), и время восстановления рабочего состояния системы, с момента оповещения до момента восстановления (RTO).

Если заказчик не знает таких аббревиатур, то разговор становится чуть длиннее.

Я предлагаю заказчику представить, что система не работает Х минут. При чем не в стиле «представьте, что сервер лежит Х минут», а именно система не работает Х минут.
Если заказчиком выступает неопытный С уровень или нетехнический контингент, я преддагаю заказчику представить, что он не может (здесь используется контекст) загрузить главную страницу в течение 20 секунд (или документ, или картиночку с котиками - любой контекст подойдет). Если заказчик говорит, что ему «норм», цифра увеличивается до тех пор, пока заказчик не начинает ерзать на стуле.

В тот момент, когда заказчик, словно раджа из «Золотой антилопы», кричит «Довольно!», я записываю RTO и перехожу к похожей пытке про RPO («Сколько заказов вы готовы безвозвратно потерять при аварии?»).

Когда эти цифры получены, можно начинать соединять квадратики и кружочки стрелочками.

Проектируя вычислительные системы в Амазоне, я отталкиваюсь от следующих степеней паранойи: отказ экземпляра ЕС2, отказ AZ, отказ какого-то сервиса в регионе, отказ целого региона. Тоже самое делается с данными.

На одном проекте, задействующем S3, я настоял на настройке cross-region replication. Объем данных был довольно большой, гарантии доступа к данными должны были быть предоставлены, но мой страх потери доступа к корзине был встречен смешками о «типичной восточно-европейской пугливости».
После марта 2017 никто уже не смеялся (угадайте в каком регионе была основная корзина?).
Совсем забыл.

В Москве 18.06 пройдет AWS Dev Day.
Вы сами прекрасно знаете, про что он и для кого.

Подробности и регистрация тут: http://amp.gs/dG67

Обнимите там Стекова от меня. 😉
Я привык думать, что ИТ бардак присутствует в основном в молодых проектах и направлениях, где кучке смузихлебов без опыта доверено Принимать Решения.

Однако все не так плохо! Все гораздо хуже: http://stefanoborini.com/current-status-of-python-packaging/
Коротко о новом экзамене AWS Certified SysOps Administrator Associate:
This media is not supported in your browser
VIEW IN TELEGRAM
Миша задал один интересный вопрос. Цитата (орфография и грамматика сохранена): “Мне вот интересно. Бытиё определяет сознание или наоборот? В плане почему вокруг пхпшников всё всратое обычно? Потому что они пишут на пхп или они пишут на пхп потому что всратые?”

Мне вспомнилась одна история, которую рассказывал коллега на обеде. Коллега работал ведущим разработчиком и делился со мной болью.

Как любое уважающее себя legacy, e-commerce система, написанная на PHP, обладала большим количеством изъянов. Проблема была, конечно же, не в том, что писали на PHP, но в том, КАК писали на PHP.

Но главная проблема была даже не в этом. Когда на работу выходили новые ребята-иностранцы (а контора, следует отметить, нанимала иностранцев, которые на голову выше местных по навыкам), они отмечали недостатки, но старый код не трогали - никто не делает рефакторинг ради рефакторинга, а процедуры по оптимизации и “очистке” кодовой базы от мусора проводились (да и до сих пор проводятся, наверное) раз в год за месяц до католического рождества.

В свою очередь “свежая кровь” хотела избежать повторения ситуации и писала код, используя другие, “правильные” конструкции и паттерны.

Боль заключалась в том, что “новый” манер написания не проходил Code Review. Заворачивали их, потому что в конторе уже был принятый некоторый “стандарт” написания систем (как вы догадались - со всеми косяками и неэффективными конструкциями), и придерживаться стоило его. “Новичкам” не удавалось протолкнуть “кошерный” способ написания систем, потому что другим, “старичкам”, было бы сложно с ним работать - они попросту не умели и не могли (не хотели?) перестроить свое мышление.

Совсем как в эксперименте с обезьянами, бананом и холодной водой: “Здесь так принято.”
Как-то я пообещал @raxwunter начать серию блогов про AWS IAM.

Мой шкурный интерес - я устал читать одни и те же вопросы в @AWS_ru. Ну и в интернетах либо “детский” уровень, либо ссылки на курсы.

Держите первую главу глубокого погружения в IAM. Будет все, от базовых терминов до как закрывать доступ к корзине S3 по выходным и много всего прочего и интересного.

https://bit.ly/2LaDq77
Продолжаем копаться в IAM, но все по базовым вещам, таким как пользователи, группы, роли и политики: https://bit.ly/2RKbVTj

Если заметили ошибку или несоответствие, кидайте камни мне в ЛС.
Коллеги, @stekov_me продолжает организовывать для вас годные встречи-посиделки.

«Я к вам с прекрасной новостью! 4 июля, в 19:00 мы проводим очередной meetup от сообщества AWS_RU!

Темы докладов: от настоящих Архитекторов!

1) "AWS IOT. Быстрое (но не очень) решение."
Федотов Андрей, Борисенко Петр. Synergy team.

2) «Как выжимать облака» Андрей Ивахненко. Антиплагиат.ру

Ну и конечно же секретный доклад от инженеров AWS!

Трансляция будет, пицца будет, и еще несколько сюрпризов!

Адрес:
г.Москва, пр. Андропова, дом 18, корп. 2
«Райффайзенбанк»

Так как мы идем в гости в банк очень просят для СБ,
ФИО для пропусков, название компании и email.

Данные для пропусков шлите на aws_meetup@stekov.ru»
Я предпочитаю не выделываться, когда происходит какая-то авария у крупного поставщика.

Во-первых у меня нет полного контекста, во-вторых я не знаю, сделал бы я лучше.

Однако случившиеся на этой и прошлой неделе отказы вызывают у меня вселенскую тоску.

Ну вот посудите сами. Cloudflare - наш поставщик CDN для GSMG.io (и как оказалось для биржи Bittrex, с которой мы работаем). Я получил уведомление от мониторинга, что бот не может подключиться к бирже, попытался зайти на администраторский интерфейс, не могу попасть на web UI.

Столько веб сайтов были клиентами Cloudflare, что мой коллега, видя 502 практически на каждой странице, которую пытался открыть, невольно спросил: “А не у нас ли это проблемы с интернетом?”.

Починили относительно быстро (всего-то 27 минут), дерьмо случается, живем дальше.

Что меня задело, так это пробка для постмортема. А именно причина: “This CPU spike was caused by a bad software deploy that was rolled back.”

Окей. С вашим SLA 100% (почитайте их ToU, там много интересного), вы по идее израсходовали error budget на той неделе. Что там SRE Book говорит по этому поводу?

Второй момент - bad software deployment. Не bad software, не bug in the software, нет. Плохое, мать его за ногу, развертывание. Лучше б написали software related и потом оправдывались, как так получилось.

И вот знаете, не хочу ныть. Будущее (и настоящее) мне нравится, куда мы катимся и идем - мне тоже нравится, но низкое качество всего на свете уже малость… надоело.

Ну то есть - у меня рабочая машина, РАЗУМЕЕТСЯ Macbook Pro 2018 15 дюймов, топовая линейка и прочие понты. Машина наградила меня сломавшимся правым динамиком, оранжевыми пятнами на дисплее и залипающим пробелом. И судя по отзывам я не один такой.

Современный веб кишит багами. Просто откройте любимую страницу и консоль разработчика.

Про degraded performance, случающийся каждый день у неисчислимого числа сервисов, я и говорить не хочу.

И на фоне всего этого мрака, я продолжаю мрачно охреневать от Амазона.
Кто с ним работает, в курсе - каждая дока каждого сервиса постоянно кричит: “Дублируй! Резервируй! Оно упадет, отвечаю! Используй больше AZ, мамой клянусь отвалюсь!!!”

И что напрягает - не падает. Я уже и не могу вспомнить событий с момента отвала S3, когда у Амазона что-то громко падало.

Напрягает не то, что я боюсь накаркать, а то что бизнес, уставший от вечных аварий по дурости, глупости или еще чего, плюнет и пойдет к поставщику, который не падает.

И все мы будем хоститься на Амазоне, хотим того или нет.
Цитата из post-mortem’а Cloudflare: “Our testing processes were insufficient in this case and we are reviewing and making changes to our testing and deployment process to avoid incidents like this in the future.”

Индийские выпускники, пишущие софт для Boeing’а, это прям цветочки.
3-я глава про IAM

- Что происходит, когда контейнер стучится на S3
- Почему Condition не умеет проверять только время
- Как перестать бездумно копировать политики и начать жить
- Как ограничить доступ к роли только для определенной Lambda функции

На эти и другие вопросы я отвечаю здесь: https://bit.ly/2XotGs9