SRE를 위한 시스템 설계와 구축 - 구글이 공개하는 SRE 모범 사례와 설계, 구현, 운영 노하우
헤더 애드킨스 외 지음, 장현희 옮김 / 한빛미디어 / 2022년 1월
평점 :
장바구니담기


SRE는 구글에서 비롯되었다. 대규모 서비스를 하는 회사 특성상 안정성이 매우 중요한데, 이 부분을 체계적으로 발전시키면서 나온 부산물이 이제는 업계의 표준 용어같이 쓰이는 상황이다. IT 인프라가 국가의 중요한 부분이 되면서(최근 러시아의 우크라이나 침략을 보면 정말 극명하게 드러난다) 서비스 안정성과 관련된 법안도 생길 정도이니 말이 필요없다.

Microservice 역시 말이 필요없는 표준 용어나 마찬가지이다. 많은 개발자들이 MSA 하고 싶다고 이야기하지만, 사실 규모 면에서 필요한지도 생각해야 하고, 그냥 여러 개의 서비스로 나누면 microservice라고 착각/오해하는 사람들도 있어서 monolithic으로 하면 괜찮았을 걸 굳이 나눠서 문제가 생기는 경우도 있다. 당연히 “R”eliability가 저하된다.

이 책은 java로 microservice를 할 때 안정성을 확보하고 복원력을 높이기 위해 필요한 거의 모든 것을 다룬다. java를 다루던 회사를 떠나면서 java는 손 놓은지 오래되어서 이제는 예전 방식 코드만 기억이 나기도 하고, 또 오래된 언어 특성상 boilerplate code가 많아 java를 좋아하지 않긴 하지만, 이런 책에서 보여주는 다양하고 강력한 생태계를 보면 가끔 jvm 세상으로 돌아가고 싶어지곤 한다. spring을 다루는 개발자라면 정말 좋은 예제 코드를 얻을 수 있어서 100% 이 책을 활용할 수 있겠지만, 나 같이 java와 무관한 사람이라도 이 책이 설명하는 기본 개념들, metric부터 observability, CI/CD, traffice 관리까지 다양한 설명을 읽는 것만으로도 큰 도움이 될 거라고 확신한다.

넷플릭스같은 회사도 Guava의 dependency 때문에 사이트가 마비되는 경우가 있다는 걸 보면, 우리의 코드베이스에 숨어있는 다양한 (잠재적인) 문제를 찾아내고 방지하는 일이 얼마나 어려운지 알수 있다. 이 책을 읽으면 미처 생각지 못한 문제점을 찾고 방어하는 작업이 얼마나 어려운지 알고, 최소한 ‘시작'이라도 할 수 있다.

  • 한빛 미디어 “나는 리뷰어다” 활동을 위해서 책을 제공받아 작성한 서평입니다.



댓글(0) 먼댓글(0) 좋아요(0)
좋아요
공유하기 북마크하기찜하기 thankstoThanksTo
 
 
 
쿠브플로 운영 가이드 - 온프레미스 배포와 클라우드 운영
조시 패터슨.마이클 카체넬렌보겐.오스틴 해리스 지음, 김소형 옮김 / 한빛미디어 / 2022년 1월
평점 :
장바구니담기


쿠브플로를 쓰기위해선 쿠버네티스를 알아야하고, 그러기 위해서는 왜 쿠버네티스가 인기를 얻는지 약간 배경지식이 필요하다. 이 책을 선택하는 사람이라면 대부분 알고 있겠지만 간단히 정리해보면, 2010년대 vision 기술의 발전을 필두로, ML/DL의 부흥기가 찾아왔고, 이번에야말로 실용적으로 쓰일 수 있겠다는 기대감과 함께(특히 알파고 같은 이벤트가 합쳐지면서) 분야에 관계없이 많은 기업들이 이 시장에 참여했고, 관련 기술을 가진 사람들은 황금기를 맞았다. 그러나 기대와는 달리 AI 프로젝트는 시장에서 성공을 하는 경우는 드물었고 — AI는 아직 좌충우돌 단계…90%가 POC에서 끝나 — hype cycle의 3단계(환멸)에 진입하거나 AI의 겨울이 다시 온다는 성급한 이야기까지 나왔다.

