Горячее
Лучшее
Свежее
Подписки
Сообщества
Блоги
Эксперты
#Круги добра
Войти
Забыли пароль?
или продолжите с
Создать аккаунт
Я хочу получать рассылки с лучшими постами за неделю
или
Восстановление пароля
Восстановление пароля
Получить код в Telegram
Войти с Яндекс ID Войти через VK ID
Создавая аккаунт, я соглашаюсь с правилами Пикабу и даю согласие на обработку персональных данных.
ПромокодыРаботаКурсыРекламаИгрыПополнение Steam
Пикабу Игры +1000 бесплатных онлайн игр  Что обсуждали люди в 2024 году? Самое время вспомнить — через виммельбух Пикабу «Спрятано в 2024»! Печенька облегчит поиск предметов.

Спрятано в 2024

Поиск предметов, Казуальные

Играть

Топ прошлой недели

  • SpongeGod SpongeGod 1 пост
  • Uncleyogurt007 Uncleyogurt007 9 постов
  • ZaTaS ZaTaS 3 поста
Посмотреть весь топ

Лучшие посты недели

Рассылка Пикабу: отправляем самые рейтинговые материалы за 7 дней 🔥

Нажимая кнопку «Подписаться на рассылку», я соглашаюсь с Правилами Пикабу и даю согласие на обработку персональных данных.

Спасибо, что подписались!
Пожалуйста, проверьте почту 😊

Помощь Кодекс Пикабу Команда Пикабу Моб. приложение
Правила соцсети О рекомендациях О компании
Промокоды Биг Гик Промокоды Lamoda Промокоды МВидео Промокоды Яндекс Директ Промокоды Отелло Промокоды Aroma Butik Промокоды Яндекс Путешествия Постила Футбол сегодня
0 просмотренных постов скрыто
5
thecodemedia
thecodemedia
3 месяца назад

Пояснительная бригада: микросервисы⁠⁠

Пояснительная бригада: микросервисы IT, Программирование, Программист, Python, Разработка, Микросервисы, IT юмор

«Теперь при помощи контейнеров можно решить проблемы, которых не было до появления контейнеров»

В Великобритании по историческим причинам очень много где используются не смесители, а два отдельных крана. Весь остальной мир гадает, как же они в итоге пользуются этими кранами. Самый рабочий вариант для нас, кто привык к смесителям, — быстро-быстро подставляют руки под одну и под другую струю.

Так вот, микросервисы — это такие отдельные сервисы в общем приложении. Но встаёт вопрос: а как их объединить? Примерно как в британской ванной: давайте быстро-быстро опрашивать то один, то другой сервис.

— Паша Вавилин, наставник на курсе по Python

Показать полностью 1
IT Программирование Программист Python Разработка Микросервисы IT юмор
17
12
NaruCodex
NaruCodex
3 месяца назад
Программисты шутят

Протокол вскрытия неопознанного распределенного монолита⁠⁠

Протокол вскрытия неопознанного распределенного монолита IT юмор, Программирование, Юмор, Разработка, Код, Длиннопост, Баг, Легаси, DevOps, Монолит, Микросервисы

[Начало аудиозаписи (бодрый голос, с нотками цинизма и усталости)]

Протокол вскрытия № 666-IT/2025. Дата: 17 мая 2025 года. Время: 05:30.

- Я, ведущий DevOps-патологоанатом Сисадминов А.А., приступаю к патологоанатомическому исследованию неопознанного распределенного монолита, поступившего из ООО "Светлое Будущее" после фатального падения системы, зафиксированного 16 мая 2025 в 23:58 по московскому времени.

- Присутствуют: я, младший специалист Логинов П.Р., стажер Архитекторова Н.Ю.

Протокол вскрытия неопознанного распределенного монолита IT юмор, Программирование, Юмор, Разработка, Код, Длиннопост, Баг, Легаси, DevOps, Монолит, Микросервисы

