SlideShare a Scribd company logo
1 of 40
Download to read offline
Why / How / When
Do I need
CONTINUOS
DELIVERY?
Product Developer, E-conomic (Ciklum)
Trainer, XP Injection
beletsky.net
@alexbeletsky
github.com/alexanderbeletsky
Why
How
When
The story of one project

Very simple GTD web application

.NET technological stack based

VPS hosted

Nothing fancy, seriously
•Prepare release branch and merge all required changes there
•Update version in uppercut.config
•Commit changes to SCM
•
Run build.bat
•
FTP package to deployment server
•RDP to deployment server
•Unpackage .zip content to temp folder
•Manually backup staging database
•Stop Stage Web site in IIS manager
•
Run migration scripts for staging database
•
Run deployment scripts for staging environment
•
Run Stage Web site in IIS manager
•
Test manually that on staging server, that build works fine
•If something missed (note it is 60% of all cases) go to 1
•Manually backup production database
•Stop Production Web site in IIS manager
•Run migration scripts for production database
•
Run deployment scripts for production environment
•
Run Production Web site in IIS manager
•Test manually that on production server, that build works fine
Delivery Script ...
If it FAILS in a MIDDLE
— REPEAT
Lucky day: 0.5 h
Bad day: 2 h
Read those figures as:
My customers suffer for 2 hours once in
2 weeks, just becase I do update
And by the way...

It's just takes too much developers time

It's boring

Sooner or later you start to hate
deployments
For bussiness people and
managers

“Time-to-Market” factor is very low

Feedback cycle is very long

Customer dissatisfaction is very high
Why
How
When
Let's define our
TERMINOLOGY
Deployment != Delivery
Deployment: product IS availble
Delivery: product IS availble for users
Deployment first
Delivery after
All you have to know,
the secret formula of
Continuous Deployment
(Integration + Deployment) *
Continuous = Continuous
Deployment
Integration is for:
fetching latest sources
build all product configuration items
run unit tests
run functional tests
generate documentation
package all artifacts
Deployment is for:
update test servers
1. Build and deploy locally with one click
2. Define SCM model based
3. Run it continuosly
Recipe of Success:

Build and tests execution

Binaries versioning

SCM labeling

Database migration

Web application deployment
Step 1 - Build and Deploy

Build and tests execution

Binaries versioning

SCM labeling

Database migration

Web application deployment
Step 1 - Build and Deploy
Solved by Chuck Norris tools
UppercuT batch build framework
RoundhousE database migrations
DropicK application deployment
Meet Chuck Norris Tools
UppercuT
Easy to use
Configurable by XML
Supports config for different environment
RoundhousE
Easy to use
Supports MS SQL, MySQL, Postgress
Migration by SQL Scripts
DropkicK
Deployment script as C# code
Support for services and sites
Different plans
Available on a Github
> deploy.bat LOCAL
> deploy.bat STAGING
> deploy.bat PRODUCTION
Step 1 - Build and Deploy
ACCOMPLISHED

DVCS are simply rule (Git, HG)

TRUNK is production ready

Keep interations in branches

Keep features in branches
Step 2 - Define SCM model
Ideal branches count = 2
master
develop
Typical branches count >= 2
master
develop
release
hotfix
Branch per Environment Layout
Step 2 - Define SCM model
ACCOMPLISHED
> git checkout develop
> git merge --no-ff myfeature
> git branch -d myfeature
> git push origin develop

Availability of Build Server

SCM build triggering

Automatically run deployment script

Roll out application to production
Step 3 - Run it continuously

Fork of famous Hudson project

Open source

Java based

Easy start, easy go

Tons of available plugins
Say 'Hello' to Jenkins
All configuration could be
done in UI
Jenkins Instance is deployed
for each environment
Build/Deployment continuosly
triggered by SCM
As soon as Staging “Looks
Alright”, deploy to production
> git checkout master
> git merge develop
> git tag -a 1.2
> git push origin master
Deployment is nothing more
as pushing changes to
origin/master
Step 3 - Run it continuosly
ACCOMPLISHED
Changes are picked up, built, tested
and deployed automatically
Why
How
When
As sooner as better
And?
Results:

