SlideShare uma empresa Scribd logo
1 de 15
Baixar para ler offline
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

Mais conteúdo relacionado

Mais procurados

Как Cluster Membership Software может помочь QA
Как Cluster Membership Software может помочь QAКак Cluster Membership Software может помочь QA
Как Cluster Membership Software может помочь QASQALab
 
Как анимировать тысячи объектов на карте и не подвесить браузер
Как анимировать тысячи объектов на карте и не подвесить браузерКак анимировать тысячи объектов на карте и не подвесить браузер
Как анимировать тысячи объектов на карте и не подвесить браузерDotNetConf
 
микроСЕРВИСЫ: огонь, вода и медные трубы
микроСЕРВИСЫ: огонь, вода и медные трубымикроСЕРВИСЫ: огонь, вода и медные трубы
микроСЕРВИСЫ: огонь, вода и медные трубыAleksandr Tarasov
 
Joker 2015. WILD microSERVICES
Joker 2015. WILD microSERVICESJoker 2015. WILD microSERVICES
Joker 2015. WILD microSERVICESAleksandr Tarasov
 
Python Development process in Yandex
Python Development process in YandexPython Development process in Yandex
Python Development process in Yandexaviatakz
 
Развитие сообщества Open DevOps Community
Развитие сообщества Open DevOps CommunityРазвитие сообщества Open DevOps Community
Развитие сообщества Open DevOps CommunityPositive 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
KubernetesSQALab
 
Илья Ефимов «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 DeliverySQALab
 
Тестирование 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 StarterAleksandr 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
 

Mais procurados (20)

Как Cluster Membership Software может помочь QA
Как Cluster Membership Software может помочь QAКак Cluster Membership Software может помочь QA
Как Cluster Membership Software может помочь QA
 
Как анимировать тысячи объектов на карте и не подвесить браузер
Как анимировать тысячи объектов на карте и не подвесить браузерКак анимировать тысячи объектов на карте и не подвесить браузер
Как анимировать тысячи объектов на карте и не подвесить браузер
 
Cистемы автоматической сборки проектов (Полина Фоминых)
Cистемы автоматической сборки проектов (Полина Фоминых)Cистемы автоматической сборки проектов (Полина Фоминых)
Cистемы автоматической сборки проектов (Полина Фоминых)
 
микроСЕРВИСЫ: огонь, вода и медные трубы
микроСЕРВИСЫ: огонь, вода и медные трубымикроСЕРВИСЫ: огонь, вода и медные трубы
микроСЕРВИСЫ: огонь, вода и медные трубы
 
C#5 What's new?
C#5 What's new?C#5 What's new?
C#5 What's new?
 
Joker 2015. WILD microSERVICES
Joker 2015. WILD microSERVICESJoker 2015. WILD microSERVICES
Joker 2015. WILD microSERVICES
 
Python Development process in Yandex
Python Development process in YandexPython Development process in Yandex
Python Development process in Yandex
 
Развитие сообщества Open DevOps Community
Развитие сообщества Open DevOps CommunityРазвитие сообщества Open DevOps Community
Развитие сообщества Open DevOps Community
 
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
 
Ядро автоматизации под микро-сервисную архитектуру
Ядро автоматизации под микро-сервисную архитектуруЯдро автоматизации под микро-сервисную архитектуру
Ядро автоматизации под микро-сервисную архитектуру
 
Kubernetes
KubernetesKubernetes
Kubernetes
 
Илья Ефимов «IoC/DI на примере Autofac»
Илья Ефимов «IoC/DI на примере Autofac»Илья Ефимов «IoC/DI на примере Autofac»
Илья Ефимов «IoC/DI на примере Autofac»
 
Jenkins 2.0: Организуем тестирование в составе Continuous Delivery
Jenkins 2.0: Организуем тестирование в составе Continuous DeliveryJenkins 2.0: Организуем тестирование в составе Continuous Delivery
Jenkins 2.0: Организуем тестирование в составе Continuous Delivery
 
Непрерывная интеграция (Марина Пестова)
Непрерывная интеграция (Марина Пестова)Непрерывная интеграция (Марина Пестова)
Непрерывная интеграция (Марина Пестова)
 