- Итак, начнем. Внешний осмотр. Перед нами типичный корпоративный монолит — старожил цифрового мира. Судя по следам от PHP 5.3 в виде комментариев к коду, датированным 2011 годом, ему не меньше 14 лет. Внушительный возраст для любой системы в кровавом Энтерпрайзе, не находите, Логинов?

- Да, это почти живой мамонт!

- Отмечаю критическую анемию документации. В репозитории — одинокий README.md от 2012 года с гордой надписью "TODO: написать документацию".

- Так, что у нас тут… Kubernetes? О, да! Модный, молодежный. Оркестрация уровня «дирижер в запое». Поды висят в CrashLoopBackOff чаще, чем разработчики этого чуда видят кофейный аппарт. Логи… о, мда, логи! «Something went wrong», «Error: null», «PANIC: KERNEL PANIC (not really, just kidding, or am I?)». Креативненько, ничего Логинов, возьмите образцы на анализ.

- Первичный осмотр выявляет множественные очаги копипасты. Особенно вопиющий случай — модуль авторизации. Код проверки прав доступа размножен 47 раз с минимальными правками. Это уже не просто технический долг, это цирк абсурда ролевых моделей!

- Вижу следы восьми разных фреймворков, некоторые из которых не совместимы. Это мне напоминает "инновационный борщ, тёщи, приправленный усушенными котлетками и жаренными пельменями", брр. А вот это что? Закомментированный кусок кода с пометкой «// Игорь, это не трогай, я сам не знаю, как оно работает, но без него все падает!!!11». Игорь, если ты это слышишь, ты был не прав – оно и с ним упало. Из мешанины использованных языков программирования в разных модулях, можно предположить, что разработчики стремились изобрести свой высокоуровневый Brainf**k, совсем чуточку не успели.

Протокол вскрытия неопознанного распределенного монолита IT юмор, Программирование, Юмор, Разработка, Код, Длиннопост, Баг, Легаси, DevOps, Монолит, Микросервисы

- Ага, вот и причина непосредственного отказа. Один из «сервисов» решил, что ему мало 128 Гб оперативной памяти и попытался сожрать еще столько же из свопа. Классический OOM Killer пришел и сделал свою работу. Но это, так сказать, орудие убийства. Причина отказа куда глубже.

[идет продолжительная работа]

- Отказ наступила из-за необратимых изменений кода, навороченных за 13 лет разными разработчиками с их "уникальным видением". Рекомендации родственникам: кремация кодовой базы и старт с нуля. Пациент был нежизнеспособен с момента зачатия идеи в воспаленном мозгу тимлида.

- Ладно, хватит лирики. Пойду оформлять официальный протокол, Логинов, мне нужны результаты анализов. Эти бюрократы из «МинЦифЗдрава» требуют всё по форме.

[Щелчок выключения диктофона]


УТВЕРЖДАЮ

Заместитель начальника Отдела цифровой патологии и реанимации информационных систем

И.И. Кибернетиков

«18» мая 2025 г.

ПРОТОКОЛ № 666-IT/2025 патологоанатомического вскрытия информационной системы

Наименование «ИТ» организации, в которой производится вскрытие: Отдел цифровой патологии и реанимации информационных систем Департамента по надзору за стабильностью критической инфраструктуры.

Дата и время поступления системы: 17.05.2025, 04:48 (MSK)

Идентификатор «умершего»: Проект «Прорыв-2012», версия - неизвестная.

Возраст (время эксплуатации до фатального сбоя): 14 лет, 3 месяца, 2 дня (в режиме «постоянно падает, но мы поднимаем»).

Дата и время «полного отказа»: 16.05.2025, 23:58 (MSK)

Основной «клинический» диагноз (предварительное заключение службы эксплуатации): «Все сломалось, ничего не работает, пользователи в ярости, не могут закрыть спринт».

Дата и время вскрытия: 17.05.2025, 05:30 (MSK)

Вскрытие производил: Ведущий DevOps-патологоанатом Сисадминов А.А.

Присутствовали: Младший специалист по цифровой некроскопии Логинов П.Р., стажер Архитекторова Н.Ю. (сбежала через 15 минут с криком «О боже! Да я лучше бухгалтерию, буду переводить на метод ФИФО!»).