Going live time improved 45x

Site down time reduced 300x

No more iterations, Kanban

Staging is updating with every push

Setup and forget
THANK YOU!
beletsky.net
@alexbeletsky
github.com/alexanderbeletsky

More Related Content

What's hot

What's hot (20)

Jenkins Pipeline 101 and TCI - presentation and workshop
Jenkins Pipeline 101 and TCI - presentation and workshopJenkins Pipeline 101 and TCI - presentation and workshop
Jenkins Pipeline 101 and TCI - presentation and workshop
 
Jenkins
JenkinsJenkins
Jenkins
 
Jenkins pipeline as code
Jenkins pipeline as codeJenkins pipeline as code
Jenkins pipeline as code
 
Atlassian Bamboo Feature Overview
Atlassian Bamboo Feature OverviewAtlassian Bamboo Feature Overview
Atlassian Bamboo Feature Overview
 
Jenkins
JenkinsJenkins
Jenkins
 
Continuous integration in games development
Continuous integration in games developmentContinuous integration in games development
Continuous integration in games development
 
Codecoon - A technical Case Study
Codecoon - A technical Case StudyCodecoon - A technical Case Study
Codecoon - A technical Case Study
 
Hacking Jenkins
Hacking JenkinsHacking Jenkins
Hacking Jenkins
 
Jenkins presentation
Jenkins presentationJenkins presentation
Jenkins presentation
 
Continuous Delivery and Infrastructure as Code
Continuous Delivery and Infrastructure as CodeContinuous Delivery and Infrastructure as Code
Continuous Delivery and Infrastructure as Code
 
Continuous delivery with open source tools
Continuous delivery with open source toolsContinuous delivery with open source tools
Continuous delivery with open source tools
 
(GAM404) Gaming DevOps: Scopely's Continuous Deployment Pipeline | AWS re:Inv...
(GAM404) Gaming DevOps: Scopely's Continuous Deployment Pipeline | AWS re:Inv...(GAM404) Gaming DevOps: Scopely's Continuous Deployment Pipeline | AWS re:Inv...
(GAM404) Gaming DevOps: Scopely's Continuous Deployment Pipeline | AWS re:Inv...
 
Supermondays: Jenkins CI lightning talk
Supermondays: Jenkins CI lightning talkSupermondays: Jenkins CI lightning talk
Supermondays: Jenkins CI lightning talk
 
Pipeline as code using Jenkins -Ministry of Testing
Pipeline as code using Jenkins -Ministry of TestingPipeline as code using Jenkins -Ministry of Testing
Pipeline as code using Jenkins -Ministry of Testing
 
CI and CD with Jenkins
CI and CD with JenkinsCI and CD with Jenkins
CI and CD with Jenkins
 
Jenkins Pipeline Tutorial | Continuous Delivery Pipeline Using Jenkins | DevO...
Jenkins Pipeline Tutorial | Continuous Delivery Pipeline Using Jenkins | DevO...Jenkins Pipeline Tutorial | Continuous Delivery Pipeline Using Jenkins | DevO...
Jenkins Pipeline Tutorial | Continuous Delivery Pipeline Using Jenkins | DevO...
 
Michigan IT Symposium 2017 - CI/CD Workflow Tutorial
Michigan IT Symposium 2017 - CI/CD Workflow TutorialMichigan IT Symposium 2017 - CI/CD Workflow Tutorial
Michigan IT Symposium 2017 - CI/CD Workflow Tutorial
 
vodQA(Pune) 2018 - Docker in Testing
vodQA(Pune) 2018 - Docker in TestingvodQA(Pune) 2018 - Docker in Testing
vodQA(Pune) 2018 - Docker in Testing
 
vodQA(Pune) 2018 - Visual testing of web apps in headless environment manis...
vodQA(Pune) 2018 - Visual testing of web apps in headless environment   manis...vodQA(Pune) 2018 - Visual testing of web apps in headless environment   manis...
vodQA(Pune) 2018 - Visual testing of web apps in headless environment manis...
 
