2021년 10월, 로블록스(Roblox)에 완전 복구까지 3일 걸린 대규모 장애가 있었습니다. 관련 내용을 로블록스에서 정리하여 블로그에 올려주었는데, 이번에는 해당 내용을 살펴보도록 하겠습니다. 1. Introduction [ Roblox Return to Service 10/28-10/31 2021 ] 10월 28일부터 10월 31일에 완전히 해결되기 까지 Roblox는 73시간 서비스 중단을 경험했습니다. 매일 5천만 명의 플레이어가 Roblox를 정기적으로 이용하고 있으며, 플레이어가 원하는 경험을 제공하기 위해 수백 개의 내부 온라인 서비스가 존재합니다. 다른 대규모 서비스와 마찬가지로 가끔 서비스 중단이 발생하지만, 이번에는 특히 길었기 때문에 주목할 만합니다. 서비스 중단에 대해 커뮤니티 ..
2023년 3월, 데이터독(Datadog)에 완전 복구까지 2일 걸린 대규모 장애가 있었습니다. 데이터독에서 관련 내용을 정리하여 블로그에 올려주었는데, 이번에는 해당 내용을 살펴보도록 하겠습니다. 1. Impact, chronology, and response(영향, 연대순 정리, 대응) [ Incident and Impact(장애와 영향) ] 2023년 3월 8일 06:03(UTC)부터 US1, EU1, US3, US4 그리고 US5에 걸쳐 모든 데이터독 서비스 가동이 중단되었습니다. 장애가 시작되었을 때, 사용자는 브라우저나 API를 통해 데이터독 플랫폼이나 서비스에 접근할 수 없었으며, 모니터링도 불가능했고 알람 역시 오지 않았습니다. 데이터 수집을 위한 다양한 서비스들도 중단 초기에 영향을 받았..
이번에는 특히 MSA 환경에서 필수 패턴 중 하나인 서킷브레이커 패턴에 대해 알아보도록 하겠습니다. 1. 서킷 브레이커 패턴(Circuit Breaker Pattern)의 등장 및 개념 [ 서킷 브레이커 패턴(Circuit Breaker Pattern)의 등장 ] 개발을 하다 보면 외부 API를 호출해야 하는 경우가 있다. 특히나 전체적인 시스템 구성이 MSA로 되어 있다면 다른 서비스를 호출하는 경우가 매우 빈번하다. 문제는 서버들에 장애가 발생할 수 있다는 점인데, 호출한 다른 서비스에 장애가 발생했다면 장애가 전파되어, 해당 서비스까지 문제가 발생할 수 있다. 또한 장애가 발생한 서버에 계속 요청을 보내는 것은 장애 복구를 힘들게 만든다. 그래서 장애가 발생한 서비스를 탐지하고, 요청을 보내지 않도..
이번에는 로버트 C 마틴의 클린 아키텍처를 읽은 내용을 정리해보도록 하겠습니다. 개인적인 설명은 기울임으로 표시해두었으니, 읽으면서 참고하시면 될 것 같습니다. 30장. 데이터베이스는 세부사항이다. [ 서론 ] 아키텍처 관점에서 데이터베이스는 엔티티가 아닌 세부사항이라서 아키텍처의 구성 요소 수준으로 끌어올릴 수 없음 애플리케이션 내부 데이터의 구조는 시스템 아키텍처에서 대단히 중요하지만 데이터베이스는 데이터 모델이 아님 데이터베이스는 소프트웨어이자 유틸리티인 저수준의 세부사항(메커니즘)일 뿐이라서 아키텍트와 관련이 없음 뛰어난 아키텍트라면 저수준의 메커니즘이 시스템 아키텍처를 오염시키는 일을 용납하지 않음 [ 관계형 데이터베이스 ] 관계형 데이터베이스는 데이터를 저장하고 접근하는데 탁월한 기술이지만 결..
이번에는 로버트 C 마틴의 클린 아키텍처를 읽은 내용을 정리해보도록 하겠습니다. 개인적인 설명은 기울임으로 표시해두었으니, 읽으면서 참고하시면 될 것 같습니다. 15장. 아키텍처란? [ 서론 ] 소프트웨어 시스템의 아키텍처란 시스템을 구축했던 사람들이 만들어낸 시스템의 형태임 그 모양은 시스템을 컴포넌트로 분할하는 방법, 분할된 컴포넌트를 배치하는 방법, 컴포넌트의 의사소통하는 방식에 따라 정해짐 그 형태는 아키텍처 안에 담긴 소프트웨어 시스템이 쉽게 개발, 배포, 운영, 유지보수되도록 만들어짐 “이러한 일을 용이하게 만들기 위해서는 가능한 많은 선택지를, 가능한 오래 남겨두는 전략을 따라야한다.” 소프트웨어 아키텍처의 목표는 시스템을 제대로 동작하도록 만드는것도 중요하지만 시스템의 생명주기를 지원하는 ..