brunch

You can make anything
by writing

C.S.Lewis

by Master Seo Sep 09. 2022

17탄-6. 클라우드 기반의 현대적 애플리케이션

클라우드 기반의 현대적 애플리케이션을 위한 운영 최적화 전략


<1> 모놀리식 애플리케이션

<2> 마이크로 서비스

<3> 민첩성을 위한 조직 개편

<4> 서비스가 많은 조각으로 나누면 운영이 아주 힘들지 않나요?

<5> 서버리스는 운영의 부담을 감소시킨다.

<6> 마이크로 서비스 모니터링

<7> 마이크로 서비스 개발과 배포




<1> 모놀리식 애플리케이션


모놀리식 애플리케이션이란 , 다수의 기능을 가진 단일 애플리케이션이다.


1

문제점?

개발 속도가 느리다.

수평 확장이 어렵다.

전체 서비스를 내려야 하는 경우가 많다.

여러 개의 팀에서 관리


2

장점?

배포 쉽다.



<2> 마이크로 서비스


애플리케이션 하나에 기능 하나이다.

변경 진행 시 기능 단위로 개별 변경

단일팀에서 관리하여 집중과 소유



<3> 민첩성을 위한 조직 개편


1

모놀리닉 애플리케이션 + 개발팀들


2

마이크로 서비스  +  2 피자팀

완전한 소유권

완전한 책임

DEVOPS 

혁신에 집중


3

대규모 배포 - 지속적인 배포가 이루어지고 있다.



<4> 서비스가 많은 조각으로 나누면 운영이 아주 힘들지 않나요?


각 팀은 일부 기능만 관리한다.

운영은 간단해짐.



<5> 서버리스는 운영의 부담을 감소시킨다.


인프라 준비 관리 필요  없음

이용한 만큼 지불

자동 스케일링

고가용성



<6> 마이크로 서비스 모니터링


1

필요한 것?

애플리케이션 코드

모니터링  SDK

라우팅

디스커버리 기능

배포 로직


2

애플리케이션 코드와 다른 기능을 분리하자.

모니터링  SDK , 라우팅 , 디스커버리 기능 , 배포 로직과 분리하자.


3

관측성(Observability)을 확보하는 것이 목표이다.

로그

지표

추적


4

관측성(Observability) 도구?

Cloudwatch logs

Cloudwatch metrics

AWS X-Ray



<7> 마이크로 서비스 개발과 배포


1

Amazon의 DEVOPS 운영은 어떻게?


민첩성을 위한 조직 개편 (마이크로 서비스, 2 피자팀)

최대한 자동화 추구

툴들의 표준화 추진

거버넌스와 템플릿

Infra  as code


2

CI/CD를 위한 개발 툴?


소스 - CodeCommit  

빌드 - CodeBuild

테스트 - CodeBuild+  서드파트

배포 - CodeDeploy


3

Cloudformation을   S3  버킷에 올려 자동화함.


4

AWS CDK?

클라우드 인프라를 재사용 가능한 컴포넌트로 모델링 가능


5

서버리스와 컨테이너 애플리케이션을 위한 개발 도구?

AWS Serverless Application Mode (AWS SAM)

Containers Constructs for CDK

CDK for Kubernetes (CDK8 s)


6

참고자료

https://cdkworkshop.com/

https://github.com/aws/aws-cdk

https://github.com/aws/serverless-application-model

https://cdk8s.io/

https://aws.amazon.com/ko/devops/




다음은

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




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


감사합니다.


매거진의 이전글 17탄-5.현대적 애플리케이션을 위한 컴퓨팅 인프라
브런치는 최신 브라우저에 최적화 되어있습니다. IE chrome safari