Обновить

Администрирование

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

Симулируем сети в GNS3. Часть 3 — Переходим на Cisco и VLAN

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

Статья описывает практический переход от физической к логической сегментации сети на примере сети небольшого предприятия с тремя зданиями.

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

Читать далее

Используем Coolify для хостинга проектов на своём VPS. Часть 2: установка и настройка Coolify

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

Coolify — это популярная open-source платформа для хостинга приложений на своем сервере.

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

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

Читать далее

Как подружить Spring Boot и Redis для эффективного кэширования

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

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

В этой статье разберем, как эффективно внедрить слой кэширования на связке Redis + Spring Boot 3 / Java 21.

Пробежимся по базовым командам Redis, реализуем cache‑aside вручную и через аннотации Spring Cache, а затем разберем два полезных паттерна для микросервисов: Fixed‑Window Rate Limiter и распределенный лок. Не пугайтесь сложных терминов, все понятным языком рассказал под катом.

Читать далее

Проблематика уведомлений в информационных системах на примере среды общих данных

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

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

Цель статьи – выявить и проанализировать эти проблемы, результатом станет ответ на вопрос: как улучшить взаимодействие с уведомлениями и использовать их наиболее эффективно в информационных системах? Как пример информационной системы рассмотрим «среду общих данных» строительных проектов. Также эта статья будет полезна специалистам, которые находятся в процессе выбора системы.

Читать далее

Мониторинг Strimzi Kafka через kube-prometheus-stack

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

Цель этой статьи — восполнить пробел в документации связки Strimzi Kafka и мониторинга. У Strimzi есть раздел про метрики и Prometheus и примеры в репозитории (examples/metrics/prometheus-install), но они рассчитаны на общий Prometheus Operator; пошагового руководства именно под Helm-чарт kube-prometheus-stack (с порядком установки и нужными label’ами) в открытом доступе не нашлось. Ниже — собранный и проверенный вариант такой установки.

Читать далее

Kubernetes и FluxCD: Восстановление кластера с хранением состояния, дампов и секретов в S3

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

При проектировании инфраструктуры часто возникает задача поднять кластер «с чистого листа». Безусловно, Terraform и Ansible — это стандарт индустрии. Однако мне нужен был процесс быстрого получения готового кластера K8s, полностью независимый от локального окружения, чтобы запуск не требовал предварительной подготовки версий библиотек, интерпретаторов или наличия локальных файлов конфигурации.

В этой реализации я намеренно упростил работу с конфигурацией: параметры виртуальных машин (CPU, RAM, диски) описаны прямо в коде (см. config.go). Я решил, что проектирование гибкой системы внешних конфигов можно оставить на потом, чтобы на данном этапе не отвлекаться и сфокусироваться на главной задаче — отладке самого механизма восстановления и связности компонентов.

Я реализовал подход полной автоматизации с использованием технологий, которыми увлекаюсь. Суть проста: на машине CI-раннера нет ничего, кроме одного бинарного файла. Всё состояние кластера (IP-адреса, ID дисков), дампы баз данных и зашифрованные секреты хранятся в S3. Это позволяет восстановить кластер в исходное состояние даже после полного удаления, просто вытянув актуальное состояние из облачного хранилища.

В этой статье я поделюсь опытом создания кастомного CLI для подготовки инфраструктуры и использования FluxCD для развертывания приложений. А для проверки результата я использую Yandex Cloud Managed Kubernetes, чтобы запустить K6 Operator и дать внешнюю нагрузку в 1000 пользователей на восстановленные сервисы.

Читать далее

Работа с внешними устройствами в Linux

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

Всегда ли вы понимали как работать с устройствами в Linux?
Задавали себе вопрос "А что в пути забыли ссылки?"
Или хотели знать, как в Linux представлены USB-устроства на уровне системы?

В этой статье я разбиаю как работать с внешними устройствами, для чего нужна директории /sys и /dev, как представлены в системе USB-устройства и cd-диски.

Читать далее

Катастрофоустойчивый Kubernetes: как использовать балансировщик MetalLB с BGP-anycast

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

