Привет! Вы когда‑нибудь задумывались, как некоторые из крупнейших веб‑сайтов одновременно обрабатывают запросы миллионов пользователей без сбоев, или передают ваши данные, направляя вас на правильный сервер? В этой статье для начинающих сетевиков мы углубимся в три важнейших веб‑компонента: прямой прокси, обратный прокси и балансировщик нагрузки. Разбёрем эти концепции простым и понятным языком.
Пользователь
OpenShift и Kubernetes: сравнительный обзор, основные различия
OpenShift и Kubernetes (K8s) выбирают чаще всего для оркестровки контейнеров. Эти инструменты сложно сравнивать напрямую, поскольку Kubernetes — открытое решение (open source), а OpenShift — продукт (дистрибутив) на основе Kubernetes. В этой статье рассмотрены их основные функции и отличия, модели развёртывания и пригодность для различных вариантов использования.
Статья будет полезна тем, кто пока не знаком с этими инструментами и хочет узнать о них больше.
Как мы развиваем архитектурные навыки ИТ-специалистов в Сбере
Привет, Хабр! Меня зовут Антон Мамичев, я исполнительный директор Департамента корпоративной архитектуры в Сбере и лидер Школы ИТ‑архитекторов.
ИТ‑архитектура для большой организации имеет исключительное значение. Компании очень важно, чтобы сотрудники обладали необходимыми компетенциями для успешного выполнения поставленных задач, а сотрудникам эти компетенции необходимы, чтобы чувствовать себя увереннее, быть успешнее и расти профессионально. Для достижения этой задачи в Департаменте корпоративной архитектуре (ДКА) была создана Школа IT‑архитекторов SberAX.
Управление таким объёмом уникального контента невозможно по наитию, поэтому мы разработали свой подход, о котором я и расскажу в этой статье.
Мониторинг, который кричал «Волк»! Что мы придумали для корректного сбора метрик
Привет, Хабр! Меня зовут Станислав Савостин, в СберТехе я занимаюсь системой мониторинга «Маяк». Это наш внутренний сервис, который основан на Prometheus, но включает много доработок и «тюнинга» под наши условия и стандарты работы.
Основная задача мониторинга — быстро выявить проблему (до того, как что‑то упало) и отреагировать, чтобы пользователи не заметили. Из‑за высокого темпа уведомлений и реакций часто возникает риск пойти по неправильному сценарию. Например, перезагрузка брокера Kafka или Artemis занимает около 30 секунд, поэтому упустить такую ситуацию легко, хотя для нас это критически важная метрика. Ложная тревога или задержка передачи метрик — максимально неприятные события, так что мы постоянно дорабатываем систему и уже научились отслеживать перезагрузки сервисов.
Я расскажу, как мы дорабатывали мониторинг, как реагируем на действительно опасные ситуации и что помогает нам ловить дзен, когда все кричат: «Волк!»
Настраиваем работу конвейера CI/CD (почти) без рук. Опыт использования Orchestra R в энтерпрайзе
Компании, что используют Jenkins в качестве CI/CD‑инструмента, обычно делают несколько экземпляров, если в разработке участвует множество команд или приходится работать с большим количеством проектов. При этом оркестрация Jenkins»ов в командах — не самая простая работа, а во многом ещё и рутинная. С одной стороны, сложно соблюдать все требования сборки и тестирования и вовремя находить согласующих. С другой, одним скриптом невозможно решить всю задачу от получения доступов до вывода релизов в эксплуатацию.
Есть правило, что если система становится слишком сложной, то люди чаще ищут способы обойти алгоритмы, а не следовать им. Чтобы не усложнять систему, а разложить всё по ролям и этапам, мы пришли к созданию собственного инструмента — Orchestra R. С его помощью мы хотели не только автоматизировать работу конвейера CI/CD, но и упростить жизнь всех DevOps‑инженеров. В этом материале поделимся особенностями работы инструмента и опытом эксплуатации в СберТехе.
Как не сломать мониторинг своими руками
Проблема наблюдаемости (observability) возникает во всех организациях. Я помогу вам научиться не на своих, а на моих ошибках, подскажу, как обойти грабли и подводные камни. Здесь вы найдёте подборку антипаттернов, которая поможет избежать проблем в будущем.
Меня зовут Кирилл Борисов, я в IT около 13 лет. Создавал DevOps-процессы и инфраструктуру в больших проектах, руководил группой сопровождения. Сейчас SRE-инженер в VK, в проекте VK Реклама.
Генеративная графика — не только ИИ
Привет, Хабр! В прошлый раз мы с вами создавали «Игру жизни» на Godot. Движок показал себя отлично, но для такой простой задачи это всё равно что забивать микроскопом гвозди. Особенно когда речь идёт о веб‑экспорте.
В последнее время стоит заикнуться про генерацию изображений, как все сразу вспоминают про нейросети. Stable Diffusion, Midjourney и прочие модели впечатляют, не спорю. Но давайте взглянем на другую сторону генеративного искусства. Ту, где картинки создаются не гигабайтами весов нейронной сети, а несколькими килобайтами JavaScript-кода.
И кстати раз уж речь зашла про красоту в коде: мы как раз запустили «Конкурс красоты кода 2.0». Самое время показать, что даже простые алгоритмы могут создавать нечто впечатляющее. Именно такие работы, где за внешней простотой скрывается математическая элегантность, часто оказываются самыми интересными.
Философия чистого кода: эмпатия гораздо важнее мастерства
«Любой дурак может написать код, понятный компьютеру. Хорошие программисты пишут код, понятный людям», — сказал культовый британский разработчик программного обеспечения Мартин Фаулер и в этом утверждении присутствует доля правды. То есть, когда разработчик пишет код, он должен фокусироваться не только на том, чтобы тот был рабочим, но и понятным будущим «читателям».
Кстати, сейчас у нас проходит «Конкурс красоты кода». Регистрируйтесь и покажите, как должен выглядеть по‑настоящему чистый код — лаконичный, эффективный и понятный.
Поиск «токсичных» SQL-запросов
Мы, студенты из МИФИ, Даниил и Александр, пришли на стажировку в Сбербанк в департамент SberData, который занимается развитием внутренней корпоративной аналитической платформы (КАП).Это современная платформа с удобными инструментами созданная для закрытия полного спектра потребностей Сбера в работе с данными, таких как хранение, интеграция, разнообразная аналитика, отчетность, моделирование и контроль качества данных. Все эти направления было бы трудно развивать без отдельного R&D подразделения, в составе которого мы и работаем. Сегодня мы хотим поделиться нашим исследованием в области проектирования алгоритмов в выявлении «токсичных» SQL‑запросов с помощью машинного обучения. Почему же запросы называются именно «токсичные»? Они затрачивают на своё выполнение слишком большое количество ресурсов, а именно времени. На самом деле не только время, но для упрощения мы будем считать только время, так как это ключевой параметр.
Статья посвящена исследованию существующих подходов и их апробации на открытых данных. В качестве общедоступных данных были выбраны данные из таких бенчмарков, как TPC‑H и BIRD. Помимо этого, в статье рассматриваются некоторые трудности, с которыми мы столкнулись при работе над задачей, например, генерация данных и SQL‑запросов, а также миграция между диалектами SQL. В конце статьи мы опишем оригинальный подход, к которому по итогу пришли. В следующей статье мы расскажем о применении полученного опыта для реальной промышленной системы.
Красивый код — живой код. Делаем клеточный автомат на Godot и экспортируем в HTML
Привет, Хабр! Сегодня мы поговорим о том, как сделать код не просто красивым, но и живым. Звучит как научная фантастика, либо вы уже подготовились к очередной банальности про искусственный интеллект, но не в этом посте. В 1970 году британский математик Джон Хортон Конвей показал миру, что даже простейшие алгоритмы могут порождать сложные, живые системы, которые ещё и к тому же полные по Тьюрингу. И что код может быть не только красивым, но и живым.
Давайте писать красиво: второй сезон «Конкурса красоты кода»
Привет, Хабр. Хочу рассказать про «Конкурса красоты кода», который мы снова запускаем. Год назад мы его придумали, и идея народу зашла — больше 1000 человек прислали свои работы. Идея была в том, что есть несколько задач на выбор, и их надо решить в коде. Условий три: код должен работать, быть лаконичным и удобочитаемым.
Год пролетел, и мы решили повторить. Опять зовём всех поучаствовать — напиши такой код, которым будешь потом гордиться. Даже если ты не программист, победа может быть отличным стартом для карьеры (но, конечно, без гарантий).
Как (и зачем) мы разворачивали ActiveMQ Artemis в облаке
Привет, Хабр! Меня зовут Артем Безруков, я DevOps‑инженер в команде интеграционных сервисов Platform V Synapse в СберТехе.
Наша команда работает над продуктом из линейки Platform V Synapse — Platform V Synapse Messaging. Это брокер сообщений, в основе которого лежит Apache ActiveMQ Artemis. Мы делаем из него более безопасное и функционально обогащённое решение, разрабатывая дополнительные плагины, и заботимся о том, чтобы его можно было просто и быстро развернуть с помощью наших скриптов автоматизации.
В последние годы набирает обороты тренд на использование облачных технологий, технологий контейнеризации и микросервисной архитектуры, и наша команда решила расширить возможности продукта. И если изначально стенды ограничивались только виртуальными машинами (ВМ), то с недавнего времени мы начали выводить Platform V Synapse Messaging в среды оркестрации контейнеров — Kubernetes (K8s/облако).
В этой статье расскажем о нашем пути: почему выбирали то или иное решение, с какими трудностями столкнулись и к чему это нас привело. Мы считаем, что наш опыт будет полезен инженерам, которые прорабатывают механизмы переноса приложений в облако, развёртывают данные приложений и автоматизируют связанные с этим процессов.
Поехали!
Пока не исправили — модифицируй, или Анализ расширений атаки уклонения для LLM
Добрый день, уважаемые читатели Хабра. В связи с бурным развитием генеративных моделей и реализованных на них чат‑ботов (ChatGPT, Gemini, Bard, Notion AI, Compose AI, Poe, Phind) у пользователя появляется ложное чувство, что модели стали умнее, защищённее и, в целом, ближе к совершенству, сравнимы с человеческим интеллектом. Отсюда мы получаем целый пласт заблуждений. Например, что модели нас «чувствуют», «понимают», ведь мы выкладываем для них столько информации о себе, начиная от стилистики нашего письма, что уже является неким цифровым отпечатком нашей личности, и заканчивая оценкой их собственной работы. На самом деле это миф. И трендом 2023–2024 годов стало обширное внимание публики к XAI:
• как они (генеративные модели) устроены и как они принимают решения;
• как проводятся атаки уклонения (склонение моделей к неверной выдаче);
• как эти атаки (уклонения) связаны с другими атаками на LLM и какие они могут быть для эскалации деструктивного поведения системы;
• с какой позиции верно интерпретировать выход генеративной модели;
• разработка системы эшелонированной защиты моделей;
• разработка системы внутреннего критика для модели.
Для начала начнём с существующих атак и их анализа. Заинтересованных приглашаем под кат.
Causal Inference: прозрение и практика. Лекция 2. Рандомизированные контролируемые испытания
Рандомизированные контролируемые испытания (РКИ) представляют собой наиболее объективную, прозрачную и эффективную методологию для проведения экспериментов. Они пользуются огромной популярностью и применяются в самых разных сферах, включая науку, медицину, маркетинг и технологии. С их помощью учёные и специалисты могут проверять эффективность новых методов лечения, лекарственных препаратов, продуктов или услуг, сравнивая результаты между двумя или более группами. РКИ встречаются гораздо чаще, чем может показаться на первый взгляд. Это невероятно популярный метод исследования причинно‑следственных связей. Хотя они довольно просты в реализации, их точность значительно превосходит все другие методы аппроксимации .
Causal Inference: прозрение и практика. Лекция 1. Основные понятия Causal Inference
В нашем веке центральное место в анализе и использовании данных занимает Data Science. Однако часто данное понятие сводят к одним лишь алгоритмам машинного обучения или даже искусственному интеллекту, преуменьшая другие важные аспекты этой области знаний.
История формирования современной науки о данных началась со сближения двух могущественных инструментов — эконометрики и машинного обучения. В разные времена они казались двумя противоположностями в анализе данных. Машинное обучение было ориентировано на высокую точность прогнозов, порой жертвуя понятностью моделей. Эконометрика же делала акцент на интерпретируемости, понимании причинно‑следственных связей, иногда оставаясь в тени из‑за ограниченности моделей.
Однако со временем стало ясно, что для полного понимания данных необходимо научиться объединять эти два подхода. Здесь на сцену выходит причинно‑следственный вывод (Causal Inference). Эта область Data Science помогает раскрыть причины явлений, объединяя преимущества как машинного обучения, так и эконометрики. Judea Pearl в своей статье 2021 года подчеркивает важность причинно‑следственного вывода как «ключевого элемента для достижения баланса между радикальным эмпиризмом ML и интерпретационным подходом эконометрики».
Таким образом, Causal Inference — это область статистики и научных исследований, направленная на выявление и измерение причинно‑следственных связей между переменными. Она помогает определить, какое воздействие оказывает изменение одной переменной на другую, отличая это воздействие от простых корреляций.
Оптимизируем системные ресурсы при развёртывании за счёт перехода на динамику
Всем привет! Если в компании растёт количество продуктов, а для их развёртывания используются виртуальные машины, то рано или поздно возникает задача оптимизации ресурсов. Скажем, вы используете для оркестрации Jenkins. Количество агентов на ВМ при этом статично, а количество развёртываний в разное время разное. В этом случае при массовых установках агенты периодически упираются в установленный лимит исполнителей (executor), а в свободные часы ВМ простаивают, занимая ресурсы.
Мы, команда Run4Change в СберТехе, сопровождаем тестовые среды. В наши задачи входит в том числе развёртывание продуктов облачной платформы Platform V на стендах для последующего тестирования. Расскажем, как мы решили проблему использования системных ресурсов и отказались от виртуальных машин в пользу cloud‑native‑решения. Статья может быть полезна тем, кто планирует начать использование динамических агентов Jenkins, и может использоваться как первоначальное руководство.
Шифруй то, шифруй это, или LLM под замком
Здравствуйте, уважаемые читатели Хабра. Чем больше я погружаюсь в LLM, тем больше укрепляюсь во мнении, что сейчас они (LLM) заняли если не самое важное, то уж точно одно из очень значимых мест во всём пантеоне моделей машинного обучения. При этом всё чаще встаёт вопрос шифрования моделей в самом широком смысле. Речь не столько о механизмах, алгоритмах, подходах и методиках шифрования того, что запрашивает пользователь, сколько о работе с данными в целом, в том числе и для обучения моделей. То есть о шифровании как на входе, так и на выходе — данных от пользователя, от модели и обучающих данных.
Мы поговорим о безопасном обращении с коммерческим контентом, шифровании данных, моделях и подходах к безопасному обращению и встраиванию коммерческих данных в модель. Будет интересно ;)
Почему это важно? Сегодня работает четвёртое поколение GPT‑систем, ждём пятое. Есть много аналогов «четвёрки» (Megatron‑LLM, LLaMA, Claude, PaLM, Mistral, BLOOM, Grok, Megatron‑Turing NLG, Chinchilla, OPT, GODEL, Jurrassic-2), которые по ряду параметров намного превосходят GPT-4. Однако для качественной «эволюции» систем необходимо «скармливать» им «правильный» эксплуатационный код, апробированный и полностью покрытый тестами, который создаётся крупными корпорациями, средним и малым бизнесом. Но есть нюанс: такой код просто так никто не отдаст. Более того, он защищён авторскими правами и имеет ряд наложенных юридических условий использования.
Цифровые двойники: от истока к будущему
Не так давно термин «цифровой двойник» был передовой, меняющей парадигму, но лишь концепцией, которая обещала произвести революцию в отраслях, предоставив динамическое цифровое зеркало физических систем. Сегодня эта инновация вышла далеко за рамки своей первоначальной предпосылки. Она созрела и превратилась в тонкую экосистему.
Демократизация DevOps
На нашей недавней конференции GigaConf мы много рефлексировали о том, как будет развиваться направление DevOps. Оно немыслимо без инструментов. Поэтому я расскажу о том, как мы внедряем в Сбере практики GitAIOps, какие совершили ошибки и извлекли уроки, какие сделали выводы по поводу внедрения ИИ. Сегодня на всех углах рассказывают, как ИИ поможет разработчикам, но мало кто говорит о его помощи DevOps-инженерам. Надо это исправить.
Меня зовут Юрий Спорынин, в ИТ я более 20 лет. Начинал с разработки, своими руками создавал процессинговую систему для интернет-эквайринга. В 2016 году я перешёл в Сбер, где мы в 2018 году внедрили платформу в «Сбербанк Онлайн». Сейчас среди моих задач — кластер DevOps-инструментов, о которых мы отчасти сегодня поговорим.
Jenkins — от монолита к распределению
Привет, я Дмитрий Коляндра, разработчик в подразделении SberWorks, занимающемся автоматизацией и сопровождением инструментов производственного процесса. Эта история о том, что происходит в крупных компаниях, где развёрнуто много десятков экземпляров Jenkins.