5. • 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
6. • 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>>
7. • 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>>
8. • 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>>
10. • 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
12. • 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