Forwarded from AWS Notes
Подробный постмортем падения 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.
#postmortem
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
Камешек в сторону интерполяции и неявности, хах. Log4j though, doesn't treat strings as black boxes. It inspects its contents and checks if it contains any "variables" that need to be resolved before spitting out. Now there's a bunch of ways to interpolate…
GitHub
GitHub - bradfitz/jndi: a irresponsibly bad logging library
a irresponsibly bad logging library. Contribute to bradfitz/jndi development by creating an account on GitHub.
Как все просто https://twitter.com/FiloSottile/status/1469749412998041610
Twitter
Filippo ${jndi:ldap://filippo.io/x} Valsorda
We all agree the status quo is unsustainable. Here are 1,000 words on how we could get the role of Open Source maintainer to graduate to a real, properly paid profession. The thing is, companies need it as much as maintainers do. blog.filippo.io/professional…
Там в твиторах и блогах пошел чёс о том как тяжело живется мейнтейнерам, да даже пост выше, что в большинстве случаев правда, но есть некоторое но.
А какого вообще хрена так было сделано?
Я конечно все понимаю, 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
А какого вообще хрена так было сделано?
Я конечно все понимаю, 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
GitHub
Search · jndi · apache/logging-log4j1
Apache log4j1. Contribute to apache/logging-log4j1 development by creating an account on GitHub.
oleg_log
Там в твиторах и блогах пошел чёс о том как тяжело живется мейнтейнерам, да даже пост выше, что в большинстве случаев правда, но есть некоторое но. А какого вообще хрена так было сделано? Я конечно все понимаю, 1я версия либы делалась 20 лет назад (http…
This media is not supported in your browser
VIEW IN TELEGRAM
47.8% ваще не опенсурс, о как. Странно что Go в топ10 не вышел. А ну и Ruby..
https://octoverse.github.com
https://octoverse.github.com
The State of the Octoverse
Octoverse 2026: The state of open source
See how a record year of growth reached every industry, every field, and every kind of builder in the 2026 Octoverse report
Не мое, но…ахахахха(((
Разговаривал с товарищами которые работают на кровавые энтерпрайзы. Пацаны уже 5 дней нормально не спят - на выходных обновили версию библиотеки, но теперь все стоят в очереди на деплоймент :) а вы знаете что в энтерпрайсе сервисы принято поднимать в строгой последовательности
Разговаривал с товарищами которые работают на кровавые энтерпрайзы. Пацаны уже 5 дней нормально не спят - на выходных обновили версию библиотеки, но теперь все стоят в очереди на деплоймент :) а вы знаете что в энтерпрайсе сервисы принято поднимать в строгой последовательности
Пришло время сделать сборку англ подкастов. Спасибо что есть коменты. Поехали.
Конечно же айти в приоритете, но кто нас ограничивает?
Конечно же айти в приоритете, но кто нас ограничивает?
Forwarded from Технологический Болт Генона
Вы будете смеяться (нет), но log4j продолжают насиловать и будут делать это ещё долго, так что патчить и обновляться придётся ещё долго и много
>
https://issues.apache.org/jira/browse/LOG4J2-3230
Там же в issue есть ещё интересные комментарии.
>
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 есть ещё интересные комментарии.
Forwarded from addmeto (Grigory Bakunov 🧪)
Вчера TikTok анонсировали свою платформу для стриминга и сейчас, похоже, будет скандал. Потому что оказалось, что софт для стримминга это переделанный OBS, опенсорсное решение для стриминга на всех платформах. Но OBS распространяется под лицензией GPL, а значит и лайв TikTok’а должен быть с этой же лицензией, а это не так.
Чем дальше, тем больше таких скандалов будет. Надеюсь, что теперь решение от тикток будет выложено в исходных текстах для всех https://twitter.com/Naaackers/status/1471494415306788870
Чем дальше, тем больше таких скандалов будет. Надеюсь, что теперь решение от тикток будет выложено в исходных текстах для всех https://twitter.com/Naaackers/status/1471494415306788870
Twitter
Naaackers
Remember yesterday’s news about TikTok releasing a go live platform? Turns out it’s a fork of @OBSProject Shoutout to @HunterAP23 for pointing this out STOP STEALING FROM OBS JESUS
Корпорация добра, что ли.
Среди вас есть фанатики, запускающие Linux/BSD на M1?))
https://twitter.com/marcan42/status/1471799568807636994
Среди вас есть фанатики, запускающие Linux/BSD на M1?))
https://twitter.com/marcan42/status/1471799568807636994
Twitter
Hector Martin
Looks like Apple changed the requirements for Mach-O kernel files in 12.1, breaking our existing installation process... and they *also* added a raw image mode that will never break again and doesn't require Mach-Os. And people said they wouldn't help. This…
Вот снёс я все комменты человека в чате по ошибке (сорян, бро) и понял, как же прекрасна эта идея транзакций и MVCC.
Базы данных это очень крутая часть нашей индустрии. Жаль мне не повезло в универе и не хватило ума понять это самому раньше.
Или просто для деструктивных и очень действий еще раз спросить «точно, брат?»
Базы данных это очень крутая часть нашей индустрии. Жаль мне не повезло в универе и не хватило ума понять это самому раньше.
Или просто для деструктивных и очень действий еще раз спросить «точно, брат?»
Сижу значит я читаю слив Твича (помните такое?), вижу вложенные бесконечные циклы (ну технологий решений в больших фирмах создается не благодаря талантливым людям, а скорее в поисках обхода проблем, созданными лично.
Наверное я сейчас сильно от бедра стрельнул умозаключением, но хз, что-то ими написанное и пересечение с Twirp подтолкнули на такую мысль, что у ребяток ничего быстро не работало, контрактов/общения между командами не было, вот и пошли выдумывать.
Главное красиво все представить в сеть, а дальше пофиг.
for { с break внутри) и понимаю: большинство Наверное я сейчас сильно от бедра стрельнул умозаключением, но хз, что-то ими написанное и пересечение с Twirp подтолкнули на такую мысль, что у ребяток ничего быстро не работало, контрактов/общения между командами не было, вот и пошли выдумывать.
Главное красиво все представить в сеть, а дальше пофиг.
Решил с утра перечитать https://12factor.net/ Оказывается не так уж и много надо вещей сделать чтобы было приятно пушить вещи в прод. Но человек и тут накосячил.
Вот это еще понравилось:
> Processes should strive to minimize startup time
..и тут же вспоминаю, сколько раз встречал наполнение кеша™ при старте на минутку-две. Зато потом ответы быстрые, да.
Короч совет: пролистайте еще раз список, уверен что каждый найдет что-то, что в текущем проекте не совсем так.
(тут была шутка про 11й пункт о логах и про лог4ж2 с 3 CVE за пару недель)
Вот это еще понравилось:
> Processes should strive to minimize startup time
..и тут же вспоминаю, сколько раз встречал наполнение кеша™ при старте на минутку-две. Зато потом ответы быстрые, да.
Короч совет: пролистайте еще раз список, уверен что каждый найдет что-то, что в текущем проекте не совсем так.
12factor.net
The Twelve-Factor App
A methodology for building modern, scalable, maintainable software-as-a-service apps.
oleg_log
Решил с утра перечитать https://12factor.net/ Оказывается не так уж и много надо вещей сделать чтобы было приятно пушить вещи в прод. Но человек и тут накосячил. Вот это еще понравилось: > Processes should strive to minimize startup time ..и тут же вспоминаю…
Спасибо Алексею за комент, была еще такая статья про +7 пунктов https://www.ibm.com/cloud/blog/7-missing-factors-from-12-factor-applications
Там речь в контексте Kubernetes, но мы-то знаем, что без кубов можно жить.
Там речь в контексте Kubernetes, но мы-то знаем, что без кубов можно жить.
Ibm
Cloud | IBM
Leverage educational content like blogs, articles, videos, podcasts, reports and more, crafted by IBM experts, on emerging cloud technologies