НАРУЖНЫЙ ОСМОТР СИСТЕМЫ: «Кожные пользовательские интерфейсы» недоступны, ответ сервера HTTP 503 (Service Unavailable) на всех эндпоинтах. «Трупные ошибки в логах» обильные, хаотично распределены по всем компонентам системы. «Трупное зависание процессов» наблюдается в 6 из 8 основных модулей. Сопроводительная документация-анамнез разработки фрагментарна, содержит ненормативную лексику и наскальные рисунки, не относящиеся к делу. Архитектурная схема представлена в виде эскиза на длинном бумажном чеке из КБ, вызывает сомнения.

ВНУТРЕННЕЕ ИССЛЕДОВАНИЕ СЕРВИСОВ И ПОЛОСТЕЙ СИСТЕМЫ:

  1. «Центральная нервная система Оркестратор Kubernetes»: Версия 1.25.х (устаревшая). Множественные Pod'ы в состоянии CrashLoopBackOff и ImagePullBackOff. Обнаружены некорректно сконфигурированные readiness и liveness пробы, приводящие к преждевременному «умерщвлению» работоспособных экземпляров. Конфигурационные файлы содержат критические данные в открытом виде.

  2. «Сердечно-сетевая система межсервисного взаимодействие»: Топология сети избыточно сложная, напоминает «Гордиев узел». Задержки при взаимодействии между «микросервисами» достигают нескольких десятков секунд. Обнаружены следы использования самописного протокола поверх HTTP/1.1 для передачи бинарных данных, что приводило к их регулярной закупорке каналов связи. «Микросервисы» по факту являются монолитными приложениями, упакованными в Docker-контейнеры, с высоким уровнем связанности (tight coupling).

  3. «Дыхательная API Gateway система»: API Gateway перегружен из-за отсутствия кэширования и неоптимальных запросов от фронтенда. Модуль «AuthService» демонстрирует признаки «гипертрофии» (размер Docker-образа 3 Гб) и «кислородного голодания» (регулярные OOM Killed). Обнаружены многочисленные хардкод-адреса зависимых сервисов.

  4. «Пищеварительная база данных»: Основная СУБД PostgreSQL – горизонтально шардированная. Структура БД ненормализована, наименования таблиц и полей не соответствуют общепринятым стандартам (например, tbl_prod_final_v2_important). Индексы на часто запрашиваемых полях отсутствуют. Обнаружены следы «несварения» данных (неконсистентность) между репликами. Обнаружена метастаза в виде документно-ориентированной MongoDB из одной коллекции, c полу структурированными данными.

  5. «Опорно-двигательная кодовая база»: Код написан на смеси Python, Go и Node.js (в рамках одного «микросервиса»), в наличии остаточные следы PHP. Присутствуют многочисленные «велосипеды» (самописные решения для стандартных задач). Уровень покрытия тестами – предположительно, менее 5%. Обнаружены закомментированные участки кода с пометками «не трогать, магия» и «костыль, убрать перед релизом».

ПАТОЛОГОАНАТОМИЧЕСКИЙ ДИАГНОЗ:

  • Основное «заболевание»: Острая декомпенсированная архитектурная недостаточность, развившаяся на фоне тотального игнорирования принципов проектирования распределенных систем и DevOps-практик. Тип: «Распределенный Монолит с полиорганной дисфункцией микросервисов».

  • Осложнения: Синдром каскадного отказа модулей. Терминальная стадия технического долга. Критическая зависимость от «магического кода Игоря», о чем свидетельствуют множественные коммиты. Фатальные уязвимости безопасности.

  • Сопутствующие «заболевания»: Хроническое отсутствие автоматизированного тестирования. Дефицит компетентной документации. Синдром «Неприятия чужой разработки» (NIH) в тяжелой форме.

