zhub.link is one of the many independent Mastodon servers you can use to participate in the fediverse.

Administered by:

Server stats:

28
active users

#распределенные_системы

1 post1 participant0 posts today
Habr<p>Три необсуждаемых вопроса о параллельной распределённой обработке данных — чтобы жить стало легче</p><p>В публикациях по распределённой параллельной обработке данных весьма редко разбираются сценарии отказа с точки зрения совместной работы воркеров и их влияния друг на друга. На примере решения несложного архитектурного кейса автор покажет, что ответов только на 3 вопроса при проектировании будет достаточно для обеспечения жёстких нефункциональных требований.</p><p><a href="https://habr.com/ru/articles/891744/" target="_blank" rel="nofollow noopener noreferrer" translate="no"><span class="invisible">https://</span><span class="">habr.com/ru/articles/891744/</span><span class="invisible"></span></a></p><p><a href="https://zhub.link/tags/%D0%BA%D0%BE%D0%BD%D0%BA%D1%83%D1%80%D0%B5%D0%BD%D1%82%D0%BD%D0%BE%D1%81%D1%82%D1%8C" class="mention hashtag" rel="tag">#<span>конкурентность</span></a> <a href="https://zhub.link/tags/%D1%80%D0%B0%D1%81%D0%BF%D1%80%D0%B5%D0%B4%D0%B5%D0%BB%D0%B5%D0%BD%D0%BD%D1%8B%D0%B5_%D1%81%D0%B8%D1%81%D1%82%D0%B5%D0%BC%D1%8B" class="mention hashtag" rel="tag">#<span>распределенные_системы</span></a> <a href="https://zhub.link/tags/%D1%80%D0%B0%D1%81%D0%BF%D1%80%D0%B5%D0%B4%D0%B5%D0%BB%D1%91%D0%BD%D0%BD%D0%B0%D1%8F_%D0%BE%D0%B1%D1%80%D0%B0%D0%B1%D0%BE%D1%82%D0%BA%D0%B0_%D0%B4%D0%B0%D0%BD%D0%BD%D1%8B%D1%85" class="mention hashtag" rel="tag">#<span>распределённая_обработка_данных</span></a> <a href="https://zhub.link/tags/%D0%B3%D0%B5%D0%BE%D1%80%D0%B5%D0%B7%D0%B5%D1%80%D0%B2%D0%B8%D1%80%D0%BE%D0%B2%D0%B0%D0%BD%D0%B8%D0%B5" class="mention hashtag" rel="tag">#<span>георезервирование</span></a> <a href="https://zhub.link/tags/%D1%82%D0%B0%D1%81%D0%BA%D0%BC%D0%B5%D0%BD%D0%B5%D0%B4%D0%B6%D0%B5%D1%80" class="mention hashtag" rel="tag">#<span>таскменеджер</span></a> <a href="https://zhub.link/tags/%D1%82%D0%B0%D1%81%D0%BA%D1%80%D0%B0%D0%BD%D0%BD%D0%B5%D1%80%D1%8B" class="mention hashtag" rel="tag">#<span>таскраннеры</span></a> <a href="https://zhub.link/tags/%D0%B4%D0%B0%D1%82%D0%B0%D0%B8%D0%BD%D0%B6%D0%B8%D0%BD%D0%B8%D1%80%D0%B8%D0%BD%D0%B3" class="mention hashtag" rel="tag">#<span>датаинжиниринг</span></a> <a href="https://zhub.link/tags/%D0%BF%D0%B0%D1%80%D0%B0%D0%BB%D0%BB%D0%B5%D0%BB%D0%B8%D0%B7%D0%BC" class="mention hashtag" rel="tag">#<span>параллелизм</span></a></p>
Habr<p>Конфигурирование кластерных систем с помощью Sparky и Rakulang</p><p>В общем случае конфигуриоование распределенных и кластерных систем - задача непростая. Для кого может быть полезным инструмент Sparky? Если у вас не используется кубернетес и вам приходится конфигурить / обновлять распределенную инфраструктуры со сложными взаимосвязями. Здесь я покажу несколько примеров не претендующих на исчерпывающее покрытие данной темы Базовая конфигурация Для того что бы все работало необходимо установить Sparky агенты на все настаиваемые ноды вашего кластера и обеспечить сетевую связанность на уровне http/https</p><p><a href="https://habr.com/ru/articles/886660/" target="_blank" rel="nofollow noopener noreferrer" translate="no"><span class="invisible">https://</span><span class="">habr.com/ru/articles/886660/</span><span class="invisible"></span></a></p><p><a href="https://zhub.link/tags/%D0%B8%D0%BD%D1%84%D1%80%D0%B0%D1%81%D1%82%D1%80%D1%83%D0%BA%D1%82%D1%83%D1%80%D0%B0" class="mention hashtag" rel="tag">#<span>инфраструктура</span></a> <a href="https://zhub.link/tags/%D0%BA%D0%BB%D0%B0%D1%81%D1%82%D0%B5%D1%80%D1%8B" class="mention hashtag" rel="tag">#<span>кластеры</span></a> <a href="https://zhub.link/tags/devops" class="mention hashtag" rel="tag">#<span>devops</span></a> <a href="https://zhub.link/tags/%D1%80%D0%B0%D1%81%D0%BF%D1%80%D0%B5%D0%B4%D0%B5%D0%BB%D0%B5%D0%BD%D0%BD%D1%8B%D0%B5_%D1%81%D0%B8%D1%81%D1%82%D0%B5%D0%BC%D1%8B" class="mention hashtag" rel="tag">#<span>распределенные_системы</span></a> <a href="https://zhub.link/tags/infrastructureasacode" class="mention hashtag" rel="tag">#<span>infrastructureasacode</span></a></p>
Habr<p>Apache Flink: использование и автоматическая проверка собственного сериализатора состояния</p><p>Привет, Хабр! На связи Александр Бобряков, техлид команды МТС Аналитики. Это мой финальный пост про Apache Flink. В предыдущих частях мы рассматривали процессы сериализации данных, написали кастомный сериализатор, а также покрыли его тестами. В них проверялась поддержка эволюции схемы состояния. Для этого мы реализовали много удобных абстракций, связанных с перезагрузкой Flink MiniCluster, компиляцией тестовых java-классов, использованием их в classpath кластера и так далее. В этом материале мы применим разработанный сериализатор JacksonStateSerializer в бою, а также автоматизируем проверку эволюции схемы для всех наших классов, участвующих в сериализации. Весь разбираемый исходный код можно найти в репозитории AlexanderBobryakov/flink-spring . В master-ветке представлен итоговый проект по всей серии. Данная статья соответствует релизной ветке с названием release/11_JacksonEvolvingState . По мере выхода новых материалов на Хабре ссылки на них будут появляться ниже. Список моих постов про Flink:</p><p><a href="https://habr.com/ru/companies/ru_mts/articles/878070/" target="_blank" rel="nofollow noopener noreferrer" translate="no"><span class="invisible">https://</span><span class="ellipsis">habr.com/ru/companies/ru_mts/a</span><span class="invisible">rticles/878070/</span></a></p><p><a href="https://zhub.link/tags/java" class="mention hashtag" rel="tag">#<span>java</span></a> <a href="https://zhub.link/tags/big_data" class="mention hashtag" rel="tag">#<span>big_data</span></a> <a href="https://zhub.link/tags/data_engineering" class="mention hashtag" rel="tag">#<span>data_engineering</span></a> <a href="https://zhub.link/tags/%D1%80%D0%B0%D1%81%D0%BF%D1%80%D0%B5%D0%B4%D0%B5%D0%BB%D0%B5%D0%BD%D0%BD%D1%8B%D0%B5_%D1%81%D0%B8%D1%81%D1%82%D0%B5%D0%BC%D1%8B" class="mention hashtag" rel="tag">#<span>распределенные_системы</span></a> <a href="https://zhub.link/tags/%D1%81%D0%B5%D1%80%D0%B8%D0%B0%D0%BB%D0%B8%D0%B7%D0%B0%D1%86%D0%B8%D1%8F_%D0%B4%D0%B0%D0%BD%D0%BD%D1%8B%D1%85" class="mention hashtag" rel="tag">#<span>сериализация_данных</span></a> <a href="https://zhub.link/tags/%D1%8D%D0%B2%D0%BE%D0%BB%D1%8E%D1%86%D0%B8%D1%8F_%D1%81%D1%85%D0%B5%D0%BC%D1%8B" class="mention hashtag" rel="tag">#<span>эволюция_схемы</span></a> <a href="https://zhub.link/tags/%D0%A2%D0%B5%D1%81%D1%82%D0%B8%D1%80%D0%BE%D0%B2%D0%B0%D0%BD%D0%B8%D0%B5_Flink" class="mention hashtag" rel="tag">#<span>Тестирование_Flink</span></a></p>
Habr<p>Одна опция TCP-стека спасет приложение от даунтайма</p><p>Всем привет, меня зовут Вадим Макеров, я работаю в iSpring бэкенд-разработчиком. Однажды у нас в продукте был инцидент, который привел к даунтайму LMS и происходил несколько раз, в течении нескольких дней. Причина оказалась нетривиальной и находилась на уровне сетевых настроек подключений между сервисами. Узнать что за опция спасает от даунтайма</p><p><a href="https://habr.com/ru/companies/ispring/articles/869800/" target="_blank" rel="nofollow noopener noreferrer" translate="no"><span class="invisible">https://</span><span class="ellipsis">habr.com/ru/companies/ispring/</span><span class="invisible">articles/869800/</span></a></p><p><a href="https://zhub.link/tags/tcp" class="mention hashtag" rel="tag">#<span>tcp</span></a> <a href="https://zhub.link/tags/go" class="mention hashtag" rel="tag">#<span>go</span></a> <a href="https://zhub.link/tags/%D1%81%D0%B5%D1%82%D1%8C" class="mention hashtag" rel="tag">#<span>сеть</span></a> <a href="https://zhub.link/tags/%D0%BC%D0%B8%D0%BA%D1%80%D0%BE%D1%81%D0%B5%D1%80%D0%B2%D0%B8%D1%81%D1%8B" class="mention hashtag" rel="tag">#<span>микросервисы</span></a> <a href="https://zhub.link/tags/%D1%80%D0%B0%D1%81%D0%BF%D1%80%D0%B5%D0%B4%D0%B5%D0%BB%D0%B5%D0%BD%D0%BD%D1%8B%D0%B5_%D1%81%D0%B8%D1%81%D1%82%D0%B5%D0%BC%D1%8B" class="mention hashtag" rel="tag">#<span>распределенные_системы</span></a> <a href="https://zhub.link/tags/service_mesh" class="mention hashtag" rel="tag">#<span>service_mesh</span></a> <a href="https://zhub.link/tags/%D0%B8%D0%BD%D1%86%D0%B8%D0%B4%D0%B5%D0%BD%D1%82" class="mention hashtag" rel="tag">#<span>инцидент</span></a> <a href="https://zhub.link/tags/kubernetes" class="mention hashtag" rel="tag">#<span>kubernetes</span></a></p>
Habr<p>Picostress — наш подход к нагрузочному тестированию</p><p>Привет, меня зовут Георгий Ломакин, и я инженер по нагрузочному тестированию в компании Picodata — разработчике одноимённой NewSQL СУБД. В этой статье я поделюсь своим опытом нагрузочного тестирования и расскажу, как мы строили эту практику с нуля. Мы выбираем распределённые системы за производительность и надёжность. Однако без постоянного нагрузочного тестирования и анализа отчётов после него, и то и другое лишь обещания. Конечно же, нагрузочное тестирование обязательно и в нашей команде, разрабатывающей распределённую NewSQL — базу данных Picodata .</p><p><a href="https://habr.com/ru/companies/arenadata/articles/864974/" target="_blank" rel="nofollow noopener noreferrer" translate="no"><span class="invisible">https://</span><span class="ellipsis">habr.com/ru/companies/arenadat</span><span class="invisible">a/articles/864974/</span></a></p><p><a href="https://zhub.link/tags/k6" class="mention hashtag" rel="tag">#<span>k6</span></a> <a href="https://zhub.link/tags/%D0%BD%D0%B0%D0%B3%D1%80%D1%83%D0%B7%D0%BE%D1%87%D0%BD%D0%BE%D0%B5_%D1%82%D0%B5%D1%81%D1%82%D0%B8%D1%80%D0%BE%D0%B2%D0%B0%D0%BD%D0%B8%D0%B5" class="mention hashtag" rel="tag">#<span>нагрузочное_тестирование</span></a> <a href="https://zhub.link/tags/%D1%82%D0%B5%D1%81%D1%82%D0%B8%D1%80%D0%BE%D0%B2%D0%B0%D0%BD%D0%B8%D0%B5_%D0%BF%D0%BE" class="mention hashtag" rel="tag">#<span>тестирование_по</span></a> <a href="https://zhub.link/tags/%D0%B1%D0%B0%D0%B7%D1%8B_%D0%B4%D0%B0%D0%BD%D0%BD%D1%8B%D1%85" class="mention hashtag" rel="tag">#<span>базы_данных</span></a> <a href="https://zhub.link/tags/picodata" class="mention hashtag" rel="tag">#<span>picodata</span></a> <a href="https://zhub.link/tags/xk6" class="mention hashtag" rel="tag">#<span>xk6</span></a> <a href="https://zhub.link/tags/go" class="mention hashtag" rel="tag">#<span>go</span></a> <a href="https://zhub.link/tags/golang" class="mention hashtag" rel="tag">#<span>golang</span></a> <a href="https://zhub.link/tags/%D1%80%D0%B0%D1%81%D0%BF%D1%80%D0%B5%D0%B4%D0%B5%D0%BB%D0%B5%D0%BD%D0%BD%D1%8B%D0%B5_%D1%81%D0%B8%D1%81%D1%82%D0%B5%D0%BC%D1%8B" class="mention hashtag" rel="tag">#<span>распределенные_системы</span></a> <a href="https://zhub.link/tags/sql" class="mention hashtag" rel="tag">#<span>sql</span></a></p>
Habr<p>[Перевод] Почему программное обеспечение движется только вперёд</p><p>В случае масштабных систем не происходит ни откатов, ни запланированных переходов (cut-over) — ваше ПО движется только вперёд. Примечание: это электронное письмо, взятое из книги, которую я пишу последние три недели. В ней я отражаю сложную идею, которую вынашивал 10 лет. Я постарался сократить его содержание для удобства восприятия и хотел бы услышать ваши мысли по этому поводу.</p><p><a href="https://habr.com/ru/companies/ruvds/articles/856990/" target="_blank" rel="nofollow noopener noreferrer" translate="no"><span class="invisible">https://</span><span class="ellipsis">habr.com/ru/companies/ruvds/ar</span><span class="invisible">ticles/856990/</span></a></p><p><a href="https://zhub.link/tags/ruvds_%D0%BF%D0%B5%D1%80%D0%B5%D0%B2%D0%BE%D0%B4" class="mention hashtag" rel="tag">#<span>ruvds_перевод</span></a> <a href="https://zhub.link/tags/%D1%80%D0%B0%D1%81%D0%BF%D1%80%D0%B5%D0%B4%D0%B5%D0%BB%D0%B5%D0%BD%D0%BD%D1%8B%D0%B5_%D1%81%D0%B8%D1%81%D1%82%D0%B5%D0%BC%D1%8B" class="mention hashtag" rel="tag">#<span>распределенные_системы</span></a> <a href="https://zhub.link/tags/%D0%B1%D0%B0%D0%B7%D1%8B_%D0%B4%D0%B0%D0%BD%D0%BD%D1%8B%D1%85" class="mention hashtag" rel="tag">#<span>базы_данных</span></a> <a href="https://zhub.link/tags/%D1%80%D0%B0%D0%B7%D1%80%D0%B0%D0%B1%D0%BE%D1%82%D0%BA%D0%B0_%D0%BF%D1%80%D0%B8%D0%BB%D0%BE%D0%B6%D0%B5%D0%BD%D0%B8%D0%B9" class="mention hashtag" rel="tag">#<span>разработка_приложений</span></a> <a href="https://zhub.link/tags/%D1%8D%D0%BB%D0%B5%D0%BA%D1%82%D1%80%D0%BE%D0%BD%D0%BD%D0%B0%D1%8F_%D0%BA%D0%BE%D0%BC%D0%BC%D0%B5%D1%80%D1%86%D0%B8%D1%8F" class="mention hashtag" rel="tag">#<span>электронная_коммерция</span></a></p>
Habr<p>Вся правда о переходе с монолита на микросервисы, когда у тебя сеть из десятков тысяч магазинов: опыт Х5 Tech</p><p>Привет, Хабр! Меня зовут Алексей Топчий, я уже более 20 лет работаю в IT. Прошёл все уровни: бэкенд, фронтенд, фулстек со множеством языков и технологий. В СберТехе занимался Единой фронтальной системой, в Яндексе участвовал в стартапе, связанном с FMCG. Сейчас занимаюсь сервисом ценообразования в сети магазинов «Пятёрочка» (X5 Group). В этой статье я приоткрываю тайну бэк-офиса современного магазина и делюсь опытом, как мы развиваем программный комплекс, что интересного при этом происходит, с какими проблемами сталкиваемся и как их решаем. Статья будет полезна архитекторам, техническим менеджерам и всем, кто интересуется преобразованием корпоративных IT-ландшафтов.</p><p><a href="https://habr.com/ru/companies/netologyru/articles/857026/" target="_blank" rel="nofollow noopener noreferrer" translate="no"><span class="invisible">https://</span><span class="ellipsis">habr.com/ru/companies/netology</span><span class="invisible">ru/articles/857026/</span></a></p><p><a href="https://zhub.link/tags/%D0%BC%D0%B0%D1%81%D1%88%D1%82%D0%B0%D0%B1%D0%B8%D1%80%D0%BE%D0%B2%D0%B0%D0%BD%D0%B8%D0%B5" class="mention hashtag" rel="tag">#<span>масштабирование</span></a> <a href="https://zhub.link/tags/%D0%BC%D0%B8%D0%BA%D1%80%D0%BE%D1%81%D0%B5%D1%80%D0%B2%D0%B8%D1%81%D1%8B" class="mention hashtag" rel="tag">#<span>микросервисы</span></a> <a href="https://zhub.link/tags/%D1%80%D0%B5%D1%81%D1%83%D1%80%D1%81%D1%8B_%D1%81%D0%B5%D1%80%D0%B2%D0%B5%D1%80%D0%B0" class="mention hashtag" rel="tag">#<span>ресурсы_сервера</span></a> <a href="https://zhub.link/tags/%D0%BF%D1%80%D0%BE%D0%B8%D0%B7%D0%B2%D0%BE%D0%B4%D0%B8%D1%82%D0%B5%D0%BB%D1%8C%D0%BD%D0%BE%D1%81%D1%82%D1%8C" class="mention hashtag" rel="tag">#<span>производительность</span></a> <a href="https://zhub.link/tags/%D1%80%D0%B0%D1%81%D0%BF%D0%B8%D0%BB_%D0%BC%D0%BE%D0%BD%D0%BE%D0%BB%D0%B8%D1%82%D0%B0" class="mention hashtag" rel="tag">#<span>распил_монолита</span></a> <a href="https://zhub.link/tags/%D1%80%D0%B0%D1%81%D0%BF%D1%80%D0%B5%D0%B4%D0%B5%D0%BB%D0%B5%D0%BD%D0%BD%D1%8B%D0%B5_%D1%81%D0%B8%D1%81%D1%82%D0%B5%D0%BC%D1%8B" class="mention hashtag" rel="tag">#<span>распределенные_системы</span></a> <a href="https://zhub.link/tags/%D0%B4%D0%B8%D0%BD%D0%B0%D0%BC%D0%B8%D1%87%D0%B5%D1%81%D0%BA%D0%B0%D1%8F_%D0%B1%D0%B0%D0%BB%D0%B0%D0%BD%D1%81%D0%B8%D1%80%D0%BE%D0%B2%D0%BA%D0%B0" class="mention hashtag" rel="tag">#<span>динамическая_балансировка</span></a> <a href="https://zhub.link/tags/%D1%81%D0%B8%D0%BD%D1%85%D1%80%D0%BE%D0%BD%D0%B8%D0%B7%D0%B0%D1%86%D0%B8%D1%8F_%D0%BA%D0%BE%D0%BD%D1%84%D0%B8%D0%B3%D0%B0" class="mention hashtag" rel="tag">#<span>синхронизация_конфига</span></a> <a href="https://zhub.link/tags/%D1%81%D1%82%D0%B0%D0%B1%D0%B8%D0%BB%D1%8C%D0%BD%D0%B0%D1%8F_%D1%81%D0%B1%D0%BE%D1%80%D0%BA%D0%B0" class="mention hashtag" rel="tag">#<span>стабильная_сборка</span></a> <a href="https://zhub.link/tags/%D0%B4%D0%B5%D0%B8%D0%BD%D1%81%D1%82%D0%B0%D0%BB%D0%BB%D1%8F%D1%86%D0%B8%D1%8F" class="mention hashtag" rel="tag">#<span>деинсталляция</span></a></p>
Habr<p>Apache Flink: Сериализация и JacksonStateSerializer</p><p>Привет, Хабр! На связи Александр Бобряков, техлид в команде МТС Аналитики. Это мой десятый материал про Apache Flink. В предыдущей части мы закончили разбирать оператор с Flink-таймерами, использующими внутреннее состояние. Также я показал, как их можно тестировать с помощью классов TestHarness или Flink MiniCluster. В дополнение тестами была покрыта вся Flink-джоба, включая E2E-тесты. В этой части мы посмотрим сериализацию данных и состояний в операторах. Также напишем свой сериализатор, поддерживающий эволюцию схемы. В следующих частях протестируем его и внедрим в наше приложение. Весь разбираемый исходный код можно найти в репозитории AlexanderBobryakov/flink-spring . В master-ветке представлен итоговый проект по всей серии статей. Эта часть соответствует релизной ветке с названием release/9_JacksonStateSerializer . По мере выхода новых материалов на Хабре ссылки на них будут появляться ниже.</p><p><a href="https://habr.com/ru/companies/ru_mts/articles/856774/" target="_blank" rel="nofollow noopener noreferrer" translate="no"><span class="invisible">https://</span><span class="ellipsis">habr.com/ru/companies/ru_mts/a</span><span class="invisible">rticles/856774/</span></a></p><p><a href="https://zhub.link/tags/java" class="mention hashtag" rel="tag">#<span>java</span></a> <a href="https://zhub.link/tags/big_data" class="mention hashtag" rel="tag">#<span>big_data</span></a> <a href="https://zhub.link/tags/data_engineering" class="mention hashtag" rel="tag">#<span>data_engineering</span></a> <a href="https://zhub.link/tags/%D1%80%D0%B0%D1%81%D0%BF%D1%80%D0%B5%D0%B4%D0%B5%D0%BB%D0%B5%D0%BD%D0%BD%D1%8B%D0%B5_%D1%81%D0%B8%D1%81%D1%82%D0%B5%D0%BC%D1%8B" class="mention hashtag" rel="tag">#<span>распределенные_системы</span></a> <a href="https://zhub.link/tags/apache_flink" class="mention hashtag" rel="tag">#<span>apache_flink</span></a> <a href="https://zhub.link/tags/%D1%81%D0%B5%D1%80%D0%B8%D0%B0%D0%BB%D0%B8%D0%B7%D0%B0%D1%86%D0%B8%D1%8F" class="mention hashtag" rel="tag">#<span>сериализация</span></a> <a href="https://zhub.link/tags/JacksonStateSerializer" class="mention hashtag" rel="tag">#<span>JacksonStateSerializer</span></a> <a href="https://zhub.link/tags/TypeSerializerSnapshot" class="mention hashtag" rel="tag">#<span>TypeSerializerSnapshot</span></a> <a href="https://zhub.link/tags/TypeSerializer" class="mention hashtag" rel="tag">#<span>TypeSerializer</span></a> <a href="https://zhub.link/tags/%D1%8D%D0%B2%D0%BE%D0%BB%D1%8E%D1%86%D0%B8%D1%8F_%D1%81%D1%85%D0%B5%D0%BC%D1%8B" class="mention hashtag" rel="tag">#<span>эволюция_схемы</span></a></p>
Habr<p>[Перевод] Наиболее используемые шаблоны проектирования распределенных систем</p><p>Шаблоны проектирования распределенных систем предоставляют разработчикам проверенные решения и передовые методы проектирования и внедрения распределенных приложений.</p><p><a href="https://habr.com/ru/articles/856452/" target="_blank" rel="nofollow noopener noreferrer" translate="no"><span class="invisible">https://</span><span class="">habr.com/ru/articles/856452/</span><span class="invisible"></span></a></p><p><a href="https://zhub.link/tags/%D0%B2%D0%B5%D0%B1_%D1%80%D0%B0%D0%B7%D1%80%D0%B0%D0%B1%D0%BE%D1%82%D0%BA%D0%B0" class="mention hashtag" rel="tag">#<span>веб_разработка</span></a> <a href="https://zhub.link/tags/%D1%80%D0%B0%D1%81%D0%BF%D1%80%D0%B5%D0%B4%D0%B5%D0%BB%D0%B5%D0%BD%D0%BD%D1%8B%D0%B5_%D1%81%D0%B8%D1%81%D1%82%D0%B5%D0%BC%D1%8B" class="mention hashtag" rel="tag">#<span>распределенные_системы</span></a> <a href="https://zhub.link/tags/cassandra" class="mention hashtag" rel="tag">#<span>cassandra</span></a> <a href="https://zhub.link/tags/gossip" class="mention hashtag" rel="tag">#<span>gossip</span></a> <a href="https://zhub.link/tags/techlead" class="mention hashtag" rel="tag">#<span>techlead</span></a> <a href="https://zhub.link/tags/pet%D0%BF%D1%80%D0%BE%D0%B5%D0%BA%D1%82%D1%8B" class="mention hashtag" rel="tag">#<span>petпроекты</span></a> <a href="https://zhub.link/tags/code_review" class="mention hashtag" rel="tag">#<span>code_review</span></a> <a href="https://zhub.link/tags/backend%D1%80%D0%B0%D0%B7%D1%80%D0%B0%D0%B1%D0%BE%D1%82%D0%BA%D0%B0" class="mention hashtag" rel="tag">#<span>backendразработка</span></a></p>
Habr<p>Автоматизация и оптимизация сигнальных процессов сервис-провайдера с помощью API шлюза</p><p>В этой статье я делюсь гибким архитектурным подходом к автоматизации сетей уровня сервис-провайдера и своим личным опытом отладки сигнального обмена. Статья рассчитана не на новичков, а скорее тех, кто знаком с основными архитектурами и технологиями, используемыми в сетях уровня оператора и имеет в этом практический опыт.</p><p><a href="https://habr.com/ru/articles/854490/" target="_blank" rel="nofollow noopener noreferrer" translate="no"><span class="invisible">https://</span><span class="">habr.com/ru/articles/854490/</span><span class="invisible"></span></a></p><p><a href="https://zhub.link/tags/API" class="mention hashtag" rel="tag">#<span>API</span></a> <a href="https://zhub.link/tags/%D0%90%D1%80%D1%85%D0%B8%D1%82%D0%B5%D0%BA%D1%82%D1%83%D1%80%D0%B0" class="mention hashtag" rel="tag">#<span>Архитектура</span></a> <a href="https://zhub.link/tags/%D1%81%D0%B5%D1%80%D0%B2%D0%B8%D1%81%D0%BF%D1%80%D0%BE%D0%B2%D0%B0%D0%B9%D0%B4%D0%B5%D1%80" class="mention hashtag" rel="tag">#<span>сервиспровайдер</span></a> <a href="https://zhub.link/tags/%D0%B0%D0%B2%D1%82%D0%BE%D0%BC%D0%B0%D1%82%D0%B8%D0%B7%D0%B0%D1%86%D0%B8%D1%8F" class="mention hashtag" rel="tag">#<span>автоматизация</span></a> <a href="https://zhub.link/tags/%D0%BC%D0%BE%D0%B1%D0%B8%D0%BB%D1%8C%D0%BD%D1%8B%D0%B9_%D0%BE%D0%BF%D0%B5%D1%80%D0%B0%D1%82%D0%BE%D1%80" class="mention hashtag" rel="tag">#<span>мобильный_оператор</span></a> <a href="https://zhub.link/tags/%D0%BF%D1%80%D0%BE%D0%B2%D0%B0%D0%B9%D0%B4%D0%B5%D1%80" class="mention hashtag" rel="tag">#<span>провайдер</span></a> <a href="https://zhub.link/tags/%D1%80%D0%B0%D1%81%D0%BF%D1%80%D0%B5%D0%B4%D0%B5%D0%BB%D0%B5%D0%BD%D0%BD%D1%8B%D0%B5_%D1%81%D0%B8%D1%81%D1%82%D0%B5%D0%BC%D1%8B" class="mention hashtag" rel="tag">#<span>распределенные_системы</span></a></p>
Habr<p>Apache Flink: Unit и E2E-тестирование оператора с таймерами в Apache Flink</p><p>Привет, Хабр! На связи Александр Бобряков, техлид в команде МТС Аналитики. В предыдущей части я рассказал про создание Flink-джобы Kafka-to-Kafka с оператором на основе встроенных таймеров. Такой пайплайн позволяет создавать вызов через определенное время после обработки события. В этом посте я расскажу, как можно протестировать операторы с таймерами и какие подводные камни могут возникнуть. Весь разбираемый исходный код есть в репозитории AlexanderBobryakov/flink-spring . В master-ветке представлен итоговый проект по всей серии. Эта статья соответствует релизной ветке с названием release/8_Test_for_Trigger_Flink_Job . Это мой девятый материал про Apache Flink. По мере выхода новых ссылки на них будут появляться ниже. Список моих статей про Flink:</p><p><a href="https://habr.com/ru/companies/ru_mts/articles/853200/" target="_blank" rel="nofollow noopener noreferrer" translate="no"><span class="invisible">https://</span><span class="ellipsis">habr.com/ru/companies/ru_mts/a</span><span class="invisible">rticles/853200/</span></a></p><p><a href="https://zhub.link/tags/java" class="mention hashtag" rel="tag">#<span>java</span></a> <a href="https://zhub.link/tags/bigdata" class="mention hashtag" rel="tag">#<span>bigdata</span></a> <a href="https://zhub.link/tags/%D1%80%D0%B0%D1%81%D0%BF%D1%80%D0%B5%D0%B4%D0%B5%D0%BB%D0%B5%D0%BD%D0%BD%D1%8B%D0%B5_%D1%81%D0%B8%D1%81%D1%82%D0%B5%D0%BC%D1%8B" class="mention hashtag" rel="tag">#<span>распределенные_системы</span></a> <a href="https://zhub.link/tags/data_engineering" class="mention hashtag" rel="tag">#<span>data_engineering</span></a> <a href="https://zhub.link/tags/kafka" class="mention hashtag" rel="tag">#<span>kafka</span></a> <a href="https://zhub.link/tags/apache_flink" class="mention hashtag" rel="tag">#<span>apache_flink</span></a></p>
Habr<p>[Перевод] Построение надежных систем: решение сложностей распределенных микросервисов</p><p>Привет, Хабр! Мы в команде Nova Container Platform продолжаем серию переводов полезных материалов о микросервисной архитектуре.</p><p><a href="https://habr.com/ru/companies/orion_soft/articles/851722/" target="_blank" rel="nofollow noopener noreferrer" translate="no"><span class="invisible">https://</span><span class="ellipsis">habr.com/ru/companies/orion_so</span><span class="invisible">ft/articles/851722/</span></a></p><p><a href="https://zhub.link/tags/%D0%BC%D0%B8%D0%BA%D1%80%D0%BE%D1%81%D0%B5%D1%80%D0%B2%D0%B8%D1%81%D1%8B" class="mention hashtag" rel="tag">#<span>микросервисы</span></a> <a href="https://zhub.link/tags/%D1%80%D0%B0%D1%81%D0%BF%D1%80%D0%B5%D0%B4%D0%B5%D0%BB%D0%B5%D0%BD%D0%BD%D1%8B%D0%B5_%D1%81%D0%B5%D1%80%D0%B2%D0%B8%D1%81%D1%8B" class="mention hashtag" rel="tag">#<span>распределенные_сервисы</span></a> <a href="https://zhub.link/tags/%D1%80%D0%B0%D1%81%D0%BF%D1%80%D0%B5%D0%B4%D0%B5%D0%BB%D0%B5%D0%BD%D0%BD%D1%8B%D0%B5_%D1%81%D0%B8%D1%81%D1%82%D0%B5%D0%BC%D1%8B" class="mention hashtag" rel="tag">#<span>распределенные_системы</span></a> <a href="https://zhub.link/tags/%D0%BC%D0%B8%D0%BA%D1%80%D0%BE%D1%81%D0%B5%D1%80%D0%B2%D0%B8%D1%81%D0%BD%D0%B0%D1%8F_%D0%B0%D1%80%D1%85%D0%B8%D1%82%D0%B5%D0%BA%D1%82%D1%83%D1%80%D0%B0" class="mention hashtag" rel="tag">#<span>микросервисная_архитектура</span></a></p>
Habr<p>Как мы генерируем GPT-нейросетями миллиарды объявлений на малом количестве GPU. Доклад Яндекса</p><p>Привет! Меня зовут Ольга Зайкова, в Яндексе я руковожу группой автоматической генерации рекламы. Сегодня расскажу о соединении тяжёлых процессингов и GPU‑вычислений. Обсудим, как мы реализовали высоконагруженный процессинг, который обрабатывает миллиарды товаров и превращает их в объявления, используя тяжёлые модели, такие как YandexGPT, DSSM, CatBoost и другие. И, конечно, не обойду стороной тему проблем с нагрузкой: они возникали почти на каждом шагу.</p><p><a href="https://habr.com/ru/companies/yandex/articles/842024/" target="_blank" rel="nofollow noopener noreferrer" translate="no"><span class="invisible">https://</span><span class="ellipsis">habr.com/ru/companies/yandex/a</span><span class="invisible">rticles/842024/</span></a></p><p><a href="https://zhub.link/tags/%D1%8F%D0%BD%D0%B4%D0%B5%D0%BA%D1%81" class="mention hashtag" rel="tag">#<span>яндекс</span></a> <a href="https://zhub.link/tags/%D1%80%D0%B0%D1%81%D0%BF%D1%80%D0%B5%D0%B4%D0%B5%D0%BB%D0%B5%D0%BD%D0%BD%D1%8B%D0%B5_%D1%81%D0%B8%D1%81%D1%82%D0%B5%D0%BC%D1%8B" class="mention hashtag" rel="tag">#<span>распределенные_системы</span></a> <a href="https://zhub.link/tags/yandexgpt" class="mention hashtag" rel="tag">#<span>yandexgpt</span></a> <a href="https://zhub.link/tags/%D0%B0%D0%BB%D0%B3%D0%BE%D1%80%D0%B8%D1%82%D0%BC%D1%8B" class="mention hashtag" rel="tag">#<span>алгоритмы</span></a> <a href="https://zhub.link/tags/%D0%B4%D0%BE%D0%BA%D0%BB%D0%B0%D0%B4_%D1%8F%D0%BD%D0%B4%D0%B5%D0%BA%D1%81%D0%B0" class="mention hashtag" rel="tag">#<span>доклад_яндекса</span></a></p>
Habr<p>Kafka для самых маленьких разработчиков, аналитиков и тестировщиков</p><p>Несколько лет назад произошел Kafka-хайп. Kafka хотели использовать все, не всегда понимая, для чего конкретно она им нужна. И сегодня многие продолжают брать Kafka в свои проекты, зачастую ожидая, что её применение само по себе сделает всё лучше. С одной стороны, это может быть и хорошо. Такие шаги стимулируют индустрию. Но всё же лучше понимать, что ты делаешь, иначе проекту можно сделать только хуже. В этой статье я обращаюсь к разработчикам, аналитикам и тестировщикам, которые еще не сталкивались с Kafka по работе. Помогу понять, почему все же в микросервисной среде многие не ходят просто по REST, а используют этот инструмент - что конкретно делает Kafka и когда есть смысл её применять.</p><p><a href="https://habr.com/ru/companies/maxilect/articles/840972/" target="_blank" rel="nofollow noopener noreferrer" translate="no"><span class="invisible">https://</span><span class="ellipsis">habr.com/ru/companies/maxilect</span><span class="invisible">/articles/840972/</span></a></p><p><a href="https://zhub.link/tags/kafka" class="mention hashtag" rel="tag">#<span>kafka</span></a> <a href="https://zhub.link/tags/%D1%80%D0%B0%D1%81%D0%BF%D1%80%D0%B5%D0%B4%D0%B5%D0%BB%D0%B5%D0%BD%D0%BD%D1%8B%D0%B5_%D1%82%D1%80%D0%B0%D0%BD%D0%B7%D0%B0%D0%BA%D1%86%D0%B8%D0%B8" class="mention hashtag" rel="tag">#<span>распределенные_транзакции</span></a> <a href="https://zhub.link/tags/%D0%BC%D0%B8%D0%BA%D1%80%D0%BE%D1%81%D0%B5%D1%80%D0%B2%D0%B8%D1%81%D1%8B" class="mention hashtag" rel="tag">#<span>микросервисы</span></a> <a href="https://zhub.link/tags/%D0%BF%D1%80%D0%BE%D0%B1%D0%BB%D0%B5%D0%BC%D0%B0_%D0%B4%D0%B2%D1%83%D1%85_%D0%B3%D0%B5%D0%BD%D0%B5%D1%80%D0%B0%D0%BB%D0%BE%D0%B2" class="mention hashtag" rel="tag">#<span>проблема_двух_генералов</span></a> <a href="https://zhub.link/tags/%D1%80%D0%B0%D1%81%D0%BF%D1%80%D0%B5%D0%B4%D0%B5%D0%BB%D0%B5%D0%BD%D0%BD%D1%8B%D0%B5_%D1%81%D0%B8%D1%81%D1%82%D0%B5%D0%BC%D1%8B" class="mention hashtag" rel="tag">#<span>распределенные_системы</span></a></p>
Habr<p>Отправка уведомлений по таймеру в Apache Flink</p><p>Привет, Хабр! На связи Александр Бобряков, техлид в команде МТС Аналитики. В предыдущих постах я рассказал, как собрать первое приложение Flink со Spring, реализовав пайплайн дедупликации сообщений Kafka-to-Kafka. В этом примере погружусь в использование таймеров в Flink, а в следующих статьях расскажу, как работать с более сложными состояниями, эволюционировать их схему и покрыть это все тестами. Весь разбираемый исходный код есть в репозитории AlexanderBobryakov/flink-spring . В master-ветке представлен итоговый проект по всей серии. Эта статья соответствует релизной ветке с названием release/7_Trigger_Flink_Job . Это восьмой материал из моей серии про Apache Flink. По мере выхода новых ссылки на них будут появляться ниже.</p><p><a href="https://habr.com/ru/companies/ru_mts/articles/839520/" target="_blank" rel="nofollow noopener noreferrer" translate="no"><span class="invisible">https://</span><span class="ellipsis">habr.com/ru/companies/ru_mts/a</span><span class="invisible">rticles/839520/</span></a></p><p><a href="https://zhub.link/tags/apache_flink" class="mention hashtag" rel="tag">#<span>apache_flink</span></a> <a href="https://zhub.link/tags/java" class="mention hashtag" rel="tag">#<span>java</span></a> <a href="https://zhub.link/tags/big_data" class="mention hashtag" rel="tag">#<span>big_data</span></a> <a href="https://zhub.link/tags/%D1%80%D0%B0%D1%81%D0%BF%D1%80%D0%B5%D0%B4%D0%B5%D0%BB%D0%B5%D0%BD%D0%BD%D1%8B%D0%B5_%D1%81%D0%B8%D1%81%D1%82%D0%B5%D0%BC%D1%8B" class="mention hashtag" rel="tag">#<span>распределенные_системы</span></a> <a href="https://zhub.link/tags/data_engineering" class="mention hashtag" rel="tag">#<span>data_engineering</span></a> <a href="https://zhub.link/tags/kafka" class="mention hashtag" rel="tag">#<span>kafka</span></a></p>
Habr<p>Децентрализованные технологии на службе гражданского общества</p><p>Государственные системы будут увеличивать контроль над людьми и приходить к тому, что сейчас происходит в Китае. Это в их ДНК. Мы видим, что сейчас происходит с Павлом Дуровым: его судят за свободу слова и за крипту в Телеграме. Телеграм — лучший мессенджер в мире, и недавно количество его пользователей перевалило за 1 млрд. Государства не устраивает степень свободы, которую получили люди в Телеграме. И вместо точечной работы с преступниками они хотят влиять на саму площадку. А популярные социальные сети, где есть приемлемая свобода слова, уже сегодня можно сосчитать по пальцам одной руки (спасибо Маску, что выкупил X — он следующий). Для удушения свобод государства будут использовать новые технологии — но и мы должны использовать их в борьбе за свою свободу.</p><p><a href="https://habr.com/ru/articles/839032/" target="_blank" rel="nofollow noopener noreferrer" translate="no"><span class="invisible">https://</span><span class="">habr.com/ru/articles/839032/</span><span class="invisible"></span></a></p><p><a href="https://zhub.link/tags/%D0%B4%D0%B5%D1%86%D0%B5%D0%BD%D1%82%D1%80%D0%B0%D0%BB%D0%B8%D0%B7%D0%B0%D1%86%D0%B8%D1%8F" class="mention hashtag" rel="tag">#<span>децентрализация</span></a> <a href="https://zhub.link/tags/%D0%B4%D0%B5%D1%86%D0%B5%D0%BD%D1%82%D1%80%D0%B0%D0%BB%D0%B8%D0%B7%D0%BE%D0%B2%D0%B0%D0%BD%D0%BD%D1%8B%D0%B5_%D1%81%D0%B5%D1%82%D0%B8" class="mention hashtag" rel="tag">#<span>децентрализованные_сети</span></a> <a href="https://zhub.link/tags/%D1%80%D0%B0%D1%81%D0%BF%D1%80%D0%B5%D0%B4%D0%B5%D0%BB%D0%B5%D0%BD%D0%BD%D1%8B%D0%B5_%D1%81%D0%B8%D1%81%D1%82%D0%B5%D0%BC%D1%8B" class="mention hashtag" rel="tag">#<span>распределенные_системы</span></a> <a href="https://zhub.link/tags/%D0%B3%D1%80%D0%B0%D0%B6%D0%B4%D0%B0%D0%BD%D1%81%D0%BA%D0%BE%D0%B5_%D0%BE%D0%B1%D1%89%D0%B5%D1%81%D1%82%D0%B2%D0%BE" class="mention hashtag" rel="tag">#<span>гражданское_общество</span></a> <a href="https://zhub.link/tags/digital_resistance" class="mention hashtag" rel="tag">#<span>digital_resistance</span></a> <a href="https://zhub.link/tags/%D1%81%D0%B2%D0%BE%D0%B1%D0%BE%D0%B4%D0%B0_%D0%B8%D0%BD%D1%84%D0%BE%D1%80%D0%BC%D0%B0%D1%86%D0%B8%D0%B8" class="mention hashtag" rel="tag">#<span>свобода_информации</span></a> <a href="https://zhub.link/tags/%D1%81%D0%B2%D0%BE%D0%B1%D0%BE%D0%B4%D0%B0_%D1%81%D0%BB%D0%BE%D0%B2%D0%B0" class="mention hashtag" rel="tag">#<span>свобода_слова</span></a> <a href="https://zhub.link/tags/telegram" class="mention hashtag" rel="tag">#<span>telegram</span></a> <a href="https://zhub.link/tags/montelibero" class="mention hashtag" rel="tag">#<span>montelibero</span></a> <a href="https://zhub.link/tags/%D1%86%D0%B8%D1%84%D1%80%D0%BE%D0%B2%D0%BE%D0%B5_%D0%B3%D0%BE%D1%81%D1%83%D0%B4%D0%B0%D1%80%D1%81%D1%82%D0%B2%D0%BE" class="mention hashtag" rel="tag">#<span>цифровое_государство</span></a></p>
Habr<p>Распределенные транзакции для самых маленьких</p><p>В этой статье рассказываем про распределенные транзакции - зачем они нужны в микросервисной архитектуре и какие у нас есть варианты реализации. Рассказ ориентирован на тех, кто не в теме - кому непонятно, зачем на простую транзакцию накручивать столько сложностей, это ведь удлиняет разработку и увеличивает количество точек отказа. Поясним зачем это нужно, приведем примеры проектов и немного пофилософствуем.</p><p><a href="https://habr.com/ru/companies/maxilect/articles/837816/" target="_blank" rel="nofollow noopener noreferrer" translate="no"><span class="invisible">https://</span><span class="ellipsis">habr.com/ru/companies/maxilect</span><span class="invisible">/articles/837816/</span></a></p><p><a href="https://zhub.link/tags/%D1%82%D1%80%D0%B0%D0%BD%D0%B7%D0%B0%D0%BA%D1%86%D0%B8%D0%B8" class="mention hashtag" rel="tag">#<span>транзакции</span></a> <a href="https://zhub.link/tags/%D1%80%D0%B0%D1%81%D0%BF%D1%80%D0%B5%D0%B4%D0%B5%D0%BB%D0%B5%D0%BD%D0%BD%D1%8B%D0%B5_%D1%81%D0%B8%D1%81%D1%82%D0%B5%D0%BC%D1%8B" class="mention hashtag" rel="tag">#<span>распределенные_системы</span></a> <a href="https://zhub.link/tags/%D1%80%D0%B0%D1%81%D0%BF%D1%80%D0%B5%D0%B4%D0%B5%D0%BB%D0%B5%D0%BD%D0%BD%D1%8B%D0%B5_%D1%82%D1%80%D0%B0%D0%BD%D0%B7%D0%B0%D0%BA%D1%86%D0%B8%D0%B8" class="mention hashtag" rel="tag">#<span>распределенные_транзакции</span></a> <a href="https://zhub.link/tags/saga" class="mention hashtag" rel="tag">#<span>saga</span></a> <a href="https://zhub.link/tags/cap" class="mention hashtag" rel="tag">#<span>cap</span></a></p>
Habr<p>[Перевод] Проблемная секунда</p><p>Сегодня каждый может легко проверить текущее время множеством способов. У нас есть смартфоны, часы, компьютеры, ТВ, холодильники и так далее. Все знают, какой на дворе год, и что он означает. Мы разбираемся во временны́х зонах и знаем, что такое всемирное координированное время (UTC). Всё кажется таким тривиальным. Однако с точки зрения IT-систем здесь существует множество сюрпризов, вынуждающих нас сталкиваться с проблемами, которые возникают очень редко. В различных IT-системах можно встретить множество нюансов, касающихся времени. Чаще всего они связаны с точностью его измерения и синхронизации между машинами в распределённых системах. В этой же статье я разберу одну странную ситуацию, которая за всю историю случалась лишь несколько раз.</p><p><a href="https://habr.com/ru/companies/ruvds/articles/826650/" target="_blank" rel="nofollow noopener noreferrer" translate="no"><span class="invisible">https://</span><span class="ellipsis">habr.com/ru/companies/ruvds/ar</span><span class="invisible">ticles/826650/</span></a></p><p><a href="https://zhub.link/tags/ruvds_%D0%BF%D0%B5%D1%80%D0%B5%D0%B2%D0%BE%D0%B4" class="mention hashtag" rel="tag">#<span>ruvds_перевод</span></a> <a href="https://zhub.link/tags/%D0%B2%D0%B8%D1%81%D0%BE%D0%BA%D0%BE%D1%81%D0%BD%D0%B0%D1%8F_%D1%81%D0%B5%D0%BA%D1%83%D0%BD%D0%B4%D0%B0" class="mention hashtag" rel="tag">#<span>високосная_секунда</span></a> <a href="https://zhub.link/tags/%D0%B4%D0%BE%D0%BF%D0%BE%D0%BB%D0%BD%D0%B8%D1%82%D0%B5%D0%BB%D1%8C%D0%BD%D0%B0%D1%8F_%D1%81%D0%B5%D0%BA%D1%83%D0%BD%D0%B4%D0%B0" class="mention hashtag" rel="tag">#<span>дополнительная_секунда</span></a> <a href="https://zhub.link/tags/%D1%81%D0%B8%D0%BD%D1%85%D1%80%D0%BE%D0%BD%D0%B8%D0%B7%D0%B0%D1%86%D0%B8%D1%8F_%D0%B2%D1%80%D0%B5%D0%BC%D0%B5%D0%BD%D0%B8" class="mention hashtag" rel="tag">#<span>синхронизация_времени</span></a> <a href="https://zhub.link/tags/%D1%80%D0%B0%D1%81%D0%BF%D1%80%D0%B5%D0%B4%D0%B5%D0%BB%D0%B5%D0%BD%D0%BD%D1%8B%D0%B5_%D1%81%D0%B8%D1%81%D1%82%D0%B5%D0%BC%D1%8B" class="mention hashtag" rel="tag">#<span>распределенные_системы</span></a></p>
Habr<p>E2E-тестирование Flink Job с Kafka</p><p>Привет, Хабр! С вами Александр Бобряков, техлид в команде МТС Аналитики. Я к вам с новой статьёй из цикла про фреймворк Apache Flink. В предыдущей части я рассказал, как создать Unit-тест на полноценную джобу Flink и отдельные stateful-операторы с использованием Flink MiniCluster. Ещё мы научились запускать мини-кластер один раз перед всеми тестовыми классами, которые нуждаются в нём. В дополнение создали вспомогательные абстракции и аннотации, значительно разделяя ответственность в тестах и упрощая логику написания новых тестов. В предыдущих тестах на джобу мы не затрагивали интеграцию с Kafka, ведь нам были не важны реальные source и sink. В этой статье продолжим разбираться в тестировании и напишем полноценный E2E-тест, который охватит Kafka и Flink вместе с использованием Testcontainers. Также рассмотрим неочевидные проблемы в тестировании и новые универсальные абстракции.</p><p><a href="https://habr.com/ru/companies/ru_mts/articles/819681/" target="_blank" rel="nofollow noopener noreferrer" translate="no"><span class="invisible">https://</span><span class="ellipsis">habr.com/ru/companies/ru_mts/a</span><span class="invisible">rticles/819681/</span></a></p><p><a href="https://zhub.link/tags/java" class="mention hashtag" rel="tag">#<span>java</span></a> <a href="https://zhub.link/tags/big_data" class="mention hashtag" rel="tag">#<span>big_data</span></a> <a href="https://zhub.link/tags/%D1%80%D0%B0%D1%81%D0%BF%D1%80%D0%B5%D0%B4%D0%B5%D0%BB%D0%B5%D0%BD%D0%BD%D1%8B%D0%B5_%D1%81%D0%B8%D1%81%D1%82%D0%B5%D0%BC%D1%8B" class="mention hashtag" rel="tag">#<span>распределенные_системы</span></a> <a href="https://zhub.link/tags/data_engineering" class="mention hashtag" rel="tag">#<span>data_engineering</span></a> <a href="https://zhub.link/tags/apache_flink" class="mention hashtag" rel="tag">#<span>apache_flink</span></a> <a href="https://zhub.link/tags/kafka" class="mention hashtag" rel="tag">#<span>kafka</span></a></p>
Habr<p>Postgres Pro Shardman: горизонтальное масштабирование реляционных СУБД</p><p>Последние несколько лет мы в Postgres Professional активно занимаемся разработкой своего решения для горизонтального масштабирования PostgreSQL. Пользователям нужен был простой способ увеличить производительность путем добавления узлов. Традиционно для веба в таких случаях просто брали NoSQL базы или шардировали вручную, позже появились распределенные SQL-решения с поддержкой ACID-транзакций. Тем не менее терялась часть возможностей и достоинств PostgreSQL. Корпоративный рынок тяжелых вертикальных решений также сильно ограничен как ценой, так и доступностью. Поэтому исследованиями в области распределенных СУБД в компании занимались еще с 2017 года, а в 2020 началась работа над коммерческим продуктом. В этой статье я расскажу про технические детали реализации и почему был сделан такой выбор технологий. Опишу, какие направления нам показались преждевременными и их пришлось отложить, а также что мы ожидаем в будущем.</p><p><a href="https://habr.com/ru/companies/postgrespro/articles/811041/" target="_blank" rel="nofollow noopener noreferrer" translate="no"><span class="invisible">https://</span><span class="ellipsis">habr.com/ru/companies/postgres</span><span class="invisible">pro/articles/811041/</span></a></p><p><a href="https://zhub.link/tags/postgresql" class="mention hashtag" rel="tag">#<span>postgresql</span></a> <a href="https://zhub.link/tags/%D1%80%D0%B0%D1%81%D0%BF%D1%80%D0%B5%D0%B4%D0%B5%D0%BB%D0%B5%D0%BD%D0%BD%D1%8B%D0%B5_%D1%81%D0%B8%D1%81%D1%82%D0%B5%D0%BC%D1%8B" class="mention hashtag" rel="tag">#<span>распределенные_системы</span></a> <a href="https://zhub.link/tags/sharding" class="mention hashtag" rel="tag">#<span>sharding</span></a> <a href="https://zhub.link/tags/shardman" class="mention hashtag" rel="tag">#<span>shardman</span></a></p>