Continuous delivery is an agile methodology that aims to reduce the cost, time, and risk of delivering software by frequently releasing small, incremental changes. The key goals are to continuously build the right features, reduce lead time, reduce costs through optimization and automation, and reduce risk through resilience and small increments. Continuous delivery utilizes a deployment pipeline to fully automate building, deploying, testing and releasing software. This allows organizations to reliably deliver changes involving a single line of code. It also reduces risk by failing fast and treating every version as a release candidate. Continuous delivery challenges teams to avoid anti-patterns like code freezes, manual processes, and exceptions to the pipeline for releases.