Отказ от самурайства: EXANTE меняет инфраструктуру или Как мы ошиблись в реализации Cloud Native

От Kubernetes-хаоса к Infrastructure 2.0: опыт EXANTE, ошибки, неожиданные инсайты и новые подходы к современной инфраструктуре будущего
Облачная платформа от Google
От Kubernetes-хаоса к Infrastructure 2.0: опыт EXANTE, ошибки, неожиданные инсайты и новые подходы к современной инфраструктуре будущего
В этой статье, Я рассказываю, как сделал приложение для сопоставления резюме с вакансиями, используя tRPC, TypeScript и Google Vertex AI. Проект принимает PDF-резюме и описания вакансий, извлекает из них текст, применяет базовое NLP для выявления навыков, а затем обращается к Gemini 1.5 Flash для более глубокого анализа. По ходу статьи я объясняю, почему tRPC показался мне быстрее и чище, чем REST или GraphQL для MVP, показываю примеры кода из репозитория и обсуждаю как преимущества, так и ограничения такого подхода.
В этой статье я делюсь личным опытом разработки MVP LLM-агента на базе Google ADK в образовательных сценариях. Рассказываю, как строил архитектуру от монолитного агента до модульной системы, с какими вызовами столкнулся (память, токены, оркестрация) и какие инженерные лайфхаки помогли справиться. Но главное — делюсь философией: почему работа с LLM похожа на экзамен, как меняется роль CTO и чему учат такие проекты. В финале — 10 уроков, которые я вынес из этого «AI-экзамена».
Представьте, что у вас есть кнопка, которая запускает в работу не просто нейросеть, а целый аналитический отдел. Один AI-агент лезет в Google изучать тренды, второй — шпионить за конкурентами, третий — анализировать ваши внутренние данные, а четвертый, на основе всего этого, генерирует три готовые стратегии. Звучит как научная фантастика? А я расскажу, как собрал именно такую систему на принципах мультиагентных систем, с «боссом-оркестратором» и даже собственной базой знаний.
Погрузимся в мир, где AI — это не просто чат, а целая виртуальная команда.
Как интегрировать Google ADK с кастомным интерфейсом: пошаговое руководство с примерами
Подробный гид по интеграции Google ADK (Agent Development Kit) и Vertex AI Agent Engine в кастомные интерфейсы. В статье разобраны все ключевые этапы — от развёртывания агента до настройки стриминга, сохранения состояния (state) и построения собственной архитектуры взаимодействия с LLM. Подходит разработчикам, которые хотят быстро подключить AI-агента к своему продукту и сохранить контроль над логикой, безопасностью и пользовательским опытом.
🔥 Создаём AI-новостной агрегатор на коленке (и без разорения)! Устал от скучных RSS и захотел умный и стильный агрегатор с картинками от нейросетей. В статье делюсь опытом, как на базе n8n, Gemini API и пары костылей сделать агрегатор ИИ-новостей, который суммаризирует тексты, генерирует иллюстрации и автоматически публикует это всё в Telegram.
С 1 июля 2025 года вступают в силу ужесточенные требования Роскомнадзора к трансграничной передаче персональных данных. Это напрямую затрагивает цифровые продукты, использующие иностранные облачные решения для веб-аналитики и маркетинга — включая Google Analytics и Google Tag Manager (GTM).
В этой статье разбираем, как адаптироваться к новым реалиям, избежать юридических рисков и сохранить полноту цифровой аналитики.
Вот и прошла Google I/O 2025. Не будем ходить вокруг да около — знаем, как вам не терпится узнать обо всех горячих новинках. Вместе с Surf Android Team проанализируем ожидания от Google I/O 2025 Keynote, сравним их с реальностью и расскажем о своих впечатлениях от увиденного. Го погружаться!
Привет, Хабр!
Google, без преувеличения, изменил мир IT, подарив нам Kubernetes – систему, ставшую де-факто стандартом оркестрации контейнеров. И когда выбираешь управляемый Kubernetes от его же создателей, такой как Google Kubernetes Engine (GKE), ожидания, естественно, высоки. Уж кто-кто, а "первоисточник" должен уметь "готовить" свое детище идеально, предоставляя не только удобство, но и прозрачные, глубоко интегрированные и безопасные решения "из коробки". Особенно когда речь заходит о такой фундаментальной вещи, как сетевое взаимодействие и его безопасность.
GKE предлагает два режима работы кластеров: routes-based и VPC-native. Именно VPC-native кластеры позиционируются Google как обеспечивающие более тесную интеграцию с сетью VPC. Как утверждает Google, одно из преимуществ таких кластеров заключается в том, что IP-адреса подов (pods) нативно маршрутизируемы внутри сети VPC кластера и других сетей VPC, подключенных к ней через VPC Network Peering (подробнее см. документацию GKE по IP-алиасам и VPC-native кластерам). Это вселяет уверенность, что возможности VPC, включая мощный механизм GCP Firewall, будут доступны и для наших подов так же легко и нативно, как для обычных виртуальных машин.
Однако, погружаясь в детали настройки контроля сетевого доступа для подов к ресурсам внутри VPC, но внешним по отношению к самому Kubernetes (например, к базам данных Cloud SQL или другим бэкендам), начинаешь сталкиваться с нюансами. Нюансами, которые заставляют усомниться в "бесшовности" этой интеграции. Эта статья – не попытка принизить достижения Google или GKE. Скорее, это повод для всех нас, инженеров, задуматься о тех важных деталях реализации, которые часто остаются "под капотом". Повод погрузиться глубже, понять, как все устроено на самом деле, и какие компромиссы или сложности скрываются за маркетинговыми лозунгами. Ведь чем сложнее архитектура безопасности, тем выше вероятность ошибки конфигурации, особенно если ее компоненты и их взаимодействие не до конца понятны. Если даже у такого гиганта, как Google, в его флагманском продукте для Kubernetes есть подобные неочевидные моменты, то нам, инженерам, работающим с этими системами ежедневно, тем более важно понимать все тонкости для обеспечения надежности и безопасности наших собственных окружений.
Когда я впервые села за компьютер с мыслью: «А не обучить ли мне нейросеть?» у меня не было понимания как это сделать и с чего начать. Зато была любовь к собакам, интерес к машинному обучению и желание разобраться, как всё работает. Так родился проект HappyPuppy - моя первая нейронка, которая распознаёт сибирского хаски и французского бульдога на фотографии. Просто загрузите фото (jpg, jpeg, png до 1MB) с вашим питомцем и модель предскажет породу.
Далее я расскажу, как на домашнем Маке появилась и выросла моя первая сверточная нейронная сеть (CNN): от идеи до работающей модели — её создание, обучение и тестирование.
Эта история будет особенно полезна новичкам в мире ИИ без опыта в программировании.
Ссылка на код на GitHub, архитектура модели и маленький ликбез по сверточным нейронным сетям будут в конце статьи.
А сейчас — история создания по шагам.
Понадобилось мне проанализировать сайт на предмет попадания его под фильтр Гугла, причем с историческими данными.
Первым делом начал гуглить - чекер фильтров Гугла и вот это вот все. Естественно - в интернетах куча решений, но есть небольшое но... Они либо платные, либо условно-бесплатные, либо вообще непонятно как работают.
Ну что делать - надо реализовать собственное решение, что я и сделал.
Палю годноту, так как использование этого решения никак не повлияет на мою деятельность, а кому то может и полезно будет.
Суть решения достаточно проста есть код (он будет ниже), написанный на Python. Он реализует интерактивный дашборд для визуализации данных, полученных из Google Search Console, с использованием библиотеки Dash (на базе Plotly) для построения графиков.
Когда речь идет об одном из базовых понятий такого распространенного явления, как торговля на маркетплейсе, удивительно не найти его упоминания в “наше все” яндексе.
Там есть: Жизненный цикл ниши на Маркетплейсе, Жизненный цикл товара на маркетплейсе, Жизненный цикл клиента на маркетплейсе, а про заказ - нет!
Поэтому восполняем досадный пробел.
Сегодня поговорим о граблях, на которые наступает каждый второй стартапер или владелец уже действующего бизнеса. Нет, не про то, как нанимать друзей или доверять партнёрам без договора — это тема для отдельной драмы😀 Сегодня разберем, как не прос... просадить весь бюджет на серверах, когда ваш стартап наконец-то начал взлетать.
Данные по API теоретически поступают с небольшой задержкой. Иногда задержка может быть значительной.
Если не отслеживать задержку данных в API, то построенная на таких данных аналитика может иметь значительную погрешность.
Для иллюстрации рассмотрим один свежий пример с API Вайлдберриз.
Маркетплейсы успешно развиваются и привлекают все больше селлеров. Конкурентный отбор и накопление коллективного опыта формируют когорту селлеров и менеджеров с понимаем преимущества аналитических подходов к управлению бизнесом.
Возникающий спрос на аналитические инструменты находится в начальной стадии, когда рынок уже считает аналитику обязательной, но отношение к качеству еще на уровне “какая-нибудь аналитика лучше чем никакая”.
На этой волне спроса рынок заполнился предложением различных приложений, имитирующих аналитику чисто внешне, то есть выдающих желаемое за действительное.
Пользователи таких приложений при сопоставлении “аналитических показателей” с реальностью испытывают когнитивный диссонанс.
Ниже приведены скрины из одной из популярных групп селлеров в подтверждение описанного тренда.
После скринов раскрыто применение одного из аналитических показателей - процента выкупа.
В Altenar мы часто используем RabbitMQ как точку входа для наших продуктов. В данном случае речь пойдет о системе, которая рассчитывает спортивные данные и предоставляет их как внутренним системам организации, так и внешним пользователям за её пределами. При проектировании системы для компонента RabbitMQ были определены следующие требования...
Управление секретами и почему это так важно для нас?
Привет! Меня зовут Евгений, я работаю на позиции Lead DevOps в EXANTE. В этой статье мы разберем жизненный опыт сетапа high availability Hashicorp Vault с gcp storage backend и autounseal в k8s.
Некоторое время назад наша инфраструктура состояла из тысяч виртуальных и железных машин, на которых были размещены наши легаси сервисы. На эти машины, частично руками, частично при помощи chef, распространялись конфигурационные файлы с уже вписанными секретами в открытом виде.
По целому ряду причин, включающих в себя ускорение процессов доставки кода, обеспечение беспрерывности доставки и безопасного хранения секретов, а также ускорение развертывания новых приложений и окружений, было принято решение о смене стратегии компании.
Мы решили сделать наш продукт cloud native, и для этого нужно было изменить подход к разработке и инфраструктуре, провести рефакторинг наших легаси сервисов, начать двигаться в сторону микросервисной архитектуры, разворачивать сервисы в cloud k8s, использовать managed ресурсы (redis, postgres).
В наших реалиях под изменения попасть должно было все – от приложений и инфраструктуры до методов распространения конфигов и секретов. В качестве облачного провайдера был выбран Google, а хранилищем секретов был выбран Hashicorp Vault. На данный момент мы довольно успешно прошли большую часть пути.
Почему Hashicorp Vault?
У нас есть несколько причин:
Есть какое то количество фото и видео в Google Photos или Yandex Диск и место в облаке постепенно заканчивается, особенно если вы снимаете много контента в 4К, либо активно делаете снимки.
Цель: Автоматизировать процесс скачивания большого количества файлов из вашего облака на ваш локальный диск. Автоматически отсортировать файлы по годам, месяцам и даже дням. Скачать все 4К видео и конвертировать их в 1080p 60к/c без использования видеоредактора.
Звучит как какой то сон? Давайте сделаем это и погрузимся в инструменты ffmpeg и Rclone.
В этой статье рассмотрим процесс развертывания инфраструктуры в Yandex Cloud с использованием Terraform-модулей из репозитория nixys/nxs-marketplace-terraform. А ещё расскажем, зачем использовать динамические блоки в Terraform и почему файлы tfstate лучше хранить в S3.
Друзья, привет. После последней публикации многие из вас выразили желание получить от меня пошаговые инструкции по работе с Google Таблицами (Google Sheets). Как вы догадались, вот инструкция.
Существует достаточно много методов взаимодействия с Google Sheets при помощи Python. Сегодня я рассмотрю, как мне кажется, самый простой и самый доступный модуль - Gspread.