#микросервисы — Public Fediverse posts
Live and recent posts from across the Fediverse tagged #микросервисы, aggregated by home.social.
-
Очереди в микросервисах: 5 ошибок, которые приводят к дублям и потерям
Почему добавление второго consumer«а в очередь может привести к двойным списаниям? Разбираем на реальном кейсе: как один Topic стоил компании 312 дублей за час. » Сравниваем поведение JMS, Kafka и RabbitMQ, показываем, почему ни одна очередь не даёт exactly‑once из коробки, и как идемпотентность, Dead Letter Queue и правильный выбор канала (команды vs события) делают интеграции надёжными.“ Готовые схемы, продакшен‑код на Java и чек‑лист, который стоит применить прямо сейчас! Читать разбор
https://habr.com/ru/companies/otus/articles/1031284/
#очереди_сообщений #микросервисы #брокеры_сообщений #RabbitMQ #Kafka #JMS #publishsubscribe #competing_consumers #идемпотентность #Dead_Letter_Queue
-
Почему проекты превращаются в спагетти даже у хороших программистов
Когда программист впервые слышит слово «архитектура», он обычно представляет что-то скучное: диаграммы, стрелочки, коробочки, совещания на три часа и человека, который запрещает писать код. А потом проходит несколько лет. И внезапно оказывается, что проект, который «быстро накидали», начинает разваливаться от любого изменения. Добавили одну кнопку — сломался импорт. Поменяли отчёт — умерла авторизация. Обновили библиотеку — перестала открываться половина форм. И начинается археология. Почему так происходит? Потому что почти любой проект без нормальной архитектуры рано или поздно превращается в спагетти. Причём даже если его пишут хорошие программисты.
https://habr.com/ru/articles/1035696/
#архитектура_по #модульный_монолит #микросервисы #clean_architecture #legacy #спагеттикод #инженерия #backend #software_architecture #dependency_injection
-
Почему проекты превращаются в спагетти даже у хороших программистов
Когда программист впервые слышит слово «архитектура», он обычно представляет что-то скучное: диаграммы, стрелочки, коробочки, совещания на три часа и человека, который запрещает писать код. А потом проходит несколько лет. И внезапно оказывается, что проект, который «быстро накидали», начинает разваливаться от любого изменения. Добавили одну кнопку — сломался импорт. Поменяли отчёт — умерла авторизация. Обновили библиотеку — перестала открываться половина форм. И начинается археология. Почему так происходит? Потому что почти любой проект без нормальной архитектуры рано или поздно превращается в спагетти. Причём даже если его пишут хорошие программисты.
https://habr.com/ru/articles/1035696/
#архитектура_по #модульный_монолит #микросервисы #clean_architecture #legacy #спагеттикод #инженерия #backend #software_architecture #dependency_injection
-
Почему проекты превращаются в спагетти даже у хороших программистов
Когда программист впервые слышит слово «архитектура», он обычно представляет что-то скучное: диаграммы, стрелочки, коробочки, совещания на три часа и человека, который запрещает писать код. А потом проходит несколько лет. И внезапно оказывается, что проект, который «быстро накидали», начинает разваливаться от любого изменения. Добавили одну кнопку — сломался импорт. Поменяли отчёт — умерла авторизация. Обновили библиотеку — перестала открываться половина форм. И начинается археология. Почему так происходит? Потому что почти любой проект без нормальной архитектуры рано или поздно превращается в спагетти. Причём даже если его пишут хорошие программисты.
https://habr.com/ru/articles/1035696/
#архитектура_по #модульный_монолит #микросервисы #clean_architecture #legacy #спагеттикод #инженерия #backend #software_architecture #dependency_injection
-
Почему проекты превращаются в спагетти даже у хороших программистов
Когда программист впервые слышит слово «архитектура», он обычно представляет что-то скучное: диаграммы, стрелочки, коробочки, совещания на три часа и человека, который запрещает писать код. А потом проходит несколько лет. И внезапно оказывается, что проект, который «быстро накидали», начинает разваливаться от любого изменения. Добавили одну кнопку — сломался импорт. Поменяли отчёт — умерла авторизация. Обновили библиотеку — перестала открываться половина форм. И начинается археология. Почему так происходит? Потому что почти любой проект без нормальной архитектуры рано или поздно превращается в спагетти. Причём даже если его пишут хорошие программисты.
https://habr.com/ru/articles/1035696/
#архитектура_по #модульный_монолит #микросервисы #clean_architecture #legacy #спагеттикод #инженерия #backend #software_architecture #dependency_injection
-
Полный гайд по каналам обмена сообщениями: от теории к реальным кейсам
Первая статья из цикла о каналах обмена сообщениями. Разбираем архитектурные дилеммы, конкурирующих потребителей, message storm, гарантированную доставку и лучшие практики команд, работающих с JMS и Kafka.
https://habr.com/ru/companies/otus/articles/1022192/
#архитектура_ПО #интеграция #обмен_сообщениями #каналы_сообщений #Java #Kafka #микросервисы
-
Kafka, таксономии и удаление событий: как исключить обработку неактуальных сообщений
В рамках задачи по обработке XBRL-таксономий возникло требование: если таксономия удалена до обработки событий расчёта кэша, эти события не должны приводить к созданию данных для уже неактуальной сущности. На первый взгляд кажется, что достаточно найти соответствующие сообщения и удалить их из Kafka topic. Но Kafka хранит данные как commit log, поэтому точечное удаление сообщений по версии таксономии или другому бизнес-признаку оказывается небезопасным. В статье рассмотрим, почему прямое удаление сообщений не подошло, какие варианты были рассмотрены и как в итоге был применён комбинированный подход: стабильный Kafka key, tombstone-сообщения, compact/delete policy и проверка состояния таксономии на стороне consumer. Разберём решение
https://habr.com/ru/articles/1035526/
#kafka #spring_boot #Spring_Kafka #java #микросервисы #tombstone_objects #Compacted_topic #log_compaction #consumer #идемпотентность
-
Kafka, таксономии и удаление событий: как исключить обработку неактуальных сообщений
В рамках задачи по обработке XBRL-таксономий возникло требование: если таксономия удалена до обработки событий расчёта кэша, эти события не должны приводить к созданию данных для уже неактуальной сущности. На первый взгляд кажется, что достаточно найти соответствующие сообщения и удалить их из Kafka topic. Но Kafka хранит данные как commit log, поэтому точечное удаление сообщений по версии таксономии или другому бизнес-признаку оказывается небезопасным. В статье рассмотрим, почему прямое удаление сообщений не подошло, какие варианты были рассмотрены и как в итоге был применён комбинированный подход: стабильный Kafka key, tombstone-сообщения, compact/delete policy и проверка состояния таксономии на стороне consumer. Разберём решение
https://habr.com/ru/articles/1035526/
#kafka #spring_boot #Spring_Kafka #java #микросервисы #tombstone_objects #Compacted_topic #log_compaction #consumer #идемпотентность
-
Kafka, таксономии и удаление событий: как исключить обработку неактуальных сообщений
В рамках задачи по обработке XBRL-таксономий возникло требование: если таксономия удалена до обработки событий расчёта кэша, эти события не должны приводить к созданию данных для уже неактуальной сущности. На первый взгляд кажется, что достаточно найти соответствующие сообщения и удалить их из Kafka topic. Но Kafka хранит данные как commit log, поэтому точечное удаление сообщений по версии таксономии или другому бизнес-признаку оказывается небезопасным. В статье рассмотрим, почему прямое удаление сообщений не подошло, какие варианты были рассмотрены и как в итоге был применён комбинированный подход: стабильный Kafka key, tombstone-сообщения, compact/delete policy и проверка состояния таксономии на стороне consumer. Разберём решение
https://habr.com/ru/articles/1035526/
#kafka #spring_boot #Spring_Kafka #java #микросервисы #tombstone_objects #Compacted_topic #log_compaction #consumer #идемпотентность
-
Девять испытаний роста нагрузки: от стартапа к приложению для 25 миллионов пользователей
Эта статья совсем не технический анализ, а увлекательный рассказ о том, как маленький, но очень перспективный стартап стал топовым приложением, а также о том, какие сложности встали на пути команды разработки, DevOps и тестирования X5 Tech. Мы сразу заложили основные принципы нагруженного приложения: микросервисы как основа всего, полное покрытие метриками, асинхронность, кэширование на максималках. Какую-то функциональность разрабатывали сами, где-то задействовали сервисы других техкоманд из X5, а где-то и сторонние решения с рынка. Весь код писали на Python, использовали FastAPI и другие популярные на тот момент фреймворки и технологии.
https://habr.com/ru/companies/X5Tech/articles/1029410/
#highload #микросервисы #latency #postgresql #elasticsearch #kubernetes #hpa #балансировка_нагрузки #нагрузочное_тестирование #observability
-
Девять испытаний роста нагрузки: от стартапа к приложению для 25 миллионов пользователей
Эта статья совсем не технический анализ, а увлекательный рассказ о том, как маленький, но очень перспективный стартап стал топовым приложением, а также о том, какие сложности встали на пути команды разработки, DevOps и тестирования X5 Tech. Мы сразу заложили основные принципы нагруженного приложения: микросервисы как основа всего, полное покрытие метриками, асинхронность, кэширование на максималках. Какую-то функциональность разрабатывали сами, где-то задействовали сервисы других техкоманд из X5, а где-то и сторонние решения с рынка. Весь код писали на Python, использовали FastAPI и другие популярные на тот момент фреймворки и технологии.
https://habr.com/ru/companies/X5Tech/articles/1029410/
#highload #микросервисы #latency #postgresql #elasticsearch #kubernetes #hpa #балансировка_нагрузки #нагрузочное_тестирование #observability
-
Девять испытаний роста нагрузки: от стартапа к приложению для 25 миллионов пользователей
Эта статья совсем не технический анализ, а увлекательный рассказ о том, как маленький, но очень перспективный стартап стал топовым приложением, а также о том, какие сложности встали на пути команды разработки, DevOps и тестирования X5 Tech. Мы сразу заложили основные принципы нагруженного приложения: микросервисы как основа всего, полное покрытие метриками, асинхронность, кэширование на максималках. Какую-то функциональность разрабатывали сами, где-то задействовали сервисы других техкоманд из X5, а где-то и сторонние решения с рынка. Весь код писали на Python, использовали FastAPI и другие популярные на тот момент фреймворки и технологии.
https://habr.com/ru/companies/X5Tech/articles/1029410/
#highload #микросервисы #latency #postgresql #elasticsearch #kubernetes #hpa #балансировка_нагрузки #нагрузочное_тестирование #observability
-
Девять испытаний роста нагрузки: от стартапа к приложению для 25 миллионов пользователей
Эта статья совсем не технический анализ, а увлекательный рассказ о том, как маленький, но очень перспективный стартап стал топовым приложением, а также о том, какие сложности встали на пути команды разработки, DevOps и тестирования X5 Tech. Мы сразу заложили основные принципы нагруженного приложения: микросервисы как основа всего, полное покрытие метриками, асинхронность, кэширование на максималках. Какую-то функциональность разрабатывали сами, где-то задействовали сервисы других техкоманд из X5, а где-то и сторонние решения с рынка. Весь код писали на Python, использовали FastAPI и другие популярные на тот момент фреймворки и технологии.
https://habr.com/ru/companies/X5Tech/articles/1029410/
#highload #микросервисы #latency #postgresql #elasticsearch #kubernetes #hpa #балансировка_нагрузки #нагрузочное_тестирование #observability
-
Почему ваш Go‑сервис ломается под 1000 RPS и как найти узкое место за полчаса
Go-сервис может идеально проходить функциональные тесты и уверенно отвечать на локальных прогонах, а потом внезапно развалиться под 1000 RPS: p99 улетает в секунды, в логах появляются таймауты, throughput проседает, а часть запросов вообще не получает HTTP-ответа. В статье разберём, как подойти к такой деградации без гадания: прогнать нагрузку через vegeta и wrk2, правильно прочитать p50/p99 и status codes, проверить пул соединений к базе, настройки HTTP-клиента, горутины, GC, таймауты и быстро понять, где именно сервис начинает терять устойчивость.
https://habr.com/ru/companies/otus/articles/1031438/
#Go #нагрузочное_тестирование #backend #микросервисы #p99 #latency #vegeta #wrk2 #pprof #производительность
-
Почему ваш Go‑сервис ломается под 1000 RPS и как найти узкое место за полчаса
Go-сервис может идеально проходить функциональные тесты и уверенно отвечать на локальных прогонах, а потом внезапно развалиться под 1000 RPS: p99 улетает в секунды, в логах появляются таймауты, throughput проседает, а часть запросов вообще не получает HTTP-ответа. В статье разберём, как подойти к такой деградации без гадания: прогнать нагрузку через vegeta и wrk2, правильно прочитать p50/p99 и status codes, проверить пул соединений к базе, настройки HTTP-клиента, горутины, GC, таймауты и быстро понять, где именно сервис начинает терять устойчивость.
https://habr.com/ru/companies/otus/articles/1031438/
#Go #нагрузочное_тестирование #backend #микросервисы #p99 #latency #vegeta #wrk2 #pprof #производительность
-
Почему ваш Go‑сервис ломается под 1000 RPS и как найти узкое место за полчаса
Go-сервис может идеально проходить функциональные тесты и уверенно отвечать на локальных прогонах, а потом внезапно развалиться под 1000 RPS: p99 улетает в секунды, в логах появляются таймауты, throughput проседает, а часть запросов вообще не получает HTTP-ответа. В статье разберём, как подойти к такой деградации без гадания: прогнать нагрузку через vegeta и wrk2, правильно прочитать p50/p99 и status codes, проверить пул соединений к базе, настройки HTTP-клиента, горутины, GC, таймауты и быстро понять, где именно сервис начинает терять устойчивость.
https://habr.com/ru/companies/otus/articles/1031438/
#Go #нагрузочное_тестирование #backend #микросервисы #p99 #latency #vegeta #wrk2 #pprof #производительность
-
Почему ваш Go‑сервис ломается под 1000 RPS и как найти узкое место за полчаса
Go-сервис может идеально проходить функциональные тесты и уверенно отвечать на локальных прогонах, а потом внезапно развалиться под 1000 RPS: p99 улетает в секунды, в логах появляются таймауты, throughput проседает, а часть запросов вообще не получает HTTP-ответа. В статье разберём, как подойти к такой деградации без гадания: прогнать нагрузку через vegeta и wrk2, правильно прочитать p50/p99 и status codes, проверить пул соединений к базе, настройки HTTP-клиента, горутины, GC, таймауты и быстро понять, где именно сервис начинает терять устойчивость.
https://habr.com/ru/companies/otus/articles/1031438/
#Go #нагрузочное_тестирование #backend #микросервисы #p99 #latency #vegeta #wrk2 #pprof #производительность
-
Философия автотестов: управление, поддержка и флаки
Привет, меня зовут Смирнов Владимир, и я отвечаю за тестирование торгового бэкенда в EXANTE. Разработка кипит, регрессионные наборы автотестов растут - всё это сопровождается хаосом и различиями тестовых окружений, из-за чего неизбежно растёт и число нестабильных падений (ака флаки), за завесой которых могут теряться реальные проблемы. Как мы регулярно поддерживаем автотесты в приемлемом состоянии и стараемся не тратить на это слишком много времени? Об этом и поговорим.
https://habr.com/ru/articles/1032868/
#Тестирование #Разработка #Флакитесты #Регрессионное_тестирование #Тестовое_окружение #Управление_разработкой #Сервисные_тесты #Микросервисы #Обслуживание_тестсьюта
-
Философия автотестов: управление, поддержка и флаки
Привет, меня зовут Смирнов Владимир, и я отвечаю за тестирование торгового бэкенда в EXANTE. Разработка кипит, регрессионные наборы автотестов растут - всё это сопровождается хаосом и различиями тестовых окружений, из-за чего неизбежно растёт и число нестабильных падений (ака флаки), за завесой которых могут теряться реальные проблемы. Как мы регулярно поддерживаем автотесты в приемлемом состоянии и стараемся не тратить на это слишком много времени? Об этом и поговорим.
https://habr.com/ru/articles/1032868/
#Тестирование #Разработка #Флакитесты #Регрессионное_тестирование #Тестовое_окружение #Управление_разработкой #Сервисные_тесты #Микросервисы #Обслуживание_тестсьюта
-
Философия автотестов: управление, поддержка и флаки
Привет, меня зовут Смирнов Владимир, и я отвечаю за тестирование торгового бэкенда в EXANTE. Разработка кипит, регрессионные наборы автотестов растут - всё это сопровождается хаосом и различиями тестовых окружений, из-за чего неизбежно растёт и число нестабильных падений (ака флаки), за завесой которых могут теряться реальные проблемы. Как мы регулярно поддерживаем автотесты в приемлемом состоянии и стараемся не тратить на это слишком много времени? Об этом и поговорим.
https://habr.com/ru/articles/1032868/
#Тестирование #Разработка #Флакитесты #Регрессионное_тестирование #Тестовое_окружение #Управление_разработкой #Сервисные_тесты #Микросервисы #Обслуживание_тестсьюта
-
Философия автотестов: управление, поддержка и флаки
Привет, меня зовут Смирнов Владимир, и я отвечаю за тестирование торгового бэкенда в EXANTE. Разработка кипит, регрессионные наборы автотестов растут - всё это сопровождается хаосом и различиями тестовых окружений, из-за чего неизбежно растёт и число нестабильных падений (ака флаки), за завесой которых могут теряться реальные проблемы. Как мы регулярно поддерживаем автотесты в приемлемом состоянии и стараемся не тратить на это слишком много времени? Об этом и поговорим.
https://habr.com/ru/articles/1032868/
#Тестирование #Разработка #Флакитесты #Регрессионное_тестирование #Тестовое_окружение #Управление_разработкой #Сервисные_тесты #Микросервисы #Обслуживание_тестсьюта
-
Строим шину данных для микросервисов на ZeroMQ: failover, гарантии доставки и E2E-шифрование
Асинхронная клиент-серверная библиотека для обмена сообщениями между микросервисами на базе ZeroMQ. Реализует гарантированную доставку сообщений (At-Least-Once) с персистентной файловой очередью при обрывах связи, автоматический failover сервера переадресации (клиенты могут подхватывать роль сервера на лету) и два уровня защиты: шифрование канала (CurveZMQ) и сквозное шифрование сообщений (HMAC). Лёгкая альтернатива брокерам вроде RabbitMQ, не требующая отдельного сервера.
https://habr.com/ru/articles/1030020/
#python #zeromq #zmq #failover #atleastonce #endtoend_шифрование #микросервисы #распределенные_системы #hmac #криптография
-
Строим шину данных для микросервисов на ZeroMQ: failover, гарантии доставки и E2E-шифрование
Асинхронная клиент-серверная библиотека для обмена сообщениями между микросервисами на базе ZeroMQ. Реализует гарантированную доставку сообщений (At-Least-Once) с персистентной файловой очередью при обрывах связи, автоматический failover сервера переадресации (клиенты могут подхватывать роль сервера на лету) и два уровня защиты: шифрование канала (CurveZMQ) и сквозное шифрование сообщений (HMAC). Лёгкая альтернатива брокерам вроде RabbitMQ, не требующая отдельного сервера.
https://habr.com/ru/articles/1030020/
#python #zeromq #zmq #failover #atleastonce #endtoend_шифрование #микросервисы #распределенные_системы #hmac #криптография
-
Строим шину данных для микросервисов на ZeroMQ: failover, гарантии доставки и E2E-шифрование
Асинхронная клиент-серверная библиотека для обмена сообщениями между микросервисами на базе ZeroMQ. Реализует гарантированную доставку сообщений (At-Least-Once) с персистентной файловой очередью при обрывах связи, автоматический failover сервера переадресации (клиенты могут подхватывать роль сервера на лету) и два уровня защиты: шифрование канала (CurveZMQ) и сквозное шифрование сообщений (HMAC). Лёгкая альтернатива брокерам вроде RabbitMQ, не требующая отдельного сервера.
https://habr.com/ru/articles/1030020/
#python #zeromq #zmq #failover #atleastonce #endtoend_шифрование #микросервисы #распределенные_системы #hmac #криптография
-
Строим шину данных для микросервисов на ZeroMQ: failover, гарантии доставки и E2E-шифрование
Асинхронная клиент-серверная библиотека для обмена сообщениями между микросервисами на базе ZeroMQ. Реализует гарантированную доставку сообщений (At-Least-Once) с персистентной файловой очередью при обрывах связи, автоматический failover сервера переадресации (клиенты могут подхватывать роль сервера на лету) и два уровня защиты: шифрование канала (CurveZMQ) и сквозное шифрование сообщений (HMAC). Лёгкая альтернатива брокерам вроде RabbitMQ, не требующая отдельного сервера.
https://habr.com/ru/articles/1030020/
#python #zeromq #zmq #failover #atleastonce #endtoend_шифрование #микросервисы #распределенные_системы #hmac #криптография
-
Оркестрация runner-ов на Nomad
Некоторое время назад мы столкнулись с типовой проблемой очередей при исполнении пайплайнов. Задачи упирались друг в друга, мешая выполнять операции последовательно. Особенно остро это ощущалось на пайплайнах для сборки статики. Задачи требовали много ресурсов, выполнялись довольно долго, но основная нагрузка приходилась не столько процессор, сколько на дисковую подсистему (IOPS). В результате у нас возникали постоянные заторы при выполнении нескольких таких задач подряд. Таким образом, вырисовывалась такая картина маслом: несколько разработчиков одновременно пушат свои сборки — кто-то новую версию плагина, кто-то страницу сайта — и все эти задачи, каждая минут на десять, устремляются в горстку общих runner-ов. Первый в очереди, конечно, чувствует себя прекрасно. Остальные же с тоской смотрят на статус pending ....
https://habr.com/ru/companies/cinimex/articles/1031360/
#devops #nomad #gitlabrunner #оркестрация #iac #hashicorp #системное_администрирование #docker #микросервисы #python
-
Оркестрация runner-ов на Nomad
Некоторое время назад мы столкнулись с типовой проблемой очередей при исполнении пайплайнов. Задачи упирались друг в друга, мешая выполнять операции последовательно. Особенно остро это ощущалось на пайплайнах для сборки статики. Задачи требовали много ресурсов, выполнялись довольно долго, но основная нагрузка приходилась не столько процессор, сколько на дисковую подсистему (IOPS). В результате у нас возникали постоянные заторы при выполнении нескольких таких задач подряд. Таким образом, вырисовывалась такая картина маслом: несколько разработчиков одновременно пушат свои сборки — кто-то новую версию плагина, кто-то страницу сайта — и все эти задачи, каждая минут на десять, устремляются в горстку общих runner-ов. Первый в очереди, конечно, чувствует себя прекрасно. Остальные же с тоской смотрят на статус pending ....
https://habr.com/ru/companies/cinimex/articles/1031360/
#devops #nomad #gitlabrunner #оркестрация #iac #hashicorp #системное_администрирование #docker #микросервисы #python
-
Оркестрация runner-ов на Nomad
Некоторое время назад мы столкнулись с типовой проблемой очередей при исполнении пайплайнов. Задачи упирались друг в друга, мешая выполнять операции последовательно. Особенно остро это ощущалось на пайплайнах для сборки статики. Задачи требовали много ресурсов, выполнялись довольно долго, но основная нагрузка приходилась не столько процессор, сколько на дисковую подсистему (IOPS). В результате у нас возникали постоянные заторы при выполнении нескольких таких задач подряд. Таким образом, вырисовывалась такая картина маслом: несколько разработчиков одновременно пушат свои сборки — кто-то новую версию плагина, кто-то страницу сайта — и все эти задачи, каждая минут на десять, устремляются в горстку общих runner-ов. Первый в очереди, конечно, чувствует себя прекрасно. Остальные же с тоской смотрят на статус pending ....
https://habr.com/ru/companies/cinimex/articles/1031360/
#devops #nomad #gitlabrunner #оркестрация #iac #hashicorp #системное_администрирование #docker #микросервисы #python
-
Оркестрация runner-ов на Nomad
Некоторое время назад мы столкнулись с типовой проблемой очередей при исполнении пайплайнов. Задачи упирались друг в друга, мешая выполнять операции последовательно. Особенно остро это ощущалось на пайплайнах для сборки статики. Задачи требовали много ресурсов, выполнялись довольно долго, но основная нагрузка приходилась не столько процессор, сколько на дисковую подсистему (IOPS). В результате у нас возникали постоянные заторы при выполнении нескольких таких задач подряд. Таким образом, вырисовывалась такая картина маслом: несколько разработчиков одновременно пушат свои сборки — кто-то новую версию плагина, кто-то страницу сайта — и все эти задачи, каждая минут на десять, устремляются в горстку общих runner-ов. Первый в очереди, конечно, чувствует себя прекрасно. Остальные же с тоской смотрят на статус pending ....
https://habr.com/ru/companies/cinimex/articles/1031360/
#devops #nomad #gitlabrunner #оркестрация #iac #hashicorp #системное_администрирование #docker #микросервисы #python
-
Kubernetes: архитектура и абстракции — полный гайд
Почему Kubernetes стал стандартом оркестрации контейнеров? Разбираем архитектуру без скучной теории: Control Plane, поды, сервисы, деплойменты — на реальных примерах. Вы узнаете, как избежать типичных ошибок, увидите опыт миграции Tinder и получите лучшие практики, которые применяют ведущие команды. Статья для тех, кто хочет не просто знать команды kubectl, а понимать, как проектировать отказоустойчивые платформы
https://habr.com/ru/companies/otus/articles/1022152/
#devops #kubernetes #архитектура #контейнеры #оркестрация #микросервисы #bestpractices
-
FastAPI + Docker с нуля: деплоим свой первый API без боли и слез
Каждый начинающий бэкендер рано или поздно сталкивается с классической болью: «Ну не знаю, на моем компе всё работало, а на сервере почему-то падает!». Решение давно известно — контейнеризация. Но что делать, если от слова Docker бросает в дрожь, а официальные туториалы написаны сухим академическим языком и требуют знания Linux-администрирования? Мы с нуля напишем простейшее API на современном FastAPI, разберемся, чем «образ» отличается от «контейнера», упакуем наш код в изолированную коробочку и научимся запускать всё это одной кнопкой через Docker Compose. Максимально просто, «на пальцах» и без лишней воды. Заходи, если хочешь деплоить без боли и слез!
https://habr.com/ru/articles/1031190/
#python #fastapi #docker #dockercompose #dockerfile #бэкенд #для_начинающих #микросервисы #api #разработка_с_нуля
-
FastAPI + Docker с нуля: деплоим свой первый API без боли и слез
Каждый начинающий бэкендер рано или поздно сталкивается с классической болью: «Ну не знаю, на моем компе всё работало, а на сервере почему-то падает!». Решение давно известно — контейнеризация. Но что делать, если от слова Docker бросает в дрожь, а официальные туториалы написаны сухим академическим языком и требуют знания Linux-администрирования? Мы с нуля напишем простейшее API на современном FastAPI, разберемся, чем «образ» отличается от «контейнера», упакуем наш код в изолированную коробочку и научимся запускать всё это одной кнопкой через Docker Compose. Максимально просто, «на пальцах» и без лишней воды. Заходи, если хочешь деплоить без боли и слез!
https://habr.com/ru/articles/1031190/
#python #fastapi #docker #dockercompose #dockerfile #бэкенд #для_начинающих #микросервисы #api #разработка_с_нуля
-
FastAPI + Docker с нуля: деплоим свой первый API без боли и слез
Каждый начинающий бэкендер рано или поздно сталкивается с классической болью: «Ну не знаю, на моем компе всё работало, а на сервере почему-то падает!». Решение давно известно — контейнеризация. Но что делать, если от слова Docker бросает в дрожь, а официальные туториалы написаны сухим академическим языком и требуют знания Linux-администрирования? Мы с нуля напишем простейшее API на современном FastAPI, разберемся, чем «образ» отличается от «контейнера», упакуем наш код в изолированную коробочку и научимся запускать всё это одной кнопкой через Docker Compose. Максимально просто, «на пальцах» и без лишней воды. Заходи, если хочешь деплоить без боли и слез!
https://habr.com/ru/articles/1031190/
#python #fastapi #docker #dockercompose #dockerfile #бэкенд #для_начинающих #микросервисы #api #разработка_с_нуля
-
FastAPI + Docker с нуля: деплоим свой первый API без боли и слез
Каждый начинающий бэкендер рано или поздно сталкивается с классической болью: «Ну не знаю, на моем компе всё работало, а на сервере почему-то падает!». Решение давно известно — контейнеризация. Но что делать, если от слова Docker бросает в дрожь, а официальные туториалы написаны сухим академическим языком и требуют знания Linux-администрирования? Мы с нуля напишем простейшее API на современном FastAPI, разберемся, чем «образ» отличается от «контейнера», упакуем наш код в изолированную коробочку и научимся запускать всё это одной кнопкой через Docker Compose. Максимально просто, «на пальцах» и без лишней воды. Заходи, если хочешь деплоить без боли и слез!
https://habr.com/ru/articles/1031190/
#python #fastapi #docker #dockercompose #dockerfile #бэкенд #для_начинающих #микросервисы #api #разработка_с_нуля
-
[Перевод] Паттерны событийно-ориентированной архитектуры в облачном банкинге: что работает, а что ломает систему
Событийно-ориентированная архитектура часто выглядит как аккуратная схема с брокером, сервисами и красивыми стрелками между ними. В продакшене всё прозаичнее: события теряются, дублируются, приходят не по порядку, а контракты внезапно становятся долгоживущим API, который уже нельзя просто взять и переписать. В статье разбираем, как EDA ведёт себя в облачном банкинге: где она действительно помогает развязать системы и упростить аудит, а где добавляет новую сложность — от outbox/inbox и идемпотентности до границ доменных и интеграционных событий. Разобрать паттерны
https://habr.com/ru/companies/otus/articles/1031094/
#eventdriven_architecture #eda #cloudnative #банковские_системы #микросервисы #Kafka #outbox #inbox #идемпотентность
-
Почему Python стал главным помощником Java‑команд
Python уже не просто язык для скриптов и Data Science — в 2026 году он стал «клеем», который связывает микросервисы, тесты и CI/CD в Java‑проектах. Как получилось, что даже консервативные Java‑разработчики всё чаще пишут интеграционные тесты на pytest, запускают контейнеры с Testcontainers и рулят пайплайнами в GitHub Actions с помощью Python‑скриптов? В этой статье разбираем три реальные причины популярности Python. Если вы до сих пор считаете, что Python не для вас — возможно, это изменит ваш взгляд на инструменты.
https://habr.com/ru/companies/otus/articles/1022120/
#Java #Python #backendразработка #интеграционное_тестирование #микросервисы #pytest #автоматизация_тестирования #testcontainers #OpenAPI
-
Почему Python стал главным помощником Java‑команд
Python уже не просто язык для скриптов и Data Science — в 2026 году он стал «клеем», который связывает микросервисы, тесты и CI/CD в Java‑проектах. Как получилось, что даже консервативные Java‑разработчики всё чаще пишут интеграционные тесты на pytest, запускают контейнеры с Testcontainers и рулят пайплайнами в GitHub Actions с помощью Python‑скриптов? В этой статье разбираем три реальные причины популярности Python. Если вы до сих пор считаете, что Python не для вас — возможно, это изменит ваш взгляд на инструменты.
https://habr.com/ru/companies/otus/articles/1022120/
#Java #Python #backendразработка #интеграционное_тестирование #микросервисы #pytest #автоматизация_тестирования #testcontainers #OpenAPI
-
Почему Python стал главным помощником Java‑команд
Python уже не просто язык для скриптов и Data Science — в 2026 году он стал «клеем», который связывает микросервисы, тесты и CI/CD в Java‑проектах. Как получилось, что даже консервативные Java‑разработчики всё чаще пишут интеграционные тесты на pytest, запускают контейнеры с Testcontainers и рулят пайплайнами в GitHub Actions с помощью Python‑скриптов? В этой статье разбираем три реальные причины популярности Python. Если вы до сих пор считаете, что Python не для вас — возможно, это изменит ваш взгляд на инструменты.
https://habr.com/ru/companies/otus/articles/1022120/
#Java #Python #backendразработка #интеграционное_тестирование #микросервисы #pytest #автоматизация_тестирования #testcontainers #OpenAPI
-
Почему Python стал главным помощником Java‑команд
Python уже не просто язык для скриптов и Data Science — в 2026 году он стал «клеем», который связывает микросервисы, тесты и CI/CD в Java‑проектах. Как получилось, что даже консервативные Java‑разработчики всё чаще пишут интеграционные тесты на pytest, запускают контейнеры с Testcontainers и рулят пайплайнами в GitHub Actions с помощью Python‑скриптов? В этой статье разбираем три реальные причины популярности Python. Если вы до сих пор считаете, что Python не для вас — возможно, это изменит ваш взгляд на инструменты.
https://habr.com/ru/companies/otus/articles/1022120/
#Java #Python #backendразработка #интеграционное_тестирование #микросервисы #pytest #автоматизация_тестирования #testcontainers #OpenAPI
-
Circuit breaker на Go: пишем свой за 100 строк и разбираем, почему gobreaker работает иначе
Когда один зависимый сервис начинает отвечать медленнее, проблема быстро перестает быть локальной: горутины ждут, соединения заканчиваются, таймауты разъезжаются по всей цепочке. Circuit breaker помогает остановить этот каскад до того, как он положит соседние части системы. В статье разберем, как написать простой breaker на Go примерно за 100 строк, где у такой реализации границы применимости и почему production‑библиотека gobreaker устроена гибче.
https://habr.com/ru/companies/otus/articles/1029182/
#Circuit_breaker #Go #Golang #gobreaker #отказоустойчивость #таймауты #retry #микросервисы #downstreamсервисы #планировщик_Go
-
Circuit breaker на Go: пишем свой за 100 строк и разбираем, почему gobreaker работает иначе
Когда один зависимый сервис начинает отвечать медленнее, проблема быстро перестает быть локальной: горутины ждут, соединения заканчиваются, таймауты разъезжаются по всей цепочке. Circuit breaker помогает остановить этот каскад до того, как он положит соседние части системы. В статье разберем, как написать простой breaker на Go примерно за 100 строк, где у такой реализации границы применимости и почему production‑библиотека gobreaker устроена гибче.
https://habr.com/ru/companies/otus/articles/1029182/
#Circuit_breaker #Go #Golang #gobreaker #отказоустойчивость #таймауты #retry #микросервисы #downstreamсервисы #планировщик_Go
-
Circuit breaker на Go: пишем свой за 100 строк и разбираем, почему gobreaker работает иначе
Когда один зависимый сервис начинает отвечать медленнее, проблема быстро перестает быть локальной: горутины ждут, соединения заканчиваются, таймауты разъезжаются по всей цепочке. Circuit breaker помогает остановить этот каскад до того, как он положит соседние части системы. В статье разберем, как написать простой breaker на Go примерно за 100 строк, где у такой реализации границы применимости и почему production‑библиотека gobreaker устроена гибче.
https://habr.com/ru/companies/otus/articles/1029182/
#Circuit_breaker #Go #Golang #gobreaker #отказоустойчивость #таймауты #retry #микросервисы #downstreamсервисы #планировщик_Go
-
Circuit breaker на Go: пишем свой за 100 строк и разбираем, почему gobreaker работает иначе
Когда один зависимый сервис начинает отвечать медленнее, проблема быстро перестает быть локальной: горутины ждут, соединения заканчиваются, таймауты разъезжаются по всей цепочке. Circuit breaker помогает остановить этот каскад до того, как он положит соседние части системы. В статье разберем, как написать простой breaker на Go примерно за 100 строк, где у такой реализации границы применимости и почему production‑библиотека gobreaker устроена гибче.
https://habr.com/ru/companies/otus/articles/1029182/
#Circuit_breaker #Go #Golang #gobreaker #отказоустойчивость #таймауты #retry #микросервисы #downstreamсервисы #планировщик_Go
-
Коллаборация человека и ИИ в Kotlin‑разработке: скрытые практики эффективных команд
ИИ-агенты пишут код быстрее человека, но кто поручится, что они не устроят cascading failure? Разберем, как в реальном проекте совместить инженерный опыт, архитектурные шаблоны и автономных агентов, чтобы получить работающий функциональный узел, а не груду классов-переростков. Вы увидите подготовку фундамента, декомпозицию задач, диаграммы и тот самый момент, когда ИИ нужно жёстко одёрнуть.
https://habr.com/ru/companies/otus/articles/1022118/
#kotlin #backendразработка #архитектура #aiагенты #agentoriented_programming #микросервисы #clean_architecture #идемпотентность #асинхронные_процессы #kotlin_ktor
-
Коллаборация человека и ИИ в Kotlin‑разработке: скрытые практики эффективных команд
ИИ-агенты пишут код быстрее человека, но кто поручится, что они не устроят cascading failure? Разберем, как в реальном проекте совместить инженерный опыт, архитектурные шаблоны и автономных агентов, чтобы получить работающий функциональный узел, а не груду классов-переростков. Вы увидите подготовку фундамента, декомпозицию задач, диаграммы и тот самый момент, когда ИИ нужно жёстко одёрнуть.
https://habr.com/ru/companies/otus/articles/1022118/
#kotlin #backendразработка #архитектура #aiагенты #agentoriented_programming #микросервисы #clean_architecture #идемпотентность #асинхронные_процессы #kotlin_ktor
-
Коллаборация человека и ИИ в Kotlin‑разработке: скрытые практики эффективных команд
ИИ-агенты пишут код быстрее человека, но кто поручится, что они не устроят cascading failure? Разберем, как в реальном проекте совместить инженерный опыт, архитектурные шаблоны и автономных агентов, чтобы получить работающий функциональный узел, а не груду классов-переростков. Вы увидите подготовку фундамента, декомпозицию задач, диаграммы и тот самый момент, когда ИИ нужно жёстко одёрнуть.
https://habr.com/ru/companies/otus/articles/1022118/
#kotlin #backendразработка #архитектура #aiагенты #agentoriented_programming #микросервисы #clean_architecture #идемпотентность #асинхронные_процессы #kotlin_ktor
-
Коллаборация человека и ИИ в Kotlin‑разработке: скрытые практики эффективных команд
ИИ-агенты пишут код быстрее человека, но кто поручится, что они не устроят cascading failure? Разберем, как в реальном проекте совместить инженерный опыт, архитектурные шаблоны и автономных агентов, чтобы получить работающий функциональный узел, а не груду классов-переростков. Вы увидите подготовку фундамента, декомпозицию задач, диаграммы и тот самый момент, когда ИИ нужно жёстко одёрнуть.
https://habr.com/ru/companies/otus/articles/1022118/
#kotlin #backendразработка #архитектура #aiагенты #agentoriented_programming #микросервисы #clean_architecture #идемпотентность #асинхронные_процессы #kotlin_ktor
-
Архитектурные решения в backend: 5 практических приёмов, которые помогают держать баланс
В статье рассмотрим, почему эволюционная архитектура и модульный монолит превосходят современные архитектурные подходы. Обсудим, в каких случаях стоит отказаться от микросервисов, как документировать архитектурные решения с помощью ADR и какие методы помогают спасать проекты.
https://habr.com/ru/companies/otus/articles/1022186/
#backendархитектура #модульный_монолит #микросервисы #DDD #Big_Ball_of_Mud #ADR #C4 #гексагональная_архитектура #порты_и_адаптеры #эволюционная_архитектура
-
Архитектурные решения в backend: 5 практических приёмов, которые помогают держать баланс
В статье рассмотрим, почему эволюционная архитектура и модульный монолит превосходят современные архитектурные подходы. Обсудим, в каких случаях стоит отказаться от микросервисов, как документировать архитектурные решения с помощью ADR и какие методы помогают спасать проекты.
https://habr.com/ru/companies/otus/articles/1022186/
#backendархитектура #модульный_монолит #микросервисы #DDD #Big_Ball_of_Mud #ADR #C4 #гексагональная_архитектура #порты_и_адаптеры #эволюционная_архитектура
-
Архитектурные решения в backend: 5 практических приёмов, которые помогают держать баланс
В статье рассмотрим, почему эволюционная архитектура и модульный монолит превосходят современные архитектурные подходы. Обсудим, в каких случаях стоит отказаться от микросервисов, как документировать архитектурные решения с помощью ADR и какие методы помогают спасать проекты.
https://habr.com/ru/companies/otus/articles/1022186/
#backendархитектура #модульный_монолит #микросервисы #DDD #Big_Ball_of_Mud #ADR #C4 #гексагональная_архитектура #порты_и_адаптеры #эволюционная_архитектура