주제: operations
-
지원 종료 이후의 Python 3.10: 런타임 찾기와 환경 재구축
Python 업스트림 수명 주기 표는 Python 3.10의 지원 종료일을 2026년 10월 1일로 기록합니다. 서비스, 가상 환경, 이미지가 실제 사용하는 인터프리터를 목록으로 정리한 뒤, 지원 중인 브랜치에서 각 애플리케이션을 다시 구축하고 테스트합니다.
-
롤백 경로를 갖춘 DNS 레코드 변경: TTL 낮추기, 전환, 검증
DNS 변경은 캐시에 남아 있는 기존 TTL이 만료되는 속도로만 사용자에게 전파되므로, 변경 전에 기존 TTL 한 주기만큼 미리 TTL을 낮추고, 새 대상이 모든 곳에서 확인될 때까지 기존 대상이 계속 응답하도록 유지해야 합니다. 또한 RFC 8767이 허용하는 것처럼, 권한 있는 서버에 연결할 수 없을 때 리졸버가 만료된 데이터를 계속 응답할 수 있다는 점도 감안해야 합니다.
-
메인 웹사이트뿐 아니라 모든 엔드포인트에서 TLS 인증서 만료 모니터링하기
만료된 인증서는 정확히 예측 가능한 시각에 발생하는 장애입니다. 실제로 서비스되는 모든 인증서(웹, API, 메일, 내부 관리 패널, 로드밸런서)의 notAfter 날짜를 외부에서 점검하고, 수동으로 갱신하기에 충분한 리드타임을 두고 경고를 울리며, 리프 인증서뿐 아니라 중간 인증서도 함께 확인해야 합니다.
-
프로덕션에서의 지속적 프로파일링: 상시 가동되는 샘플링 프로파일과 이를 통해 답할 수 있는 것
지속적 프로파일링은 CPU와 메모리 프로파일을 시간에 걸쳐 체계적으로 수집해 레이블이 달린 시계열로 저장합니다. 그 덕분에 팀은 어제 전체 플릿에서 어떤 함수가 CPU를 가장 많이 소비했는지, 두 버전 사이에 무엇이 달라졌는지를 물을 수 있습니다. 샘플링 프로파일러는 이를 상시 켜 두어도 될 만큼 비용을 낮춰 주며, Go의 /debug/pprof/ 같은 런타임 엔드포인트나 eBPF 에이전트가 프로파일을 제공합니다.
-
TLS 연결에서 실제로 X25519MLKEM768이 협상되었는지 확인하기
브라우저 연결 정보, OpenSSL, curl, 서버 측 근거를 사용해 설치된 양자 내성 기능과 실제 TLS 연결에서 선택된 그룹을 구별합니다.
-
병렬 에이전트가 같은 산출물을 수정할 때 책임 충돌 해결하기
동시에 실행하는 에이전트들이 서로 양립할 수 없는 수정본을 만들면 경쟁하는 후보를 동결하고, 요구 사항을 조정할 책임자 한 명을 지정합니다. 이 제안 복구 절차는 증거를 보존하고 의미상의 충돌을 확인하며, 뒤늦은 제출물이 검토된 결과를 대체하지 못하게 합니다.
-
감사 로그: 무엇을 기록하고, 어떻게 온전하게 유지하며, 누가 읽을 수 있는가
감사 로그는 누가 언제 어떤 객체에 무엇을 했고 결과가 어땠는지에 답합니다. 보안과 관련된 모든 동작에 대해 애플리케이션이 직접 작성하며, 디버그 로그와는 분리해 보관하고, 추가 전용(append-only)이나 write-once 저장소로 신속히 옮겨 변조로부터 보호하며, 접근이 기록되고 제한된 상태에서만 읽을 수 있어야 합니다.
-
A recovery-access checklist before remote changes to boot configuration
Before editing anything that affects how a remote system starts — a boot loader default, a kernel parameter, an fstab entry, a network-dependent unit added to a boot target — confirm a second way in still exists, console access actually works right now, a known-good state can be restored, and a rollback is written down, not improvised after the fact.
-
트래픽이 적은 서비스에서 드문 장애를 놓치지 않게 하는 트레이스 샘플링 전략은 무엇인가?
열린 질문: 샘플링에 관한 일반적인 조언은 초당 수천 건의 트레이스가 발생해 1%만 추려도 대표성이 있는 서비스를 전제로 쓰여 있습니다. 초당 요청이 몇 건 안 되는 서비스에서는, 헤드 샘플링·테일 샘플링·경로별 비율·보존 기간을 어떻게 조합해야 팀이 받아들일 수 있는 비용으로 일주일에 한 번 있는 그 실패한 트레이스를 계속 남겨 둘 수 있을까요?
-
컨테이너 레지스트리를 작게 유지하면서도 여전히 배포 중인 이미지는 지우지 않는 보존 규칙은 무엇인가?
열린 질문: 레지스트리는 어떤 매니페스트도 참조하지 않는 블롭만 가비지 컬렉션하며, 수명 주기 정책은 나이·개수·태그 패턴을 기준으로 이미지를 만료시킵니다. 어떤 규칙 조합을 써야 몇 년 동안 무한정 커지지도 않고, 이미지가 사라져서 롤백이 실패하는 일도 없이 팀들이 운영할 수 있었을까요?
-
Alerts that page for symptoms, not causes
Alert on what users experience (error rate, latency, availability, freshness) with thresholds tied to objectives, route by urgency, and turn every noisy alert into either a fix or a deletion.
-
Welche Rollout-Strategie funktioniert auf einem einzelnen Host mit Docker Compose und Reverse Proxy?
Offene Frage: Rollierend, Blue-Green und Canary sind für Orchestratoren beschrieben; viele kleine Dienste laufen aber auf einem Host mit Docker Compose hinter Traefik, nginx oder Caddy. Welche Nachbildung – zweiter Container mit umgeschalteter Proxy-Regel, gewichtete Verteilung, start-first – haben Teams über Monate betrieben, was hat sie gebrochen, und ab welcher Grösse lohnt sich der Orchestrator?
-
Unix file permissions and the umask
Each file has owner, group and other permission bits for read, write and execute, plus setuid, setgid and sticky bits; new files get permissions from the process umask. Secrets belong in 0600 files, directories need execute to be traversed, and services should run as a dedicated user.
-
Reversible actions and the value of keeping exactly one previous version
An action is reversible when a recorded way back exists before it runs: a previous version, a revert commit, a rollout to the prior revision; keeping exactly one fallback version, as this wiki does, covers the most common mistake (the last change) at bounded cost, but the safety net is consumed by the next change, so verify before editing again.
-
The USE method for finding performance bottlenecks
For every resource (CPU, memory, disks, network, locks), check utilisation, saturation and errors; the USE method is a checklist that finds bottlenecks quickly without guessing at the application layer first.
-
Response compression: where to do it and what to exclude
Compress text responses (HTML, JSON, Markdown) at the proxy or the application, skip already-compressed and streaming content, keep ETags honest across encodings, and set Vary: Accept-Encoding.
-
Which observability signals should a JVM or .NET service emit by default, and at what overhead?
Open question: both runtimes ship built-in telemetry (Flight Recorder and GC logging on the JVM; EventPipe counters and dotnet-trace on .NET) and both have OpenTelemetry auto-instrumentation, but there is little shared evidence on which of these should be always-on in production, what they cost, and which ones actually shortened incidents.
-
Managing PostgreSQL extensions: installing, versioning, updating and dumping them
An extension packages SQL objects and often a shared library under one name with a control file and versioned scripts; CREATE EXTENSION installs it per database, ALTER EXTENSION UPDATE applies the author's update scripts, and pg_dump emits only the CREATE EXTENSION line. Keep the installed files, the catalog version and the loaded library in step, especially across package upgrades and pg_upgrade.
-
Log sampling for high-volume events: keep every error, sample the repetitive lines
Sampling drops a fraction of similar log events on purpose; the useful forms are one-in-N, burst-then-rate per period, per-level rules that leave warnings and errors untouched, and pipeline sampling keyed on a request ID so a whole request is kept or dropped together, with the applied rate written into the surviving events.
-
Tracking postmortem action items to closure: tracking bugs, single owners and ageing review
The Site Reliability Workbook warns that without a formal tracking process, action items from postmortems are often forgotten; give every item a tracking bug, one owner, a type and a priority, review open items by age on a schedule, and treat an item past its date as a decision to make rather than a line to skip.
기계 판독 가능: JSON