SlideShare a Scribd company logo
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
Ad

More Related Content

What's hot (20)

Как Cluster Membership Software может помочь QA
Как Cluster Membership Software может помочь QAКак Cluster Membership Software может помочь QA
Как Cluster Membership Software может помочь QA
SQALab
 
Как анимировать тысячи объектов на карте и не подвесить браузер
Как анимировать тысячи объектов на карте и не подвесить браузерКак анимировать тысячи объектов на карте и не подвесить браузер
Как анимировать тысячи объектов на карте и не подвесить браузер
DotNetConf
 
Cистемы автоматической сборки проектов (Полина Фоминых)
Cистемы автоматической сборки проектов (Полина Фоминых)Cистемы автоматической сборки проектов (Полина Фоминых)
Cистемы автоматической сборки проектов (Полина Фоминых)
Кафедра высокопроизводительных компьютерных технологий ИМКН УрФУ
 
микроСЕРВИСЫ: огонь, вода и медные трубы
микроСЕРВИСЫ: огонь, вода и медные трубымикроСЕРВИСЫ: огонь, вода и медные трубы
микроСЕРВИСЫ: огонь, вода и медные трубы
Aleksandr Tarasov
 
Joker 2015. WILD microSERVICES
Joker 2015. WILD microSERVICESJoker 2015. WILD microSERVICES
Joker 2015. WILD microSERVICES
Aleksandr Tarasov
 
Python Development process in Yandex
Python Development process in YandexPython Development process in Yandex
Python Development process in Yandex
aviatakz
 
Развитие сообщества Open DevOps Community
Развитие сообщества Open DevOps CommunityРазвитие сообщества Open DevOps Community
Развитие сообщества Open DevOps Community
Positive Hack Days
 
Visual Studio Team Services /TFS helps doing devops
Visual Studio Team Services /TFS helps doing devops Visual Studio Team Services /TFS helps doing devops
Visual Studio Team Services /TFS helps doing devops
Konstantin Neradovsky
 
Ядро автоматизации под микро-сервисную архитектуру
Ядро автоматизации под микро-сервисную архитектуруЯдро автоматизации под микро-сервисную архитектуру
Ядро автоматизации под микро-сервисную архитектуру
SQALab
 
Kubernetes
KubernetesKubernetes
Kubernetes
SQALab
 
Илья Ефимов «IoC/DI на примере Autofac»
Илья Ефимов «IoC/DI на примере Autofac»Илья Ефимов «IoC/DI на примере Autofac»
Илья Ефимов «IoC/DI на примере Autofac»
Yulia Tsisyk
 
Jenkins 2.0: Организуем тестирование в составе Continuous Delivery
Jenkins 2.0: Организуем тестирование в составе Continuous DeliveryJenkins 2.0: Организуем тестирование в составе Continuous Delivery
Jenkins 2.0: Организуем тестирование в составе Continuous Delivery
SQALab
 
Тестирование REST-сервисов с применением инженерных практик
Тестирование REST-сервисов с применением инженерных практикТестирование REST-сервисов с применением инженерных практик
Тестирование REST-сервисов с применением инженерных практик
SQALab
 
Иван Кожин «Saritasa Tools или ещё один подход к архитектуре приложения»
Иван Кожин «Saritasa Tools или ещё один подход к архитектуре приложения»Иван Кожин «Saritasa Tools или ещё один подход к архитектуре приложения»
Иван Кожин «Saritasa Tools или ещё один подход к архитектуре приложения»
SpbDotNet Community
 
Jbreak 2016: Твой личный Spring Boot Starter
Jbreak 2016: Твой личный Spring Boot StarterJbreak 2016: Твой личный Spring Boot Starter
Jbreak 2016: Твой личный Spring Boot Starter
Aleksandr Tarasov
 
Moscow Jenkins Meetup #1. Pipeline для инженеров. Обзор экосистемы
Moscow Jenkins Meetup #1. Pipeline для инженеров. Обзор экосистемыMoscow Jenkins Meetup #1. Pipeline для инженеров. Обзор экосистемы
Moscow Jenkins Meetup #1. Pipeline для инженеров. Обзор экосистемы
Oleg Nenashev
 
