Как стать автором
Поиск
Написать публикацию
Обновить
279.65

DevOps *

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

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

Open vAIR: как мы делали платформу виртуализации и пришли к стандарту разработки

Уровень сложностиСредний
Время на прочтение8 мин
Количество просмотров919

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

А теперь представьте другую картину: модули — по местам, код — читается, как хорошая книга, документация — в порядке, новичок — в процессе, а не в шоке. Это не фантазия, а Open vAIR.

Начинали как просто продукт, но по ходу обкатали архитектурные подходы, которые теперь используем как стандарт. И да — выложили всё в open source. Зачем? Сейчас расскажем. А заодно — что с этим делать вам.

Читать далее

Запускаем Sentry в Kubernetes в Яндекс облаке и храним Nodestore в S3

Уровень сложностиСредний
Время на прочтение27 мин
Количество просмотров2K

Sentry — это инструмент для отслеживания ошибок и производительности приложений в реальном времени.

Кратко о Sentry: что это, зачем он нужен

— Отслеживает баги и exceptions в бекенд, веб и мобильных приложениях.

Для кого этот пост

— Этот пост для тех кто хочет перейти с Sentry в docker‑compose

— Для тех кто хочет перейти с Nodestore в PostgreSQL

Читать далее

OpenVPN (pfSense) + SSL/TLS + 2FA telegram (freeradius + postgres + telegram bot)

Уровень сложностиСредний
Время на прочтение35 мин
Количество просмотров11K

В данной статье будет показан процесс настройки OpenVPN сервера на базе pfSense (но подойдет и любой другой) с подключением пользователей с аутентификацией с использованием SSL/TLS и Telegram в качестве 2FA.

Читать далее

Как настроить автоматический откат в Ansible

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

Петя запускает плейбук, чтобы обновить конфигурацию Nginx — и ломает сайт. В конфиге ошибка, сервис не стартует.

Ansible не умеет откатывать изменения сам. Но есть способ настроить автоматический откат — с помощью блоков blockrescue и always.

Читать далее

Не поехали: исправьте ошибку запуска и выиграйте мерч (DevOps Challenge)

Уровень сложностиСредний
Время на прочтение2 мин
Количество просмотров1.4K

Привет! Я Саша Хренников, руководитель DevOps-юнита в KTS.

На носу День Космонавтики, и в честь праздника мы подготовили новое испытание для DevOps-инженеров. Казалось бы, к полету все готово: приложение рабочее и даже описано в Helm. Вот только при попытке запуска каждый раз возникает ошибка. Сможете ли вы разобраться в конфигурации ArgoCD и выполнить деплой?

Самых быстрых участников испытания мы по традиции наградим нашими фирменными футболками. Итоги испытания мы подведем 17 апреля в 19:00, до этого момента стенд челленджа будет открыт для участников.

Читать далее

Spring Boot 3.3 и Docker: изменение в эффективных docker-образах

Уровень сложностиСредний
Время на прочтение4 мин
Количество просмотров6.5K

Переход от Spring Boot 3.2 к 3.3 принес изменения в процесс распаковки JAR и запуск приложения в Docker-контейнере.

В новой статье от Рустама Курамшина, эксперта сообщества Spring АйО, вы узнаете:
• что именно изменилось
• как это отразится на создании Dockerfile
• и как адаптировать проекты к новым условиям

Читать далее

Как снизить нагрузку на техническую поддержку на 30%. Кейс Ринго и группы «Самолет»

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

Группа «Самолет» — крупный застройщик с развитой ИТ-инфраструктурой. В парке компании 500 MacBook, которые активно используются сотрудниками.

Цели внедрения: 

Читать далее

Расследование аферы с GitHub: как тысячи «модов» и «кряков» крадут наши данные

Уровень сложностиПростой
Время на прочтение14 мин
Количество просмотров10K

Перевели статью, автор которой раскрыл новую схему мошенничества на GitHub, где под видом модов для игр и взломанных программ распространяется вредоносное ПО, которое похищает личные данные пользователей.

Читать далее

Куб всему голова: строим внутреннюю Kubernetes-платформу на BareMetal в MWS

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