Continuous Development with Jenkins - Stephen Connolly at PuppetCamp Dublin '12
Continuous Development with Jenkins - Stephen Connolly at PuppetCamp Dublin '12Continuous Development with Jenkins - Stephen Connolly at PuppetCamp Dublin '12
Continuous Development with Jenkins - Stephen Connolly at PuppetCamp Dublin '12
 

Similar to Саша Белецкий "Continuous Delivery в продуктовой разработке"

Continuous deployment steve povilaitis
Continuous deployment   steve povilaitisContinuous deployment   steve povilaitis
Continuous deployment steve povilaitis
Steve Povilaitis
 
Build automation best practices
Build automation best practicesBuild automation best practices
Build automation best practices
Code Mastery
 
DCSF19 Transforming a 15+ Year Old Semiconductor Manufacturing Environment
DCSF19 Transforming a 15+ Year Old Semiconductor Manufacturing EnvironmentDCSF19 Transforming a 15+ Year Old Semiconductor Manufacturing Environment
DCSF19 Transforming a 15+ Year Old Semiconductor Manufacturing Environment
Docker, Inc.
 

Similar to Саша Белецкий "Continuous Delivery в продуктовой разработке" (20)

DWX 2023 - Datenbank-Schema Deployment im Kubernetes Release
DWX 2023 - Datenbank-Schema Deployment im Kubernetes ReleaseDWX 2023 - Datenbank-Schema Deployment im Kubernetes Release
DWX 2023 - Datenbank-Schema Deployment im Kubernetes Release
 
Cloud-powered Continuous Integration and Deployment architectures - Jinesh Varia
Cloud-powered Continuous Integration and Deployment architectures - Jinesh VariaCloud-powered Continuous Integration and Deployment architectures - Jinesh Varia
Cloud-powered Continuous Integration and Deployment architectures - Jinesh Varia
 
[20200720]cloud native develoment - Nelson Lin
[20200720]cloud native develoment - Nelson Lin[20200720]cloud native develoment - Nelson Lin
[20200720]cloud native develoment - Nelson Lin
 
Rock Solid WordPress
Rock Solid WordPressRock Solid WordPress
Rock Solid WordPress
 
HOW TO DRONE.IO IN CI/CD WORLD
HOW TO DRONE.IO IN CI/CD WORLDHOW TO DRONE.IO IN CI/CD WORLD
HOW TO DRONE.IO IN CI/CD WORLD
 
CI/CD Development in Kubernetes - Skaffold
CI/CD Development in Kubernetes -  SkaffoldCI/CD Development in Kubernetes -  Skaffold
CI/CD Development in Kubernetes - Skaffold
 
Enabling Hybrid Workflows with Docker/Mesos @Orbitz
Enabling Hybrid Workflows with Docker/Mesos @OrbitzEnabling Hybrid Workflows with Docker/Mesos @Orbitz
Enabling Hybrid Workflows with Docker/Mesos @Orbitz
 
Getting to Walk with DevOps
Getting to Walk with DevOpsGetting to Walk with DevOps
Getting to Walk with DevOps
 
DockerCon SF 2015: Docker at Lyft
DockerCon SF 2015: Docker at LyftDockerCon SF 2015: Docker at Lyft
DockerCon SF 2015: Docker at Lyft
 
Docker - Demo on PHP Application deployment
Docker - Demo on PHP Application deployment Docker - Demo on PHP Application deployment
Docker - Demo on PHP Application deployment
 
Deploying software at Scale
Deploying software at ScaleDeploying software at Scale
Deploying software at Scale
 
Automated Build using teamcity
Automated Build using teamcityAutomated Build using teamcity
Automated Build using teamcity
 
Automating That "Other" OS
Automating That "Other" OSAutomating That "Other" OS
Automating That "Other" OS
 
Best practices for developing your Magento Commerce on Cloud
Best practices for developing your Magento Commerce on CloudBest practices for developing your Magento Commerce on Cloud
Best practices for developing your Magento Commerce on Cloud
 
