Обновить
256K+

DevOps *

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

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

Kubernetes 1.29: бэкенд на nftables, изменение атрибутов тома и другие фичи

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

Сегодня ожидается выход очередной версии Kubernetes — 1.29. Среди главных изменений — бэкенд на основе nftables для kube-proxy, множественные CIDR для сервисов и функция QueueingHint, которая помогает решить, как повторно ставить поды в очередь. TaintManager стал отдельным контроллером, а список допустимых значений лейблов для метрики теперь можно настраивать динамически. Еще появился объект VolumeAttributesClass — он позволяет менять атрибуты тома после его заказа. Также стал доступен инструментарий для реализации структурированной auth-конфигурации, предусмотренный в KEP’е от «Фланта», и появилась нативная поддержка операции sleep для PreStop-хуков.

Читать далее

Инструкция: как поднять GitLab CI/CD на GoLang-проекте

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

В продолжение к заметке Инструкция: как быстро настроить GitLab CI/CD на Flutter-проекте.

Больше спасибо автору, всё получилось относительно легко. Я усложнил задачу: поднял GitLab локально на Хакинтоше, прикрутил executor = "docker" вместо "shell". И началось веселье.

Читать далее

Пишем оператор Kubernetes: руководство для начинающих

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

Перевели туториал об основах контроллеров, операторов и CRD. В качестве практики вы можете создать кастомный оператор ConfigmapSync для синхронизации Configmap между пространствами имен. Рассказываем, как его написать и развернуть его с помощью Kubebuilder.

Читать далее

Как сделать Kubernetes еще круче: секреты безупречной работы

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

Отказоустойчивость информационных систем необходима для обеспечения непрерывности работы системы и минимизации возможности потери данных в случае сбоев или отказов в работе оборудования. Это особенно важно для критических для бизнеса систем. 

Мы начали использовать геораспределенные кластеры и повысили надежность сервисов. В статье опишем, какими инструментами это делали, какие сложности возникали и какие получили результаты. 

Привет, Хабр, меня зовут Артур Мечетин, и в этой статье мы со Станиславом Столбовым из Byndyusoft расскажем о том, как повысили стабильность приложений в К8s кластерах с высокой критичностью для бизнеса.

Читать далее

Оптимизация DevOps: Как персональные стенды и Grafana улучшают разработку и мониторинг

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

Всем привет, меня зовут Зуев Алексей, и я работаю DevOps-инженером в компании Bimeister! Сегодня я расскажу вам о том, как мы облегчаем жизнь нашим разработчикам и как разработчик может отследить состояние своего микросервиса в namespace Kubernetes. Основная цель этой статьи - описать, как мы пришли к дашборду для персональных стендов разработчиков.

Читать далее

Автоматические бэкапы БД PostgreSQL по расписанию

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

В этой статье я поделюсь скриптом для создания бэкапов БД PostgreSQL за определенный период (например: 1, 2, 3 дня, 1 неделя, 1 месяц, 6 месяцев, каждый год).
Объясню как запустить скрипт с помощью расписания crontab, покажу как настроить синхронизацию папки с бэкапами с облаком Yandex Disk.

Читать далее

Безопасность DevOps. Стратегическое планирование

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

Интеграция инструментов оценки рисков в рабочий процесс DevOps. Источник: Gartner

Почти двадцать лет индустрия IT всё активнее переходит к внедрению практик DevOps. Автоматизация технологических процессов сборки, настройки и развёртывания ПО со взаимной интеграцией этих процессов — всё это помогает в разработке высококачественных приложений на высокой скорости и с большей эффективностью благодаря использованию конвейеров CI/CD (Continuous Integration/Continuous Delivery).

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

Это не самый лучший подход, считают специалисты по безопасноcти.
Читать дальше →

Nginx и Keycloak: Идеальное сочетание для обеспечения безопасности приложений

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