Как работать с legacy проектом, которому больше10 лет? |Денис Воскобойник
Как работать с legacy проектом, которому больше10 лет? |Денис ВоскобойникКак работать с legacy проектом, которому больше10 лет? |Денис Воскобойник
Как работать с legacy проектом, которому больше10 лет? |Денис Воскобойник
Образовательные мероприятия "Netpeak Talks"
 
системы контроля версий
системы контроля версийсистемы контроля версий
системы контроля версий
Nicki Feathers
 
Как Cluster Membership Software может помочь QA
Как Cluster Membership Software может помочь QAКак Cluster Membership Software может помочь QA
Как Cluster Membership Software может помочь QA
SQALab
 
Как анимировать тысячи объектов на карте и не подвесить браузер
Как анимировать тысячи объектов на карте и не подвесить браузерКак анимировать тысячи объектов на карте и не подвесить браузер
Как анимировать тысячи объектов на карте и не подвесить браузер
DotNetConf
 
микроСЕРВИСЫ: огонь, вода и медные трубы
микроСЕРВИСЫ: огонь, вода и медные трубымикроСЕРВИСЫ: огонь, вода и медные трубы
микроСЕРВИСЫ: огонь, вода и медные трубы
Aleksandr Tarasov
 
Joker 2015. WILD microSERVICES
Joker 2015. WILD microSERVICESJoker 2015. WILD microSERVICES
Joker 2015. WILD microSERVICES
Aleksandr Tarasov
 
Python Development process in Yandex
Python Development process in YandexPython Development process in Yandex
Python Development process in Yandex
aviatakz
 
Развитие сообщества Open DevOps Community
Развитие сообщества Open DevOps CommunityРазвитие сообщества Open DevOps Community
Развитие сообщества Open DevOps Community
Positive Hack Days
 
Visual Studio Team Services /TFS helps doing devops
Visual Studio Team Services /TFS helps doing devops Visual Studio Team Services /TFS helps doing devops
Visual Studio Team Services /TFS helps doing devops
Konstantin Neradovsky
 
Ядро автоматизации под микро-сервисную архитектуру
Ядро автоматизации под микро-сервисную архитектуруЯдро автоматизации под микро-сервисную архитектуру
Ядро автоматизации под микро-сервисную архитектуру
SQALab
 
Kubernetes
KubernetesKubernetes
Kubernetes
SQALab
 
Илья Ефимов «IoC/DI на примере Autofac»
Илья Ефимов «IoC/DI на примере Autofac»Илья Ефимов «IoC/DI на примере Autofac»
Илья Ефимов «IoC/DI на примере Autofac»
Yulia Tsisyk
 
Jenkins 2.0: Организуем тестирование в составе Continuous Delivery
Jenkins 2.0: Организуем тестирование в составе Continuous DeliveryJenkins 2.0: Организуем тестирование в составе Continuous Delivery
Jenkins 2.0: Организуем тестирование в составе Continuous Delivery
SQALab
 
Тестирование REST-сервисов с применением инженерных практик
Тестирование REST-сервисов с применением инженерных практикТестирование REST-сервисов с применением инженерных практик
Тестирование REST-сервисов с применением инженерных практик
SQALab
 
Иван Кожин «Saritasa Tools или ещё один подход к архитектуре приложения»
Иван Кожин «Saritasa Tools или ещё один подход к архитектуре приложения»Иван Кожин «Saritasa Tools или ещё один подход к архитектуре приложения»
Иван Кожин «Saritasa Tools или ещё один подход к архитектуре приложения»
SpbDotNet Community
 
Jbreak 2016: Твой личный Spring Boot Starter
Jbreak 2016: Твой личный Spring Boot StarterJbreak 2016: Твой личный Spring Boot Starter
Jbreak 2016: Твой личный Spring Boot Starter
Aleksandr Tarasov
 
Moscow Jenkins Meetup #1. Pipeline для инженеров. Обзор экосистемы
Moscow Jenkins Meetup #1. Pipeline для инженеров. Обзор экосистемыMoscow Jenkins Meetup #1. Pipeline для инженеров. Обзор экосистемы
Moscow Jenkins Meetup #1. Pipeline для инженеров. Обзор экосистемы
Oleg Nenashev
 
системы контроля версий
системы контроля версийсистемы контроля версий
системы контроля версий
Nicki Feathers
 

Viewers also liked (6)