Continuous deployment steve povilaitis
Continuous deployment   steve povilaitisContinuous deployment   steve povilaitis
Continuous deployment steve povilaitis
 
Build automation best practices
Build automation best practicesBuild automation best practices
Build automation best practices
 
CI/CD on AWS: Deploy Everything All the Time | AWS Public Sector Summit 2016
CI/CD on AWS: Deploy Everything All the Time | AWS Public Sector Summit 2016CI/CD on AWS: Deploy Everything All the Time | AWS Public Sector Summit 2016
CI/CD on AWS: Deploy Everything All the Time | AWS Public Sector Summit 2016
 
CI/CD on AWS Deploy Everything All the Time
CI/CD on AWS Deploy Everything All the TimeCI/CD on AWS Deploy Everything All the Time
CI/CD on AWS Deploy Everything All the Time
 
Drupal 8 DevOps . Profile and SQL flows.
Drupal 8 DevOps . Profile and SQL flows.Drupal 8 DevOps . Profile and SQL flows.
Drupal 8 DevOps . Profile and SQL flows.
 
DCSF19 Transforming a 15+ Year Old Semiconductor Manufacturing Environment
DCSF19 Transforming a 15+ Year Old Semiconductor Manufacturing EnvironmentDCSF19 Transforming a 15+ Year Old Semiconductor Manufacturing Environment
DCSF19 Transforming a 15+ Year Old Semiconductor Manufacturing Environment
 

More from Agile Base Camp

Алексей Колупаев "За что ещё платят менеджеру?"
Алексей Колупаев "За что ещё платят менеджеру?"Алексей Колупаев "За что ещё платят менеджеру?"
Алексей Колупаев "За что ещё платят менеджеру?"
Agile Base Camp
 
Александр Белецкий "Архитектура Javascript приложений"
 Александр Белецкий "Архитектура Javascript приложений" Александр Белецкий "Архитектура Javascript приложений"
Александр Белецкий "Архитектура Javascript приложений"
Agile Base Camp
 
Сергей Кудряшов "Делайте продукт и ничего более"
Сергей Кудряшов "Делайте продукт и ничего более"Сергей Кудряшов "Делайте продукт и ничего более"
Сергей Кудряшов "Делайте продукт и ничего более"
Agile Base Camp
 
Максим Ткачук "Hard Rock Design"
Максим Ткачук "Hard Rock Design"Максим Ткачук "Hard Rock Design"
Максим Ткачук "Hard Rock Design"
Agile Base Camp
 
Daniel Lewis "How to build a motivational system"
Daniel Lewis "How to build a motivational system"Daniel Lewis "How to build a motivational system"
Daniel Lewis "How to build a motivational system"
Agile Base Camp
 
Мark Phillips "Intoduction to Silicon Valley"
Мark Phillips "Intoduction to Silicon Valley"Мark Phillips "Intoduction to Silicon Valley"
Мark Phillips "Intoduction to Silicon Valley"
Agile Base Camp
 
JDaniel Lewis "How to build a motivational system"
JDaniel Lewis "How to build a motivational system"JDaniel Lewis "How to build a motivational system"
JDaniel Lewis "How to build a motivational system"
Agile Base Camp
 
Алексей Колупаев "Неочевидная разница между фальстартом, стартапом и страпоном"
Алексей Колупаев "Неочевидная разница между фальстартом, стартапом и страпоном"Алексей Колупаев "Неочевидная разница между фальстартом, стартапом и страпоном"
Алексей Колупаев "Неочевидная разница между фальстартом, стартапом и страпоном"
Agile Base Camp
 
Боремся со сложностью по-функциональному
Боремся со сложностью по-функциональномуБоремся со сложностью по-функциональному
Боремся со сложностью по-функциональному
Agile Base Camp
 
Brad Hoover "Differences between building a consumer vs. enterprise product"
Brad Hoover  "Differences between building a consumer vs. enterprise product"Brad Hoover  "Differences between building a consumer vs. enterprise product"
Brad Hoover "Differences between building a consumer vs. enterprise product"
Agile Base Camp
 
