SlideShare une entreprise Scribd logo
1  sur  16
Automatize-*
  Crif Tech Days 2012



  Boris Bucha
Tech days 2011
1. Get it           2. Configure it

3. Build it                           4. Run it




                 5. Deploy it
“There should be two tasks for a human being to
perform to deploy software into a development,
test, or production environment: to pick the
version and environment and to press the
“deploy” button.”




                                 [Continuous Delivery]
What we aim for?

• Build application binaries – ant, make…   √

• Configuration       (tools ??)            X
• Database            (tools ??)            X
• Delivery            (tools ??)            X
Why?

•   NHibernate:   63K LoC
•   Bailiffs:     157K LoC
•   R#:           500K LoC
•   BAM:          1M LoC
•   Russian CB:   1.3M LoC
•   .NET4:        2M LoC
VCS almighty
• DB scripts … all configurations … deployment
  scripts … application source code

                 EVERYTHING!
Antipattern #1
• Manual Configuration Management of
  Production Environments
  – Hours to enable new team member
  – Hours to install any new environment




  – Hours to get WHY it doesn’t work on my PC ?!
Infrastructure as code
• “Infrastructure as code is an approach whereby infrastructure
  configuration is scripted or described by files
  that are stored in version control, and
  changes are pushed out to the datacenter in
  a controlled manner. This parallels the discipline of
  source control and build promotion used in software
  development, hence ‘as code’” [http://www.thoughtworks.com/articles/technology-
  radar-january-2011]
Configizer

        +




       Configize !
Configizer v2
• Adopted by: Bailiffs, Elixir, Kolikmam, BAM

• New features:
  –   Hidden passwords
  –   Better parameters factoring possibilities
  –   Encryption of critical sections
  –   Owaspize

• Thank you: Ondrej, Ľuboš, Roman, Andrej
Antipattern #2
• Deploying Software Manually
  – Diffing Test DB with some “prod-like” DB
  – Long installation instructions
  – Long delivery cycles
  – Broken productions




  – Evenings / Weekends in office fixing
Deliver often

•   MVP hype [Agile-*, Lean-*] -> feedback
•   Incremental DB patches (*-Migrations libs)
•   Automatic package build –best documentation
•   Enterprise software on any unplugged laptop
• Feature toggles (use feature branches not version branches)




                  “If it hurst …”
So again
1. Get it        2. Configure it

3. Build it                        4. Run it




              5. Deploy it
Not there yet
• Automatic setup of web applications (and services
  like Mystic) – mitigated by F5 execution

• Visible dashboards

