Обновить
256K+

DevOps *

Методология разработки программного обеспечения

358,71
Рейтинг
Сначала показывать
Порог рейтинга
Уровень сложности

Flux-aio, Kubernetes mTLS и проблема курицы и яйца

Уровень сложностиСредний
Время на прочтение3 мин
Охват и читатели7.4K

Мы тут в Cozystack в очередной раз решаем проблему курицы и яйца: как задеплоить CNI и kube-proxy через Flux, но при этом обеспечить работу самого flux без CNI и kube-proxy.

Сам Flux запустить без CNI и kube-proxy можно используя проект flux-aio (от создателя Flux), который запускает единый deployment со всеми контроллерами настроенными на коммуникацию друг с другом через localhost.

Специфика Cozystack заключается в том, что на каждый кластер мы деплоим внутри небольшой HTTP-сервер с Helm-чартами и другими ассетами используемыми в платформе. Flux эти чарты читает и устанавливает в систему.

Но вот как организовать доступ флюксу к внутреннему HTTP-серверу, запущенному как под внутри того же кластера?

Читать далее

FinOps для международных компаний: как считать затраты на облака в разных странах

Уровень сложностиПростой
Время на прочтение11 мин
Охват и читатели8.4K

Несмотря на то что в России последние годы идет явный тренд на импортозамещение, многие компании продолжают пользоваться не только отечественными, но и зарубежными облаками. У кого‑то остались подразделения за границей, кто‑то завязан на legacy‑решения, которые дешевле оставить как есть, чем переезжать, а кому‑то просто лень. Причины у всех разные, но объединяет их одно: необходимость свести этот облачный зоопарк в понятную модель затрат, с которой будет удобно работать всем. 

Читать далее

Как мы навели порядок в 200+ микросервисах: тир-лист и модель зрелости сервисов

Уровень сложностиСредний
Время на прочтение7 мин
Охват и читатели9.1K

Мы в Ситидрайве строим микросервисную архитектуру. Сегодня у нас 200+ сервисов, за которыми стоят свыше 20 автономных команд — всего больше 150 инженеров. Казалось бы, идеальная модель: каждая команда быстро выкатывает свои фичи без лишней бюрократии. Но была и обратная сторона — нет единого понимания, какие сервисы действительно критичны, как они связаны друг с другом и куда развивать систему дальше.

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

Читать далее

Внешний мониторинг доступности IT-приложений

Время на прочтение6 мин
Охват и читатели6.5K

Всем привет! Иногда внутренний мониторинг не даёт полной картины, что все работает как надо. И полезно сделать внешний пинг и посмотреть, действительно ли нужный проект доступен.

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

Читать далее

Как Helm развёртывал, развёртывает и будет развёртывать

Уровень сложностиСредний
Время на прочтение5 мин
Охват и читатели5.7K

Привет, Хабр! Меня зовут Миняйлов Лев, я DevOps-инженер в ИТ‑холдинге Т1.

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

Читать далее

Масштабируемые GitLab Runners в AWS: как избавиться от ручного управления и снизить затраты

Уровень сложностиСредний
Время на прочтение14 мин
Охват и читатели6.3K

Мы избавились от «вечно живущих» EC2‑инстансов, настроили масштабируемые GitLab Runner’ы через Fleeting и Autoscaler и при этом сократили расходы на CI‑инфраструктуру. Делимся рабочими конфигами, подводными камнями и практическим гайдом по настройке.

Читать далее

Запуск WPF-приложений в Docker: Экспериментальный подход с Wine

Уровень сложностиСредний
Время на прочтение6 мин
Охват и читатели6.4K

Запуск WPF на Linux долгое время казался невозможным. Но благодаря связке Docker и Wine теперь это реальность. Рассказываю о своем практическом опыте, как заставить эксклюзивную технологию Microsoft работать вне Windows.

Читать далее

Как я подружил WSL, VirtualBox и Ansible, чтобы быстро создавать VM Alpine на Windows

Уровень сложностиСредний
Время на прочтение10 мин
Охват и читатели8.7K

Хочешь быстро поднять несколько лёгких Linux-виртуалок из Windows, да так, чтобы процесс можно было легко повторить? Я, как любитель и самоучка, недавно решил с этим разобраться и всё получилось.

Я сделал это так, на Windows через WSL установил Alpine сборки minirootfs, затем при помощи Ansible развернул в Oracle VM VirtualBox 3 виртуальные машины на базе Alpine сборки standard. Никаких облаков, только локальный контроль и минимум зависимостей. Для чего всё это? Сейчас всё чаще говорят о минималистичных системах, об оптимизации железа под конкретные задачи, о работе на граничных устройствах, вот и захотелось попробовать всё своими руками.

