По поводу последнего (S02E15) выпуска @generictalks
Дебаг кубов. Я не знаю, что может быть лучше этого. Удивите и скиньте, если есть.
Правда вещь отличная, ты просто идешь по стрелочками и понимаешь, что не так. Обрадую, скорее всего вы получите ответ.
https://learnk8s.io/troubleshooting-deployments
Дебаг кубов. Я не знаю, что может быть лучше этого. Удивите и скиньте, если есть.
Правда вещь отличная, ты просто идешь по стрелочками и понимаешь, что не так. Обрадую, скорее всего вы получите ответ.
https://learnk8s.io/troubleshooting-deployments
LearnKube
A visual guide on troubleshooting Kubernetes deployments
Troubleshooting in Kubernetes can be a daunting task. In this article you will learn how to diagnose issues in Pods, Services and Ingress.
Ох что я нашел, что я нашееееел.
Короче я больше не буду писать алёрты на Prometheus, просто буду их копировать отсюда. Это на порядки полезнее чем мой сборник docker-compose :):
https://github.com/samber/awesome-prometheus-alerts
Короче я больше не буду писать алёрты на Prometheus, просто буду их копировать отсюда. Это на порядки полезнее чем мой сборник docker-compose :):
https://github.com/samber/awesome-prometheus-alerts
GitHub
GitHub - samber/awesome-prometheus-alerts: 🚨 Collection of Prometheus alerting rules
🚨 Collection of Prometheus alerting rules. Contribute to samber/awesome-prometheus-alerts development by creating an account on GitHub.
Если я услышал странное шипение(?) от макбука, наверное не стоит его ставить на коленки, да?
Причем только когда подключена зарядка. хм
Причем только когда подключена зарядка. хм
oleg_log
Подведём итоги ~1 месяца. Все даже хорошо. Есть посты, за которые не стыдно. Есть приятные и критикующей-правильные отзывы. Есть желание продолжать дальше. Хотя местами хочется уйти в дикие и непрактичные темы, но по большому счёту пользы от таких мало.…
Итоги еще одного месяца.
Январь вышел чуть не таким, как мне хотелось бы (не только в контексте канала(ов)), но определенно хочется делать больше заметок про архитектурные решения. Ибо набралось и ибо накипело.
А для заинтересованных @oleg_log_plus 👌
Январь вышел чуть не таким, как мне хотелось бы (не только в контексте канала(ов)), но определенно хочется делать больше заметок про архитектурные решения. Ибо набралось и ибо накипело.
А для заинтересованных @oleg_log_plus 👌
Forwarded from Engineer Readings
[News] Azure Quantum in public preview
https://cloudblogs.microsoft.com/quantum/2021/02/01/azure-quantum-preview/
https://cloudblogs.microsoft.com/quantum/2021/02/01/azure-quantum-preview/
Microsoft Azure Quantum Blog
Azure Quantum is now in Public Preview - Microsoft Azure Quantum Blog
Azure Quantum is the world’s first full-stack, public cloud ecosystem for quantum solutions.
oleg_log
Прибрал из одного доклада (2017). Код на Scala. Какое значение выдаст последняя строка? Логично, что почти никто не ответит правильно (тут мало скалистов хорошо жаль), но может смешное придумаете) Ответ дам позже.
Объяснение из коментов под видосом:
The koan returns -3 because in Scala operators are methods and applying a method to a conditional automatically casts the return value of both branches to be of the same type. Since float has precedence over long, the long is cast to a float which causes it to lose precision and become 123456792. Then both the long and float are cast to a double, which has the highest precedence, in order to evaluate the subtraction method. The result is 123456789 - 123456792 = -3.
Работает для Scala 2.12.x, в 2.13.х уже не, хотя какая там разница. Проверено в REPL online.
Из доклада автора Jepsen https://xn--r1a.website/oleg_fov/243 (буквально последние 30сек)
The koan returns -3 because in Scala operators are methods and applying a method to a conditional automatically casts the return value of both branches to be of the same type. Since float has precedence over long, the long is cast to a float which causes it to lose precision and become 123456792. Then both the long and float are cast to a double, which has the highest precedence, in order to evaluate the subtraction method. The result is 123456789 - 123456792 = -3.
Работает для Scala 2.12.x, в 2.13.х уже не, хотя какая там разница. Проверено в REPL online.
Из доклада автора Jepsen https://xn--r1a.website/oleg_fov/243 (буквально последние 30сек)
Обожаю вот это мышление: сложные системы рушатся, если в их архитектуре есть единая точка отказа (single point of failure, SPOF).
Поэтому мы накатим кластер etcd и все станет отлично! ведь у нас не будет точки отказа. ..или...?
Нет. Оказывается кластер может разложиться на плесень и мёд, при этом обратно собираться не захочет (пример https://blog.cloudflare.com/a-byzantine-failure-in-the-real-world/).
Как вариант, у нас есть Кафка, все радужно, пишем терабайты, читаем за миллисекунды. Все супер-топ. ...или...?
Нет. Ведь потом мы натыкаемся на 1 сообщ, которое мы не можем обработать (спасибо нашей логике!) и ретраим до конца жизни, пока все не начнет сыпаться из-за распухающей очереди и последующих тормозах.
Я не так много писал сложных систем, чтобы идти и ругаться на всех, но мне кажется вместо ярого убирания SPOF лучше завести graceful degradation, чтобы прилегла часть системы, но остальное продолжало работать.
(можно спорить про связь СПОФ и деградации, что одно без другого никак и тд, но для этого и есть коменты, хех)
Поэтому мы накатим кластер etcd и все станет отлично! ведь у нас не будет точки отказа. ..или...?
Нет. Оказывается кластер может разложиться на плесень и мёд, при этом обратно собираться не захочет (пример https://blog.cloudflare.com/a-byzantine-failure-in-the-real-world/).
Как вариант, у нас есть Кафка, все радужно, пишем терабайты, читаем за миллисекунды. Все супер-топ. ...или...?
Нет. Ведь потом мы натыкаемся на 1 сообщ, которое мы не можем обработать (спасибо нашей логике!) и ретраим до конца жизни, пока все не начнет сыпаться из-за распухающей очереди и последующих тормозах.
Я не так много писал сложных систем, чтобы идти и ругаться на всех, но мне кажется вместо ярого убирания SPOF лучше завести graceful degradation, чтобы прилегла часть системы, но остальное продолжало работать.
(можно спорить про связь СПОФ и деградации, что одно без другого никак и тд, но для этого и есть коменты, хех)
The Cloudflare Blog
A Byzantine failure in the real world
When we review design documents at Cloudflare, we are always on the lookout for Single Points of Failure (SPOFs). But is redundancy enough? In this post we present a timeline of a real world incident, and how an interesting failure mode known as a Byzantine…
***** *** или почему гугл еща та богодельня. Определились бы, что куда писать в одной репе :/
На самом деле я нарвался на этот баг и пришлось делать довнгрейд версии grpc. Одного не пойму, почему у них не завелось. Уже час пытаюсь написать им репродюсер, но все сижу в телеге https://github.com/golang/protobuf/issues/1135
На самом деле я нарвался на этот баг и пришлось делать довнгрейд версии grpc. Одного не пойму, почему у них не завелось. Уже час пытаюсь написать им репродюсер, но все сижу в телеге https://github.com/golang/protobuf/issues/1135
Чем дальше в лес, тем веселее.
импортит....
/tred
Умные люди подсказали что это из-за xds, что похвально, но ящитаю™ это туфтой уже.
А еще баг, о котором я писал выше, можно сказать пофикшен, проблема была в
google.golang.org/grpcимпортит....
github.com/envoyproxy/go-control-plane/tred
Умные люди подсказали что это из-за xds, что похвально, но ящитаю™ это туфтой уже.
А еще баг, о котором я писал выше, можно сказать пофикшен, проблема была в
gogo/protobuf как не странно. Ох ждите кое-что на днях...
oleg_log
Сегодня узнал о такой штуке - gotestsum, которая делает вывод прогона тестов в #go чуть более читаемым. Сделана как обертка над go test --json ./..., поэтому никакой магии. В конце появляется красивый результат, внезапно есть флажок для вывода в JUnit XML…
Вчера гонял много тестов после перехода с
Поэтому вспомнил про эту тулзу, очень помогло читать терминал.
(забавно, там пост выше про 15к на профанкторе, а на днях было 30к, хехе)
gogo/protobuf на golang/protobuf и не хотелось ручками искать неведанные декларации (разные значения енамов генерятся и таймстемпы другие).Поэтому вспомнил про эту тулзу, очень помогло читать терминал.
(забавно, там пост выше про 15к на профанкторе, а на днях было 30к, хехе)
Короч, рофлите.
Есть ветка dev, есть master. Одна на стейджинг, другая на прод. Ну чотко.
Все ПР в дев, потому дев мержится в мастер. Ну чотко.
Вчера документация была смержена в мастер, был ПР смержить мастер в дев. Ну...чотко. Так можно.
Вот только галочку "удалить ветку после мержа" в ПР кто-то не убрал)))
masterless-driven development
Есть ветка dev, есть master. Одна на стейджинг, другая на прод. Ну чотко.
Все ПР в дев, потому дев мержится в мастер. Ну чотко.
Вчера документация была смержена в мастер, был ПР смержить мастер в дев. Ну...чотко. Так можно.
Вот только галочку "удалить ветку после мержа" в ПР кто-то не убрал)))
masterless-driven development
У вас фронт и бекенд в одной репе? (в контексте монорепо)
Anonymous Poll
31%
Да
40%
Не
17%
Мультирепо
12%
Не применимо
Ооо, вот эту штуковину нужно перед каждым написанием запроса смотреть.
Буквально недавно добавили (и/или поправили) индекс в MySQL и с 20сек все стало ходить за 1.5 (строк там до 1М, но запросы муторные, эдакие статистические).
(пикча из доклада https://xn--r1a.website/oleg_fov/254)
Буквально недавно добавили (и/или поправили) индекс в MySQL и с 20сек все стало ходить за 1.5 (строк там до 1М, но запросы муторные, эдакие статистические).
(пикча из доклада https://xn--r1a.website/oleg_fov/254)