Mār$ņš
Ķemme
IT
professional
with
a
focus
on
process
management
and
configura$on
management.
h>p://mar$nskemme.wordpress.com/
@mar$nskemme
Mar$ns.Kemme@ebit.lv
• Configuration management
• Builds
• Delivery and deployment
• Continuous integration
• Continuous delivery
• DevOps
• What does it take to build and maintain
a quality product?
Number of
continuous activities
done throughout the project
and after project go-live.
Continuous Integration
• Build product
– It still builds after my last commit, right?
• Run tests
– Run all tests, all environments
– Run experimental merges and test them
• Run code quality tools
– Style checks
– Security checks
– Test coverage
Managerial Aspects of CI
• Ensuring that quality is high enough to be
ready to release product at any time
• See build history
– General info about product stability
• Having CI set-up is like a warranty that
automation is on a reasonably high
level
More on CI
• Tools: no big difference
• A handy tool to help to deploy…
Infrastructure As Code
• Server and network configuration is described via
code/configuration
• Server configuration shares other characteristics of
code as well, e.g. it is stored in source control.
• Perform as many infrastructure tasks as possible
programmatically, including
– Monitor the situation
– Get history
– Set up
– Allocate resources to applications
Reduced Risk
• Smaller deployments (small package)
• Incremental
• Automated
– Easy deployment (low cost)
– Easy rollback (low risk)
• Decouple your deployments from the act
of taking a feature live
Continuous Deployment
• CD is an approach of delivering software
that reduces the cost, time and risk of
delivering incremental changes to users
• Business benefit: increased throughput
CD Focus Areas
• Software releasability (over new features)
• Feedback on the production readiness
• Capability to deploy easily and
automatically
CD Enablers
Quick deployments should be made
possible
• Architecture is important
– should not be monolithic (must be modular)
– API boundaries, OLAs between modules
• Unfinished features
– Feature toggles
DevOps is a software development method that
stresses communication, collaboration and
integration between software developers and
information technology(IT) professionals.
DevOps is a response to the interdependence of
software development and IT operations. It
aims to help an organization rapidly produce
software products and services.
-Wikipedia
• Benefit of monitoring for product
development
– How much time people stay on a particular
page?
– What features people use?
• Continuous integration is used
continuously
• Continuous deployments
Lessons Learned From the Case
• Monitoring shall target both technical
aspects and application (business-domain)
metrics
• Some measurements are immediately
actionable, some not
• Information instantly available to anyone
• Deployments must be quick and
transparent