반응형
안녕하세요. 행복랜드 행부장(HappyLandHB)입니다.
✔ 스트랭글러 패턴 방식 개발이 대세가 되기 위해 기존의 빅뱅의 단점을 장점으로, 스트랭글러가 가진 단점을 최소화하는게 필요합니다.
스트랭글러 패턴은 아마도 대세가 될 것이라 생각합니다.
이론과 실제는 차이가 있으니, 장점만을 생각하다면 놓칠 수 있습니다. MSA(MicroServices Architectures)를 스트랭글러 방식이 아닌 빅뱅으로 하려는 곳도 나옵니다. 충분한 분석, 설계가 있었어도 파일럿 프로젝트로 복잡한 부분(복잡하고 시간이 오래걸리는 배치작업 포함) 중 일부를 진행 후에 결정이 필요합니다. 가급적 스트랭글러 패턴 방식으로 MSA를 생각하는데 좋을 것이라 봅니다.글을 보시기 전에 공감하트 클릭 부탁드립니다. (위 혹은 아래에 위치)
저는 누군가에게 기댈 수 있는 곳이 되길 바라며, 함께 할 수 있는 일상 공유로 SNS에 컨텐츠를 만들고 있어요.
- 용어정의 (개인적인 부분으로 해석한 부분으로 기존의 용어정의보다 짧고 다를 수 있음)
빅뱅(Big Bang) 방식: 기존 시스템 전체를 한번에 개발, 교체
스트랭글러(Strangler) 패턴 방식: 일부분을 점진적으로 교체하여, 최종적으로 전체를 교체. MSA가 대표적임.
스트랭글러 패턴 방식과 MSA로 진행하려면 숙련된 데브옵스(DevOps) 조직이 필요합니다. 무늬만 데브옵스를 부르짓는 조직이 아닌, 개발과 운영을 할 수 있는 조직이죠. 인력 유지를 하는데 비용 등 쉽지 않을 것이라 개인적으로 생각해 봅니다. 이런 저런 이유로 MSA는 해야 하는데 스트랭글러를 패턴 대신 기존에 우리에게 익숙한 빅뱅을 하게 됩니다.
(어려운 정의와 설명은 가감히 배제했습니다. 관련 내용은 아래 참고사이트를 참고하시길.)
⁑ 기존의 복잡한 코어 비즈니스를 MSA로 하다보면 많은 것을 놓칠 수 있습니다. 크게 3가지입니다.
기존의 복잡한 코어 비즈니스를 MSA로 하다보면 많은 것을 놓칠 수 있는 3가지입니다.
1. 복잡한 로직들을 모두 MSA에 맞게 나누면 될까?
=> 문제는 속도입니다. 배치성 작업은 특히 일배치로 새벽, 주말에 돌 수 있는데, MSA를 하면서 로직을 쪼개다 보면(다른 DB에서 관리되고) 속도가 많이 늦어지게 됩니다. 일배치가 일배치로써 시간내 할 수 없는 부분이 생기는 것이 나옵니다. 다시 MSA로 개발(Micro)한 부분을 기존의 방식으로 합쳐지게 개발(Macro)하는 재작업이 생길 수 있습니다.
2. 어떻게 나누고 개발 할 것인가?
=> DB단위로 나누다 보면, 많은 보상을 위한 개발이 필요합니다. 개발을 할 수 인력을 고려하며 진행이 필요합니다. 단순히 개발자가 많이 투입되는 것보다 숙련된 개발자가 시간을 가지고 진행하는 방법도 필요하다고 봅니다.
3. 개발만이 답인가?
=> 충분한 검토(기획, 분석, 설계)가 필요한 부분입니다. 파일럿 프로젝트를 통해 개선된 부분을 고려한 개발이 필요하다고 봅니다.
*참고사이트
1. 기본 내용: https://www.2e.co.kr/news/articleView.html?idxno=203903
2. 사진 참고
1) https://dzone.com/articles/what-are-microservices-actually
2) https://blogs.sap.com/2017/09/25/strangler-applications-monolith-to-microservices/
감사드리며…
도움이 되셨다면 공감하트 클릭 부탁드립니다. (위 혹은 아래에 위치)
오늘 더 행복하시길.
감사합니다.
반응형
댓글