Continuous Delivery для ASP.NET MVC
проекта под Linux
Станислав Столбов
Byndyusoft.com
vk.com/sastolbov
MICROSOFT LINUX
12-я конференция .NET разработчиков
15 мая 2016
dotnetconf.ru
2
Зачем автоматизировать
развертывание ПО?
Ручное развертывание:

Не надежный, часто меняющийся процесс

Поддержка документации для ручного процесса

Требует навыки специалиста для чтения документации

Зависит от квалификации исполнителя

Рутинный процесс, провоцирующий ошибки

Процесс проверки развертывания долгий → дорогой

Сложность аудита процесса развертывания
3
Continuous Delivery

Автоматизация рутинного процесса
непрерывной доставки изменений ПО в
разные среды

Прозрачность процесса → ↓ошибок

Масштабируемость

Высокая скорость доставки изменений

Спокойствие разработчика
4
Конвейер развертывания
Build Tests Deploy
Source
Control
Codding Feedback
5
Инструментарий

Visual Studio (или любой другой инструмент
разработчика)

github.com (или иная система контроля версий)

TeamCity (build + test + deploy)

Docker (Запуск приложения в контейнере) – Linux Ubuntu
6
Конвейер развертывания
Teamcity
Build+tests+deploy
DockerGitHub
Visual
Studio
Feedback
7
.Net Core 1.0

ASP.NET 5 is being renamed to ASP.NET Core 1.0

.NET 5 is being renamed to .NET Core 1.0

.Net становится платформо-независимым

OpenSource

Больше возможностей

На текущий момент не Production версия,
продолжают разработку
8
ASP.Net Core 1.0 особенности

Новый Web-server Kestrel

Кросс-платформенный, компактный,
более ориентирован на облачные
хостинги

Изменена файловая структура

Новые программы для компиляции и
запуска.
9
DNVM , DNU, DNX

DNVM – The .NET Version Manager

DNX – The .NET Execution Environment

DNU – .NET Development Utilities

DNVM install -version...
DNVM list

DNU restore, build

DNX -p project.json web
10
Docker

Открытая платформа для разработки, доставки и
эксплуатации приложений

Безопасный, изолированный запуск приложений

Экономия ресурсов (технических и
административных)
11
Архитектура Docker

Образы (images)

Реестр (registries)

Контейнеры
Docker
Public/Private
Registry
Image (read-only) Meta DataFiles
Container (1) :port
Container (n) :port
...
12
Dockerfile для ASP.Net Core 1.0
FROM microsoft/aspnet:1.0.0-rc1-final
COPY . /app/
WORKDIR /app
RUN ["dnu", "restore"]
EXPOSE 5004
ENTRYPOINT ["dnx", "-p", "project.json", "web"]
13
Как развернуть образ Docker
shell:

Docker build -t <ContainerName> DockerFile

Docker run -d -t <ContainerName>
Kitematic:
14
Linux with Docker Server
containers:
Demo
GITASP.NET Core 1.0 Sample
DEV:81
branch /dev
UAT:82
PROD:80
TEAMCITY
agentTEAMCITY
Server
3 build configs
15
Спасибо за внимание
Станислав Столбов
Byndyusoft
sstolbov@byndyusoft.com
vk.com/sastolbov

Continuous Delivery для ASP.NET MVC проекта под Linux

  • 1.
    Continuous Delivery дляASP.NET MVC проекта под Linux Станислав Столбов Byndyusoft.com vk.com/sastolbov MICROSOFT LINUX 12-я конференция .NET разработчиков 15 мая 2016 dotnetconf.ru
  • 2.
    2 Зачем автоматизировать развертывание ПО? Ручноеразвертывание:  Не надежный, часто меняющийся процесс  Поддержка документации для ручного процесса  Требует навыки специалиста для чтения документации  Зависит от квалификации исполнителя  Рутинный процесс, провоцирующий ошибки  Процесс проверки развертывания долгий → дорогой  Сложность аудита процесса развертывания
  • 3.
    3 Continuous Delivery  Автоматизация рутинногопроцесса непрерывной доставки изменений ПО в разные среды  Прозрачность процесса → ↓ошибок  Масштабируемость  Высокая скорость доставки изменений  Спокойствие разработчика
  • 4.
    4 Конвейер развертывания Build TestsDeploy Source Control Codding Feedback
  • 5.
    5 Инструментарий  Visual Studio (илилюбой другой инструмент разработчика)  github.com (или иная система контроля версий)  TeamCity (build + test + deploy)  Docker (Запуск приложения в контейнере) – Linux Ubuntu
  • 6.
  • 7.
    7 .Net Core 1.0  ASP.NET5 is being renamed to ASP.NET Core 1.0  .NET 5 is being renamed to .NET Core 1.0  .Net становится платформо-независимым  OpenSource  Больше возможностей  На текущий момент не Production версия, продолжают разработку
  • 8.
    8 ASP.Net Core 1.0особенности  Новый Web-server Kestrel  Кросс-платформенный, компактный, более ориентирован на облачные хостинги  Изменена файловая структура  Новые программы для компиляции и запуска.
  • 9.
    9 DNVM , DNU,DNX  DNVM – The .NET Version Manager  DNX – The .NET Execution Environment  DNU – .NET Development Utilities  DNVM install -version... DNVM list  DNU restore, build  DNX -p project.json web
  • 10.
    10 Docker  Открытая платформа дляразработки, доставки и эксплуатации приложений  Безопасный, изолированный запуск приложений  Экономия ресурсов (технических и административных)
  • 11.
    11 Архитектура Docker  Образы (images)  Реестр(registries)  Контейнеры Docker Public/Private Registry Image (read-only) Meta DataFiles Container (1) :port Container (n) :port ...
  • 12.
    12 Dockerfile для ASP.NetCore 1.0 FROM microsoft/aspnet:1.0.0-rc1-final COPY . /app/ WORKDIR /app RUN ["dnu", "restore"] EXPOSE 5004 ENTRYPOINT ["dnx", "-p", "project.json", "web"]
  • 13.
    13 Как развернуть образDocker shell:  Docker build -t <ContainerName> DockerFile  Docker run -d -t <ContainerName> Kitematic:
  • 14.
    14 Linux with DockerServer containers: Demo GITASP.NET Core 1.0 Sample DEV:81 branch /dev UAT:82 PROD:80 TEAMCITY agentTEAMCITY Server 3 build configs
  • 15.
    15 Спасибо за внимание СтаниславСтолбов Byndyusoft sstolbov@byndyusoft.com vk.com/sastolbov