Человек и машина

Description
Авторский блог Карена Товмасяна.
Идеи, слова поддержки и критики отправляйте мне - @ThomasStorm.

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

I do not speak on behalf of my employer.
Advertising
We recommend to visit

Официальный новостной канал криптобиржи OKX | www.okx.com на русском языке.

💬 Комьюнити: t.me/okx_russian

👨‍💻 Поддержка: [email protected]

АДМИН: @DaniiOKX
Маркетинг: @CoffeeTrends

Last updated 2 weeks, 1 day ago

Here in simple language about TON and crypto

Founder: @metasalience
contact : @deftalk_bot

Last updated 3 months, 2 weeks ago

Канал о TON и все что с ним связано:
1. Аналитика
2. Инсайды
3. Авторское мнение

Ведро для спама: @ton_telegrambot

Бот с курсами криптовалют: @TonometerBot

Чат: @chaTON_ru

Админ: @filimono

Last updated 2 weeks, 3 days ago

4 months ago

#машины_разное #люди

Small changes in context (people/places/features you want to support) often radically change how well a program fits its context. Our dominant milieu of short-termism doesn't prepare us for this fact. (с) Kartik Agaram

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

4 months, 2 weeks ago
[#машины\_разное](?q=%23%D0%BC%D0%B0%D1%88%D0%B8%D0%BD%D1%8B_%D1%80%D0%B0%D0%B7%D0%BD%D0%BE%D0%B5)

#машины_разное

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

Я оказался не одинок в этом! Некто davidv, автор блога Mumbling about computers прикоснулся к «де факто стандарту индустрии» и высказал свое мнение. Рекомендую к прочтению, эссе читается легко и с юмором.

Меня зацепила следующая фраза:
«What do you mean that the type for value depends on the value of mode?? And what do you mean mode is a string when it should be an enum??»

Да, меня зацепило использование строк вместо enum.

Видите ли, когда мы передаем строку, мы можем передать в нее все что угодно, от откровенно хулиганского мусора и невалидных данных до закодированного в base64 бинаря. Это накладывает дополнительную нагрузку на принимающую сторону - нужно добавлять валидацию, правильно обрабатывать вход, а то и ставить security прослойку, чтобы злоумышленник чего бы лишнего не пропихнул.

Это не значит, что строки надо запретить, но вот минимизировать их использование можно. В данном - из поста - случае, речь идет о режимах сбора метрик с RabbitMQ. Сколько там может быть вариантов? Как часто добавляют новые? Как часто убирают старые? Простым enum’ом это реализовать гораздо проще, чем принимать и парсить строку.

4 months, 3 weeks ago
[#машины\_aws](?q=%23%D0%BC%D0%B0%D1%88%D0%B8%D0%BD%D1%8B_aws)

#машины_aws

Этой ночью, AWS Kinesis снова отстрелил многим чресла в us-east-1. Практически так же, как 4 года назад. По этому поводу сделаю пару замечаний.

Во-первых - не используйте us-east-1. Это регион-страдалец, там всегда что-то взрывается раз в год. Пощупать экспериментальные сервисы первым того не стоит... Впрочем вы и без меня это знаете.

Во-вторых, давать леща за инциденты нельзя. А вот давать леща за неисполнение incident follow up'ов - вполне себе можно и нужно. Следите за руками.

В 2020, когда случился инцидент, AWS поставил себе задачу разделить Kinesis на две изолированных группых сервисов, иными словами, сделать "внутренний" Kinesis.

We will also move a few large AWS services, like CloudWatch, to a separate, partitioned front-end fleet. (с) из пост-мортема

Делается это для того, чтобы внутренние проблемы сервисов не били по внешним потребителям напрямую, потому что потребители работают с абстракциями - ну давайте честно, кто еще знает, что Cognito использует Kinesis под капотом? - и знать внутренности не должны.

Однако спустя почти 4 года, мы имеем отказ клиентских сервисов по подозрительно схожей причине, более того, "клиентский" Kinesis тоже пятисотил. Это говорит о том, что:
- либо в общей структуре есть большой архитектурный огрех, который не решается дублированием сервиса для внутренних нужд
- либо, что еще хуже, AWS не исполнил обещание после инцидента.

За второе надо бить палками, а так же отдавать айтишников на массовые расстрелы, потому что задача каждого разбора полетов не допустить такой же инцидент в будущем.

7 months ago

#машины_aws

У CloudFormation два классных нововведения. Про первое уже написал Рома, обязательно пройдите и прочитайте, если вас задолбала последовательность: создал стек с бакетом - набил бакет объектами - удалил стек - стек не удалился - матерясь, чистишь бакет - удаляешь стек снова - раздраженно снимаешь галочку с “игнорировать удаление”.

Но мне, честно говоря, больше понравилась новость про дебаг с помощью CloudTrail.

Когда я работаю с новым или мало изученными сервисом, у меня часто происходят итерации trial and error. Где-то опечатался, где-то перепутал параметр, где-то добавил несовместимые свойства, где-то забыл построить зависимость с помощью DependsOn.

До того, как появилась возможно управлять стеками с disable rollback, обычный цикл разработки выглядел похожим на цикл удаления стека с непустыми бакетом:
1. Создаем стек
2. Стек валится, откатывается назад. Пока он откатывается, смотрим ошибку API
3. Ждем пока стек откатится. Поскольку это новый стек, мы его удаляем, потому что перенакатить изменения на новый стек, который сломался и откатился в пустоту ПОЧЕМУ-ТО ДО СИХ ПОР НЕЛЬЗЯ
4. Находим ошибку в шаблоне, исправляем. Повторяем итерацию с пункта 1.

Чем же тут хорош CloudTrail? Тем, что раньше у нас была скучная консоль с логом стека, где мы по куску ошибки должны были сделать вывод. Теперь же можно пройти в CloudTrail, посмотреть подробно не только ошибку, но и какие параметры были у запроса в API, со всеми полями. Это так же упрощает разбор ситуаций, когда создание валится не из-за опечаток в шаблоне, а например если у роли, с которой CloudFormation создает ресурс, недостаточно прав.

7 months, 3 weeks ago

#машины_aws

Роскошный пример синтеза белошапочников и черношапочников.

https://buckets.grayhatwarfare.com/

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

За находку спасибо Юре @pyToshka

8 months, 1 week ago

#машины_разное

Мой прошлогодний доклад про строго-согласованный кластер Redis получил расшифровку. Если вы предпочитаете текст вместо видео - милости прошу.

10 months ago

#машины_разное

Рик Хулихан, известный ~~полит~~технолог NoSQL в свое время разработал стандарт Single Table Design, который подразумевает хранить все поля сущностей в одной, как следует из названия, таблице.

Про STD есть превосходная презентация, которая раскрывает суть, детали и имплементацию. Честно скажу, что это моя самая любимая презентация.

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

Настоятельно советую прочитать ответ. Без апелляции к авторитету, можно снова сказать, что был потерян контекст. STD никогда не подразумевал складывать вообще все в одной таблице. Паттерн подразумевает, что атрибуты одной сущности должны храниться в одном месте, а не в разных. Но определение этих атрибутов идет в первую очередь с помощью определения паттернов доступа - какие данные мы читаем и для каких целей.

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

We recommend to visit

Официальный новостной канал криптобиржи OKX | www.okx.com на русском языке.

💬 Комьюнити: t.me/okx_russian

👨‍💻 Поддержка: [email protected]

АДМИН: @DaniiOKX
Маркетинг: @CoffeeTrends

Last updated 2 weeks, 1 day ago

Here in simple language about TON and crypto

Founder: @metasalience
contact : @deftalk_bot

Last updated 3 months, 2 weeks ago

Канал о TON и все что с ним связано:
1. Аналитика
2. Инсайды
3. Авторское мнение

Ведро для спама: @ton_telegrambot

Бот с курсами криптовалют: @TonometerBot

Чат: @chaTON_ru

Админ: @filimono

Last updated 2 weeks, 3 days ago