Клиенты часто спрашивают, как построить геораспределенный и катастрофоустойчивый Kubernetes. Так, чтобы при отказе целого дата-центра нагрузка переключалась на резервную площадку без смены IP-адресов сервисов.

Можно возразить, что проще изменить DNS-запись и направить трафик на инстанс в другом дата-центр. Но есть риск: кэширование на рекурсорах некоторых провайдеров может негативно повлиять на доступность. Они иногда игнорируют TTL и хранят старые данные неопределенный срок. Поэтому в таких сценариях крайне желательно сохранить IP-адрес.

Один из элементов «мозаики» такой геораспределенной системы — балансировщик нагрузки с возможностью использования адресов из anycast-подсети, которую выделяет поставщик услуг. В этой статье мы не будем затрагивать вопрос передачи данных и их консистентность на двух разных площадках — разберем только сетевую составляющую. Подробности под катом!

Читать далее

Tantor XData 2B на Baikal-S: практический опыт промышленной эксплуатации ARM-серверов для 1С

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

Мы уже писали о нагрузочном тестировании машины баз данных Tantor XData 2Y на базе процессоров Intel, точнее, об успешно пройденном тесте на 30 тыс. пользователей 1С. Впечатляющие показатели — это прекрасно, однако реальность рынка enterprise-решений такова, что технические характеристики — не единственный критерий для выбора оборудования. Требования 398-ФЗ, стратегии импортозамещения, санкционные риски и бюджетные ограничения заставляют компании искать баланс между производительностью и другими факторами. 

В линейке Tantor XData есть модель 2B на базе процессоров Baikal-S, позиционируемая как ответ на подобные вызовы. В новой статье мы делимся результатами нагрузочного тестирования этой модели и рассказываем об особенностях работы ARM-архитектуры с PostgreSQL и практическом опыте оптимизации такой системы — со всеми техническими деталями, метриками производительности и найденными узкими местами.

Читать далее

Как не держать код на сервере

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

Кому эта статья может быть полезна?

Многие сегодня припарковали свои проекты на виртуальных серверах типа vps/vds или физическом сервере. И вот, по каким-то причинам, вы не хотели бы показывать свой код напрямую.

Если вы уже знаете про GitLab runner, Docker и registry – то можно пройти мимо и сберечь свое время. А кто не знает - добро пожаловать. Постараюсь, чтобы было не сложно.

Какие могут быть причины?

Читать далее

Инферит ИТМен 6.5: упрощаем управление агентами и расширяем инвентаризацию для сложных инфраструктур

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

Привет, Хабр! Меня зовут Данила Трусов, я директор продукта «Инферит ИТМен». В этом посте хочу рассказать, что именно мы сделали в версии 6.5 и почему эти изменения важны для команд, которые работают с распределенной и неоднородной инфраструктурой.

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

Читать далее

Управление ресурсами процессов с помощью контрольных групп Linux

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

Когда на сервере появляется «прожорливый» процесс, который забирает все ядра и постепенно выдавливает память, хочется ограничить его быстро — но так, чтобы это было воспроизводимо и не держалось на магии.

В статье — практический разбор cgroups v2: как руками через cgroupfs создать группу, задать лимиты CPU/RAM и правильно запускать процессы без «окна без ограничений», а затем сделать то же самое через cg*-утилиты и systemd-run/slice. По дороге станет ясно, почему эти приёмы напрямую перекладываются на мир Docker и Kubernetes.

Перейти к статье

Как работать с Kubernetes: ищем скрытые статьи затрат в облаке и пошагово все оптимизируем, чтобы сэкономить

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

Kubernetes давно стал де-факто стандартом для оркестрации контейнеров. Его используют все – от крупных корпораций до мелких стартапов – и в ус не дуют. Потому что удобно: сервисы после падения поднимаются сами, трафик равномерно размазывается по репликам, деплой происходит в один клик, а масштабирование — по графику нагрузок, а не по звонкам в два часа ночи. Но это на бумаге. А вот на практике многие компании сталкиваются с тем, что за удобство приходится платить. Причем зачастую куда больше, чем рассчитывали первоначально. Бывали даже случаи, когда на кластер закладывали 200 тысяч рублей в месяц, а по факту отдавали 500-600. Естественно, работать в таких условиях нельзя. Поэтому надо разбираться, куда на самом деле уходят деньги и как сохранить их при себе.