Continues Deployment - Tech Talk week
Continues Deployment - Tech Talk weekContinues Deployment - Tech Talk week
Continues Deployment - Tech Talk week
rantav
 
Александр Бындю - Компания мечты своими руками | HappyDev'12
Александр Бындю - Компания мечты своими руками | HappyDev'12Александр Бындю - Компания мечты своими руками | HappyDev'12
Александр Бындю - Компания мечты своими руками | HappyDev'12
HappyDev
 
Переход от монолитной архитектуры к распределенной
Переход от монолитной архитектуры к распределеннойПереход от монолитной архитектуры к распределенной
Переход от монолитной архитектуры к распределенной
Alexander Byndyu
 
Agile days 2010 человеческий фактор и agile
Agile days 2010 человеческий фактор и agileAgile days 2010 человеческий фактор и agile
Agile days 2010 человеческий фактор и agile
Nikita Filippov
 
Непрерывная интеграция в ритме военного марша
Непрерывная интеграция в ритме военного маршаНепрерывная интеграция в ритме военного марша
Непрерывная интеграция в ритме военного марша
Alexander Byndyu
 
Лучшие практики Continuous Delivery с Docker / Дмитрий Столяров (Флант)
Лучшие практики Continuous Delivery с Docker / Дмитрий Столяров (Флант)Лучшие практики Continuous Delivery с Docker / Дмитрий Столяров (Флант)
Лучшие практики Continuous Delivery с Docker / Дмитрий Столяров (Флант)
Ontico
 
Continues Deployment - Tech Talk week
Continues Deployment - Tech Talk weekContinues Deployment - Tech Talk week
Continues Deployment - Tech Talk week
rantav
 
Александр Бындю - Компания мечты своими руками | HappyDev'12
Александр Бындю - Компания мечты своими руками | HappyDev'12Александр Бындю - Компания мечты своими руками | HappyDev'12
Александр Бындю - Компания мечты своими руками | HappyDev'12
HappyDev
 
Переход от монолитной архитектуры к распределенной
Переход от монолитной архитектуры к распределеннойПереход от монолитной архитектуры к распределенной
Переход от монолитной архитектуры к распределенной
Alexander Byndyu
 
Agile days 2010 человеческий фактор и agile
Agile days 2010 человеческий фактор и agileAgile days 2010 человеческий фактор и agile
Agile days 2010 человеческий фактор и agile
Nikita Filippov
 
Непрерывная интеграция в ритме военного марша
Непрерывная интеграция в ритме военного маршаНепрерывная интеграция в ритме военного марша
Непрерывная интеграция в ритме военного марша
Alexander Byndyu
 
Лучшие практики Continuous Delivery с Docker / Дмитрий Столяров (Флант)
Лучшие практики Continuous Delivery с Docker / Дмитрий Столяров (Флант)Лучшие практики Continuous Delivery с Docker / Дмитрий Столяров (Флант)
Лучшие практики Continuous Delivery с Docker / Дмитрий Столяров (Флант)
Ontico
 
Ad

Similar to Continuous Delivery для ASP.NET MVC проекта под Linux (6)

Александр Курдюков. Внедрение continuous delivery для гетерогенных поставок.
Александр Курдюков. Внедрение continuous delivery для гетерогенных поставок.Александр Курдюков. Внедрение continuous delivery для гетерогенных поставок.
Александр Курдюков. Внедрение continuous delivery для гетерогенных поставок.
ScrumTrek
 
Доклад Владислава Чернова на конференции LoveQA. "Continuous delivery в крупн...
Доклад Владислава Чернова на конференции LoveQA. "Continuous delivery в крупн...Доклад Владислава Чернова на конференции LoveQA. "Continuous delivery в крупн...
Доклад Владислава Чернова на конференции LoveQA. "Continuous delivery в крупн...
Badoo Development
 
Continuous delivery on IBMi
Continuous delivery on IBMi Continuous delivery on IBMi
Continuous delivery on IBMi
Maxim Shatunov
 
Особенности процесса тестирования при внедрении Continuous Delivery на пример...
Особенности процесса тестирования при внедрении Continuous Delivery на пример...Особенности процесса тестирования при внедрении Continuous Delivery на пример...
Особенности процесса тестирования при внедрении Continuous Delivery на пример...
SQALab
 