Всем привет! Меня зовут Иван Гулаков, последние несколько лет я занимаюсь построением и поддержкой платформы по предоставлению Kubernetes-кластеров для внутренних команд разработки в MWS Cloud Platform. Эта статья — пересказ моего доклада с DevOps Conf 2024 о том, как мы наливаем железки и превращаем их в k8s-кластеры по всем канонам IaC.

За прошлый год наши подходы к наливке изменились. Тем не менее, это был важный шаг для становления нашей внутренней платформы Piñata.

Читать далее

Docker Model Runner: запускаем ИИ-модели локально

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

Компания Docker выпустила новую интересную функцию в бета-версии, которая должна заинтересовать всех, кто работает с генеративным ИИ. Docker Model Runner позволяет загружать, запускать и управлять ИИ-моделями прямо на вашем локальном компьютере без необходимости настройки сложной инфраструктуры.

Читать далее

Kubernetes для всех: поймет даже гуманитарий

Уровень сложностиПростой
Время на прочтение14 мин
Количество просмотров39K

Привет новичкам в Kubernetes и тем, кто не знаком с этой технологией!

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

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

Мы решили сравнить платформу оркестрации кластеров Kubernetes с любой крупной компанией, взяв за пример «Штурвал». Что из этого вышло — читайте под катом.

Читать далее

Общие подходы к классическому PostgreSQL в Kubernetes

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

Хабр, привет! Меня зовут Алексей Быков, и я занимаюсь развитием Cloud Native платформы для обработки, хранения, анализа и управления данными Arenadata One в компании Arenadata. Современные высоконагруженные системы требуют гибкого масштабирования и отказоустойчивости для обеспечения стабильной производительности в условиях постоянно растущих объёмов данных. Когда речь идёт о PostgreSQL, развёрнутом в Kubernetes, перед инженерами встают особые вопросы: как упорядочить реплики для отказоустойчивости, каким образом настроить бэкапы и мониторинг, а главное — как корректно масштабироваться в облачной среде.

В этой статье мы рассмотрим, почему «ванильный» PostgreSQL в контейнерной среде может работать ненадёжно и какие механизмы применяются сегодня, чтобы сделать базу данных по-настоящему Cloud Native. Разберём ключевые аспекты классических инсталляций Postgres, проанализируем, в чём заключаются основные сложности их переноса в Kubernetes.

Монолит в облаке?!

Не сказ, а быль: Java-дев среди сисадминов

Уровень сложностиПростой
Время на прочтение7 мин
Количество просмотров1.7K

Долго ли, коротко ли, служил я java-разработчиком, да судьба-злодейка, крутанула меня в Platform Engineer’ы. Овладел я ремеслом devops’ским да сисадминским, но по ночам снится мне low-level Java, но быль моя совсем чуть-чуть об этом будет - поглаголю о JVM опциях, дабы приложение в k8s без дури запускать. Расскажу, как доблестно (а может, и безрассудно) SeaweedFS S3 storage выбирал, как кластер k8s поднимал, не щадя живота своего. Читай сии записки, запивая иван-чаем или медовухой: авось, умная мысль глянет меж строк. Не глянет — так хоть посмеёшься над моим devops экспириенсом.

Развернуть сказы

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

Шифрование NFS: RPC-with-TLS как альтернатива VPN

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

Хотите защитить данные в сетях с использованием NFS? Мы расскажем, как настроить шифрование трафика с помощью RPC-with-TLS — от работы с сертификатами до диагностики ошибок. Узнайте о преимуществах технологии, её ограничениях и о том, как она может стать альтернативой VPN или Kerberos для повышения безопасности ваших данных.

Читать далее

Как HTTP(S) используется для DNS: DNS-over-HTTPS на практике

Уровень сложностиСложный
Время на прочтение14 мин
Количество просмотров9.3K

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

Читать далее

Руководство для начинающих по настройке SSH и CI CD для проекта с использованием Docker и GitLab (GitHub)

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

