Стилистический анализатор: синхронизация объявлений и определений static функций
Представлена утилита-надзиратель, что последовательность определения static функций совпадает с последовательностью объявляения static функций.

Методология разработки программного обеспечения
Представлена утилита-надзиратель, что последовательность определения static функций совпадает с последовательностью объявляения static функций.

Сегодня технологические компании стоят перед выбором без выбора: если перед нами не стоит узкоспециализированная задача, то мы по дефолту идем работать в Kubernetes. Эта система универсальна и проверена годами, поэтому обойтись без нее практически невозможно.
Привет! Меня зовут Игорь Титов, я Product Lead системных инженеров в Garage Eight. В этой статье расскажу, что такое контейнеризация, как с ней помогает Kubernetes и почему важно уметь правильно его готовить.

Современные команды разработки тестируют каждое изменение кода перед мержем. Это не просто общепринятая традиция: наряду с ревью кода, это стандарт по умолчанию, применяемый практически во всех кодовых базах компаний. Мы называем его тестами CI (непрерывной интеграции). В результате их внедрения среднестатистическая организация запускает сотни наборов тестов в день.
В прошлом непрерывное интеграционное тестирование было с нами не всегда, в отличие от обычного тестирования. По моим наблюдениям, CI — это результат того, что тестирование всё больше ускоряется. Разберёмся, как это произошло и как тестирование будет ускоряться дальше.

Несмотря на то, что в нынешнее время так называемая профессия DevOps‑инженер стала типовой, а не чем‑то уникальным, всё равно ежедневно многие специалисты пытаются «перейти в DevOps», будь то инженеры технической поддержки, системные администраторы, разработчики, тестировщики и многие другие.
Данная статья рассчитана прежде всего на только «входящих в ИТ» или начинающих ИТ‑специалистов, которые стремятся к получению роли DevOps в будущем или просто хотят расширить багаж собственных знаний, но не знают с чего начать. Опытным специалистам указанные источники могут показаться недостаточно полными в силу того, что они собраны мной субъективно и без нацеленности на узконаправленное изучение одного из направлений, чего должно быть достаточно для начинающих специалистов, но при этом не должно негативно сказаться на желании изучения новых материалов.
Почему в названии статьи фигурирует «кривая дорожка» и «приставные шаги»?
Дорожка кривая, потому что придётся пробовать разные направления и не зацикливаться на чём‑то одном. Приставные шаги — так как Ваш путь в DevOps будет состоять из ряда направлений, в каждом из которых потребуется изучение теории и практики, следующей за ней. Не удастся обойтись чем‑то одним.

Привет, Хабр! Если вы давно искали подборку полезных статей по Git и Gitflow — загляните в блог beeline cloud. Здесь я делюсь личным опытом, погружаюсь в задачи из практики и даю развернутые комментарии на конкретную тему.
И да, меня по-прежнему зовут Николай Пискунов, я руководитель направления Big Data. Сегодня поговорим о том, что делать, если баг, несмотря на усилия тестировщиков, все же попал в прод.

В облаке Амвера микросервисы и базы данных пользователей крутятся в кластере Kuberneres. Для доступа к приложениям обычно достаточно использовать nginx ngress controller который чудесно работает с HTTP(S) трафиком и позволяет получить доступ к сотням сервисов с использованием только одного внешнего IP адреса. Но, что если пользователь хочет получить доступ к развернутой СУБД не только изнутри кластера, но и извне? Конечно, мы могли бы выдавать каждой СУБД свой белый IP и создать ClusterIP, но это привело бы к дополнительным затратам на аренду адресов. В этой статье я бы хотел поделиться элегантным методом проксирования TCP трафика на основе SNI сообщений, который позволяет использовать один белый IP на сотни СУБД.

В конце августа 2024 года вышел подробный отчёт о состоянии DevOps в России. В статье мы расскажем, как себя чувствуют в российском DevOps технологии оркестрации: что среди них лидирует, какие дистрибутивы Kubernetes сейчас используются и какие критерии влияют на выбор оркестратора.
Это не анонсированная третья часть. Первые две здесь:
1. Подготовка Django приложения для локальной разработки и деплоя
2. Django приложение в докере. Логирование и мониторинг (тоже в докере)
Не анонсированная, потому что этот способ подходит для любого приложения с метриками через Prometheus, но как настраивать их для конкретного Django приложения можно посмотреть в предыдущих частях.

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

Привет Хабр! Меня зовут Евгений Калашников, я CPO «Инженерных инструментов» платформы «Сфера». И сегодня я хочу поговорить о том, как меняется ландшафт цифровой трансформации в России и какую роль в этом играет DevOps. Недавно мы с коллегами провели масштабное исследование российского рынка DevOps, и результаты получились очень любопытными. Мы убедились, что цифровая трансформация сейчас затрагивает буквально все аспекты бизнеса. Компании, которые не успевают адаптироваться к новым реалиям, рискуют безнадёжно отстать. И здесь на первый план выходит DevOps как ключевой фактор, обеспечивающий скорость и гибкость в разработке ПО.
Наше исследование охватило 817 IT-специалистов и руководителей из различных отраслей. Мы опросили представителей крупных компаний, таких как МТС, IBS, Яндекс, Лаборатория Касперского, а также привлекли экспертов из НИУ ВШЭ и других организаций. Интересно, как выглядит современный российский девопс? Заходите под кат.

Привет, Хабр!
Зовут меня Егор, я программирую на Go и в этой статье хочу поделиться информацией про Docker и Golang.
Кто такой Докер? Как заявляет сама компания, Докер — № 1 программа по контейнерезации для разработчиков ПО. В этой статье я не буду объяснять, что это, зачем и почему именно он, для этого есть как офиц. документация, так и хорошие статьи на Хабре. Если кратко — то Докер — это инструмент, который позволяет запускать программы в некой песочнице(контейнере) с целевой ОС — как правило линукс. Самое главное преимущество Докера — это упаковывать все нужное для твоей программы(например: зависимости) в один модуль. И ресурсов эта вещь тратит намного меньше, чем та же виртуальная машина.
Зачем нужен Docker SDK? Самая важная причина — тестирование. Можно собирать метрики, делать редирект трафика, автоподъем контейнеров, анализировать логи в реальном времени, создавать образы и еще кучу всего, что упрощает тестирование. Я постараюсь охватить эти пункты в этой статье.

Всем привет! Если вы работаете с Kubernetes, то, скорее всего, используете kubectl, kustomize или Helm для развёртывания сервисов в кластере. Про последнюю утилиту я уже писал статью — можно посмотреть тут. Тогда я рассказал о своём опыте внедрения этого инструмента для собственных нагрузок и сравнил подходы kubectl apply и helm install.
Управление конфигурацией в Kubernetes может осуществляться с помощью различных инструментов. Помимо Helm, можно использовать просто YAML-манифесты или же kustomize. Для каждого из этих инструментов предусмотрена своя команда.
В данной статье мы рассмотрим подход GitOps для K8s-кластеров и применим такой инструмент, как Argo CD.
Обещанная вторая часть. Первая часть здесь.
Основной идеей было настроить все с минимальным количеством ручных действий для работы легирования и мониторинга.
Одно ручное действие все же потребуется — указать хост (или ip), по которому Prometheus будет собирать метрики. В остальном все заработает просто по docker-compose up.
У нас в организации есть обязательное правило оформления исходников, которое звучит так:
Порядок объявления С-функций должен совпадать с порядком определения С-функций.
В этом тексте представлен алгоритм работы консольной программы, которая автоматически выявляет нарушения этого странного правила.

AndroidManifest.xml - это центральный элемент каждого Android-приложения, который определяет его структуру, функции и взаимодействие с системой. Этот файл играет ключевую роль в процессе разработки и развертывания приложений, поскольку он управляет различными аспектами работы приложения, такими как разрешения, активности, службы и многое другое.
В данной статье мы подробно рассмотрим структуру и значение AndroidManifest.xml, а также его значимость. Информация взята у преподавателя по Android-разработке из онлайн-университета Urban.
Структура AndroidManifest.xml
Давайте начнем с анализа структуры AndroidManifest.xml:

Пол Батлер, инженер-программист и создатель Jamsocket, уверяет, что Kubernetes — это как сложный, но увлекательный пазл: его можно ненавидеть, но без него не обойтись. Мы перевели его статью, в которой он рассказал, какие ресурсы K8s использует с удовольствием, а от каких предпочитает держаться подальше. В этом руководстве ненавистника вы найдете ценные советы, как извлечь максимум пользы из Kubernetes.

Всё уже придумано, просто настрой под себя и пользуйся.
Всем привет, я Дмитрий Валеев — DevOps инженер в команде разработки фреймворка для тестирования устройств на заводах Аквариус. И это моя первая маленькая статья на Хабр:)
В любом проекте настаёт день «икс», когда вы понимаете, что необходимо внедрять какое‑либо версионирование. Вот и в нашем случае настал такой момент. Вариант с хэш‑коммитами казался просто хаосом и нужно было привести вид компонент в порядок.

На нашей недавней конференции GigaConf мы много рефлексировали о том, как будет развиваться направление DevOps. Оно немыслимо без инструментов. Поэтому я расскажу о том, как мы внедряем в Сбере практики GitAIOps, какие совершили ошибки и извлекли уроки, какие сделали выводы по поводу внедрения ИИ. Сегодня на всех углах рассказывают, как ИИ поможет разработчикам, но мало кто говорит о его помощи DevOps-инженерам. Надо это исправить.
Меня зовут Юрий Спорынин, в ИТ я более 20 лет. Начинал с разработки, своими руками создавал процессинговую систему для интернет-эквайринга. В 2016 году я перешёл в Сбер, где мы в 2018 году внедрили платформу в «Сбербанк Онлайн». Сейчас среди моих задач — кластер DevOps-инструментов, о которых мы отчасти сегодня поговорим.
Поговорим про настройку приложения для двух сред «разработки» local и условного прода. Локально приложение будет запускаться с установкой всего необходимого на компьютер, то, что дальше я буду именовать продом будет представлять из себя запуск через docker-compose.
Что это за приложение по сути значения не имеет, из особенностей — там будет celery поверх redis и Postgres, как персистентное хранилище. Код приложения можно посмотреть здесь.
Настроим переменные окружения для двух разных сред и подготовим код под это.
Настроим логирование через Loki и Grafan-у. Настроим мониторинг через Prometheus в ту же Grafan-у.

Так как версионирование через плагин nx-semantic-release происходит путем анализа изменений по связанным Typescript-импортам, то нам нужно минимизировать эти изменения, для этого в проект подключаем lint-staged и добавляем строгости в Typescript-код.