ЗАКЛЮЧЕНИЕ О ПРИЧИНЕ «ОТКАЗА» СИСТЕМЫ: «Отказ» информационной системы «Прорыв-2012» наступила в результате совокупности критических архитектурных просчетов, некомпетентной реализации, отсутствия контроля качества и пренебрежения базовыми принципами разработки и эксплуатации ПО. Непосредственной причиной остановки функционирования явился отказ модуля «AuthService» вследствие исчерпания выделенных ресурсов памяти (OOM Killer), что вызвало цепную реакцию отказа зависимых компонентов. Система стала нежизнеспособна в долгосрочной (и, как оказалось, краткосрочной) перспективе.

РЕКОМЕНДАЦИИ:

  1. Признать проект «Прорыв-2012» полностью несостоятельным.

  2. Провести служебное расследование с целью выявления ответственных за принятие губительных архитектурных и технических решений.

  3. Останки системы (репозитории, артефакты сборки, конфигурации) архивировать с пометкой «Крайне токсично. Не реанимировать!».

  4. Команде разработки в полном составе пройти курсы повышения квалификации по темам: «Основы архитектуры ПО», «DevOps для чайников», «Тестирование – это не больно».

  5. При планировании аналогичных проектов в будущем закладывать бюджет на привлечение внешних ИТ-архитекторов и независимых стейколдеров.

Ведущий DevOps-патологоанатом

___________________ Сисадминов А.А.

М.П. (Отдела Цифровой Патологии)

Показать полностью 3
[моё] IT юмор Программирование Юмор Разработка Код Длиннопост Баг Легаси DevOps Монолит Микросервисы
0
ChugaDevOps
4 месяца назад

Кратко об архитектуре Микросервисов⁠⁠

Микросервисная архитектура позволяет поставлять новые обновления конечным пользователям быстрее и качественнее главное не переборщить с количеством микросервисов.
Микросервис должен предоставлять функционал из одной области.
Связи между микросервисами не должны превышать более 2 или максимум 3.
Чем больше связей тем сложнее разработка и поддержка обратной совместимости.

IT DevOps Микросервисы Программирование Автоматизация Текст
16
1
zwuck
4 месяца назад

Разработка telegram мини-приложения в 2025 или как я дошел до жизни такой. Часть ай ноу ю вонт ми⁠⁠

Штош, я только начал и не собираюсь сдаваться!!!!!!!!!!

Рубрика «в предыдущих сериях»:

  • Часть первая, что и почему я решил делать Telegram мини-приложения в 2025 или как я дошел до жизни такой. Часть уно

  • Часть вторая, какой инструментарий я использую и немного о разработке Разработка telegram мини-приложения в 2025 или как я дошел до жизни такой. Часть до

  • Часть третья, разворачивание приложения на VPS и немного про докер Разработка telegram мини-приложения в 2025 или как я дошел до жизни такой. Часть тре

  • Часть четвертая, настройка бота в telegram, получение доменного имени и ssl, настройка nginx Разработка telegram мини-приложения в 2025 или как я дошел до жизни такой. Часть куатро

Для связи telegram бота и функционала, который вы хотите ему придать, необходимо реализовать соответствующий функционал с использованием языка программирования. Как я уже писал в первой части, для реализации бота был выбран фреймворк nestJS (язык программирования typescript) и кроме базовых файлов, которые автоматом устанавливаются при установке проекта, нам понадобится всего лишь два дополнительных файла.

Разработка telegram мини-приложения в 2025 или как я дошел до жизни такой. Часть ай ноу ю вонт ми Telegram, Telegram каналы, Микросервисы, IT юмор, Разработка, Продвижение, Длиннопост

Практически базовая структура nestJS проекта

Для бота написанными лично мною являются файлы bot.module.ts и bot.update.ts. Наполнение bot.update.ts следующее.

Разработка telegram мини-приложения в 2025 или как я дошел до жизни такой. Часть ай ноу ю вонт ми Telegram, Telegram каналы, Микросервисы, IT юмор, Разработка, Продвижение, Длиннопост

Ссылка на приложение, текст и кнопка запуска

Наполнение bot.module.ts следующее.

Разработка telegram мини-приложения в 2025 или как я дошел до жизни такой. Часть ай ноу ю вонт ми Telegram, Telegram каналы, Микросервисы, IT юмор, Разработка, Продвижение, Длиннопост

