Pull to refresh
-8
0.2
Send message

Внедряем DevSecOps в процесс разработки. Часть 1. Обзор инструментов, Pre-commit Checks

Level of difficultyMedium
Reading time9 min
Views9.4K

Привет! На связи Олег Казаков из Spectr.  

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

Мы подготовили цикл статей, где поделимся своим опытом и наработками и расскажем, из чего состоит DevSecOps и как его внедрить в процесс разработки. 

В первой статье поговорим о теории DevSecOps и подробно рассмотрим Pre-commit Checks.

Читать далее
Total votes 2: ↑2 and ↓0+2
Comments3

Envoy Proxy — один за всех Load Balancer

Reading time10 min
Views5.4K

В современной инфраструктуре нет недостатка в решениях для балансировки и межсервисных коммуникаций. Почти все используют nginx, HAProxy, есть адепты Treafik, а публичные облака предлагают Load Balancer как сервис. Но что делать, если инструменты не справляются с ростом масштабов и необходимо автоматизируемое cloud-native-решение?

Я Дмитрий Самохвалов, архитектор в K2 Cloud. В этой статье поделюсь, как мы из-за ограничений старых систем для динамической конфигурации перешли с работающих решений nginx и HAProxy на модный Envoy. Расскажу, почему сочли это решение подходящим, какие возможности есть у Envoy, каким был опыт внедрения и оставлю рекомендации для эффективного перехода. Будет полезно разработчикам cloud-native-приложений и инфраструктуры, а также всем, кто хочет создать единое платформенное решение для взаимодействия сервисов и инфраструктуры.

Читать далее
Total votes 15: ↑15 and ↓0+18
Comments5

Корректное завершение работы подов в Kubernetes

Level of difficultyEasy
Reading time18 min
Views6.5K

Перевели статью и наглядную инфографику управляющего директора Learnk8s Daniele Polencic о корректном завершении работы подов в Kubernetes. В тексте много примеров и иллюстраций, которые помогут начинающим разобраться, как предотвратить разрыв соединений при запуске или остановке пода. В том числе для долгоживущих соединений и задач.

Читать далее
Total votes 21: ↑21 and ↓0+29
Comments5

Кластеры и мир: хроника высокодоступного Pub/Sub в Redis

Level of difficultyEasy
Reading time22 min
Views2K

В статье рассматриваются основные принципы и особенности использования Redis в режиме Pub/Sub для масштабируемых и высоконагруженных приложений. Описаны два подхода к обеспечению высокой доступности — Redis Sentinel и Redis Cluster, их преимущества, ограничения и примеры настройки. Приведены примеры использования Pub/Sub в реальных системах, а также практические конфигурации и код для настройки отказоустойчивого кластера Redis. Статья предназначена для разработчиков, которые ищут решения для создания надежных систем обмена сообщениями с высокой производительностью и отказоустойчивостью.

Читать далее
Total votes 7: ↑7 and ↓0+11
Comments8

Locust: проводим нагрузочное тестирование

Reading time7 min
Views1.9K

Автоматизация тестирования приложений является важным элементов в обеспечении процессов CI/CD. В этой статье мы поговорим о практическом использовании инструмента с открытым исходным кодом Locust для проведения нагрузочного тестирования приложений.

Читать далее
Total votes 14: ↑11 and ↓3+14
Comments5

Межкластерная репликация Apache Kafka между тремя дата-центрами

Reading time10 min
Views17K

Я Роман Ананьев, NoSQL/Kafka-инженер в Авито. В этом материале расскажу, как мы попробовали использовать брокер сообщений Apache Kafka в трёх дата-центрах и что из этого получилось.

Сначала пробегусь по архитектуре Kafka, потому что она играет роль в репликации между кластерами. Затем коснусь самих способов репликации и расскажу о двух инструментах для неё: MirrorMaker и uReplicator. Основная часть статьи — про нашу реализацию Kafka cluster federation и то, как Kafka размазана на несколько дата-центров.

Читать далее
Total votes 23: ↑23 and ↓0+23
Comments7

Persistent Storage для Kubernetes на базе Linstor

Level of difficultyMedium
Reading time6 min
Views2.7K

Многие начинающие DevOps'ы, осваивающие kubernetes сталкиваются с вопросом: "Как организовать Persistent Storage в своём kubernetes-кластере?" Для этой цели есть много вариантов: ceph, nfs, mayastor, iscsi, linstor, longhorn. Сегодня мы рассмотрим один из них - linstor (он же piraeus). Мы настроим свой Persistent Storage и подключим его к нашему kubernetes-кластеру.

Читать далее
Total votes 6: ↑5 and ↓1+8
Comments14

Keycloak — больно не будет

Level of difficultyHard
Reading time17 min
Views46K

