웹개발 관련
그 밖의 개발 관련
- Why we replaced Pinecone with PGVector : LLM 평가 인프라를 만드는 ConfidentAI에서 벡터 데이터베이스인 Pinecone을 쓰다가 PostgreSQL에서 벡터 검색을 지원하는 PGVector로 갈아탄 이유를 설명한 글이다. Pinecon은 PoC할 때는 편하지만 데이터 동기화 문제와 벡터랑 용량 제한으로 결국 확장성에 문제가 생기고 PGVector의 경우 HNWS 도입으로 성능이 좋아져서 Pinecone을 대체할 만하다고 한다.(영어)
- Universe 2023: Copilot transforms GitHub into the AI-powered developer platform : GitHub 콘퍼런스인 Universe에서 AI 관련 기능을 출시했다.(영어)
- GitHub Copilot Chat이 12월 정시 출시 예정.
- 기존 Copilot 사용자는 사용할 수 있고 GPT-4 기반이며 에디터의 코드 기반으로 질문을 하거나
/fix
, /test
같은 명령어를 사용할 수 있다.
- JetBrains IDE도 지원
- GitHub Copilot Chat이 github.com에도 통합되어 웹에서 바로 대화를 나눌 수 있으며 GitHub 앱에도 통합될 예정
- GitHub Copilot Enterprise 출시
- 24년 2월 정식 출시 예정
- GitHub Copilot Enterprise 최상위 요금재로 매월 사용자당 $39(Copilot Business는 $19, 개인은 $10)
- 회사의 github 저장소와 연결해서 비공개 코드를 기반으로 제안 가능
- Pull Request 요약 생성 기능 지원
- GitHub Advanced Security에서 AI 기반 보안 기능 지원
- GitHub Copilot Chat에서 IDE에서 취약점 수정 제안
- Pull Request에서 JavaScript/TypeScript에 대해 코드 스캐닝을 통해 AI가 취약점 수정 사안을 제안
- GitHub Copilot Workspace
- GitHub 이슈에서 워크스페이스를 열면 변경에 대한 제안을 AI가 해주고 이를 바로 코드 수정 및 실행한 후 Pull Request까지 열 수 있게 된다.
- 24년 출시 예정
인프라 관련
- Post Mortem on Cloudflare Control Plane and Analytics Outage : 11월 2일 데이터센터의 전력이 나가면서 11월 2일 11:44(UTC)부터 11월 4일 04:25(UTC)까지 2일 정도 지속된 Cloudflare 장애의 포스트모템이다. 장애의 심각성 때문인지 Cloudflare의 CEO인 Matthew Prince가 복구되자마자 바로 포스트모템을 올렸다.(영어)
- 컨트롤 플레인과 분석 서비스는 오리건주 힐즈버러 주변의 3개 데이터 센터에서 실행되고 있었으며 이 3개의 데이터 센터는 자연재해로 영향받지 않도록 충분히 떨어져 있으며 액티브-액티브로 클러스터를 이중화해서 운영할 수 있도록 충분히 가깝게 선택이 돼서 서로 데이터를 동기화하고 있었다.
- 이 세 곳 중 하나는 PDX-DC04라고 불렀는데 가장 큰 분석 클러스터와 고가용성 클러스터의 1/3이 있었다.
- 11월 2일 08시 50분(UTC) PDX-DC04의 유틸리티 회사인 포틀랜드 제너럴 일렉트릭(PGE)의 전력 공급 중 하나에 예기치 않은 유지보수가 발생했고 데이터센터를 운영하는 Flexential는 발전기를 돌려서 이를 보완했다.
- Flexential는 이를 Cloudflare에 알리지 않았고 발전기와 유틸리티 라인을 같이 가동한 이유를 Flexential이 아직 알려주지 않았다.
- 11:40(UTC) PGE의 변압기 중 하나에 그라운드 폴트가 발생했고 첫 유지보수 작업으로 인해 발생했을 것으로 추측한다.
- 이 그라운드 폴트로 인한 보호 조치로 PDX-DC04의 모든 발전기가 중단되어 데이터센터의 전력 공급원이 모두 오프라인이 되었다.
- 데이터센터에 UPS 장비가 있고 10분 동안 버틸 수 있었지만 4분 만에 UPS에 문제가 생기기 시작했고 데이터센터는 10분만에 발전기를 복구하지도 못했다.
- 발전기를 복구하는데 3가지 문제가 있었는데 그라운드 폴트로 인한 문제였으므로 발전기에 물리적으로 접근해서 수동으로 재시작해야 했고, Flexential의 접근제어 시스템도 전원 공급이 되지 않아 오프라인 상태였으며, 현장 야간 근무자에 전문가가 포함되어 있지 않고 보안요원과 근무한 지 일주일 된 근무자 뿐이었다.
- 11:44~12:01(UTC)에 UPS가 방전되어 데이터센터의 모든 전기가 끊겼지만 Flexential은 이를 Cloudflare에 알리지 않았고 전 세계를 연결하는 라우터 2대가 내려간 후 이를 알게 되었고 데이터센터에 팀을 파견했다.
- Flexential은 12:28(UTC)에야 처음으로 전원 문제를 공지했다.
- 고가용성으로 설계되어 다른 두 데이터센터에서 동작해야 했지만 Kafka와 Clickhouse 두 서비스는 고가용성 클러스터에 있지 않고 PDX-DC04에만 있었으면 고가용성 클러스터에 이 두 서비스에 의존성을 가진 서비스가 있었다. 고가용성 테스트도 했었지만 PDX-DC04를 모두 오프라인으로 하는 테스트는 진행하지 않았기에 이러한 의존성이 있다는 걸 놓쳤다.
- 또한 새로운 제품이나 데이터베이스가 고가용성 클러스터에 통합되도록 요구하는 절차가 부족했다.
- 12:48(UTC) Flexential은 발전기를 재 가동하고 과부하를 막기 위해 한 회로씩 점진적으로 켜다가 Cloudflare 회로에 문제가 있음을 발견하고 회로 차단기 교체를 시도했지만 보유 차단기보다 고장난 차단기가 많았기에 차단기를 조달해야 했다.
- 13:40(UTC) 복구 시간을 예측할 수 없었기에 유럽에 있는 재해복구 사이트에 페일오버를 요청했다. 다행히 대부분의 서비스는 나머지 두 데이터센터에서 운영중이었으므로 컨트롤 플레인의 일부만 복구하면 되는 상황이었다.
- 13:43(UTC) 재해복구 사이트에서 첫 서비스를 시작했다. 과부하가 걸려서 속도 제한을 구현해야 했지만 17:57(UTC) 안정적으로 서비스를 제공할 수 있게 되었다.
- 신규 제품 등 재해복구 사이트에서 동작하지 않는 서비스가 있었고(대표적으로 동영상 스트림) 서비스 복구를 위해 1) 재해 복구 사이트에서 서비스를 다시 구현하고 2) 고가용성 클러스터로 마이그레이션하는 두 트랙을 동시에 동시에 진행했다.
- 22:48(UTC) Flexential이 회로 차단기를 모두 교체하고 전력을 복구했음을 확인했지만 하루종일 비상상태로 일한 Cloudflare 팀은 바로 이동하기 보다는 휴식 후 아침에 데이터센터로 가기로 결정했다. 약간 복구가 늦어지지만 추가적인 실수를 줄였다고 생각한다.
- 11월 3일 새벽부터 PDX-DC04에서 작업을 시작하고 서버를 재구축하는데 3시간이 걸렸다.
- 11월 4일 04시 25분(UTC) 완전히 복구한다.
- Gateway API v1.0: GA Release : Ingress API를 다음 버전인 Kubernetes의 Gateway API가 v1이 되었다.(영어)
- How Grafana Labs switched to Karpenter to reduce costs and complexities in Amazon EKS : AWS EKS에서 Kubernetes를 사용하는데 처음에는 Cluster Autoscaler(CA)를 사용하고 있었지만 이후 Karpenter로 갈아탔다. CA는 인스턴스 유형을 여러개 선택하더라도 확장될 때 어느 인스턴스 유형이 선택될지는 제어할 수 없어서 제약이 되었고 스팟 인스턴스를 사용할 때 스팟 인스턴스가 부족하다고 온디맨드로 대신 띄우는 등의 작업을 없었다. 이러한 문제를 해결하기 위해 Karpenter 도입했는데 Karpenter는 Kubernetes 네이티브 리소스를 사용해서 더 유연하게 용량 관리를 할 수 있고 용량 유형도 선택할 수 있었습니다. 적용할 때는 Karpenter가 프로비저너가 없으면 아무일도 하지 않으므로 먼저 Karpenter를 배포하고 CA를 끄면서 Karpenter의 프로비저너와 노드 템플릿을 제공해서 Karpenter로 자연스럽게 교체했다. 적용 이후 유휴 비율이 50% 감소했다고 한다.(영어)
- Manage log volumes, metrics cardinality, monthly bills: Explore Grafana Cloud cost management tools : Grfana Cloud에 비용 관리 허브가 추가되었다. 여기서는 누가 로그를 가장 많이 쌓았는지 카디널리티가 낮게 집계할 수 있는 권장 규칙도 제안하고 월별 비용을 볼 수 있다. 이 기능은 오픈소스는 아니고 그라파나 클라우드의 기능이다.(영어)
- Platform Engineering Maturity Model : CNCF에서 플랫폼 엔지니어링 성숙도 모델을 공개했다. 이 성숙도 모델은 조직마다 다를 수 있으므로 Cloud Native Maturity Model와 같이 평가해 보는 것이 좋고 각 측면에서 성숙도가 높아질 때마다 자금과 인력에 대한 요구사항도 같이 증가하므로 최고 수준에 도달하는 게 목표라기보다는 투자 여력을 고려해서 각 단계의 자질을 고려해야 한다.(영어)
- Preview Environments on Kubernetes with ArgoCD : ArgoCD와 Tekton을 이용해서 프리뷰 환경을 구성하는 방법을 설명한다. Argo CD를 이용해서 GitHub의 Pull Request를 모니터링하다가 새 브랜치나 커밋이 올라오면 Tekton으로 빌드하고 Argo CD의 앱을 생성해서 Kubernetes 클러스터에 프리뷰 환경을 배포하는 예시를 보여준다.(영어)
- Service Binding and Parameter Specification via the DNS (SVCB and HTTPS Resource Records)
RFC 9460 : 새로운 DNS 레코드 타입인 SVCB와 HTTPS가 표준 명세가 되었다.(영어)
볼만한 링크
- Developer Productivity Engineering at Netflix : Netflix의 생산성 엔지니어링 디렉터인 Kathryn Koehler가 Netflix의 개발자 생산성 엔지니어링에 관해서 설명한 글이다. Netflix의 생산성 엔지니어링 조직은 개발자의 흐름을 방해하는 모든 것을 추상화하려고 하고 있고 티어를 나누어서 지원하고 있다. DORA 등의 정량적 지표로 생산성을 추적하지만 The SPACE of Developer Productivity 활용해서 만족도와 효율성, 성능, 협업에 대한 정성적인 지표도 추적하고 있다. 하지만 설문조사는 어렵기 때문에 개발자들과 능동적인 커뮤니케이션을 하도록 유도하고 내부 플랫폼으로 포장된 길을 제공하려고 노력하고 있다고 한다.(영어)
- Octoverse: The state of open source and rise of AI in 2023 : GitHub 데이터를 기준으로 오픈소스 생태계를 살펴보는 Octoverse 리포트가 공개되었다. 올해 보고서에서는 GenAI의 인기가 엄청나게 커져서 Top 10 프로젝트에 처음으로 AI 프로젝트가 들어왔고 Dockerfile과 IaC의 사용량이 많이 증가했으며 처음 오픈소스에 기여한 사람이 가장 많은 해가 되었다. 추가로 HCL 도입은 36% 성장했고 인기 언어는 JavaScript, Python, TypeScript, Java, C# 순이고 처음으로 TypeScript가 Java를 넘어섰다.(영어)
- GitHub Transparency Center : GitHub에서 개인정보와 관련해서 정부의 요청이나 DCMA 검토 등의 데이터를 공개하는 투명성 보고서를 2년마다 공개하고 있는데 이전 데이터를 쉽게 볼 수 있도록 투명성 센터를 오픈했다.(영어)
IT 업계 뉴스
프로젝트
버전 업데이트
- Finch v1.0 : Linux 컨테이너를 빌드, 실행하는 CLI, 릴리스 공지
- tsx v4.0.0 : TypeScript를 실행하는 CLI, 릴리스 공지
- Docusaurus v3.0.0 : 문서 웹사이트 생성기, 릴리스 공지
- LitmusChaos v3.0.0 : 카오스 엔지니어링 플랫폼, 릴리스 공지
- Kubescape v3.0 : Kubernetes 보안 플랫폼, 릴리스 공지
- Blender v4.0 : 2D/3D 컨텐츠 제작 도구, 릴리스 공지
- OBS Studio v30.0 : 비디오 녹화 및 라이브 스트리밍 프로그램, 릴리스 공지
- Vitess 18.0 : MySQL 클러스터링 시스템, 릴리스 공지
- ESLint v8.53.0 : JavaScript 코드 분석 도구, 릴리스 공지
- NextUI v2.2.0 : React UI 라이브러리, 릴리스 공지
- Zed v0.110.2 : 코드 에디터, 릴리스 공지
- Deno v1.38.0 : TypeScript 런타임, 릴리스 공지
- Grafana Tempo v2.3.0 : 분산 트레이싱 백엔드, 릴리스 공지
- 전용 문자열 속성 열을 선택할 수 있는 Parquet의 최신 백엔드 버전인 vParquet3 지원
- Crossplane v1.14.0: 외부 인프라 관리용 Kubernetes 애드온, 릴리스 공지
- Zed v0.112.3 : 코드 에디터, 릴리스 공지
- WebdriverIO v8.2.0 : Browser 테스트 자동화도구, 릴리스 공지
- Prisma v5.6.0 : TypeScript/Node.js 데이터베이스 툴킷, 릴리스 공지
- Grafana Beyla 1.0.0 : eBPF를 이용한 자동 계측, 릴리스 공지
- Istio v1.20.0 : 서비스 매쉬, 릴리스 공지
- Prettier v3.1.0 : JavaScript/TypeScript 포매터. 릴리스 공지
- Hono v3.10.0 : 엣지용 웹 프레임워크, 릴리스 공지
- k6 v0.47.0 : 부하 테스트 도구, 릴리스 공지
- astro v3.5 : JavaScript 웹 프레임워크, 릴리스 공지
- Argo CD v2.9.0 : Kubernetes 배포 도구, 릴리스 공지
- play framework v2.9.0 : Java/Scala 웹 프레임워크, 릴리스 공지
- play framework v3.0.0 : Java/Scala 웹 프레임워크, 릴리스 공지
- Node.js v21.2.0 (Current)) : 자바스크립트 런타임, 릴리스 공지
- KubeVirt v1.1.0 : Kubernetes의 가상 머신 관리 애드온, 릴리스 공지
Outsider
2023/11/16 09:45
2023/11/16 09:45
Comments