On-line 과정
On-line 과정은 강사 참여 없이 MSASchool의 영상강의를 통해 Biz, Dev, Ops까지의 CNA 과정을 수강생이 독자적으로 선택해서 학습하는 Course로, 강의실에서 직접 결제를 진행하여 수강할 수 있습니다.
교육비 정산 담당 : 서원주(tjdnjswn@uengine.org)
비용 | 강의당 2만원 |
커리큘럼 소개
Biz
강의명 | 주요 학습내용 |
---|---|
[이벤트스토밍] 12번가 쇼핑몰 예제 | 쇼핑몰 예제 시나리오를 기반으로 도메인 이벤트를 도출한다. |
[이벤트스토밍] 구글 드라이브 예제 | 구글 드라이브(Google Drive)에 파일 업로드, 비디오 변환 등의 시나리오를 기반으로 디자인 레벨 수준까지의 이벤트스토밍 방법을 익힌다. |
[이벤트스토밍] Food Delivery 예제 | 배달의 민족(Food Delivery) 시나리오를 기반으로 프로세스 레벨 수준의 이벤트스토밍 방법을 익한다. |
Dev
강의명 | 주요 학습내용 |
---|---|
단위 마이크로 서비스의 실행 | 단위 마이크로 서비스를 실행하기 위하여 스프링부트를 컴파일하고 실행하는 방법을 실습한다. |
Req/Res 방식의 MSA 연동 | 모노리식 서비스에서 특정 부분을 마이크로 서비스로 떼어내고 Req/Res 방식으로 통신하는 방법을 학습한다. |
Req/Res 방식에서 장애전파 차단 - 서킷브레이커 | 서킷 브레이커를 통하여 장애 전파를 차단한다. |
Kafka 기본 명령어 | Kafka의 기본 명령어를 학습하고 테스트해본다. |
Pub/Sub 방식의 연동 | 마이크로 서비스간의 통신에서 이벤트 메세지를 Pub/Sub 하는 방법을 실습한다. |
Pub/Sub 방식의 연동 - Compensation & Correlation | 시나리오를 기반으로 Compensation과 Correlation 처리를 해본다. |
Kafka Scaling | 카프카 컨슈머 그룹의 인스턴스를 늘여 처리량을 늘리고 파티션을 추가하여 Scaling 한다. |
Kafka Retry & Dead Letter Queue | Consumer가 message를 처리하던 중 오류가 발생하면 해당 Message를 다시 Polling 처리한다. |
API Gateway | API Gateway를 사용하여 마이크로 서비스들의 엔드포인트 단일화를 실습한다. |
JWT Token 기반 인증 인가 | Spring Security와 Spring oauth2를 사용해 Resource Owner, Client, Authorization Server, Resource Server간의 인증/인가를 실습한다. |
JWT Token 기반 인증 인가 - Advanced | 마이크로서비스와 OAuth2 구성요소인 Authorization Server/ Client/ Resource Server를 활용해 Single Sign-On 구현 모형을 실습한다. |
Data Projection with Frontend and HATEOAS | Data Projection의 첫번째 방법인 UI에서 Data를 Aggregate하는 방법으로 기본 생성된 VueJS 기반 프론트엔드를 활용해본다. |
Data Projection with GraphQL | Data Projection의 두번째 방법으로 Backend에서 Data를 Projection하는 전용의 서버로 구현하는 BFF 패턴을 학습한다. |
Data Projection with CQRS | CQRS 를 기반하여 Data Projection 을 수행한다. |
Application Packaging with Container (Docker) | Docker Client를 사용하여, Static 컨텐츠를 활용한 샘플 이미지 생성 및 이미지 저장소(Docker Hub)에 푸시해본다. |
Contract Test (Consumer Driven Test) | 시나리오를 기반으로 CDC(Consumer Driven Contract) 계약을 체결해본다. |
Ops
강의명 | 주요 학습내용 |
---|---|
AWS Cloud Setup (EKS, ECR 설정) | 아마존의 쿠버네티스 서비스인 Elastic Kubernetes Service 와 Elastic Container Registry 를 기반한 애플리케이션 배포 실습 |
Kubernetes Basic Commands | Docker Hub에 저장된 이미지를 Public Cloud 에 배포하고, 웹 브라우저를 통해 서비스 확인하기 |
애플리케이션 패키징,도커라이징,클러스터 배포 | 소스코드를 패키징 하고 패키징된 파일을 도커리이징한 후 Docker Hub에 올라간 이미지를 클러스터에 배포 한다. |
12번가 마이크로서비스 라우터(Service) 생성 | Service 객체를 활용한 컨테이너 Expose 및 다박한 Service Type에 따른 Access Scope을 실습하고 그 동작 원리를 이해하고, 외부에서 마이크로서비스까지 요청이 전달되는 과정에서 Kube Proxy의 역할에 대해 학습한다. |
Pod Auto Scaling | 요청이 많이 들어올때 Auto Scale-Out 설정을 통하여 서비스를 동적으로 확장시키는 실습을 한다. |
파일시스템 (볼륨) 연결과 데이터베이스 설정 | 주문 애플리케이션에 데이터베이스를 외부에서 설정 연결하기 위하여 데이터베이스를 StatefulSet 으로 생성한후, 해당 연결의 설정을 (Secret/ConfigMap) 주입한다. |
셀프힐링 & 무정지 배포 실습 | 컨테이너의 상태를 관리하는 readinessProbe 설정을 하여 무정지 배포를 실습한다. |
Ingress 를 통한 진입점 통일 - Path-based routing | 쿠버네티스 인그레스를 이용해 보다 쿠버네티스와 통합된 방식으로 진입점을 관리해본다. |
Ingress - Virtual Host based | Vertual Host를 기반으로 인그레스를 활용해본다. |
[Service Mesh] Istio | 쿠버네티스의 기본 서비스 매시인 이스티오를 설치하고 기본 샘플을 실행해 보면서 확장된 서비스 안정성과 배포전략을 알아본다. |
[Service Mesh] Istio 를 통한 서비스 회복성 Part1 - 타임아웃/재시도 | 12번가 주문 마이크로서비스 앞단에 timeout 과 retry 를 설정하여, 주문관리 시스템의 장애없이 서비스가 안정되게 운영되는 시나리오를 적용해 본다. |
[Service Mesh] Istio 를 통한 서비스 회복성 Part2 - 서킷브레이커 | Istio 의 DestinationRule 설정을 통한 서킷브레이커의 다박한 설정 방식을 이해하고 앞서의 타임아웃과는 차별화된 장애회피 전략을 학습한다. |
[Service Mesh] MSA 모니터링 w/ Istio addon Grafana | Istio 내에 기본 설치된 Prometheus, Grafana, Kiali, Jaeger 등을 이용해 쿠버네티스 클러스터와 마이크로서비스 실시간 현황 및 분산추적 방법을 실습한다. |
마이크로서비스 통합 로깅 w/ EFK stack | CNCF의 Logging 관련 오픈 스텍인 Fluentd를 포함하는 EFK(Elasticsearch, Fluentd, Kibana)를 활용하여 배포된 마이크로서비스 로그를 모니터링하는 방법을 실습한다. |
[GitOps] Argo Rollout과 Istio를 통한 카나리 배포 | Argo Rollout 과 Istio 의 Traffic Management 를 통하여 안정적인 카나리아 배포를 실습한다. |
[GitOps] Argo CD를 통한 카나리 배포 | GitOps기반의 지속적인 배포를 지원하는 Kubernetes Plug-in인 Argo CD를 활용한 카나리아 배포를 실습한다. |
쿠버네티스 내부구조 분석 | 직접 쿠버네티스를 설치하고 운영하며 구조를 분석해본다. |
교육 후기
최
최**
★★★★
MSAEZ 툴 정말 유용하네요. 차후 이벤트스토밍 때에도 잘 활용할 수 있을 것 같습니다.
조
조**
★★★★★
강의의 내용과 사용하는 툴이 적합하여 듣기 좋았습니다.
박
박**
★★★★★
MSA 초급자임에도 이해가 쉽도록 잘 짜여진 강의 내용이 좋았다.
안
안**
★★★★★
MSA 기반 설계 방법을 실습 위주로 배울 수 있어 이해가 더 잘 되었습니다.
이
이**
★★★★★
실습 위주로 교육 과정이 잘 구성되어 있는 것 같습니다. 또한 적절한 협업플랫폼 활용이 인상적이었습니다.