SRE Demystified
Release Management - 1
ganesh@ganeshniyer.com
ganesh.vigneswara@gmail.com,
http://ganeshniyer.com
Dr Ganesh Neelakanta Iyer
SRE
•
2https://image.slidesharecdn.com/devopssreatgooglescale-190121123035/95/devops-sre-at-google-scale-30-638.jpg?cb=1548074257
What should a Release Engineer know?
• Release engineers have a solid (if not expert) understanding of
• Source code management,
• Compilers,
• Build configuration languages,
• Automated build tools,
• Package managers
• Installers
• Their skill set includes deep knowledge of multiple domains:
development, configuration management, test integration, system
administration, and customer support.
3
Release Engineering and SRE
• Running reliable services requires reliable release
processes
• SREs need to know that the binaries and configurations
they use are built in a reproducible, automated way so
that releases are repeatable and aren’t “unique
snowflakes”
• Changes to any aspect of the release process should be
intentional, rather than accidental
4
Data-driven Release Engineering
• Tools that report on a host of metrics, such as
• How much time it takes for a code change to be
deployed into production (in other words, release
velocity) and
• Statistics on what features are being used in build
configuration files
• Release engineers define best practices for using our tools
in order to make sure projects are released using
consistent and repeatable methodologies
5
Google’s Philosophy
6
Self-Service Model High Velocity
Hermetic Builds
Enforcement of Policies
and Procedures
Self-service model
• In order to work at scale,
teams must be self-sufficient
• Release engineering has
developed best practices and
tools that allow our product
development teams to control
and run their own release
processes
7
https://freshdesk.com/self-service
High Velocity
• Frequent releases result in
fewer changes between
versions
• This approach makes testing
and troubleshooting easier
8
https://www.imdb.com/title/tt0076145/mediaviewer/rm4231005696
Hermetic Builds
• Build tools must allow us to ensure consistency and
repeatability
• Hermetic builds are insensitive to the libraries and other
software installed on the build machine
• Instead, builds depend on known versions of build tools,
such as compilers, and dependencies, such as libraries
• The build process is self-contained and must not rely on
services that are external to the build environment
9
Enforcement of Policies and Procedures
• Approving source code changes
• Specifying the actions to be performed during the release
process
• Creating a new release
• Approving the initial integration proposal and subsequent
cherry picks
• Deploying a new release
• Making changes to a project’s build configuration
10
References
11
Dr Ganesh Neelakanta Iyer
ganesh@ganeshniyer.com
ganesh.vigneswara@gmail.com

SRE Demystified - 10 - Release management-1

  • 1.
    SRE Demystified Release Management- 1 ganesh@ganeshniyer.com ganesh.vigneswara@gmail.com, http://ganeshniyer.com Dr Ganesh Neelakanta Iyer
  • 2.
  • 3.
    What should aRelease Engineer know? • Release engineers have a solid (if not expert) understanding of • Source code management, • Compilers, • Build configuration languages, • Automated build tools, • Package managers • Installers • Their skill set includes deep knowledge of multiple domains: development, configuration management, test integration, system administration, and customer support. 3
  • 4.
    Release Engineering andSRE • Running reliable services requires reliable release processes • SREs need to know that the binaries and configurations they use are built in a reproducible, automated way so that releases are repeatable and aren’t “unique snowflakes” • Changes to any aspect of the release process should be intentional, rather than accidental 4
  • 5.
    Data-driven Release Engineering •Tools that report on a host of metrics, such as • How much time it takes for a code change to be deployed into production (in other words, release velocity) and • Statistics on what features are being used in build configuration files • Release engineers define best practices for using our tools in order to make sure projects are released using consistent and repeatable methodologies 5
  • 6.
    Google’s Philosophy 6 Self-Service ModelHigh Velocity Hermetic Builds Enforcement of Policies and Procedures
  • 7.
    Self-service model • Inorder to work at scale, teams must be self-sufficient • Release engineering has developed best practices and tools that allow our product development teams to control and run their own release processes 7 https://freshdesk.com/self-service
  • 8.
    High Velocity • Frequentreleases result in fewer changes between versions • This approach makes testing and troubleshooting easier 8 https://www.imdb.com/title/tt0076145/mediaviewer/rm4231005696
  • 9.
    Hermetic Builds • Buildtools must allow us to ensure consistency and repeatability • Hermetic builds are insensitive to the libraries and other software installed on the build machine • Instead, builds depend on known versions of build tools, such as compilers, and dependencies, such as libraries • The build process is self-contained and must not rely on services that are external to the build environment 9
  • 10.
    Enforcement of Policiesand Procedures • Approving source code changes • Specifying the actions to be performed during the release process • Creating a new release • Approving the initial integration proposal and subsequent cherry picks • Deploying a new release • Making changes to a project’s build configuration 10
  • 11.
  • 12.
    Dr Ganesh NeelakantaIyer ganesh@ganeshniyer.com ganesh.vigneswara@gmail.com