https://www.vmware.com/topics/glossary/content/application-modernization.html
What is application modernization?
위의 내용을 발췌, 요약, 첨언했습니다
Application Modernization(AM) 이란
- 새로운 Languages, Framework, Infrastructure 등 새로운 컴퓨팅 접근방식으로 오래된 소프트웨어를 업데이트하는 것
- Legacy modernization or Legacy application modernization 라고도 함
- 효율성, 안전성 등을 개선하기 위해 오래된 집을 개조하는 것과 같은 소프트웨어 개발
Legacy Application을 왜 Modernize하는가
- 최신 Infrastructure, Tools, Languages 등의 향상을 위해,
- 리소스를 줄이고,
- 배포의 빈도와 안정성을 높이며,
- (서비스를 분리하고 Event Driven Architecture를 통해 느슨하게 연결하여) 복원력(Resiliency) 개선을 위해,
- 기업의 Digital Transformation 전략을 위해
AM Pattern
* Lift and shift
- 기존 애플리케이션(예 : 사내 서버)을 기존 환경에서 퍼블릭 클라우드 플랫폼과 같은 새로운 인프라로 옮기는 것
- 코드나 아키텍처를 거의 변경하지 않고 애플리케이션을 "있는 그대로" 이동
* Replatforming
- Lift and shift와 Refactoring의 중간 패턴
- Refactoring과 같이 코드나 아키텍처에 큰 변화가 필요하지는 않지만,
기존 애플리케이션의 백엔드 데이터베이스를 수정하거나 교체하는 등의 최신 클라우드 플랫폼을 활용
* Refactoring
- 재작성(Rewriting) 또는 재구성(Restructuring) 의 또 다른 표현
- 코드의 상당 부분을 재구성 또는 다시 개발
- 새로운 환경(일반적으로 클라우드 인프라)에서 더 잘 실행되도록
- 기존 Monolithic Application을 Microservice들로 분할하려는 경우 사용
- Containers and Container orchestration을 포함하여 Cloud-Native Infrastructure와 툴의 이점을 극대화하기 위해 MSA사용 가능
AM을 위한 Key Technology
* Cloud Computing
- 기존 애플리케이션을 클라우드 환경으로 마이그레이션
- Public, Private, Hybrid(일반적으로 사내 환경과 통합된 Public 및/또는 Private cloud를 지칭) 포함
* Container
- 애플리케이션과 워크로드를 패키징, 배포 및 운영하는 클라우드 중심 방법
- 클라우드 인프라, 특히 멀티 클라우드 및 하이브리드 클라우드 환경에 적합한 확장성, 이식성 및 운영 효율성의 장점
* Microservices
- 기술이라기보다는 여러 아키텍처 스타일 중 하나의 선택지
- 하나의 Monolith 구축/운영하는 것이 아닌,
각 서비스들이 서로 다른 구성 요소를 개별적으로 분리하여 독립적으로 배포, 업데이트 및 운영하는 스타일
- 기존 Application을 컨테이너화하기 보다는 필요한 서비스들을 컨테이너로 개발 및 운영
* Orchestration 및 Automation
- 배포, 확장 및 네트워킹을 포함하여 컨테이너와 관련된 많은 운영 작업의 자동화
- 개발, 운영 및 보안 팀이 최신 애플리케이션을 규모에 맞게
지속적으로 관리할 수 있도록 보장하는 것이 점점 더 필요하기 때문에 자동화는 중요한 원칙이자 기술
기업에서 AM이 필요한 이유
- 수년, 십수년전에 개발된 "레거시"를 폐기하고 다시 개발(차세대)하기에는 비용, 생산성 등 여러 문제가 많음
- 요즘의 IT환경은 많이 달라져서 과거와 동일한 차세대를 고집할 이유가 없음
- AM을 통해 인프라 이전, 소프트웨어 플랫폼, 도구, 아키텍처, 라이브러리 및 프레임워크 등의 이점을 취할 수 있기 때문
Legacy Modernization Trend
- Multi Cloud : 비용 최적화, 유연성, 가용성 등의 이유로 둘 이상의 퍼블릭 클라우드 서비스를 사용하는 것
- Hybrid Cloud : 퍼블릭 클라우드와 프라이빗 클라우드를 혼합한 온프레미스 인프라
'MSA해설 > Cloud 관련 개념' 카테고리의 다른 글
CSP, MSP (0) | 2022.12.13 |
---|---|
AM, CNA, DT (0) | 2022.12.09 |
Cloud Native Application (0) | 2022.06.25 |
VM, Container, Docker, Kubernetes 개념과 비교 (1) | 2022.06.18 |
Kafka 처리량 관련 (0) | 2022.03.23 |