Рубрики
Uncategorized

Тестирование инфраструктуры в ✨ Corp, история DevOps

Изучение сотрудничества посредством тестирования в повествовательной форме с помощью фиктивной компании. Tagged с тестированием, DevOps, Collaboration, SRE.

Джордж, младший SRE и Соня, старшие SRE сотрудничают на первом этапе миграции инфраструктуры. Поскольку они оба работают удаленно, они соединяются с использованием Visual Studio Code и Живая обмена так что они могут совместно редактировать и отлаживать, а также сохранять все свои собственные функции и предпочтения.

Они запускают Zoom Meeting и опубликуйте детали подключения в их командном канале, чтобы любой мог присоединиться во время своих сессий спаривания.

«Я клонировал Packer здесь на своей местной машине», — сказала Джордж, открывая папку в коде VS, зная, что Соня может следовать за ее взглядом. «Давайте начнем с филиала. Мы должны назвать это после номера выпуска из Проектная доска , Правильно?»

«Великолепно», сказала Соня. «Это идеально.»

«Итак, я взял существующий шаблон json здесь. Я удалил всю дополнительную настройку и сделал базовый шаблон. Мы можем повторно использовать этот базовый шаблон для настройки, а не копировать индивидуальный шаблон », — объяснил Джордж.

«Это отличная идея», — сказала Соня. » Давайте продолжим и сделаем это изменение, чтобы у нас было Отдельные коммиты, если это необходимо . «

«Вы знаете, мне интересно, напишем ли мы немного кода inspec для проверки на нашу инфраструктуру сейчас, тогда мы сможем использовать те же тесты для проверки наших приложений на экземплярах облачных поставщиков. Таким образом, мы можем повысить нашу уверенность в том, что приложение работает независимо от того, находится ли оно в Prem или в облаке »,-прокомментировал Джордж. Убирая руки с клавиатуры, он посмотрел прямо на экран, остановившись в кодировании.

«Я не слышал о Inspec. Что это? » — спросила Соня, переходя на вид с камеры, поскольку она хотела сосредоточиться на том, что говорил Джордж.

«Это инструмент тестирования для инфраструктуры, в основном рекламируемый как способ соответствовать требованиям в качестве кода, и он полностью может это сделать, но я нашел очень полезным использовать его для тестов против моей инфраструктуры в целом, просто чтобы определить, я. В.В. Например, если бы я настраивал HTTP -сервер, я мог бы использовать Inspec http resource Чтобы подтвердить конкретную конечную точку. Поэтому, как разработчики пишут единичные и интеграционные тесты для их кода, мы можем написать тесты для нашей инфраструктуры », — пояснил Джордж.

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

«Ну, одна из вещей, которые я делал, когда начинал работать над этим проектом Packer, было добавить действие проверки проверки после действия Packer Build, и…» начал Джордж.

» Э-э, и? »-спросила Соня.

» Что ж, мне было очень полезно заявить явно мои ожидания того, что изображение должно включать, когда оно было построено … »

«Но, если вы добавляете Inspec к изображению, не может ли это изменить потенциальные взаимодействия с существующими зависимостями», прервала Соня.

Пожав голову, объяснил Джордж. «Нет, он работает извне против сборки, и таким образом мы можем проверить изображение, прежде чем опубликовать изображение».

«О, это довольно интересно. Таким образом, мы могли бы устранить некоторые из известных проблем со сборками и иметь способ собрать, какую информацию мы уже проверяем. Ой! Таким образом, Эрин из Security Engineering также может смотреть непосредственно на репо и посмотреть, что мы проверяем. Это может упростить то, как мы проводим аудиты безопасности », — сказала Соня. Она была чувствительна к временным ограничениям, которые имели график, хотя аудиты безопасности обычно занимали несколько дней. Увеличьте эти дни в каждой части этого проекта, и время, сэкономленное в ручных проверках, это может привести к тому, что время, потраченное на изучение нового инструмента.

