Search
Write a publication
Pull to refresh
38
0
Катерина @edeshina

Редактор в MobileUp

Send message

Распределённая трассировка с помощью Jaeger

Reading time5 min
Views5.1K

Частая проблема при разработке распределённых систем состоит в следующем. Предположим, вы отправили системе запрос, и этот запрос обрабатывается очень долго. При этом внутри системы он распадается на запросы к нескольким внутренним микросервисам, которые могут превратиться в несколько подзапросов и выполняться параллельно. Как в этом случае определить, что тормозит систему? На помощь приходит Jaeger — сервис для сбора и отображения трейсов в распределённых системах. 

Читать далее

Как запускать RabbitMQ в Docker

Reading time8 min
Views113K

Алексей Барабанов, IT-директор «Хлебница» и спикер курса «RabbitMQ для админов и разработчиков», подготовил конспект, который поможет научиться запускать и настраивать RabbitMQ в Docker. Вы поймёте, как конфигурировать параметры запуска, а также узнаете о возможностях управления через веб-интерфейс.

Читать далее

RabbitMQ: терминология и базовые сущности

Reading time8 min
Views111K

При работе с инструментом важно знать теоретические основы. Во-первых, вам будет значительно проще искать ответы на вопросы в Google и понимать официальную документацию. Во-вторых, при обращении в профильные чаты вы будете называть вещи своими именами, что позволит быстрее получить ответ (или вообще получить его: если ваши слова и термины будут непонятны другим, вряд ли они смогут ответить вопрос). 

Алексей Барабанов, IT-директор «Хлебница» и спикер курса «RabbitMQ для админов и разработчиков», подготовил конспект, который поможет понять терминологию и базовые сущности RabbitMQ.

Читать далее

Введение в DDD: когда микросервисов на Go недостаточно

Reading time8 min
Views7.4K

Микросервисная архитектура помогает строить гибкие и масштабируемые приложения. Однако в случае бессистемного использования этого подхода вы довольно быстро столкнётесь с разочарованием и неконтролируемыми сложностями. Избежать проблем помогает Domain-Driven Design (DDD) — предметно-ориентированное проектирование. В статье расскажем о принципах его работы, а также разберём основы стратегических паттернов в Golang. 

Читать далее

Разбираемся с Docker: как создаются образы

Reading time13 min
Views55K

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

Читать далее

Как компании используют RabbitMQ

Reading time6 min
Views8.3K

RabbitMQ — распределённый горизонтально масштабируемый брокер сообщений. Он разграничивает права доступа, поддерживает шифрование, сохранение сообщений на диск и работу в кластерах. Кроме того, он написан на Erlang, а значит, совместим с большинством популярных ОС. На примере кейсов Adidas и Laika разберём, как крупные компании используют RabbitMQ. 

Читать далее

DevOps-инструменты как новая ступенька для разработчика

Reading time6 min
Views8.8K

В октябре Владислав Килин, Кирилл Борисов и учебная команда Слёрм проведут «DevOps Tools для разработчиков» — практический интенсив в новом формате. Его цель — расширить стек специалистов и познакомить их популярными эксплуатационными инструментами. Мы провели интервью с автором идеи интенсива и руководителем одной из учебных команд Слёрма, Евгением Бутыриным. Он рассказал, в чём идея «DevOps Tools для разработчиков» и кому он будет полезен, почему было принято решение внедрить изменения в отработанный формат обучения.

Читать далее

Основы CI/CD. Знакомство с Jenkins

Reading time8 min
Views181K

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

За основу статьи взят первый урок нашего практического курса «CI/CD с Jenkins».

Читать далее

Сломать контроль ресурсов в контрольных группах Linux. Часть 2

Reading time7 min
Views2.9K

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

Читать далее

Kubernetes + Jenkins: как использовать вместе

Reading time7 min
Views12K

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

Читать далее

Сломать контроль ресурсов в контрольных группах Linux. Часть 1

Reading time9 min
Views4.7K

Контрольные группы или cgroups — основные строительные блоки, обеспечивающие контейнеризацию на уровне операционной системы. Подобно процессам они организованы иерархически, и дочерние группы наследуют атрибуты родительских. В этой статье мы покажем, что наследование контрольных групп не всегда гарантирует последовательный и справедливый учёт ресурсов. Опишем стратегии, позволяющие избежать контроля использования ресурсов, и разберём основные причины, почему контрольные группы не могут отслеживать потребляемые ресурсы. Дополнительно исследуем сценарии, как вредоносные контейнеры могут потреблять больше ресурсов, чем разрешено. 

Читать далее

Безопасность в Linux

Reading time8 min
Views43K