По сути просто связующий файл для импортов

В самом telegram боте после его «активации» вы увидите следующее.

Разработка telegram мини-приложения в 2025 или как я дошел до жизни такой. Часть ай ноу ю вонт ми Telegram, Telegram каналы, Микросервисы, IT юмор, Разработка, Продвижение, Длиннопост

Ну прювет, дорогой

В самом же списке контактов вы увидите следующее.

Разработка telegram мини-приложения в 2025 или как я дошел до жизни такой. Часть ай ноу ю вонт ми Telegram, Telegram каналы, Микросервисы, IT юмор, Разработка, Продвижение, Длиннопост

Красивенький какой)))

Ну вот и все, дорогие мои, все этапы создания мини-приложения для telegram пройдены, можете все это повторить, но уже для других сервисов, например, игр тайм-киллеров.

А теперь «микросерверность» и все, что с этим связано, nikita17cm все это для тебя, мой единственный комментатор!!!!!

Для начала рассмотрим, а что же является альтернативой микросервисной архитектуры и какие минусы у такого подхода, который был назван монолитной архитектурой. Представим, что на бэкенде у меня один проект и взаимодействие с ботом является составной частью основного бэкенда. На этом этапе никаких проблем нет, как вы все видели, код взаимодействия с ботом минимален и не сложен. Время проходит и я, например, решаю реализовать функционал оплаты, через робокассу или юмани. Реализация оплаты уже посложнее, код объемнее и отлаживать или тестировать его функционал становится сложнее, но все еще терпимо в рамках единой кодовой базы проекта. А потом мы добавляем логирование (для отслеживания ошибок), кеширование (для ускорения работы приложения), брокер сообщений (для гарантированной доставки важных сообщений) и т.д. Все это приводит к тому, что теперь процедуру отладки или тестирования функционала становится очень сложно проводить, так как изменения в одной части кода могут повлиять на другую часть кода. А что если как-то выделить код, который отвечает за какой-то один функционал (бот, логирование, кеширование и т.д.) и, самое главное, изолировать этот функционал между собой? В этом и есть основной смысл микросервисной архитектуры, который позволяет абсолютно независимо разрабатывать, тестировать и отлаживать взаимодействие отдельных микросервисов между собой. Накатили новые изменения и сломался функционал логирования (кеширования, брокера сообщений)? Не проблема, основной функционал вашего приложения работает, как раньше, просто откатываете изменения и исправляете ошибку. Именно поэтому функционал бота у меня выделен в отдельное приложения, я сразу стал так писать, а не писал сначала все в одном проекте, а потом решил часть проекта выделить в отдельный микросервис. Надеюсь, стало немного понятно, а вообще на ютубе полно видео на эту тему, которые достаточно доходчиво объясняют все интересующие вас аспекты.

А, ну и конечно, как я уже ранее писал, мини-приложение уже готово и ждет своих пользователей, как говорится welcome t.me/Socionyx_Bot/socionyx.

Кроме того, завел telegram канал t.me/socionyxchannel, где буду писать о дальнейших этапах разработки и продвижения, разработанных мною приложений.

Буду премного благодарен за обратную связь и замечания по работе текущего мини-приложения.

Показать полностью 5
[моё] Telegram Telegram каналы Микросервисы IT юмор Разработка Продвижение Длиннопост
2
6691
SergVaders1999
SergVaders1999
6 месяцев назад

Это: 10/10⁠⁠4

Это: 10/10 Юмор, Мемы, Неудачное свидание, Картинка с текстом, Микросервисы, IT юмор, Волна постов
Показать полностью 1
Юмор Мемы Неудачное свидание Картинка с текстом Микросервисы IT юмор Волна постов
622
30
imctobitch
imctobitch
7 месяцев назад
Лига программистов
Серия I'm CTO, bitch

Просто⁠⁠

