4장. 슬랙의 재앙 극장
이 작품은 AI를 사용하여 번역되었습니다. 여러분의 피드백과 의견을 환영합니다: translation-feedback@oreilly.com
팀과 도구가 카오스 엔지니어링을 가지고 태어나지 않았다면 어떻게 카오스 엔지니어링에 입문할 수 있을까요? 컴퓨터는 오래 사용할 수 있고 오래 사용해야 한다는 사고방식으로 설계된 시스템에 카오스를 적용하는 것은 압도적이고 극복할 수 없는 작업처럼 보일 수 있습니다. 이러한 사고방식에서 탄생한 복잡한 시스템은 기본 컴퓨터의 극단적인 일시적 현상을 Cloud 네이티브 후속 제품보다 덜 수용하는 경향이 있습니다. 이러한 시스템은 최적의 조건에서는 매우 잘 작동하지만 장애가 발생하면 빠르게, 때로는 치명적으로 성능이 저하될 수 있습니다.
여러분은 그런 시스템의 자랑스러운 소유자일지도 모릅니다. 이 시스템은 혼돈을 수용하도록 설계되지 않았지만, 좋든 싫든 그 규모가 커지고 지속적인 개발로 인해 더 많은 일을 더 빠르고 안정적으로 처리해야 하기 때문에 혼돈이 다가오고 있습니다. 시스템을 다시 작성할 시간이 없습니다. 이미 시스템은 압박을 받고 있습니다. 기존 시스템에 새로운 카오스 엔지니어링 관행을 적용하는 것은 상황을 악화시킬 수 있습니다. 다른 전략이 필요합니다.
이 장에서는 장애와 네트워크 파티션을 신중하고 통제된 방식으로 도입하여 카오스 엔지니어링을 염두에 두고 설계되지 않은 복잡한 시스템을 안전하고 체계적으로 테스트하는 한 가지 전략에 대해 설명합니다. 이는 자동화가 아닌 프로세스로, 팀이 소프트웨어가 어떻게 취약한지 이해하고 개선 동기를 부여하며 시스템이 예상되는 결함을 견딜 수 있는지 검증하는 데 도움이 됩니다. 이 프로세스는 2018년 초부터 Slack에서 활발히 사용되고 있습니다. 20회 이상의 연습을 통해 취약점을 발견하고, 신규 및 기존 시스템의 안전성을 입증했으며, 많은 엔지니어링 팀의 로드맵에 영향을 미쳤습니다.
하지만 첫 번째 단계는 해당 시스템이 예상되는 종류의 오류를 견딜 수 있는 이론적 준비가 되어 있는지 확인하는 것입니다.
카오스 개조
시스템의 내결함성을 높이는 데 사용할 수 있는 도구와 기술은 시스템을 현대화하거나, Cloud 네이티브화하거나, 안정성을 높이거나, 고가용성을 높이는 데 사용할 수 있는 도구와 기술과 동일합니다. 살펴보겠습니다.
구형 시스템에서 흔히 볼 수 있는 디자인 패턴
기존 시스템, 특히 오래된 기존 시스템은 오늘날 새로 구축되는 시스템보다 개별 컴퓨터의 수명이 오래 지속된다고 가정할 가능성이 높습니다. 이 단순한 가정은 내결함성을 갖춘 많은 시스템의 핵심입니다. 이러한 가정은 여분의 컴퓨터가 낭비라고 여겨지던 시대에 만들어진 것으로, 그 이후에도 시스템 설계에 그대로 남아 있습니다.
컴퓨터가 부족했던 시절에는 컴퓨터를 구입한 직후에 운영 체제와 모든 트리밍을 거의 한 번 프로비저닝하고 수명이 다할 때까지 업그레이드하는 경우가 많았습니다. 특히 많은 컴퓨터가 한꺼번에 로딩 도크에 나타나는 경우 프로비저닝 프로세스는 상당 ...