В новой статье говорим про безопасность в Linux: как настроить и что важно учитывать в процессе. Дополнительно разбираем PAM и модули аутентификации, рассматриваем iptables. 

За основу взят один из уроков нашего практического курса «Администрирование Linux Мега».

Читать далее

Как сделать Jenkins стабильным и сэкономить время, деньги и нервы

Reading time7 min
Views7.8K

От любой системы, которую внедряем в проект, мы ждём стабильной работы. Jenkins не исключение. Когда мы выбираем его в качестве инструмента CI/CD, он начинает напрямую влиять на time to market приложения и, соответственно, на деньги, которые может заработать компания. В случае сбоя Jenkins мы получаем влияние не только на команду разработки, но и на бизнес. Чтобы минимизировать риски, необходимо правильно настроить инструмент. В статье рассказываем о best practice, которые должен знать каждый администратор Jenkins.

Читать далее

Когда и зачем нужен RabbitMQ

Reading time5 min
Views213K

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

Читать далее

Связь GreenPlum и PostgreSQL

Reading time5 min
Views16K

GreenPlum — популярное решение для масштабных аналитических систем и в небольших стартапах, и в крупных корпорациях. Оно предлагает понятный пользователям синтаксис ANSI SQL, хорошо ложится на облачный ландшафт, позволяет обучать и применять модели машинного обучения, а ещё поддерживает реляционную СУБД PostgreSQL. В статье поговорим, как связаны GreenPlum и PostgreSQL, разберём их сходства и отличия. 

Читать далее

Параметры в Jenkins

Reading time5 min
Views34K

Jenkins — один из наиболее популярных инструментов CI/CD. Он позволяет автоматизировать каждый этап жизненного цикла программного обеспечения: от создания до развертывания. В этой статье Кирилл Борисов, Infrastructure Engineer технологического центра Deutsche Bank, расскажет о параметрах в Jenkins и о том, как решить проблему хардкода с их помощью.

Читать далее

Обзор паттернов интеграции микросервисов. Часть 2

Reading time5 min
Views18K

Продолжаем обзор паттернов интеграции микросервисов. В первой части мы рассказали, зачем IT-специалистам нужны шаблоны интеграции, и для каких задач они подходят. Подробно остановилисьна Circuit Breaker, Sidecar, Ambassador, Anti-Corruption Layer и Async Request-Reply. Сегодня по плануразобрать Backends for Frontends, Cache-Aside, Gateway, Gateway Aggregation и Gateway Routing. 

Читать далее

Обзор паттернов интеграции микросервисов. Часть 1

Reading time7 min
Views35K

Недавно мы проводили вебинар «Обзор паттернов интеграции микросервисов». На нём энтерпрайз архитектор Пётр Щербаков рассказал, зачем IT-специалистам нужны шаблоны интеграции, и разобрал, для каких задач они подходят, а для каких нет. Для тех, кто пропустил или предпочитает читать, а не смотреть подготовили текстовый обзор интеграционных паттернов: Circuit Breaker, Sidecar, Ambassador, Anti-Corruption Layer и Async Request-Reply.

Читать далее

Как подружиться с OOM Killer: кейс Southbridge

Reading time6 min
Views23K

OOM Killer — защитный механизм ядра Linux, призванный решать проблемы с нехваткой памяти. При исчерпании доступной памяти он принудительно «убивает» наиболее подходящий по приоритетам процесс, отправляя ему сигнал KILL. Сообщение об этом отображается в /var/log/syslog (Debian/Ubuntu) или /var/log/messages (Centos/Rhel).

Иногда OOM Killer может затрагивать важные процессы, нарушая работу проекта. Как исправить это, узнали у Сергея Юдина, инженера Southbridge. Ниже подробный кейс с примерами кода. 

Читать далее

Деплой, базы данных и мониторинг: жизнь после перехода на Go

Reading time7 min
Views7.9K

Спикер курса «Golang для инженеров», Team Lead & Backend Developer в «Ситимобил» Тигран Ханагян, рассказывает о том, как и почему произошел переход на Golang в онлайн-сервисе такси.

Материал подготовлен на основе вебинара Слёрма по Golang.

До перехода на Go в компании был большой монолит на PHP. Монолит все еще есть, но уже на порядок меньше – около 2 миллионов строк кода. На сегодняшний день многое вынесено в микросервисы.

Команда разработки встала перед проблемой: кодовая база выросла настолько, что поддерживать и вести параллельную разработку такого большого монолита становилось сложно. Каждый раз нужно было доставлять на сервер очень большое количество файлов.

Читать далее

Information

Rating
Does not participate
Location
Санкт-Петербург, Санкт-Петербург и область, Россия
Date of birth
Registered
Activity