brunch

You can make anything
by writing

C.S.Lewis

by Master Seo Mar 14. 2022

(책) 클라우드 네이티브


클라우드 네이티브에 대해 가장 이해하기 쉽게 설명된 책

클라우드 기반에서 개발,운영을 하려면 반드시 읽어보길 추천한다!!

클라우드에서 애플리케이션을 개발하기 위한 모범 사례 12요소가 설명된다.

클라우드 네이티브  모범 사례가 가장 도움이 된다!

클라우드 네이티브  모범 사례 하나 만으로도 이 책을 살만하다.

초급+ 중급

이론서

2020년 6월



<1> 클라우드 네이티브 소개

<2> 기본 지식

<3> 클라우드 네이티브 애플리케이션 설계

<4> 데이터 다루기

<5> 데브 옵스

<6> 모범 사례




<1> 클라우드 네이티브 소개



분산 시스템?

컴퓨팅 파워를 장비 여러대로 분산하는 것은 안정성, 신뢰성, 정제 성을 위한 훌륭한 방법이다.

값싼 하드웨어를 사용하고, 소프트웨어 기반 설루션으로 고가용성과 신뢰성과 같은 문제들을 해결하고 있다.



클라우드에서 애플리케이션을 개발하기 위한 모범 사례 12요소?


1

코드 베이스 : 버전 관리되는 하나의 코드 베이스와 다양한 베포.

애플리케이션당 하나의 코드 베이스만 있어야 한다.


2

종속성: 명시적으로 선언되고 분리된 종속성.


3

설정: 환경에 저장된 설정

설정은 코드와 엄격하게 분리해야 합니다.


4

:

:

:

12




<2> 기본 지식


1

컨테이너

컨테이너 = 애플리케이션 현대화


2

컨테이너 오케스트레이션?

쿠버 네티스 개요


3

서버리스 컴퓨팅?

함수


4

마이크로 서비스 장점?

민첩성 - 빠르고 안정적인 배포가 모놀리식 애플리케이션에서는 쉽지 않다.

지속적인 혁신 - 기업이 살아남으려면 더 빨리 움직여야 한다.

혁신적인 설계 - 모놀리식 애플리케이션은 새로운 기술이나 기법을 받아들이기 어렵다.

소규모, 집중하는 팀 - 대규모 엔지니어링 팀의 집중력과 생산성을 유지하는 건 어려운 일이다.

장애 격리 - 모놀리식 애플리케이션은 하나의 라이브러리나 모듈이 전체 애플리케이션에 문제를 발생시킬 수 있다.

스케일 기능과 자원 사용량 개선 - 스케일업과 스케일 아웃 가능

관찰 성 개선 - 모놀리식 애플리케이션은  각 구성요소를 개별적으로 측정하거나 관찰하기 어렵다.


5

마이크로 서비스 아키텍처의 과제?

복잡성 - 분산 시스템은 본질적으로 복잡하다. 애플리케이션을 개별 서비스로 나눠서 서비스 간 네트워크 호출이 필요. 지연. 전송 실패 발생

데이터 무결성과 일관성 - 여러 시스템에 있는 다양한 장소에 존재. 여러 시스템에 걸쳐 있어서 트랜잭션을 수행하는 것이 어렵다.

성능 - 네트워크  요청과 데이터 직렬화는 부하를 발생시킨다. 네트워크 연결수 증가한다.

개발과 테스팅- 현재 도구와 방법이 마이크로 서비스 아키텍처에 작동하지 않는다. CI/CD 파이프라인이 필요하다.

버저닝과 통합

모니터링과 로깅

서비스 의존성 관리

가용성





<3> 클라우드 네이티브 애플리케이션 설계


기초?


1

운영 효율성?

모든 것을 자동화 하기

모든 것을 모니터링 하기

모든 것을 문서화 하기

변화는 점진적으로 하기

장애에 대비하기


2

보안?

소스코드

컨테이너 이미지

컨테이너 저장소

파드

클러스터와 오 케스트 레이터


3

신뢰성과 가용성


4

확장성과 비용




함수와 서비스?

함수 이용시 고려할 점?


1

모놀리스에서 마이크로 서비스로 전환 시 과제 -작은 서비스로 나눠지므로 네트워크 통신 복잡도처럼 고려할 사항이 늘어남


2

함수의 제한된 수명


3

특수 하드웨어 사용 불가


4

함수는 상태가 없고 네트워크로 직접 접근 불가


5

로컬 개발과 디버깅 못함


6

경제성 - 비싸지는 경우도 있다.



<4> 데이터 다루기


<5> 데브 옵스




<6> 모범 사례


1

클라우드 네이티브로 이동?

모놀리스를 적절하게 분리

단순한 서비스를 먼저 분리

작은 규모에서 운영 배우기

손상 방지 레이어 패턴 사용하기

데이터 마이그레이션 전력 수립


2

회복력 확인?


3

보안 강화?


4

데이터 다루기?


5

성능과 확장성?


6

운용?


7

로깅, 모니터링, 알림?


8

서비스 커뮤니케이션?


9

컨테이너?



https://brunch.co.kr/@topasvga/2205



감사합니다.



매거진의 이전글 (책) 클라우드 네이티브 아키텍처
브런치는 최신 브라우저에 최적화 되어있습니다. IE chrome safari