www.xedotnet.org
Gestire i rilasci automatici con Azure
DevOps
#XeOneDay
Gian Maria Ricci (@Alkampfer)
Evento realizzato
grazie al supporto di
DevOps Cycle
#XeOneDay 2
DevOps Cycle – Build and release
#XeOneDay 3
22/02/16 4
Manual is EVIL?
• Always start with manual package and release
• Create a Build and release document
• Follow step by step the document until it is perfect
• Start automation of the most error prone and tedious
work
• Do not underestimate the power of Manual Release
Management
• Clear separation of environment
• Auditing of operations
• Gates between environments
• Mixed Manual and Automatic tasks
22/02/16 5
From Manual to automation
• In and out of codebase
• Default value in codebase
• Overridable with Environment Variables etc etc
• Configuration service
• Configuration in database
• Consul / Custom service
• Configuration management UI
• Avoid mysterious and manual editing of json or XML
files, create dedicated UI for configuration
• Store configuration outside files in application folder
• Store configuration outside of the server if possible
22/02/16 6
<<First citizen configuration management>>
• Health check to assess quality of the service
• Check all configurations
• Verify jobs running as scheduled
• Verify disk space, database space, RAM Available, RAM
consumption etc
• Verify timing of execution of command etc
• Check that every mongodb instance is operative
• Try to prevent problem and alert the user before the real
problem strike
• Etc etc
• Use an enterprise level tool like Microsoft Azure
Application Insight
22/02/16 7
<<Metrics and health checks>>
• Software should start if
• Database is not reachable (Just inform the user that the
db is not reachable, give opportunity to change
connection string)
• No configuration is made (first installation)
• Database is reachable but no schema was deployed
• Minimize the manual prerequisites of the environment
for your software to run
• Automate installation of prerequisites
• Mongodb or Sql is missing, allow for automatic
installation
• Etc etc
22/02/16 8
<<Resiliency to missing prerequisites>>
<<Build once deploy many>>
#XeOneDay 9
Build once
Dev
QA
Prod
Deploy
many
• Build definition directly stored in code
• Follow branches
• Easy to copy / initialize for new processes
• Easy to edit and maintain thanks to
• Visual Studio Code extension
• Browser based editing with task assistant
22/02/16 10
YAML Build Pipeline
Titolo
#XeOneDay 11
DEMO
• Multi staged pipelines for build and release
• Release in YAML with Build dependency
• More support for Kubernetes / Docker / container
• And much more…
22/02/16 12
Future
#XeOneDay 13
http://www.codewrecks.com
alkampfer@nablasoft.com
@alkampfer
Contatti
Gian Maria Ricci

Gestire i rilasci automatici con azure devops

  • 1.
    www.xedotnet.org Gestire i rilasciautomatici con Azure DevOps #XeOneDay Gian Maria Ricci (@Alkampfer) Evento realizzato grazie al supporto di
  • 2.
  • 3.
    DevOps Cycle –Build and release #XeOneDay 3
  • 4.
  • 5.
    • Always startwith manual package and release • Create a Build and release document • Follow step by step the document until it is perfect • Start automation of the most error prone and tedious work • Do not underestimate the power of Manual Release Management • Clear separation of environment • Auditing of operations • Gates between environments • Mixed Manual and Automatic tasks 22/02/16 5 From Manual to automation
  • 6.
    • In andout of codebase • Default value in codebase • Overridable with Environment Variables etc etc • Configuration service • Configuration in database • Consul / Custom service • Configuration management UI • Avoid mysterious and manual editing of json or XML files, create dedicated UI for configuration • Store configuration outside files in application folder • Store configuration outside of the server if possible 22/02/16 6 <<First citizen configuration management>>
  • 7.
    • Health checkto assess quality of the service • Check all configurations • Verify jobs running as scheduled • Verify disk space, database space, RAM Available, RAM consumption etc • Verify timing of execution of command etc • Check that every mongodb instance is operative • Try to prevent problem and alert the user before the real problem strike • Etc etc • Use an enterprise level tool like Microsoft Azure Application Insight 22/02/16 7 <<Metrics and health checks>>
  • 8.
    • Software shouldstart if • Database is not reachable (Just inform the user that the db is not reachable, give opportunity to change connection string) • No configuration is made (first installation) • Database is reachable but no schema was deployed • Minimize the manual prerequisites of the environment for your software to run • Automate installation of prerequisites • Mongodb or Sql is missing, allow for automatic installation • Etc etc 22/02/16 8 <<Resiliency to missing prerequisites>>
  • 9.
    <<Build once deploymany>> #XeOneDay 9 Build once Dev QA Prod Deploy many
  • 10.
    • Build definitiondirectly stored in code • Follow branches • Easy to copy / initialize for new processes • Easy to edit and maintain thanks to • Visual Studio Code extension • Browser based editing with task assistant 22/02/16 10 YAML Build Pipeline
  • 11.
  • 12.
    • Multi stagedpipelines for build and release • Release in YAML with Build dependency • More support for Kubernetes / Docker / container • And much more… 22/02/16 12 Future
  • 13.