기본 콘텐츠로 건너뛰기

도서 '코드로 인프라 관리하기 2판' 리뷰

 오렐리의 코드로 인프라 관리하기가 2판이 나왔다. 원칙과 실행 방법, 패턴으로 배우는 클라우드 인프라 구축의 실용적인 방법을 배울 수 있는 책이다. 이 책의 대상 독자는 소프트웨어 배포 및 실행에 필요한 인프라를 프로비저닝하고 관리하는 사람. 팀에서 엔지니어링, 테스트, 설계, 관리자 역할을 맡은 사람이다. 이 책을 이해하기 위해서는 시스템, 인프라 또는 소프트웨어 배포와 실행 관련 배경지식이 필요하다. 저자는 책을 읽는 독자가 인프라 자동화를 위한 코드를 사용하는 클라우드나 가상 인프라에 대한 경험이 있다고 가정하기 때문에 그런 배경이 없다면 어려운 책이다.

본업은 기획자이자 PM으로 실무에서 인프라 업무를 하고 있지 않은 내 입장에서는 어려웠고, 소프트웨어 배포와 실행 관련 배경지식은 있지만, 그 내부까지 세세하게 알지는 못하기 때문에 책을 한 번 보고 익히는 것은 어려운 일이었다. 솔직히 다 읽은 지금도 반만 이해하고 나머지는 잘 모르겠다.


이번 표지는 아프리카의 루펠 독수리가 차지했다. 멸종 위기종으로 간주되며 개체 수가 감소하고 있는 이 새가 이 책의 표지를 맡은 것에는 무슨 의도가 담긴 걸까. 

클라우드 시대의 코드형 인프라와 데브옵스를 위한 완벽 가이드. 2017년 3월 초판이 처음 발행된 이후로 거의 5년 만에 2판을 발행했다.


음. 책 정보에는 초판 1쇄 발행이 2017년이라고 되어 있는데, 책 내용에는 2016년 6월에 초판이 나왔다고 하니 뭐가 맞는 건지를 모르겠다.

당시 인프라 자동화는 서버 구성에만 초점이 맞추어져 있었는데, 이후 컨테이너와 클러스터가 훨씬 더 많이 사용되면서 인프라 업무라고 하면 클라우드 플랫폼의 인프라 리소스 집합(그러니까 스택)을 관리하는 일을 뜻하게 되었다. 그래서 새롭게 바뀐 환경에 맞춰 2판이 발행되었다.

2판에서는 코드형 인프라를 사용해서 안전하고 쉽게 변경할 수 있는 세 가지 핵심 실행 방법을 소개하고 다루는데, 모든 것을 코드로 정의하는 것, 지속적으로 테스트하고 딜리버리 하는 것, 시스템을 '작고' '간단하게' 빌드 하는 것. 을 이야기한다.

현재 다니고 있는 회사의 프로젝트는 리눅스 운영 체제를 사용하고 있다. 책이 개편되는 주기보다 도구의 변화는 빠르고 보다 오랫동안 책의 내용이 유효할 수 있도록, 더 많은 사람들에게 도움이 될 수 있도록 책에서는 실제 도구와 클라우드를 위한 코드 예제는 없다. 이 책을 통해서 도구 전반을 이해하는 데 도움이 된다. 마찬가지로 운영체제나 클러스터 설정, 네트워크 라우팅 방법에 대해서도 가이드를 하지 않고, 다만 인프라 환경을 구성하기 위한 인프라 리소스 프로비저닝 방법과 배포를 위한 코드 사용 방법 등을 다룬다.

세부적으로 딥(deep) 한 내용이 아니라 전반적인 내용을 다룬다고 보면 쉽다. 그래서 독자가 기본적으로 인프라 경험이 있다는 전제하에 책이 쓰였다.


