기존 레거시 모놀리스 시스템을 마이크로서비스 아키텍처로 전환하는 과정을 실습을 통해 알아봅니다. 총 2회까지 지식공유자의 코드 리뷰도 함께 받아보실 수 있습니다!
이런 걸
배워요!
마이크로서비스 개발
Stragler Fig 패턴
기존 시스템을 마이크로서비스로 전환 실습
미니 프로젝트로 직접 따라해보는
MSA Migration for DevOps.
스트랭글러 패턴(Strangler Fig Pattern)을 이용하여 기존 레거시 모놀리스 시스템을 마이크로서비스 아키텍처로 안전하게, 그리고 점진적으로 전환해 봅니다.
이 과정은 “DevOps의 정석: Project Set” 시리즈 중 첫 번째 과정입니다. 모놀리스 시스템에서 마이크로서비스로 마이그레이션을 진행할 때 어떤 방법으로 개발을 진행해야 할까요? 또, 데브옵스적 측면에서는 어떠한 기술들을 적용해야 할까요? 이 과정에서 필요한 것이 바로 Strangler Fig Pattern입니다.
• • •
이 강의에서는 Java(자바) 및 Spring Boot(스프링 부트) 기반의 모놀리스 시스템을 Spring(스프링)과 Python(파이썬) 그리고 Node.js(노드)를 통해 분리해보는 과정을 설명합니다. 이 과정에서 부수적으로 필요한 Stubbing framework (Mountebank), Featuer Toggle(FlipT), API Gateway(Spring Cloud Gateway) 및 Full-Stack Application Telemetry(Jaeger)를 사용하는 방법에 대해 소개합니다.
아울러 Java - Node.js - Python을 기반으로 한 유닛 테스트(Unit Test) 및 Mocking에 대한 방법을 알아보며, 각 언어별 Coverage Test 분석 방법을 함께 배우게 됩니다.
1️⃣
마이그레이션을 하고자 하는 파트 인식
2️⃣
새로운 마이크로서비스 내에 해당하는 파트를 구현
3️⃣
시스템 마이그레이션에 유연성을 주기 위한 패턴 고려
(예: Parallel Run)
Case 1 마이크로서비스로 전환하는 경우는 어떤 때인가요?
우리 조직/프로젝트에서 꼭 마이크로서비스를 도입해야 하는지에 대한 기준점과 사전 준비 사항에 대해 알려드립니다.
Case 2 Java / Python / Node.js에서 유닛 테스트를 이용해 TDD를 하고 싶은데, 각 기능을 어떻게 Mocking해야 하나요?
Java, Python & Node.js의 유닛 테스트에 대한 샘플을 제시하고 이에 대해 설명함으로써, 실전에서 복사 & 붙여넣기로 TDD를 시작할 수 있는 기반을 제시해드립니다.
Case 3 다른 프로그래밍 언어 기반의 환경을 실전과 유사한 형태로 경험해볼 수 있을까요?
모놀리스에서 시작해 마이크로서비스로 분리하는 전체 과정에 대해 설명합니다. 또한, 수강생 여러분이 작성하신 코드에 대해 최대 2회까지 코드 리뷰를 제공해드립니다.
Case 4 마이크로서비스로 전환을 할 때 필요한 기술은 어떤 게 있나요?
마이크로서비스로 전환할 때 쓰이는 프로그래밍 기술뿐만 아니라, 운영을 원활하게 할 수 있는 기술들을 함께 소개하고 실습을 진행해봅니다.
하나의 흐름을 그릴 수 있습니다
미니 프로젝트에 대한 시나리오를 세우고 이를 해결해 나가는 전체 과정을 보여드리는 형식으로 수업을 진행합니다.
확실한 이해를 돕습니다
각 챕터에서 수행하는 결과물은 Github Repository로 제공하며, 이를 도출해내는 과정에 대해 최대한 자세히 설명하고 있습니다.
이유와 원리를 생각합니다
어떤 기술이나 이론이 왜 도입되어야 하는지에 대한 이유를 제시합니다. 또한 이를 Docker를 이용해 컨테이너로 구현하는 방법에 대해서도 설명해드립니다.
코드 리뷰를 제공합니다
최대 2회까지 수강생이 작성하신 코드에 대한 Code Review를 받아보실 수 있습니다.
1. Strangler Fig Pattern이란 무엇인가?
2. Monolith Architect - Project Set Monolith Architect 소개
3. Migration implementation - Monolith side: FlipT를 이용한 Service 분리 준비
4. Microservice - Ticker service with Python
5. Microservice - Price service with Node.js
6. Microservice - Strategy service with Java
7. Endpoint integration with Spring Cloud Gateway
8. Wrap Up
한국 · 호주 · 영국에서 Full-stack Developer, DevOps Engineer/Consultant로 15년 정도 일하고 있는 Digital Nomad IT Engineer입니다. IT 조직 운영 최적화를 위해 끊임없이 새로운 주제에 대해 공부하고 있으며, 은퇴할 때까지 Engineer로 생활하고 싶다는 꿈을 가지고 있습니다. 현재는 호주 Melbourne에 있는 한 은행의 Developer Experience 팀에서 DevOps로 활동하고 있습니다.
Q. 실무 데브옵스 경험이 없습니다. 수강할 수 있을까요?
본 강의는 초보자 대상으로 구성하여, 기초적인 코딩 지식이 있으면 수강 가능합니다. 자세한 내용은 하단 [선수 지식]을 확인해주세요.
Q. "DevOps의 정석" 강의를 들어야만 이 강의를 들을 수 있나요?
"DevOps의 정석" 강의를 들은 후 본 강의를 들을 경우 이해가 더 좋긴 하지만, 수강하지 않아도 본 강의를 들을 수 있으며, 본 강의를 듣는데 필요한 "DevOps의 정석" 강의 해당 부분을 요약하여 전달해드리는 부분이 있습니다.
Q. 코드 리뷰는 왜 2번까지 제공하나요?
코드 리뷰는 기본적으로 Pull Request에 포함된 내용이 실행 가능한 레벨까지 구현이 되어 있다는 가정하에 진행됩니다. 이에 따라 수강생 여러분이 요청하신 코드를 지식공유자가 리뷰를 하고 이에 대한 피드백을 드렸을 때, 피드백 기반으로 수정한 내용이 올바른 방향으로 수정되었는지 확인해 드리기 위하여 최대 2번까지 코드 리뷰를 제공합니다.
💾 수강 전 확인해주세요!
학습 대상은
누구일까요?
기존 시스템을 마이크로서비스 형태로 분리해본 적이 없는 사람
마이크로서비스 제작의 핸즈온 실습이 필요한 사람
Java/Node/Python에 대한 유닛 테스트 코드 작성 법이 궁금한 사람
선수 지식,
필요할까요?
최소 1개 이상의 프로그래밍 언어를 사용할 수 있어야 합니다.
한국/호주/영국에서 Full-stack developer, DevOps Engineer/Consultant로 15년 정도 일을 하고 있는 Digital Nomad IT Engineer 입니다. IT 조직 운영의 최적화를 위해 끊임 없이 새로운 주제에 대해서 공부를 하고 있으며, 은퇴할 때까지 Engineer로 생활하고 싶다는 꿈을 가지고 있습니다. 현재는 호주 Melbourne에 있는 한 은행의 Developer Experience 팀에서 DevOps로 활동하고 있습니다.
전체
9개 ∙ (5시간 21분)