# Continuous Deployment (CD)

Continuous deployment is a DevOps practice that automatically deploys each successful code change to production without manual intervention.

This is one page of public article previews, not the complete archive. Follow Next page to continue. Summaries are not the original full articles.

## Trust Factory

DevFeed: [Trust Factory](<https://devfeed.tech/articles/trust-factory-39985.md>)

Original publisher: [Read original article](<https://newsletter.kentbeck.com/p/trust-factory>)

Author: Kent Beck

Published: 2026-06-02T13:33:57Z

Content type: opinion

Language: en

Sources: [Software Design: Tidy First?](<https://devfeed.tech/sources/software-design-tidy-first.md>)

Topics: [trust](<https://devfeed.tech/topics/trust.md>), [Code](<https://devfeed.tech/topics/code.md>), [Testing](<https://devfeed.tech/topics/testing.md>), [CI/CD](<https://devfeed.tech/topics/cicd.md>), [Continuous Deployment (CD)](<https://devfeed.tech/topics/continuous-deployment.md>), [observability](<https://devfeed.tech/topics/observability.md>), [Refactoring](<https://devfeed.tech/topics/refactoring.md>)

Tags: [code](<https://devfeed.tech/tags/code.md>), [continuous-deployment](<https://devfeed.tech/tags/continuous-deployment.md>), [continuous-integration](<https://devfeed.tech/tags/continuous-integration.md>), [observability](<https://devfeed.tech/tags/observability.md>), [refactoring](<https://devfeed.tech/tags/refactoring.md>), [testing](<https://devfeed.tech/tags/testing.md>), [trust](<https://devfeed.tech/tags/trust.md>)

### AI overview

This commentary argues that software development practices can function as a "trust factory." It connects programmer testing, pairing, continuous integration, weekly planning, customer involvement, continuous deployment, refactoring, and observability with building trust among developers, customers, and teams.

### Source excerpt

"We're accumulating code faster than we are accumulating trust." Sometimes a phrase just hits.

## App Hosting adds support for Turborepo

DevFeed: [App Hosting adds support for Turborepo](<https://devfeed.tech/articles/app-hosting-adds-support-for-turborepo-16646.md>)

Original publisher: [Read original article](<https://firebase.blog/posts/2026/01/apphosting-turborepo>)

Author: Julia Reid

Published: 2026-01-08T00:00:00Z

Content type: release

Language: en

Sources: [Firebase Blog](<https://devfeed.tech/sources/firebase-blog.md>)

Topics: [Continuous Deployment (CD)](<https://devfeed.tech/topics/continuous-deployment.md>), [CI/CD](<https://devfeed.tech/topics/cicd.md>), [JavaScript](<https://devfeed.tech/topics/javascript.md>), [TypeScript](<https://devfeed.tech/topics/typescript.md>), [Next.js](<https://devfeed.tech/topics/next-js.md>)

Tags: [app-hosting](<https://devfeed.tech/tags/app-hosting.md>), [continuous-deployment](<https://devfeed.tech/tags/continuous-deployment.md>), [dependencies](<https://devfeed.tech/tags/dependencies.md>), [deployment](<https://devfeed.tech/tags/deployment.md>), [firebase](<https://devfeed.tech/tags/firebase.md>), [javascript](<https://devfeed.tech/tags/javascript.md>), [monorepo](<https://devfeed.tech/tags/monorepo.md>), [next-js](<https://devfeed.tech/tags/next-js.md>), [parallel](<https://devfeed.tech/tags/parallel.md>), [typescript](<https://devfeed.tech/tags/typescript.md>), [web](<https://devfeed.tech/tags/web.md>)

### AI overview

Firebase App Hosting now supports Turborepo for JavaScript and TypeScript monorepos. The article explains how Turborepo uses task configuration, dependency graphs, and parallel execution to support reliable and efficient builds and deployments.

### Source excerpt

Efficient builds in App Hosting's continuous deployment pipeline, even for large and complex monorepos.

## Why Threat Modeling Is Now Even More Critical for AI-Native Applications

DevFeed: [Why Threat Modeling Is Now Even More Critical for AI-Native Applications](<https://devfeed.tech/articles/why-threat-modeling-is-now-even-more-critical-for-ai-native-applications-8213.md>)

Original publisher: [Read original article](<https://snyk.io/blog/threat-modeling-critical-ai-native-applications/>)

Author: Snyk Team

Published: 2025-11-20T05:00:00Z

Content type: article

Language: en

Sources: [Blog RSS Feed | Snyk](<https://devfeed.tech/sources/blog-rss-feed-snyk.md>)

Topics: [Security](<https://devfeed.tech/topics/security.md>), [ai security](<https://devfeed.tech/topics/ai-security.md>), [Securing AI](<https://devfeed.tech/topics/securing-ai.md>), [Artificial Intelligence](<https://devfeed.tech/topics/ai.md>), [Large Language Model](<https://devfeed.tech/topics/llm.md>), [Continuous Deployment (CD)](<https://devfeed.tech/topics/continuous-deployment.md>), [Adversarial attacks](<https://devfeed.tech/topics/adversarial-attacks.md>)

Tags: [ai](<https://devfeed.tech/tags/ai.md>), [ai-security](<https://devfeed.tech/tags/ai-security.md>), [architecture](<https://devfeed.tech/tags/architecture.md>), [architectures](<https://devfeed.tech/tags/architectures.md>), [attacks](<https://devfeed.tech/tags/attacks.md>), [blog](<https://devfeed.tech/tags/blog.md>), [continuous-deployment](<https://devfeed.tech/tags/continuous-deployment.md>), [engineering](<https://devfeed.tech/tags/engineering.md>), [executive](<https://devfeed.tech/tags/executive.md>), [interest](<https://devfeed.tech/tags/interest.md>), [language-models](<https://devfeed.tech/tags/language-models.md>), [large-language-models](<https://devfeed.tech/tags/large-language-models.md>), [security](<https://devfeed.tech/tags/security.md>)

### AI overview

AI-native applications require continuous, adaptive threat modeling because their large language models, autonomous agents, evolving data flows, and runtime-integrated tools create dynamic and unpredictable security risks. The article explains why traditional manual, static, point-in-time assessments become stale and fail to scale, and highlights new attack surfaces such as data poisoning, model inversion, and adversarial attacks.

### Source excerpt

AI-native applications demand a security approach as dynamic as they are. Traditional threat modeling is no longer enough. Discover the shift to continuous, adaptive threat modeling for AI security.

## Combine the Codefresh GitOps Cloud with your existing Argo CD instance

DevFeed: [Combine the Codefresh GitOps Cloud with your existing Argo CD instance](<https://devfeed.tech/articles/combine-the-codefresh-gitops-cloud-with-your-existing-argo-cd-instance-17676.md>)

Original publisher: [Read original article](<https://codefresh.io/blog/bring-your-own-argocd/>)

Author: Kostis Kapelonis

Published: 2025-04-30T08:16:16Z

Content type: article

Language: en

Sources: [Codefresh](<https://devfeed.tech/sources/codefresh.md>)

Topics: [argo-cd](<https://devfeed.tech/topics/argo-cd.md>), [GitOps](<https://devfeed.tech/topics/gitops.md>), [Kubernetes](<https://devfeed.tech/topics/kubernetes.md>), [Continuous Deployment (CD)](<https://devfeed.tech/topics/continuous-deployment.md>), [Deployment](<https://devfeed.tech/topics/deployment.md>), [Git](<https://devfeed.tech/topics/git.md>)

Tags: [argo](<https://devfeed.tech/tags/argo.md>), [argo-cd](<https://devfeed.tech/tags/argo-cd.md>), [argocd](<https://devfeed.tech/tags/argocd.md>), [codefresh](<https://devfeed.tech/tags/codefresh.md>), [continuous-deployment](<https://devfeed.tech/tags/continuous-deployment.md>), [declarative](<https://devfeed.tech/tags/declarative.md>), [deployment](<https://devfeed.tech/tags/deployment.md>), [git](<https://devfeed.tech/tags/git.md>), [gitops](<https://devfeed.tech/tags/gitops.md>), [kubernetes](<https://devfeed.tech/tags/kubernetes.md>), [product-and-tools](<https://devfeed.tech/tags/product-and-tools.md>), [pull-request](<https://devfeed.tech/tags/pull-request.md>)

### AI overview

This article explains Argo CD as a Kubernetes-native continuous deployment tool and describes how Codefresh GitOps Cloud can work with an existing Argo CD instance. It covers GitOps workflows, application promotion across clusters, declarative configuration, approvals, and deployment synchronization.

### Source excerpt

We recently announced the new Codefresh GitOps Cloud, the easiest way to promote changes across Argo CD applications-even across different clusters. With Codefresh GitOps Cloud, you can model your own promotion flow with a graphical editor (although YAML is still available). You define exactly how an application reaches production, including all the requirements and approval [...] The post Combine the Codefresh GitOps Cloud with your existing Argo CD instance appeared first on Codefresh.

## Our Tech Journey Update & Planning

DevFeed: [Our Tech Journey Update & Planning](<https://devfeed.tech/articles/our-tech-journey-update-planning-28429.md>)

Original publisher: [Read original article](<https://craftingtechteams.substack.com/p/our-tech-journey-update-and-planning>)

Author: Denis Čahuk

Published: 2025-04-02T09:36:57Z

Content type: article

Language: en

Sources: [Crafting Tech Teams](<https://devfeed.tech/sources/crafting-tech-teams.md>)

Topics: [AI Agent](<https://devfeed.tech/topics/ai-agent.md>), [Artificial Intelligence](<https://devfeed.tech/topics/ai.md>), [Continuous Deployment (CD)](<https://devfeed.tech/topics/continuous-deployment.md>), [Test-driven development](<https://devfeed.tech/topics/tdd.md>), [Code review](<https://devfeed.tech/topics/code-review.md>)

Tags: [ai](<https://devfeed.tech/tags/ai.md>), [ai-agent](<https://devfeed.tech/tags/ai-agent.md>), [code-review](<https://devfeed.tech/tags/code-review.md>), [continuous-deployment](<https://devfeed.tech/tags/continuous-deployment.md>), [tdd](<https://devfeed.tech/tags/tdd.md>), [tech](<https://devfeed.tech/tags/tech.md>), [update](<https://devfeed.tech/tags/update.md>), [video](<https://devfeed.tech/tags/video.md>)

### AI overview

The article outlines a 10-week live content plan covering AI assistance for tech businesses, AI agent setups, development workflows, testing, deployment, code review, and the economics of AI in product engineering. It also provides streaming platforms and scheduling information.

### Source excerpt

A recording from Denis Čahuk's live video

## Scaling Technology with Architectural Principles

DevFeed: [Scaling Technology with Architectural Principles](<https://devfeed.tech/articles/scaling-technology-with-architectural-principles-40097.md>)

Original publisher: [Read original article](<https://www.rea-group.com/about-us/news-and-insights/blog/scaling-technology-with-architectural-principles/>)

Author: Shane Gibb

Published: 2025-01-08T01:18:36Z

Content type: article

Language: en

Sources: [REA Group](<https://devfeed.tech/sources/rea-group.md>)

Topics: [scaling](<https://devfeed.tech/topics/scaling.md>), [Software Engineering](<https://devfeed.tech/topics/software-engineering.md>), [Development](<https://devfeed.tech/topics/development.md>), [Continuous Deployment (CD)](<https://devfeed.tech/topics/continuous-deployment.md>), [maintenance](<https://devfeed.tech/topics/maintenance.md>), [Design system](<https://devfeed.tech/topics/design-system.md>), [CI/CD](<https://devfeed.tech/topics/cicd.md>)

Tags: [code](<https://devfeed.tech/tags/code.md>), [continuous-deployment](<https://devfeed.tech/tags/continuous-deployment.md>), [continuous-integration](<https://devfeed.tech/tags/continuous-integration.md>), [design-system](<https://devfeed.tech/tags/design-system.md>), [engineering](<https://devfeed.tech/tags/engineering.md>), [maintenance](<https://devfeed.tech/tags/maintenance.md>), [scaling](<https://devfeed.tech/tags/scaling.md>), [tech](<https://devfeed.tech/tags/tech.md>)

### AI overview

REA Group describes how architectural principles developed through 25 years of growth guide its software engineering practices, including decision-making, system resilience, team agility, platform reuse, and continuous deployment.

### Source excerpt

REA Group, a global company with 1,000+ digital product builders, developed architectural principles from 25 years of growth.

## From Code to Customer - How Continuous Deployment can Accelerate Your Software Development Cycle

DevFeed: [From Code to Customer - How Continuous Deployment can Accelerate Your Software Development Cycle](<https://devfeed.tech/articles/from-code-to-customer-how-continuous-deployment-can-accelerate-your-software-development-cycle-39965.md>)

Original publisher: [Read original article](<https://mende.io/talks/from-code-to-customer/>)

Author: tobi@techunicorn.builders (Tobias Mende)

Published: 2024-10-17T00:00:00Z

Content type: article

Language: en

Sources: [Tobias Mende](<https://devfeed.tech/sources/tobias-mende.md>)

Topics: [Continuous Deployment (CD)](<https://devfeed.tech/topics/continuous-deployment.md>), [CI/CD](<https://devfeed.tech/topics/cicd.md>), [Infrastructure as code](<https://devfeed.tech/topics/infrastructure-as-code.md>), [Testing](<https://devfeed.tech/topics/testing.md>), [Monitoring](<https://devfeed.tech/topics/monitoring.md>), [Software Engineering](<https://devfeed.tech/topics/software-engineering.md>)

Tags: [automated](<https://devfeed.tech/tags/automated.md>), [collaboration](<https://devfeed.tech/tags/collaboration.md>), [communication](<https://devfeed.tech/tags/communication.md>), [continuous-deployment](<https://devfeed.tech/tags/continuous-deployment.md>), [infrastructure-as-code](<https://devfeed.tech/tags/infrastructure-as-code.md>), [monitoring](<https://devfeed.tech/tags/monitoring.md>), [pipelines](<https://devfeed.tech/tags/pipelines.md>), [testing](<https://devfeed.tech/tags/testing.md>), [trust](<https://devfeed.tech/tags/trust.md>)

### AI overview

This talk explains how continuous deployment can streamline software delivery through infrastructure as code, automated testing, monitoring, and efficient deployment pipelines. It also discusses organizational changes such as collaboration, communication, and trust, using an example of implementation across 15 teams.

### Source excerpt

Many organizations struggle with streamlining the software delivery process, resulting in slower delivery, lower quality, and decreased customer satisfaction. They also face challenges in establishing efficient CD pipelines and implementing cultural changes necessary for successful CD implementation.

## End-to-end tests retry strategies

DevFeed: [End-to-end tests retry strategies](<https://devfeed.tech/articles/end-to-end-tests-retry-strategies-28041.md>)

Original publisher: [Read original article](<https://tech.trivago.com/post/2023-09-27-end-to-end-tests-retry-strategies/>)

Author: Giuseppe Donati Web Test Automation Engineer Not a stereotypical Italian guy; Except

Published: 2023-09-27T00:00:00Z

Content type: article

Language: en

Sources: [Trivago](<https://devfeed.tech/sources/trivago.md>)

Topics: [Testing](<https://devfeed.tech/topics/testing.md>), [Test automation](<https://devfeed.tech/topics/test-automation.md>), [GitHub Actions](<https://devfeed.tech/topics/github-actions.md>), [CI/CD](<https://devfeed.tech/topics/cicd.md>), [Continuous Deployment (CD)](<https://devfeed.tech/topics/continuous-deployment.md>), [Front end](<https://devfeed.tech/topics/frontend.md>), [web applications](<https://devfeed.tech/topics/web-applications.md>)

Tags: [continuous-deployment](<https://devfeed.tech/tags/continuous-deployment.md>), [core](<https://devfeed.tech/tags/core.md>), [feature](<https://devfeed.tech/tags/feature.md>), [frontend](<https://devfeed.tech/tags/frontend.md>), [github-actions](<https://devfeed.tech/tags/github-actions.md>), [pull-requests](<https://devfeed.tech/tags/pull-requests.md>), [quality-assurance](<https://devfeed.tech/tags/quality-assurance.md>), [test-automation](<https://devfeed.tech/tags/test-automation.md>), [tests](<https://devfeed.tech/tags/tests.md>)

### AI overview

This article describes how trivago's frontend QA team uses different end-to-end test retry strategies in GitHub Actions. It explains unconditional retries for core tests, filtered retries for specific failure causes in extended tests, and manual retries for a subset of scenarios, balancing stable results, pull-request confidence, and feedback speed.

### Source excerpt

Why should you retry all tests on failure? Why not? This article will not go into details, listing pros and cons of each approach. There are already enough

## Zero to One and Beyond: HackerEarth's journey to Continuous Delivery

DevFeed: [Zero to One and Beyond: HackerEarth's journey to Continuous Delivery](<https://devfeed.tech/articles/zero-to-one-and-beyond-hackerearth-s-journey-to-continuous-delivery-20015.md>)

Original publisher: [Read original article](<http://engineering.hackerearth.com/2021/08/01/CI-CD-Journey/>)

Published: 2021-08-01T00:00:00Z

Content type: article

Language: en

Sources: [HackerEarth](<https://devfeed.tech/sources/hackerearth.md>)

Topics: [CI/CD](<https://devfeed.tech/topics/cicd.md>), [Continuous Delivery (CD)](<https://devfeed.tech/topics/continuous-delivery.md>), [Continuous Deployment (CD)](<https://devfeed.tech/topics/continuous-deployment.md>), [ci](<https://devfeed.tech/topics/ci.md>), [Deployment](<https://devfeed.tech/topics/deployment.md>), [Agile](<https://devfeed.tech/topics/agile.md>)

Tags: [agile](<https://devfeed.tech/tags/agile.md>), [ci](<https://devfeed.tech/tags/ci.md>), [ci-cd](<https://devfeed.tech/tags/ci-cd.md>), [code](<https://devfeed.tech/tags/code.md>), [continuous-delivery](<https://devfeed.tech/tags/continuous-delivery.md>), [continuous-deployment](<https://devfeed.tech/tags/continuous-deployment.md>), [deployment](<https://devfeed.tech/tags/deployment.md>)

### AI overview

HackerEarth describes its journey from frequent but failure-prone deployments toward continuous delivery and continuous deployment. The article explains how continuous integration, fast feedback near the point of failure, deployable software, and on-demand push-button deployments can improve release cadence and reduce costly production issues.

### Source excerpt

"Hey the deployment is broken again. Can you push this change again" "Hey, I merged my changes were merged in the morning. I still don't see them in production yet" "Argh, the static files are not updated. We have to run deployment again" These voices hollared across the hallway and this was followed by a huddle to sort things out. These voices soon grew louder and then we realised: Our Deployment is broken. Epilogue At HackerEarth, we have always been good at embracing bleeding edge technologies. We have always taken pride at doing what is right and acknowledge when something needs a fix. A faster delivery cadence and a quicker release cycle are very important for a startup of our scale. Our deployment related problems threatened our fundament need - "Pace" This prompted us to not just fix what was broken but to introduce a new paradigm to deployment - Continuous Deployment. The key tenets of following agile to push consistent smaller pieces of software frequently to customers and get Feedback. As any growing team, we were at one point struggling with - higher deployment failures or critical issues leaking to production. What followed was our path to redemption Circa 2019, HackerEarth was already doing frequent deployments. We had a process to collect, merge, tag and release code into production. But, this was not enough. As it must be obvious now, our feedback cycle was not close to the point of failure. The Integration happened closer to production and any failure is now expensive to fix. This is where our journey up the CI-CD ladder begun. You're doing continuous delivery when: Your software is deployable throughout its lifecycle Your team prioritises keeping the software deployable over working on new features Anybody can get fast, automated feedback on the production readiness of their systems any time somebody makes a change to them You can perform push-button deployments of any version of the software to any environment on demand" -- Martin Fowler When it all

## Continuous Deployment for AWS Glue

DevFeed: [Continuous Deployment for AWS Glue](<https://devfeed.tech/articles/continuous-deployment-for-aws-glue-22993.md>)

Original publisher: [Read original article](<https://bravenewgeek.com/continuous-deployment-for-aws-glue/>)

Author: Mohammed

Published: 2020-10-15T15:51:25Z

Content type: tutorial

Language: en

Sources: [Brave New Geek](<https://devfeed.tech/sources/brave-new-geek.md>)

Topics: [AWS Glue](<https://devfeed.tech/topics/aws-glue.md>), [Continuous Deployment (CD)](<https://devfeed.tech/topics/continuous-deployment.md>), [GitHub Actions](<https://devfeed.tech/topics/github-actions.md>), [Jupyter Notebook](<https://devfeed.tech/topics/jupyter-notebook.md>), [Amazon S3](<https://devfeed.tech/topics/amazon-s3.md>)

Tags: [analytics](<https://devfeed.tech/tags/analytics.md>), [analytics-pipeline](<https://devfeed.tech/tags/analytics-pipeline.md>), [aws](<https://devfeed.tech/tags/aws.md>), [aws-glue](<https://devfeed.tech/tags/aws-glue.md>), [ci-cd](<https://devfeed.tech/tags/ci-cd.md>), [continuous-delivery](<https://devfeed.tech/tags/continuous-delivery.md>), [continuous-deployment](<https://devfeed.tech/tags/continuous-deployment.md>), [etl](<https://devfeed.tech/tags/etl.md>), [github](<https://devfeed.tech/tags/github.md>), [github-actions](<https://devfeed.tech/tags/github-actions.md>), [jupyter](<https://devfeed.tech/tags/jupyter.md>), [jupyter-notebook](<https://devfeed.tech/tags/jupyter-notebook.md>), [s3](<https://devfeed.tech/tags/s3.md>), [serverless](<https://devfeed.tech/tags/serverless.md>)

### AI overview

A tutorial for automating continuous deployment of AWS Glue ETL jobs. It uses GitHub Actions to generate a Python script from a Jupyter notebook, copy it to Amazon S3, and update the Glue job to use the new script.

### Source excerpt

AWS Glue is a managed service for building ETL (Extract-Transform-Load) jobs. It's a useful tool for implementing analytics pipelines in AWS without having to manage server infrastructure. Jobs are implemented using Apache Spark and, with the help of Development Endpoints, can be built using Jupyter notebooks. This makes it reasonably easy to write ETL processes in an interactive, iterative fashion. Once finished, the Jupyter notebook is converted into a Python script, uploaded to S3, and then run as a Glue job.

## How I Built and Manage This Blog with Hugo, Markdown, Docker, and Automation

DevFeed: [How I Built and Manage This Blog with Hugo, Markdown, Docker, and Automation](<https://devfeed.tech/articles/how-this-blog-is-build-27323.md>)

Original publisher: [Read original article](<https://blog.pchudzik.com/202002/blog-process/>)

Published: 2020-02-14T00:00:00Z

Content type: tutorial

Language: en

Sources: [Paweł Chudzik](<https://devfeed.tech/sources/pawe-chudzik.md>)

Topics: [Hugo](<https://devfeed.tech/topics/hugo.md>), [Markdown](<https://devfeed.tech/topics/markdown.md>), [Docker](<https://devfeed.tech/topics/docker.md>), [Automation](<https://devfeed.tech/topics/automation.md>), [Continuous Deployment (CD)](<https://devfeed.tech/topics/continuous-deployment.md>)

Tags: [automation](<https://devfeed.tech/tags/automation.md>), [continuous-deployment](<https://devfeed.tech/tags/continuous-deployment.md>), [docker](<https://devfeed.tech/tags/docker.md>), [hugo](<https://devfeed.tech/tags/hugo.md>), [markdown](<https://devfeed.tech/tags/markdown.md>)

### AI overview

The author describes how their blog evolved over three years, covering Hugo, Markdown and Asciidoc, theme customization, Docker-based local development, scripts, and continuous deployment possibilities.

### Source excerpt

In this post, I'd like to show you how I've started with writing this blog. How the process evolved during 3 years of writing. How I've finally managed to set up everything in a way that works for me now. If you don't blog yet this might help you out with technical details on how you can start easily. If you already have a blog maybe you'll be able to pick up some ideas. Read more

## Tests that sometimes fail - flaky test tips

DevFeed: [Tests that sometimes fail - flaky test tips](<https://devfeed.tech/articles/tests-that-sometimes-fail-flaky-test-tips-22434.md>)

Original publisher: [Read original article](<https://samsaffron.com/archive/2019/05/15/tests-that-sometimes-fail>)

Author: Sam Saffron

Published: 2019-05-28T06:54:25Z

Content type: article

Language: en

Sources: [Sam Saffron](<https://devfeed.tech/sources/sam-saffron.md>)

Topics: [Development](<https://devfeed.tech/topics/development.md>), [debug](<https://devfeed.tech/topics/debug.md>), [CI/CD](<https://devfeed.tech/topics/cicd.md>), [Continuous Deployment (CD)](<https://devfeed.tech/topics/continuous-deployment.md>)

Tags: [blog](<https://devfeed.tech/tags/blog.md>), [c-sharp](<https://devfeed.tech/tags/c-sharp.md>), [continuous-deployment](<https://devfeed.tech/tags/continuous-deployment.md>), [debug](<https://devfeed.tech/tags/debug.md>), [development](<https://devfeed.tech/tags/development.md>), [flaky](<https://devfeed.tech/tags/flaky.md>), [infection](<https://devfeed.tech/tags/infection.md>), [net](<https://devfeed.tech/tags/net.md>), [pipeline](<https://devfeed.tech/tags/pipeline.md>), [rails](<https://devfeed.tech/tags/rails.md>), [ruby](<https://devfeed.tech/tags/ruby.md>), [saffron](<https://devfeed.tech/tags/saffron.md>), [sam](<https://devfeed.tech/tags/sam.md>), [sql](<https://devfeed.tech/tags/sql.md>), [tests](<https://devfeed.tech/tags/tests.md>), [tips](<https://devfeed.tech/tags/tips.md>), [weblog](<https://devfeed.tech/tags/weblog.md>)

### AI overview

An article about flaky tests in mature projects, explaining how they can consume debugging time, disrupt continuous deployment, and sometimes reveal underlying application flaws. It describes Discourse's practices for identifying and mitigating them.

### Source excerpt

The boy who cried wolf695x564 286 KB A liar will not be believed, even when he speaks the truth. : Aesop Once you have a project that is a few years old with a large test suite an ugly pattern emerges. Some tests that used to always work, start "sometimes" working. This starts slowly, "oh that test, yeah it sometimes fails, kick the build off again". If left unmitigated it can very quickly snowball and paralyze an entire test suite. Most developers know about this problem and call these tests "non deterministic tests", "flaky tests","random tests", "erratic tests", "brittle tests", "flickering tests" or even "heisentests". Naming is hard, it seems that this toxic pattern does not have a well established unique and standard name. Over the years at Discourse we have called this many things, for the purpose of this article I will call them flaky tests, it seems to be the most commonly adopted name. Much has been written about why flaky tests are a problem. Martin Fowler back in 2011 wrote: Non-deterministic tests have two problems, firstly they are useless, secondly they are a virulent infection that can completely ruin your entire test suite. To this I would like to add that flaky tests are an incredible cost to businesses. They are very expensive to repair often requiring hours or even days to debug and they jam the continuous deployment pipeline making shipping features slower. I would like to disagree a bit with Martin. Sometimes I find flaky tests are useful at finding underlying flaws in our application. In some cases when fixing a flaky test, the fix is in the app, not in the test. In this article I would like to talk about patterns we observed at Discourse and mitigation strategies we have adopted. Patterns that have emerged at Discourse A few months back we introduced a game. We created a topic on our development Discourse instance. Each time the test suite failed due to a flaky test we would assign the topic to the developer who originally wrote the test. Onc

## Year in review 2018

DevFeed: [Year in review 2018](<https://devfeed.tech/articles/year-in-review-2018-28674.md>)

Original publisher: [Read original article](<https://jeroenmols.com/blog/2019/01/01/yearinreview/>)

Author: info@jeroenmols.com (Jeroen Mols)

Published: 2019-01-01T00:00:00Z

Content type: opinion

Language: en

Sources: [Jeroen Mols](<https://devfeed.tech/sources/jeroen-mols.md>)

Topics: [Kotlin](<https://devfeed.tech/topics/kotlin.md>), [Android](<https://devfeed.tech/topics/android.md>), [Continuous Deployment (CD)](<https://devfeed.tech/topics/continuous-deployment.md>), [Pluralsight](<https://devfeed.tech/topics/pluralsight.md>), [Mastodon](<https://devfeed.tech/topics/mastodon.md>)

Tags: [android](<https://devfeed.tech/tags/android.md>), [blogs](<https://devfeed.tech/tags/blogs.md>), [continuous-deployment](<https://devfeed.tech/tags/continuous-deployment.md>), [kotlin](<https://devfeed.tech/tags/kotlin.md>), [mastodon](<https://devfeed.tech/tags/mastodon.md>), [pluralsight](<https://devfeed.tech/tags/pluralsight.md>), [review](<https://devfeed.tech/tags/review.md>), [year-in-review](<https://devfeed.tech/tags/year-in-review.md>)

### AI overview

A personal review of 2018 covering family life, building and moving into a house, professional challenges, community activities, conference talks, blog writing, Kotlin use, and plans for the following year.

### Source excerpt

Sitting in our own couch, in our own house, kids safely asleep upstairs,... The road here was brutal, but the result is extraordinary. The past year was (hopefully) the busiest year of my entire life.

## Continuous Deployment: Hugo + Travis CI -\> GitHub Pages

DevFeed: [Continuous Deployment: Hugo + Travis CI -\> GitHub Pages](<https://devfeed.tech/articles/continuous-deployment-hugo-travis-ci-github-pages-31845.md>)

Original publisher: [Read original article](<https://www.metachris.dev/2017/04/continuous-deployment-hugo--travis-ci-github-pages/>)

Author: Chris Hager

Published: 2017-04-25T00:00:00Z

Content type: tutorial

Language: en

Sources: [Chris Hager](<https://devfeed.tech/sources/chris-hager.md>)

Topics: [CI/CD](<https://devfeed.tech/topics/cicd.md>), [Continuous Deployment (CD)](<https://devfeed.tech/topics/continuous-deployment.md>), [GitHub Pages](<https://devfeed.tech/topics/github-pages.md>), [Hugo](<https://devfeed.tech/topics/hugo.md>), [Travis CI](<https://devfeed.tech/topics/travis-ci.md>), [GitHub](<https://devfeed.tech/topics/github.md>), [Git](<https://devfeed.tech/topics/git.md>), [Go Language](<https://devfeed.tech/topics/go-language.md>), [container](<https://devfeed.tech/topics/container.md>)

Tags: [builds](<https://devfeed.tech/tags/builds.md>), [ci](<https://devfeed.tech/tags/ci.md>), [continuous-deployment](<https://devfeed.tech/tags/continuous-deployment.md>), [deployment](<https://devfeed.tech/tags/deployment.md>), [git](<https://devfeed.tech/tags/git.md>), [github](<https://devfeed.tech/tags/github.md>), [github-pages](<https://devfeed.tech/tags/github-pages.md>), [go](<https://devfeed.tech/tags/go.md>), [how-to](<https://devfeed.tech/tags/how-to.md>), [hugo](<https://devfeed.tech/tags/hugo.md>), [travis-ci](<https://devfeed.tech/tags/travis-ci.md>)

### AI overview

A tutorial on automating Hugo static website builds and deployment to GitHub Pages with Travis CI. Builds run when changes are pushed to Git, and deployment occurs after a successful build on the master branch.

### Source excerpt

This post shows how to automate building and deployment of Hugo static websites to GitHub Pages using Travis CI. Builds are automatically triggered when pushing to the Git repository, and deployment when a build on the master branch succeeds. Hugo is a static website generator written in Go, and only requires a single binary. The easiest way to run Hugo in the Travis CI container is by including the specific hugo binary with which to build the site as part of the repository (eg.

## Feature Toggles and the Unleash Framework for Continuous Deployment

DevFeed: [Feature Toggles and the Unleash Framework for Continuous Deployment](<https://devfeed.tech/articles/unleash-your-features-gradually-32014.md>)

Original publisher: [Read original article](<https://tech.finn.no2017/03/10/unleash-your-features-gradually/>)

Author: Ivar Conradi Østhus

Published: 2017-03-10T16:58:36Z

Content type: article

Language: en

Sources: [Finn.no](<https://devfeed.tech/sources/finn-no.md>)

Topics: [Continuous Deployment (CD)](<https://devfeed.tech/topics/continuous-deployment.md>), [CI/CD](<https://devfeed.tech/topics/cicd.md>), [Open Source](<https://devfeed.tech/topics/open-source.md>), [Framework](<https://devfeed.tech/topics/framework.md>), [Software](<https://devfeed.tech/topics/software.md>), [Software as a service](<https://devfeed.tech/topics/saas.md>)

Tags: [continuous-deployment](<https://devfeed.tech/tags/continuous-deployment.md>), [deployment](<https://devfeed.tech/tags/deployment.md>), [framework](<https://devfeed.tech/tags/framework.md>), [open-source](<https://devfeed.tech/tags/open-source.md>), [software](<https://devfeed.tech/tags/software.md>)

### AI overview

This article explains how feature toggles separate deploying code to production from releasing features to users. It presents Unleash, an open source framework that supports user-specific activation strategies and describes how feature toggles helped FINN integrate unfinished features earlier while avoiding long-running feature branches.

### Source excerpt

FINN.no is the largest online marketplace in Norway, and we take continuous deployment seriously. We are about one hundred developers deploying new code to production 978 times each week. That is 978 / 100 = 9.78 deployments to production per developer every week. In order to get to these numbers and still keep it under control, we have had to both change our development process and establish the right set of tools. In this article we introduce feature toggles and how this technique has contributed to our continuous deployment success. We will also present Unleash, an open source framework we created to support feature toggles at an enterprise scale. Unleash allows us to enable features for specific users via the activation strategies concept. Unleash is already set up and in use by multiple teams within Schibsted, including FINN, SPT Payment, and Knocker. Unleash is now also available as a Software-as-a-Service offering, making it much easier for anyone to adopt. Check it out at unleash-hosted.com Number of production deploys in "week 50" Feature Toggles 'Feature toggles' is a simple technique to separate the process of putting new code into production from the process of releasing new features to our users. In its simplest form a feature toggle is just a "if" statement in the code, guarding the new feature: if (unleash.isEnabled("AwesomeFeature")) { //magic new feature code } else { //old boring stuff } The fastest way to get started with feature toggles in your project is to use a plain old properties file. This allows you to integrate unfinished features to the master branch and hide them from users in production. A simple plain properties files was exactly how we started playing with the features toggles in FINN. We realised that feature toggles enabled us to move faster, because we were able to integrate new and unfinished features to the master branch early. This also avoids long-running feature branches that tend to be harder to merge. We learned the hard wa

## Continuous Deployment System

DevFeed: [Continuous Deployment System](<https://devfeed.tech/articles/continuous-deployment-system-19982.md>)

Original publisher: [Read original article](<http://engineering.hackerearth.com/2013/08/05/continuous-deployment-system/>)

Published: 2013-08-05T00:00:00Z

Content type: tutorial

Language: en

Sources: [HackerEarth](<https://devfeed.tech/sources/hackerearth.md>)

Topics: [Continuous Deployment (CD)](<https://devfeed.tech/topics/continuous-deployment.md>), [Deployment](<https://devfeed.tech/topics/deployment.md>), [Git](<https://devfeed.tech/topics/git.md>), [bitbucket](<https://devfeed.tech/topics/bitbucket.md>), [Amazon EC2](<https://devfeed.tech/topics/amazon-ec2.md>), [Testing](<https://devfeed.tech/topics/testing.md>)

Tags: [bitbucket](<https://devfeed.tech/tags/bitbucket.md>), [continuous-deployment](<https://devfeed.tech/tags/continuous-deployment.md>), [deployment](<https://devfeed.tech/tags/deployment.md>), [git](<https://devfeed.tech/tags/git.md>), [server](<https://devfeed.tech/tags/server.md>), [servers](<https://devfeed.tech/tags/servers.md>), [testing](<https://devfeed.tech/tags/testing.md>)

### AI overview

This article explains HackerEarth's Continuous Deployment System, which automates deployment and testing for a rapidly changing product. The system uses Bitbucket hooks, a toolchain server, commit filtering and grouping, integration testing through RabbitMQ, and deployment triggered by git push origin master.

### Source excerpt

This is one of the coolest and important thing we recently built at HackerEarth. What's so cool about it? Just have a little patience, you will soon find out. But make sure you read till the end :) I will try to make this post as resourceful, and clear so that people who always wondered how to implement a Continuous Deployment System(CDS) can gain insights. At HackerEarth, we iterate over our product quickly and roll out new features as soon as they are production ready. In last two weeks, we deployed 100+ commits in production, and a major release is scheduled to be launched within a few days comprising over 150+ commits. Those commits consists of changes to backend app, website, static files, database and many more. We have over a dozen different types of servers running e.g. webserver, code-checker server, log server, wiki server, realtime server, NoSQL server, etc. And all of them are running on multiple ec2 instance at any point of time. Our codebase is still tightly integrated as one single project with many different components required for each server. And when there are changes to codebase, all the related servers and components need to be updated when deploying in production. Doing that manually would have just driven us crazy, and would have been a total waste of time! See the table of commits deployed on a single day, and that too on lighter day! With such speed of work, we needed a automated deployment system along with automated testing. Our implementation of CDS helps the team to roll out features in production with just a single command: git push origin master. Also, another reason to use CDS is that we are trying to automate the crap out of everything and I see us going in right direction. ####CDS Model The process begins with developer pushing bunch of commits from his master branch to remote repository which in our case is setup on Bitbucket. We have setup a post hook on Bitbucket, so as soon as Bitbucket receives commits from developer, it genera

## Package Management conflicts Continuous Delivery

DevFeed: [Package Management conflicts Continuous Delivery](<https://devfeed.tech/articles/package-management-conflicts-continuous-delivery-31976.md>)

Original publisher: [Read original article](<https://tech.finn.no2013/06/26/package-management-conflicts-continuous-delivery/>)

Author: mick

Published: 2013-06-26T20:42:28Z

Content type: article

Language: en

Sources: [Finn.no](<https://devfeed.tech/sources/finn-no.md>)

Topics: [Package Management](<https://devfeed.tech/topics/package-management.md>), [CI/CD](<https://devfeed.tech/topics/cicd.md>), [Continuous Deployment (CD)](<https://devfeed.tech/topics/continuous-deployment.md>), [API](<https://devfeed.tech/topics/api.md>), [Code](<https://devfeed.tech/topics/code.md>)

Tags: [api-design](<https://devfeed.tech/tags/api-design.md>), [continuous-delivery](<https://devfeed.tech/tags/continuous-delivery.md>), [continuous-deployment](<https://devfeed.tech/tags/continuous-deployment.md>), [dependencies](<https://devfeed.tech/tags/dependencies.md>), [package-management](<https://devfeed.tech/tags/package-management.md>), [transitive-dependencies](<https://devfeed.tech/tags/transitive-dependencies.md>)

### AI overview

The article examines tensions between package management and Continuous Delivery. It explains that package releases cannot be undone once downloaded, whereas deployment changes can be rolled back, while API design and modularity limit how far Continuous Delivery can be applied. It proposes emphasizing safety and API design lower in the stack and delivery speed higher in the stack.

### Source excerpt

The idea of package management is to correctly operate and bundle together various components in any system. The practice of package management is a consequence from the design and evolution of each component's API. Package management is tedious but necessary. It can also help to address the 'fear of change'. We can minimise package management by minimising API. But we can't minimise API if we don't have experience with where it comes from. You can't define for yourself what the API of your code is. It is well beyond that of your public method signatures. Anything that with change can break a consumer is API. Continuous Delivery isn't void of API despite fixed and minimised interfaces between runtime services, each runtime service also contains an API in how it behaves. The big difference though is you own the release change, a la the deployment event, and if things don't go well you can roll back. Releasing artifacts in the context of package management can not be undone. Once you have released the artifact you must presume someone has already downloaded it and you can't get it back. The best you can do it release a new version and hope everyone upgrades to it quickly. Push code out from behind the shackles of package management take advantage of continuous delivery! Bearing in mind a healthy modular systems design comes from making sure you got the api design right - so the amount one can utilise CD is ultimately limited, unless you want to throw out modularity. In general we let components low in the stack "be safe" by focusing on api design over delivery time, and the opposite for components high in the stack. High in the stack doesn't refer to front-end code Code at the top of the stack is that free of package management and completely free for continuous deployment. Components with direct consumers no longer sit at the top of the stack. As components consumers multiple, and they become transitive dependencies, they move further down the stack. Typically entrop