대부분의 프로젝트가 POC에서 끝난 이유는 AI 전문가들은 AI의 전문가이지 서비스와 무관하거나 관심이 적었던 이유가 크다. 실제 서비스를 하기 위해서는 모델 성능을 계속 업데이트도 해줘야 하지만, 서비스 자체를 위한 별도의 구현도 필요하며 지속적인 운영 유지보수도 필요한데, 서비스를 구현하는 software enginner와 모델을 담당하는 AI engineer간에 같이 일해본 경험이 적다 보니, 어떤 architecture에서 어떤 flow로 일을 해야 원활한 서비스가 가능할지(테스트 환경에선 잘 동작하지만, 프로덕션에 가면 문제를 일으키는) 어긋나는 경우가 많기 때문이다.

구글은 이런 현실을 타개하기 위해 2015년에 MLOps란 개념을 선보였고, 다양한 구성요소가 인프라 수준에서 문제없이 유기적으로 잘 돌아가도록 container orchestration system이 필요했는데, 여기서 개발자들의 선택을 받은게 kubernetese였다. kubeflow는 이런 kubernetes의 ML stack을 더 쉽고, 빠르게 확장할 수 있도록 github에서 시작한 opensource project이다.

이 책은 이런 kubeflow를 이해하기 위해 여러가지 그림을 통해 개념적인 이해를 돕고, AWS, GCP, Azure와 같은 public cloud뿐만 아니라 onpremise에서 kubeflow를 설치할 수 있게 안내를 해준다. 각각 하나의 장을 할당해서 설명하기 때문에 설명도 자세하고 따라하기 좀 더 편하다(그러나 여전히 쉽지는 않다. kubernetese 자체도 워낙 복잡하기 때문에). 1~3장은 기본적인 이해를 위한 장, 4~7장이 방금 이야기한 설치 관련, 8장은 MLOps에 대한 설명으로 보면 된다. 다만 kubernetese가 그렇듯 워낙 활발하게 개발하는 프로젝트라 변화가 심한데, 예를 들어 8장에서 이야기하는 KFServing도 이미 KServe로 이름이 바뀌는 등 자체도 어려운데 변화가 많아 더 어려운게 이 분야의 단점이다(kubeflow homepage도 아직 업데이트 안 된 데가 있다).

하지만 이 책만큼 kubeflow에 대해 자세히 설명하는 책도 보기는 쉽지 않다. 일부 업데이트가 필요한 부분은 있겠지만, MLOps를 실천하려는 개발자나 조직은 필수로 구비해야 할 도서이다.

  • 한빛 미디어 “나는 리뷰어다” 활동을 위해서 책을 제공받아 작성한 서평입니다.



댓글(0) 먼댓글(0) 좋아요(1)
좋아요
공유하기 북마크하기찜하기 thankstoThanksTo
 
 
 
개발자로 살아남기 - 한글과컴퓨터, 블리자드, 넥슨, 삼성전자, 몰로코 출신 개발자의 30년 커리어패스 인사이트 (패스트캠퍼스 The Red 콜라보), 2022 세종도서 학술부문 선정작 살아남기
박종천 지음 / 골든래빗(주) / 2022년 1월
평점 :
장바구니담기


정리를 잘해서 prolog만 읽어도 이 책의 주제를 바로 이해할 수 있다. 30년의 커리어 패스를 쌓기 위해 단계별로 나아가기 위한 정보를 알려주는 게 이 책의 목적이다.

대부분의 junior 개발자들은 평생 개발을 하는 걸 원하는 경우가 많고, 또 좋은 code를 작성하는 게 개발의 대부분이라고 생각하는 경우가 많다(최소한 예전에는 그랬다). 하지만 실제 업무를 하다 보면 우리가 흔히 soft skill이라 부르는 여러 가지 code 이외의 능력도 업무에 큰 영향을 주며(대표적인 게 communication), 또 사람의 앞 일은 알 수 없기에 자의건 타의건 lead를 하고 management를 할 수도 있다. 저자는 크게 엔지니어링, 매니지먼트, 비즈니스 역량이라는 3가지 대주제로 9가지 기술을 익혀서 대략 10년 단위로 큰 역할 변화를 하며 30년의 커리어 패스를 만들어 가기를 제안한다.

Part 1, 2, 3는 위의 각 역량을 자세히 설명하고, Part 4는 이런 많은 기술을 익히기 위해 기본적으로 필요한 시간 관리 방법을 보여주고, 마지막으로 자신의 커리어를 이야기하는 걸로 마무리한다.