책은 핵심 개념을 설명하기 위해 원칙, 실행 방법, 패턴, 안티 패턴이라는 용어를 사용한다. 원칙은 잠재적 해결 방법 중에서 적절한 방법을 선택하도록 돕는 규칙. 실행 방법은 무언가를 구현하는 방법. 하지만 저자는 여기서 설명하는 방법이 유일한 방법이 아니며 특정한 상황에서는 최선의 방법이 아닐 수 있다고 경고한다. 패턴은 주어진 문제를 해결할 가능성이 있는 방법이다. 상황에 따라서 효과적인 패턴이 다르다는 점에서 앞서 말한 실행 방법과 유사하다. 마지막 안티 패턴. 피해야 하는 잠재적 해결 방법이다. 사실 안티 패턴이 아니라 모범 사례를 공유할 수도 있으나 저자는 모범 사례에 대해서 이야기할 경우, 내용과 관계없이 문제에 대해서 '하나의 해결 방법'만 있다고 생각하게 만듦으로 모범 사례를 사용하지 않는다고 했다. 다만 안티 패턴을 통해 좋은 해결 방법처럼 보이거나 혹은 모르는 사이에 하게 되는 해결 방법 등을 주의하도록 하고 있다.


2판이기는 하지만 기초 부분을 다룬다. 코드형 인프라란 무엇인지 구시대에서 클라우드 시대로 넘어오면서 변경된 것들과 이점, 최적화에 대해 배울 수 있다. 1.4네 가지 주요 지표는 인프라 실무를 잘 모르는 나에게도 꽤 유익한 내용이었다.

(아, 솔직히 이 책을 그대로 들고 가서 회사 인프라팀에 선물하고 싶다는 생각이 들었지만, 내 영역이 아니니...)


두 번째 파트로 넘어오면 본격적으로 인프라 스택으로 작업하는 것을 다룬다. 코드로 인프라 스택 구축과 스택 환경을 구축하는 것. (사담으로 '스택'이 무엇인지 모르면서 '스택' 타령을 하는 개발자를 최근에 보고 혈압이 오를 뻔한 적이 있어서 그 사람에게도 이 책을 쥐여 주고 싶었다.) 스택으로 환경을 구축하고 나서 스택 인스턴스를 구성하는 내용을 이어 설명한다. 앞서 말했다시피 도구 사용법을 직접적으로 다루지 않는다. 그 전반적인 내용을 다룰 뿐이기 때문에 이후의 실무로 들어가려면 사실 이 책 한 권으로는 어렵다.


네 번째 파트의 '시스템을 [작고] [간단하게] 빌드 하는 것'. 이 부분이 개인적으로 내가 이 책에서 꼽는 가장 유용한 부분이다. 다른 독자나 사용자의 의견은 알 수 없지만, 잦은 업데이트 및 수정이 있는 프로젝트를 운영하고 있기 때문에 이 부분의 지식은 굉장히 유용하게 다가왔다. 컴포넌트의 설계 규칙에서 특히 순환 의존성을 제거하는 것. 인프라를 모듈화에서 스택 컴포넌트와 컴포넌트로서의 스택을 비교해 준 부분. 스택에서 서버를 사용하는 부분이 흥미로웠다. 


챕터 20의 팀 워크플로에서 신뢰할 수 있는 자동화된 IT 시스템을 '소일렌트 그린'이라고 명명하는 것이 재미있으면서도 확 와닿았다. 


인프라를 직접 사용하는 사람. 인프라 코드를 작성하는 사람.


팀이 작업 방식을 완전히 조정하는 대신 인프라 코딩 도구를 사용하여 이전의 작업 방식 일부를 자동화할 때 구성 드리프트가 발생하는 경우가 많이 있다. 이때 구성 드리프트를 방지하기 위해 워크플로에서 수행할 수 있는 몇 가지 작업에 대해서 설명을 하는데, 그중 하나가 바로 '임시방편 피하기'. 인프라 코드를 작성하고 적용하여 시스템의 특정 부분을 임시로 변경할 수 있지만, 이러한 습관으로 구성 드리프트나 자동화 지연이 발생할 수 있다.​

내 상사가 습관처럼 하는 말이 있는데 '귀찮으면 X 된다.'이다. 분명 이렇게 하면 문제가 일어날 수 있다는 것을 예상하고도 '귀찮음'을 '효율성'으로 포장해 일을 치르면 나중에 X 된다고 했고 의외로 실무에서 그런 일이 빈번하게 일어나고 또 목격이 된다. 


