Size: a a a

2021 December 11
oleg_log
Подробный постмортем падения AWS на несколько часов 7 декабря 2021:

https://aws.amazon.com/message/12721/

Кому нужна выжимка:

• Проблема была во внутренней сети AWS, где крутятся мониторинг и control plain некоторых сервисов. Поэтому сами сервисы не падали, но невозможно было внести изменения, что для некоторых сервисов, например, API Gateway оказалось равным проблемам его работоспособности (делается фикс такого поведения).

• Задержка с отображением проблем на странице статуса в том числе связана с недоступностью мониторинга в результате падения внутренней сети. Так как инженеры AWS долгое время не могли узнать (без мониторинга), что на самом деле происходит.

• Интересно отметить, что причиной послужил код, который уже несколько лет успешно крутится в проде, просто его поведение, когда он масштабируется, не было оттестировано (теперь протестировали – нет, не работает). Автоскелинг выключили, мощности хватает, как дотестируют, включат автоскелинг обратно (может быть).

Дополнительно отмечу для себя интересный факт, что S3 и DynamoDB ресурсы, которые, как и другие, не страдали во время инцидента, однако вот те, что подключены через VPC Endpoint – были недоступны. Причём, как понимаю (чего нет в постмортеме) – речь именно о (бесплатных) Gateway VPC Endpoints, в то время как (платные) Interface endpoints – не пострадали.

Итого: приятно читать столь детальный отчёт, проливающий свет на внутреннюю кухню AWS.

We want to apologize for the impact this event caused for our customers. While we are proud of our track record of availability, we know how critical our services are to our customers, their applications and end users, and their businesses. We know this event impacted many customers in significant ways. We will do everything we can to learn from this event and use it to improve our availability even further.

#postmortem
источник
oleg_log
источник
2021 December 12
oleg_log
источник
oleg_log
Там в твиторах и блогах пошел чёс о том как тяжело живется мейнтейнерам, да даже пост выше, что в большинстве случаев правда, но есть некоторое но.

А какого вообще хрена так было сделано?

Я конечно все понимаю, 1я версия либы делалась 20 лет назад (https://github.com/apache/log4j/search?q=jndi&type=commits) и многое было непонятно как писать код...шо? не, ну кроме как СиндромаПоискаАбстракций я не вижу причин, зачем в логгер был впихнут резолвер. Извините меня, деды-жависты.

И тут же второе "но", моё любимое, брать такие зависимости, в которых ты как бы не уверен. Может быть лучше сказать - ты не можешь их прочитать/понять за разумное время, по отношению к их технической сложности. Во как сказанул.

Пример: нереально прочитать за раз 300К строк логгера (половина это core module, мде), а вот pgx на 17к который все же протокол, а не запись стрингов на диск - как-то можно.

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

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

Но зато бенчмарки с картинками, красивое https://logging.apache.org/log4j/2.x/performance.html
источник
oleg_log
источник
2021 December 13
oleg_log
47.8% ваще не опенсурс, о как. Странно что Go в топ10 не вышел. А ну и Ruby..

https://octoverse.github.com
источник
2021 December 14
oleg_log
источник
oleg_log
источник
2021 December 15
oleg_log
Еще пост кстати https://go.dev/blog/go1.18beta1
источник
oleg_log
Не мое, но…ахахахха(((

Разговаривал с товарищами которые работают на кровавые энтерпрайзы. Пацаны уже 5 дней нормально не спят - на выходных обновили версию библиотеки, но теперь все стоят в очереди на деплоймент :) а вы знаете что в энтерпрайсе сервисы принято поднимать в строгой последовательности
источник
2021 December 16
oleg_log
Пришло время сделать сборку англ подкастов. Спасибо что есть коменты. Поехали.

Конечно же айти в приоритете, но кто нас ограничивает?
источник
2021 December 17
oleg_log
ДУДОСИМ
источник
oleg_log
Вы будете смеяться (нет), но log4j продолжают насиловать и будут делать это ещё долго, так что патчить и обновляться придётся ещё долго и много

> If a string substitution is attempted for any reason on the following string, it will trigger an infinite recursion, and the application will crash: ${${::-${::-$${::-j}}}}

https://issues.apache.org/jira/browse/LOG4J2-3230

Там же в issue есть ещё интересные комментарии.
источник
oleg_log
Вчера TikTok анонсировали свою платформу для стриминга и сейчас, похоже, будет скандал. Потому что оказалось, что софт для стримминга это переделанный OBS, опенсорсное решение для стриминга на всех платформах. Но OBS распространяется под лицензией GPL, а значит и лайв TikTok’а должен быть с этой же лицензией, а это не так.

Чем дальше, тем больше таких скандалов будет. Надеюсь, что теперь решение от тикток будет выложено в исходных текстах для всех https://twitter.com/Naaackers/status/1471494415306788870
источник
oleg_log
Корпорация добра, что ли.

Среди вас есть фанатики, запускающие Linux/BSD на M1?))

https://twitter.com/marcan42/status/1471799568807636994
источник
oleg_log
Вот снёс я все комменты человека в чате по ошибке (сорян, бро) и понял, как же прекрасна эта идея транзакций и MVCC.

Базы данных это очень крутая часть нашей индустрии. Жаль мне не повезло в универе и не хватило ума понять это самому раньше.

Или просто для деструктивных и очень действий еще раз спросить «точно, брат?»
источник
2021 December 18
oleg_log
Сижу значит я читаю слив Твича (помните такое?), вижу вложенные бесконечные циклы (ну for { с break внутри) и понимаю: большинство технологий решений в больших фирмах создается не благодаря талантливым людям, а скорее в поисках обхода проблем, созданными лично.

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

Главное красиво все представить в сеть, а дальше пофиг.
источник
2021 December 19
oleg_log
Решил с утра перечитать https://12factor.net/ Оказывается не так уж и много надо вещей сделать чтобы было приятно пушить вещи в прод. Но человек и тут накосячил.

Вот это еще понравилось:
> Processes should strive to minimize startup time

..и тут же вспоминаю, сколько раз встречал наполнение кеша™ при старте на минутку-две. Зато потом ответы быстрые, да.

Короч совет: пролистайте еще раз список, уверен что каждый найдет что-то, что в текущем проекте не совсем так.

(тут была шутка про 11й пункт о логах и про лог4ж2 с 3 CVE за пару недель)
источник
oleg_log
Спасибо Алексею за комент, была еще такая статья про +7 пунктов https://www.ibm.com/cloud/blog/7-missing-factors-from-12-factor-applications

Там речь в контексте Kubernetes, но мы-то знаем, что без кубов можно жить.
источник
oleg_log
источник