«Можем ли мы пройти через то, что у вас есть до сих пор?» она спросила.

Джордж переключился на код VS и поднял Профили каталог и открыл default_spec.rb файл. «Это всего лишь набор тестов по умолчанию для работы с изображением. Прямо сейчас это довольно просто. У меня есть тестирование, существует ли пользователь по умолчанию на изображении, и есть ли у нас доступ к системе. Он также проверяет, чтобы убедиться, что NTP работает, потому что некоторые из наших сервисов, чувствительных к времени. Способ объявления теста находится в форме описания:

describe service('service_name') do
  it { should be_installed }
  it { should be_enabled }
  it { should be_running }
end

Итак, для нашей услуги NTP, у меня есть:

describe service('ntp') do
  it { should be_enabled }
  it { should be_running }
end

Если что -то терпит неудачу, изображение не загружено в репозиторий. Есть много разных ресурсов. Это Руби Поэтому нетрудно создавать сложные ресурсы », — сказал Джордж с энтузиазмом.

«Это действительно круто. Давайте поделимся этим с остальной частью команды SRE, так как я думаю, что для нас будет действительно полезно принять практику тестирования нашей инфраструктуры иначе, чем мы сейчас. Похоже, что сценарий оболочки, который мы в настоящее время используем для проверки экземпляров, может быть заменен на это даже!

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

«О, нет! Я пока не мог поделиться этим, это не завершено », — сказал Джордж.

«Это полностью готово к тому, чтобы быть разделенным. Я думаю, что на стадии мы хотим получить дополнительные отзывы от команды, чтобы посмотреть, что они думают об этом », — сказала Соня.

«Я думал, что встреча была скорее для демонстрации того, что люди достигли на неделю», — сказал Джордж.

«Нет. Я признаю, что иногда это может выглядеть так, но на самом деле это способ поделиться новыми идеями и распространения обучения по всей команде. Мы не можем быть специалистами, и мы не можем узнать обо всем. Но это способ распространять знания и понимание как можно больше, а также поощрять людей экспериментировать, как вы здесь. Поделившись такого рода возможным изменением инструмента и процесса рано, мы можем помешать людям удивляться, внедрив готовые запеченные изменения », — объяснила Соня.

«Это хороший момент, я так не думал об этом», — сказал Джордж.

«Я обновлю повестку дня встречи команды на неделю, и вы можете поделиться своей работой в среду. Давайте продолжим и рассмотрим это изменение упаковка для базового изображения, чтобы мы могли получить запрос на привлечение », — сказала Соня.

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

git commit -m "Copied customized template to a new base template.


This introduces a new base template that can be used to build 
a base Sparkle Corp image with all the security mandated packages, as well as monitoring and minimum version of shared common packages.

This new base template can also be used as a starting point for new customized images.

Co-authored-by: george 
Co-authored-by: sonia "

«Отлично, коммит объясняет контекст для изменений, которые вы внесли, а также почему и как. Таким образом, мы можем оглянуться назад и знать, о чем мы думаем здесь », — сказала Соня.

После поддержки Сони, Джордж представил короткое руководство о Inspec своей команде, а также его образцы тестов против базовых изображений Packer. Все в команде SRE были действительно взволнованы и по очереди по очереди с Джорджем, чтобы начать создавать профили для каждой из различных услуг. Как команда уже использовалась Шеф -повар Управлять их Инфраструктура как код Картирование испытательных ресурсов казалось действительно бесшовным. Кроме того, команда может использовать Профили соответствия Доступно в сообществе, чтобы провести более строгие тестирование безопасности.

Подключение этих тестов к своей системе непрерывной интеграции и непрерывного развертывания позволило команде SRE ускорить тестирование инфраструктуры, которую они создают, и повышает уверенность в том, что системы настроены правильно.

Оригинал: «https://dev.to/sigje/testing-infrastructure-at-corp-a-devops-story-47a9»