강의

멘토링

로드맵

Inflearn brand logo image
Programming

/

Devops & Infra

[DevOps Basics 1] Monolith to Microservice Conversion with Spring/Python/Node.js and Strangler Fig Pattern

Learn the process of converting an existing legacy monolithic system to a microservice architecture through hands-on training. You will also receive code reviews from knowledge sharers up to two times!

(5.0) 1 reviews

109 learners

  • JeongSuk Lee
msa
MSA
TDD

What you will learn!

  • Microservice Development

  • Stragler Fig Pattern

  • Practice converting existing systems to microservices

Try it yourself with a mini project
MSA Migration for DevOps.

From Monolith to Microservices
Strangler Pattern Migration

Legacy Monolith to MSA ?

Let's use the Strangler Fig Pattern to safely and gradually migrate an existing legacy monolithic system to a microservices architecture.

This course is the first in the "DevOps Essentials: Project Set" series. What development methods should we use when migrating from a monolithic system to microservices? And what DevOps-related technologies should we apply? The Strangler Fig Pattern is essential for this process.

• • •

This lecture will walk you through the process of decomposing a Java and Spring Boot-based monolithic system using Spring, Python, and Node.js. Additionally, it will cover the use of the necessary stubbing framework (Mountebank), Feature Toggle (FlipT), API Gateway (Spring Cloud Gateway), and Full-Stack Application Telemetry (Jaeger).

Additionally, you will learn about unit testing and mocking based on Java, Node.js, and Python, and learn coverage test analysis methods for each language.


Mini-project for MSA migration
Strangler Fig Pattern 3-Step

1️⃣
Recognize the part you want to migrate

2️⃣
Implement the corresponding part within the new microservice

3️⃣
Consider patterns to provide flexibility in system migration.
(e.g. Parallel Run)

We offer solutions to your concerns about MSA transition .

Case 1: When should you transition to microservices?

We'll tell you the criteria and preparatory steps to consider when implementing microservices in your organization or project .

Case 2 I want to do TDD using unit testing in Java / Python / Node.js, but how should I mock each function?

By presenting and explaining unit tests in Java, Python & Node.js , we will provide a foundation for you to start practicing TDD in practice with copy & paste .

Case 3 Is it possible to experience an environment based on another programming language in a way similar to real-world situations?

We'll walk you through the entire process of decomposing from a monolith to microservices . We'll also provide up to two code reviews for your code.

Case 4: What technologies are needed to transition to microservices?

We will introduce and practice not only the programming techniques used when transitioning to microservices, but also the techniques that can facilitate smooth operation .


Unique features of this course
Check it out.

  • ✅ Build confidence in unit test-based TDD and reduce the frustration of writing your first unit tests.
  • ✅ Increase your understanding of Containerization using Docker-Compose and Dockerfile.
  • ✅ You can obtain an integrated analysis method through telemetry to respond to issues that may arise during MSA operation.
  • ✅ You can learn about the API Gateway Pattern through Spring Cloud Gateway and how to deal with CORS errors that frequently occur in the frontend.

You can draw one flow

The class will be conducted in a format where you will set up a scenario for a mini-project and demonstrate the entire process of solving it.

Helps to understand clearly

The results of each chapter are provided in a Github repository, and the process of deriving them is explained in as much detail as possible.

Think about the reasons and principles

We present the rationale for why certain technologies and theories should be adopted. We also explain how to implement them as containers using Docker.

We provide code reviews

You can receive code reviews for your code up to two times.

Detailed Curriculum 📖

1. What is the Strangler Fig Pattern?

  • Is monolith necessarily a bad thing?
  • When is it a good idea to introduce microservices?
  • Monolith to Microservice Patterns
  • Implementing the Strangler Fig Pattern

2. Monolith Architect - Project Set Introduction to Monolith Architect

  • Monolith - Trading information system structure
  • Target architect
  • Source code access request

3. Migration implementation - Monolith side: Preparing for service separation using FlipT

  • Continuous Deployment - Deploy stage review
  • What is FlipT?

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


The basics of DevOps
This is Lee Jeong-seok .

I'm a digital nomad IT engineer with approximately 15 years of experience as a full-stack developer and DevOps engineer/consultant in Korea, Australia, and the UK. I'm constantly learning new topics to optimize IT organizational operations , and I dream of remaining an engineer until I retire. Currently, I work as a DevOps engineer on the Developer Experience team at a bank in Melbourne, Australia.