Читать далее

Сравниваем инструменты для нагрузочного тестирования

Уровень сложностиСредний
Время на прочтение6 мин
Охват и читатели9.9K

Нагрузочное тестирование давно перестало быть «дополнительной проверкой перед релизом» и стало частью инженерной культуры: без него сложно говорить о предсказуемости систем, зрелости инфраструктуры и реальной готовности продукта к росту. Инструментов для нагрузки сегодня много, но каждый по-своему влияет на процесс: где-то важна гибкость сценариев, где-то — масштабирование, где-то — интеграция в CI/CD. В этой статье разбираем ключевые решения, их сильные и слабые стороны и то, как они помогают увидеть систему такой, какой она будет под реальной боевой нагрузкой.

Узнать детали

Я установил k3s на Arch, чтобы вам не пришлось

Уровень сложностиСредний
Время на прочтение7 мин
Охват и читатели9.2K

Статья для тех, кто пытался поставить k3s на Arch Linux и столкнулся с зависающим установщиком, проблемами DNS и отсутствующими systemd юнитами. Полное руководство по ручной установке с реальными командами и решениями.

Читать далее

Раз-два-три tmux: запускаем несколько окон одним скриптом

Уровень сложностиПростой
Время на прочтение9 мин
Охват и читатели8.2K

Привет, Хабр!

Бывало, открываешь десяток терминалов, чтобы мониторить систему: в одном htop, в другом делаешь tail логов, в третьем запускаешь отладку. Через пару минут такой работы голова идет кругом от мельтешащих окон. Для того, чтобы как-то разобраться с этим, помогут терминальные мультиплексоры, старый добрый GNU Screen и его более крутой товарищ tmux.

Читать далее

Funxy — гибридный язык программирования со статической типизацией

Уровень сложностиПростой
Время на прочтение5 мин
Охват и читатели13K

Funxy — гибридный язык программирования со статической типизацией, pattern matching и удобной работой с бинарными данными.

Для чего подходит

Скрипты и автоматизация. Один бинарник без зависимостей — скачал и работает. Встроенная работа с файлами, JSON, HTTP, SQL.

Небольшие приложения. CLI-утилиты, API-сервисы, обработка данных.

Работа с бинарными данными. Парсинг на уровне отдельных битов. Сетевые протоколы, форматы файлов, нестандартные структуры.

Обучение программированию. Простой синтаксис, но с важными концепциями: типы, pattern matching, иммутабельные структуры данных, рекурсия с TCO (можно писать рекурсивный код без страха переполнения стека).

Читать далее

Автоматизация CI/CD: «замораживаем развёртывания» в GitLab

Уровень сложностиСредний
Время на прочтение6 мин
Охват и читатели10K

У большинства команд CI/CD уже есть пайплайны, мониторинг и «безостановочные» релизы, но как только приближается крупное событие, чёрная пятница или просто длинные праздники, внезапно выясняется, что надёжного способа одновременно «заморозить» деплой десятков сервисов нет. GitLab умеет freeze-периоды на уровне проекта, но в мире микросервисов и сотен репозиториев это быстро превращается в ручной квест и источник случайных выкатов в прод.

В статье разбираем, как с помощью отдельного проекта, GitLab CI и небольшого Python-скрипта автоматизировать групповую заморозку развёртываний: централизованно задавать расписание, распространять его на все нужные проекты и при этом не ломать привычный workflow команды.

К подробностям

Ближайшие события

Кому на Рунете жить хорошо: ТОП/АНТИ-ТОП уязвимостей ноября

Уровень сложностиСредний
Время на прочтение7 мин
Охват и читатели9.2K

Всякий в Рунете ищет себе жизни хорошей, да только одни сервисы живут вольготно и горя не знают, а другие попадаются в сети хитрые, уязвимостями прозванные.

Так и эксперты СайберОК весь ноябрь бродили по цифровым тропинкам и всё пытались понять: кому в Рунете жить хорошо, а кому достаётся участь тревожная. Прошлись по инстансам, сверили телеметрию, посмотрели, где есть PoC’ы, а где только шум, и составили ТОП / АНТИТОП уязвимостей ноября.

Читать далее

Стриминг логов Kafka в Elasticsearch с визуализацией в Kibana

Уровень сложностиСредний
Время на прочтение9 мин
Охват и читатели6.4K