Сергей Кудряшов "Небольшие команды побеждают мир"
Сергей Кудряшов "Небольшие команды побеждают мир"Сергей Кудряшов "Небольшие команды побеждают мир"
Сергей Кудряшов "Небольшие команды побеждают мир"
Agile Base Camp
 
Решение коммуникативных проблем в распределенных командах
Решение коммуникативных проблем в распределенных командахРешение коммуникативных проблем в распределенных командах
Решение коммуникативных проблем в распределенных командах
Agile Base Camp
 
Игорь Лужанский - Динамика развития отношений в команде разработчиков
Игорь Лужанский - Динамика развития отношений в команде разработчиковИгорь Лужанский - Динамика развития отношений в команде разработчиков
Игорь Лужанский - Динамика развития отношений в команде разработчиков
Agile Base Camp
 
Nadia Zemskova - Invention of bicycle
Nadia Zemskova - Invention of bicycleNadia Zemskova - Invention of bicycle
Nadia Zemskova - Invention of bicycle
Agile Base Camp
 
Yuriy malyi testinginscrumagile
Yuriy malyi testinginscrumagileYuriy malyi testinginscrumagile
Yuriy malyi testinginscrumagile
Agile Base Camp
 
Доклад Гапонова "За двумя требованиями погонишься"
Доклад Гапонова "За двумя требованиями погонишься"Доклад Гапонова "За двумя требованиями погонишься"
Доклад Гапонова "За двумя требованиями погонишься"
Agile Base Camp
 

More from Agile Base Camp (20)

Алексей Колупаев "За что ещё платят менеджеру?"
Алексей Колупаев "За что ещё платят менеджеру?"Алексей Колупаев "За что ещё платят менеджеру?"
Алексей Колупаев "За что ещё платят менеджеру?"
 
Александр Белецкий "Архитектура Javascript приложений"
 Александр Белецкий "Архитектура Javascript приложений" Александр Белецкий "Архитектура Javascript приложений"
Александр Белецкий "Архитектура Javascript приложений"
 
Сергей Кудряшов "Делайте продукт и ничего более"
Сергей Кудряшов "Делайте продукт и ничего более"Сергей Кудряшов "Делайте продукт и ничего более"
Сергей Кудряшов "Делайте продукт и ничего более"
 
Максим Ткачук "Hard Rock Design"
Максим Ткачук "Hard Rock Design"Максим Ткачук "Hard Rock Design"
Максим Ткачук "Hard Rock Design"
 
Daniel Lewis "How to build a motivational system"
Daniel Lewis "How to build a motivational system"Daniel Lewis "How to build a motivational system"
Daniel Lewis "How to build a motivational system"
 
Мark Phillips "Intoduction to Silicon Valley"
Мark Phillips "Intoduction to Silicon Valley"Мark Phillips "Intoduction to Silicon Valley"
Мark Phillips "Intoduction to Silicon Valley"
 
JDaniel Lewis "How to build a motivational system"
JDaniel Lewis "How to build a motivational system"JDaniel Lewis "How to build a motivational system"
JDaniel Lewis "How to build a motivational system"
 
Алексей Колупаев "Неочевидная разница между фальстартом, стартапом и страпоном"
Алексей Колупаев "Неочевидная разница между фальстартом, стартапом и страпоном"Алексей Колупаев "Неочевидная разница между фальстартом, стартапом и страпоном"
Алексей Колупаев "Неочевидная разница между фальстартом, стартапом и страпоном"
 
Боремся со сложностью по-функциональному
Боремся со сложностью по-функциональномуБоремся со сложностью по-функциональному
Боремся со сложностью по-функциональному
 
Brad Hoover "Differences between building a consumer vs. enterprise product"
Brad Hoover  "Differences between building a consumer vs. enterprise product"Brad Hoover  "Differences between building a consumer vs. enterprise product"
Brad Hoover "Differences between building a consumer vs. enterprise product"
 
Сергей Кудряшов "Небольшие команды побеждают мир"
Сергей Кудряшов "Небольшие команды побеждают мир"Сергей Кудряшов "Небольшие команды побеждают мир"
Сергей Кудряшов "Небольшие команды побеждают мир"
 