Ежедневные релизы – это не так уж и страшно, Оксана Харчук ( QA, DataArt)
Ежедневные релизы – это не так уж и страшно, Оксана Харчук ( QA, DataArt)Ежедневные релизы – это не так уж и страшно, Оксана Харчук ( QA, DataArt)
Ежедневные релизы – это не так уж и страшно, Оксана Харчук ( QA, DataArt)
DataArt
 
Полная автоматизация развертываний ПО: общие концепции, пример реализации, ср...
Полная автоматизация развертываний ПО: общие концепции, пример реализации, ср...Полная автоматизация развертываний ПО: общие концепции, пример реализации, ср...
Полная автоматизация развертываний ПО: общие концепции, пример реализации, ср...
SQALab
 
Александр Курдюков. Внедрение continuous delivery для гетерогенных поставок.
Александр Курдюков. Внедрение continuous delivery для гетерогенных поставок.Александр Курдюков. Внедрение continuous delivery для гетерогенных поставок.
Александр Курдюков. Внедрение continuous delivery для гетерогенных поставок.
ScrumTrek
 
Доклад Владислава Чернова на конференции LoveQA. "Continuous delivery в крупн...
Доклад Владислава Чернова на конференции LoveQA. "Continuous delivery в крупн...Доклад Владислава Чернова на конференции LoveQA. "Continuous delivery в крупн...
Доклад Владислава Чернова на конференции LoveQA. "Continuous delivery в крупн...
Badoo Development
 
Continuous delivery on IBMi
Continuous delivery on IBMi Continuous delivery on IBMi
Continuous delivery on IBMi
Maxim Shatunov
 
Особенности процесса тестирования при внедрении Continuous Delivery на пример...
Особенности процесса тестирования при внедрении Continuous Delivery на пример...Особенности процесса тестирования при внедрении Continuous Delivery на пример...
Особенности процесса тестирования при внедрении Continuous Delivery на пример...
SQALab
 
Ежедневные релизы – это не так уж и страшно, Оксана Харчук ( QA, DataArt)
Ежедневные релизы – это не так уж и страшно, Оксана Харчук ( QA, DataArt)Ежедневные релизы – это не так уж и страшно, Оксана Харчук ( QA, DataArt)
Ежедневные релизы – это не так уж и страшно, Оксана Харчук ( QA, DataArt)
DataArt
 
Полная автоматизация развертываний ПО: общие концепции, пример реализации, ср...
Полная автоматизация развертываний ПО: общие концепции, пример реализации, ср...Полная автоматизация развертываний ПО: общие концепции, пример реализации, ср...
Полная автоматизация развертываний ПО: общие концепции, пример реализации, ср...
SQALab
 
Ad

More from DotNetConf (14)

Как грабить корованы
Как грабить корованыКак грабить корованы
Как грабить корованы
DotNetConf
 
Делаем очередь поверх Кассандры
Делаем очередь поверх КассандрыДелаем очередь поверх Кассандры
Делаем очередь поверх Кассандры
DotNetConf
 
К искусству записи пользовательских историй
К искусству записи пользовательских историйК искусству записи пользовательских историй
К искусству записи пользовательских историй
DotNetConf
 
Кроссплатформенная библиотека для Android и iOS: за и против
Кроссплатформенная библиотека для Android и iOS: за и противКроссплатформенная библиотека для Android и iOS: за и против
Кроссплатформенная библиотека для Android и iOS: за и против
DotNetConf
 
Быстрый бэкенд с parse.com
Быстрый бэкенд с parse.comБыстрый бэкенд с parse.com
Быстрый бэкенд с parse.com
DotNetConf
 
Kotlin в production. Как и зачем?
Kotlin в production. Как и зачем?Kotlin в production. Как и зачем?
Kotlin в production. Как и зачем?
DotNetConf
 
Как жить в согласии с SOLID?
Как жить в согласии с SOLID?Как жить в согласии с SOLID?
Как жить в согласии с SOLID?
DotNetConf
 
Платформа Apache Hadoop
Платформа Apache HadoopПлатформа Apache Hadoop
Платформа Apache Hadoop
DotNetConf
 
Робототехника для прикладных программистов
Робототехника для прикладных программистовРобототехника для прикладных программистов
Робототехника для прикладных программистов
DotNetConf
 