В этой статье я, насколько могу, подробно расскажу вам, как настроить SSH для подключения к виртуальной машине (VM) и интегрировать процесс CI/CD для вашего проекта с использованием Docker и GitLab/GitHub. Мы пройдем через все необходимые шаги, чтобы вы могли легко развернуть ваше приложение.

Стоит сказать, что сама я новичок и вообще бэкенд разработчик, которому неожиданно пришлось развернуть проект на виртуальной машине, так что, если сюда забрел такой же новичок, то, дружище, я может и не достаточно хорошо, но постараюсь тебе все объяснить.

Читать далее

Как мы реализовали отказоустойчивый WireGuard в трёх зонах Yandex Cloud

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

Расскажем, как мы сделали отказоустойчивый WireGuard-сервер в Yandex Cloud, раскинув его на три зоны доступности. Получилось просто, надёжно и без сложных кластеров.

Мы не рассматриваем настройку самого WireGuard, конфигурацию групп безопасности, настройку VPC, NLB и прочее. Вся логика сосредоточена на том, чтобы обеспечить автоматическое переключение между зонами при сбоях. Сеть VPN-клиентов — 172.28.90.0/24 — должны быть доступна с любой из трёх зон.

Читать далее

Kubernetes в изоляции: когда ваш кластер не должен знать о существовании интернета

Уровень сложностиСредний
Время на прочтение15 мин
Количество просмотров4.6K

Вы думаете, что развернуть Kubernetes без интернета — это просто kubeadm init плюс пара манифестов? Посмотрим, как скрипты решают проблемы, о которых вы даже не задумывались. Спойлер: здесь есть чему удивиться.

Всем пример, меня зовут Даниил Миронюк, DevOps в команде Polymatica EPM. Сегодняшняя статья для тех, кто считает, что оффлайн‑установка Kubernetes — это скучно.

Читать далее

Миграция базы данных Grafana: от внутреннего хранилища к PostgreSQL

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

Всем доброго дня! Пишу здесь впервые. На написание меня этой статьи побудило желание рассказать людям об эффективном способе миграции от внутренней базы данных Sqlite3 к внешней БД PostgreSQL. Подобной статьи на Хабре я не нашел, поэтому надеюсь будет полезно.

Читать далее

Забудьте о локальных if-ах: как централизованные feature flags делают жизнь разработчика проще

Уровень сложностиПростой
Время на прочтение20 мин
Количество просмотров12K

Представьте, что вы разрабатываете новую функцию в приложении, но пока не готовы открыть её всем пользователям. Хочется выложить код на продакшн, но оставить функцию «под замком» до поры до времени. В таких случаях на помощь приходят feature flags (по-русски часто говорят «фича-флаги») — специальный механизм переключения функциональности. Проще говоря, фича-флаг – это пара «ключ – значение (обычно булевое)», которая определяет, активна ли та или иная возможность в приложении. В коде это проявляется как условие: если флаг включён, выполняется новая логика, а если выключен – используется старое поведение. С помощью фича-флагов можно не только скрывать незавершённые функции за условными операторами, но и гибко управлять их постепенным запуском для аудитории (например, включать новую фичу только для X% пользователей).

На первых порах разработчики часто реализуют флаги «локально» – в виде переменных конфигурации, констант или параметров в коде приложения. Такой локальный флаг хранится и меняется непосредственно в приложении (или на сервере, где оно запущено). Этот подход может сработать в небольшом проекте, но в масштабе команды и множества окружений у него быстро обнаруживаются недостатки. Во-первых, если значение флага жёстко прописано в конфигурации или коде, для его изменения зачастую требуется выкатывать новую версию приложения (то есть делать повторный деплой). Возможность динамически «покрутить тумблер» теряется, и смысл фич-флагов частично сводится на нет. Во-вторых, появляется рассинхрон между окружениями: например, в продакшене новый флаг включён через удалённую конфигурацию, а в тестовой сборке по умолчанию выключен. В итоге тестировщикам приходится вручную приводить локальные значения флагов в соответствие с продакшеном, что неудобно и чревато ошибками. Кроме того, без общего подхода трудно отслеживать, какие флаги существуют в системе, кто и когда их включал, и на что они влияют.

Читать далее

Вклад авторов