continuous delivery для asp.net mvc проекта под linux

15
Continuous Delivery для ASP .NET MVC проекта под Linux Станислав Столбов Byndyusoft.com vk.com/sastolbov MICROSOFT LINUX 12-я конференция .NET разработчиков 15 мая 2016 dotnetconf.ru

Upload: dotnetconf

Post on 08-Apr-2017

290 views

Category:

Software


5 download

TRANSCRIPT

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

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

Станислав СтолбовByndyusoft.com

vk.com/sastolbov

MICROSOFT LINUX

12-я конференция .NET разработчиков15 мая 2016dotnetconf.ru

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

2

Зачем автоматизировать развертывание ПО?

Ручное развертывание: Не надежный, часто меняющийся процесс Поддержка документации для ручного процесса Требует навыки специалиста для чтения документации Зависит от квалификации исполнителя Рутинный процесс, провоцирующий ошибки Процесс проверки развертывания долгий → дорогой Сложность аудита процесса развертывания

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

3

Continuous Delivery

Автоматизация рутинного процесса непрерывной доставки изменений ПО в разные среды

Прозрачность процесса → ↓ошибок Масштабируемость Высокая скорость доставки изменений Спокойствие разработчика

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

4

Конвейер развертывания

Build Tests DeploySourceControl

Codding Feedback

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

5

Инструментарий

Visual Studio (или любой другой инструмент

разработчика) github.com (или иная система контроля версий) TeamCity (build + test + deploy) Docker (Запуск приложения в контейнере) – Linux Ubuntu

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

6

Конвейер развертывания

Teamcity Build+tests+deploy

DockerGitHub

Visual Studio

Feedback

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

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 версия,

продолжают разработку

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

8

ASP.Net Core 1.0 особенности

Новый Web-server Kestrel Кросс-платформенный, компактный,

более ориентирован на облачные хостинги

Изменена файловая структура Новые программы для компиляции и

запуска.

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

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

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

10

Docker Открытая платформа для разработки, доставки и

эксплуатации приложений Безопасный, изолированный запуск приложений Экономия ресурсов (технических и

административных)

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

11

Архитектура Docker

Образы (images) Реестр (registries) Контейнеры

Docker Public/Private

Registry

Image (read-only) Meta DataFiles

Container (1) :port

Container (n) :port...

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

12

Dockerfile для ASP.Net Core 1.0

FROM microsoft/aspnet:1.0.0-rc1-final

COPY . /app/WORKDIR /appRUN ["dnu", "restore"]

EXPOSE 5004ENTRYPOINT ["dnx", "-p", "project.json", "web"]

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

13

Как развернуть образ Dockershell: Docker build -t <ContainerName> DockerFile Docker run -d -t <ContainerName>Kitematic:

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

14

Linux with Docker Servercontainers:

DemoGIT

ASP.NET Core 1.0 Sample

DEV:81

branch /dev

UAT:82PROD:80

TEAMCITYagentTEAMCITY

Server 3 build configs

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

15

Спасибо за внимание

Станислав СтолбовByndyusoft

[email protected]/sastolbov