Тестирование REST-сервисов с применением инженерных практик
Тестирование REST-сервисов с применением инженерных практикТестирование REST-сервисов с применением инженерных практик
Тестирование REST-сервисов с применением инженерных практик
 
Иван Кожин «Saritasa Tools или ещё один подход к архитектуре приложения»
Иван Кожин «Saritasa Tools или ещё один подход к архитектуре приложения»Иван Кожин «Saritasa Tools или ещё один подход к архитектуре приложения»
Иван Кожин «Saritasa Tools или ещё один подход к архитектуре приложения»
 
Jbreak 2016: Твой личный Spring Boot Starter
Jbreak 2016: Твой личный Spring Boot StarterJbreak 2016: Твой личный Spring Boot Starter
Jbreak 2016: Твой личный Spring Boot Starter
 
Moscow Jenkins Meetup #1. Pipeline для инженеров. Обзор экосистемы
Moscow Jenkins Meetup #1. Pipeline для инженеров. Обзор экосистемыMoscow Jenkins Meetup #1. Pipeline для инженеров. Обзор экосистемы
Moscow Jenkins Meetup #1. Pipeline для инженеров. Обзор экосистемы
 
Как работать с legacy проектом, которому больше10 лет? |Денис Воскобойник
Как работать с legacy проектом, которому больше10 лет? |Денис ВоскобойникКак работать с legacy проектом, которому больше10 лет? |Денис Воскобойник
Как работать с legacy проектом, которому больше10 лет? |Денис Воскобойник
 
системы контроля версий
системы контроля версийсистемы контроля версий
системы контроля версий
 

Destaque

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

Destaque (6)

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

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

Continous Integration
Continous IntegrationContinous Integration
Continous IntegrationGetDev.NET
 
Непрерывная интеграция. Практическое применение
Непрерывная интеграция. Практическое применениеНепрерывная интеграция. Практическое применение
Непрерывная интеграция. Практическое применениеdevclub
 
Автоматическое функциональное тестирование в рамках процесса непрерывной инте...
Автоматическое функциональное тестирование в рамках процесса непрерывной инте...Автоматическое функциональное тестирование в рамках процесса непрерывной инте...
Автоматическое функциональное тестирование в рамках процесса непрерывной инте...SQALab
 
Azure DevOps сборка, развертывание и тестирование
Azure DevOps сборка, развертывание и тестированиеAzure DevOps сборка, развертывание и тестирование
Azure DevOps сборка, развертывание и тестированиеАлександр Шамрай
 
Игорь Леонтьев, Lead Architect on all Blockchain projects of Viseo group
Игорь Леонтьев, Lead Architect on all Blockchain projects of Viseo groupИгорь Леонтьев, Lead Architect on all Blockchain projects of Viseo group
Игорь Леонтьев, Lead Architect on all Blockchain projects of Viseo groupAlina Vilk
 
DevOps в реальном времени
DevOps в реальном времениDevOps в реальном времени
DevOps в реальном времениAndriy Samilyak
 
Cеминар в Виннице (22.03.2014)
Cеминар в Виннице (22.03.2014)Cеминар в Виннице (22.03.2014)
Cеминар в Виннице (22.03.2014)Alexander Babich
 
Виртуальные среды тестирования (ADD2010)
Виртуальные среды тестирования (ADD2010)Виртуальные среды тестирования (ADD2010)
Виртуальные среды тестирования (ADD2010)Dmitry Lobasev
 
CONTINUOUS INTEGRATION ДЛЯ ЧАЙНИКОВ ВМЕСТЕ С TEAMCITY
CONTINUOUS INTEGRATION ДЛЯ ЧАЙНИКОВ ВМЕСТЕ С TEAMCITYCONTINUOUS INTEGRATION ДЛЯ ЧАЙНИКОВ ВМЕСТЕ С TEAMCITY
CONTINUOUS INTEGRATION ДЛЯ ЧАЙНИКОВ ВМЕСТЕ С TEAMCITYPavel Tsukanov
 
Сквозное обеспечение качества и расширяемость платформы TFS
Сквозное обеспечение качества и расширяемость платформы TFSСквозное обеспечение качества и расширяемость платформы TFS
Сквозное обеспечение качества и расширяемость платформы TFSАлександр Шамрай
 
