SlideShare a Scribd company logo
1 of 23
DEPLOYMENT AUTOMATION
& CONTINUOUS DEPLOYMENT

           Szymon Pobiega
ONLY WEB APPLICATIONS
MANUAL SERVER CONFIGURATION
ONLY SIT ENVIRONMENT



                      PUSH MODEL
                     SPECIAL BUILD
GO NOT TO THE ELVES ARCHITECTS FOR




                                     http://bit.ly/AqFnOf
COUNSEL, FOR THEY WILL SAY BOTH NO
             AND YES
http://bit.ly/z5Fpp3
DEPLOYMENT AUTOMATION
& CONTINUOUS DEPLOYMENT

           Szymon Pobiega
HOW LONG WOULD IT TAKE YOUR
ORGANIZATION TO DEPLOY A CHANGE
THAT INVOLVES JUST ONE SINGLE LINE
            OF CODE?

                  Mary Poppendieck
FEEDBACK
WAIT

                                    NO
        CHECK VERSION OF
          LATEST BUILD
                                    NEW?
                                         YES

                  RUN INTEGRATION
UPDATE RC STATE
                        TESTS
                                    DEPLOY
REPEATABILITY
PS C:PowerShell>

COMMON.BAT     PARAMS.BAT



       DEPLOY_A.BAT         APPS.CSV      DEPLOY.PS1


         DEPLOY_B.BAT

             DEPLOY_C.BAT        DEPLOY-ALL.PS1




    DEPLOY_ALL.BAT
PS C:PowerShell>



    Import-CSV

   Invoke-Command
PS C:PowerShellLINQ>

PS C:$a = $b `                 var a = b

| ForEach-Object { 2 * $_ } `   .Select(x=> 2*x)

| Where-Object { $_ -gt 0 } `   .Where(x=> x>0)

| Select-Object -Unique `       .Distinct()