• 100% host environment control (Puppet -
  http://projects.puppetlabs.com/projects/puppet)
• “Repeatability and reliability derive from two
  principles: automate almost everything, and
  keep everything you need to build, deploy,
  test, and release your application in version
  control.“



                                  [Continuous Delivery]

Contenu connexe

Tendances

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

Tendances (20)

Implementation of the Continuous Integration based on Atlassian Bamboo
 Implementation of the Continuous Integration based on Atlassian Bamboo Implementation of the Continuous Integration based on Atlassian Bamboo
Implementation of the Continuous Integration based on Atlassian Bamboo
 
ONAP on Vagrant for ONAPers
ONAP on Vagrant for ONAPersONAP on Vagrant for ONAPers
ONAP on Vagrant for ONAPers
 
Working Well Together: How to Keep High-end Game Development Teams Productive
Working Well Together: How to Keep High-end Game Development Teams ProductiveWorking Well Together: How to Keep High-end Game Development Teams Productive
Working Well Together: How to Keep High-end Game Development Teams Productive
 
Cross Community CI project
Cross Community CI projectCross Community CI project
Cross Community CI project
 
A tale in automation (Puppet to Ansible)
A tale in automation (Puppet to Ansible)A tale in automation (Puppet to Ansible)
A tale in automation (Puppet to Ansible)
 
Android System Developement
Android System DevelopementAndroid System Developement
Android System Developement
 
Training Slides: 152 - Simple Tungsten Replicator Install
Training Slides: 152 - Simple Tungsten Replicator InstallTraining Slides: 152 - Simple Tungsten Replicator Install
Training Slides: 152 - Simple Tungsten Replicator Install
 
Patch Management on Windows with Puppet
Patch Management on Windows with PuppetPatch Management on Windows with Puppet
Patch Management on Windows with Puppet
 
Training Slides: 103 - Basics - Simple Tungsten Clustering Installation
Training Slides: 103 - Basics - Simple Tungsten Clustering InstallationTraining Slides: 103 - Basics - Simple Tungsten Clustering Installation
Training Slides: 103 - Basics - Simple Tungsten Clustering Installation
 
Docker for Ops: Operationalize your Docker Built Apps in Production by Evan H...
Docker for Ops: Operationalize your Docker Built Apps in Production by Evan H...Docker for Ops: Operationalize your Docker Built Apps in Production by Evan H...
Docker for Ops: Operationalize your Docker Built Apps in Production by Evan H...
 
Working with FME in an Agile Software Development Lifecycle
Working with FME in an Agile Software Development LifecycleWorking with FME in an Agile Software Development Lifecycle
Working with FME in an Agile Software Development Lifecycle
 
Source version control using subversion
Source version control using subversionSource version control using subversion
Source version control using subversion
 
SaltConf14 - Justin Carmony, Deseret Digital Media - Teaching Devs About DevOps
SaltConf14 - Justin Carmony, Deseret Digital Media - Teaching Devs About DevOpsSaltConf14 - Justin Carmony, Deseret Digital Media - Teaching Devs About DevOps
SaltConf14 - Justin Carmony, Deseret Digital Media - Teaching Devs About DevOps
 
Neutron upgrades
Neutron upgradesNeutron upgrades
Neutron upgrades
 
Automation of online games
Automation of online gamesAutomation of online games
Automation of online games
 
When Tools Attack
When Tools AttackWhen Tools Attack
When Tools Attack
 
Ansible E2E Testing
Ansible E2E TestingAnsible E2E Testing
Ansible E2E Testing
 
Саша Белецкий "Continuous Delivery в продуктовой разработке"
Саша Белецкий "Continuous Delivery в продуктовой разработке"Саша Белецкий "Continuous Delivery в продуктовой разработке"
Саша Белецкий "Continuous Delivery в продуктовой разработке"
 
2016 09-dev opsjourney-devopsdaysoslo
2016 09-dev opsjourney-devopsdaysoslo2016 09-dev opsjourney-devopsdaysoslo
2016 09-dev opsjourney-devopsdaysoslo
 
Lateral Movement with PowerShell
Lateral Movement with PowerShellLateral Movement with PowerShell
Lateral Movement with PowerShell
 

En vedette

Personal development course assignment 3
Personal development course assignment 3Personal development course assignment 3
Personal development course assignment 3
Olive Wahü
 
Why good spreadsheets make bad strategies
Why good spreadsheets make bad strategiesWhy good spreadsheets make bad strategies
Why good spreadsheets make bad strategies
Leonel Davidson
 
Model driven story
Model driven storyModel driven story
Model driven story
Boris Bucha
 
Analisis riesgos ii dependencias
Analisis riesgos ii dependenciasAnalisis riesgos ii dependencias
Analisis riesgos ii dependencias
Leonel Davidson
 
Science Career Project: Neurology
Science Career Project: NeurologyScience Career Project: Neurology
Science Career Project: Neurology
pmaddi
 
Lsn28 a
Lsn28 aLsn28 a
Lsn28 a
pmaddi
 

En vedette (18)

Macrosolutions Training: Project Quality Management
Macrosolutions Training: Project Quality ManagementMacrosolutions Training: Project Quality Management
Macrosolutions Training: Project Quality Management
 
Personal development course assignment 3
Personal development course assignment 3Personal development course assignment 3
Personal development course assignment 3
 
No SQL - Intro
No SQL - IntroNo SQL - Intro
No SQL - Intro
 
Portfólio Macrosolutions
Portfólio MacrosolutionsPortfólio Macrosolutions
Portfólio Macrosolutions
 
Scarlet Hanoi creds_May 2012
Scarlet Hanoi creds_May 2012Scarlet Hanoi creds_May 2012
Scarlet Hanoi creds_May 2012
 
Why good spreadsheets make bad strategies
Why good spreadsheets make bad strategiesWhy good spreadsheets make bad strategies
Why good spreadsheets make bad strategies
 
Macrosolutions Training: Portfolio Management
Macrosolutions Training: Portfolio ManagementMacrosolutions Training: Portfolio Management
Macrosolutions Training: Portfolio Management
 
Model driven story
Model driven storyModel driven story
Model driven story
 
Analisis riesgos ii dependencias
Analisis riesgos ii dependenciasAnalisis riesgos ii dependencias
Analisis riesgos ii dependencias
 
Science Career Project: Neurology
Science Career Project: NeurologyScience Career Project: Neurology
Science Career Project: Neurology
 
Macrosolutions Consulting Service: Applying Quantitative Methods and Risks Si...
Macrosolutions Consulting Service: Applying Quantitative Methods and Risks Si...Macrosolutions Consulting Service: Applying Quantitative Methods and Risks Si...
Macrosolutions Consulting Service: Applying Quantitative Methods and Risks Si...
 
Lsn28 a
Lsn28 aLsn28 a
Lsn28 a
 
Macrosolutions Training: Project Human Resource Management and Project Leader...
Macrosolutions Training: Project Human Resource Management and Project Leader...Macrosolutions Training: Project Human Resource Management and Project Leader...
Macrosolutions Training: Project Human Resource Management and Project Leader...
 
Macrosolutions Training: Managing Complex Projects and Projects in Crisis
Macrosolutions Training: Managing Complex Projects and Projects in CrisisMacrosolutions Training: Managing Complex Projects and Projects in Crisis
Macrosolutions Training: Managing Complex Projects and Projects in Crisis
 
Macrosolutions Training: Project Time Management
Macrosolutions Training: Project Time ManagementMacrosolutions Training: Project Time Management
Macrosolutions Training: Project Time Management
 
Macrosolutions Consulting Service: Projects accelerated planning through the ...
Macrosolutions Consulting Service: Projects accelerated planning through the ...Macrosolutions Consulting Service: Projects accelerated planning through the ...
Macrosolutions Consulting Service: Projects accelerated planning through the ...
 
Bulling
BullingBulling
Bulling
 
Macrosolutions Training: Project Management: Establishing Competitive Advantages
Macrosolutions Training: Project Management: Establishing Competitive AdvantagesMacrosolutions Training: Project Management: Establishing Competitive Advantages
Macrosolutions Training: Project Management: Establishing Competitive Advantages
 

Similaire à Automatize everything

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.
 

Similaire à Automatize everything (20)

Fluo CICD OpenStack Summit
Fluo CICD OpenStack SummitFluo CICD OpenStack Summit
Fluo CICD OpenStack Summit
 
Adding Security and Compliance to Your Workflow with InSpec
Adding Security and Compliance to Your Workflow with InSpecAdding Security and Compliance to Your Workflow with InSpec
Adding Security and Compliance to Your Workflow with InSpec
 
Continuous Delivery and Infrastructure as Code
Continuous Delivery and Infrastructure as CodeContinuous Delivery and Infrastructure as Code
Continuous Delivery and Infrastructure as Code
 
Introduction to jenkins for the net developer
Introduction to jenkins for the net developerIntroduction to jenkins for the net developer
Introduction to jenkins for the net developer
 
Open Audit
Open AuditOpen Audit
Open Audit
 
Prescriptive System Security with InSpec
Prescriptive System Security with InSpecPrescriptive System Security with InSpec
Prescriptive System Security with InSpec
 
Prescriptive Security with InSpec - All Things Open 2019
Prescriptive Security with InSpec - All Things Open 2019Prescriptive Security with InSpec - All Things Open 2019
Prescriptive Security with InSpec - All Things Open 2019
 
Using Chef InSpec for Infrastructure Security
Using Chef InSpec for Infrastructure SecurityUsing Chef InSpec for Infrastructure Security
Using Chef InSpec for Infrastructure Security
 
Build automation best practices
Build automation best practicesBuild automation best practices
Build automation best practices
 
Devops
DevopsDevops
Devops
 
Inspec: Turn your compliance, security, and other policy requirements into au...
Inspec: Turn your compliance, security, and other policy requirements into au...Inspec: Turn your compliance, security, and other policy requirements into au...
Inspec: Turn your compliance, security, and other policy requirements into au...
 
InSpec - June 2018 at Open28.be
InSpec - June 2018 at Open28.beInSpec - June 2018 at Open28.be
InSpec - June 2018 at Open28.be
 
Versioning for Developers
Versioning for DevelopersVersioning for Developers
Versioning for Developers
 
DevOpsCon 2015 - DevOps in Mobile Games
DevOpsCon 2015 - DevOps in Mobile GamesDevOpsCon 2015 - DevOps in Mobile Games
DevOpsCon 2015 - DevOps in Mobile Games
 
Magento infrastructure by OpsWay
Magento infrastructure by OpsWayMagento infrastructure by OpsWay
Magento infrastructure by OpsWay
 
How bigtop leveraged docker for build automation and one click hadoop provis...
How bigtop leveraged docker for build automation and  one click hadoop provis...How bigtop leveraged docker for build automation and  one click hadoop provis...
How bigtop leveraged docker for build automation and one click hadoop provis...
 
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
 
DCRUG: Achieving Development-Production Parity
DCRUG: Achieving Development-Production ParityDCRUG: Achieving Development-Production Parity
DCRUG: Achieving Development-Production Parity
 
AAI-2016 WebSphere Application Server Installation and Maintenance in the Ent...
AAI-2016 WebSphere Application Server Installation and Maintenance in the Ent...AAI-2016 WebSphere Application Server Installation and Maintenance in the Ent...
AAI-2016 WebSphere Application Server Installation and Maintenance in the Ent...
 
Build Time Hacking
Build Time HackingBuild Time Hacking
Build Time Hacking
 

Automatize everything

  • 1. Automatize-* Crif Tech Days 2012 Boris Bucha
  • 2. Tech days 2011 1. Get it 2. Configure it 3. Build it 4. Run it 5. Deploy it
  • 3.
  • 4. “There should be two tasks for a human being to perform to deploy software into a development, test, or production environment: to pick the version and environment and to press the “deploy” button.” [Continuous Delivery]
  • 5. What we aim for? • Build application binaries – ant, make… √ • Configuration (tools ??) X • Database (tools ??) X • Delivery (tools ??) X
  • 6. Why? • NHibernate: 63K LoC • Bailiffs: 157K LoC • R#: 500K LoC • BAM: 1M LoC • Russian CB: 1.3M LoC • .NET4: 2M LoC
  • 7. VCS almighty • DB scripts … all configurations … deployment scripts … application source code EVERYTHING!
  • 8. Antipattern #1 • Manual Configuration Management of Production Environments – Hours to enable new team member – Hours to install any new environment – Hours to get WHY it doesn’t work on my PC ?!
  • 9. Infrastructure as code • “Infrastructure as code is an approach whereby infrastructure configuration is scripted or described by files that are stored in version control, and changes are pushed out to the datacenter in a controlled manner. This parallels the discipline of source control and build promotion used in software development, hence ‘as code’” [http://www.thoughtworks.com/articles/technology- radar-january-2011]
  • 10. Configizer + Configize !
  • 11. Configizer v2 • Adopted by: Bailiffs, Elixir, Kolikmam, BAM • New features: – Hidden passwords – Better parameters factoring possibilities – Encryption of critical sections – Owaspize • Thank you: Ondrej, Ľuboš, Roman, Andrej
  • 12. Antipattern #2 • Deploying Software Manually – Diffing Test DB with some “prod-like” DB – Long installation instructions – Long delivery cycles – Broken productions – Evenings / Weekends in office fixing
  • 13. Deliver often • MVP hype [Agile-*, Lean-*] -> feedback • Incremental DB patches (*-Migrations libs) • Automatic package build –best documentation • Enterprise software on any unplugged laptop • Feature toggles (use feature branches not version branches) “If it hurst …”
  • 14. So again 1. Get it 2. Configure it 3. Build it 4. Run it 5. Deploy it
  • 15. Not there yet • Automatic setup of web applications (and services like Mystic) – mitigated by F5 execution • Visible dashboards • 100% host environment control (Puppet - http://projects.puppetlabs.com/projects/puppet)
  • 16. • “Repeatability and reliability derive from two principles: automate almost everything, and keep everything you need to build, deploy, test, and release your application in version control.“ [Continuous Delivery]

Notes de l'éditeur

  1. - A working software application can be usefully decomposed into four components: executable code, configuration, host environment, and data.
  2. - In many software projects, release is a manually intensive process.
  3. Create a Repeatable, Reliable Process for Releasing SoftwareAs releases become less fraught, it is easier to consider things like the agile ideal of a release at the end of each iteration. Even if that isn’t appropriate for a particular project, it means that we get our weekends back.These days, many companies are putting out multiple releases in a day. This is possible even with large projects with complex codebasesOur highest priority is to satisfy the customer through early and continuous delivery of valuable softwareWhen deployments aren’t fully automated, errors will occur every time they are performed.