Azure DevOps Управление проектом и версионный контроль
Azure DevOps Управление проектом и версионный контрольAzure DevOps Управление проектом и версионный контроль
Azure DevOps Управление проектом и версионный контрольАлександр Шамрай
 
От локальной Devops инфраструктуры в облако
От локальной Devops инфраструктуры в облакоОт локальной Devops инфраструктуры в облако
От локальной Devops инфраструктуры в облакоMicrosoft
 
Sdlc by Anatoliy Anthony Cox
Sdlc by  Anatoliy Anthony CoxSdlc by  Anatoliy Anthony Cox
Sdlc by Anatoliy Anthony CoxAlex Tumanoff
 
DevOps Fest 2020. Сергей Погорелов. Локально распределенное окружение разрабо...
DevOps Fest 2020. Сергей Погорелов. Локально распределенное окружение разрабо...DevOps Fest 2020. Сергей Погорелов. Локально распределенное окружение разрабо...
DevOps Fest 2020. Сергей Погорелов. Локально распределенное окружение разрабо...DevOps_Fest
 
Как hh.ru дошли до 500 релизов в квартал без потери в качестве
Как hh.ru дошли до 500 релизов в квартал без потери в качествеКак hh.ru дошли до 500 релизов в квартал без потери в качестве
Как hh.ru дошли до 500 релизов в квартал без потери в качествеSQALab
 
ALM Roadshow Организация процессов разработки – введение в Microsoft ALM/DevOps
ALM Roadshow Организация процессов разработки – введение в Microsoft ALM/DevOpsALM Roadshow Организация процессов разработки – введение в Microsoft ALM/DevOps
ALM Roadshow Организация процессов разработки – введение в Microsoft ALM/DevOpsMicrosoft
 

Semelhante a Continuous Delivery для ASP.NET MVC проекта под Linux (20)

Continous Integration
Continous IntegrationContinous Integration
Continous Integration
 
Непрерывная интеграция. Практическое применение
Непрерывная интеграция. Практическое применениеНепрерывная интеграция. Практическое применение
Непрерывная интеграция. Практическое применение
 
Автоматическое функциональное тестирование в рамках процесса непрерывной инте...
Автоматическое функциональное тестирование в рамках процесса непрерывной инте...Автоматическое функциональное тестирование в рамках процесса непрерывной инте...
Автоматическое функциональное тестирование в рамках процесса непрерывной инте...
 
Azure DevOps сборка, развертывание и тестирование
Azure DevOps сборка, развертывание и тестированиеAzure DevOps сборка, развертывание и тестирование
Azure DevOps сборка, развертывание и тестирование
 
Игорь Леонтьев, Lead Architect on all Blockchain projects of Viseo group
Игорь Леонтьев, Lead Architect on all Blockchain projects of Viseo groupИгорь Леонтьев, Lead Architect on all Blockchain projects of Viseo group
Игорь Леонтьев, Lead Architect on all Blockchain projects of Viseo group
 
DevOps в реальном времени
DevOps в реальном времениDevOps в реальном времени
DevOps в реальном времени
 
Cеминар в Виннице (22.03.2014)
Cеминар в Виннице (22.03.2014)Cеминар в Виннице (22.03.2014)
Cеминар в Виннице (22.03.2014)
 
Java one presentation
Java one presentationJava one presentation
Java one presentation
 
Виртуальные среды тестирования (ADD2010)
Виртуальные среды тестирования (ADD2010)Виртуальные среды тестирования (ADD2010)
Виртуальные среды тестирования (ADD2010)
 
CONTINUOUS INTEGRATION ДЛЯ ЧАЙНИКОВ ВМЕСТЕ С TEAMCITY
CONTINUOUS INTEGRATION ДЛЯ ЧАЙНИКОВ ВМЕСТЕ С TEAMCITYCONTINUOUS INTEGRATION ДЛЯ ЧАЙНИКОВ ВМЕСТЕ С TEAMCITY
CONTINUOUS INTEGRATION ДЛЯ ЧАЙНИКОВ ВМЕСТЕ С TEAMCITY
 
Сквозное обеспечение качества и расширяемость платформы TFS
Сквозное обеспечение качества и расширяемость платформы TFSСквозное обеспечение качества и расширяемость платформы TFS
Сквозное обеспечение качества и расширяемость платформы TFS
 
