Рубрики
Uncategorized

Что такое DEVOPS: Непрерывная интеграция с Azure DevOps 👨💻✔

Привет! Если вы не проверили предыдущий пост от этой серии, я настоятельно рекомендую ему … Теги с DevOps, Azure, Development, Agile.

Что 🤬 devops (2 части серии)

Привет! Если вы не проверили предыдущий пост из этой серии, я настоятельно рекомендую ему получить большую картину.

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

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

Это неправильно в так много способов, просто указывать на несколько, во-первых, почему, черт возьми, твой босс злой панды? Теперь … серьезно, вы никогда не должны совершать что-то в любом месте, даже не тестируя локально на вашей машине. Если он не работает на вашей машине, не ожидайте магически работать где-то еще.

Никто не должен уметь подтолкнуть непосредственно к освоению, не передавая какой-то тест и обзоры и окончательные одобрения, у вас должна быть стратегия ветвления, которая ясна и известна всеми членами команды.

Но мы можем сделать это лучше и на самом деле иметь возможность доставлять наш код быстрее и безопаснее.

В Сэм Гучкенхеймер слова

Непрерывная интеграция (CI) — это процесс автоматизации сборки и тестирования кода каждый раз, когда члена команды совершают изменения в контроль версий. CI призывает разработчиков поделиться своими тестами кода и единиц, объединяя их изменения в репозиторий общих версий после каждой небольшой завершения задач. Code Code вызывает автоматическую систему сборки, чтобы захватить последний код из общего хранилища и создавать, тестировать и подтвердить полную ветку Master (также известный как багажник или основной).

Таким образом, вся идея непрерывной интеграции состоит в том, что вы всегда собираете ваше приложение в качестве изменения вашего репозитория кода, поэтому все знают, если что-то не удается, вы можете понять, какие изменения сломали код, который выдвинул изменения, находить ошибку и решить Это быстрее.

Принятие методов DEVOPS не избегает провала, вы ошиблись, если вы думали, что, приняв практика DevOps, ничего не пойдет не так, вместо этого … Вы более распространены, чтобы не провалиться больше, чем раньше, но вы пройдете быстрее, и вы тоже учитесь быстрее.

Как мы обсудили ранее, существует несколько цветов и вкусов инструментов и продуктов, которые помогут вам принять практики DEVOPS, такие как непрерывную интеграцию, но мы будем использовать Azure DevOps, что это то, что мне нравится больше всего.

Azure DevOps Набор услуг Microsoft представляет свои идеи в производство. У него есть все необходимое для планирования и организовать свою работу с Azure ob, единым источником для всех ваших репозиториев в Azure Repos, отличной CI/CD Service Service Azure,

Вам не нужно использовать все это, вы можете выбрать любой, что вам может понадобиться, если у вас уже есть свой исходный код где-то еще, как GitLab, вам не нужно использовать Azure Reppos, или, возможно, вы или ваша компания уже вложены В технологиях автоматизации CI/CD, опять же, вам не нужно использовать лазурные трубопроводы. Просто выберите то, что вам нужно, они отлично работают, но когда вы используете в целом, вы можете использовать лучшую прослеживаемость вашего кода, вы можете найти ошибку и решить ее в записи.

Мы собираемся создать трубопровод CI для приложения, созданного при поддержке ASP.NET и реагировать, каждый раз, когда мы делаем изменение нашего REPO CODE, мы собираемся построить образец докера.

  • Azure подписка

    • У вас еще нет одного? Создайте подписку на Azure бесплатно Отказ Получить кредиты, которые можно использовать для попытки платных услуг Azure. Как только вы потребляете все ваши кредиты, вы можете сохранить учетную запись и использовать все бесплатные Azure Services и функции.
    • Если вы являетесь подписчиком Visual Studio, претендовать на ваши преимущества Отказ Подписка на визуальную студию дает доступ к ежемесячным кредитам, которые вы можете использовать на Azure Services.
    • Ты студент? Создать Azure Student Account и получить бесплатные кредиты.
  • Счет GitHub

Во-первых, нам нужен какой-то код и хранилище для работы, я буду использовать Github в качестве моего репозитория кода, чтобы показать вам, что вам не нужно использовать Azure Repos, если у вас уже есть существующий репозиторий.

Для этой демонстрации я буду использовать проект с открытым исходным кодом Microsoft WindwindTraders, это фиктивный интернет-магазин, который Вы можете внести свой вклад в на Github. Проверьте веб-сайт в прямом эфире Отказ

Обязательно вилить репо, чтобы следовать вдоль

Microsoft/TailwindTraders-сайт

Сайт Tradwind Traders

Вы можете взглянуть на наш веб-сайт Live, следующий за этим адресом: https://tailwindtraders.com.

Для этой демонстрации мы построили несколько потребительских и линейных бизнес-приложений и набор бэкэндов. Вы можете найти все репозитории в следующих местах:

С помощью следующего шаблона ARM вы можете автоматизировать создание ресурсов для этого сайта.

Когда вы развертываете этот сайт для Azure, вы можете определить Отдохнуть Вы хотите использовать в случае, если у вас есть развертывание собственной бэкэнды. По умолчанию настроен общедоступная среда Backend, предоставленная Microsoft.

Примечание. Вы можете изменить инструментарий of Приложение Insight который настроен по умолчанию.

Если вы хотите обновить приложение, чтобы использовать свой собственный Backend , набор APIBASEURL

Вы могли бы просто отправиться в лазурные трубопроводы и создать строительный трубопровод в dev.azure.com Но сегодня мы начнем с GitHub, чтобы показать этот великий опыт.