챕터 21에서는 안전한 인프라 변경에 대해 다룬다. 서비스를 계속 작동시키면서 일련의 작고 점진적인 변경으로 프로덕션 시스템에 중요한 변경을 딜리버리 할 수 있는 방법. 많은 수의 작은 변경으로 인해 클러스터 자체를 사용할 수 없게 될 수 있기 때문에 기존 코드와 기능을 제자리에 유지하면서 작은 변경을 수행할 방법을 찾아야 한다. 그리고 상황에 따라 사용할 수 있는 기술이 다르다. 그래서 이 책에서는 이전 버전과 호환되는 변환을 어떻게 하는지 다뤄주고 있다.​

이 책을 통해 대상 독자는 이제 최신 인프라 플랫폼의 동적 특성을 활용하고 애자일 엔지니어링 실행 방법에서 비롯된 테스트와 일관성에 대한 핵심 내용을 구현할 수 있게 되었다. 시스템을 지속적으로 개선하고, 실패를 학습과 개선의 기회로 활용할 수 있다는 높은 수준의 확신도 갖게 될 것이다.

나는 인프라를 구축, 관리하거나 코드를 작성하는 사람이 아니라 사용자에 있기 때문에 이 책의 내용을 100% 활용할 수는 없지만, 전반적인 내용에 대한 이해가 생겨 회사 업무에 더 도움이 될 것 같다. 실제로 인프라를 구축, 관리하거나 코드를 작성하는 사람이라면 그 이상으로 실용적인 책이며, 최소 3~5년 이상은 오래 두고 볼 수 있는 책이 아닐까 싶다.

"한빛미디어 <나는 리뷰어다> 활동을 위해서 책을 제공받아 작성된 서평입니다."


댓글

이 블로그의 인기 게시물

샷시문, 유리문, 현관문 방화문으로 교체비용, 방화문으로 바꾸는 가격

샷시문 방화문으로 교체. 유리문 방화문으로 교체. 현관문 철문 교체. 현관문 철문 가격. 내가 왜 이런것을 알아보았느냐면, 우리집에는 현관문이 2개가 있다. 1층 현관문과 2층 현관문. 2층 현관문은 보시다시피 알루미늄 샷시에 유리가 끼워져있는 매우 부실한 현관문이다. 물론 1층에도 현관문이 하나 더 있기 때문에 크게 신경쓸 필요는 없지만. 그래도 여기는 지금 안락동집처럼 외부 창고같은 것이 없기 때문에 택배를 받기가 애매해서, 부피가 큰 택배를 받을때 1층 현관문을 열어두기 위해 2층 현관문을 보강할 필요가 있었다. 우리집 문의 크기는 아래와 같다. (cm) 문틀포함 문높이 171 / 문틀포함 문폭 76 문틀비포함 문높이 172 / 문틀비포함 문폭 69 문틀면 폭 5~6 문윗 스틸 폭 10 / 문옆 스틸폭 7 / 문가운데 스틸폭 10 / 문아래 스틸폭 50 문윗유리 가로 54 / 문윗유리 세로 69 문아랫유리 가로 54 / 문아랫유리 세로 30 안락동집 근처 문마트라는 곳에 가서 사이즈와 사진을 보여주고 견적을 받았다. 지식인은 물론 카페와 블로그, 각종 사이트 등에서 나와 같은 경우를 찾아 보고 엄청나게 알아보았으나, 다들 교체비용이 40~50만원이 든다고 하더라. 집근처에 문마트가 있다는 걸 떠올리고 직접 견적을 내러 가보니 문틀 포함해서 시공비까지 27만원이라고 했다. 샷시문 철문으로 교체, 현관문 철문으로 교체하는게 27만원이면 충분하다. 주문하고 맞춤 제작이 들어가기 때문에 시공 완료까지 일주일정도 소요가 된다고 한다. 나 말고도 막막하게 인터넷으로 알아보는 사람들을 위해서 정보 공유차 글을 올려본다. 불안에 떨지말고, 문을 철문, 방화문 교체하는거 크게 비싸지 않다. 한달 월세만큼이면 충분하니 집주인하고 상의해보거나 해서 부산분이라면 교체하는 것도 좋을 것 같다. 물론 철문이라고 해도 문에 틈이 있으면 장도리로 뚫리고, 홀커터로 털릴 수도 있는거라 완전한 안전지대는 없지만, 그래도 마음은 편안하지 않은가. 더