Azure DevOps Управление проектом и версионный контроль
Azure DevOps Управление проектом и версионный контрольAzure DevOps Управление проектом и версионный контроль
Azure DevOps Управление проектом и версионный контроль
 
Wgforge CI/CD
Wgforge CI/CDWgforge CI/CD
Wgforge CI/CD
 
От локальной Devops инфраструктуры в облако
От локальной Devops инфраструктуры в облакоОт локальной Devops инфраструктуры в облако
От локальной Devops инфраструктуры в облако
 
It meetup cd
It meetup cdIt meetup cd
It meetup cd
 
Sdlc by Anatoliy Anthony Cox
Sdlc by  Anatoliy Anthony CoxSdlc by  Anatoliy Anthony Cox
Sdlc by Anatoliy Anthony Cox
 
Dev collaboration
Dev collaborationDev collaboration
Dev collaboration
 
DevOps Fest 2020. Сергей Погорелов. Локально распределенное окружение разрабо...
DevOps Fest 2020. Сергей Погорелов. Локально распределенное окружение разрабо...DevOps Fest 2020. Сергей Погорелов. Локально распределенное окружение разрабо...
DevOps Fest 2020. Сергей Погорелов. Локально распределенное окружение разрабо...
 
Как hh.ru дошли до 500 релизов в квартал без потери в качестве
Как hh.ru дошли до 500 релизов в квартал без потери в качествеКак hh.ru дошли до 500 релизов в квартал без потери в качестве
Как hh.ru дошли до 500 релизов в квартал без потери в качестве
 
ALM Roadshow Организация процессов разработки – введение в Microsoft ALM/DevOps
ALM Roadshow Организация процессов разработки – введение в Microsoft ALM/DevOpsALM Roadshow Организация процессов разработки – введение в Microsoft ALM/DevOps
ALM Roadshow Организация процессов разработки – введение в Microsoft ALM/DevOps
 

Mais de DotNetConf

Как грабить корованы
Как грабить корованыКак грабить корованы
Как грабить корованыDotNetConf
 
Делаем очередь поверх Кассандры
Делаем очередь поверх КассандрыДелаем очередь поверх Кассандры
Делаем очередь поверх КассандрыDotNetConf
 
К искусству записи пользовательских историй
К искусству записи пользовательских историйК искусству записи пользовательских историй
К искусству записи пользовательских историйDotNetConf
 
Кроссплатформенная библиотека для Android и iOS: за и против
Кроссплатформенная библиотека для Android и iOS: за и противКроссплатформенная библиотека для Android и iOS: за и против
Кроссплатформенная библиотека для Android и iOS: за и противDotNetConf
 
Быстрый бэкенд с parse.com
Быстрый бэкенд с parse.comБыстрый бэкенд с parse.com
Быстрый бэкенд с parse.comDotNetConf
 
Kotlin в production. Как и зачем?
Kotlin в production. Как и зачем?Kotlin в production. Как и зачем?
Kotlin в production. Как и зачем?DotNetConf
 
Как жить в согласии с SOLID?
Как жить в согласии с SOLID?Как жить в согласии с SOLID?
Как жить в согласии с SOLID?DotNetConf
 
Платформа Apache Hadoop
Платформа Apache HadoopПлатформа Apache Hadoop
Платформа Apache HadoopDotNetConf
 
Робототехника для прикладных программистов
Робототехника для прикладных программистовРобототехника для прикладных программистов
Робототехника для прикладных программистов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 в .NETDotNetConf
 
Введение в реактивный .NET
Введение в реактивный .NETВведение в реактивный .NET
Введение в реактивный .NETDotNetConf
 
Особенности передачи и обработки видео данных. Приправа из кодеков или с чем ...
Особенности передачи и обработки видео данных. Приправа из кодеков или с чем ...Особенности передачи и обработки видео данных. Приправа из кодеков или с чем ...
Особенности передачи и обработки видео данных. Приправа из кодеков или с чем ...DotNetConf
 
Машинное обучение на платформе .NET
Машинное обучение на платформе .NETМашинное обучение на платформе .NET
Машинное обучение на платформе .NETDotNetConf
 

Mais de DotNetConf (14)

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

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