Решение коммуникативных проблем в распределенных командах
Решение коммуникативных проблем в распределенных командахРешение коммуникативных проблем в распределенных командах
Решение коммуникативных проблем в распределенных командах
 
Deadline management
Deadline managementDeadline management
Deadline management
 
Paper prototyping
Paper prototypingPaper prototyping
Paper prototyping
 
Роман Чернышев “Организационные риски в коммерческих проектах”
Роман Чернышев “Организационные риски в коммерческих проектах”Роман Чернышев “Организационные риски в коммерческих проектах”
Роман Чернышев “Организационные риски в коммерческих проектах”
 
Игорь Лужанский - Динамика развития отношений в команде разработчиков
Игорь Лужанский - Динамика развития отношений в команде разработчиковИгорь Лужанский - Динамика развития отношений в команде разработчиков
Игорь Лужанский - Динамика развития отношений в команде разработчиков
 
Nadia Zemskova - Invention of bicycle
Nadia Zemskova - Invention of bicycleNadia Zemskova - Invention of bicycle
Nadia Zemskova - Invention of bicycle
 
Yuriy malyi testinginscrumagile
Yuriy malyi testinginscrumagileYuriy malyi testinginscrumagile
Yuriy malyi testinginscrumagile
 
Testing in Scrum - Yuriy Malyi
Testing in Scrum - Yuriy Malyi Testing in Scrum - Yuriy Malyi
Testing in Scrum - Yuriy Malyi
 
Доклад Гапонова "За двумя требованиями погонишься"
Доклад Гапонова "За двумя требованиями погонишься"Доклад Гапонова "За двумя требованиями погонишься"
Доклад Гапонова "За двумя требованиями погонишься"
 

Recently uploaded

Artificial Intelligence: Facts and Myths
Artificial Intelligence: Facts and MythsArtificial Intelligence: Facts and Myths
Artificial Intelligence: Facts and Myths
Joaquim Jorge
 
IAC 2024 - IA Fast Track to Search Focused AI Solutions
IAC 2024 - IA Fast Track to Search Focused AI SolutionsIAC 2024 - IA Fast Track to Search Focused AI Solutions
IAC 2024 - IA Fast Track to Search Focused AI Solutions
Enterprise Knowledge
 

Recently uploaded (20)

Scaling API-first – The story of a global engineering organization
Scaling API-first – The story of a global engineering organizationScaling API-first – The story of a global engineering organization
Scaling API-first – The story of a global engineering organization
 
The Role of Taxonomy and Ontology in Semantic Layers - Heather Hedden.pdf
The Role of Taxonomy and Ontology in Semantic Layers - Heather Hedden.pdfThe Role of Taxonomy and Ontology in Semantic Layers - Heather Hedden.pdf
The Role of Taxonomy and Ontology in Semantic Layers - Heather Hedden.pdf
 
What Are The Drone Anti-jamming Systems Technology?
What Are The Drone Anti-jamming Systems Technology?What Are The Drone Anti-jamming Systems Technology?
What Are The Drone Anti-jamming Systems Technology?
 
Understanding Discord NSFW Servers A Guide for Responsible Users.pdf
Understanding Discord NSFW Servers A Guide for Responsible Users.pdfUnderstanding Discord NSFW Servers A Guide for Responsible Users.pdf
Understanding Discord NSFW Servers A Guide for Responsible Users.pdf
 
Factors to Consider When Choosing Accounts Payable Services Providers.pptx
Factors to Consider When Choosing Accounts Payable Services Providers.pptxFactors to Consider When Choosing Accounts Payable Services Providers.pptx
Factors to Consider When Choosing Accounts Payable Services Providers.pptx
 
Bajaj Allianz Life Insurance Company - Insurer Innovation Award 2024
Bajaj Allianz Life Insurance Company - Insurer Innovation Award 2024Bajaj Allianz Life Insurance Company - Insurer Innovation Award 2024
Bajaj Allianz Life Insurance Company - Insurer Innovation Award 2024
 