천주교 성경책 구입

수요일 교리를 마치고도 봉사자님께 질문을 드렸었지만, 천주교는 개신교와는 성경이 다르다. 사실 나는 9월 말에 프리마켓에서 중고로 구입한 '개신교 성경책'이 있다. 그때만해도 내가 몇주 뒤에 성당에 다니게 될 거라고는 상상조차 하지 않았으니까, 교양서 읽듯이 읽어보려고 샀었다. 하지만 '우리말 성경'이라고 해놓고서 번역이 엉망진창이라 이해하려고 노력하다가 포기했다. 제대로 보지 못하고 구석에 처박힌 개신교 성경은 뒤로하고, 천주교 성경이 필요했다. 인터넷에 검색을 해보니 신자의 가정에 비치해야할 물건에는, 성경책, 가톨릭기도서, 성가집, 십자고상, 성모상, 묵주 가 있다고 했다. 사실 교재 공부를 할 때도 성경이 필요해서 성경책을 하나 구입하려고는 했는데, 인터넷으로 찾아보니 달랑 대,중,소에 1단, 2단 이렇게 쓰여져 있는데 무슨 소린지 도통 알 수가 없었다. 지퍼가 있고 없고만 알아들을 수 있었다. 아무래도 곁에 두고 자주 읽을 책이니 직접 보고 결정하기로 마음 먹었다. 천주교 수영성당으로 향했다. 2단으로 된 성경책을 사가지고 왔다. 재미있게도 이 성경책은 모든 곳에서 판매가가 29,000원이다. 오프라인이든 온라인이든. 신기한 일이다. 세로 22cm, 가로는 15.5cm 정도 된다. 2단이지만 폰트가 깔끔하고 읽기 편하게 되어 있다. 굵기도 적당해서 수시로 펴고 읽기에 좋았다. 개신교 성경처럼 화려하지도 장식이 있지도 않지만, 표지는 감촉이 좋고 책장 넘김도 좋고 책갈피 줄도 두 줄이나 있다. 크기도 딱 적당하다. 매우 마음에 든다. 이렇게 나의 첫 신앙물품은 당연하게도 성경책이 됐다. 교회 공용으로 사용하는 성경이 있다니. 이것도 천주교라서 가능한 걸까. 내가 구입한 책은 2017년 5월 1일에 재판된 책이다. 이제 공부 준비는 충분한 것 같다. 책상 위 나와 가장 가까운 위치의 책꽂이에 성경책과 교재를 꼽아 두었다. 언제라도 꺼내서 볼 수 있도록. 사실 성경책은 그날의 독서에

화장실 문이 잠겼을 때 여는 방법

10일. 손님이 왔다가 갔다. 손님이 화장실을 사용했는데, 나중에 손님이 집에 간 뒤 들어가려고 보니까 화장실 문이 안에서 잠겼다. 이런 망할. 일단 급한대로 가까운 지하철역 화장실에 다녀왔다. 현관문에 붙어 있는 열쇠상에 다 전화를 돌렸지만, 새벽 한 시에 와 줄 수 있는 사람은 아무도 없었다. 그래서 그냥 슈퍼가서 손톱가는 것을 사와서 집에 있는 클립과 함께 진지하게 화장실 문따기를 시작했다. 우리집 화장실은 안쪽으로 열리는 타입이라 턱이 있어서 난이도가 좀 있었다. 손톱 가는 것과 클립 펼친 것과 제본 표지였던 플라스틱 접은 것으로 사투 끝에 문을 여는데에 성공했다. 문을 열고 원인을 확인해보니, 보통은 화장실 문은 잠그고서 안에서 문고리를 돌리면 같이 열리는데, 이 문은 안에서 문고리를 돌리면 열리기는 하는데 잠금은 안 풀리는 것이다. 그래서 닫힌 뒤에 밖에서는 열리지 않는 문제가 발생한다. 앞으로 손님이 올 때는 이점을 꼭 당부를 드려야겠다. 진짜 식겁했다. 아무튼 문을 따고 나서 이쪽으로 전직을 해야하는 걸까나 라는 그런 생각을 했다. ㅋㅋㅋ