Cloud Native/배경지식

클라우드 네이티브 소개

numb 2020. 9. 15. 16:27

1. 클라우드 네이티브 소개

    1.1 분산 시스템

        1.1.1 분산 시스템의 오류

        1.1.2 CAP 이론

    1.2 12요소 앱

    1.3 가용성과 서비스 수준 협약서

 

2. 기본 지식

    2.1 컨테이너

        2.1.1 컨테이너 격리 수준

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

        2.1.3 쿠버네티스 개요

        2.1.4 쿠버네티스와 컨테이너

    2.2 서버리스 컴퓨팅

    2.3 함수

    2.4 VM부터 클라우드 네이티브까지

        2.4.1 리프트 앤 시프트

        2.4.2 애플리케이션 현대화

        2.4.3 애플리케이션 최적화

    2.5 마이크로 서비스

        2.4.1 마이크로서비스 아키텍처 장점

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

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

    3.1 클라우드 네이티브 애플리케이션 기초

        3.1.1 운영 효율성

        3.1.2 보안

        3.1.3 신뢰성과 가용성

        3.1.4 확장성과 비용

    3.2 클라우드 네이티브 vs 전통적인 아키텍처

    3.3 함수 vs 서비스

        3.3.1 함수 시나리오

        3.3.2 함수 이용시 고려할 점

        3.3.3 함수와 서비스의 조합

    3.4 API 설계와 버저닝

        3.4.1 API 하위와 상위 호환성

        3.4.2 시맨틱 버저닝

    3.5 서비스 커뮤니케이션

        3.5.1 프로토콜

            - gRPC : docs.microsoft.com/ko-kr/aspnet/core/grpc/comparison?view=aspnetcore-3.1

 

        3.5.2 메시징 프로토콜

            - MQTT : 간단하고 안정적인 메시징

            - AMQP : MQTT 보다 상호운용성과 기능성이 필요한 경우

        3.5.3 직렬화 고려 사항

            - protobuf : jeong-pro.tistory.com/190

        3.5.4 멱등성

            - 멱등성(idempotency) : 여러번 작업을 실행해도 결과의 변화가 없는 것

            - 고유ID : 멱등성 보장을 위해 메시지가 이미 처리된 적이 있는지 확인하는 중복제거(de-duping) 방법

        3.5.5 요청과 응답

        3.5.6 발행자와 구독자

            - pub/sub 아키텍처 : 클라우드 네이티브 애플리케이션에서 비동기 통신을 촉진하기 위한 가장 일반적인 패턴

        3.5.7 Pub 및 Sub과 요청 및 응답 중 선택하기

            - 레디스(Redis)

            - 래빗MQ(RabbitMQ)

            - 카프카

        3.5.8 동기 vs 비동기

            - 서비스와 함수는 반드시 내부 프로세스 통신(interprocess communication(IPC)) 매커니즘을 이용해 상호작용해야 한다.

            - 이벤트와 큐 기반의 비동기 메시징이 IPC용으로 가장 인기있는 패턴

    3.6 게이트웨이

        3.6.1 라우팅

        3.6.2 애그리게이션

        3.6.3 오프로딩

        3.6.4 게이트웨이 구현

            - 직접 구현 : Nginx, HAProxy, Envoy(사절이라는 뜻)

            - 관리형 라우터 : Azure Application Gateway, Azure Frontdoor, Amazon API Gateway

    3.7 이그레스(입구라는 뜻)

            - 클라이언트 - (HTTP) - [인그레스 - (HTTP) - 프록시 - (gRPC) - 서비스/파트]

            - [] : 애플리케이션 범위

            - () : 프로토콜

    3.8 서비스 메시

            - 사이드카 패턴

            - 이스티오

            - 링커드2

            - 메트릭 : 프로메테우스

        3.8.1 트래픽 관리

        3..8.2 장애 처리

        3.8.3 보안

        3.8.4 트레이싱 모니터링

    3.9 아키텍처 예제

        - 람다 아키텍쳐(lambda architecture)

        - 콜드 경로(cold path)