Home / Keptn v1 Docs / Release 1.y.z / Concepts / Quality Gates
When developing a software product, you eventually need to deliver a new version of your service in a production environment. To conduct this in a controlled manner and without impacting end-user experience, the quality of the new service must be ensured in an automated way.
💡 A quality gate allows conducting a deployment/release validation by ensuring that defined quality criteria are met.
Keptn quality gates provide a declarative way to define quality criteria of your service. Keptn collects, evaluates, and scores those quality criteria to decide if a new release is allowed to be promoted to the next stage or if it must be held back.
Keptn quality gates are based on the concepts of Service-Level Indicators (SLIs) and Service-Level Objectives (SLOs). Using these, you can declaratively describe the desired quality objective for your applications and services.
A service-level indicator is a “carefully defined quantitative measure of some aspect of the level of service that is provided” (as defined in the Site-Reliability Engineering Book).
An example of an SLI is the response time (also named request latency), which is the indicator of how long it takes for a request to respond with an answer. Other prominent SLIs are error rate (or failure rate), and throughput. Keptn defines all SLIs in a dedicated sli.yaml file to make SLIs reusable within several quality gates.
By default, SLIs are defined at the project level but they can also be defined for a specific stage or service within a stage. See the SLI reference page for details.
A service-level objective is “a target value or range of values for a service level that is measured by an SLI.” (as defined in the Site-Reliability Engineering Book).
An example of an SLO can define that a specific request must return results within 100 milliseconds. Keptn quality gates can comprise several SLOs that are all evaluated and scored, based even on different weights for each SLO to consider different importance of each SLO. Keptn defines SLOs in a dedicated slo.yaml file.
💡 A quality gate answers one question: Does my service meet all defined quality criteria?
Keptn quality gates help you answer this question by representing quality gate results on the Keptn Bridge like this:
This visualization in the Keptn Bridge allows you to answer the following questions: