brunch

You can make anything
by writing

C.S.Lewis

by Master Seo Apr 15. 2024

(책후기) 클라우드 네이티브 스프링 인 액션

2024년 4월 출판

클라우드에서 서비스를 운영할 수 있게 해주는 책이다.

개발자를 위한 책이다.

Jpub 출판사에서 책을  제공받아 작성된 서평입니다.




이 책으로 배우는 것

클라우드의 개념과 서비스들을 모두 배울 수 있다. 한 번씩 모두 다 짚어준다.

스프링 부트와 도커, 쿠버네티스로 애플리케이션을 구축할 수 있게 해 준다.

클라우드, 개발의 스프링부트, 인프라의 쿠버네티스를 모두 설명해 주는 책이다.

중급 서적이라 여러 번 봐야 하는 책이다.

책이 두껍다. 그만큼 배우는 것이 많다.

클라우드를 이 책으로 기본 개념을 배우기 좋다.  

클라우드 세부 기술은 이 책의 기본 개념을 기반으로 배우면 누락 없이 배울 수 있다.

이 책으로 개발자의 기술력이 한 단계 올라갈 수 있다고 판단하며 추천한다.




<1> 클라우드 네이티브에 대해 알게 된다.

<2> 클라우드 네이티브 패턴 및 기술을 배운다.

<3> 클라우드 네이티브 개발 시작하는 법을 배운다.

<4> 이외 배우는 것들



<1> 클라우드 네이티브에 대해 알게 된다.


1

클라우드 네이티브란?

클라우드 기술의 활용을 목표로 애플리케이션을 개발하기 위한 접근 방식이다.



2

클라우드 네이티브 구성 요소?

클라우드 - 클라우드 기반 환경, 서비스들 IaaS , CaaS , PaaS , Faas, Saas

애플리케이션 속성 - 확장성, 느슨한 결합, 회복성, 유지보수성, 관측 가능성.

실행 - 자동화, 지속적 배포, 데브 옵스

구성 - 컨테이너, 오케스트레이션, 서버리스

목표 - 속도, 복원력, 확장성, 비용

아키텍처 - 애플리케이션 서비스, 데이터 베이스 서비스, 상호작용



3

세 가지 요점?

플랫폼 - 애플리케이션이 클라우드 같은 동적 분산 환경을 기반으로 하는 플랫폼에서 실행된다.

속성 - 애플리케이션이 확장 가능하고 느슨한 결함, 복원력이 뛰어나다, 관리가 용이하다, 관찬 가능하도록 설계된다.

실행 - 자동화를 통해 빈번하고 예측 가능한 방식으로 시스템을 변경한다. 자동화, 지속적 전달, 데브 옵스등이 있다.



4

클라우드 컴퓨팅 모델과 서비스 모델?

클라우드 환경, 클라우드 컴퓨팅, 클라우드 서비스 (IaaS, CaaS , PaaS , FaaS, Saas )에 대해 알게 된다.

private cloud , public cloud

hybrid cloud - 온프라미스와 클라우드를 같이 사용하는 경우.



5

관찰 가능성?

옵저버 빌리티 (observability)

// 옵서버 빌리티는 단순 인프라 모니터링이 아닌 종합적인 모니터링이다.

모니터링 - 애플리케이션 전반 상태 정보 확인. 프로메테우스 사용.

경고/시각화 - 그라파나를 사용.

인프라 추적하는 분산 시스템  - 오픈텔레메트리와 그라파나 템포 사용하여 트레이스를 수집하고 시각화.

로드 집계/분석 - 애플리케이션 디버깅, 플루언트 비트, 로키, 그라파나 사용하여 로그를 시각화하고 로깅함.



6

관리 용이성 (manageability)?

자동화 (automation)

코드형 인프라스트럭처

앤서블 (Ansible)



7

지속적 전달?

지속적 통합

지속적 전달



8

데브옵스?

데브옵스는 도구가 아니다.

데브옵스는 자동화가 아니다. 자동화가 필수이긴 하다.

아이디어에서 생산에 이르기까지 하나의 작업이다.



9

클라우드가 최선의 선택인가?

속도, 복원력, 확장성, 비용이 목표이다.

속도

소프트웨어를 신속하게 출시하는 것이다.

아이디어를 제품 단계까지 최대한 빨리 구현해서 시장에 출시 시간을 줄이는 것은 경쟁에서 우위를 차지하기 위해 중요하다.



10

클라우드 네이티브 구성?


구성?

컨테이너

오케스트레이션

서버리스



11

오케스트레이션?

단일 서버에서 컨테이너 생성하고 관리하는 것은 간단하다.

그러나 수십, 수백 개의 컨테이너를 관리하려면 도 다른 무언가가 필요하다.

조정(오케스트레이션, orchestrating)이 필요하다.

오케스트레이션 툴로  쿠버네티스 , 도커 스웜, 아파치 메소스가 있다.

여기서는 쿠버네티스를 사용한다.



12

서버리스?

개발자는 비즈니스 로직을 구현하는 데만 집중할 수 있다.



13

아키텍처?

모놀리스

마이크로 서비스




14

애플리케이션을 위한 서비스 기반 아키텍처

애플리케이션 서비스 - 상태를 갖지 않으면 모든 종류의 논리를 구현한다.

데이터 베이스 서비스 - 상태를 저장한다. 도즌 종류의 상태를 저장한다.




<2> 클라우드 네이티브 패턴 및 기술을 배운다.


1

애플리케이션을 위한 개발 원리의 이해?



2

개발 원칙?

배포하기에 적합

확장을 염두에 둔 설계

다양한 시스템에 적용 가능

지속적 배포 및 민첩성을 지원



3

실습

소스 코드를 통해 사용하는 법을 배운다.

이 책에서는 자바 17일 기반으로 한다.

책에 하나씩 설명이 나온다.

따라 하면서 스프링부트를 클라우드에서 사용하는 법을 익히자.

https://github.com/ThomasVitale/cloud-native-spring-in-action




<3> 클라우드 네이티브 개발 시작하는 법을 배운다.



부트스트래핑

임베디드 서버와 톰캣을 사용한 작업

스프링 MVC를 사용한 RESTful 애플리케이션 구축

스프링 테스트를 사용한 RESTFul 애플리케이션 테스트

깃허브 액션을 사용한 빌드 및 테스트 자동화




<4> 이외 배우는 것들



외부화 설정 관리 - 속성과 프로파일을 사용한 스프링 설정, 스프링 부트로 외부 설정 적용

스프링 데이터터에 대한 데이터 지속성 JDBC

스프링 부트 애플리케이션을 컨테이너 이미지로 패키지

도커에 쿠버네티스로의 이동

리액터와 스프링의 비동기 및 비차단 아키텍처

쿠버네티스 인그레스를 통한 외부 액세스 관리

스프링 클라우드 함수를 통한 함수

오픈 ID 커넥트, JWT 및 키클록을 통한 인증.

스프링 보안 및 OAuth2를 통한 API 보호

스프링 부트, 로키 및 플루언트 비트를 사용한 로깅

쿠버네티스에서 애플리케이션 설정하기

배포파이프라인

스프링 네이티브 및 그랄 VM을 사용한 네이티브 이미지

부록 - 미니큐브 설치법 등




클라우드, 쿠버네티스 사용하며 개발자 알아야 할 개발 요소가 모두 있다.

중급 책으로 여러분이 다른 사람들과 차별화할 수 있는 좋은 기회이다.



같이 보면 좋을 책

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



감사합니다.


브런치는 최신 브라우저에 최적화 되어있습니다. IE chrome safari