Разработка Windows 8 приложений глазами WPF/Silverlight программиста
Разработка Windows 8 приложений глазами WPF/Silverlight программистаРазработка Windows 8 приложений глазами WPF/Silverlight программиста
Разработка Windows 8 приложений глазами WPF/Silverlight программиста
DotNetConf
 
Inversion of Control в .NET
Inversion of Control в .NETInversion of Control в .NET
Inversion of Control в .NET
DotNetConf
 
Введение в реактивный .NET
Введение в реактивный .NETВведение в реактивный .NET
Введение в реактивный .NET
DotNetConf
 
Особенности передачи и обработки видео данных. Приправа из кодеков или с чем ...
Особенности передачи и обработки видео данных. Приправа из кодеков или с чем ...Особенности передачи и обработки видео данных. Приправа из кодеков или с чем ...
Особенности передачи и обработки видео данных. Приправа из кодеков или с чем ...
DotNetConf
 
Машинное обучение на платформе .NET
Машинное обучение на платформе .NETМашинное обучение на платформе .NET
Машинное обучение на платформе .NET
DotNetConf
 
Как грабить корованы
Как грабить корованыКак грабить корованы
Как грабить корованы
DotNetConf
 
Делаем очередь поверх Кассандры
Делаем очередь поверх КассандрыДелаем очередь поверх Кассандры
Делаем очередь поверх Кассандры
DotNetConf
 
К искусству записи пользовательских историй
К искусству записи пользовательских историйК искусству записи пользовательских историй
К искусству записи пользовательских историй
DotNetConf
 
Кроссплатформенная библиотека для Android и iOS: за и против
Кроссплатформенная библиотека для Android и iOS: за и противКроссплатформенная библиотека для Android и iOS: за и против
Кроссплатформенная библиотека для Android и iOS: за и против
DotNetConf
 
Быстрый бэкенд с parse.com
Быстрый бэкенд с parse.comБыстрый бэкенд с parse.com
Быстрый бэкенд с parse.com
DotNetConf
 
Kotlin в production. Как и зачем?
Kotlin в production. Как и зачем?Kotlin в production. Как и зачем?
Kotlin в production. Как и зачем?
DotNetConf
 
Как жить в согласии с SOLID?
Как жить в согласии с SOLID?Как жить в согласии с SOLID?
Как жить в согласии с SOLID?
DotNetConf
 
Платформа Apache Hadoop
Платформа Apache HadoopПлатформа Apache Hadoop
Платформа Apache Hadoop
DotNetConf
 
Робототехника для прикладных программистов
Робототехника для прикладных программистовРобототехника для прикладных программистов
Робототехника для прикладных программистов
DotNetConf
 
Разработка Windows 8 приложений глазами WPF/Silverlight программиста
Разработка Windows 8 приложений глазами WPF/Silverlight программистаРазработка Windows 8 приложений глазами WPF/Silverlight программиста
Разработка Windows 8 приложений глазами WPF/Silverlight программиста
DotNetConf
 
Inversion of Control в .NET
Inversion of Control в .NETInversion of Control в .NET
Inversion of Control в .NET
DotNetConf
 
Введение в реактивный .NET
Введение в реактивный .NETВведение в реактивный .NET
Введение в реактивный .NET
DotNetConf
 
Особенности передачи и обработки видео данных. Приправа из кодеков или с чем ...
Особенности передачи и обработки видео данных. Приправа из кодеков или с чем ...Особенности передачи и обработки видео данных. Приправа из кодеков или с чем ...
Особенности передачи и обработки видео данных. Приправа из кодеков или с чем ...
DotNetConf
 
Машинное обучение на платформе .NET
Машинное обучение на платформе .NETМашинное обучение на платформе .NET
Машинное обучение на платформе .NET
DotNetConf
 

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 Tests Deploy Source Control Codding Feedback
  • 5. 5 Инструментарий  Visual Studio (или любой другой инструмент разработчика)  github.com (или иная система контроля версий)  TeamCity (build + test + deploy)  Docker (Запуск приложения в контейнере) – Linux Ubuntu
  • 7. 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. 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.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. 13 Как развернуть образ Docker shell:  Docker build -t <ContainerName> DockerFile  Docker run -d -t <ContainerName> Kitematic:
  • 14. 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. 15 Спасибо за внимание Станислав Столбов Byndyusoft sstolbov@byndyusoft.com vk.com/sastolbov
  翻译: