SlideShare a Scribd company logo
Oleg Chorny
@Ciklum
Release Engineering:
Google's approach
Agenda
Motivation
Engineering
Release Engineering
Automated Release System
Configuration Management
Motivation: Toil
● If a machine could accomplish the task just as well as a human, or
the need for the task could be designed away, that task is toil
● If you’re performing a task for the first time ever, or even the second
time, this work is not toil. Toil is work you do over and over
● Toil is interrupt-driven and reactive, rather than strategy-driven and
proactive
Motivation: Why toil is bad
● Your career progress will slow down or grind to a halt if you spend
too little time on projects. Too much toil leads to low morale
● Excessive toil makes a team less productive. A product’s feature
velocity will slow if the team is too busy with manual work
● If you build too much toil into your team’s procedures, you motivate
the team’s best engineers to start looking elsewhere for a more
rewarding job
Engineering: The work of reducing toil
● Requires human judgment
● Produces a permanent improvement in your service
● Guided by a strategy
● Creative and innovative
● Helps your team or organization handle a larger service, or more
services, with the same level of staffing
Release Engineering: High Velocity
● Aim to roll out customer-facing features as quickly as possible
● Frequent releases result in fewer changes between versions. This
approach makes testing and troubleshooting easier
● Some teams perform hourly builds and then select the version to
actually deploy to production
● Other teams have adopted a “Push on Green” release model and
deploy every build that passes all tests
Release Engineering: Self-Service Model
● Individual teams can decide how often and when to release new
versions of their products
● Release engineering has developed best practices and tools that
allow product development teams to control and run their own
release processes
● Releases are truly automatic, and only require engineer involvement if
and when problems arise
Release Engineering: Budgeting
● Managers don’t always plan and budget for release engineering in
the early stages of a project
● Teams should budget for release engineering resources at the
beginning of the product development cycle
● It’s cheaper to put good practices and process in place early, rather
than have to retrofit your system later
Automated Release System: Branching
● All code is checked into the main branch of the source code tree
● Most major projects don’t release directly from the main branch
● Each release has own branch
● Release branch never merges changes back into the main branch
● Bug fixes are submitted to the main branch and then cherry picked
into the release branch for inclusion in the release
Automated Release System: Building
● If two people attempt to build the same product at the same revision
number in the source code repository on different machines, we
expect identical results
● The build process is self-contained and must not rely on services that
are external to the build environment
● Build tools must allow us to ensure consistency and repeatability
Automated Release System: Testing
● A continuous test system runs unit tests against the code in the main
branch each time a change is submitted
● An independent testing environment that runs system-level tests on
packaged build artifacts
● Because of cherry picks, the release branch may contain a version of
the code that doesn’t exist anywhere on the main branch. During the
release, unit tests are run once again using the release branch
Automated Release System: Packaging
● Packages are named (e.g., search/frontend), versioned with a unique
hash, and signed to ensure authenticity
● Labels can be applied to package to indicate a package’s location in
the release process (e.g., dev, canary, or production)
● If a package is labeled as canary, someone subsequently installing
the canary version of that package will automatically receive the
newest version of the package with the label canary
Automated Release System: Deployment
● Performed by a general-purpose rollout automation framework
● Framework provides a set of Python classes that can be extended to
support any deployment process
● It has a dashboard that allows for finer control on how the rollout is
performed and provides a way to monitor the rollout’s progress
● A rollout is a logical unit of work that is composed of one or more
individual tasks
Automated Release System: Policies
● Several layers of security and access control determine who can
perform specific operations when releasing a project:
○ Approving source code changes
○ Specifying the actions to be performed during the release
○ Creating a new release
○ Deploying a new release
○ Making changes to a project’s build configuration
Configuration Management
● In order to simplify deployment, include configuration files and
binaries in the same package
● If you want to release binaries and configuration files independently,
put configuration files into “configuration packages”
● If projects have configuration files that need to change frequently or
dynamically, read configuration files from external store
● Using the mainline for configuration can lead us to skew between the
checked-in and running version of the configuration file
Summary
● It is essential that Developers and Release Engineers work together
● Release Engineer needs to understand the intention of how the code
should be built and deployed. Developers shouldn’t build and “throw
the results over the fence” to be handled by Release Engineer
● When equipped with the right tools, proper automation, and well-
defined policies, we shouldn’t have to worry about releasing
software. Releases can be as painless as simply pressing a button
Thank you
Oleg Chorny
oleg.chorny@gmail.com

More Related Content

What's hot

System Integration & Build Management
System Integration & Build ManagementSystem Integration & Build Management
System Integration & Build ManagementComputing Cage
 
Introduction to DevOps. Continuous Integration by Myroslav Dmytrus
Introduction to DevOps. Continuous Integration by Myroslav Dmytrus Introduction to DevOps. Continuous Integration by Myroslav Dmytrus
Introduction to DevOps. Continuous Integration by Myroslav Dmytrus Binary Studio
 
Continuous Integration Approach
Continuous Integration ApproachContinuous Integration Approach
Continuous Integration ApproachNigel Thurlow
 
Test automation in agile ecosystem
Test automation in agile ecosystemTest automation in agile ecosystem
Test automation in agile ecosystemJohnRizer
 
Introduction to qa
Introduction to qaIntroduction to qa
Introduction to qaOmid Vahdaty
 
Introduction to Test Automation
Introduction to Test AutomationIntroduction to Test Automation
Introduction to Test AutomationPekka Klärck
 
From crappy and classy
From crappy and classyFrom crappy and classy
From crappy and classyGil Zilberfeld
 
Project Onion unit test environment
Project Onion unit test environmentProject Onion unit test environment
Project Onion unit test environmentAbhinav Jha
 
How to manage your testing automation project ttm methodology
How to manage your testing automation project   ttm methodologyHow to manage your testing automation project   ttm methodology
How to manage your testing automation project ttm methodologyRam Yonish
 
No Test without Integration - final
No Test without Integration - finalNo Test without Integration - final
No Test without Integration - finalAndre Verschelling
 
Development methodologies
Development methodologiesDevelopment methodologies
Development methodologiesSabahtHussein
 
Using Continuous Integration To Ensure Project Health New
Using Continuous Integration To Ensure Project Health NewUsing Continuous Integration To Ensure Project Health New
Using Continuous Integration To Ensure Project Health Newbartlowe
 
Testing: Heaven or Hell
Testing: Heaven or HellTesting: Heaven or Hell
Testing: Heaven or HellAndrew Hurd
 

What's hot (20)

Bai giang-se-06mar14
Bai giang-se-06mar14Bai giang-se-06mar14
Bai giang-se-06mar14
 
System Integration & Build Management
System Integration & Build ManagementSystem Integration & Build Management
System Integration & Build Management
 
Introduction to DevOps. Continuous Integration by Myroslav Dmytrus
Introduction to DevOps. Continuous Integration by Myroslav Dmytrus Introduction to DevOps. Continuous Integration by Myroslav Dmytrus
Introduction to DevOps. Continuous Integration by Myroslav Dmytrus
 
Continuous Integration Approach
Continuous Integration ApproachContinuous Integration Approach
Continuous Integration Approach
 
Test automation in agile ecosystem
Test automation in agile ecosystemTest automation in agile ecosystem
Test automation in agile ecosystem
 
Iterative software development
Iterative software developmentIterative software development
Iterative software development
 
R Studio (Report)
R Studio (Report)R Studio (Report)
R Studio (Report)
 
Software development process
Software development processSoftware development process
Software development process
 
Introduction to qa
Introduction to qaIntroduction to qa
Introduction to qa
 
Introduction to Test Automation
Introduction to Test AutomationIntroduction to Test Automation
Introduction to Test Automation
 
Agile Testing Vs V
Agile Testing Vs VAgile Testing Vs V
Agile Testing Vs V
 
From crappy and classy
From crappy and classyFrom crappy and classy
From crappy and classy
 
Project Onion unit test environment
Project Onion unit test environmentProject Onion unit test environment
Project Onion unit test environment
 
How to manage your testing automation project ttm methodology
How to manage your testing automation project   ttm methodologyHow to manage your testing automation project   ttm methodology
How to manage your testing automation project ttm methodology
 
