Gleb Pomykalov

1.2K posts

Gleb Pomykalov

Gleb Pomykalov

@pgleb

Leading Rust development @ Workato

Katılım Ocak 2009
1.5K Takip Edilen263 Takipçiler
Gleb Pomykalov retweetledi
Omkar
Omkar@psomkar1·
Codex is fucking insane i know literally NOTHING about coding. ZERO. and i just built a fully functioning web app in minutes. http://localhost:3000/ check it out
English
255
34
864
157.4K
Gleb Pomykalov
Gleb Pomykalov@pgleb·
@elonmusk Tried to finance or lease two teslas after moving to the US. Tesla took my money and didn't approve the financing. Never returned the money. Nobody responded for weeks in the chat.
English
0
0
0
26
Elon Musk
Elon Musk@elonmusk·
Please reply to this post with any difficulties you may have had in trying to buy a Tesla. Our goal is for the purchase and delivery experience to be fast and simple, with accurate answers to your questions. The key test is that you would recommend it to a friend.
English
61.1K
10.7K
127.6K
40.1M
Kirill (hexlet.io)
Kirill (hexlet.io)@mokevnin·
Так ребят, серьезный вопрос. Какой терминал вы используете в маке? Надо куда-то с iterm валить?
Русский
119
1
72
15.4K
Gleb Pomykalov
Gleb Pomykalov@pgleb·
@mokevnin Я пока что сходил в США к одному врачу пару раз, и это был private practice - все быстро и очень клиент-ориентировано.
Русский
1
0
5
262
Kirill (hexlet.io)
Kirill (hexlet.io)@mokevnin·
Помню в детстве, час-два в очереди к доктору было очень напряжным ожиданием. Потом появилась недорогая (по мировым меркам) платная медицина и я забыл про очереди на многие годы. А вот вернулось все взад, каждый поход к доктору это час ожидания в лучшем случае, а обычно два
Русский
6
0
24
3.7K
Gleb Pomykalov retweetledi
Zach Vorhies / Google Whistleblower
Zach Vorhies / Google Whistleblower@Perpetualmaniac·
Crowdstrike Analysis: It was a NULL pointer from the memory unsafe C++ language. Since I am a professional C++ programmer, let me decode this stack trace dump for you.
Zach Vorhies / Google Whistleblower tweet media
English
3K
19.8K
96.7K
34.9M
Gleb Pomykalov
Gleb Pomykalov@pgleb·
@Lazin @mokevnin Монолит на C++ в котором все хорошо. Это что-то из вселенной марвел.
Русский
1
0
0
38
Kirill (hexlet.io)
Kirill (hexlet.io)@mokevnin·
Любой распределенный код заведомо сложнее монолита, потому что сравнивать надо не код сервиса с монолитом, а всю систему сервисов с монолитом. Распределенный код писать сложнее. Если люди не могут нормально написать код внутри монолита, то распределенная систем будет еще хуже
Русский
16
7
122
11.7K
Gleb Pomykalov
Gleb Pomykalov@pgleb·
@t3dotgg I always wonder, what is the evidence basis for Rust async criticism? Are people dropping Rust in favor of something else? I've built many different production async apps on Rust, and nothing mentioned is a real issue. Real issues are in other places of the language.
English
0
0
0
69
Theo - t3.gg
Theo - t3.gg@theo·
The fact that Rust is really bad at asynchronous stuff is one of the biggest unforced Ls of modern software design
English
78
30
1.5K
586.4K
Gleb Pomykalov
Gleb Pomykalov@pgleb·
@Lazin @mokevnin А о каких технологиях ты говоришь? Типа на чем лучше написать такой монолит, что бы и быстро, и просто и сертификации все легко проходить?
Русский
1
0
0
21
Eugene Lazin - @lazin.bsky.social
@pgleb @mokevnin Комплайенс/сертификации тоже проще с монолитом получать, так как там endpoint-ов сильно меньше.
Русский
1
0
0
22
Gleb Pomykalov
Gleb Pomykalov@pgleb·
@Lazin @mokevnin Да примерно так же, но по-другому. нужно набирать опыт и использовать другие практики. Даунтайм не желателен, но как крайняя мера может сработать. Можно например не сфейлить запросы, а просто их чуток придержать пока сервис тормозится и стартует. и в монолите так тоже бывает
Русский
1
0
0
12
Eugene Lazin - @lazin.bsky.social
@pgleb @mokevnin А SLA может быть в контракте, например прописан, поэтому даунтайм - нельзя. В итоге все операции приходится тщательно тестировать, даже если они кажутся тривиальными. А с микросервисами это сильно больше работы.
Русский
1
0
0
31
Gleb Pomykalov
Gleb Pomykalov@pgleb·
@Lazin @mokevnin ну вот, ты сам говоришь где лучше иметь микросервисы. и даже причины назвал. А еще если код специализируется , и зависимости хитрые. Или особые security требования из-за сертификаций. Чем дальше растет и чем более крупным клиентам продается - тем больше такого.
Русский
1
0
0
14
Eugene Lazin - @lazin.bsky.social
@pgleb @mokevnin Ну такое. Где-то пилят, где-то не пилят. Пилить могут и по чисто продуктовым соображениями (on-prem - монолит удобнее, multitenancy - удобнее порезать монолит на части, чтобы масштабировать их независимо и шарить какие-то из них между разными клиентами).
Русский
1
0
0
17
Gleb Pomykalov
Gleb Pomykalov@pgleb·
@Lazin @mokevnin Это все хорошие практики в обоих архитектурах. Другое дело что тестировать все возможные комбинации - это всегда очень сложно, в том числе и в монолите. Что бы это обходить, есть хорошие практики. И сильно микросвервисам это не вредит, просто подходы меняются.
Русский
1
0
0
11
Eugene Lazin - @lazin.bsky.social
@pgleb @mokevnin Можно конечно. Мой поинт не в том, что нельзя, а в том что это 1) это сложно 2) Нужно тестировать _все_ и 3) с монолитом это проще, в монолит можно добавить feature флаги, например, и написать апгрейд тест. Микросервисы так, судя по всему, никто не тестирует.
Русский
2
0
0
37
Gleb Pomykalov
Gleb Pomykalov@pgleb·
@Lazin @mokevnin Может, но с ростом компаний "пилить монолит" часто становится важной стратегией. И это не потому что там все ничего не понимают.
Русский
1
0
0
13
Eugene Lazin - @lazin.bsky.social
@pgleb @mokevnin А может и наоборот, в принципе может произойти что угодно, что не противоречит законам физики ¯⁠\⁠_⁠(⁠ツ⁠)⁠_⁠/⁠¯
Русский
1
0
0
11
Gleb Pomykalov
Gleb Pomykalov@pgleb·
@Lazin @mokevnin катить в правильном порядке, не ломать обратную совместимость, делать несколько релизов с последовательной миграцией. бывает так, что плохо получается - можно что-то придумывать типа короткого даунтайма. но решить все можно.
Русский
1
0
0
14
Eugene Lazin - @lazin.bsky.social
@pgleb @mokevnin Не backward а forward incompatible. Новая версия сервиса может отправить сообщение старой версии сервиса и сломать его. Можно конечно сделать полностью новый кластер и переключить клиентов на него, но тут ещё сложнее и опаснее, да не всегда применимо.
Русский
1
0
0
11
Gleb Pomykalov
Gleb Pomykalov@pgleb·
@Lazin @mokevnin А что же делать, если из тысяч метрик двух нужных не оказалось рядом?
Русский
0
0
0
9
Eugene Lazin - @lazin.bsky.social
@pgleb @mokevnin А можно открыть дашборд где все уже есть. Никто не мешает разделить метрики монолита на части, можно собрать все метрики с микросервисов в одном месте. Ортогональные вещи.
Русский
1
0
0
8
Gleb Pomykalov
Gleb Pomykalov@pgleb·
@Lazin @mokevnin чего только не сделаешь, когда в проблеме нужно разобраться. собрать микро-дашборд под какую-то сложную ситуацию уж совсем база.
Русский
1
0
0
12
Eugene Lazin - @lazin.bsky.social
@pgleb @mokevnin Можно иметь высокую связность и низкую модульность в немонолите и можно иметь отлично протестированный монолит. Это ортогональные вещи. Плохо когда что-то одно объявляют панацеей от всех бед.
Русский
1
0
0
21
Gleb Pomykalov
Gleb Pomykalov@pgleb·
@Lazin @mokevnin Нельзя просто так сделать backward-incompatible change. планы выкатки согласуются и делаются в строгом порядке. множество инстансов может быть только одной версии. Другое это уже разные тенанты - отдельная песня.
Русский
1
0
0
15
Eugene Lazin - @lazin.bsky.social
@pgleb @mokevnin что значит табу? добавили какую-то фичу, для этого потребовался новый api, сервисы - рсапределенные, может быть поднято множество инстансов одного сервиса, значит либо останавливаем все и обновляем, либо rolling upgrade и тестируем разные возможные комбинации старое/новое
Русский
1
0
0
10
Gleb Pomykalov
Gleb Pomykalov@pgleb·
@Lazin @mokevnin ну вот со временем доп сложности в монолите может стать больше чем в микросервисах. не всегда, но часто.
Русский
1
0
0
10
Eugene Lazin - @lazin.bsky.social
@pgleb @mokevnin любая комбинация сервисов в микросервисной архитектуре требует не только индивидуальных тестов но и end to end тест которые проверяет как это все работает вместе - тут вылезает доп. сложность
Русский
1
0
0
13
Gleb Pomykalov
Gleb Pomykalov@pgleb·
@Lazin @mokevnin Нет-нет, я даже о банальных вещах как время исполнения в CI и кол-ве тестов. Небольшой сервис требует меньше тестов чем гигантский монолит. Это не отменяет возможности строить большой интеграционный test-suite, но тут важна степень свободы, ограниченя этих тестов и процесс.
Русский
2
0
0
14
Eugene Lazin - @lazin.bsky.social
@pgleb @mokevnin Большой сервис сложно тестировать, не важно монолит или нет. В немонолите больше corner case-ов.
Русский
1
0
0
13
Gleb Pomykalov
Gleb Pomykalov@pgleb·
@Lazin @mokevnin Открыть два дашборда на одном промежутке времени. Интересующие значения можно собрать на временном дашборде, если что-то происходит в конкретной области. Затем логи и трейсы.
Русский
1
0
0
11