TrustArc Webinar - Stay Ahead of US State Data Privacy Law Developments
TrustArc Webinar - Stay Ahead of US State Data Privacy Law DevelopmentsTrustArc Webinar - Stay Ahead of US State Data Privacy Law Developments
TrustArc Webinar - Stay Ahead of US State Data Privacy Law Developments
 
Exploring the Future Potential of AI-Enabled Smartphone Processors
Exploring the Future Potential of AI-Enabled Smartphone ProcessorsExploring the Future Potential of AI-Enabled Smartphone Processors
Exploring the Future Potential of AI-Enabled Smartphone Processors
 
Strategies for Unlocking Knowledge Management in Microsoft 365 in the Copilot...
Strategies for Unlocking Knowledge Management in Microsoft 365 in the Copilot...Strategies for Unlocking Knowledge Management in Microsoft 365 in the Copilot...
Strategies for Unlocking Knowledge Management in Microsoft 365 in the Copilot...
 
Artificial Intelligence: Facts and Myths
Artificial Intelligence: Facts and MythsArtificial Intelligence: Facts and Myths
Artificial Intelligence: Facts and Myths
 
[2024]Digital Global Overview Report 2024 Meltwater.pdf
[2024]Digital Global Overview Report 2024 Meltwater.pdf[2024]Digital Global Overview Report 2024 Meltwater.pdf
[2024]Digital Global Overview Report 2024 Meltwater.pdf
 
Mastering MySQL Database Architecture: Deep Dive into MySQL Shell and MySQL R...
Mastering MySQL Database Architecture: Deep Dive into MySQL Shell and MySQL R...Mastering MySQL Database Architecture: Deep Dive into MySQL Shell and MySQL R...
Mastering MySQL Database Architecture: Deep Dive into MySQL Shell and MySQL R...
 
The Codex of Business Writing Software for Real-World Solutions 2.pptx
The Codex of Business Writing Software for Real-World Solutions 2.pptxThe Codex of Business Writing Software for Real-World Solutions 2.pptx
The Codex of Business Writing Software for Real-World Solutions 2.pptx
 
Axa Assurance Maroc - Insurer Innovation Award 2024
Axa Assurance Maroc - Insurer Innovation Award 2024Axa Assurance Maroc - Insurer Innovation Award 2024
Axa Assurance Maroc - Insurer Innovation Award 2024
 
Data Cloud, More than a CDP by Matt Robison
Data Cloud, More than a CDP by Matt RobisonData Cloud, More than a CDP by Matt Robison
Data Cloud, More than a CDP by Matt Robison
 
A Call to Action for Generative AI in 2024
A Call to Action for Generative AI in 2024A Call to Action for Generative AI in 2024
A Call to Action for Generative AI in 2024
 
08448380779 Call Girls In Greater Kailash - I Women Seeking Men
08448380779 Call Girls In Greater Kailash - I Women Seeking Men08448380779 Call Girls In Greater Kailash - I Women Seeking Men
08448380779 Call Girls In Greater Kailash - I Women Seeking Men
 
From Event to Action: Accelerate Your Decision Making with Real-Time Automation
From Event to Action: Accelerate Your Decision Making with Real-Time AutomationFrom Event to Action: Accelerate Your Decision Making with Real-Time Automation
From Event to Action: Accelerate Your Decision Making with Real-Time Automation
 
Driving Behavioral Change for Information Management through Data-Driven Gree...
Driving Behavioral Change for Information Management through Data-Driven Gree...Driving Behavioral Change for Information Management through Data-Driven Gree...
Driving Behavioral Change for Information Management through Data-Driven Gree...
 
IAC 2024 - IA Fast Track to Search Focused AI Solutions
IAC 2024 - IA Fast Track to Search Focused AI SolutionsIAC 2024 - IA Fast Track to Search Focused AI Solutions
IAC 2024 - IA Fast Track to Search Focused AI Solutions
 