В современной быстро меняющейся цифровой среде обеспечение надежной безопасности на каждом этапе взаимодействия с пользователем имеет первостепенное значение. Хотя существует множество инструментов для защиты наших приложений, найти идеальное сочетание между ними может быть непросто. На помощь приходит динамичный дуэт: Nginx и Keycloak. В паре эти инструменты обеспечивают мощное решение по обеспечению безопасности вашего приложения. Nginx, известный своей высокой производительностью и масштабируемостью, в сочетании с надежными механизмами аутентификации и авторизации Keycloak строит крепость, защищающую ваши приложения от несанкционированного доступа. В этой статье мы рассмотрим все тонкости этой привлекательной комбинации и покажем, как можно использовать их общие преимущества для создания надежного и удобного шлюза для ваших приложений.

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

Понимание разницы: Аутентификация vs Авторизация

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

1. Аутентификация

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

Как это работает: Наиболее распространенной формой аутентификации является комбинация имени пользователя и пароля. Когда пользователь вводит эти учетные данные, система сравнивает их с сохраненными данными, чтобы подтвердить его личность. Другие методы включают биометрию (например, распознавание отпечатков пальцев или лица), OTP (одноразовые пароли) и аппаратные токены.

Читать далее

Практическая магия Istio при построении архитектуры крупных микросервисных систем. Часть 1 — функциональная

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

Под Новый Год мы с женой пересматриваем одну популярную магическую сагу — хочется знаете ли в жизни волшебства. В IT волшебства тоже хватает — от танцев с бубнами до самых современных технологий, принцип работы которых проще объяснить тёмной магией. Так, например, бытует мнение, что настройка service mesh — это магия, подвластная лишь волшебникам DevOps. Но у нас в Альфа-Банке разработчики исторически не маглы, а, как минимум, полукровки, поэтому имеют право приобщиться к волшебному миру.

В этой серии статей я хочу поделиться опытом изучения технологии service mesh, а именно Istio, на примере практической задачи, возникшей какое то время назад в одной из систем Альфа Банка, системным архитектором которой я являюсь.

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

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

Читать далее

Vector.dev: затащили в PoC

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

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

В одном из проектов, связанных с мониторингом, мы используем Clickhouse, Prometheus, VictoriaMetrics, Grafana, Alertmanager и Vector.dev. Кстати, что общего у всех этих компонентов? Они написаны не на Java – это было одним из требований проекта, но речь ниже пойдет не об этом, а о Vector.dev.

Хорошая статья про Vector.dev есть на Хабре – но мы решили проверить свою карму, затащив Vector.dev в PoC. На текущий момент полет вполне нормальный: используем ограниченное количество source и sink’ов: File, Clickhouse, HTTP, JournalD и, конечно, сам Vector и его логи (немного погоняли kubernetes_logs, кстати, интересный доклад по теме логов Kubernetes был на недавней VK Kubernetes Conf’23).

Читать далее

Простой и удобный шаблон для bash-скриптов выполняемых по расписанию

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

Хочу поделиться с сообществом простым и полезным шаблоном скрипта-обёртки на bash для запуска заданий по cron (а сейчас и systemd timers), который моя команда повсеместно использует много лет.

Сначала пара слов о том зачем это нужно, какие проблемы решает. С самого начала моей работы системным администратором linux, я обнаружил, что cron не очень удобный планировщик задач. При этом практически безальтернативный. Чем больше становился мой парк серверов и виртуальных машин, тем больше я получал абсолютно бесполезных почтовых сообщений "From: Cron Daemon". Задание завершилось с ошибкой - cron напишет об этом. Задание выполнено успешно, но напечатало что-нибудь в STDOUT/STDERR - cron всё равно напишет об этом. При этом даже нельзя отформатировать тему почтового сообщения для удобной автосортировки. Сначала были годы борьбы с использованием разных вариаций из > /dev/null, 2> /dev/null, > /dev/null 2>&1, | mail -E -s '<Subject>' root@.

Читать далее

Grafana Mimir: remote storage из скандинавской мифологии

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

Привет! Меня зовут Игорь Латкин, я сооснователь и системный архитектор в KTS. Сегодня расскажу про Grafana Mimir — одно из хранилищ данных для системы мониторинга Prometheus. 

Это сравнительно молодой проект, запущенный в прошлом году. Mimir входит в экосистему Grafana, которая, уверен, знакома многим пользователям. Решение основано на Cortex — это проект, которым пользовалась и развивали Grafana до запуска собственной системы. 