Просто I`m CTO bitch, IT, Просто, Сложно, Программирование, Golang, Микросервисы, Kubernetes, Разработка, Kanban, Бесит, Грубость, Билл Гейтс, Скриншот
Показать полностью 1
[моё] I`m CTO bitch IT Просто Сложно Программирование Golang Микросервисы Kubernetes Разработка Kanban Бесит Грубость Билл Гейтс Скриншот
0
0
Timyrlan
Timyrlan
7 месяцев назад

Продолжение поста «Микросервисы, которые мы заслужили»⁠⁠1

Феерически, конечно, работает техподдержка я.маркета

для лл: техподдержка я.маркета послала на хер в техподдержку я.банк. Написал об этом тут, бот умолял написать об этом в техподдержку, и я снова был послан на хер получил отписку

В прошлом посте писал, как феерически работает техподдержка я.маркет: у нас лапки, идите в техподдержку я.банка. Ну ок, чо. Сходил, потратил полдня, разобрался сам (она у них там вообще бесполезная). Написал об этом пост в спортлото.

Приходит, значит, человекобот, и говорит: ой ой ой, как же так. Ай ай ай, мы во всём разберемся.

МЫ НЕ ДОЛЖНЫ БЫЛИ ПОСЫЛАТЬ ВАС НА ХЕР В ДРУГУЮ ТЕХПОДДЕРЖКУ

Напишите нам в чат, всё выясним.

Думаю, ну нафига попу баян? Я уже разобрался, не буду писать. Но, блин, когда человекобот в ЧЕТВЕРТЫЙ (sic!) раз написал "ну что же вы нам не пишите, мы же ждем", решил ну ок, напишу.

Прошел по указанной уникальной ссылке (тоже квест), приложил скриншоты, приложил эту уникальную ссылку. Думаю, ну, пусть разбираются. Хрен там в нос! получаю отписку в духе "что-то пошло не так, но сейчас все хорошо". Т.е. человекоботы даже НЕ ПЫТАЮТСЯ вникнуть в вопрос, они тупо сливают все запросы в /dev/null

Зато какая имитация бурной деятельности! Какие kpi, sla, rps, dau! По всем метрикам впереди планеты всей!

Служба поддержки Яндекс Маркет Онлайн-платежи Безналичные платежи Микросервисы Текст Ответ на пост
3
Timyrlan
Timyrlan
8 месяцев назад

Микросервисы, которые мы заслужили⁠⁠1

Уже неделю бьюсь с проблемой: не могу оплатить заказ на сайте яндекс.маркет

С телефона оплачивается, с сайта хрен в нос. Наконец, решил упереться рогом, и разобраться в чем собственно дело. Техподдержка оказалась бесполезна, долго ли, коротко ли, выяснил, что проблема на лимит автопополнения карты яндекс.пэй.

Пишу в техподдержку: а хрена ли вы мне сами не могли об этом сказать, вы же техподдержка!

Ответ: а это не наш сервис, обращайтесь в поддержку сервиса яндекс.пэй, наши полномочия на этом фсё

Шо ж это получается, граждане товарищи? Я теперь в поддержку каждого микросервиса должен лазить? Ну дайте мне тогда сразу доступ к графану чтоль, опенсеч там, буду по логам сам смотреть. Ну чтоб не отвлекать техподдержку своими глупыми запросами

Да уж, не так я себе микросервисную архитектуру представлял

[моё] Служба поддержки Яндекс Маркет Онлайн-платежи Безналичные платежи Микросервисы Текст
12
Посты не найдены
О нас
О Пикабу Контакты Реклама Сообщить об ошибке Сообщить о нарушении законодательства Отзывы и предложения Новости Пикабу Мобильное приложение RSS
Информация
Помощь Кодекс Пикабу Команда Пикабу Конфиденциальность Правила соцсети О рекомендациях О компании
Наши проекты
Блоги Работа Промокоды Игры Курсы
Партнёры
Промокоды Биг Гик Промокоды Lamoda Промокоды Мвидео Промокоды Яндекс Директ Промокоды Отелло Промокоды Aroma Butik Промокоды Яндекс Путешествия Постила Футбол сегодня
На информационном ресурсе Pikabu.ru применяются рекомендательные технологии