Перейдите к Marketplace Github и поиск лазурных трубопроводов (не действий, мы поговорим об этом на следующих постах)

Затем установите расширение и дайте ему доступ к существующему репозиторию.

Теперь нам нужно назначить организацию и проект, если у вас нет, вы можете полностью создать их на этом шаге. Имейте в виду, что организации — это просто группировки проектов, вы можете иметь много проектов внутри организации.

Обратите внимание, что лазурные трубопроводы уже знают, что мы хотим интегрировать наш репозиторий из GitHub, это потому, что мы использовали расширение с рынка GitHub, поэтому выберите Repo.

Пришло время создать определение нашего сборки! Azure DevOps по умолчанию предлагает много разных шаблонов, готовых к использованию, чтобы мы могли не начать с нуля и быть более продуктивным.

Выберите или искать шаблон Docker

Он попросит вас указать путь DockerFile вашего приложения, но что такое DockerFile, чтобы поставить его просто, DockerFile — это как инструкция рецепта поваренной книги, где он указывает каждый шаг, чтобы скомпилировать ваше приложение. У нашего проекта уже есть DockerFile, который указывает задачи, такие как копирование каталогов, и запущенные команды, такие как NPM и Dotnet, он также указывает, какое изображение Docker использовать в этом случае, Docker Alpine.

FROM node:10-alpine as build-node
WORKDIR /ClientApp
COPY ClientApp/package.json .
COPY ClientApp/package-lock.json .
RUN npm install
COPY ClientApp/ . 
RUN npm run build

FROM microsoft/dotnet:2.2.100-preview3-sdk-stretch as build-net
ENV BuildingDocker true
ENV ASPNETCORE_ENVIRONMENT=Development
WORKDIR /app
COPY *.csproj .
RUN dotnet restore
COPY . .
RUN dotnet build
RUN dotnet publish -o /ttweb

FROM microsoft/dotnet:2.1-aspnetcore-runtime as runtime
WORKDIR /web
COPY --from=build-net /ttweb .
COPY --from=build-node /ClientApp/build ./ClientApp/build
ENTRYPOINT [ "dotnet","Tailwind.Traders.Web.dll" ]

Для нашего проекта путь является источником/хвостом. Трейдеры. Web/Dockerfile

Нажмите «Проверьте и настроить», и он будет генерировать следующее определение YAML для вашего конвейера сборки, он содержит каждый шаг, который содержит каждый шаг, который будет выполняться, чтобы скомпилировать ваше приложение, в нашем случае нам просто нужна одна задача, Docker Build, указывая нашу DockerFile дорожка.

Ваш код YAML должен выглядеть так

# Docker
# Build a Docker image 
# https://docs.microsoft.com/azure/devops/pipelines/languages/docker

trigger:
- master

resources:
- repo: self

variables:
  tag: '$(Build.BuildId)'

stages:
- stage: Build
  displayName: Build image
  jobs:  
  - job: Build
    displayName: Build
    pool:
      vmImage: 'ubuntu-latest'
    steps:
    - task: Docker@2
      displayName: Build an image
      inputs:
        command: build
        dockerfile: 'Source/Tailwind.Traders.Web/Dockerfile'
        tags: |
          $(tag)

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

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

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

Если все идет как ожидалось, когда вы вернетесь, вы получите хороший обзор каждой задачи, отмеченной зеленым билетом ✔, и красивая электронная почта в вашем почтовом ящике, сказав, что [Построить успешно] ура! 🙌.

Поздравляю! 🎉 Вы просто настроили непрерывную интеграцию для вашего проекта! Так что случится сейчас? Для всех преданных изменений, приходящих в нашу главную филиал, появится новый сбор на сборку, обеспечивая то, что мы отправляем на наше репо, не нарушают наше приложение.

Перейдите на свой сборщик сборки и нажмите кнопку «Три точки», вы увидите опцию, называемый значком состояния, это индикатор, который вы можете показывать в файле Readme Project, чтобы все знали о состоянии сборки.

Скопируйте разметки образца и вставьте его в файл readme.md, зафиксируйте это изменение на свой репозиторий и посмотрите, что происходит на вашем конвейере сборки.

Вуаля! Теперь у вас есть постоянная интеграция для вашего проекта GitHub!

Мы начали говорить о проблемах, которые приходят с непрерывной интеграцией для наших проектов, мы охватывали некоторые концепции за CI, и почему это важно на DevOps.

Я познакомился с вами Azure DEVOPS, мы просто переехали в одном конкретном обслуживании, лазурных трубопроводах, а также более конкретным, построить трубопроводы, которые являются нашими CI. Мы взяли существующее приложение, написанное в ASP.NET и реагировать и построить простой трубопровод с использованием шаблона Docker за считанные минуты.

Наконец, после настройки нашего CI мы проверили, что секунды после совершения нового кода на GitHub автоматически запускали новую сборку на Azure DEVOPS, заканчивая наш цикл CI.

Это просто простая демо, это не готовая к производству CI ни в коем случае, но я надеюсь, что это поможет вам начать.

В следующем эпизоде мы охватим, как взять то, что мы только что собрали, и доставили его на Azure через релиз-трубопровод 🚀☁ Как мы глубоко погрузились в непрерывную доставку, оставаться настроек!

Что 🤬 devops (2 части серии)

Оригинал: «https://dev.to/maurocon3ras/what-the-is-devops-continuos-integration-with-azure-devops-44gc»