No Test without Integration - final
No Test without Integration - finalNo Test without Integration - final
No Test without Integration - final
 
Software testing
Software testingSoftware testing
Software testing
 
Development methodologies
Development methodologiesDevelopment methodologies
Development methodologies
 
7 steps to Software test automation success
7 steps to Software test automation success7 steps to Software test automation success
7 steps to Software test automation success
 
Using Continuous Integration To Ensure Project Health New
Using Continuous Integration To Ensure Project Health NewUsing Continuous Integration To Ensure Project Health New
Using Continuous Integration To Ensure Project Health New
 
Testing: Heaven or Hell
Testing: Heaven or HellTesting: Heaven or Hell
Testing: Heaven or Hell
 

Similar to Release Engineering

The 10 Commandments of Release Engineering
The 10 Commandments of Release EngineeringThe 10 Commandments of Release Engineering
The 10 Commandments of Release EngineeringSolano Labs
 
DevOps presentation
DevOps presentationDevOps presentation
DevOps presentationAxsh Co. LTD
 
Releaseflow: a healthy build and deploy process
Releaseflow: a healthy build and deploy processReleaseflow: a healthy build and deploy process
Releaseflow: a healthy build and deploy processChristopher Cundill
 
Continuous Integration
Continuous IntegrationContinuous Integration
Continuous IntegrationXPDays
 
How To Transform the Manual Testing Process to Incorporate Test Automation
How To Transform the Manual Testing Process to Incorporate Test AutomationHow To Transform the Manual Testing Process to Incorporate Test Automation
How To Transform the Manual Testing Process to Incorporate Test AutomationRanorex
 
Lecture3.se.pptx
Lecture3.se.pptxLecture3.se.pptx
Lecture3.se.pptxAmna Ch
 
Preparing for DevOps
Preparing for DevOpsPreparing for DevOps
Preparing for DevOpsEklove Mohan
 
Agile lifecycle handbook by bhawani nandan prasad
Agile lifecycle handbook by bhawani nandan prasadAgile lifecycle handbook by bhawani nandan prasad
Agile lifecycle handbook by bhawani nandan prasadBhawani N Prasad
 
Making software development processes to work for you
Making software development processes to work for youMaking software development processes to work for you
Making software development processes to work for youAmbientia
 
Mastering Complex Application Deployments
Mastering Complex Application DeploymentsMastering Complex Application Deployments
Mastering Complex Application DeploymentsIBM UrbanCode Products
 
Context Driven Automation Gtac 2008
Context Driven Automation Gtac 2008Context Driven Automation Gtac 2008
Context Driven Automation Gtac 2008Pete Schneider
 
Seminar continuous delivery 19092013
Seminar continuous delivery 19092013Seminar continuous delivery 19092013
Seminar continuous delivery 19092013Joris De Winne
 
QA Strategies for Testing Legacy Web Apps
QA Strategies for Testing Legacy Web AppsQA Strategies for Testing Legacy Web Apps
QA Strategies for Testing Legacy Web AppsRainforest QA
 
Building a custom cms with django
Building a custom cms with djangoBuilding a custom cms with django
Building a custom cms with djangoYann Malet
 
Building Sustainable Software: An Introduction to Software Engineering
Building Sustainable Software: An Introduction to Software EngineeringBuilding Sustainable Software: An Introduction to Software Engineering
Building Sustainable Software: An Introduction to Software EngineeringMuhammad Shehata
 
Expedia 3x3 presentation
Expedia 3x3 presentationExpedia 3x3 presentation
Expedia 3x3 presentationDrew Hannay
 
Technical Practices for Agile Engineering - PNSQC 2019
Technical Practices for Agile Engineering - PNSQC 2019Technical Practices for Agile Engineering - PNSQC 2019
Technical Practices for Agile Engineering - PNSQC 2019Moss Drake
 

Similar to Release Engineering (20)

The 10 Commandments of Release Engineering
The 10 Commandments of Release EngineeringThe 10 Commandments of Release Engineering
The 10 Commandments of Release Engineering
 
DevOps presentation
DevOps presentationDevOps presentation
DevOps presentation
 
Releaseflow: a healthy build and deploy process
Releaseflow: a healthy build and deploy processReleaseflow: a healthy build and deploy process
Releaseflow: a healthy build and deploy process
 
Continuous Integration
Continuous IntegrationContinuous Integration
Continuous Integration
 
How To Transform the Manual Testing Process to Incorporate Test Automation
How To Transform the Manual Testing Process to Incorporate Test AutomationHow To Transform the Manual Testing Process to Incorporate Test Automation
How To Transform the Manual Testing Process to Incorporate Test Automation
 
Extreme programming (xp)
Extreme programming (xp)Extreme programming (xp)
Extreme programming (xp)
 
Lecture3.se.pptx
Lecture3.se.pptxLecture3.se.pptx
Lecture3.se.pptx
 
Preparing for DevOps
Preparing for DevOpsPreparing for DevOps
Preparing for DevOps
 
Agile lifecycle handbook by bhawani nandan prasad
Agile lifecycle handbook by bhawani nandan prasadAgile lifecycle handbook by bhawani nandan prasad
Agile lifecycle handbook by bhawani nandan prasad
 
Making software development processes to work for you
Making software development processes to work for youMaking software development processes to work for you
Making software development processes to work for you
 
Mastering Complex Application Deployments
Mastering Complex Application DeploymentsMastering Complex Application Deployments
Mastering Complex Application Deployments
 
What is xp
What is xpWhat is xp
What is xp
 
Context Driven Automation Gtac 2008
Context Driven Automation Gtac 2008Context Driven Automation Gtac 2008
Context Driven Automation Gtac 2008
 
Seminar continuous delivery 19092013
Seminar continuous delivery 19092013Seminar continuous delivery 19092013
Seminar continuous delivery 19092013
 
Introduction to Software Engineering
Introduction to Software EngineeringIntroduction to Software Engineering
Introduction to Software Engineering
 
QA Strategies for Testing Legacy Web Apps
QA Strategies for Testing Legacy Web AppsQA Strategies for Testing Legacy Web Apps
QA Strategies for Testing Legacy Web Apps
 
Building a custom cms with django
Building a custom cms with djangoBuilding a custom cms with django
Building a custom cms with django
 
Building Sustainable Software: An Introduction to Software Engineering
Building Sustainable Software: An Introduction to Software EngineeringBuilding Sustainable Software: An Introduction to Software Engineering
Building Sustainable Software: An Introduction to Software Engineering
 
Expedia 3x3 presentation
Expedia 3x3 presentationExpedia 3x3 presentation
Expedia 3x3 presentation
 
Technical Practices for Agile Engineering - PNSQC 2019
Technical Practices for Agile Engineering - PNSQC 2019Technical Practices for Agile Engineering - PNSQC 2019
Technical Practices for Agile Engineering - PNSQC 2019
 

More from GDG Odessa

Clean architecture on Android
Clean architecture on AndroidClean architecture on Android
Clean architecture on AndroidGDG Odessa
 
BDSM or start programming after Angular one
BDSM or start programming after Angular oneBDSM or start programming after Angular one
BDSM or start programming after Angular oneGDG Odessa
 
Angular 2 vs Angular 1
Angular 2 vs Angular 1Angular 2 vs Angular 1
Angular 2 vs Angular 1GDG Odessa
 
Angular 1.x in action now
Angular 1.x in action nowAngular 1.x in action now
Angular 1.x in action nowGDG Odessa
 
Понимая Git /git/. Git изнутри наружу
Понимая Git /git/. Git изнутри наружуПонимая Git /git/. Git изнутри наружу
Понимая Git /git/. Git изнутри наружуGDG Odessa
 
Жизненный цикл React приложений
Жизненный цикл React приложенийЖизненный цикл React приложений
Жизненный цикл React приложенийGDG Odessa
 
React + Redux. Опыт использования
React + Redux. Опыт использованияReact + Redux. Опыт использования
React + Redux. Опыт использованияGDG Odessa
 

More from GDG Odessa (9)

Rx android
Rx androidRx android
Rx android
 
Kotlin
KotlinKotlin
Kotlin
 
Clean architecture on Android
Clean architecture on AndroidClean architecture on Android
Clean architecture on Android
 
BDSM or start programming after Angular one
BDSM or start programming after Angular oneBDSM or start programming after Angular one
BDSM or start programming after Angular one
 
Angular 2 vs Angular 1
Angular 2 vs Angular 1Angular 2 vs Angular 1
Angular 2 vs Angular 1
 
Angular 1.x in action now
Angular 1.x in action nowAngular 1.x in action now
Angular 1.x in action now
 
Понимая Git /git/. Git изнутри наружу
Понимая Git /git/. Git изнутри наружуПонимая Git /git/. Git изнутри наружу
Понимая Git /git/. Git изнутри наружу
 
Жизненный цикл React приложений
Жизненный цикл React приложенийЖизненный цикл React приложений
Жизненный цикл React приложений
 
React + Redux. Опыт использования
React + Redux. Опыт использованияReact + Redux. Опыт использования
React + Redux. Опыт использования
 

Recently uploaded

Essentials of Automations: Optimizing FME Workflows with Parameters
Essentials of Automations: Optimizing FME Workflows with ParametersEssentials of Automations: Optimizing FME Workflows with Parameters
Essentials of Automations: Optimizing FME Workflows with ParametersSafe Software
 
UiPath Test Automation using UiPath Test Suite series, part 1
UiPath Test Automation using UiPath Test Suite series, part 1UiPath Test Automation using UiPath Test Suite series, part 1
UiPath Test Automation using UiPath Test Suite series, part 1DianaGray10
 
Empowering NextGen Mobility via Large Action Model Infrastructure (LAMI): pav...
Empowering NextGen Mobility via Large Action Model Infrastructure (LAMI): pav...Empowering NextGen Mobility via Large Action Model Infrastructure (LAMI): pav...
Empowering NextGen Mobility via Large Action Model Infrastructure (LAMI): pav...Thierry Lestable
 
FIDO Alliance Osaka Seminar: Passkeys at Amazon.pdf
FIDO Alliance Osaka Seminar: Passkeys at Amazon.pdfFIDO Alliance Osaka Seminar: Passkeys at Amazon.pdf
FIDO Alliance Osaka Seminar: Passkeys at Amazon.pdfFIDO Alliance
 
Key Trends Shaping the Future of Infrastructure.pdf
Key Trends Shaping the Future of Infrastructure.pdfKey Trends Shaping the Future of Infrastructure.pdf
Key Trends Shaping the Future of Infrastructure.pdfCheryl Hung
 
Kubernetes & AI - Beauty and the Beast !?! @KCD Istanbul 2024
Kubernetes & AI - Beauty and the Beast !?! @KCD Istanbul 2024Kubernetes & AI - Beauty and the Beast !?! @KCD Istanbul 2024
Kubernetes & AI - Beauty and the Beast !?! @KCD Istanbul 2024Tobias Schneck
 
In-Depth Performance Testing Guide for IT Professionals
In-Depth Performance Testing Guide for IT ProfessionalsIn-Depth Performance Testing Guide for IT Professionals
In-Depth Performance Testing Guide for IT ProfessionalsExpeed Software
 
Builder.ai Founder Sachin Dev Duggal's Strategic Approach to Create an Innova...
Builder.ai Founder Sachin Dev Duggal's Strategic Approach to Create an Innova...Builder.ai Founder Sachin Dev Duggal's Strategic Approach to Create an Innova...
Builder.ai Founder Sachin Dev Duggal's Strategic Approach to Create an Innova...Ramesh Iyer
 
To Graph or Not to Graph Knowledge Graph Architectures and LLMs
To Graph or Not to Graph Knowledge Graph Architectures and LLMsTo Graph or Not to Graph Knowledge Graph Architectures and LLMs
To Graph or Not to Graph Knowledge Graph Architectures and LLMsPaul Groth
 
Exploring UiPath Orchestrator API: updates and limits in 2024 🚀
Exploring UiPath Orchestrator API: updates and limits in 2024 🚀Exploring UiPath Orchestrator API: updates and limits in 2024 🚀
Exploring UiPath Orchestrator API: updates and limits in 2024 🚀DianaGray10
 