| Select-Object -Skip 1 `       .Skip(1)

| Select-Object -First 2        .Take(2);
CONFIGURATION
 MANAGEMENT
ENV +
 ENV
          APP



SHARED   APP
ENVIRONMENTS , ROLES & MACHINES

 PRODUCTION     TESTING      CI


        WEB-1
                 TEST-1


WEB-2                        CI-1

                 TEST-2
        WEB-3



APP-1
WEB APPS AND SCHEDULED JOBS
AUTOMATIC SERVER CONFIGURATION
PULL MODEL



               EVERY BUILD CREATES RC
          VERSION-CONTROLLED CONFIG
                    PACKAGE SECURITY
2 WORKWEEKS TO IMPLEMENT
SAVED 1 WORKWEEK DURING FIRST MONTH




         PRODUCTION DEPLOYMENT BY BA
    PRODUCTION DEPLOYMENT EVERY WEEK
PROPER ENVIRONMENT DESIGN

                        POWERSHELL
                        SCRIPTING




EVENT SOURCING ARCHITECTURE
ZERO-DOWNTIME DEPLOYMENT
MONITORING & INSTRUMENTATION
              VM PROVISIONING
THANK YOU


   SZYMON@POBIEGA.COM
SIMON-SAYS-ARCHITECTURE.COM
     @SZYMONPOBIEGA

More Related Content

Viewers also liked

Integrando web services j2 ee com
Integrando web services j2 ee comIntegrando web services j2 ee com
Integrando web services j2 ee com
msincic
 
Acque
AcqueAcque
Acque
sara
 
DDD-Enabling Architectures with EventStore
DDD-Enabling Architectures with EventStoreDDD-Enabling Architectures with EventStore
DDD-Enabling Architectures with EventStore
SzymonPobiega
 
Domain Driven Design, czyli progamowanie przez modelowanie
Domain Driven Design, czyli progamowanie przez modelowanieDomain Driven Design, czyli progamowanie przez modelowanie
Domain Driven Design, czyli progamowanie przez modelowanie
SzymonPobiega
 
Tipos de mosquetones
Tipos de mosquetonesTipos de mosquetones
Tipos de mosquetones
uzzi
 
управления репутацией и коммуникациями
управления репутацией и коммуникациямиуправления репутацией и коммуникациями
управления репутацией и коммуникациями
oleksandrdrozd
 
управления репутацией и коммуникациями
управления репутацией и коммуникациямиуправления репутацией и коммуникациями
управления репутацией и коммуникациями
oleksandrdrozd
 

Viewers also liked (19)

WCF 4
WCF 4WCF 4
WCF 4
 
Growing Change Agile Leaders - Why, What and How
Growing Change Agile Leaders - Why, What and HowGrowing Change Agile Leaders - Why, What and How
Growing Change Agile Leaders - Why, What and How
 
Integrando web services j2 ee com
Integrando web services j2 ee comIntegrando web services j2 ee com
Integrando web services j2 ee com
 
Deployment
DeploymentDeployment
Deployment
 
Acque
AcqueAcque
Acque
 
Mongo db japan
Mongo db japanMongo db japan
Mongo db japan
 
Thoughts on MongoDB Analytics
Thoughts on MongoDB AnalyticsThoughts on MongoDB Analytics
Thoughts on MongoDB Analytics
 
Thoughts on consistency models
Thoughts on consistency modelsThoughts on consistency models
Thoughts on consistency models
 
Intro to MongoDB and datamodeling
Intro to MongoDB and datamodeling Intro to MongoDB and datamodeling
Intro to MongoDB and datamodeling
 
DDD-Enabling Architectures with EventStore
DDD-Enabling Architectures with EventStoreDDD-Enabling Architectures with EventStore
DDD-Enabling Architectures with EventStore
 
Domain Driven Design, czyli progamowanie przez modelowanie
Domain Driven Design, czyli progamowanie przez modelowanieDomain Driven Design, czyli progamowanie przez modelowanie
Domain Driven Design, czyli progamowanie przez modelowanie
 
Schema Design with MongoDB
Schema Design with MongoDBSchema Design with MongoDB
Schema Design with MongoDB
 
Mongo Web Apps: OSCON 2011
Mongo Web Apps: OSCON 2011Mongo Web Apps: OSCON 2011
Mongo Web Apps: OSCON 2011
 
Tipos de mosquetones
Tipos de mosquetonesTipos de mosquetones
Tipos de mosquetones
 
управления репутацией и коммуникациями
управления репутацией и коммуникациямиуправления репутацией и коммуникациями
управления репутацией и коммуникациями
 
управления репутацией и коммуникациями
управления репутацией и коммуникациямиуправления репутацией и коммуникациями
управления репутацией и коммуникациями
 
брендывинтернет2011парадоксыст
брендывинтернет2011парадоксыстбрендывинтернет2011парадоксыст
брендывинтернет2011парадоксыст
 
Prodigi lds july-2011
Prodigi lds july-2011Prodigi lds july-2011
Prodigi lds july-2011
 
EventStore as a message broker
EventStore as a message brokerEventStore as a message broker
EventStore as a message broker
 

Similar to Continuous Delivery

Continuous delivery continuous integration 0.3
Continuous delivery continuous integration 0.3Continuous delivery continuous integration 0.3
Continuous delivery continuous integration 0.3
Alex Tregubov
 
From ci to cd - LavaJug 2012
From ci to cd  - LavaJug 2012From ci to cd  - LavaJug 2012
From ci to cd - LavaJug 2012
Henri Gomez
 
Modernizing Traditional Applications with Docker EE: From PoC to Production
Modernizing Traditional Applications with Docker EE: From PoC to ProductionModernizing Traditional Applications with Docker EE: From PoC to Production
Modernizing Traditional Applications with Docker EE: From PoC to Production
Docker, Inc.
 

Similar to Continuous Delivery (20)

Stripes RJUG March 2012
Stripes RJUG March 2012Stripes RJUG March 2012
Stripes RJUG March 2012
 
Continuous delivery continuous integration 0.3
Continuous delivery continuous integration 0.3Continuous delivery continuous integration 0.3
Continuous delivery continuous integration 0.3
 
Serverless in Production, an experience report (AWS UG South Wales)
Serverless in Production, an experience report (AWS UG South Wales)Serverless in Production, an experience report (AWS UG South Wales)
Serverless in Production, an experience report (AWS UG South Wales)
 
Serverless in production, an experience report (FullStack 2018)
Serverless in production, an experience report (FullStack 2018)Serverless in production, an experience report (FullStack 2018)
Serverless in production, an experience report (FullStack 2018)
 
Architecting Applications
Architecting ApplicationsArchitecting Applications
Architecting Applications
 
Continuous delivery @CD Summit Stockholm
Continuous delivery @CD Summit StockholmContinuous delivery @CD Summit Stockholm
Continuous delivery @CD Summit Stockholm
 
Autoscaling, Chef and New Relic
Autoscaling, Chef and New RelicAutoscaling, Chef and New Relic
Autoscaling, Chef and New Relic
 
Refactoring & Restructuring - Improving the Code and Structure of Software
Refactoring & Restructuring - Improving the Code and Structure of SoftwareRefactoring & Restructuring - Improving the Code and Structure of Software
Refactoring & Restructuring - Improving the Code and Structure of Software
 
Serverless in production, an experience report (CoDe-Conf)
Serverless in production, an experience report (CoDe-Conf)Serverless in production, an experience report (CoDe-Conf)
Serverless in production, an experience report (CoDe-Conf)
 
(GAM304) How Riot Games re:Invented Their AWS Model | AWS re:Invent 2014
(GAM304) How Riot Games re:Invented Their AWS Model | AWS re:Invent 2014(GAM304) How Riot Games re:Invented Their AWS Model | AWS re:Invent 2014
(GAM304) How Riot Games re:Invented Their AWS Model | AWS re:Invent 2014
 
Continuous delivery from the trenches Redhat Forum Edition
Continuous delivery from the trenches Redhat Forum EditionContinuous delivery from the trenches Redhat Forum Edition
Continuous delivery from the trenches Redhat Forum Edition
 
AWS Lambda from the trenches
AWS Lambda from the trenchesAWS Lambda from the trenches
AWS Lambda from the trenches
 
Serverless in production, an experience report
Serverless in production, an experience reportServerless in production, an experience report
Serverless in production, an experience report
 
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
 
From ci to cd - LavaJug 2012
From ci to cd  - LavaJug 2012From ci to cd  - LavaJug 2012
From ci to cd - LavaJug 2012
 
Kubernetes and the 12 factor cloud apps
Kubernetes and the 12 factor cloud appsKubernetes and the 12 factor cloud apps
Kubernetes and the 12 factor cloud apps
 
Provisioning the IoT
Provisioning the IoTProvisioning the IoT
Provisioning the IoT
 
Evolutionary infrastructure agile 2018 - kief morris
Evolutionary infrastructure   agile 2018 - kief morrisEvolutionary infrastructure   agile 2018 - kief morris
Evolutionary infrastructure agile 2018 - kief morris
 
Pentagon
PentagonPentagon
Pentagon
 
Modernizing Traditional Applications with Docker EE: From PoC to Production
Modernizing Traditional Applications with Docker EE: From PoC to ProductionModernizing Traditional Applications with Docker EE: From PoC to Production
Modernizing Traditional Applications with Docker EE: From PoC to Production
 

Recently uploaded

Why Teams call analytics are critical to your entire business
Why Teams call analytics are critical to your entire businessWhy Teams call analytics are critical to your entire business
Why Teams call analytics are critical to your entire business
panagenda
 
Cloud Frontiers: A Deep Dive into Serverless Spatial Data and FME
Cloud Frontiers:  A Deep Dive into Serverless Spatial Data and FMECloud Frontiers:  A Deep Dive into Serverless Spatial Data and FME
Cloud Frontiers: A Deep Dive into Serverless Spatial Data and FME
Safe Software
 
Architecting Cloud Native Applications
Architecting Cloud Native ApplicationsArchitecting Cloud Native Applications
Architecting Cloud Native Applications
WSO2
 

Recently uploaded (20)

Ransomware_Q4_2023. The report. [EN].pdf
Ransomware_Q4_2023. The report. [EN].pdfRansomware_Q4_2023. The report. [EN].pdf
Ransomware_Q4_2023. The report. [EN].pdf
 
How to Troubleshoot Apps for the Modern Connected Worker
How to Troubleshoot Apps for the Modern Connected WorkerHow to Troubleshoot Apps for the Modern Connected Worker
How to Troubleshoot Apps for the Modern Connected Worker
 
Why Teams call analytics are critical to your entire business
Why Teams call analytics are critical to your entire businessWhy Teams call analytics are critical to your entire business
Why Teams call analytics are critical to your entire business
 
Boost Fertility New Invention Ups Success Rates.pdf
Boost Fertility New Invention Ups Success Rates.pdfBoost Fertility New Invention Ups Success Rates.pdf
Boost Fertility New Invention Ups Success Rates.pdf
 
Apidays New York 2024 - Scaling API-first by Ian Reasor and Radu Cotescu, Adobe
Apidays New York 2024 - Scaling API-first by Ian Reasor and Radu Cotescu, AdobeApidays New York 2024 - Scaling API-first by Ian Reasor and Radu Cotescu, Adobe
Apidays New York 2024 - Scaling API-first by Ian Reasor and Radu Cotescu, Adobe
 
Cloud Frontiers: A Deep Dive into Serverless Spatial Data and FME
Cloud Frontiers:  A Deep Dive into Serverless Spatial Data and FMECloud Frontiers:  A Deep Dive into Serverless Spatial Data and FME
Cloud Frontiers: A Deep Dive into Serverless Spatial Data and FME
 
Strategies for Landing an Oracle DBA Job as a Fresher
Strategies for Landing an Oracle DBA Job as a FresherStrategies for Landing an Oracle DBA Job as a Fresher
Strategies for Landing an Oracle DBA Job as a Fresher
 
ICT role in 21st century education and its challenges
ICT role in 21st century education and its challengesICT role in 21st century education and its challenges
ICT role in 21st century education and its challenges
 
DEV meet-up UiPath Document Understanding May 7 2024 Amsterdam
DEV meet-up UiPath Document Understanding May 7 2024 AmsterdamDEV meet-up UiPath Document Understanding May 7 2024 Amsterdam
DEV meet-up UiPath Document Understanding May 7 2024 Amsterdam
 
TrustArc Webinar - Unlock the Power of AI-Driven Data Discovery
TrustArc Webinar - Unlock the Power of AI-Driven Data DiscoveryTrustArc Webinar - Unlock the Power of AI-Driven Data Discovery
TrustArc Webinar - Unlock the Power of AI-Driven Data Discovery
 
ProductAnonymous-April2024-WinProductDiscovery-MelissaKlemke
ProductAnonymous-April2024-WinProductDiscovery-MelissaKlemkeProductAnonymous-April2024-WinProductDiscovery-MelissaKlemke
ProductAnonymous-April2024-WinProductDiscovery-MelissaKlemke
 
Apidays New York 2024 - APIs in 2030: The Risk of Technological Sleepwalk by ...
Apidays New York 2024 - APIs in 2030: The Risk of Technological Sleepwalk by ...Apidays New York 2024 - APIs in 2030: The Risk of Technological Sleepwalk by ...
Apidays New York 2024 - APIs in 2030: The Risk of Technological Sleepwalk by ...
 
Architecting Cloud Native Applications
Architecting Cloud Native ApplicationsArchitecting Cloud Native Applications
Architecting Cloud Native Applications
 
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
 
Strategize a Smooth Tenant-to-tenant Migration and Copilot Takeoff
Strategize a Smooth Tenant-to-tenant Migration and Copilot TakeoffStrategize a Smooth Tenant-to-tenant Migration and Copilot Takeoff
Strategize a Smooth Tenant-to-tenant Migration and Copilot Takeoff
 
EMPOWERMENT TECHNOLOGY GRADE 11 QUARTER 2 REVIEWER
EMPOWERMENT TECHNOLOGY GRADE 11 QUARTER 2 REVIEWEREMPOWERMENT TECHNOLOGY GRADE 11 QUARTER 2 REVIEWER
EMPOWERMENT TECHNOLOGY GRADE 11 QUARTER 2 REVIEWER
 
Manulife - Insurer Transformation Award 2024
Manulife - Insurer Transformation Award 2024Manulife - Insurer Transformation Award 2024
Manulife - Insurer Transformation Award 2024
 
Repurposing LNG terminals for Hydrogen Ammonia: Feasibility and Cost Saving
Repurposing LNG terminals for Hydrogen Ammonia: Feasibility and Cost SavingRepurposing LNG terminals for Hydrogen Ammonia: Feasibility and Cost Saving
Repurposing LNG terminals for Hydrogen Ammonia: Feasibility and Cost Saving
 
Apidays New York 2024 - Accelerating FinTech Innovation by Vasa Krishnan, Fin...
Apidays New York 2024 - Accelerating FinTech Innovation by Vasa Krishnan, Fin...Apidays New York 2024 - Accelerating FinTech Innovation by Vasa Krishnan, Fin...
Apidays New York 2024 - Accelerating FinTech Innovation by Vasa Krishnan, Fin...
 
Apidays New York 2024 - The Good, the Bad and the Governed by David O'Neill, ...
Apidays New York 2024 - The Good, the Bad and the Governed by David O'Neill, ...Apidays New York 2024 - The Good, the Bad and the Governed by David O'Neill, ...
Apidays New York 2024 - The Good, the Bad and the Governed by David O'Neill, ...
 

Continuous Delivery

Editor's Notes

  1. Przedstawić sięSkąd pomysł na prezentację? – problem do rozwiązania. Jestem inżynierem – rozwiązuję problemy
  2. Co to jest webdeploy? Zapytać ludzi na SaliCo to jest push?Rozwiązanie kiepsko się skalowało wraz ze wzrostem skomplikowania solution
  3. Krótko bardzo kto to TrevorSkąd jest cytat: Władca Pierścieni: Frodo do Gildora (na zdjęciu Elrond)
  4. Architekt się załamał nad moją nieodpowiedzialnością
  5. Następnie przyszła porcja teorii w postaci znakomitej książkiKolejne założenia: deployment na każde środowisko ma być wykonywany zgodnie z tą samą procedurą a deployowane mają być dokładnie te same binaria.
  6. build
  7. agile software development is all about mutually reinforcing hierarchical feedback loops
  8. Ostatnim elementem układanki jest implementacja potoku.PowerShellWindowsSchedulerMetadane – która wersja wdrożona na które środowisko?
  9. one uniform repeatable manual deployment process for all environments is better than three separatate automated processes for each environment
  10. Wiele plikow bat. Bardzo ograniczony język. Skomplikowna składania, szczególnie pętli. Brak łatwego sposobu oporowania na strukturach danych wyższego poziomu takich jak tablice i rekordy – niezbędne do obsługi metadatanychGlowna pętla w DeployAll iteruje po wszystkich plikach pasujących do wzorca nazwy.Każdy plik referuje params (ładuje zmienne określające parametry wszystkich aplikacji), przepisuje wartości zmiennych aplikacji X do zmiennych wspólnych i wywołuje common.bat.Parametry aplikacji są wczytane z pliku metadanych. Pętla iteruje po aplikacjach i dla każdej wywołuje Deploy
  11. Import-CSVKonwertuje CSV na listę anonimowych obiektów, nazwy properties w nagłówku. Invoke-CommandWykorzystuje WS-Management via WinRM (http/s, xml). Transportuje zserializowany blok skryptu do zdalnego hosta, wykonuje go i zwraca wyniki.Natywne wsparcie dla serializacji XML w PSAutentykacja Windows, CredSSP
  12. ForEach – jak połączenie foreach oraz .Select. Iteruje po obiektach wykonując operację. Zwraca wynik operacji.Inne: sort-object, group-object
  13. it is easier to break your system by changing a single line of configuration then it is by changing a single line of code
  14. Kolejnym z fundamentów continous delivery jest zarządzanie konfiguracją. Konfiguracja musi być wersjonowana.Nasze podejście: konfiguracja w VCS, dodawana do paczki wdrożeniowej.Podział wg. dwóch ortogolalnych kryteriów: zmienności względem środowiska i względem aplikacji/procesuPodczas deplojmentu, spośród wszystkich plików konfiguracyjnych wybierane są te właściwe dla danej kombinacji środowiska i aplikacjiPrzykładyHelpers:appSettings file=DirectoryJunction (mklink /J – directory hard link)
  15. Środowisko: DEV, TEST, PROD, DR. Nazwany zbiór maszyn na który deplojowana jest aplikacjaRola: nazwany zbiór aplikacji deplojowany wspólnie na wybrene maszyny. Jednostka deplojmentuMaszyna: fizyczny lub wirtualny serwerKompromis pomiędzy elastycznością (możliwością deplojowania wszystkiego wszędzie), a zwięzłością i łatwością zarządzania
  16. MSBuild – skrypt pakujący. W starym TFS także skrypt budującyPS – wszędobylski klej spajający rozwiązanieWebDeploy – mechanizm paczkowania. Alternatywnie – NuGet lub OpenWrap. WebDeploy łatwy dla aplikacji webowych – buduje odpowiednie paczki na bazie projektu Web ApplicationCurl – download paczek, komunikacja z trackerem RCPackaging tool – brak wsparcia dla podpisu cyfrowego ootb. Dodatkowo zipuje bez koniecznosci instalowania 3rd party toolRC tracking – mały tool a cieszy
  17. Co to jest webdeploy? Zapytać ludzi na SaliCo to jest push?Rozwiązanie kiepsko się skalowało wraz ze wzrostem skomplikowania solution
  18. See the state & deploy