# downtime

Published articles for downtime.

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

## Investigating Redis Client Failures After a Node Loss at hh.ru

DevFeed: [Investigating Redis Client Failures After a Node Loss at hh.ru](<https://devfeed.tech/articles/redis-30674.md>)

Original publisher: [Read original article](<https://habr.com/ru/companies/hh/articles/1074194/>)

Author: nicholasgribanov (hh.ru)

Published: 2026-08-26T05:30:49Z

Content type: article

Language: ru

Sources: [HeadHunter RU](<https://devfeed.tech/sources/headhunter-ru.md>)

Topics: [Redis](<https://devfeed.tech/topics/redis.md>)

Tags: [consul](<https://devfeed.tech/tags/consul.md>), [downtime](<https://devfeed.tech/tags/downtime.md>), [java](<https://devfeed.tech/tags/java.md>), [jedis](<https://devfeed.tech/tags/jedis.md>), [redis](<https://devfeed.tech/tags/redis.md>), [sre](<https://devfeed.tech/tags/sre.md>), [tag-1d4e49052118](<https://devfeed.tech/tags/tag-1d4e49052118.md>), [tag-68e701e78517](<https://devfeed.tech/tags/tag-68e701e78517.md>), [tag-b0a411324cb6](<https://devfeed.tech/tags/tag-b0a411324cb6.md>), [tag-b92bf5906bbd](<https://devfeed.tech/tags/tag-b92bf5906bbd.md>), [tag-dfac9042ce7b](<https://devfeed.tech/tags/tag-dfac9042ce7b.md>), [timeout](<https://devfeed.tech/tags/timeout.md>)

### AI overview

A Platform team at hh.ru investigates incidents in its internal Redis client, including a 57-minute outage after a Redis node was lost. The team used controlled-load testing, Jedis updates, timeout and pool experiments, new metrics, and logs to trace the failures to a code issue and improve client stability.

### Source excerpt

Пару лет назад мы устроили настоящее расследование серии инцидентов в поисках скрытого дефекта нашего Redis-клиента. Команда воспроизводила сбои под контролируемой нагрузкой, проверяла одну гипотезу за другой, обновляла Jedis, экспериментировала с таймаутами и размерами пулов -- но ничего не помогало. А помогли новые метрики и логи, настойчивость команды, ночные эксперименты и готовность разбирать поведение системы до последнего соединения. Получилась история с неожиданными поворотами, ложными следами и одной лишней строчкой кода в роли главного подозреваемого -- а её итогом стал Redis-клиент, который оказался устойчивее, чем был до начала расследования. Меня зовут Коля Грибанов, я тимлид команды "Платформа" в hh.ru. В статье расскажу, почему потеря одной ноды Redis вызывала шторм из десятков тысяч соединений, и как мы шаг за шагом искали причину инцидентов. Читать далее

## Five Deployment Strategies for Safer Software Releases

DevFeed: [Five Deployment Strategies for Safer Software Releases](<https://devfeed.tech/articles/top-deployment-strategies-34690.md>)

Original publisher: [Read original article](<https://newsletter.systemdesigncodex.com/p/top-deployment-strategies>)

Author: Saurabh Dashora

Published: 2026-05-12T07:05:17Z

Content type: article

Language: en

Sources: [System Design Codex](<https://devfeed.tech/sources/system-design-codex.md>)

Topics: [Deployment Strategies](<https://devfeed.tech/topics/deployment-strategies.md>), [Deployment](<https://devfeed.tech/topics/deployment.md>), [progressive delivery](<https://devfeed.tech/topics/progressive-delivery.md>), [App](<https://devfeed.tech/topics/app.md>)

Tags: [blue-green-deployment](<https://devfeed.tech/tags/blue-green-deployment.md>), [deployment-strategies](<https://devfeed.tech/tags/deployment-strategies.md>), [downtime](<https://devfeed.tech/tags/downtime.md>), [load-balancer](<https://devfeed.tech/tags/load-balancer.md>), [progressive-delivery](<https://devfeed.tech/tags/progressive-delivery.md>), [rollback](<https://devfeed.tech/tags/rollback.md>)

### AI overview

This article discusses deployment strategies for reducing release risk, downtime, and user impact. It explains blue/green deployment and canary deployment, including their workflows, benefits, tradeoffs, and suitable use cases, and introduces A/B testing as part of a release process.

### Source excerpt

Every developer should know these

## Zero downtime Upgrade: Yelp's Cassandra 4.x Upgrade Story

DevFeed: [Zero downtime Upgrade: Yelp's Cassandra 4.x Upgrade Story](<https://devfeed.tech/articles/zero-downtime-upgrade-yelp-s-cassandra-4-x-upgrade-story-27423.md>)

Original publisher: [Read original article](<https://engineeringblog.yelp.com/2026/04/zero-downtime-upgrade-yelp-cassandra-upgrade-story.html>)

Author: Mark Surnin and Muhammad Junaid Muzammil, Software Engineer

Published: 2026-04-07T00:00:00Z

Content type: article

Language: en

Sources: [Yelp](<https://devfeed.tech/sources/yelp.md>)

Topics: [Apache Cassandra](<https://devfeed.tech/topics/cassandra.md>), [upgrade](<https://devfeed.tech/topics/upgrade.md>), [NoSQL](<https://devfeed.tech/topics/nosql.md>), [Database](<https://devfeed.tech/topics/database.md>), [observability](<https://devfeed.tech/topics/observability.md>), [Kubernetes](<https://devfeed.tech/topics/kubernetes.md>)

Tags: [2026](<https://devfeed.tech/tags/2026.md>), [apache](<https://devfeed.tech/tags/apache.md>), [cassandra](<https://devfeed.tech/tags/cassandra.md>), [clusters](<https://devfeed.tech/tags/clusters.md>), [downtime](<https://devfeed.tech/tags/downtime.md>), [kubernetes](<https://devfeed.tech/tags/kubernetes.md>), [nosql](<https://devfeed.tech/tags/nosql.md>), [observability](<https://devfeed.tech/tags/observability.md>), [reliability-engineering](<https://devfeed.tech/tags/reliability-engineering.md>), [upgrade](<https://devfeed.tech/tags/upgrade.md>)

### AI overview

Yelp's Database Reliability Engineering team describes upgrading more than a thousand Cassandra nodes from 3.11 to 4.1 on Kubernetes without downtime. The article covers the motivation, expected reliability and performance improvements, operational guardrails, certificate handling, repairs, logging, and compatibility work for related components.

### Source excerpt

The Database Reliability Engineering team at Yelp seamlessly upgraded more than a thousand Cassandra nodes with zero downtime. This post takes you behind the scenes of our upgrade strategy, from planning sessions to flawless rollouts. Background Motivation Apache Cassandra is a distributed wide-column NoSQL datastore and is used widely at Yelp for storing both primary and derived data. Yelp orchestrates Cassandra clusters on Kubernetes with the help of operators, as explained in our operator overview post. Upgrading from Cassandra 3.11 to 4.1 offered several observability and reliability improvements, in addition to performance gains. Based on public benchmarks, we expected to...

## Operating Trino at Scale With Trino Gateway

DevFeed: [Operating Trino at Scale With Trino Gateway](<https://devfeed.tech/articles/operating-trino-at-scale-with-trino-gateway-19736.md>)

Original publisher: [Read original article](<https://medium.com/expedia-group-tech/operating-trino-at-scale-with-trino-gateway-41824af788de?source=rss----38998a53046f---4>)

Author: Prakhar Sapre

Published: 2026-03-24T12:01:00Z

Content type: article

Language: en

Sources: [Expedia](<https://devfeed.tech/sources/expedia.md>)

Topics: [gateway](<https://devfeed.tech/topics/gateway.md>), [Load Balancing](<https://devfeed.tech/topics/load-balancing.md>), [Routing (disambiguation)](<https://devfeed.tech/topics/routing.md>), [data analytics](<https://devfeed.tech/topics/data-analytics.md>), [Authentication](<https://devfeed.tech/topics/authentication.md>), [SQL](<https://devfeed.tech/topics/sql.md>)

Tags: [analytics](<https://devfeed.tech/tags/analytics.md>), [authentication](<https://devfeed.tech/tags/authentication.md>), [clusters](<https://devfeed.tech/tags/clusters.md>), [concurrency](<https://devfeed.tech/tags/concurrency.md>), [data-science](<https://devfeed.tech/tags/data-science.md>), [downtime](<https://devfeed.tech/tags/downtime.md>), [gateway](<https://devfeed.tech/tags/gateway.md>), [load-balancer](<https://devfeed.tech/tags/load-balancer.md>), [load-balancing](<https://devfeed.tech/tags/load-balancing.md>), [open-source](<https://devfeed.tech/tags/open-source.md>), [sql](<https://devfeed.tech/tags/sql.md>), [trino](<https://devfeed.tech/tags/trino.md>), [trino-gateway](<https://devfeed.tech/tags/trino-gateway.md>), [trinos](<https://devfeed.tech/tags/trinos.md>)

### AI overview

This article explains how Trino Gateway routes queries across multiple Trino clusters and centralizes routing, authentication, load balancing, monitoring, and cluster management. It describes the project's origins as Presto Gateway at Lyft and its role in supporting larger analytics platforms with more complex workloads and higher concurrency.

### Source excerpt

Expedia Group Technology -- DataWorkload-aware routing for TrinoPhoto by Joseph Barrientos on Unsplash Trino -- a fork of PrestoSQL -- is a powerful tool in modern data analytics, enabling organizations to query large datasets quickly and efficiently. As a distributed SQL query engine, Trino provides fast, scalable insights without requiring data relocation. While Trino is robust on its own, its capabilities are further enhanced when paired with a Gateway, which introduces features such as query routing, strong security, and streamlined cluster management. A brief overview The Gateway project originated at Lyft as Presto Gateway, serving as a proxy and load balancer for PrestoDB. It was later forked and integrated into the Trino ecosystem, with contributions from various organizations and the open-source community. The Gateway serves as a central point for managing and routing queries, providing a unified interface for users and administrators. As organizations scale their analytics platforms, they often encounter challenges such as increased query complexity, higher concurrency, and the need for specialized cluster configurations. Directing users to specific cluster endpoints becomes impractical as the user base grows. A Gateway addresses these challenges by routing queries to the most appropriate clusters based on workload, improving efficiency and responsiveness. The Gateway acts as a vital intermediary between users and the Trino query engine. By abstracting the complexities of distributed query execution, it manages critical functions such as routing, authentication, and load balancing across diverse backend clusters. This ensures that queries are efficiently directed to the optimal processing cluster. With an intuitive user interface, the Gateway transforms what was once a convoluted process into a manageable and transparent experience empowering administrators with real-time insights and precise control over their backend cluster infrastructure. Whether it's mon

## System Migration: Minimize Downtime, Maximize Efficiency

DevFeed: [System Migration: Minimize Downtime, Maximize Efficiency](<https://devfeed.tech/articles/system-migration-minimize-downtime-maximize-efficiency-39555.md>)

Original publisher: [Read original article](<https://ankit-rana.com/logs/03-system-migration/>)

Author: hello@ankit-rana.com

Published: 2026-03-16T00:00:00Z

Content type: tutorial

Language: en

Sources: [Ankit Rana | Mechanical Sympathy](<https://devfeed.tech/sources/ankit-rana-mechanical-sympathy.md>)

Topics: [migration](<https://devfeed.tech/topics/migration.md>), [systems](<https://devfeed.tech/topics/systems.md>), [async](<https://devfeed.tech/topics/async.md>), [client](<https://devfeed.tech/topics/client.md>), [event driven](<https://devfeed.tech/topics/event-driven.md>), [Kafka](<https://devfeed.tech/topics/kafka.md>), [API](<https://devfeed.tech/topics/api.md>)

Tags: [apache-kafka](<https://devfeed.tech/tags/apache-kafka.md>), [api](<https://devfeed.tech/tags/api.md>), [architecture](<https://devfeed.tech/tags/architecture.md>), [async](<https://devfeed.tech/tags/async.md>), [bridge-layer](<https://devfeed.tech/tags/bridge-layer.md>), [data-pipelines](<https://devfeed.tech/tags/data-pipelines.md>), [downtime](<https://devfeed.tech/tags/downtime.md>), [event-driven-architecture](<https://devfeed.tech/tags/event-driven-architecture.md>), [metrics](<https://devfeed.tech/tags/metrics.md>), [migration](<https://devfeed.tech/tags/migration.md>), [observability](<https://devfeed.tech/tags/observability.md>), [production](<https://devfeed.tech/tags/production.md>), [reliability](<https://devfeed.tech/tags/reliability.md>), [rollback](<https://devfeed.tech/tags/rollback.md>), [system-migration](<https://devfeed.tech/tags/system-migration.md>), [traffic-leakage](<https://devfeed.tech/tags/traffic-leakage.md>)

### AI overview

A practical guide to migrating an existing system with minimal disruption. It recommends isolated-environment testing, load testing, adapters for incompatible contracts, synchronized asynchronous pipelines, a Kafka-based shared stream, a bridge layer, staged traffic switching, monitoring, and rollback preparation.

### Source excerpt

Migrate behind a bridge layer that routes all client traffic and supports three modes: old-only, dual, and new-only. Run dual mode to compare responses without user impact, keep a back-sync pipeline so the old system stays current for rollback, and shift traffic in stages while watching metrics at each step.

## Moving Mountains of Data off S3

DevFeed: [Moving Mountains of Data off S3](<https://devfeed.tech/articles/moving-mountains-of-data-off-s3-33510.md>)

Original publisher: [Read original article](<https://dev.37signals.com/moving-mountains-of-data-off-s3/>)

Author: Jeremy Daer, Kimberly Rhodes, Fernando Olivares

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

Content type: article

Language: en

Sources: [37signals Dev](<https://devfeed.tech/sources/37signals-dev.md>)

Topics: [Amazon S3](<https://devfeed.tech/topics/amazon-s3.md>), [migration](<https://devfeed.tech/topics/migration.md>), [data](<https://devfeed.tech/topics/data.md>), [amazon](<https://devfeed.tech/topics/amazon.md>), [Rails](<https://devfeed.tech/topics/rails.md>)

Tags: [amazon-s3](<https://devfeed.tech/tags/amazon-s3.md>), [downtime](<https://devfeed.tech/tags/downtime.md>), [go](<https://devfeed.tech/tags/go.md>), [migration](<https://devfeed.tech/tags/migration.md>), [s3](<https://devfeed.tech/tags/s3.md>)

### AI overview

A RECORDABLES episode explains how 37signals moved billions of files, including about five billion objects across five petabytes of data, out of Amazon S3 without downtime. It discusses bandwidth limits, AWS constraints, custom Rails tooling, verification, and the risks of deleting the original data.

### Source excerpt

Principal Programmer Jeremy Daer explains how we moved billions of files out of Amazon S3 with zero downtime.

## How banks are cutting development time in half while avoiding million-dollar outages with Temporal Cloud

DevFeed: [How banks are cutting development time in half while avoiding million-dollar outages with Temporal Cloud](<https://devfeed.tech/articles/how-banks-are-cutting-development-time-in-half-while-avoiding-million-dollar-outages-with-temporal-cloud-35849.md>)

Original publisher: [Read original article](<https://temporal.io/blog/how-banks-are-cutting-dev-time-in-half-with-temporal-cloud>)

Author: Hannah Short

Published: 2025-09-09T00:00:00Z

Content type: article

Language: en

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

Topics: [Cloud](<https://devfeed.tech/topics/cloud.md>), [Development](<https://devfeed.tech/topics/development.md>), [reliability](<https://devfeed.tech/topics/reliability.md>), [distributed-systems](<https://devfeed.tech/topics/distributed-systems.md>)

Tags: [announcements](<https://devfeed.tech/tags/announcements.md>), [banking](<https://devfeed.tech/tags/banking.md>), [cloud](<https://devfeed.tech/tags/cloud.md>), [distributed-systems](<https://devfeed.tech/tags/distributed-systems.md>), [downtime](<https://devfeed.tech/tags/downtime.md>), [financial-services](<https://devfeed.tech/tags/financial-services.md>), [productivity](<https://devfeed.tech/tags/productivity.md>), [reconciliation](<https://devfeed.tech/tags/reconciliation.md>), [reliability](<https://devfeed.tech/tags/reliability.md>)

### AI overview

A Forrester Total Economic Impact study of Temporal Cloud describes banking organizations replacing homegrown workflow systems, with reported improvements including $14.3 million in preserved revenue over three years and feature delivery in half the time.

### Source excerpt

Forrester's TEI study reveals Temporal Cloud delivers $14.3M in preserved revenue and 50% faster feature delivery for banking institutions.

## Leveraging Change Data Capture For Database Migrations At Scale

DevFeed: [Leveraging Change Data Capture For Database Migrations At Scale](<https://devfeed.tech/articles/leveraging-change-data-capture-for-database-migrations-at-scale-30778.md>)

Original publisher: [Read original article](<https://engineering.squarespace.com/blog/2025/leveraging-change-data-capture-for-database-migrations-at-scale>)

Author: Pravish Sood

Published: 2025-05-13T20:30:01Z

Content type: article

Language: en

Sources: [Squarespace](<https://devfeed.tech/sources/squarespace.md>), [Squarespace Engineering Blog](<https://devfeed.tech/sources/squarespace-engineering-blog.md>)

Topics: [Databases](<https://devfeed.tech/topics/databases.md>), [migration](<https://devfeed.tech/topics/migration.md>), [CockroachDB](<https://devfeed.tech/topics/cockroachdb.md>), [PostgreSQL](<https://devfeed.tech/topics/postgresql.md>), [systems](<https://devfeed.tech/topics/systems.md>)

Tags: [cockroachdb](<https://devfeed.tech/tags/cockroachdb.md>), [database](<https://devfeed.tech/tags/database.md>), [distributed](<https://devfeed.tech/tags/distributed.md>), [downtime](<https://devfeed.tech/tags/downtime.md>), [migrations](<https://devfeed.tech/tags/migrations.md>), [postgresql](<https://devfeed.tech/tags/postgresql.md>), [scale](<https://devfeed.tech/tags/scale.md>)

### AI overview

Squarespace describes migrating databases from PostgreSQL to CockroachDB to improve horizontal scalability and reduce downtime and operational risk. The Databases team developed a migration plan and in-house tooling to handle schema, user, and data migration across varied workloads.

### Source excerpt

Our teams love relational databases and the benefits ACID properties bring to us as engineers, but they have their limits, especially in horizontal scaling. We had to adopt new database tech across a fleet of highly available services while eliminating as much risk as possible... but how? Enter: change data capture patterning.

## Understanding fault tolerance in distributed systems

DevFeed: [Understanding fault tolerance in distributed systems](<https://devfeed.tech/articles/understanding-fault-tolerance-in-distributed-systems-36102.md>)

Original publisher: [Read original article](<https://temporal.io/blog/what-is-fault-tolerance>)

Author: Lauren Bennett

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

Content type: article

Language: en

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

Topics: [distributed-systems](<https://devfeed.tech/topics/distributed-systems.md>), [systems](<https://devfeed.tech/topics/systems.md>), [Availability](<https://devfeed.tech/topics/availability.md>), [Cloud](<https://devfeed.tech/topics/cloud.md>), [Replication](<https://devfeed.tech/topics/replication.md>), [backups](<https://devfeed.tech/topics/backups.md>)

Tags: [availability](<https://devfeed.tech/tags/availability.md>), [backups](<https://devfeed.tech/tags/backups.md>), [cloud](<https://devfeed.tech/tags/cloud.md>), [data](<https://devfeed.tech/tags/data.md>), [distributed](<https://devfeed.tech/tags/distributed.md>), [distributed-systems](<https://devfeed.tech/tags/distributed-systems.md>), [downtime](<https://devfeed.tech/tags/downtime.md>), [failover](<https://devfeed.tech/tags/failover.md>), [fault-tolerance](<https://devfeed.tech/tags/fault-tolerance.md>), [hardware](<https://devfeed.tech/tags/hardware.md>), [outage](<https://devfeed.tech/tags/outage.md>), [replication](<https://devfeed.tech/tags/replication.md>), [services](<https://devfeed.tech/tags/services.md>), [software](<https://devfeed.tech/tags/software.md>), [systems](<https://devfeed.tech/tags/systems.md>), [temporal-concepts](<https://devfeed.tech/tags/temporal-concepts.md>), [user](<https://devfeed.tech/tags/user.md>)

### AI overview

An explanation of fault tolerance in distributed systems, including how it keeps systems operating during failures and limits disruptions, downtime, and data loss. It describes redundancy, replication, failover mechanisms, graceful degradation, and the relationship between high availability and fault tolerance.

### Source excerpt

Discover what fault tolerance is and how it ensures reliable systems with key principles and examples in cloud environments.

## Kubernetes Namespace Restriction and Separation

DevFeed: [Kubernetes Namespace Restriction and Separation](<https://devfeed.tech/articles/kubernetes-namespace-restriction-and-separation-29744.md>)

Original publisher: [Read original article](<https://goteleport.com/blog/kubernetes-namespace-restriction-separation/>)

Author: jackson.pitts@goteleport.com (Jack Pitts)

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

Content type: tutorial

Language: en

Sources: [Teleport](<https://devfeed.tech/sources/teleport.md>)

Topics: [Kubernetes](<https://devfeed.tech/topics/kubernetes.md>), [Kubernetes clusters](<https://devfeed.tech/topics/kubernetes-clusters.md>), [Security](<https://devfeed.tech/topics/security.md>), [Requirements](<https://devfeed.tech/topics/requirements.md>), [Deployment](<https://devfeed.tech/topics/deployment.md>)

Tags: [compliance](<https://devfeed.tech/tags/compliance.md>), [deployment](<https://devfeed.tech/tags/deployment.md>), [downtime](<https://devfeed.tech/tags/downtime.md>), [financial-services](<https://devfeed.tech/tags/financial-services.md>), [kubernetes](<https://devfeed.tech/tags/kubernetes.md>), [kubernetes-clusters](<https://devfeed.tech/tags/kubernetes-clusters.md>), [requirements](<https://devfeed.tech/tags/requirements.md>), [security](<https://devfeed.tech/tags/security.md>), [standards](<https://devfeed.tech/tags/standards.md>)

### AI overview

This article explains how Teleport can help financial services organizations restrict and separate Kubernetes namespaces. It discusses namespace-based resource and workload isolation, environment segmentation, resource quotas, compliance requirements, and improved engineering productivity.

### Source excerpt

Learn how Teleport enables secure and scalable namespace restriction and separation in Kubernetes clusters.

## Migrating Kafka topics without downtime

DevFeed: [Migrating Kafka topics without downtime](<https://devfeed.tech/articles/migrating-kafka-topics-without-downtime-39620.md>)

Original publisher: [Read original article](<https://www.gauravsarma.com/posts/2022-09-15_Migrating-Kafka-topics-without-downtime-f863819cfb3d>)

Published: 2022-09-15T00:00:00Z

Content type: tutorial

Language: en

Sources: [Gaurav Sarma's Blog](<https://devfeed.tech/sources/gaurav-sarma-s-blog.md>)

Topics: [Kafka](<https://devfeed.tech/topics/kafka.md>), [ordering](<https://devfeed.tech/topics/ordering.md>), [Scalability](<https://devfeed.tech/topics/scalability.md>), [version](<https://devfeed.tech/topics/version.md>)

Tags: [downtime](<https://devfeed.tech/tags/downtime.md>), [kafka](<https://devfeed.tech/tags/kafka.md>), [ordering](<https://devfeed.tech/tags/ordering.md>), [partition](<https://devfeed.tech/tags/partition.md>), [versioning](<https://devfeed.tech/tags/versioning.md>)

### AI overview

A tutorial for migrating Kafka topics by creating versioned replacement topics, redirecting publishers and consumers, and draining the old topics. It explains how partition counts affect ordering, concurrency, scalability, and management overhead, and notes that the author did not find a direct tool for migration without downtime.

### Source excerpt

Each kafka topic defines the number of partitions and replication factors when it's created. However, once a topic is created, the partition count cannot be changed without affecting the ordering guarantees of the kafka partitions since kafka uses the following formula to calculate which partition a record should go to: partition\_id = partition\_key % number of partitions Kafka partitions are the gateway to concurrency and scalability...

## LtU is now running in a new, more stable environment

DevFeed: [LtU is now running in a new, more stable environment](<https://devfeed.tech/articles/ltu-is-now-running-in-a-new-more-stable-environment-29488.md>)

Original publisher: [Read original article](<http://lambda-the-ultimate.org/node/5654>)

Published: 2022-08-31T06:37:45Z

Content type: news

Language: en

Sources: [Lambda the Ultimate](<https://devfeed.tech/sources/lambda-the-ultimate.md>)

Topics: [Software](<https://devfeed.tech/topics/software.md>), [coding](<https://devfeed.tech/topics/coding.md>)

Tags: [admin](<https://devfeed.tech/tags/admin.md>), [downtime](<https://devfeed.tech/tags/downtime.md>), [infrastructure](<https://devfeed.tech/tags/infrastructure.md>), [running](<https://devfeed.tech/tags/running.md>), [software](<https://devfeed.tech/tags/software.md>)

### AI overview

LtU experienced an extended period of downtime because its software infrastructure had become outdated and difficult to maintain. It has since migrated to a new environment expected to improve stability.

### Source excerpt

LtU has experienced a long period of downtime recently. Its software infrastructure was outdated enough that it became difficult to maintain when problems arose. It has now been migrated to a brand new environment. It should be much more stable from now on.

## Cluster build log: Moving to temporary cluster

DevFeed: [Cluster build log: Moving to temporary cluster](<https://devfeed.tech/articles/cluster-build-log-moving-to-temporary-cluster-34848.md>)

Original publisher: [Read original article](<https://pine64.org/2021/09/01/clusters-build-log-moving-to-temporary-cluster/>)

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

Content type: article

Language: en

Sources: [Community blog on PINE64](<https://devfeed.tech/sources/community-blog-on-pine64.md>)

Topics: [hosting](<https://devfeed.tech/topics/hosting.md>), [Network](<https://devfeed.tech/topics/network.md>), [Ethernet](<https://devfeed.tech/topics/ethernet.md>)

Tags: [cluster](<https://devfeed.tech/tags/cluster.md>), [community](<https://devfeed.tech/tags/community.md>), [downtime](<https://devfeed.tech/tags/downtime.md>), [ethernet](<https://devfeed.tech/tags/ethernet.md>), [hosting](<https://devfeed.tech/tags/hosting.md>), [network](<https://devfeed.tech/tags/network.md>), [rockpro64-2](<https://devfeed.tech/tags/rockpro64-2.md>)

### AI overview

This build log explains why PINE64 is creating a temporary hosting cluster. The existing cluster needs hardware changes that require extended downtime, so a smaller cluster will keep community services running during the work. The article introduces the power and network requirements for the temporary cluster.

### Source excerpt

As promised in the last month's community update Housekeeping section, this is the first part of the cluster's build log! This mini-series in which I will cover everything about upcoming changes our hosting cluster, and it begins with building a temporary cluster. Why build a temporary cluster? One of the latest photo of cluster Let's start from beginning. When we built the current hosting cluster a year ago, it was made in quite a hurry (some of the services needed to be migrated to the cluster on a moment's notice). Also, it was the first time I (gamiee) and Matthew (fire219) were tasked with building a cluster. Because of this, some of the cluster's features are missing and various things don't work quite as well as we have hoped. For example, the cluster has power management boards (PCB on right side of every row), which are used primary for power distribution to the SBCs, but also it also has a I2C GPIO Expander for rebooting and turning off the SBCs. The I2C Expansion isn't in use yet, because the primary node wasn't able to detect it, so this is something that needs to be checked out when the cluster is turned off. And this is exactly the main reason why we are building a temporary cluster. We need to do some changes which require us to have the whole cluster turned off and on a workbench (not in housing room where isn't much space), and this means that it will be inaccessible for several days. Obviously a long downtime wouldn't be good when 100% of PINE64 community services are running on it. So we are going to build a temporary small cluster, which will have the minimal number of required nodes to have all services running, so we can make all upgrades with precision and at our own pace. What do we need to make a custom cluster? There are two things each node needs: a power supply and access to the network. Access to the network can be solved by using a classic Ethernet switch, but powering multiple RockPros, which are actually pretty power hungry, is a bit

## Atomic Deployments Without Tears

DevFeed: [Atomic Deployments Without Tears](<https://devfeed.tech/articles/atomic-deployments-without-tears-31260.md>)

Original publisher: [Read original article](<https://nystudio107.com/blog/executing-atomic-deployments>)

Author: andrew@nystudio107.com (Andrew Welch)

Published: 2020-06-30T04:00:00Z

Content type: tutorial

Language: en

Sources: [nystudio107 | Articles on modern web development.](<https://devfeed.tech/sources/nystudio107-articles-on-modern-web-development.md>)

Topics: [CI/CD](<https://devfeed.tech/topics/cicd.md>), [Deployment](<https://devfeed.tech/topics/deployment.md>), [Git](<https://devfeed.tech/topics/git.md>), [Content Management System](<https://devfeed.tech/topics/cms.md>), [Development](<https://devfeed.tech/topics/development.md>)

Tags: [amazon-s3](<https://devfeed.tech/tags/amazon-s3.md>), [atomic](<https://devfeed.tech/tags/atomic.md>), [automatically](<https://devfeed.tech/tags/automatically.md>), [changes](<https://devfeed.tech/tags/changes.md>), [continuous](<https://devfeed.tech/tags/continuous.md>), [continuous-integration](<https://devfeed.tech/tags/continuous-integration.md>), [deploy](<https://devfeed.tech/tags/deploy.md>), [deployments](<https://devfeed.tech/tags/deployments.md>), [downtime](<https://devfeed.tech/tags/downtime.md>), [git](<https://devfeed.tech/tags/git.md>), [how-to](<https://devfeed.tech/tags/how-to.md>), [insights](<https://devfeed.tech/tags/insights.md>), [integration](<https://devfeed.tech/tags/integration.md>), [learn](<https://devfeed.tech/tags/learn.md>), [safely](<https://devfeed.tech/tags/safely.md>), [tools](<https://devfeed.tech/tags/tools.md>), [using](<https://devfeed.tech/tags/using.md>), [website](<https://devfeed.tech/tags/website.md>), [zero](<https://devfeed.tech/tags/zero.md>)

### AI overview

This tutorial explains how to use Continuous Integration tools to perform atomic, zero-downtime deployments for Craft CMS websites. It covers a workflow based on local development, a cloud Git repository, and automated deployment to production or staging servers.

### Source excerpt

Learn how to use atomic deployments to automatically and safely deploy changes to your website with zero downtime using Continuous Integration (CI) tools

## Developer Friendly Solid Infrastructure Security

DevFeed: [Developer Friendly Solid Infrastructure Security](<https://devfeed.tech/articles/developer-friendly-solid-infrastructure-security-29857.md>)

Original publisher: [Read original article](<https://goteleport.com/blog/solid-infrastructure-security-without-slowing-down-developers/>)

Author: info@goteleport.com (Ev Kontsevoy)

Published: 2020-05-06T00:00:00Z

Content type: article

Language: en

Sources: [Teleport](<https://devfeed.tech/sources/teleport.md>)

Topics: [Security](<https://devfeed.tech/topics/security.md>), [cloud-infrastructure](<https://devfeed.tech/topics/cloud-infrastructure.md>), [Architecture & Design](<https://devfeed.tech/topics/architecture-design.md>), [site-reliability-engineer](<https://devfeed.tech/topics/site-reliability-engineer.md>)

Tags: [ansible](<https://devfeed.tech/tags/ansible.md>), [cloud](<https://devfeed.tech/tags/cloud.md>), [complexity](<https://devfeed.tech/tags/complexity.md>), [downtime](<https://devfeed.tech/tags/downtime.md>), [infrastructure](<https://devfeed.tech/tags/infrastructure.md>), [jenkins](<https://devfeed.tech/tags/jenkins.md>), [patterns](<https://devfeed.tech/tags/patterns.md>), [security](<https://devfeed.tech/tags/security.md>), [site-reliability-engineer](<https://devfeed.tech/tags/site-reliability-engineer.md>), [ssh](<https://devfeed.tech/tags/ssh.md>)

### AI overview

This article examines how SaaS companies balance strong cloud infrastructure security with developer productivity. It discusses the costs of excessive security controls, including workarounds such as unauthorized bastions and additional services on bastion hosts, and argues that unnecessary complexity can increase security risk and human error.

### Source excerpt

How SaaS companies approach the trade-off between having solid cloud infrastructure security and upsetting their own engineers by overdoing it

## How to Create an Index in Django Without Downtime

DevFeed: [How to Create an Index in Django Without Downtime](<https://devfeed.tech/articles/how-to-create-an-index-in-django-without-downtime-33908.md>)

Original publisher: [Read original article](<https://hakibenita.com/how-to-create-django-index-without-downtime>)

Author: Haki Benita

Published: 2019-04-09T21:00:00Z

Content type: tutorial

Language: en

Sources: [Haki Benita](<https://devfeed.tech/sources/haki-benita.md>)

Topics: [Django](<https://devfeed.tech/topics/django.md>), [migration](<https://devfeed.tech/topics/migration.md>), [SQL](<https://devfeed.tech/topics/sql.md>)

Tags: [articles](<https://devfeed.tech/tags/articles.md>), [atomic](<https://devfeed.tech/tags/atomic.md>), [django](<https://devfeed.tech/tags/django.md>), [downtime](<https://devfeed.tech/tags/downtime.md>), [how-to](<https://devfeed.tech/tags/how-to.md>), [migration](<https://devfeed.tech/tags/migration.md>), [migrations](<https://devfeed.tech/tags/migrations.md>), [orm](<https://devfeed.tech/tags/orm.md>), [postgresql](<https://devfeed.tech/tags/postgresql.md>), [sql](<https://devfeed.tech/tags/sql.md>)

### AI overview

A tutorial on creating a Django database index without downtime. It explains graceful migrations, atomic and reversible migrations, executing raw SQL in migrations, and changing Django's built-in migration behavior.

### Source excerpt

If you ever had to maintain a traffic heavy Django site, you probably had to deal with graceful migrations. In the article I explain what atomic and reversible migrations are, how to execute "raw" SQL in migrations the right way, and how using a little known migration command we can completely alter the Django migrations built-in behavior.

## Managing db schema changes without downtime

DevFeed: [Managing db schema changes without downtime](<https://devfeed.tech/articles/managing-db-schema-changes-without-downtime-41346.md>)

Original publisher: [Read original article](<https://samsaffron.com/archive/2018/03/22/managing-db-schema-changes-without-downtime>)

Author: Sam Saffron

Published: 2018-03-22T06:30:05Z

Content type: article

Language: en

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

Topics: [Database Migration](<https://devfeed.tech/topics/database-migration.md>), [migration](<https://devfeed.tech/topics/migration.md>), [Deployment](<https://devfeed.tech/topics/deployment.md>), [Rails](<https://devfeed.tech/topics/rails.md>), [CI/CD](<https://devfeed.tech/topics/cicd.md>)

Tags: [activerecord](<https://devfeed.tech/tags/activerecord.md>), [commit](<https://devfeed.tech/tags/commit.md>), [continuous-deployment](<https://devfeed.tech/tags/continuous-deployment.md>), [database](<https://devfeed.tech/tags/database.md>), [deployment](<https://devfeed.tech/tags/deployment.md>), [downtime](<https://devfeed.tech/tags/downtime.md>), [exceptions](<https://devfeed.tech/tags/exceptions.md>), [integration-test](<https://devfeed.tech/tags/integration-test.md>), [outage](<https://devfeed.tech/tags/outage.md>), [schema](<https://devfeed.tech/tags/schema.md>)

### AI overview

This article explains how database schema changes can cause deployment outages, especially when older application instances remain active and ActiveRecord caches schema information. It describes Discourse's use of richer migration logging and deployment patterns to reduce these risks.

### Source excerpt

At Discourse we have always been huge fans of continuous deployment. Every commit we make heads to our continuous integration test suite. If all the tests pass (ui, unit, integration, smoke) we automatically deploy the latest version of our code to https://meta.discourse.org. This pattern and practice we follow allows the thousands of self-installers out there to safely upgrade to the tests-passed version whenever they feel like it. Because we deploy so often we need to take extra care not to have any outages during deployments. One of the most common reasons for outages during application deployment is database schema changes. The problem with schema changes Our current deployment mechanism roughly goes as follows: Migrate database to new schema Bundle up application into a single docker image Push to registry Spin down old instance, pull new instance, spin up new instance (and repeat) If we ever create an incompatible database schema we risk breaking all the old application instances running older versions of our code. In practice, this can lead to tens of minutes of outage! In ActiveRecord the situation is particularly dire cause in production the database schema is cached and any changes in schema that drop or rename columns very quickly risk breaking every query to the affected model raising invalid schema exceptions. Over the years we have introduced various patterns to overcome this problem and enable us to deploy schema changes safely, minimizing outages. Tracking rich information about migrations ActiveRecord has a table called schema_migrations where it stores information about migrations that ran. Unfortunately the amount of data stored in this table is extremely limited, in fact it boils down to: connection.create_table(table_name, id: false) do |t| t.string :version, version_options end The table has a lonely column storing the "version" of migrations that ran. It does not store when the migration ran It does not store how long it took the migration to

## How trivago Reduced Memcached Memory Usage by 50%

DevFeed: [How trivago Reduced Memcached Memory Usage by 50%](<https://devfeed.tech/articles/how-trivago-reduced-memcached-memory-usage-by-50-27956.md>)

Original publisher: [Read original article](<https://tech.trivago.com/post/2017-12-19-memcached-optimization/>)

Author: Ivana Petrovic Software backend developer; Optimisation; Clean Architecture

Published: 2017-12-19T00:00:00Z

Content type: article

Language: en

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

Topics: [Caching](<https://devfeed.tech/topics/caching.md>), [Code](<https://devfeed.tech/topics/code.md>), [PHP](<https://devfeed.tech/topics/php.md>), [Logging](<https://devfeed.tech/topics/logging.md>), [Network](<https://devfeed.tech/topics/network.md>), [Database](<https://devfeed.tech/topics/database.md>)

Tags: [backend](<https://devfeed.tech/tags/backend.md>), [cache](<https://devfeed.tech/tags/cache.md>), [caching](<https://devfeed.tech/tags/caching.md>), [downtime](<https://devfeed.tech/tags/downtime.md>), [errors](<https://devfeed.tech/tags/errors.md>), [high-performance](<https://devfeed.tech/tags/high-performance.md>), [logging](<https://devfeed.tech/tags/logging.md>), [memcached](<https://devfeed.tech/tags/memcached.md>), [memory](<https://devfeed.tech/tags/memory.md>), [network](<https://devfeed.tech/tags/network.md>), [performance](<https://devfeed.tech/tags/performance.md>), [php](<https://devfeed.tech/tags/php.md>), [profiling](<https://devfeed.tech/tags/profiling.md>), [uptime](<https://devfeed.tech/tags/uptime.md>)

### AI overview

trivago describes how a Memcached cache failure caused database overload and platform downtime during a botnet-driven spike in spider traffic. The team added cache-value-size logging, used Blackfire profiling, and found that a method was caching about 10 MB of data and being called 30 times per page load.

### Source excerpt

One day, Memcached ran out of free memory. The method `get` failed and all requests went directly to the database. Of course these calls also failed under the huge load, and eventually it caused downtime for the whole trivago website. Yikes!

## Better database migrations in Postgres

DevFeed: [Better database migrations in Postgres](<https://devfeed.tech/articles/better-database-migrations-in-postgres-41199.md>)

Original publisher: [Read original article](<https://www.craigkerstiens.com/2017/09/10/better-postgres-migrations/>)

Author: Map

Published: 2017-09-10T20:55:56Z

Content type: tutorial

Language: en

Sources: [Craig Kerstiens](<https://devfeed.tech/sources/craig-kerstiens.md>)

Topics: [Database](<https://devfeed.tech/topics/database.md>), [Databases](<https://devfeed.tech/topics/databases.md>), [Development](<https://devfeed.tech/topics/development.md>)

Tags: [database](<https://devfeed.tech/tags/database.md>), [downtime](<https://devfeed.tech/tags/downtime.md>), [migrations](<https://devfeed.tech/tags/migrations.md>), [postgres](<https://devfeed.tech/tags/postgres.md>), [postgresql](<https://devfeed.tech/tags/postgresql.md>), [production](<https://devfeed.tech/tags/production.md>)

### AI overview

This article explains how Postgres schema migrations can affect production as databases grow. It focuses on adding columns, constraints, default values, and indexes, and recommends staged migrations with gradual backfilling to reduce downtime.

### Source excerpt

As your database grows and scales there are some operations that you need to take more care of than you did when you were just starting. When working with your application in your dev environment you may not be fully aware of the cost of some operations until you run them against production. And at some point most of us have been guilty of it, running some migration that starts at 5 minutes, then 15 minutes in it's still running, and suddenly production traffic is impacted. There are two operations that tend to happen quite frequently, each with some straightforward approaches to mitigate having any noticable amount of downtime. Let's look at each of the operations, how they work and then how you can approach them in a safer way. Adding new columns Adding a new column is actually quite cheap in Postgres. When you do this it updates its underlying tracking of the columns that exist-which is almost instant. The part that becomes expensive is when you have some constraint against the column. A constraint could be a primary or foreign key, or some uniqueness constraint. Here Postgres has to scan through all the records in the table to ensure that it's not being violated. Adding some constraint such as not null does happen some, but is not the most common cause. The most common reason for slowness of adding a new column is that most frameworks make it very simple for you to set a default value for the new column. It's one thing to do this for all new records, but when you do this when an existing table it means the database has to read all the records and re-write them with the new default value attached. This isn't so bad for a table with a few hundred records, but for a few hundred million run it then go get yourself coffee, or lunch, or a 5 course meal because you'll be waiting for a while. In short, not null and setting a default value (on creation) of your new column will cause you pain. The solution is to not do those things. But, what if you want to have a default

## Localytics' Process for Responding to Service Incidents

DevFeed: [Localytics' Process for Responding to Service Incidents](<https://devfeed.tech/articles/when-things-go-wrong-28636.md>)

Original publisher: [Read original article](<https://eng.localytics.com/when-things-go-wrong/>)

Author: Tony Wieczorek

Published: 2016-09-13T18:24:39Z

Content type: article

Language: en

Sources: [Localytics](<https://devfeed.tech/sources/localytics.md>)

Topics: [incident](<https://devfeed.tech/topics/incident.md>), [systems](<https://devfeed.tech/topics/systems.md>), [Slack](<https://devfeed.tech/topics/slack.md>), [realtime](<https://devfeed.tech/topics/realtime.md>)

Tags: [downtime](<https://devfeed.tech/tags/downtime.md>), [engineering](<https://devfeed.tech/tags/engineering.md>), [incident](<https://devfeed.tech/tags/incident.md>), [pagerduty](<https://devfeed.tech/tags/pagerduty.md>), [postmortem](<https://devfeed.tech/tags/postmortem.md>), [realtime](<https://devfeed.tech/tags/realtime.md>), [slack](<https://devfeed.tech/tags/slack.md>), [systems](<https://devfeed.tech/tags/systems.md>)

### AI overview

Localytics describes its process for responding to service degradations and downtime. The process uses Slack and PagerDuty to coordinate triage, debugging, incident follow-up, postmortems, and communication with company leaders and customers.

### Source excerpt

We believe the highest performing engineering teams have a process to identify, triage, fix and learn from service degradations and downtime. At Localytics, we build highly available and scalable systems, and part of the key to our success is learning from failures. One way we foster a learning culture is

## MySQL Migrations

DevFeed: [MySQL Migrations](<https://devfeed.tech/articles/mysql-migrations-35617.md>)

Original publisher: [Read original article](<https://zolmeister.com/2016/08/mysql-migrations.html>)

Author: Zoli Kahan

Published: 2016-08-27T05:00:00Z

Content type: tutorial

Language: en

Sources: [Zolmeister](<https://devfeed.tech/sources/zolmeister.md>)

Topics: [MySQL](<https://devfeed.tech/topics/mysql.md>), [migration](<https://devfeed.tech/topics/migration.md>), [Database](<https://devfeed.tech/topics/database.md>), [Docker](<https://devfeed.tech/topics/docker.md>)

Tags: [alter](<https://devfeed.tech/tags/alter.md>), [avoid](<https://devfeed.tech/tags/avoid.md>), [database](<https://devfeed.tech/tags/database.md>), [docker](<https://devfeed.tech/tags/docker.md>), [downtime](<https://devfeed.tech/tags/downtime.md>), [migrations](<https://devfeed.tech/tags/migrations.md>), [mysql](<https://devfeed.tech/tags/mysql.md>)

### AI overview

This article describes migrating 17 million rows in MySQL without downtime while a table continues receiving reads and writes. It explains using Large Hadron Migrator to copy the table and track new writes with triggers, adjusting migration speed to avoid write timeouts, and running the process in a Docker container. The migration ultimately took more than 20 hours, and cleanup was manual if problems occurred.

### Source excerpt

MySQL Migrations Migrating 17M rows with no downtime - Isotope Scenario: 17M rows in a table, constant writes/reads, slave/master setup. If you try to run an ALTER TABLE (especially on older versions of MySQL), most operations will lock the table for writes for the entire run-time of the query. To avoid this, we need to incrementally update the table, incorporating write changes as they arrive. Our solution was to use the Large Hadron Migrator, built and open-sourced by SoundCloud.

## Nagios - downtime on host/service from command line with curl

DevFeed: [Nagios - downtime on host/service from command line with curl](<https://devfeed.tech/articles/nagios-downtime-on-host-service-from-command-line-with-curl-27636.md>)

Original publisher: [Read original article](<https://gagor.pro/2016/01/nagios-downtime-on-hostservice-from-command-line-with-curl/>)

Author: Tom

Published: 2016-01-11T00:00:00Z

Content type: tutorial

Language: en

Sources: [Tomasz Gągor](<https://devfeed.tech/sources/tomasz-gagor.md>)

Topics: [Deployment](<https://devfeed.tech/topics/deployment.md>), [Bash](<https://devfeed.tech/topics/bash.md>), [cURL](<https://devfeed.tech/topics/curl.md>), [Command-line interface](<https://devfeed.tech/topics/cli.md>), [Script](<https://devfeed.tech/topics/script.md>), [Code](<https://devfeed.tech/topics/code.md>), [DateTime](<https://devfeed.tech/topics/datetime.md>)

Tags: [bash](<https://devfeed.tech/tags/bash.md>), [code](<https://devfeed.tech/tags/code.md>), [command-line](<https://devfeed.tech/tags/command-line.md>), [configuration](<https://devfeed.tech/tags/configuration.md>), [curl](<https://devfeed.tech/tags/curl.md>), [deployment](<https://devfeed.tech/tags/deployment.md>), [downtime](<https://devfeed.tech/tags/downtime.md>), [http](<https://devfeed.tech/tags/http.md>), [linux](<https://devfeed.tech/tags/linux.md>), [monitoring](<https://devfeed.tech/tags/monitoring.md>), [script](<https://devfeed.tech/tags/script.md>), [timezone](<https://devfeed.tech/tags/timezone.md>)

### AI overview

This tutorial presents a Bash script that uses curl to schedule downtime for a Nagios host or service during deployments or other heavy tasks. It explains parameters for targeting a service or an entire host, authentication, and adapting date formats for Nagios and timezone configurations.

### Source excerpt

Sometimes deployment process or other heavy task may cause some Nagios checks to rise below normal levels and bother admin1. If this is expected and you want to add downtime on host/service during this task you may use this script: #!/bin/bash function die { echo $1; exit 1; } if [[ $# -eq 0 ]] ; then die "Give hostname and time in minutes as parameter!" fi if [[ $# -eq 1 ]] ; then MINUTES=15 else MINUTES=$2 fi HOST=$1 NAGURL=http://nagios.example.com/nagios/cgi-bin/cmd.cgi USER=nagiosuser PASS=nagiospassword SERVICENAME=someservice COMMENT="Deploying new code" export MINUTES echo "Scheduling downtime on $HOST for $MINUTES minutes..." # The following is urlencoded already STARTDATE=`date "+%d-%m-%Y %H:%M:%S"` # This gives us the date/time X minutes from now ENDDATE=`date "+%d-%m-%Y %H:%M:%S" -d "$MINUTES min"` curl --silent --show-error \ --data cmd_typ=56 \ --data cmd_mod=2 \ --data host=$HOST \ --data-urlencode "service=$SERVICENAME" \ --data-urlencode "com_data=$COMMENT" \ --data trigger=0 \ --data-urlencode "start_time=$STARTDATE" \ --data-urlencode "end_time=$ENDDATE" \ --data fixed=1 \ --data hours=2 \ --data minutes=0 \ --data btnSubmit=Commit \ --insecure \ $NAGURL -u "$USER:$PASS"| grep -q "Your command request was successfully submitted to Nagios for processing." || die "Failed to con tact nagios"; echo Scheduled downtime on nagios from $STARTDATE to $ENDDATE Threat this script as template with some tips:

## Announcement: Server downtime on 28th December

DevFeed: [Announcement: Server downtime on 28th December](<https://devfeed.tech/articles/announcement-server-downtime-on-28th-december-33082.md>)

Original publisher: [Read original article](<https://reactos.org/project-news/announcement-server-downtime-28-december/>)

Published: 2013-12-16T00:00:00Z

Content type: news

Language: en

Sources: [Front Page on ReactOS Website](<https://devfeed.tech/sources/front-page-on-reactos-website.md>)

Topics: [Availability](<https://devfeed.tech/topics/availability.md>), [upgrade](<https://devfeed.tech/topics/upgrade.md>), [Server](<https://devfeed.tech/topics/server.md>), [Website](<https://devfeed.tech/topics/website.md>)

Tags: [announcement](<https://devfeed.tech/tags/announcement.md>), [availability](<https://devfeed.tech/tags/availability.md>), [bots](<https://devfeed.tech/tags/bots.md>), [builds](<https://devfeed.tech/tags/builds.md>), [downtime](<https://devfeed.tech/tags/downtime.md>), [free](<https://devfeed.tech/tags/free.md>), [infrastructure](<https://devfeed.tech/tags/infrastructure.md>), [open-source](<https://devfeed.tech/tags/open-source.md>), [os](<https://devfeed.tech/tags/os.md>), [react](<https://devfeed.tech/tags/react.md>), [reactos](<https://devfeed.tech/tags/reactos.md>), [server](<https://devfeed.tech/tags/server.md>), [services](<https://devfeed.tech/tags/services.md>), [win32](<https://devfeed.tech/tags/win32.md>), [winapi](<https://devfeed.tech/tags/winapi.md>)

### AI overview

ReactOS's Infrastructure Team announced a server upgrade scheduled for 28 December to address website availability problems. The upgrade will cause downtime for several public services, while SVN and build and test bots will remain available.

### Source excerpt

In order to fix the availability problems of our Website, the ReactOS Infrastructure Team will upgrade another Server on 28th December. This will result in a downtime for the following public services: www.reactos.org Websitejira.reactos.org Bugtrackerreactos.reactos.org Test ServerSVN will continue to function, as well as our Build and Test bots. The latest ReactOS builds can be downloaded at iso.reactos.org in the meantime. After the upgrade, you should be able to enjoy a higher availability and faster response times when using the ReactOS Online Services.

## Live restarts of a supervised unicorn process

DevFeed: [Live restarts of a supervised unicorn process](<https://devfeed.tech/articles/live-restarts-of-a-supervised-unicorn-process-41330.md>)

Original publisher: [Read original article](<https://samsaffron.com/archive/2013/11/13/live-restarts-of-a-supervised-unicorn-process>)

Author: Sam Saffron

Published: 2013-11-13T04:59:56Z

Content type: tutorial

Language: en

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

Topics: [Scripting, bash](<https://devfeed.tech/topics/scripting-bash.md>), [Script](<https://devfeed.tech/topics/script.md>), [Rails](<https://devfeed.tech/topics/rails.md>), [Processes](<https://devfeed.tech/topics/processes.md>), [HTTP](<https://devfeed.tech/topics/http.md>)

Tags: [bash](<https://devfeed.tech/tags/bash.md>), [docker](<https://devfeed.tech/tags/docker.md>), [downtime](<https://devfeed.tech/tags/downtime.md>), [rails](<https://devfeed.tech/tags/rails.md>), [script](<https://devfeed.tech/tags/script.md>), [uptime](<https://devfeed.tech/tags/uptime.md>), [zero](<https://devfeed.tech/tags/zero.md>)

### AI overview

The article describes using a Bash script as a stable-pid proxy and mini-supervisor for Unicorn to coordinate live restarts under supervisors such as runit. It also presents a throttled HTTP request script for measuring downtime during restarts and reports zero downtime with the proposed method.

### Source excerpt

We have all seen this dreaded screen before. In the Rails case this usually happens during application restarts. While Discourse is rapidly evolving we are heavily encouraging users to upgrade frequently, even weekly. If your site is regularly erroring out, users very quickly lose confidence. In the ideal case you want zero downtime deploys. This feature heavily encourages users to deploy more rapidly. Unicorn has built-in support for live restarts, however getting this to play well with a supervisor like say runit is not easy. Underlying pids are changing and stuff gets complicated fast. To tackle this I decided to create a simple bash script that acts as a mini-supervisor for unicorn. However, before any of this I needed some sane way of measuring how well I did. ###Measuring uptime during a live restart Traditionally you would use apache bench for quick and dirty testing, however it did not fare well for me. Unfortunately ab has no way of "throttling" the amount of requests it sends out. To measure uptime we need to perform a request to the site every N milliseconds. I ended up knocking up a quick and dirty apache bench clone that allows me to trickle through requests: require "optparse" require "uri" require "net/http" duration = 10 per_second = 10 opts = OptionParser.new do |opts| opts.banner = "Usage: bench_web [options] url" opts.on("-t", "--time TIME", OptionParser::DecimalInteger, "Duration to run the test in seconds (default 10)") do |t| duration = t end opts.on("-p", "--per-second REQUESTS", OptionParser::DecimalInteger, "Max number of requests per second (default 10)") do |t| per_second = t.to_f end end opts.parse! if ARGV.length != 1 puts opts.banner puts exit(1) end uri = begin URI(ARGV[0]) rescue puts opt.banner puts puts "Invalid URL" puts exit(1) end GC.disable finish_time = Time.now + duration results = [] while (start=Time.now) < finish_time res = Net::HTTP.get_response(uri) req_duration = Time.now - start results << {duration: req_duration, code:

[Next page](<https://devfeed.tech/tags/downtime.md?cursor=WyIyMDEzLTExLTEzVDA0OjU5OjU2KzAwOjAwIiwgIjM4ODMxNjUxLTM3OGYtNGJkNi1hOWE0LWRlZDU4MzZjN2NlZSJd>)