How world-class product teams are winning in the AI era by CEO and Founder, P...
How world-class product teams are winning in the AI era by CEO and Founder, P...How world-class product teams are winning in the AI era by CEO and Founder, P...
How world-class product teams are winning in the AI era by CEO and Founder, P...Product School
 
Knowledge engineering: from people to machines and back
Knowledge engineering: from people to machines and backKnowledge engineering: from people to machines and back
Knowledge engineering: from people to machines and backElena Simperl
 
When stars align: studies in data quality, knowledge graphs, and machine lear...
When stars align: studies in data quality, knowledge graphs, and machine lear...When stars align: studies in data quality, knowledge graphs, and machine lear...
When stars align: studies in data quality, knowledge graphs, and machine lear...Elena Simperl
 
Connector Corner: Automate dynamic content and events by pushing a button
Connector Corner: Automate dynamic content and events by pushing a buttonConnector Corner: Automate dynamic content and events by pushing a button
Connector Corner: Automate dynamic content and events by pushing a buttonDianaGray10
 
"Impact of front-end architecture on development cost", Viktor Turskyi
"Impact of front-end architecture on development cost", Viktor Turskyi"Impact of front-end architecture on development cost", Viktor Turskyi
"Impact of front-end architecture on development cost", Viktor TurskyiFwdays
 
Bits & Pixels using AI for Good.........
Bits & Pixels using AI for Good.........Bits & Pixels using AI for Good.........
Bits & Pixels using AI for Good.........Alison B. Lowndes
 
AI for Every Business: Unlocking Your Product's Universal Potential by VP of ...
AI for Every Business: Unlocking Your Product's Universal Potential by VP of ...AI for Every Business: Unlocking Your Product's Universal Potential by VP of ...
AI for Every Business: Unlocking Your Product's Universal Potential by VP of ...Product School
 
IoT Analytics Company Presentation May 2024
IoT Analytics Company Presentation May 2024IoT Analytics Company Presentation May 2024
IoT Analytics Company Presentation May 2024IoTAnalytics
 
The Future of Platform Engineering
The Future of Platform EngineeringThe Future of Platform Engineering
The Future of Platform EngineeringJemma Hussein Allen
 
Slack (or Teams) Automation for Bonterra Impact Management (fka Social Soluti...
Slack (or Teams) Automation for Bonterra Impact Management (fka Social Soluti...Slack (or Teams) Automation for Bonterra Impact Management (fka Social Soluti...
Slack (or Teams) Automation for Bonterra Impact Management (fka Social Soluti...Jeffrey Haguewood
 

Recently uploaded (20)

Essentials of Automations: Optimizing FME Workflows with Parameters
Essentials of Automations: Optimizing FME Workflows with ParametersEssentials of Automations: Optimizing FME Workflows with Parameters
Essentials of Automations: Optimizing FME Workflows with Parameters
 
UiPath Test Automation using UiPath Test Suite series, part 1
UiPath Test Automation using UiPath Test Suite series, part 1UiPath Test Automation using UiPath Test Suite series, part 1
UiPath Test Automation using UiPath Test Suite series, part 1
 
Empowering NextGen Mobility via Large Action Model Infrastructure (LAMI): pav...
Empowering NextGen Mobility via Large Action Model Infrastructure (LAMI): pav...Empowering NextGen Mobility via Large Action Model Infrastructure (LAMI): pav...
Empowering NextGen Mobility via Large Action Model Infrastructure (LAMI): pav...
 
FIDO Alliance Osaka Seminar: Passkeys at Amazon.pdf
FIDO Alliance Osaka Seminar: Passkeys at Amazon.pdfFIDO Alliance Osaka Seminar: Passkeys at Amazon.pdf
FIDO Alliance Osaka Seminar: Passkeys at Amazon.pdf
 
Key Trends Shaping the Future of Infrastructure.pdf
Key Trends Shaping the Future of Infrastructure.pdfKey Trends Shaping the Future of Infrastructure.pdf
Key Trends Shaping the Future of Infrastructure.pdf
 
Kubernetes & AI - Beauty and the Beast !?! @KCD Istanbul 2024
Kubernetes & AI - Beauty and the Beast !?! @KCD Istanbul 2024Kubernetes & AI - Beauty and the Beast !?! @KCD Istanbul 2024
Kubernetes & AI - Beauty and the Beast !?! @KCD Istanbul 2024
 
In-Depth Performance Testing Guide for IT Professionals
In-Depth Performance Testing Guide for IT ProfessionalsIn-Depth Performance Testing Guide for IT Professionals
In-Depth Performance Testing Guide for IT Professionals
 
Builder.ai Founder Sachin Dev Duggal's Strategic Approach to Create an Innova...
Builder.ai Founder Sachin Dev Duggal's Strategic Approach to Create an Innova...Builder.ai Founder Sachin Dev Duggal's Strategic Approach to Create an Innova...
Builder.ai Founder Sachin Dev Duggal's Strategic Approach to Create an Innova...
 
To Graph or Not to Graph Knowledge Graph Architectures and LLMs
To Graph or Not to Graph Knowledge Graph Architectures and LLMsTo Graph or Not to Graph Knowledge Graph Architectures and LLMs
To Graph or Not to Graph Knowledge Graph Architectures and LLMs
 
Exploring UiPath Orchestrator API: updates and limits in 2024 🚀
Exploring UiPath Orchestrator API: updates and limits in 2024 🚀Exploring UiPath Orchestrator API: updates and limits in 2024 🚀
Exploring UiPath Orchestrator API: updates and limits in 2024 🚀
 
How world-class product teams are winning in the AI era by CEO and Founder, P...
How world-class product teams are winning in the AI era by CEO and Founder, P...How world-class product teams are winning in the AI era by CEO and Founder, P...
How world-class product teams are winning in the AI era by CEO and Founder, P...
 
Knowledge engineering: from people to machines and back
Knowledge engineering: from people to machines and backKnowledge engineering: from people to machines and back
Knowledge engineering: from people to machines and back
 
When stars align: studies in data quality, knowledge graphs, and machine lear...
When stars align: studies in data quality, knowledge graphs, and machine lear...When stars align: studies in data quality, knowledge graphs, and machine lear...
When stars align: studies in data quality, knowledge graphs, and machine lear...
 
Connector Corner: Automate dynamic content and events by pushing a button
Connector Corner: Automate dynamic content and events by pushing a buttonConnector Corner: Automate dynamic content and events by pushing a button
Connector Corner: Automate dynamic content and events by pushing a button
 
"Impact of front-end architecture on development cost", Viktor Turskyi
"Impact of front-end architecture on development cost", Viktor Turskyi"Impact of front-end architecture on development cost", Viktor Turskyi
"Impact of front-end architecture on development cost", Viktor Turskyi
 
Bits & Pixels using AI for Good.........
Bits & Pixels using AI for Good.........Bits & Pixels using AI for Good.........
Bits & Pixels using AI for Good.........
 
AI for Every Business: Unlocking Your Product's Universal Potential by VP of ...
AI for Every Business: Unlocking Your Product's Universal Potential by VP of ...AI for Every Business: Unlocking Your Product's Universal Potential by VP of ...
AI for Every Business: Unlocking Your Product's Universal Potential by VP of ...
 
IoT Analytics Company Presentation May 2024
IoT Analytics Company Presentation May 2024IoT Analytics Company Presentation May 2024
IoT Analytics Company Presentation May 2024
 
The Future of Platform Engineering
The Future of Platform EngineeringThe Future of Platform Engineering
The Future of Platform Engineering
 
Slack (or Teams) Automation for Bonterra Impact Management (fka Social Soluti...
Slack (or Teams) Automation for Bonterra Impact Management (fka Social Soluti...Slack (or Teams) Automation for Bonterra Impact Management (fka Social Soluti...
Slack (or Teams) Automation for Bonterra Impact Management (fka Social Soluti...
 

Release Engineering

  • 3. Motivation: Toil ● If a machine could accomplish the task just as well as a human, or the need for the task could be designed away, that task is toil ● If you’re performing a task for the first time ever, or even the second time, this work is not toil. Toil is work you do over and over ● Toil is interrupt-driven and reactive, rather than strategy-driven and proactive
  • 4. Motivation: Why toil is bad ● Your career progress will slow down or grind to a halt if you spend too little time on projects. Too much toil leads to low morale ● Excessive toil makes a team less productive. A product’s feature velocity will slow if the team is too busy with manual work ● If you build too much toil into your team’s procedures, you motivate the team’s best engineers to start looking elsewhere for a more rewarding job
  • 5. Engineering: The work of reducing toil ● Requires human judgment ● Produces a permanent improvement in your service ● Guided by a strategy ● Creative and innovative ● Helps your team or organization handle a larger service, or more services, with the same level of staffing
  • 6. Release Engineering: High Velocity ● Aim to roll out customer-facing features as quickly as possible ● Frequent releases result in fewer changes between versions. This approach makes testing and troubleshooting easier ● Some teams perform hourly builds and then select the version to actually deploy to production ● Other teams have adopted a “Push on Green” release model and deploy every build that passes all tests
  • 7. Release Engineering: Self-Service Model ● Individual teams can decide how often and when to release new versions of their products ● Release engineering has developed best practices and tools that allow product development teams to control and run their own release processes ● Releases are truly automatic, and only require engineer involvement if and when problems arise
  • 8. Release Engineering: Budgeting ● Managers don’t always plan and budget for release engineering in the early stages of a project ● Teams should budget for release engineering resources at the beginning of the product development cycle ● It’s cheaper to put good practices and process in place early, rather than have to retrofit your system later
  • 9. Automated Release System: Branching ● All code is checked into the main branch of the source code tree ● Most major projects don’t release directly from the main branch ● Each release has own branch ● Release branch never merges changes back into the main branch ● Bug fixes are submitted to the main branch and then cherry picked into the release branch for inclusion in the release
  • 10. Automated Release System: Building ● If two people attempt to build the same product at the same revision number in the source code repository on different machines, we expect identical results ● The build process is self-contained and must not rely on services that are external to the build environment ● Build tools must allow us to ensure consistency and repeatability
  • 11. Automated Release System: Testing ● A continuous test system runs unit tests against the code in the main branch each time a change is submitted ● An independent testing environment that runs system-level tests on packaged build artifacts ● Because of cherry picks, the release branch may contain a version of the code that doesn’t exist anywhere on the main branch. During the release, unit tests are run once again using the release branch
  • 12. Automated Release System: Packaging ● Packages are named (e.g., search/frontend), versioned with a unique hash, and signed to ensure authenticity ● Labels can be applied to package to indicate a package’s location in the release process (e.g., dev, canary, or production) ● If a package is labeled as canary, someone subsequently installing the canary version of that package will automatically receive the newest version of the package with the label canary
  • 13. Automated Release System: Deployment ● Performed by a general-purpose rollout automation framework ● Framework provides a set of Python classes that can be extended to support any deployment process ● It has a dashboard that allows for finer control on how the rollout is performed and provides a way to monitor the rollout’s progress ● A rollout is a logical unit of work that is composed of one or more individual tasks
  • 14. Automated Release System: Policies ● Several layers of security and access control determine who can perform specific operations when releasing a project: ○ Approving source code changes ○ Specifying the actions to be performed during the release ○ Creating a new release ○ Deploying a new release ○ Making changes to a project’s build configuration
  • 15. Configuration Management ● In order to simplify deployment, include configuration files and binaries in the same package ● If you want to release binaries and configuration files independently, put configuration files into “configuration packages” ● If projects have configuration files that need to change frequently or dynamically, read configuration files from external store ● Using the mainline for configuration can lead us to skew between the checked-in and running version of the configuration file
  • 16. Summary ● It is essential that Developers and Release Engineers work together ● Release Engineer needs to understand the intention of how the code should be built and deployed. Developers shouldn’t build and “throw the results over the fence” to be handled by Release Engineer ● When equipped with the right tools, proper automation, and well- defined policies, we shouldn’t have to worry about releasing software. Releases can be as painless as simply pressing a button