며칠 전 넥슨에서 국내 게임 업계 최초의 정년 퇴임자가 나와서 많은 인터뷰 기사들이 나왔다. 게임 업계 “최초”의 정년 퇴임자라는 말에서 알 수 있지만, 사실 게임 업계뿐만 아니라 IT 업계에서 정년 퇴임자를 보는 건 매우 드문 일이다. 그래서 요즘에는 많이 나아졌으나 10년 전만 해도 40만 되면 개발자는 뭘 해야 하나 고민하는 글/이야기들이 항상 개발자들 사이에서는 반복되는 주제 중 하나였다. 많은 뛰어난 앞서가는 분들이 어떻게 하면 그런 상황을 이겨낼 수 있는지 알려줬었고 그중 한 명이 이 책의 저자 박종천님이다. 이미 오래전부터 이 주제로 강연을 했었고, 드디어 작년 12월에 내용을 정리해서 책으로 나왔다. 이런 유명한 사람의 커리어 패스를 따라가는 건 평범한 개발자들에겐 쉬운 일이 아니다. 업무나 생활의 자세뿐만 아니라 능력까지 많은 부분이 어렵다. 하지만 이렇게 선구적으로 길을 알려주는 사람이 있으면 참고를 할 수 있다. role model이 가까이에 있는 거도 좋지만, 이렇게 자세히 알려주는 책을 써주면 많은 개발자들에게 큰 도움이 될 게 분명하다. 커리어를 고민하는 경력 개발자에게도, 이제 막 시작하는 신입 개발자들에게도 모두 도움이 되는 매우 좋은 책이다.

p.s. 워낙 예전부터 유명한 강연이라 검색하면 여기저기 공개된 강연들이 많이 있다.

p.s. 저자에게 좋은 책을 써서 잘 읽었다고 감사의 메일을 보냈다. 바쁜 분이라 읽었는지는 모르겠지만…


댓글(0) 먼댓글(0) 좋아요(0)
좋아요
공유하기 북마크하기찜하기 thankstoThanksTo
 
 
 
데이터 스토리 - 데이터를 설득력 있는 이야기로 바꾸는 방법
낸시 두아르테 지음, 권혜정 옮김, 윤영진 감수 / 한빛미디어 / 2021년 7월
평점 :
절판



제목만 보고 섣부르게 데이터 과학에 대한 이야기를 예상했지만, 책을 펼치니 예상과 다른 내용이 나왔다. 책을 읽고 소제목을 보니 정말 적절한 요약이었다. 대상 독자는 데이터 관련 업무를 하는 사람이라기보다는 보통의 학생, 직장인들이라면 다 해당한다. 한 마디로 의사 전달을 하기 위한 글을 작성할 때 데이터를 이용해 더 그럴듯한 이야기를 작성하라는 내용이다. 최근 이직을 하고 회사에서 종종 강조하는 점 중 하나가 명확한 요구 사항을 작성하고 전달하라는 건데, 이 부분과도 통하는 점이 많아 반가웠다. 책을 읽으면서 맘에 드는 부분 몇 가지를 모아봤다.

  • 대략적인 문제에 대해 정확한 답을 내기보다, 올바른 문제에 대해 대략적인 답을 내는 것이 바람직하다.
  • 데이터 관점의 좋은 예시: 사용자 편의성과 배송 정책을 개선하면 매출을 40% 늘릴 수 있다.
    데이터 관점의 나쁜 예시: 웹사이트의 장바구니 기능을 개선해야 한다.
  • 제안하는 행동을 구체적으로 명시하자. 그래야 다른 사람들도 무엇을 해야 할지 분명하게 이해할 수 있다.
  • 다른 사람의 생각을 바꾸는 것은 쉽지 않다. 게다가 행동까지 유도하기는 더 쉽지 않다.
  • 경영자에게(그리고 누구에게나) 논리 구조가 없는 제안을 하면 안 된다. 명확한 논리가 없으면 다른 사람이 제안 내용을 쉽게 이해할 수 없다. 그러면 주장 자체가 힘을 잃고 만다.

즉 설득력이 높은 글을 작성하기 위해서는 근거 없이 느낌으로 이야기하지 말고, 데이터를 바탕으로 객관적인, 누구나 공감할 수 있는 이유를 제시하라는 점이다. 하지만 이 책의 장점은 여기에 그치지 않고, 여러 가지 기술을 제시해 더 다양한 상황에서도 주장을 뒷받침할 방법을 알려준다는 점이다. 예를 들어 presentation을 할 때는 감정을 실어 사용할 감탄사를 알려준다거나, 전체 내용을 구성하기 위해 악당과 주인공 역할을 데이터에 맡겨 스토리를 짜는 등 실제로 사용하기 좋은 기법을 알 수 있다.

