continuous delivery для asp.net mvc проекта под linux
TRANSCRIPT
Continuous Delivery для ASP.NET MVC проекта под Linux
Станислав СтолбовByndyusoft.com
vk.com/sastolbov
MICROSOFT LINUX
12-я конференция .NET разработчиков15 мая 2016dotnetconf.ru
2
Зачем автоматизировать развертывание ПО?
Ручное развертывание: Не надежный, часто меняющийся процесс Поддержка документации для ручного процесса Требует навыки специалиста для чтения документации Зависит от квалификации исполнителя Рутинный процесс, провоцирующий ошибки Процесс проверки развертывания долгий → дорогой Сложность аудита процесса развертывания
3
Continuous Delivery
Автоматизация рутинного процесса непрерывной доставки изменений ПО в разные среды
Прозрачность процесса → ↓ошибок Масштабируемость Высокая скорость доставки изменений Спокойствие разработчика
4
Конвейер развертывания
Build Tests DeploySourceControl
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 /appRUN ["dnu", "restore"]
EXPOSE 5004ENTRYPOINT ["dnx", "-p", "project.json", "web"]
13
Как развернуть образ Dockershell: Docker build -t <ContainerName> DockerFile Docker run -d -t <ContainerName>Kitematic:
14
Linux with Docker Servercontainers:
DemoGIT
ASP.NET Core 1.0 Sample
DEV:81
branch /dev
UAT:82PROD:80
TEAMCITYagentTEAMCITY
Server 3 build configs