Читать далее

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

Когда планировщик начинает смотреть на звёзды: как scx_horoscope показал будущее гибких планировщиков ядра Linux

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

В конце 2024 года на просторах GitHub появился проект, который заставил даже самых серьёзных системных программистов улыбнуться: scx_horoscope — планировщик задач для ядра Linux, корректирующий поведение CPU в зависимости от положения планет, фаз Луны и так называемой ретроградности. Автор, Lucas Zampieri, с иронией обыграл давний системный фольклор о зависимости работы систем «от фазы Луны», превратив мем в рабочий код, который действительно загружается в ядро и участвует в распределении процессорного времени.

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

Интересно?

Решение проблем низкой скорости передачи данных по TCP: подход на уровне стека

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

"Что-то не так с сетью. Раньше у меня было 4Гбит/с, а теперь выдаёт только 120Мбит/с. Ты что-то менял недавно?"

Знакомо звучит? Если вы хоть немного занимались поддержкой продуктовых сред, вам, вероятно, доводилось слышать подобные жалобы. Прежде чем прийти к выводам о причинах проблемы, нам нужно разобраться, что именно происходит на уровне TCP обоих хостов.

Читать далее

Записки самозванца. Защита кольцевой топологии с помощью RRPP

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

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

Пролистать и забить

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

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

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

Читать далее

Как превратить Linux в Windows

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

Тезис: следует создать такой дистрибутив Linux, который по умолчанию выполняет двоичные файлы Windows через Wine.

Если я найду файл в формате .exe, которому 20 лет, я по-прежнему смогу запустить его на современной Windows. Попробуйте проделать подобное с двоичным файлом Linux, которому всего год. Совершенно не гарантированно, что он запустится, в зависимости от того, какие обновления успели произойти. Также не гарантируется, что заработает даже сегодняшний двоичный файл Linux, если собрать его в одном дистрибутиве, а попытаться запустить на разных других дистрибутивах. Возникает ровно такая же проблема, связанная с версиями установленных библиотек.

Читать далее

Как мы реализовали мониторинг на автопилоте: наш стек с VictoriaMetrics

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

Мониторинг — это сердце любой современной IT-инфраструктуры. Сегодня я хочу рассказать о нашем опыте построения и развития инфраструктуры мониторинга в одном из крупнейших банков России – Россельхозбанке.

Привет, Хабр! Меня зовут Сергей Смирнов, я DevOps экосистемы «Своё» в РСХБ.Цифра.

Речь пойдет не о всей гигантской IT-инфраструктуре банка, а о ее специфической части. Мы работаем с тем, что можно назвать «внешним облаком» РСХБ. В этой статье я расскажу об общей архитектуре, ключевых технологиях для сбора метрик, логов, трассировок, алертинга и визуализации, принципах настройки и развертывания, примерах и готовых решениях, в частности о том, как Victoria Metrics может стать центральным элементом системы мониторинга, охватывающей как Kubernetes, так и другие компоненты инфраструктуры.

Самое главное – я поделюсь конкретными примерами конфигурационных файлов, Helm-чартов или других манифестов, которые позволят вам развернуть базовый (или даже расширенный) стек мониторинга «из коробки» в вашей собственной среде.

Читать далее

Мысли вслух. Протоколы и механизмы синхронизации транзакций в распределённом вычислительном кластере СУБД

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

Продолжаю рубрику «Мысли вслух». Цель данной публикации – описать алгоритмы и новизну моих исследований по созданию кластера СУБД с горизонтальным масштабированием производительности – распределенного вычислительного кластера (РВК). Набралась очередная порция материалов в следствие новых изысканий и натурных экспериментов, которыми и делюсь. Сегодня речь пойдет о возможных протоколах работы РВК. Создание распределённого кластера СУБД обычно приносит серьёзные потери в производительности одиночных операций, плюс сложности в разработке, эксплуатации и сопровождении. Цель моей работы – создать РВК без этих недостатков.

Читать далее