DevOps/CN

    [클라우드 네이티브 패턴] 2. 안정성 패턴

    [클라우드 네이티브 패턴] 2. 안정성 패턴

    안정성 패턴이란? 분산 애플리케이션이 자신의 안정성이나 자신이 속한 시스템의 안정성을 높이는 데 사용되는 패턴이다. 서킷 브레이커(Circuit Breaker) 개요 직역하면 회로 차단기라고 할 수 있다. 퓨즈와 같이 과부하, 누전 등으로 전기 회로를 보호하는 안전장치다. 분산 컴퓨팅 시스템에서의 서킷 브레이커도 동일한 기능을 의미하는 패턴이다. 앞으로도 계속 언급되겠지만 분산된 클라우드 네이티브 시스템은 에러와 실패를 피해갈 수 없다. 서비스는 잘못 설정될 수 있고, 데이터베이스는 망가질 수 있으며 네트워크는 끊어질 수 있다. 내가 만든 애플리케이션에서 사용하는 의존성이 언제든 망가질 수 있다는 가정하에서 서비스를 디자인해야 한다. 그래서 의존성이 망가지는 상황에서 실패를 감지하고 '서킷'을 임시로 개..

    [클라우드 네이티브 패턴] 1. Context 패키지

    [클라우드 네이티브 패턴] 1. Context 패키지

    Go를 이용한 클라우드 네이티브 애플리케이션 레이어 구현과 패턴을 정리하는 시리즈의 시작 앞으로 다룰 많은 예제들은 Go언어에서 제공하는 Context 패키지를 사용하게 되므로 가장 먼저 정리해보려 한다. Go 1.7 버전에서 처음 소개된 이 패키지는 프로세스 간 종료 시점, 취소 신호 및 요청 범위 값을 전달하기 위한 관용적인 수단을 제공한다. 1. Context 구성 type Context interface { // Done 메서드는 Context가 취소되었을 때 닫힌 채널을 반환합니다. Done()