Читать далее

Как построить локальный self-managed Kubernetes-кластер

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

Возможно, у вас была мысль запустить собственную услугу Infrastructure as a Service (IaaS) либо разместить свои проекты на Kubernetes, но не платить за managed-услуги, или ваш проект — это и есть self-managed Kubernetes. У full-stack-разработчика и предпринимателя Нейта Бакареффа эти желания сошлись воедино.

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

Читать далее

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

Как запустить контейнер Docker внутри конвейера GitLab CI

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

Довольно часто мы используем GitLab CI для докеризации наших приложений. Но как запустить контейнер Docker из GitLab Container Registry? Можно ли использовать Docker Compose? Делимся переводом статьи, в которой автор отвечает на эти вопросы и рассказывает о функции services keyword в GitLab CI, которая позволяет запустить один или несколько образов Docker и связать их с вашим заданием.

Читать далее

Из инженеров в DEVOPS — «Войти в  IT» на практике

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

Меня зовут Степан Вахета, и я хочу рассказать о своем пути от инженера инфраструктуры до позиции младшего DevOps-инженера в HOSTKEY. Надеюсь, эта информация будет полезна тем, кто находится в раздумьях по поводу развития карьеры в IT или о переходе в новую профессию. Я специально делаю акцент на практике, поскольку теория без нее мертва.

Хотя моя предыдущая работа не была напрямую связана с IT-сферой, она все же была технической (до этого я чуть больше года проработал техником в компании-интеграторе, а ранее вообще был автомехаником). Я всегда интересовался оборудованием и люблю разбираться в его устройстве. Поэтому, начав исследовать рынок вакансий в IT, я обнаружил много интересных вариантов. Мне хотелось работать именно в ЦОД — быть тем человеком, кто ходит по машинным залам и обслуживает эту мощную инфраструктуру под гул вентиляторов, кто дежурит ночами и в праздники. Поэтому среди вакансий искал эту роль.

Читать далее

Карьерные боли девопсов: какие они бывают и как специалисту их закрыть

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

Без DevOps-инженера сейчас сложно представить качественную разработку крупного решения. Однако работа этого эксперта, при всей ее критичности для бизнеса, часто сопряжена с карьерными проблемами. Мы решили поближе присмотреться к DevOps-специалистам и разобраться, что мешает их развитию.

Это история про совершенно разных DevOps-инженеров. Про боли, которые возникают у них на пути: от устаревшего стека, до трудностей карьерного роста. И про то, как наши герои справляются с этими проблемами. Если вам интересно — заходите под кат.

Читать далее

DORA для DevSecOps: как оценить эффективность процессов ИБ

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

Всем привет! Меня зовут Анастасия Арсеньева, я аналитик данных в Swordfish Security. Наша команда разрабатывает модуль визуализации метрик DevSecOps в рамках развития платформы AppSec.Hub. В предыдущих статьях мы рассказывали вам о том, как можно оценить риски ИБ, зрелость подхода Shift Left и эффективность обработки обнаруженных уязвимостей. Сегодня мы разберем еще один дашборд для оценки процессов безопасности в разработке и поговорим о проекции метрик DORA на DevSecOps.

Читать далее

7 ошибок джунов в DevOps, которые мешают им стать мидлами

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

Привет! Меня зовут Сергей, я руковожу направлением DevOps в KTS.

В прошлой статье мы рассмотрели, каким должен быть джуниор-DevOps-инженер. Сегодня пойдём чуть дальше, вспомним наш опыт и расскажем, какие ошибки могут мешать джуниорам перейти на грейд «мидл».

Читать далее

Фильтры Ansible: превращаем сложное в простое

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

Используя Ansible в качестве инструмента автоматизации, часть приходится сталкиваться с задачей обработки и фильтрации структурированных данных. Как правило, это набор фактов, полученных с управляемых серверов, или ответ на запрос к внешним API, которые возвращают данные в виде стандартного json. Многие неопытные инженеры, используя Ansible в таких случаях, начинают прибегать к помощи привычных консольных команд и начинают городить то, что среди специалистов получило название bashsible. В общем, вспоминается известный мем:

Читать далее