Detailed history

  • I started my first job as an intern at The Latin Traveller! [London, UK]
  • Former Hanjin Group Topas Travel Information - Java/Oracle Development [Seoul, KR]
  • Former) NuSkin Korea - Java/Oracle Development [Seoul, KR]
  • Curiosity about business flow led me to complete a full-time MBA program [Seoul/Nice, KR/FR]
  • Former KOSCOM - C Development [Seoul, KR]
  • Former KDB Daewoo Securities - Development using Java, C#, Python, MongoDB, Oracle, Sybase, ActiveMQ, etc. [Seoul, KR]
  • Former) National Australia Bank (NAB) - Full-stack Development [Melbourne, AU]
  • Formerly, one of Australia's top four banks - Full-stack Development/In-house DevOps Consulting [Melbourne, AU]
  • Former) Amazon Web Services - DevOps Consultant [Seoul/Melbourne, KR/AU]
  • One of Australia's top four banks is currently grappling with defining DORA metrics and implementing a scalable CI structure using DevOps... [Melbourne, AU]

Q&A 💬

Q. I don't have any practical DevOps experience . Can I still take the course?

This course is designed for beginners, so anyone with basic coding knowledge can take it. For more information, please see the [Prerequisites] section below.

Q. Do I have to take the " DevOps Essentials " course to take this course?

Although you will understand this lecture better if you take the "DevOps Essentials" lecture, you can take this lecture without taking that lecture. There is a part that summarizes the relevant parts of the "DevOps Essentials" lecture that are necessary for taking this lecture.

Q. Why do you provide code reviews up to two times?

Code reviews are conducted on the assumption that the content included in a Pull Request has been implemented to a workable level. Accordingly, when a knowledge sharer reviews the code requested by a student and provides feedback, we provide up to two code reviews to ensure that any changes based on feedback are appropriate.

💾 Please check before taking the class !

  • To smoothly complete the lecture, you'll need a PC with macOS, Linux, or Windows 10/11 64-bit with WSL 2 support and at least 8GB of memory . (Visual Studio Code is used as the code editor in this course.)
  • For course materials, please see the notes at the bottom of the [Section 2 - Introduction to Project Set Monolith Architect] course . A link to a Google Form requesting access to the source code repository is provided. Source code access may take up to 48 hours to be approved, and you are prohibited from sharing the source code or content of this course with others.
  • Prerequisite knowledge is the ability to use at least one programming language .

See related lectures together 📺

Recommended for
these people

Who is this course right for?

  • People who have never separated an existing system into microservices

  • Anyone who needs hands-on experience building microservices

  • Anyone who is curious about how to write unit test code for Java/Node/Python

Need to know before starting?

  • You must be able to use at least one programming language.

Hello
This is

423

Learners

15

Reviews

7

Answers

3.8

Rating

7

Courses

한국/호주/영국에서 Full-stack developer, DevOps Engineer/Consultant로 15년 정도 일을 하고 있는 Digital Nomad IT Engineer 입니다. IT 조직 운영의 최적화를 위해 끊임 없이 새로운 주제에 대해서 공부를 하고 있으며, 은퇴할 때까지 Engineer로 생활하고 싶다는 꿈을 가지고 있습니다. 현재는 호주 Melbourne에 있는 한 은행의 Developer Experience 팀에서 DevOps로 활동하고 있습니다.

Curriculum

All

9 lectures ∙ (5hr 21min)

Published: 
Last updated: 

Reviews

All

1 reviews

5.0

1 reviews

  • Jeongyeol Lee님의 프로필 이미지
    Jeongyeol Lee

    Reviews 6

    Average Rating 5.0

    5

    100% enrolled

    Feature Flag를 통해 제어되는 여러 마이크로서비스를 찢어내는 과정을 학습하고, 이를 리팩토링으로 Gateway를 정리하는 BFF 과정이 매우 인상깊었습니다. 특히 AWS ALB 나 Amazon API Gateway 와 함께 Spring Cloud Gateway 를 비교하면서 고려한 적 있었는 데, 운영개발에 대한 주도권과 관리에 대한 측면을 정리받을 수 있어서 기대 이상의 강의였습니다 :) 감사합니다.

    $127.60

    JeongSuk Lee's other courses

    Check out other courses by the instructor!

    Similar courses

    Explore other courses in the same field!