한빛미디어

시스템/네트워크

SRE를 위한 시스템 설계와 구축

구글이 공개하는 SRE 모범 사례와 설계, 구현, 운영 노하우

한빛미디어

번역서

판매중

SRE를 위한 시스템 설계와 구축
좋아요: 0

합계 : 36,000

도서판매처

  • 구글 엔지니어가 알려주는 안전하고 신뢰성 높은 시스템의 설계부터 테스팅, 복구, 위기 관리까지

     

    시스템이 근본적으로 안전하지 않다면 신뢰할 수 있을까? 보안과 신뢰성은 제품 품질, 성능 및 가용성에 중요한 역할을 하기 때문에 확장되는 시스템의 설계와 운영에 매우 중요하다. 이 책은 안전하고 확장이 가능하며 신뢰할 수 있는 시스템을 설계하는 데 도움을 주는 구글의 구체적인 모범 사례를 자세히 공유한다. 또한, 보안과 안정성에 특화된 실무자의 시스템 설계, 구현 및 유지 보수에 대한 통찰력도 함께 제공한다. 구글러들의 경험으로 얻은 통찰과 SRE 지침을 익혀, 안전하고 신뢰성이 높은 시스템을 구축하길 바란다.

     

     

    상세이미지_SRE 위한 시스템 설계와 구축_940px.jpg

  • [저자] 헤더 애드킨스

    18년간 구글에 몸담고 있는 베테랑이자 구글 보안 팀의 초기 멤버다. 정보 보안 분야의 시니어 디렉터를 맡고 있는 헤더는 구글의 네트워크, 시스템, 애플리케이션의 안전성 및 보안을 유지하는 책임을 담당하는 글로벌 팀을 구축했다. 시스템과 네트워크 관리에 현실적인 보안을 중점적으로 폭넓은 경험을 갖추고 있으며 세계에서 가장 거대한 인프라스트럭처를 구축하고 안전하게 유지하는 업무를 담당했다. 이제는 구글의 컴퓨팅 인프라스트럭처의 방어 전략에 대부분의 시간을 할애하고 있으며 업계와 더불어 가장 어려운 보안 과제에 도전하고 있다.

    [저자] 벳시 바이어

    구글 뉴욕 오피스에 근무하며 사이트 신뢰성 엔지니어링에 특화된 테크니컬 라이터(technical writer) 이다. 벳시는 『사이트 신뢰성 엔지니어링』(제이펍, 2018 ) 및 『The Site Reliability Workbook』(O’Reilly, 2018)의 공동 저자이기도 하다. 현재 업무를 담당하기 전에는 국제 외교와 영문학을 전공했으며 스탠퍼드(Stanford)와 툴레인(Tulane) 대학교에서 학위를 마쳤다.

    [저자] 폴 블랭킨십

    구글의 보안 및 개인 정보 엔지니어링 그룹에서 테크니컬 라이팅 팀을 관리하고 있으며 구글의 내부 보안 및 개인정보 보호 정책의 개발에 참여했다. 테크니컬 라이터로서의 업무 외에도 샌프란시스코 베이 지역에서 뮤지션으로 활발히 활동 중이다.

    [저자] 피오트르 레반도프스키

    시니어 스태프 사이트 신뢰성 엔지니어(Senior Staff Site Reliability Engineer)이며 지난 9년간 구글 인프라스트럭처의 보안을 개선하는데 힘썼다. 피오트르는 보안 분야의 실질적인 기술 리드로서 SRE와 보안 조직이 서로 조화롭게 협업하도록 만드는 책임을 담당하고 있다. 그 전에는 구글의 핵심 보안 인프라스트럭처의 안정성을 담당하는 팀을 이끌었다. 구글에 합류하기 전에는 스타트업을 창업했고 CERT Polska에서 근무했으며 폴란드의 바르샤바 기술대학교에서 컴퓨터 과학을 전공했다.

    [저자] 애나 오프레아

    보안, SRE 및 구글의 기술 인프라스트럭처를 위한 계획과 전략의 수립을 담당하고 있다. 소프트웨어 개발자, 기술 컨설턴트 및 네트워크 관리자 등을 경험하면서 자연스럽게 현재 업무를 맡게 되었다. 독일, 프랑스, 루마니아에서 공부와 경력을 쌓은 덕분에 어떤 난관이 생겨도 여러 가지 다른 문화적 접근 방식으로 해결한다.

    [저자] 애덤 스터블필드

    구글의 저명한(distinguished) 엔지니어이자 지역 보안 기술 리더이다. 지난 8년간 구글의 핵심 보안 인프라스트럭처의 상당 부분을 구축하는 데 힘을 보탰다. 애덤은 존스 홉킨스 대학교에서 컴퓨터 과학 분야 박사 학위를 취득했다.

    [역자] 장현희

    캐나다 켈로나 소재의 QHR Technologies에서 시니어 소프트웨어 엔지니어로 근무 중이다. 21년째 개발자의 길을 걷고 있으며 총 25종의 개발 관련서를 집필하거나 번역했다. 국내 개발자들에게 조금이라도 도움이 되는 번역서를 만들기 위해 최선을 다하고 있으며, 책이라는 매체를 통해 멀리서나마 국내 개발자들과의 소통을 지속하고자 노력하고 있다. 최근에는 『사이트 신뢰성 엔지니어링』(제이펍, 2018), 『클라우드 네이티브 자바』(책만, 2018), 『러스트 프로그래밍 공식 가이드(제이펍, 2019), 『엔터프라이즈 데이터 플랫폼 구축』(책만, 2020) 등을 번역했다.

  • [Part I 들어가며]

     

    CHAPTER 1 보안과 신뢰성 사이의 교집합

    1.1 비밀번호와 전기드릴

    1.2 신뢰성과 보안의 비교: 설계 고려사항

    1.3 기밀성, 무결성, 가용성

    1.4 신뢰성과 보안: 공통점

    1.5 마치며

     

    CHAPTER 2 적을 알자

    2.1 공격자의 동기

    2.2 공격자 프로필

    2.3 공격의 방식

    2.4 위험 평가 시 고려사항

    2.5 마치며

     

     

    [Part II 시스템 설계]

     

    CHAPTER 3 사례 연구: 안전한 프록시

    3.1 프로덕션 환경의 안전한 프록시

    3.2 구글 도구 프록시

    3.3 마치며

     

    CHAPTER 4 설계 절충

    4.1 설계 목표와 요구사항

    4.2 요구사항의 균형잡기

    4.3 갈등의 관리와 목표의 조정

    4.4 초기의 속도와 지속적인 속도의 비교

    4.5 마치며


    CHAPTER 5 최소 권한 설계

    5.1 개념과 용어

    5.2 위험에 따라 접근 분류하기

    5.3 권장 사례

    5.4 실제 사례: 설정 분산

    5.5 인증과 승인을 위한 정책 프레임워크

    5.6 더 알아보기: 고급 제어

    5.7 절충과 긴장

    5.8 마치며

     

    CHAPTER 6 이해 가능성을 위한 설계

    6.1 이해 가능성이 중요한 이유

    6.2 이해가 가능한 시스템의 설계

    6.3 시스템 아키텍처

    6.4 시스템 설계

    6.5 마치며

     

    CHAPTER 7 범위의 변화를 위한 설계

    7.1 보안과 관련된 변화의 종류

    7.2 변화의 설계

    7.3 보다 쉬운 변화를 위한 아키텍처 결정사항

    7.4 변화의 종류: 서로 다른 속도, 서로 다른 일정

    7.5 분란: 계획이 변경될 때

    7.6 예시: 범위의 증가 - 하트블리드

    7.7 마치며

     

    CHAPTER 8 회복성을 위한 설계

    8.1 회복성을 위한 설계 원리

    8.2 심층방어

    8.3 성능 저하의 제어

    8.4 영향 반경의 제어

    8.5 더 알아보기: 장애 도메인과 이중화

    8.6 더 알아보기: 지속적 검증

    8.7 실용적인 조언: 어떻게 시작할 것인가

    8.8 마치며

     

    CHAPTER 9 복구를 위한 설계

    9.1 어떤 상태로부터 복구하는가?

    9.2 복구를 위한 설계 원리

    9.3 긴급 접근

    9.4 예상치 못한 장점

    9.5 마치며

     

    CHAPTER 10 서비스 거부 공격의 완화

    10.1 공격과 방어를 위한 전략

    10.2 방어를 위한 설계

    10.3 공격의 완화

    10.4 자체 유발 공격에 대응하기

    10.5 마치며


     

    [Part 3 시스템의 구현]

     

    CHAPTER 11 사례 연구: 공개적으로 신뢰할 수 있는 CA의 설계와 구현 그리고 유지 보수

    11.1 공개적으로 신뢰할 수 있는 인증 기관에 대한 배경

    11.2 공개적으로 신뢰할 수 있는 CA가 필요했던 이유

    11.3 자체 구축과 솔루션 구입 방식의 비교

    11.4 설계, 구현 및 운영에 대한 고려

    11.5 마치며

     

    CHAPTER 12 코드 작성

    12.1 보안과 신뢰성을 강제하는 프레임워크

    12.2 보편적인 보안 취약점

    12.3 프레임워크의 평가와 구현

    12.4 간결함은 안전하며 신뢰할 수 있는 코드로 이어진다

    12.5 기본적인 보안과 신뢰성

    12.6 마치며

     

    CHAPTER 13 코트 테스트

    13.1 단위 테스트

    13.2 통합 테스트

    13.3 더 알아보기: 동적 프로그램 분석

    13.4 더 알아보기: 퍼즈 테스트

    13.5 더 알아보기: 정적 프로그램 분석

    13.6 마치며

     

    CHAPTER 14 코드 배포

    14.1 개념과 용어

    14.2 위협 모델

    14.3 권장 사례

    14.4 위협 모델에 적용하기

    14.5 더 알아보기: 고급 완화 전략

    14.6 현실적인 조언

    14.7 다시 한번 위협 모델에 적용하기

    14.8 마치며

     

    CHAPTER 15 시스템 조사

    15.1 디버깅부터 조사까지

    15.2 적절하고 유용한 로그의 수집

    15.3 견고하고 안전한 디버깅 접근

    15.4 마치며

     

     

    [Part 4 시스템 유지 보수]

     

    CHAPTER 16 재해 계획

    16.1 ‘재해’의 정의

    16.2 동적 재해 대응 전략

    16.3 재해 위험 분석

    16.4 사고 대응 팀의 셋업

    16.5 장애가 발생하기 전에 시스템과 사람에 대한 준비사항

    16.6 더 알아보기: 시스템과 대응 계획의 테스트

    16.7 구글의 사례

    16.8 마치며

     

    CHAPTER 17 위기 관리

    17.1 위기일까 아닐까?

    17.2 사고 조치 지휘하기

    17.3 사고 대응의 지속적 제어

    17.4 의사소통

    17.5 종합

    17.6 마치며

     

    CHAPTER 18 복구와 사후처리

    18.1 복구 전략

    18.2 복구 타임라인

    18.3 복구 계획

    18.4 복구 시작

    18.5 복구 이후

    18.6 예시

    18.7 마치며

     

     

    [Part 5 조직과 문화]

     

    CHAPTER 19 사례 연구: 크롬 보안 팀

    19.1 배경과 팀의 발전

    19.2 보안은 팀의 책임이다

    19.3 사용자가 안전하게 웹을 탐색하도록 돕는다

    19.4 속도가 중요하다

    19.5 심층방어를 위한 설계

    19.6 투명성의 유지와 커뮤니티와의 교류

    19.7 마치며

     

    CHAPTER 20 역할과 책임의 이해

    20.1 보안과 신뢰성에 대한 책임을 지는 사람은 누구인가?

    20.2 보안을 조직에 통합하기

    20.3 마치며

     

    CHAPTER 21 보안과 신뢰성 문화 구축

    21.1 건전한 보안과 신뢰성 문화의 정의

    21.2 좋은 사례는 문화를 바꾼다

    21.3 경영진 설득하기

    21.4 마치며

  • 구글 SRE 엔지니어들이 알려주는 시스템 설계와 구축 노하우

     

    구글이 지금까지 수많은 서비스를 개발하고 운영해 오면서 터득한 보안과 신뢰성 관련 경험과 지식을 모두 이 책에 담겨있다. 보안과 신뢰성은 서로 상충하는 부분도 있지만 궁극적으로는 안전하며 안심하고 사용할 수 있는 소프트웨어와 서비스를 제공하기 위해서는 반드시 고려해야 할 필수적인 요소다. 이 책의 저자들은 왜 보안과 신뢰성이 중요한지, 보안과 신뢰성에 어떤 형태로 구멍이 생기고 이를 어떻게 예방하거나 대처할지 실용적이면서도 현실적인 조언을 제공한다. 이 책에 담긴 저자 6명의 조언을 참고해 안전하고 신뢰성 있는 시스템을 설계하여 모든 산업에서 인정받는 엔지니어로 거듭나길 바란다.

     

     

    주요 내용

    • 설계 전략
    • 코딩, 테스트 및 디버깅을 위한 권장 사항
    • 사고 대비, 대응 및 복구하기 위한 전략
    • 조직 전체가 서로 효과적으로 협업할 수 있도록 지원하는 문화적 모범 사례

     

    추천사

     

    인터넷 서비스를 운영하거나 보안을 담당하고 있다면 구글을 비롯한 다른 회사들이 그 일을 쉽게 하고 있다고 생각해서는 안 된다. 이 책의 저자들과 오랜 시간 일하면서, 그들이 사용자 데이터를 보호하기 위해 극단적인 조치를 하는 것을 볼 때마다 매번 놀라웠다. 유사한 분야에 종사하거나, 서비스와 데이터를 보호하기 위해, 현대의 대규모 서비스에서는 어떤 작업을 하는지 궁금하다면 이 책을 읽어보길 바란다. 이 책은 실용적인 조언과 절충에 대한 가장 솔직한 논의를 담은 책일 것이다.




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


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



    • 








      한빛미디어에서 실시한 ‘한빛미디어 도서 서평단 나는 리뷰어다 2022’의 리뷰다.


       



      오늘 소개할 책은 SRE를 위한 시스템 설계와 구축(Building Secure & Reliable Systems)이다














      SRE를 위한 시스템 설계와 구축
       




      SRE를 위한 시스템 설계와 구축

      저자
      헤더 애드킨스, 벳시 바이어, 폴 블랭킨십, 피오트르 레반도프스키, 애나 오프레아
      출판
      한빛미디어
      발매
      2022.01.03.




       











       



      시스템 설계에 대한 책은 정말 귀하다



      구전에 구전에 구전에 내려오는 족보가 존재하지 않는 이상



      천년내공을 가진 사수를 만나는 행운은 모두가 가지지 않았기 때문이다


       


       



      KakaoTalk_20220304_162635678.jpg


       













      이 책이 여러분에게 도움이 될수도 안될수도



      필요할 수도 필요 없을수도 있다.



      모든 시스템은 환경이 다르고



      이세상에는 같은 서비스는 존재하지 않기 때문이다.



      거기다가 구글에서 나온 책이기 때문에



      평범한 규모가 아니라 어마어마한 규모와 서비스를 지탱하게 해주는 내용이 많기 때문에



      우리회사는 시기 상조일수도



      우리회사에는 맞지 않을수도 있다


       



      그러함에도 불구하고



      이책은



      개발자에게도,



      운영자에게도,



      유지보수자에게도,



      프로젝트 관리자에게도,



      대표에게도



      보안과 신뢰성은 모두의 책임이므로



      누구나 읽을 수 있고



      부분 부분 참고가 될만한 책이다.


       


       



      KakaoTalk_20220304_162637989.jpg


       


       













      대규모 서비스를 경험해보지 않은 우리들에게는 참고서가 될수도 있다



      이 책에서 제시하는 중요한 품질 특성은



      보안성



      신뢰성



      두가지 품질 특성을 기반으로



      시스템 설계



      구현



      유지 보수



      에 대한 보안과 신뢰성에 전문성을 가진



      선구자들의 통찰을 제공하는 것이 바로 이책의 목표이다


       


       



      KakaoTalk_20220304_162640882.jpg


       


       













      첫번째. 시스템 설계



      보안과 신뢰성을 위한 소프트웨어 설계 단계


       



      1) 최소 권한 설계 (사용자 작업 수행 및 시스템 최소한 접근 권한)


       



      2) 이해 가능성을 위한 설계



      - 범위가 좁고 일관적 타입 인터페이스



      - 일관적/신중한 인증, 승인, 계정 전략



      - 구분없이 활성 엔티티에 신원 명확하게 할당하기



      - 보안 불변성 캡슐화


       



      3) 범위 변화를 위한 설계



      - 보안 관련 변경사항 구분(변경 영향 부분 최소화)



      - 롤아웃, 컨테이너화, 마이크로서비스 설계 전략 채택



      - 외부접촉부분에 계층형 접근법 도입



      - 변화 중점 설계



      - 지속적 문서화


       



      4) 회복성을 위한 설계 (심층방어 도입 검토)


       



      5) 복구를 위한 설계



      - 최신 버전 롤백



      - 시스템 상태 모니터링



      - 정책/절차, 중앙형 신뢰 원본과 로컬 기능


       



      6) 서비스 거부 공격 완화(Dos, Denial of service)



      - DoS 방어 장치의 경제적 제약 필요(모든 공격 흡수하는 것은 가장 비효율적인 방법)



      - DoS 완화 시스템 도입(절감 비용과 조직적 간소화 집중)



      - 웹 애플리케이션 방화벽(WAF) 이용


       


       



      KakaoTalk_20220304_162642745.jpg


       


       












       



      두번째. 시스템 구현



      소프트웨어 개발 단계 보안과 신뢰성 통합 방법



      안전하고 신뢰할 수 있는 코드를 설계하고 구현, 테스팅하기 위한 원리



      - 프레임워크 사용을 통한 개발



      - 테스팅(단위, 통합 테스팅, 퍼즈 테스팅(Fuzz testing))



      - 정적분석도구 활용



      - 코드리뷰(검토)



      - 자동화도입(빌드,테스트, 배포)


       


       



      KakaoTalk_20220304_162644528.jpg


       


       












       



      세번째. 시스템 유지보수



      복구를 계획할 때 고려해야 할 요소



      - 공격자 반응



      - 조치 담당/역할



      - 사용자 대응



      - 복구절차


       


       



      KakaoTalk_20220304_162649121.jpg


       


       


       












       



      네번째. 조직과 문화



      어떻게 보면 조직과 문화가 가장 중요한 부분이 아닐까 생각이 든다



      조직과 문화는 주춧돌 역할이다.



      누구 한명만으로는 보안과 신뢰성을 서비스 안에 녹여낼수는 없다


       



      보안과 신뢰성 문화를 갖추기 위한 활동은



      - 동료검토 (권한 접근 변경, 코드 변경, 설정 변경)



      - 의식문화 확산 (대화형 발표, 게임, 참고문서, 인식 개선 캠페인, 적시 알림)



      - 긍정의 문화 (위험 평가/측정을 통한 의도적 위험 감수)



      - 필연성의 문화 (조직에서 발생가능한 모든 장애 연구(모의훈련)



      - 지속가능성의 문화 (장애, 보안 사고, 기타 긴급상황 처리 매뉴얼 작성)



      - 좋은 사례 만들기


       


       



      KakaoTalk_20220304_162650391.jpg


       


       













      이상은



      한빛미디어에서 실시한 ‘한빛미디어 도서 서평단 나는 리뷰어다 2022’의 리뷰입니다.



      감사합니다.~^^


       


       



      KakaoTalk_20220304_162652019.jpg


       


       












       


       



      #한빛미디어, #SRE를 위한 시스템 설계와 구축, #서평이벤트








      


    • 시스템의 강건함을 보증하는 지표는 여럿 존재하지만, 그중 두 개를 꼽으라면 단연 보안성과 신뢰성이다. 보안성이 결여된 시스템은 결코 안전한 시스템일 수 없으며 신뢰성에 문제가 있는 서비스는 사용자의 외면을 받기 마련이다. 결국 보안성과 신뢰성을 바탕으로 한 시스템과 서비스를 제공하기 위해 부단히 노력해야하는 수 밖에 없다. 보안성과 신뢰성이라는 속성이 공히 온전히 동작할 때만 강건한 시스템을 유지할 수 있는 것이다. 


       



      SRE(Site Reliiability Engineering)라는 단어는 IT 업계에 종사하는 이들에게도 결코 흔하지 않은 용어이다. 이 용어는 최초에 구글에서 고안되었으며, 실제 구글에서는 SRE를 바탕으로 시스템을 운용하고 있고 이러한 추세는 전 세계적으로 전파되고 있는 상황이다. Devops의 실체가 모호한 추상적인 개념이라면, SRE는 Devops라는 이념이 제시하는 실천적인 방향을 제시하는 하나의 엔지니어링 프랙티스로 묘사되고 있는 실정이다. 하지만 용어의 정의가 무엇이 되었든, 중요한 것은 SRE가 지향하는 목표는 '강건한 시스템을 설계하고 그 바탕위에 구축된 시스템을 운용하며 유지될 수 있도록 노력하는 것'에 있다고 생각한다. 오늘은 SRE의 실천 이념을 바탕으로 세상에 그 모습을 드러낸 'SRE를 위한 시스템 설계와 구축'이라는 도서에 대해 얘기를 나누고자 한다. 


       


       




       


       


       




       



      이 책은 실제 구글에서 활동한 전문가들에 의해 출판되었고, 그들의 생생한 경험에 입각한 내용이 도서 전반에 녹아 있기 때문에 독자들로 하여금 SRE와 관련된 서술에 대해 한층 신뢰성을 높이고 있다고 해도 과언이 아니다. 


       



      책의 도입부는 보안성과 신뢰성이 시스템에 어떠한 영향을 미치는가에 대해 운을 떼며 서막을 알린다. 이윽고 시스템 설계와 관련된 중요하면서도 결코 간과할 수 없는 사상과 엔지니어링 프랙티스에 대해 서술을 이어 나간다. 이를테면 최소 권한의 원칙과 이해 가능성, 범위의 변화, 회복성, 복구와 관련 된 다양한 저자들의 생각과 실제 경험에서 빚어진 실증 사례가 언급되며 보안성과 신뢰성을 기반으로 한 설계의 중요성을 역설한다. 







      시스템 설계 이후의 시스템 구현, 시스템 유지 보수에 이르는 일련의 시스템 생애주기에 대한 실천적이고 유용한 다양한 팁이 여과 없이 제공되며 책의 후반부에 이르러서는 조직과 문화에 대한 주제로 이야기는 마무리 된다. 결국 보안성과 신뢰성을 기반으로한 시스템 구현에 있어, 그 중심에 있는 사람과 이를 둘러싼 조직, 조직의 담론을 형성하는 문화의 중요성은 시스템이 아닌 사람에게 초점이 맞춰지며 담대한 여정이 종지부를 찍게 된다. 


       



      다시 한번 이 글의 처음으로 돌아가, 시스템의 강건함을 보장하기 위해서는 보안성과 신뢰성이 무엇보다 중요함에 대해 강조하고자 한다. 결함 없는 완전한 시스템은 이 세상에 존재하지 않기에, 제대로 굴러 가는 온전한 시스템을 설계하고 운영하며 유지하기 위해서는 보안성과 신뢰성을 기반으로 한 엔지니어링 프랙티스가 중요함을 절실히 깨닫게 해 주는 계기가 되었다. SRE의 정수를 온전히 맛볼 수 없지만, 강건한 시스템을 구현하는데에 관심이 있는 독자라면 이 책과 그 여정을 시작하길 바란다. 


       



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


       


    • 시스템 설계의 기본이 되는 신뢰성을 기반으로 어떻게 구글이 운영되는지 그 노하우를 담고 있다. 보안에 대해 지식이 좀 짧지만 SRE라는 단어를 만든 것이 구글이라는 것은 알고 있다. 


       



      저자 목록을 쭉 훑어보는데 엔지니어링뿐 아니라 테크니컬 라이터들도 다수 참여했다. 이 분야가 그만큼 여러 분야에 미치는 영향력이 커졌고 또 그렇기 때문에 보안을 넘어서 소프트웨어 개발에도 넓게 영역을 차지한다는 것을 새삼 느낄 수 있다. 그래서 그런지 책이 무지 두껍다. 저자도 이를 알아서 친절하게 구성을 설명하며 어떻게 읽어야 할 지 가이드를 내려준다. 



      1-2장 부터 읽고 흥미로운 분야 우선으로 읽되, 구글과 동일한 조직환경이 아닐 수 있으므로 감안해서 내용을 읽으라고 한다. 어떻게 보면 회사라는 것은 이래서 흥미롭다. 각 회사마다 동일 산업에 속하더라도 사용하는 평균 데이터 크기나 처리하는 데이터의 성질, 비즈니스의 속성 등에 따라서 벌어지는 일들이 제각각이다. 어떤 곳은 아주 빨리 대용량의 데이터를 실시간으로 처리하는 게 중점인데 반해 어떤 곳은 속도가 그닥 중요하지 않고 천천히 쌓이는 데이터를 잘 다듬어서 분석에 용이하게 만드는 게 더 비중이 크기도 하다. 이 두가지 모두다 중요한 큰 회사들도 있다. 



      구글의 힘은 이렇게 이전에 존재하지 않았던 새로운 시도를 해서 그걸 개념화하고 일반화하는 데에 장점이 있다고 생각한다. 물론 이 1개의 차별화를 위해 수많은 아이디어 무덤이 생기기도 한단다. 



      나도 가끔 구글 서비스를 이용하면서 이거 안전한 거 맞아? 라는 생각이 들 때가 있다. 주로 크롬을 사용하면서 궁금한 점이 생긴다. 다행히 책의 5부. 조직과 문화 에서 '사례 연구: 크롬 보안 팀' 챕터에서 궁금한 점을 어느 정도 해소할 수 있었다. 크롬의 보안팀이 커지게 된 배경을 읽고 나니 결국 어느 정도 경험이 쌓이거나 코드를 만지고 서비스를 키워보면 보안은 수강 필수과목이 되는 것 같다. 혼자서 뭔가를 만들어 세상에 내놓았는데 만약 운좋게 사람들의 관심을 받게 된다면 그 관심의 일부는 악용되어 취약한 보안을 공격할 수도 있다. 구글은 결국 모든 엔지니어가 일상적으로 보안을 고려한 개발을 하게 되었다고 말한다. 굉장히 좋은 업무방식인 것 같다. 그리고 이런 구글의 보안팀 운영에 있어서 중요하게 작용한 게 '어떻게 조직을 구성할 것인가' 였다. 집중 분야를 책임질 리드를 먼저 정하고 그 뒤에 관리자를 선정했다고 하며 '리드'의 경우는 종합적으로 보안 이슈를 체크하고 팀에게 정보를 정리해주며 프로젝트 협업 등 스케줄 또한 검토하는 훌륭한 PM...이 되어야 함을 설명한다. 굉장히 빡시겠다... 어떤 의미로는 정말 훌륭한 오케스트라 음악을 연주할 수 있는 지휘자 혹은 예술가 같다고 생각한다.



      그리고 책을 읽으면서 이게 쿡북처럼 기술을 나열한 뒤 잘 연습하게 도와주기보다는 그냥 뭔가 경험담? 체험담처럼 쉽게 써있어서 술술 읽혔고 의외로 흥미로운 부분이 많았다. 



      그리고 맨 첫장부터 시작하는 구글의 보안 에피소드. 로드 밸런싱과 로드 셰딩이라는 신뢰성 측면과 시스템 보안을 위해 설계한 복잡한 과정이 합쳐져서 우여곡절 끝에 사태를 수습하게 된다. 이처럼 신뢰성과 보안은 중요한 두 축이지만 결이 조금은 다르다. 책은 이를 비교하면서 각각을 설계할 때 어떤 요소가 중요한지 설명한다. 



      그리고 2장에선 보안의 주적이 누군지를 설명한다. 



      1. 취미로 즐기는 사람



      2. 취약점 연구원



      3. 정부와 법 집행 기관



      4. 운동가



      5. 범죄자



      6. 자동화와 인공지능



      7. 내부자



      이후 챕터들은 이런 공격자에게 비효율적이고 비경제적인 공격을 하도록 하여 포기하도록 유도하는 내용들이다. 구글에서 일단 일어난 일을 바탕으로 설명하기 때문에 참고할 때 도움이 되고 일을 수습하고 해결하는 과정에서 어떤 교훈을 얻었는지도 상세하게 설명해준다. 구글 내부에서 어떻게 신뢰성과 보안을 고려한 시스템 설계를 하는지 자세히 알 수 있고 동시에 어떤 상황이 공격에 취약한지도 학습할 수 있어서 유익했다.



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

    • 프로그램의 신뢰성과 보안은 배포한 이후에 고려하면 비용이 엄청나게 많이 든다. 

      이 책은 시스템의 설계단계에서 부터 구현 단계, 테스트 단계, 배포 단계, 유지보수, 복구와 사후처리까지 고려해야 될 모든 부분을 담고 있다. 


      그것도 아주 자세히~~ 


      그리고 각 단계별로 구글의 사례를 인용하여 문제 발생 부터 해결법까지 나와 있어서 흥미롭다. 


      신뢰성과 보안은 개발자 혼자서 해결할 수 있는 부분이 아니다. 


      비용도 많이 들기도 하지만, 이해 관계자들의 컨센서스가 선행 되어야 하기 때문이다. 


      그래서 이 책의 마지막 파트에 조직과 문화를 다룬 부분은 상당히 인상적이다. 200% 공감하기 때문이다.


       


      ​클라우드 기술이 보편화되고 RESTAPI로 서비스가 다양한 현재에서 SRE가 더욱 요구되는 시점이다.


      이 책은 소프트웨어를 개발(중급이상)하거나 시스템 설계(아키텍처), 유지 관리 분야, 그리고 개인적으로는 정책 결정권자를 포함하여 모두 읽어야 될 책이다.


      신뢰성과 보안을 위한 시스템 설계와 구축을 모두 커버하기 때문에 분량이 방대하고, 세부적으로 다루는 부분도 많아서 한번에 이해하기는 불가능하다는 판단이 든다.


      그래서 곁에 두고 2~3번 읽어야 하며, 주기적으로 읽어야 될 책이다. 잊어 버리지 않게~​


       


      이 책은 전문가를 위한 책이다.


      10년 이상 IT업계에 있으면서도 정말 쉽게 읽히지 않았다. 생소한 용어도 많았으며, 국내 환경과는 다른 부분도 있기 때문일 것이다.


      하지만 이 책을 읽고 난 후 개발에 대한 인사이트가 훨씬 넓어졌으며, 풍성해진 느낌이다.


      특히 프로젝트 수행중에 소홀히 하는 비기능 요구사항에 관심이 생기기 시작했다.


      다만, 숙제가 더 늘어난 것 같기도 하다.


       


       


       


       

    • ◎ 추천 포인트


      1. DevSecOps에 대해 알고 싶다면 추천


      2. 설계, 개발, 운영 전반에 대한 구글의 노하우


      3. 정보보안을 위한 다양한 사례


       


      개발만큼이나 보안이 중요한 시대가 되었다.


      빠른 시장진입을 위한 Agile과 DevOps는 이제 흔한 용어가 되었다.


      하지만 시장진입 만큼이나 중요한것은 서비스의 보안성이다.


      서비스를 개발할때 보안에 대한 고려는 이제 필수사항이 되었다.


      거의 대부분의 프로덕트는 인터넷을 통해 서비스 되는것을 기본으로 깔고 있다.


      인터넷에 공개했다는 것은 곧 악의적 공격의 표적이 되었다는것과 동일한 의미가 되었기 때문에 보안을 고려하여 개발하는 것이 점점 더 중요해지고 있다.


      더불어 품질, 성능, 안정성 및 가용성 등을 확보하기 위한 시스템의 설계와 운영부분에서도 정보보안은 매우 중요하다.


       


      이책은 보안적으로 안전한 서비스, 다시말해 “Secure and Reliable Systems” 을 만들기 위한 구글의 경험을 공유하고 있다.


      한마디로 표현하자면 SRE에 보안을 접목하는 것이 주요 내용이다.


      결국 신뢰성(Reliability)이란 보안(Secure)이 전제되어야 하는것이기 때문에, 기존 SRE에 보안개념이 필수적이다. 


      이를 구글은 어떻게 구현했는지 이 책을 통해 공유하고 있다.


       


      소개를 제외하고 네가지 파트로 나누어 져 있다.


      1. 디자인(설계): 최소 권한 설계, 회복성, 복구 등 안전한 설계 방법


      2. 구현: 코딩, 테스트, 배포 및 디버깅/조사


      3. 유지보수/운영: 재해복구(DRP), 사고대응(IRP)


      4. 조직/문화: 효과적인 협업을 위한 조직문화


       


      마지막 장이 이 책의 핵심이라고 생각한다.


      결국 조직문화가 바탕이 되어야 정보보안을 달성할 수 있다. 


      우리나라에서도 개인정보보호법, 정보통신망법 등에서 정보보안을 법으로 강제 하고있다.


      오픈이후에 컴플라이언스 이슈가 발견된다면 사업을 접어야 할수도 있다.


       


      우리와 다른 문화와 구글과의 비교에 좌절할수도 있겠지만, 보안 담당자라면 꼭 읽어보길 권한다.


    • 제목 그대로 SRE(사이트 신뢰성 엔지니어링)에 관한 책입니다.


       



      저는 이 책을 받기 전까지 SRE가 무엇인지 몰랐습니다. 


       



      이 책 덕분에 SRE에 대해서 알게 되었습니다.


       





       



      이 책을 통해서


       



      - 구글의 SRE 운영 노하우를 알 수 있습니다.


       



      - 시스템 설계를 위한 신뢰성, 사용성, 보안에 대한 여러 사례를 들을 배울 수 있습니다.


       



      - 소프트웨어 개발에서 보안과 신뢰성은 최우선으로 고려해야 될 요소이기에 이 책을 통해서


       



      보안과 신뢰성이 왜 중요하고 어떤 형태로 문제가 발생하거나 어떻게 예방할 수 있는지를 배울 수 있습니다.


       



      - 시스템을 안전하게 보호하는 기술, 실전 기법을 배울 수 있습니다.


       



      용어 설명도 굉장히 자세하게 나와있습니다.


       



      첫 장만 봐도 기밀성, 무결성, 가용성에 대해서 자세히 설명해 주고 있습니다.


       





       



      꼭 첫 장이 아니어도 단어와 기술에 대한 설명이 자세히 나와있습니다.


       



      최근에 JUnit을 활용한 TDD 방식에 관심이 생겼습니다.


       



      책에서도 단위 테스트, 통합 테스트, 퍼즈 테스트, 동적 프로그램 분석 등 여러 가지 방식에 대해서 알 수 있어서 좋았습니다.


       





       



      - 이 책을 읽으면서 가장 많이 했던 생각은 정말 이 책을 처음부터 끝까지 정독한다면 SRE을 활용한 소프트웨어 개발, 설계, 보안, 운영 등 개발 프로세스에 필요한 모든 것을 배울 수 있다고 느꼈습니다.


       





       



      - 다만 프로그래밍적인 지식이 한 개도 없다면 이 책을 읽기는 힘들 것 같다고 생각합니다. 


       



      이미 서비스를 개발해 보거나 진행 중인 분들이 노하우를 얻기에 좋은 책 같습니다.


       





       



      - 모든 지식을 다 가져가기보다는 목차를 보고 현재 필요한 것들을 빠르게 배워나가면 될 것 같습니다.

    • 일하다 보면 복잡한 스펙과 빡빡한 일정 때문에 보안, 가용성, 성능, 안정성 등에는 관심을 두지 못하고 개발만 하게 되는 경우가 있습니다. 그러다 보면 자연스럽게 여러 기술 부채를 지게 됩니다.

      이런 기술 부채는 단순히 코드의 개선점 수준이 아니라 장애 발생, 개인 정보 유출, 지나치게 많은 운영 비용 등 비즈니스에 위해를 가하는 치명적인 문제로 발현되기도 합니다.

      보안, 안정성 등의 주제는 개발을 한참 진행하고 나서 개선하기가 만만치 않습니다. 개발 초기부터 목표와 설계에 포함하고 개발 업무 프로세스 전반에 걸쳐 반드시 필요한 프로세스로 내재화할 필요가 있습니다.

      이 책은 개발자에게 이런 일들이 왜 중요한지에 대한 깊이 있는 통찰을 제공합니다. 서비스 설계 단계부터 개발, 배포, 운영, 장애 대응, 후속 조치와 이에 필요한 조직 문화에 이르기까지 우리가 실제로 고민하게 될 주제들을 폭넓게 이야기 하고있습니다.

      이 책을 읽고 한 단계 더 좋은 개발자로 성장하는데 필요한 고민들을 해볼 수 있으면 좋겠습니다.

    •   구글은 (모든 IT인들이 그렇겠지만) 특히나 서버개발자에게 가장 선망의 대상이 되는 회사 중 한 곳이다. 구글급 사이즈의 전 세계에서 들어오는 엄청난 트래픽을 문제없이 소화하는 능력은 아무데서나 얻을 수 있는 능력이 아니기 때문이다. 그렇다고 구글의 장애율이 0%는 아니지만 문제에 대한 예방과 복구 프로세스 등이 잘 정립되어 있다. 그런 구글에서 많은 개발자, SRE, 보안전문가 등이 모여서 집필한 이 책은 수십 년간의 구글의 사례와 노하우들이 녹아들어 있다. 제목은 SRE를 위한다고 쓰여있지만 그렇지 않다. SRE 뿐만 아니라 서버개발자, 더 나아가 프론트개발자, 데이터 분석가 등 모든 개발자들에게도 도움이 되는 보편적이고 공통적인 내용들도 많이 있다.


       


        허구한 날 비밀번호가 노출되었다고 연락이 오고 하루에도 몇 번씩 다운되는 서비스를 사용하고 싶은 사용자가 있을까? 사용자 입장에서도 안전하지 않고 신뢰성이 없는 서비스는 쓰고 싶지 않지만, 기업 입장에서도 이는 굉장한 영업 손실로 이어진다. 쉬운 예로 주말 저녁 피크타임에 배달앱이 몇 시간 동안 마비가 된다면 배달앱 업체뿐만 아니라 가게 사장님, 고객 들까지도 모두 손해를 보게 된다. 요새는 IT가 접목되지 않은 서비스가 사실상 없고 상당히 많은 부분들이 앱이나 웹 같은 서비스를 통해 이루어진다. 이런 상황이다 보니 서비스의 보안과 신뢰도는 더 이상 2순위가 아니게 되었다. 기능이 좋아 매우 많은 사용자를 끌어 모았다고 하더라도 보안 사고나 신뢰성 부분에 문제가 생긴다면 외면받는 것은 순간이다. SRE가 따로 없는 회사라 할지라도 SRE에 대한 투자와 강화는 항상 해야 하고 할 수밖에 없다.


       


        서버개발자로 일하면서 무심코 지나갔던 부분들도 깨닫게 되었다. 예를 들어 서비스 다운 같은 것에 대비해 신뢰성을 높이기 위해 이중화라던지 메시지 큐 도입 등을 하면 보안 위험도가 증가하고 (개인정보 저장같은), 그것에 대비해 보안 위험도를 낮추면 또 이번에는 신뢰성이 낮아지게 되는 케이스도 있다고 한다. 변화(보안이든 코드든 모든 것에 대응이 가능해 보인다)에 대한 내용도 나온다. "변화는 증분적이어야 하고, 문서화되어 있어야 하고, 테스트를 거쳐야 하고, 격리되어야 하고, 검증되어야 하고, 단계적이어야 한다" (p.181) 개발로 인한 코드 변화가 해당 원칙들을 지키고 있는지도 다시 한번 돌아보아야겠다.


       


        12장엔 코딩에 관한 보편적인 내용들도 나온다. 다중 중첩 방지, YAGNI 스멜 제거, 기술부채 해소, 리팩토링 등이 있다. 또한 기본적인 보안과 신뢰성을 지키기 위해 메모리 안전한 언어 사용을 권하고, 강력한 타입 및 정적 타입 검사 사용을 권하고 있다.


       


        14장 코드 배포에 대한 내용 중에 다음 내용들이 눈에 들어왔다.



      1. 코드 검토를 반드시 실행하자
      2. 자동화를 도입하자
      3. 사람이 아닌 결과물을 검증하자
      4. 설정을 코드처럼 관리하자

        4개 항목 어느 하나 소홀할 것이 없어 보인다. 코드 검토 (흔히들 코드 리뷰라고 부르는)를 코드의 퀄리티와 안정성을 보장해준다. 자동화는 사람의 실수를 방지해 준다. 결과물을 검증해야 배포자의 실수라던지 악의적인 사용자의 행위를 막을 수 있다. 쿠버네티스 같은 컨테이너 환경을 사용하면 설정을 코드로 이미 관리하고 있다고 한다.


       


       






       


       


        그리고 아래 그림처럼 각 단계를 우회할 수 없어야 한다고 했는데 우리 시스템이 이런가 반성하게 되는 계기도 되었다.


       


      <정말 우회할 수 없을까?>


       


       


        15장 시스템 조사에서는 디버깅에 대해 명언을 찾을 수 있었다.


      문제를 해결하고 수정하기 위해 마법을 불리 필요는 없다. 단지 느리지만 구조화된 조사 과정을 거치면 된다. (p. 420)

        자칫 지루하고 따분한 일이 될 수 있는 게 디버깅이지만 중요하고 가치 있는 일이다. 디버깅을 잘하는 왕도는 없으며 끈기와 노력이 중요한 것 같다.


       


        17장 사고 대응에 대한 내용에서는 아래의 도표가 눈에 들어왔다. 구글 같은 글로벌 서비스는 세계 각지에 직원들이 있고 사고를 24시간 계속해서 대응할 수 있다는 점이 놀라웠다.


       


      <24시간 사고 대응이 가능한 구글>


       


       


        책의 내용과 분량이 상당히 방대하고 다양하다. SRE뿐만 아니라 다른 개발자들도 읽어 보면 좋을 것 같다. 구글만큼 큰 서비스를 운영하고 있지 않더라도 분명 도움이 되는 내용이며, SRE가 따로 없는 우리 회사의 경우 내가 언제라도 SRE로서의 역할도 할 수 있게 관련 역량들을 계속 쌓아 나가고자 한다.

    • 이 책은 구글이 수많은 서비스를 개발하고 운영하면서 터득한 보안과 신뢰성 관련 경험 및 지식을 총망라한 책이다. 보안과 신뢰성이 왜 중요한지, 보안과 신뢰성에 어떤 형태로 구멍이 생길 수 있고 또 이를 예방하려면 어떻게 해야 하는지에 대해 실용적인 조언을 제공한다.


       


      보안과 신뢰성은 모든 정보 시스템에서 가장 중요하고 기본적인 속성이지만, 실제 사고가 발생한 이후에 고치려면 상당한 추가 비용이 든다는 공통점이 있다. 그러므로 이 책은 모든 사람이 개발을 시작하는 단계에서부터 보안과 신뢰성에 대한 부분들 고민해야 하며, 이러한 원리들을 시스템 수명 주기에 최대한 일찍 통합해야 한다고 강조한다.


       


      더불어 위와 같은 요구사항을 시스템 설계 단계에서 비용 효율적으로 구현하는 방법, 최소 권한 모델을 도입하여 알려지거나 알려지지 않은 사용자가 악의적 혹은 실수로 시스템과 데이터에 피해를 주는 상황을 보호하는 방법, 시스템 장애 발생 시 진행할 복구를 고려해 시스템을 설계하는 방법 등 시스템의 신뢰성과 보안을 향상시키는 데 도움이 되는 내용들이 상세히 담겨있다.


       


      다만 구글의 사례이므로 실제로 책을 읽는 독자들의 조직에는 적용하기 어려운 부분들이 있을 수도 있지만, 업계 최고 전문가들의 수십 년의 경험과 풍부한 지식을 한 권의 책을 통해 얻을 수 있는 기회이므로 각자의 상황에 따라 다양한 인사이트를 얻을 수 있으리라 기대한다.


       


       



       

    •  



      1220222.jpg


       


       



      보안은 사람이 많이 이용할수록 더 신경을 써야 합니다.







      과거에는 보안에 더 취약했었는데요.



      사람들은 보안의 필요성을 느끼고 보안의 중요성도 높아졌습니다.







      미국도 중요하게 생각하는지 페이스북(현 메타)은 개인 정보 유출로 5조 9000억 원의 벌금을 부과됐습니다.







      보안 문제의 벌금이 무시 못 할 금액이라면 보안을 더 신경 쓰는 것이 의미 없는 지출을 막을 수 있습니다.







      보안과 신뢰성에 대한 책을 소개해드리려 합니다.



      소개해 드릴 책은 ‘SRE를 위한 시스템 설계와 구축’인데요.



      SRE는 사이트 신뢰성 엔지니어링의 약어로 보안과 신뢰성에 초점을 맞춘 책입니다.







      이 책이 있다면 보안 사고가 날 수 있는 부분을 미리 고려할 수 있도록 도와줄 것입니다.







      어떻게 사이트의 신뢰성이 높아지도록 도와주는지 같이 살펴보겠습니다.







      2220222.jpg


       




       



      ◆ 시스템 관리



      시스템 관리 차원에서 디버깅과 조사가 이뤄져야 합니다.







      보안 조사는 경험이 풍부한 보안 전문가가 꼭 필요합니다.







      어떠한 형태로 공격이 들어오고 취약점이 있는지 파악해야 하기 때문입니다.







      안전을 고려하며 설계를 해야 합니다.







      공격을 판단하기 위해선 로그가 있어야 하는데요.



      설계상에 로그가 준비되어 있고 로그를 인덱싱해 조사할 수 있는 시스템이 필요합니다.







      시스템화 되어 있는 경우 로그를 통해 공격을 파악하고 방어를 할 수 있습니다.







      3220222.jpg


       




       



      ◆ 보안과 신뢰성



      보안과 신뢰성은 제품의 중요한 기능 중 하나입니다.







      고객은 보안과 신뢰성보다는 우선 좋아하는 기능 때문에 사용하는데요.



      제품이 안전할 것이라 생각하며 이용하는 것입니다.







      안 좋다는 소식을 들으면 사용하지 않으려 할 것입니다.







      보안사고의 경우 사고가 발생한 후에 고치려면 상당한 비용이 듭니다.







      그러므로 초반에 보안의 중요성을 인식하면서 필연적으로 다뤄야 합니다.







      또한 보안 지식에 대해 지속 가능한 훈련을 통해 보안을 중요하게 생각하는 문화를 구축할 수 있습니다.







      4220222.jpg






       



      끝으로 보안과 신뢰성은 소프트웨어 개발에서 매우 중요한데요.



      보안과 신뢰성에 문제가 생길 수 있는지 어떻게 예방하고 대처할지도 고려해야 합니다.







      회사의 규모가 다르더라도 도입 가능한 부분을 찾고 상황에 맞게 천천히 도입해보시길 바랍니다.







      보안이 중요하다고 생각하지만 보안에 신경 쓰고 개발하는 데는 시간이 걸립니다.







      우선 작동하도록 먼저 개발하려 하기 때문일 것입니다.







      출시에만 초점을 두면 사고 후에나 보안과 신뢰성을 생각하는 부분은 안타깝습니다.







      시스템을 안전하게 보호하는 기술에 관심 있는 분들에게 이 책을 추천합니다.


       



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

    • 구글이 겪었던 서비스 에러나 장애 등을 보안과 신뢰성 관점에서 SRE 시스템을 다루는 책입니다.


       


      다음 내용들을 막연하게 알고 있지만, 깊이 있게 이해하고 싶다면 책을 읽어보는 것을 추천합니다.




      (생각보다 코드는 많이 다루지 않으니, 코드로 보안 관련 설계에 대한 관련된 내용을 보고 싶은 분이라면 다른 책을 찾는 것이 좋습니다)


       


      1. 사용자별로 권한 분리하는 것이 보안과 신뢰성에 (관리자에게) 어떤 도움을 제공하는지?


       


      2. 조직 문화와 구성원이 보안과 신뢰성 이슈를 관리하는데 어떤 태도를 가져야하는지?


       


      3. 테스트 코드 구성 등을 통해 (유닛 테스트, 통합 테스트 등) 안전한 코드를 어떻게 구성하는지?


       


      등을 주로 볼 수 있을 것 같고, 재해 상황에서 서비스 복구 등에 대한 이슈도 자세히 다루고 있으니, 참고하면서 책을 읽어보면 좋을 것 입니다.






    • 이는 구글 엔지니어"들"이 쓴 SRE 책으로 정말 훌륭하고 아름답고 유려합니다!



      리뷰 링크 : https://blog.naver.com/jhc9639/222647341620





  • 내용이 없습니다.
  • 내용이 없습니다.
닫기

해당 상품을 장바구니에 담았습니다.
장바구니로 이동하시겠습니까?