태그: #devops
GPU·LLM·MLOps·쿠버네티스, 그리고 마음가짐에 관한 글 · 198 편
#devops 태그가 붙은 글은 198편이고, 가장 최근 글은 2026-09-11에 올라왔습니다.
함께 자주 붙은 태그: #kubernetes 60 #2026-03 54 #security 43 #ci-cd 23 #networking 23
최근 90일 동안 많이 읽힌 글:
AI 에이전트 하네스 해부 — 규칙이 스스로 지켜지게 만든 35개 파일
모델은 똑같은데 어떤 저장소에서는 사고가 반복되고 어떤 저장소에서는 나지 않는다. 그 차이가 하네스다. 3주 동안 AI 와 함께 1,491개 커밋을 쌓은 저장소의 하네스를 파일 단위로 뜯어 본다: 규칙 한 곳, 경로 규칙 6개, 스킬 5개, 훅 2개, 서브에이전트 3개, 그리고 그 장치들이 스스로를 시험하는 34개의 시험.
2026-09-11 · 22 분 읽기 #ai#agent#harness#claude-code#ci-cd클라우드의 bastion 이란 무엇이고, AWS 에서는 어떻게 쓰는 것이 좋은가 — ProxyJump 실측, SSM Session Manager, EC2 Instance Connect Endpoint
bastion 은 사설망으로 들어가는 문을 하나로 줄인 호스트다. 홈랩에서 OpenSSH ProxyJump 로 점프 호스트를 거쳐 보며 대상 서버가 무엇을 보는지 실측하고, AWS 가 bastion 대신 권하는 SSM Session Manager 와 EC2 Instance Connect Endpoint 를 문서 근거로 견준다.
2026-09-10 · 13 분 읽기 #aws#bastion#ssh#ssm#securityDocker Hub 앞에 프록시 캐시를 두는 세 가지 방법 — registry:2, Nexus, ECR pull-through cache
Docker Hub 의 한도 헤더를 직접 읽고, registry:2 를 pull-through 캐시로 세워 같은 이미지를 세 번 당겨 본 뒤, Nexus 의 프록시·그룹 저장소와 ECR pull-through cache 가 각각 어디에 맞는지 문서와 실측으로 정리한다.
2026-09-10 · 12 분 읽기 #docker#registry#nexus#ecr#devopsLabHub — 브라우저에서 진짜 서버를 만지며 배우는 실습 플랫폼을 열었습니다
읽어서는 늘지 않는 것들이 있습니다. 서버에 붙어 명령을 치고, 틀리고, 왜 틀렸는지 확인하는 과정을 대신할 방법이 없습니다. LabHub 은 그 과정을 브라우저 안에 넣은 학습 플랫폼입니다. 실습 시작을 누르면 전용 리눅스 컨테이너가 즉시 뜨고, 브라우저 터미널로 붙어 과제를 풀고, 단계마다 서버가 실제 상태를 검사해 통과 여부를 알려 줍니다. 러닝패스 12개에 코스 73개, 실습 261개
2026-08-20 · 14 분 읽기 #labhub#kubernetes#devops#education#hands-on지금 주목받는 오픈소스 (6) 스타 수가 말해 주지 않는 것
스타 수는 인기 지표이지 위험 지표가 아닙니다. 오픈소스를 프로덕션에 들이기 전에 실제로 확인해야 하는 신호를 정리합니다. 최근 커밋과 릴리스 주기, 이슈 응답, 기여자 분포와 버스 팩터를 GitHub API로 직접 세는 방법, 라이선스가 자동 분류되지 않을 때 LICENSE 파일을 직접 읽어야 하는 이유, 그리고 도입 전 체크리스트를 담았습니다. 시리즈에서 실제로 확인한 사례를 근거로 삼았
2026-08-12 · 10 분 읽기 #open-source#governance#supply-chain#risk#devops지금 주목받는 오픈소스 (3) 인프라와 데이터베이스
데이터베이스와 인프라 영역은 라이선스 변경과 포크가 판을 다시 짠 분야입니다. 분석 엔진, 임베디드 데이터베이스, 포스트그레스 확장, 쿠버네티스 오퍼레이터, IaC까지 실제로 자리를 잡은 오픈소스 11개를 스타 순위가 아니라 해결하는 문제별로 묶어 소개합니다. 무엇을 대체하는지, 어느 정도 성숙했는지, 언제 쓰면 안 되는지를 함께 적었습니다. 저장소 경로와 라이선스, 스타 수, 최근 푸시는
2026-08-12 · 9 분 읽기 #open-source#database#infrastructure#postgresql#kubernetes버스 팩터는 아는 사람의 수가 아니라 결정할 수 있는 사람의 수다
Nixpkgs 코어 팀이 10개월 만에 해산했습니다. 기여자가 수천 명인 저장소에서 위임된 의사결정 권한을 가진 사람은 두 명이었고, 그 두 명이 물러나자 해당 관할은 직접적인 주인이 없는 상태가 되었습니다. 이 사건을 근거로 의존성 위험을 평가할 때 스타 수와 커밋 수가 아니라 승인 권한을 가진 사람의 수, 위임 구조의 실효성, 에스컬레이션 경로를 봐야 하는 이유를 정리하고, GitHub
2026-08-09 · 16 분 읽기 #devops#open-source#governance#nix#supply-chain레지스트리를 늘렸는데 가용성은 그대로다 — zot 스케일 아웃이 실제로 파는 것
zot을 예로 들어 컨테이너 레지스트리의 확장 설계를 뜯어봅니다. 일관성 해시로 리포지토리를 인스턴스에 배정하고 소유자가 아닌 노드는 프록시로 넘기는 구조는 샤딩이지 고가용성이 아니며, 공식 문서도 자가 치유가 되지 않는다고 명시합니다. 컴퓨트 전용 확장과 컴퓨트 겸 스토리지 확장이 각각 무엇을 포기하는지, boltdb 캐시 드라이버가 인스턴스 수를 사실상 하나로 묶는 이유, 미러링에서 di
2026-08-09 · 15 분 읽기 #devops#oci#registry#zot#containerDockerfile에서 반복되는 실수 — root 실행, PID 1, 이미지에 남는 시크릿
빌드는 통과하는데 운영에서만 터지는 Dockerfile 문제들을 원인부터 정리합니다. USER를 지정하지 않아 root로 도는 컨테이너, latest 태그와 재현성, ADD를 피해야 하는 이유, shell form CMD가 SIGTERM을 삼켜 배포 때마다 10초를 버리고 137로 죽는 구조, PID 1의 좀비 수확 책임과 tini, ARG와 ENV로 넣은 토큰이 docker history에
2026-07-26 · 20 분 읽기 #docker#dockerfile#container-security#pid1#devops도커 이미지 크기 줄이기 — 레이어의 진실, 멀티스테이지, 베이스 이미지의 실제 비용
도커 이미지가 1.9GB까지 부푸는 원인을 dive로 레이어 단위로 특정하는 법부터 정리합니다. 유니온 파일시스템 때문에 RUN rm 으로는 이미지가 한 바이트도 줄지 않는 이유, 멀티스테이지 빌드에서 정확히 무엇만 복사해야 하는지, alpine의 musl libc가 파이썬 휠 재빌드와 DNS 문제로 청구하는 숨은 비용, distroless와 slim의 트레이드오프를 실제 Dockerfile
2026-07-26 · 20 분 읽기 #docker#dockerfile#multi-stage-build#container#devops도커 빌드 캐시가 자꾸 깨지는 이유 — 레이어 캐시 키, ARG, BuildKit 캐시 마운트
코드 한 줄만 고쳤는데 npm ci가 5분 동안 다시 도는 문제의 원인을 캐시 키 수준에서 설명합니다. RUN의 캐시 키는 명령 문자열이고 COPY의 캐시 키는 파일 내용 해시라는 차이, 한 레이어가 깨지면 그 아래가 전부 깨지는 규칙, ARG가 BuildKit과 구 빌더에서 다르게 동작하는 지점을 다룹니다. CI 러너에는 캐시가 없다는 사실과 함께 캐시 마운트가 레지스트리 캐시로 내보내지지
2026-07-26 · 18 분 읽기 #docker#buildkit#build-cache#ci-cd#devops시크릿 관리, .env 파일만으로는 부족한 이유 — 환경변수가 새는 경로와 로테이션 설계
.env 파일을 .gitignore에 넣었다고 시크릿이 안전해지지는 않습니다. 프로세스 환경은 같은 호스트에서 /proc/PID/environ으로 그대로 읽히고, 크래시 리포트와 디버그 페이지와 CI 로그에 실려 나가며, 컨테이너 이미지 레이어에 영구히 남습니다. 이 글은 환경변수가 새어 나가는 실제 경로를 하나씩 보여주고, 시크릿이 이미 커밋된 경우의 대응 순서가 왜 히스토리 재작성이 아니
2026-07-26 · 27 분 읽기 #security#secrets#devops#vault#kubernetes도커 네트워크 모드와 연결 문제 — bridge, host, overlay, 그리고 127.0.0.1의 함정
컨테이너는 떴는데 접속이 안 되는 상황을 모드별 동작 원리로 풀어냅니다. 기본 bridge에서 컨테이너가 서로를 이름으로 못 찾는 이유와 사용자 정의 네트워크의 내장 DNS, 포트 퍼블리싱이 실제로 만드는 iptables DNAT 규칙, 바인딩 주소를 127.0.0.1로 제한하는 것의 보안 의미를 다룹니다. 컨테이너 안의 루프백이 호스트가 아니라는 점과 host.docker.internal,
2026-07-26 · 22 분 읽기 #docker#docker-network#iptables#networking#devopssystemd v261 — PID 1에 들어온 단계적 롤아웃, 클라우드 IMDS 흡수, 그리고 dlopen 전환의 완성
2026년 6월 19일 릴리스된 systemd v261은 유닛을 fleet의 지정 비율에서만 켜는 ConditionFraction=, 머신 태그로 링을 나누는 ConditionMachineTag=, 그리고 9개 퍼블릭 클라우드의 인스턴스 메타데이터를 시스템 자격증명으로 끌어오는 IMDS 서브시스템을 새로 실었고, libc를 제외한 모든 외부 라이브러리 링크를 dlopen()으로 바꾸는 다년
2026-07-17 · 30 분 읽기 #linux#systemd#devops#cloud#sysadminTalos Linux 1.13 — 쉘 없는 불변 OS가 디버그 쉘을 배송하기까지
쿠버네티스 전용 불변 OS인 Talos Linux의 1.13이 2026년 4월 27일에 나왔습니다. 이번 릴리스에는 Clang/ThinLTO로 빌드된 커널, 재현 가능한 디스크 이미지, 머신 전역 컨테이너 이미지 서명 검증, 그리고 가장 상징적인 기능 — 쉘도 SSH도 없는 OS를 위한 공식 디버그 컨테이너(talosctl debug) — 이 들어 있습니다. 이 글은 1.13의 실제 릴리스
2026-07-17 · 25 분 읽기 #linux#kubernetes#talos#immutable-infrastructure#devopsOpenBao는 Vault에서 실제로 얼마나 갈라졌나 — v2.6 네임스페이스 봉인까지, 릴리스 노트로 확인한 분기점
OpenBao v2.0.0 GA(2024-07-17)로부터 정확히 2년이 지났고, 사흘 전에는 v2.6.0이 나왔습니다. 이 글은 "BUSL 배신" 대 "지속가능성" 같은 진영 논리를 걷어내고, 양쪽 프로젝트의 릴리스 노트·체인지로그·커밋만으로 포크가 실제로 어디서 갈라졌는지 확인합니다. OpenBao는 Vault Enterprise 전용이던 네임스페이스를 v2.3.1에서 오픈소스로 가져왔고
2026-07-17 · 19 분 읽기 #security#open-source#devops#licensingFlux 2.9와 Weaveworks 이후 2년 — 스폰서를 잃은 GitOps 프로젝트는 어떻게 유지되고 있나
2024년 초 Flux의 원 개발사 Weaveworks가 문을 닫았을 때, GitHub 디스커션에는 "이 프로젝트의 미래는 위험한가?"라는 질문이 올라왔습니다. 2년 반이 지난 2026년 6월 30일, Flux는 2.9.0을 릴리스했습니다. 이 글은 그 사이에 실제로 일어난 일을 검증 가능한 1차 자료로 재구성합니다 — 릴리스 케이던스가 어떻게 흔들렸다 회복됐는지(v2.0부터 v2.9까지 릴
2026-07-17 · 21 분 읽기 #devops#gitops#fluxcd#kubernetes#open-sourceMySQL 9.7 다음 버전은 26.7 — 2026년 봄, MySQL과 MariaDB가 릴리스 모델을 정리한 방식
2026년 4월 21일 MySQL 9.7.0이 GA로 나오면서 8.4 이후 거의 2년 만에 새 LTS 라인이 열렸고, 같은 달 MySQL 8.0은 Extended Support가 끝나 Sustaining Support로 내려갔습니다. 그리고 6월 16일 Oracle은 버전 번호를 YY.M 캘린더 버저닝으로 바꾼다고 발표해, 9.7 다음 혁신 릴리스는 9.8이 아니라 26.7이 됐습니다. Ma
2026-07-16 · 34 분 읽기 #mysql#mariadb#database#versioning#devopsOpenTofu 1.12의 동적 prevent_destroy — lifecycle의 정적 제약이 풀린 자리와 그 대가
Terraform의 lifecycle 블록은 설계상 리터럴 값만 받습니다. 의존성 그래프를 만드는 단계에서 처리되기 때문에 변수를 평가할 시점이 아직 아니라는 것이 HashiCorp 문서의 설명이고, "변수를 쓰게 해 달라"는 요청은 2016년부터 있었습니다. OpenTofu 1.12(2026년 5월 14일)는 preventdestroy의 평가를 설정 로더에서 언어 런타임으로 옮겨 이 제약을
2026-07-16 · 22 분 읽기 #opentofu#terraform#iac#devops#state-managementDebian이 재현 불가능한 패키지의 testing 이행을 막기 시작했다 — 게이트가 실제로 막는 것과 막지 않는 것 ♪ 들을 수 있어요
2026년 5월 9일, Debian 릴리스 팀은 이행 소프트웨어 britney를 재현 가능성 검사와 연결했습니다. 다음 날 메일링 리스트에 올라온 문장은 "Debian must ship reproducible packages"였지만, 실제로 막히는 것은 재현되지 않는 신규 패키지와 재현되던 패키지의 회귀 두 가지뿐입니다. 이 글은 그 게이트를 뜯어봅니다 — buildd가 남긴 .buildin
2026-07-16 · 37 분 읽기 #devops#reproducible-builds#debian#supply-chain#ci-cd