Автоматизация тестирования, которая не ломается при первом редизайне

Автоматизация тестирования, которая не ломается при первом редизайне
Как мы проектировали, внедряли и поддерживаем живую систему автотестов
Система управления версиями файлов
Автоматизация тестирования, которая не ломается при первом редизайне
Как мы проектировали, внедряли и поддерживаем живую систему автотестов
Всем привет! С вами снова Иван Протченко — инженер из команды Cloud.ru. Как вы знаете, cloud native образы помогают обеспечить предсказуемость, масштабируемость и отзывчивость приложений в облаке. В этой статье я по шагам покажу процесс подготовки таких образов с помощью Packer и QEMU в сочетании с мощным CI/CD-решением — GitLab CI.
Почему именно эти инструменты? Packer от HashiCorp поможет автоматизировать процесс создания конфигурируемых и воспроизводимых образов, QEMU обеспечит гибкость и производительность за счет эмуляции и виртуализации, а интеграция с GitLab CI позволит настроить надежный и повторяющийся пайплайн, который в разы упростит процесс сборки образов. Welcome!
Привет, Хабр! Меня зовут Максим Рогоза, и последние 7 лет я работаю корпоративным архитектором в крупнейших компаниях России. В настоящее время я занимаюсь стратегическим IT‑консалтингом в компании Аксеникс, где помогаю крупным организациям выстраивать эффективную IT‑архитектуру.
Недавно я рассказывал вам о подходе Architecture as Code с использованием PlantUML. Сегодня хочу поделиться опытом хранения моделей ArchiMate в системе контроля версий Git и автоматизации рабочих процессов для совместной работы над архитектурой предприятия.
Хабр, привет! Меня зовут Барилко Виталий, я разработчик / директор / главный идеолог программы Управление IT-отделом 8 и работаю в компании Софтонит. Мы разрабатываем ПО для автоматизации ИТ-отделов. Сегодня хочу поговорить про conventional commits и про свой личный опыт работы с коммитами. На самом деле это бездонная тема, о которую сломано много копий. Кто-то пишет и делает коммиты так, кто-то эдак. В посте попробую поразмышлять о том, как делать не надо и о придуманных на этот счет правилах и договоренностях.
Начинающие (а иногда этим грешат и опытные) разработчики, не до конца понимают принципы создания и работы над коммитами в git. Тут имеется ввиду не механика и команды типа “git commit …”, а общие и глобальные вещи. Например:
1. А когда делать коммиты?
2. Что в них писать?
3. Есть ли какие-то общие правила для их создания?
4. Как не надо коммитить?
Если ты начинающий разработчик, то эта статья точно тебе пригодится. А если у тебя огромный опыт и ты думаешь, что тебя уже ничем не удивить, то… Не будем торопиться… Давай проверим?
Ansible — мощный инструмент автоматизации, но его push-модель не всегда удобна. Когда требуется централизованный контроль большого числа серверов, могут возникнуть проблемы:
📌 Нестабильные сети → клиент может быть недоступен во время обновления.
📌 Сложности с NAT → серверы находятся в закрытых "серых" сетях.
📌 Перемещаемые устройства → подключаются к сети только время от времени.
Разбираемся, как ansible-pull решает эти проблемы на стенде, а также настраиваем CI/CD для тестирования и совместной разработки Ansible-ролей
Жизнь каждого человека начинается со слова "мама".
Дорогой читатель, твой путь начнется со слова "git".
И как первые шаги в жизни ведут нас к новым открытиям, так и первые команды Git открывают двери в мир бесконечных возможностей. Каждый коммит — это шаг вперед, каждая ветка — это путь к новым горизонтам, а каждое слияние — это гармония между прошлым и будущим. Пусть твой путь в мире Git будет наполнен творчеством, инновациями и бесконечным стремлением к совершенству.
Мы с радостью объявляем о новом релизе GitLab 17.9 с GitLab Duo для самостоятельного развёртывания, доступным широкой аудитории, возможностью создавать несколько сайтов GitLab Pages с параллельными развёртываниями, возможностью добавлять файлы проекта в Duo Chat из VS Code и IDE JetBrains, автоматическим удалением старых конвейеров и многими другими фичами!
Привет, Хабр! Меня зовут Даниил Мильков, я старший C# разработчик. Сразу хочу предупредить читателей, что про взаимодействие с k8s здесь сказано достаточно мало, разве что в разделе Kubernetes и PVC. На эту тему будет отдельная статья.
Начнём. Однажды наша команда решила перейти с TeamCity на GitLab CI…
Со старта нашего проекта Polymatica EPM (бизнес‑платформа для автоматизации процессов стратегического планирования и бюджетирования) мы решили: код должен покрываться тестами. Проект построен на стеке FastAPI + Poetry + Pytest. Из‑за особенностей проекта тесты, в основном, функциональные. Все шло хорошо, команда росла, тесты писались, но запускались только на локальной машине перед коммитами. Наступил момент, когда нужно было внедрить автоматический прогон тестов на этапе Merge Request (MR).
На тот момент у нас был собственный GitLab и настроенный CI/CD, но ресурсы DevOps были ограничены. Поэтому задачу пришлось решать силами разработчиков. Меня зовут Дмитрий Богданов, я старший бэкенд‑разработчик, и в этой статье расскажу, как мы оптимизировали запуск тестов, с какими проблемами столкнулись и почему выбрали именно базовый образ для CI/CD.
Какие настройки git config
сейчас следует устанавливать по умолчанию? Ниже рассмотрены избранные настройки, менять которые не стесняются даже разработчики самого Git.
Несколько недель назад я написал о настройке Git help.autocorrect и поведал странную историю о том, как её значение стали задавать в децисекундах.
Эта статья заставила меня поразмыслить и о других настройках git config, вероятно, не известных широкому кругу пользователей. Возможно, для этих настроек стоит задать по умолчанию иные значения, чем действуют сейчас.
В этом посте я разберу некоторые (пожалуй, малопонятные) настройки Git, которые сам активировал во всех моих проектах. Я подробно расскажу о них, поясню, как они действуют, и почему их, пожалуй, стоит выставить по умолчанию.
Также оказалось, что большинство из изложенных здесь знаний я почерпнул из общения с людьми, чей повседневный труд заключается в поддержке ядерной базы кода Git.
Сегодня Yandex B2B Tech в режиме технического превью открывает пользователям доступ к SourceCraft — платформе для разработки полного цикла, которая помогает создавать исходный код, управлять версиями, заниматься тестированием, сборкой, деплоить и сопровождать программные продукты. Её история началась в Yandex Infrastructure — эта команда развивает инструменты для создания и развёртывания приложений и сервисов внутри Яндекса и поддерживает инфраструктуру, на которой работают большинство разработчиков компании. Во многом поэтому значительная часть идей для новой платформы возникла благодаря догфудингу — практике использования собственного продукта командой его создателей.
Вместе с разработчиками платформы Ольгой Лукьяновой @ollka_lukianova и Сергеем Захарченко @neofelis узнаем, каково это — делать платформу для разработки, одновременно используя эту же самую платформу для написания кода, тестирования, проверки пул‑реквестов, сборки и деплоя.
Привет! Меня зовут Кирилл, я инженер по разработке инфраструктуры в компании YADRO. Представьте: вы разработчик программного обеспечения в крупной компании и вам потребовалось создать новую виртуальную машину. Как это сделать? Пожалуй, многие ответят, что можно запросить ее через отдельную задачу на ответственную команду DevOps-инженеров, потом подождать, пока за нее возьмутся и вручную создадут ВМ с помощью OpenStack.
Звучит просто, но это только часть пути. От глаз разработчика скрыты шаги по добавлению ВМ в inventory, определению нужных конфигурационных параметров, прогону ansible-ролей и сопутствующей настройке. Иногда и на этом процесс не заканчивается, ведь люди привыкли пользоваться доменными именами, а не ip-адресами. Вручную этот процесс занимает много времени и не лишен влияния человеческого фактора, поэтому возникает необходимости в автоматизации.
Для работы с OpenStack удобно использовать Terraform. Хотя компания Hashicorp прекратила свою деятельность на территории России, нам все еще доступен open source-форк под говорящим названием OpenTofu. К сожалению, достаточно подробной инструкции по работе с ВМ через OpenTofu на просторах интернета найти не удалось, поэтому я и решил создать ее сам, сделав акцент на широте возможностей инструмента.
Как же иногда хочется закинуть коммиты «Remove debug log», «fix» или «fix fix fix». Такие коммиты как грязные носки под кроватью: их не видно, пока не придёт ревьюер с пристальным взглядом или, что еще хуже, потенциальный работодатель, решивший посмотреть на ваш профиль github.
К счастью, Git предлагает два супер-инструмента для того, чтобы история коммитов выглядела так, будто ты всегда знаешь, что делаешь: git commit --fixup и git rebase --autosquash. И сегодня мы разберем на практике как это применять.
Мы с радостью объявляем о новом релизе GitLab 17.8 с улучшенной безопасностью репозиториев с контейнерами, списком развёртываний релиза, отслеживанием экспериментов по машинному обучению, размещёнными обработчиками заданий на Linux для GitLab Dedicated и многими другими фичами!
В процессе роста нашей инфраструктуры мы столкнулись с тем, что Single Node (all-in-one) инсталляции GitLab стало недостаточно. Производительность начала снижаться, а любое обновление или сбой сервиса приводило к простою всей разработки. Поэтому мы приняли решение перейти на отказоустойчивый GitLab Cluster с возможностью бесшовных обновлений (zero downtime upgrade).
Для автоматизированного развёртывания и управления кластером мы выбрали Ansible.
Здесь вы узнаете, как повысить свой уровень в OSINT, будут приведены примеры и готовые поисковые запросы.
(Вы можете дополнить меня, если я что-то забыл в комментариях).
Представьте ситуацию: вы нашли критический баг в проекте, исправили его в feature-ветке, но до полного слияния ещё далеко. Или вам срочно нужно перенести одно конкретное изменение из текущей ветки в другую. В таких случаях git cherry-pick становится вашим секретным оружием.
Когда возникла необходимость в VPN я решил арендовать под это дело отдельный VPS сервер. Мощности были взяты с небольшим запасом для разных экспериментов и личных мини проектов. Обычно для небольших веб приложений я использовал github pages, но у него есть очевидные минусы: некоторые вещи не хочется светить в паблике, иногда нужен полноценный сервер, а не простая статичная html страница. Для сервера были попытки использовать яндекс облако (есть бесплатные лимиты), но разбираться с инфраструктурой лямбд, апи гэтвэев, s3 хранилищ и прочим оказалось довольно накладно, особенно когда что то надо поправить раз в месяц, а то и раз в год.