Привет! Меня зовут Алексей, я DevOps-инженер компании Nixys. «Как правильно и своевременно предоставлять и отнимать доступ у различных сотрудников?» — этот вопрос беспокоит всех. Особую важность эта задача приобретает, когда продукт начинает быстро расти — если ваш штат регулярно меняется, вопросы безопасности данных и работоспособности системы должны стоять на особом контроле.

В статье я хочу рассказать, как мы совершенствовали систему контроля доступа в рамках одного проекта, и показать, как реализовали единую точку авторизации через Keycloak.

Читать далее
Total votes 7: ↑7 and ↓0+7
Comments5

Systemd для начинающих: разбор юнитов и их функций

Reading time8 min
Views12K

На связи Егор из блока поддержки платформы F5, сегодня предлагаем вспомнить основы systemd. Поскольку утилит и возможностей в нем много, а новые функции добавляются регулярно, следить за всем этим может быть непросто, так что начнем с основ.

Systemd — это init процесс, который запускается при загрузке ядра операционной системы linux и его задачей является форкать другие процессы. Информацию о том, какие процессы необходимо исполнить он берет из, так называемых “юнитов” (systemd unit - https://www.freedesktop.org/software/systemd/man/latest/systemd.unit.html). Юниты бывают различных типов, каждый из которых выполняет определенную задачу.

Читать далее
Total votes 18: ↑15 and ↓3+14
Comments4

Введение в Istio для Kubernetes: основы и начальная настройка

Level of difficultyMedium
Reading time14 min
Views7.9K

Работая DevOps-инженером, я часто сталкиваюсь с необходимостью глубоко погружаться в механизмы работы контейнерных оркестраторов. Важность хорошего знания архитектуры и оптимизации управления контейнерами трудно переоценить, особенно когда речь идёт о Kubernetes. Эта технология стала неотъемлемой частью моего инструментария благодаря её возможностям в автоматизации развёртывания, масштабирования и управления контейнерными приложениями.

Однако управлять микросервисной архитектурой в Kubernetes бывает весьма сложно. И здесь на помощь приходит Istio — мощная платформа, обеспечивающая сетевое взаимодействие, безопасность и наблюдаемость в кластере Kubernetes. В этой статье мы рассмотрим основы Istio и её начальную настройку.

Читать далее
Total votes 17: ↑15 and ↓2+20
Comments1

Чиним замедление YouTube на уровне роутера

Level of difficultyMedium
Reading time6 min
Views646K

Всех категорический приветствую. Буквально первого августа, прямо в ночь, стал у меня жутко лагать YouTube. Естественно, мне это сильно не понравилось. Ну, что же, давайте разбираться, почему и как это исправить в условиях моей личной сети.

Что случилось?

Хорошо описано произошедшее здесь, на Хабре. Если совсем кратко, своими словами - во время установки SSL соединения в открытом виде домен передается к которому мы подключаемся(так называемое SNI). И если это googlevideo.com то начинают твориться "интересные вещи". Можно проверить это локально коммандами из статьи.

$ curl https://speedtest.selectel.ru/100MB -o/dev/null

Читать далее
Total votes 360: ↑357 and ↓3+412
Comments1054

Route-based VPN между Linux StrongSwan и Cisco ISR

Reading time4 min
Views9.9K

Всем доброго времени суток!

Захотелось поделиться реализацией Hun-and-Spoke VPN между Cisco ISR (в качестве споков) и Linux+StrongSwan swanctl (в качестве хабов).

Небольшая предыстория.

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

Хабы располагаются в ДЦ в виде Cisco CSR. И вот с ними и была основная проблема, так как отечественные решения не могут пока предложить что-то наподобие полностью готового виртуального роутера (поправьте в комментариях, если я ошибаюсь).

В итоге, пока остановились на решении Linux+StrongSwan+FRR.

Читать далее
Total votes 5: ↑4 and ↓1+4
Comments1

Три оттенка Kubernetes Operator, или чем слушает Prometheus

Level of difficultyMedium
Reading time33 min
Views3K

Это ещё не туториал, но относительно подробный гайд о том, как компоненты Операторов взаимодействуют с Kubernetes API на уровне кода (Golang), чтобы реализовать заложенную в них логику для автоматизации вполне определённых практических задач. И да, всем известно, максимальный уровень автоматизации работы в Кубернетес ограничен лишь желанием самих разработчиков избавиться от рутины в близкой для них предметной области, потому я разделил текст на три части, чтобы вы могли без промедления промотать к наиболее актуальной, в которой узреете нечто достойное вашего внимания:

1. Кастомные ресурсы - мониторы Прометеус-оператора
2. Информеры и контроллеры
3. Сайдкар-Инжекторы с помощью аннотаций и вебхуков

Читать далее
Total votes 6: ↑4 and ↓2+3
Comments0

Tcpdump на разных уровнях

Reading time4 min
Views14K

Утилита Tcpdump знакома любому сетевому администратору, с ее помощью мы собираем трафик для последующего анализа. Типичная история – собираем траффик, приходящий на нужный интерфейс и затем уже анализируем его Wireshark. Подход практичный, ведь Wireshark Действительно очень мощный и полезный инструмент и о нем мы напишем еще не одну статью, но сегодня речь пойдет про Tcpdump. Не секрет, что утилита Tcpdump не интерпретирует протоколы прикладного уровня, ограничиваясь работой с транспортным уровнем. Однако, в этой статье мы рассмотрим различные варианты использования утилиты Tcpdump для более глубокой фильтрации трафика.

Итак, Tcpdump - утилита UNIX, позволяющая перехватывать и анализировать сетевой трафик, проходящий или приходящий через компьютер, на котором запущена данная программа.

Читать далее
Total votes 21: ↑17 and ↓4+17
Comments4

Как устроена страничная организация памяти x86_64

Level of difficultyEasy
Reading time15 min
Views11K

В этом посте я буду говорить о страничной организации только в контексте PML4 (Page Map Level 4), потому что на данный момент это доминирующая схема страничной организации x86_64 и, вероятно, останется таковой какое-то время.

Окружение

Это необязательно, но я рекомендую подготовить систему для отладки ядра Linux с QEMU + gdb. Если вы никогда этого не делали, то попробуйте такой репозиторий: easylkb (сам я им никогда не пользовался, но слышал о нём много хорошего), а если не хотите настраивать окружение самостоятельно, то подойдёт режим практики в любом из заданий по Kernel Security на pwn.college (вам нужно знать команды vm connect и vm debug).

Я рекомендую вам так поступить, потому что считаю, что самостоятельное выполнение команд вместе со мной и возможность просмотра страниц (page walk) на основании увиденного в gdb — хорошая проверка понимания.

Читать далее
Total votes 53: ↑53 and ↓0+53
Comments0

Приручаем GitLab: прикольные фишки и инциденты, которые упростят вашу жизнь

Level of difficultyMedium
Reading time11 min
Views40K

В текущих реалиях все IT-продукты разрабатываются с использованием какого-либо ПО, способного управлять репозиториями программного кода для Git. В нашем случае, хотелось бы рассказать про один из самых популярных продуктов — Gitlab. «Gitlab — наше всё» должно быть слоганом каждой компании, которая его использует, иначе могут произойти события, которые приведут к печальным последствиям. На Habr можно найти множество различной информации, связанной с кейсами, туториалами или просто интересными историями. Но сколько бы ни было написано, найти место где было бы собрано всё и сразу — не получилось. Придется исправлять. 

Начнём?
Total votes 24: ↑21 and ↓3+24
Comments3

Как завернуть трафик Wireguard через shadowsocks на роутере

Level of difficultyEasy
Reading time2 min
Views43K

Так как есть риск блокировки Wireguard протокола, то рассказываю, как сделать, что бы трафик туннеля шел через shadowsocks.

Пример будет для сервера на Ubuntu 22.04 и роутера кинетик, с установленным на нем Entware. Предполагается, что WG уже поднят и настроен. А так же на роутер установлен Entware.

Читать далее
Total votes 18: ↑18 and ↓0+18
Comments17

10 Kubernetes Security Context, которые необходимо понимать

Reading time11 min
Views30K

Безопасно запускать рабочие нагрузки в Kubernetes может быть не простой задачей. Множество различных параметров могут повлиять на безопасность, что требует соответствующих знаний для правильной реализации. Одним из самых мощных инструментов, которые предоставляет Kubernetes в этой области, являются настройки securityContext, которые могут использоваться в каждом манифесте Pod и контейнера. В этой статье мы рассмотрим различные настройки контекста безопасности, выясним, что они означают и как их следует использовать.

Читать далее
Total votes 9: ↑8 and ↓1+8
Comments0

44 совета по Ansible: рекомендации и Best Practices

Reading time8 min
Views18K

Автор оригинала: Иоаннис Мустакис

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

Читать далее
Total votes 11: ↑10 and ↓1+11
Comments2

Комбинируем Prometheus, ChatGPT и Slack — получается Robusta

Reading time4 min
Views4.6K

Что получится, если объединить Prometheus, работающий на Kubernetes, умный движок, взаимодействующий с ChatGPT, и мессенджер типа Slack? Вы получите платформу с открытым исходным кодом для поиска и устранения ошибок в Kubernetes под названием Robusta.

В этом посте мы рассмотрим применение Robusta поверх стека мониторинга Prometheus и покажем, почему возникают алерты и как их можно устранить.

Читать далее
Total votes 10: ↑9 and ↓1+9
Comments0
1

Information

Rating
2,754-th
Registered
Activity