지난 2005년, 개발자로 소프트웨어 세상에 첫 발을 내딛은 이후 프로덕트 매니저와 컨설턴트를 거쳐 클라우드 아키텍트로 디지털 세상에 참여하고 있다. 15년 동안 코드 수준의 디버깅과 문제 해결, 소프트웨어 제품의 전체 수명주기 관리, 디지털 솔루션의 컨설팅과 딜리버리를 경험하며 소프트웨어 신뢰성 및 카오스 공학에 깊은 관심을 갖게 됐다.
지난 해, 첫 기술서적을 번역한 이후 국내/외 양서를 널리 알리고 제작하는 일에 참여하고 있다. 또한 공유와 협업을 통한 개방적인 소프트웨어 세상에 일조하고자 오픈소스 커뮤니티에도 기여하는 중이다. 오픈소스 생태계 기술을 활용해 클라우드 네이티브 아키텍처를 구축하거나 클라우드 환경에서 카오스 실험을 계획하는 독자와도 꾸준히 소통할 예정이다.
언제 어디서 튀어나올지 모르는 시스템 에러 때문에 걱정이 많았을 것이다. 뛰어난 센스로 복잡한 에러를 해결하더라도 더 큰 산이 연이어 버티고 있다. 클라우드 전환의 소용돌이 속에서 점점 작아지고 분리되는 소프트웨어 모듈, 그에 반해 시스템의 취약점은 더욱 깊이 숨어들고 그에 따른 영향력은 커져만 간다. 또한 이러한 문제는 시스템에 국한되지 않는다. 소프트웨어에서 시작해 플랫폼, 인프라, 프로세스, 나아가 사람과 조직에 이르기까지 취약점의 종류와 내용도 매우 다양해지고 있다.
그렇다면 과학과 응용 공학이 결합된 체계적인 접근 방식으로 이 모든 취약점을 완벽하게 해결할 수 없을까? 그리고 가능하다면 취약점을 미리 파악하고, 조치를 신속하게 취하고, 철저하게 검증하는 방식으로 실패의 위험을 사전에 차단할 수 없을까? 이미 눈치챘겠지만 100% 완벽한 사전 준비란 결코 존재하지 않는다. 다만 완벽에 가까이 다가가려는 노력이 있을 뿐이다. 카오스 공학은 그러한 노력 중 단연 최고라 할 수 있다.
꾸준한 연습과 실전 경험이 최고를 만드는 것처럼 카오스 공학은 카오스 실험을 체계적으로 계획하고, 이를 반복적으로 운영환경의 시스템에 적용하는 과정에서 취약점을 찾아 개선함으로써 최고의 시스템과 엔지니어를 만들어낸다. 이 책은 카오스 공학이 왜 필요한지 구체적으로 설명하며, 카오스 실험을 어떻게 계획하고, 자동화를 통해 반복하는 방법과 효과 등을 상세히 기술한다. 이론에 이어 카오스 실험을 정의하고 수행하는 예제와 코드 설명으로 곧바로 실전에 나설 수 있도록 돕는다. 따라서 최고의 카오스 엔지니어가 되기 위한 입문서로 안성맞춤이다.
사실 카오스 공학은 국내 소프트웨어 환경에서 도입이 쉽지 않다. 기능 요건의 우선순위에 밀려 소프트웨어 품질 개선 및 코드/시스템의 유지 보수 활동이 등한시되고 있기 때문이다. 소프트웨어 외주 제작 문화와 소프트웨어 공학 성숙도의 저하는 이런 문제를 더욱 키워왔다. 하지만 소프트웨어 세상의 패러다임이 급격히 변화하고 있다. 클라우드와 빅데이터, 인공지능으로 대표되는 디지털 트랜스포메이션에 의해 기존 방식은 점점 존재 가치를 잃어가고 있다. 누구나 클라우드 전환을 통해 인공지능 기술을 접목하는 지금 이 순간부터 카오스 공학은 적정 기술을 넘어 필수 기술로 자리매김할 수 있을 것이다.