Привет, меня зовут Иван и я SDET‑специалист в SimbirSoft. Полагаю, каждый программист хотя бы раз слышал про инструмент Kafka, многие работали с ним. Наиболее простое его использование — это настройка взаимодействия между микросервисами. А если попробовать использовать его как инструмент для логирования — связать Kafka и Elasticsearch? И при чём тут вообще Elasticsearch? Все просто: это система, которая позволяет работать с большим объемом данных. В нашем случае также необходимо использовать Kibana, надстройку над эластиком, которая позволит визуализировать данные.

В этой статье мы рассмотрим процесс настройки потоковой передачи логов из Kafka в Elasticsearch:
— как настроить взаимодействие между Kafka и Elasticsearch
— как настроить Kibana для визуализации логов, хранящихся в Elasticsearch.

Эта статья будет полезна тестировщикам для настройки анализа логов в распределённых системах, а также разработчикам, желающим реализовать альтернативные сценарии использования Kafka для централизованного логирования.

Читать далее

Используем несколько нейронок безопасно и через единый интерфейс. Инструкция по внедрению LiteLLM

Уровень сложностиСредний
Время на прочтение10 мин
Охват и читатели19K

Есть несколько очевидных проблем с LLM: утечка конфиденциальных данных и кода, компрометация токенов, зависимость от внешних провайдеров. О них знают все, но это никого не останавливает. Даже если руководитель решит перестраховаться и не выделит деньги на LLM, сотрудники купят подписку сами и продолжат ими пользоваться, потому что это удобно. Есть и менее очевидные сложности: например, одна команда может потратить все токены, и их придется докупать.

Привет, я Павел Мохляков. Вообще я Data Science-инженер в Cloud.ru, но сегодня решил, почему бы не рассказать как с помощью LLM-шлюза можно использовать несколько LLM через один API и при этом снизить риск утечки данных, контролировать расходы и соблюдать требования №152-ФЗ. Кроме того, покажу пример тестового подключения и объясню, что делать на каждом этапе.

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

Читать далее

Kubernetes с GPU в WSL за вечер: рабочий кластер на Windows

Уровень сложностиСредний
Время на прочтение8 мин
Охват и читатели9.7K

В данной статье я покажу, как на Windows развернуть кластер Kubernetes из одного узла с поддержкой GPU и time-slicing, используя WSL.

В итоге получится удобная домашняя Kubernetes-лаборатория.

Читать далее

Userbot + ИИ: За гранью парсинга, как Telegram-юзербот и нейросеть помогают искать тренды и боли

Время на прочтение6 мин
Охват и читатели11K

Задача — не просто спарсить сообщения из Telegram-каналов. Задача — научиться вылавливать из потока обсуждений актуальные тренды, боли клиентов и рабочие лайфхаки. Это золотая жила для SEO-специалистов, продуктологов и маркетологов.

В этой статье (первой из двух) мы сфокусируемся на создании и деплое юзербота для сбора данных. Во второй части подключим нейросеть для анализа и получим готовые инсайты.

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

Для создателей контента (SEO): Сложно увидеть, о чем сейчас говорят и спрашивают люди в нише. Тренды рождаются в чатах, а не в поиске.

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

Читать далее

Реальный кейс настройки Pod Autoscaling в k8s с точки зрения разработчика

Уровень сложностиСложный
Время на прочтение17 мин
Охват и читатели7.9K

На носу 2026 год, а я хочу поделиться своим путешествием по переводу приложения на инфраструктуру Kubernetes. Самой сложной и интересной частью была настройка автоскейлинга. Не слишком ли заезженная тема? Думаю нет, потому что я буду рассказывать именно с позиции разработчика приложения, а не девопса. Мне повезло, я без понятия как это всё настраивается. Я буду рассказывать как это всё работает. Конфигов кубера будет минимум, рассуждений и погружений в метрики максимум. В конце оставил TL;DR. Поехали?

Читать далее

Автоматизация обновления компонентов АРМ на рабочих станциях

Уровень сложностиПростой
Время на прочтение6 мин
Охват и читатели7.1K

В последние годы наметилась тенденция к применению в архитектурах информационных систем WEB-технологий с использованием на рабочих местах пользователей веб-браузеров в качестве тонких клиентов. Однако в некоторых отраслях по различным причинам продолжают использоваться архитектуры с толстыми клиентами. И если в сфере WEB-технологий уже выработаны и укоренились приёмы автоматизации обновления компонентов программных систем, которые большей частью находятся на серверах, то в архитектурах с толстыми клиентами обновление программного обеспечения на рабочих местах пользователей по-прежнему может требовать значительного внимания обслуживающего персонала.

Читать далее