Нынешний век — век импортозамещения. Многие компании сейчас сталкиваются с возникшей необходимостью переходить на отечественное ПО. Приходится осваивать вновь появившиеся нюансы, связанные с новым программным обеспечением. В данной статье мы в подробности рассмотрим настройку и шаг‑за шагом настроим single‑node kubernetes‑кластер в одной из популярных отечественных ОС — RedOS.
DevOps *
Методология разработки программного обеспечения
50 терминов системного дизайна, которые должен знать каждый разработчик
1. Масштабируемость / Scalability
- Масштабируемость — это способность системы поддерживать возросшую нагрузку путем добавления дополнительных ресурсов
- Примером является добавление дополнительных серверов для обработки увеличившегося веб-траффика
- Что такое масштабируемость и как ее достичь?
2. Балансировка нагрузки / Load Balancing
- Балансировка нагрузки — это разделение входящего сетевого траффика между несколькими серверами для снижения нагрузки на каждый из них (во избежание того, чтобы на один сервер приходилось слишком много траффика)
- Примером является распределение веб-траффика между несколькими экземплярами EC2 с помощью сервиса AWS Elastic Load Balancer (ELB)
- Понимание балансировки нагрузки
OpenTelemetry с нуля до 100: пример внедрения Норвежским управлением труда и соцобеспечения
Сейчас OpenTelemetry — это самый быстрорастущий проект CNCF. Опытом внедрения этого набора инструментов для отладки и анализа производительности распределённых систем поделился тимлид платформенной команды Норвежского управления труда и социального обеспечения. В переводе под катом вас ждёт тернистый путь от первых коммитов до реального применения OpenTelemetry в production, а также планы команды на будущее.
Спускаясь с облаков в ад: развёртывание Kubernetes на Astra Linux. Часть 1
За годы работы с Kubernetes у нас было множество различных задач: от самых типовых развёртываний до крайне специфичных конфигураций и установок. Однако недавно в наших стенах решалась задача, которая заставила нас проявить творческий подход, выйти за рамки Kubernetes и даже немного сжульничать.
Всем привет, на связи Пётр. Сегодня мы рассмотрим автоматическое развёртывание ванильного Kubernetes на Astra Linux через Kubespray + Helm.
Истории
Оптимизируем системные ресурсы при развёртывании за счёт перехода на динамику
Всем привет! Если в компании растёт количество продуктов, а для их развёртывания используются виртуальные машины, то рано или поздно возникает задача оптимизации ресурсов. Скажем, вы используете для оркестрации Jenkins. Количество агентов на ВМ при этом статично, а количество развёртываний в разное время разное. В этом случае при массовых установках агенты периодически упираются в установленный лимит исполнителей (executor), а в свободные часы ВМ простаивают, занимая ресурсы.
Мы, команда Run4Change в СберТехе, сопровождаем тестовые среды. В наши задачи входит в том числе развёртывание продуктов облачной платформы Platform V на стендах для последующего тестирования. Расскажем, как мы решили проблему использования системных ресурсов и отказались от виртуальных машин в пользу cloud‑native‑решения. Статья может быть полезна тем, кто планирует начать использование динамических агентов Jenkins, и может использоваться как первоначальное руководство.
Одна платформа, чтобы мониторить всех: как мы осуществляем трассировку, работаем с логами и метриками во всей экосистеме
Привет, Хабр! Меня зовут Филипп Бочаров, я руководитель направления мониторинга и наблюдаемости в МТС Диджитал. В нашей экосистеме более 400 продуктов, которые активно взаимодействуют между собой. Для такого обширного ландшафта мы используем единую платформу мониторинга: она устанавливает общие стандарты, дает возможность легкого перехода на новый стек и снижает трудозатраты на типовые операции.
В этой статье расскажу, как мы с ее помощью осуществляем распределенную трассировку, сбор и хранение метрик и централизованное логирование для всех продуктов МТС. И покажу, что в нашем случае платформа — единственное работающее решение.
Готовим по рецепту: CI/CD в MLOps
Всем привет! Меня зовут Роза и я MLOps-инженер в Купере. Под катом расскажу, как построить CI/CD-пайплайн для ML-приложений с нуля, поэтапно и без боли. Ну почти :)
Раньше очень часто работа DS-инженера заканчивалась на подготовке кода модели в Jupyter-ноутбуке, а дальше его подхватывали команды разработки и доводили до продакшена. У такого подхода есть минусы. Например, если произойдёт инцидент, непонятно кто ответственен за сервис — команда разработки или авторы ML-модели?
К счастью, культура разработки меняется: теперь ML-инженер — это специалист, который разрабатывает свой ML-сервис на всем пути от общения с бизнесом до продакшена. Этот подход хорошо описывает принцип «you build it, you run it»: кто построил модель, тот её и запускает. Как раз в этом здорово помогает CI/CD.
Обзор Kwasm — оператора для запуска WebAssembly-приложений в кластере Kubernetes
Продолжаем обозревать инструменты, которые позволяют использовать WebAssembly-приложения в кластере Kubernetes. В этот раз пробуем оператор Kwasm: установим его в кластер, развёрнутый с помощью kind, и запустим тестовое приложение.
Стилистический анализатор: синхронизация объявлений и определений static функций
Представлена утилита-надзиратель, что последовательность определения static функций совпадает с последовательностью объявляения static функций.
Kubernetes на сковородке: готовим самые вкусные кластеры
Сегодня технологические компании стоят перед выбором без выбора: если перед нами не стоит узкоспециализированная задача, то мы по дефолту идем работать в Kubernetes. Эта система универсальна и проверена годами, поэтому обойтись без нее практически невозможно.
Привет! Меня зовут Игорь Титов, я Product Lead системных инженеров в Garage Eight. В этой статье расскажу, что такое контейнеризация, как с ней помогает Kubernetes и почему важно уметь правильно его готовить.
С 80-х по 2024-й: как создавались и оптимизировались CI-тесты
Современные команды разработки тестируют каждое изменение кода перед мержем. Это не просто общепринятая традиция: наряду с ревью кода, это стандарт по умолчанию, применяемый практически во всех кодовых базах компаний. Мы называем его тестами CI (непрерывной интеграции). В результате их внедрения среднестатистическая организация запускает сотни наборов тестов в день.
В прошлом непрерывное интеграционное тестирование было с нами не всегда, в отличие от обычного тестирования. По моим наблюдениям, CI — это результат того, что тестирование всё больше ускоряется. Разберёмся, как это произошло и как тестирование будет ускоряться дальше.
Кривая дорожка или приставными шагами в DevOps
Несмотря на то, что в нынешнее время так называемая профессия DevOps‑инженер стала типовой, а не чем‑то уникальным, всё равно ежедневно многие специалисты пытаются «перейти в DevOps», будь то инженеры технической поддержки, системные администраторы, разработчики, тестировщики и многие другие.
Данная статья рассчитана прежде всего на только «входящих в ИТ» или начинающих ИТ‑специалистов, которые стремятся к получению роли DevOps в будущем или просто хотят расширить багаж собственных знаний, но не знают с чего начать. Опытным специалистам указанные источники могут показаться недостаточно полными в силу того, что они собраны мной субъективно и без нацеленности на узконаправленное изучение одного из направлений, чего должно быть достаточно для начинающих специалистов, но при этом не должно негативно сказаться на желании изучения новых материалов.
Почему в названии статьи фигурирует «кривая дорожка» и «приставные шаги»?
Дорожка кривая, потому что придётся пробовать разные направления и не зацикливаться на чём‑то одном. Приставные шаги — так как Ваш путь в DevOps будет состоять из ряда направлений, в каждом из которых потребуется изучение теории и практики, следующей за ней. Не удастся обойтись чем‑то одним.
Что делать, если баг попал в прод?
Привет, Хабр! Если вы давно искали подборку полезных статей по Git и Gitflow — загляните в блог beeline cloud. Здесь я делюсь личным опытом, погружаюсь в задачи из практики и даю развернутые комментарии на конкретную тему.
И да, меня по-прежнему зовут Николай Пискунов, я руководитель направления Big Data. Сегодня поговорим о том, что делать, если баг, несмотря на усилия тестировщиков, все же попал в прод.
Ближайшие события
Доступ к нескольким подам Kubernetes по протоколу TCP и единственному внешнему IP
В облаке Амвера микросервисы и базы данных пользователей крутятся в кластере Kuberneres. Для доступа к приложениям обычно достаточно использовать nginx ngress controller который чудесно работает с HTTP(S)
трафиком и позволяет получить доступ к сотням сервисов с использованием только одного внешнего IP
адреса. Но, что если пользователь хочет получить доступ к развернутой СУБД не только изнутри кластера, но и извне? Конечно, мы могли бы выдавать каждой СУБД свой белый IP
и создать ClusterIP
, но это привело бы к дополнительным затратам на аренду адресов. В этой статье я бы хотел поделиться элегантным методом проксирования TCP
трафика на основе SNI
сообщений, который позволяет использовать один белый IP
на сотни СУБД.
Оркестраторы в российском DevOps в 2024: рост использования Managed Kubernetes и отечественных дистрибутивов
В конце августа 2024 года вышел подробный отчёт о состоянии DevOps в России. В статье мы расскажем, как себя чувствуют в российском DevOps технологии оркестрации: что среди них лидирует, какие дистрибутивы Kubernetes сейчас используются и какие критерии влияют на выбор оркестратора.
Нотификации в telegram о падении приложения, через графану
Это не анонсированная третья часть. Первые две здесь:
1. Подготовка Django приложения для локальной разработки и деплоя
2. Django приложение в докере. Логирование и мониторинг (тоже в докере)
Не анонсированная, потому что этот способ подходит для любого приложения с метриками через Prometheus, но как настраивать их для конкретного Django приложения можно посмотреть в предыдущих частях.
Глубокие проверки работоспособности Kubernetes
Распределённые системы часто характеризуют как палку о двух концах. В Интернете найдётся множество отличных материалов как об их неприглядных, так и об отличных сторонах. Но этот пост — немного иного характера. Вообще обычно я за распределённые системы в тех случаях, когда они действительно нужны, но в этом посте я расскажу, как одна моя ошибка при работе с распределённой системе привела к далеко идущим последствиям.
Ошибка, которую я допустил, сейчас случается во многих компаниях и может приводить к лавинообразным отказам. Назовём её глубокая проверка работоспособности в Kubernetes.
Цифровая трансформация в России: роль DevOps в новой реальности
Привет Хабр! Меня зовут Евгений Калашников, я CPO «Инженерных инструментов» платформы «Сфера». И сегодня я хочу поговорить о том, как меняется ландшафт цифровой трансформации в России и какую роль в этом играет DevOps. Недавно мы с коллегами провели масштабное исследование российского рынка DevOps, и результаты получились очень любопытными. Мы убедились, что цифровая трансформация сейчас затрагивает буквально все аспекты бизнеса. Компании, которые не успевают адаптироваться к новым реалиям, рискуют безнадёжно отстать. И здесь на первый план выходит DevOps как ключевой фактор, обеспечивающий скорость и гибкость в разработке ПО.
Наше исследование охватило 817 IT-специалистов и руководителей из различных отраслей. Мы опросили представителей крупных компаний, таких как МТС, IBS, Яндекс, Лаборатория Касперского, а также привлекли экспертов из НИУ ВШЭ и других организаций. Интересно, как выглядит современный российский девопс? Заходите под кат.
Пользуемся Docker, не выходя из Go
Привет, Хабр!
Зовут меня Егор, я программирую на Go и в этой статье хочу поделиться информацией про Docker и Golang.
Кто такой Докер? Как заявляет сама компания, Докер — № 1 программа по контейнерезации для разработчиков ПО. В этой статье я не буду объяснять, что это, зачем и почему именно он, для этого есть как офиц. документация, так и хорошие статьи на Хабре. Если кратко — то Докер — это инструмент, который позволяет запускать программы в некой песочнице(контейнере) с целевой ОС — как правило линукс. Самое главное преимущество Докера — это упаковывать все нужное для твоей программы(например: зависимости) в один модуль. И ресурсов эта вещь тратит намного меньше, чем та же виртуальная машина.
Зачем нужен Docker SDK? Самая важная причина — тестирование. Можно собирать метрики, делать редирект трафика, автоподъем контейнеров, анализировать логи в реальном времени, создавать образы и еще кучу всего, что упрощает тестирование. Я постараюсь охватить эти пункты в этой статье.
Путь в GitOps или как мы перевели кластер Kubernetes под управление Argo CD
Всем привет! Если вы работаете с Kubernetes, то, скорее всего, используете kubectl, kustomize или Helm для развёртывания сервисов в кластере. Про последнюю утилиту я уже писал статью — можно посмотреть тут. Тогда я рассказал о своём опыте внедрения этого инструмента для собственных нагрузок и сравнил подходы kubectl apply и helm install.
Управление конфигурацией в Kubernetes может осуществляться с помощью различных инструментов. Помимо Helm, можно использовать просто YAML-манифесты или же kustomize. Для каждого из этих инструментов предусмотрена своя команда.
В данной статье мы рассмотрим подход GitOps для K8s-кластеров и применим такой инструмент, как Argo CD.