Саша Белецкий "Continuous Delivery в продуктовой разработке"

  • 1. Why / How / When Do I need CONTINUOS DELIVERY?
  • 2. Product Developer, E-conomic (Ciklum) Trainer, XP Injection beletsky.net @alexbeletsky github.com/alexanderbeletsky
  • 4. The story of one project  Very simple GTD web application  .NET technological stack based  VPS hosted  Nothing fancy, seriously
  • 5. •Prepare release branch and merge all required changes there •Update version in uppercut.config •Commit changes to SCM • Run build.bat • FTP package to deployment server •RDP to deployment server •Unpackage .zip content to temp folder •Manually backup staging database •Stop Stage Web site in IIS manager • Run migration scripts for staging database • Run deployment scripts for staging environment • Run Stage Web site in IIS manager • Test manually that on staging server, that build works fine •If something missed (note it is 60% of all cases) go to 1 •Manually backup production database •Stop Production Web site in IIS manager •Run migration scripts for production database • Run deployment scripts for production environment • Run Production Web site in IIS manager •Test manually that on production server, that build works fine Delivery Script ...
  • 6. If it FAILS in a MIDDLE — REPEAT Lucky day: 0.5 h Bad day: 2 h
  • 7. Read those figures as: My customers suffer for 2 hours once in 2 weeks, just becase I do update
  • 8. And by the way...  It's just takes too much developers time  It's boring  Sooner or later you start to hate deployments
  • 9. For bussiness people and managers  “Time-to-Market” factor is very low  Feedback cycle is very long  Customer dissatisfaction is very high
  • 12. Deployment != Delivery Deployment: product IS availble Delivery: product IS availble for users
  • 14. All you have to know, the secret formula of Continuous Deployment
  • 15. (Integration + Deployment) * Continuous = Continuous Deployment
  • 16. Integration is for: fetching latest sources build all product configuration items run unit tests run functional tests generate documentation package all artifacts Deployment is for: update test servers
  • 17. 1. Build and deploy locally with one click 2. Define SCM model based 3. Run it continuosly Recipe of Success:
  • 18.  Build and tests execution  Binaries versioning  SCM labeling  Database migration  Web application deployment Step 1 - Build and Deploy
  • 19.  Build and tests execution  Binaries versioning  SCM labeling  Database migration  Web application deployment Step 1 - Build and Deploy Solved by Chuck Norris tools
  • 20. UppercuT batch build framework RoundhousE database migrations DropicK application deployment Meet Chuck Norris Tools
  • 21. UppercuT Easy to use Configurable by XML Supports config for different environment RoundhousE Easy to use Supports MS SQL, MySQL, Postgress Migration by SQL Scripts DropkicK Deployment script as C# code Support for services and sites Different plans
  • 22. Available on a Github
  • 23. > deploy.bat LOCAL > deploy.bat STAGING > deploy.bat PRODUCTION Step 1 - Build and Deploy ACCOMPLISHED
  • 24.  DVCS are simply rule (Git, HG)  TRUNK is production ready  Keep interations in branches  Keep features in branches Step 2 - Define SCM model
  • 25. Ideal branches count = 2 master develop Typical branches count >= 2 master develop release hotfix
  • 27. Step 2 - Define SCM model ACCOMPLISHED > git checkout develop > git merge --no-ff myfeature > git branch -d myfeature > git push origin develop
  • 28.  Availability of Build Server  SCM build triggering  Automatically run deployment script  Roll out application to production Step 3 - Run it continuously
  • 29.  Fork of famous Hudson project  Open source  Java based  Easy start, easy go  Tons of available plugins Say 'Hello' to Jenkins
  • 30. All configuration could be done in UI
  • 31. Jenkins Instance is deployed for each environment
  • 33. As soon as Staging “Looks Alright”, deploy to production
  • 34. > git checkout master > git merge develop > git tag -a 1.2 > git push origin master Deployment is nothing more as pushing changes to origin/master
  • 35. Step 3 - Run it continuosly ACCOMPLISHED Changes are picked up, built, tested and deployed automatically
  • 37. As sooner as better
  • 38. And?
  • 39. Results:  Going live time improved 45x  Site down time reduced 300x  No more iterations, Kanban  Staging is updating with every push  Setup and forget