책 자체도 저자가 세부적인 사항까지 많이 신경을 쓴 것으로 보인다. 우선 책 디자인이 조금 달라서 책 판형도 일반적이지 않고(리디북스로 보는데, 두 페이지는 한 화면에 안 들어오고 한 페이지로 봐도 처음 보는 비율이라 읽으면서 약간 어색하기도 하고 신선하기도 했다), 각 페이지도 여러 가지 그래픽이나 다양한 문단 구성을 통해 내용을 효과적으로 전달하려고 의도적으로 구성했다는 생각이 든다.

어떤 업무에 종사하건 자신의 의도를 효과적으로 전달하는 기술은 일을 하는데 굉장히 중요한 역할을 한다. 예상과는 다른 내용이었지만, 두고두고 읽을 책이란 생각이 든다.

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


댓글(0) 먼댓글(0) 좋아요(0)
좋아요
공유하기 북마크하기찜하기 thankstoThanksTo
 
 
 
처음 배우는 애저 - Azure Portal로 배우는 애저 도입부터 활용까지
김도균 지음 / 한빛미디어 / 2020년 12월
평점 :
구판절판


회사를 옮겼는데, 스타트업이 보통 그렇듯 회사 시스템은 전부 AWS에서 돌아간다. 그동안 회사의 자체 서버를 쓰거나 클라우드를 써도 회사에서 구축한 private cloud만 써온터라 tutorial 첫 페이지 정도만 해본 AWS는 아직 낯설기도 하고 많은 부분이 black box이다. public cloud를 쓰는 문제점 중 하나는 특정 벤더에 lock in이 된다는 점이다. 현실적인 이유로 AWS를 떠날 수는 없겠지만, 최소한 대안에 대해서는 알아야 하기에 한 번 책을 읽어보게 되었다.
Azure에 대해 검색해보면 2위 사업자라 그런지, 대부분은 AWS와 match시킬 수 있게 수많은 서비스들이 이미 준비되어있고 특히 시스템을 윈도에서 구축한 회사라면 Azure를 쓰는 게 더 강점이 있다고 한다(예를 들어 active directory와의 결합 등). 다만 이 장점이 이 책을 읽으면서 반대로 단점이 되기도 하는데, 실습을 해보려고 했더니 두 가지 문제점이 있었다. 한 가지는 윈도 머신이 있어야 한다는 점으로, 최근 많은 개발자들이 그렇듯 나도 맥밖에 없다. 다른 한 가지는 신용 카드를 등록해야 한다는 점인데, 예전에 AWS 한 번 따라 해 보다가 생겼던 개인적인 문제 때문에 카드를 등록하기가 꺼려졌고, 결국 이 두 가지 문제로 인해 실습을 온전히 따라 하지는 못했다. 그래서 아쉽게도 책을 훑어 읽기만 하며 Azure가 어떤지 살펴봤는데, 실습을 안해서 겉핥기 식이 돼버리긴 했지만, 이 책/Azure의 장점을 확실히 알 수 있었는데, UI를 통한 설정을 잘 지원하고, 이 과정을 책에서 수많은 screenshot을 통해 설명한다는 점이다(한 chapter마다 최소 수십 장의 screenshot을 통해 정말 단계 단계 보여준다는 느낌이 든다. 책의 페이지수를 처음 볼 땐 부담스러울 수도 있으나 이런 수많은 screenshot 덕분에 실제로 읽는데 큰 부담은 없다). 아직 AWS를 잘 몰라서 아주 조금, 간단한 부분만 해봤는데 AWS의 설정 UI는 책에서 본 Azure UI에 비해 좀 예전 방식의 UI란 느낌이 들었고, 크게 편리하단 생각이 들지 않았다.
AWS가 1위 사업자이고, 오랜 기간 서비스를 제공해왔기 때문에 스타트업이 AWS를 우선 고려하는 건 현실적으로 당연한 일이다. 시장의 인력 상황도 AWS에서 경력을 쌓은 경우가 거의 대부분이다. 하지만 1년에 몇 번씩 사고가 발생하고, 돈을 내고 사용하는 고객들이 이런 사고에도 제대로 된 보상을 받지 못하는 경우를 보게 되면, 어느 정도 성장을 한 업체는 AWS만을 고집하는 건 생각해볼 만한 일이고, 첫 번째로 고려할 대안은 Azure가 된다. 책의 제목처럼 처음 배우는 사람들에게 좋은 안내서가 될 이 책이 많은 도움을 줄 것이다.

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

Ref.

역시 문서는 MS처럼 잘 만드는 데가 없다


댓글(0) 먼댓글(0) 좋아요(0)
좋아요
공유하기 북마크하기찜하기 thankstoThanksTo