MSA_D6ToMSA_Architecture.jpg

실제 브라질의 운송회사에서 20년된 델파이 프로그램을 현대식 마이크로서비스 아키텍처로 전환한 사례를 바탕으로 진행한 세미나 자료입니다. 

 

 

당면 과제

브라질에서 가장 큰 로컬 운송회사에서 델파이6로 구축한 시스템을 15년간 회사의 매우 중요한 파트에서 운용해 왔습니다. 그간 회사는 크게 성장했지만, 클라이언트/서버 구조인 이 시스템으로는 더 이상 회사의 성장에 맞추어 확장하기 어려운 상황에 이르렀습니다.

 

 

시행 착오

2014년 이후 회사는 두 번에 걸쳐 델파이가 아닌 다른 기술로 완전히 교체하려는 시도를 했습니다. 한 번은 SAP로, 다른 한 번은 Java(자바)로 시도했으나, 두 프로젝트 모두 실패했습니다. 그 기간 동안 기존 시스템은 20살이 되었고, 세번째는 더 이상 실패하면 안 되는 다급한 상황이 되었습니다.

 

 

해결 방안 및 결과

2019년 새롭게 구축한 시스템은 유연하면서도 확장성있고, 견고하며, 비용까지 절감해주고 있습니다. 현대식 시스템이며, 마이크로서비스 아키텍처가 적용되었습니다. 도커(Docker), 쿠버네티스(Kubernetes), 데브옵스(DevOps) 원칙이 반영되었습니다. 

그리고 무엇보다 이 새 시스템은 델파이(Delphi)로 구축되었습니다.

 

 

이 영상을 통해 알 수 있는 내용

  • 왜, SAP와 Java 두 번의 재구축 프로젝트가 실패했을까?
  • 어떻게, 델파이 개발자 단 8명으로 구성된 팀만으로 외부 훨씬 더 큰 규모의 개발팀보다 빠르고 획기적인
    결과를 만들어 낼 수 있었을까?
  • 왜, 전환 프로젝트 비용이 시트릭스(Citrix) 비용 절감만으로도 충당되었을까?
  • (다른 시스템에서는 못했는데) 이 새로운 시스템은 유연하게 확장되고, 빠르게 개발될 수 있었습니다.
    아키텍처는 어떻게 되어 있을까?

 

이 영상을 통해 기존 시스템의 가치를 인식하고, 기존 시스템에서 마이그레이션 하는 것이 완전히 새로 구축하는 것보다 어떻게 그리고 얼마나 더 빠르고 더 안전한지를 확인할 수 있습니다.

 

시스템 아키텍처

해당 세미나에서 소개한 아키텍처를 조금 구체적으로 그려보았습니다.

이해하기 쉽도록 계층을 구분하고, 각 계층의 역할과 서비스 구성, 서비스들의 역할을 설명합니다.

MAS_Architecture_Devgear.jpg

 

해당 세미나의 아키텍처 중 시스템 아키텍처를 제외한 개발 도구와 배포 환경은 다음과 같습니다.

devops_deploy.png

 

사용된 기술

Access Layer

클라이언트 요청을 분산하고, 요청에 대한 서비스로 연결하는 게이트웨이 역할

Reverse Proxy & Load Balancer : REST API 경로에 따라 구현된 마이크로 서비스와 연결 요청 분산

HTTPS : 보안 프로토콜 지원

 

Business Layer

운용에 필요한 기능을 마이크로 서비스 기반으로 제공. 핵심적인 비지니스 로직이 포함되며 다른 서비스들과 연동해 운용

  • RAD Server : REST API 서비스를 손쉽게 개발할 수 있는 턴키방식 미들웨어 서버. 델파이, C++빌더로 개발

 

Persistance Layer

서비스 운용에 필요한 데이터를 제공하는 역할이다.

RDBMS, NoSQL : 마이크로 서비스는 서비스 분리와 함께 데이터 분리가 가능하다. 서비스 필요에 따라 RDBMS NoSQL 사용가능하다.

Data Grid(IMDG: In Memory Data Grid) : 일종의 메모리 클러스터. 여러 서버와 메모리를 연결 수십기가의 메모리 저장소를 만들고, 애플리케이션 서버에서 접근해 사용하는 방식

Message Queue : 비동기 요청 처리. 클라이언트 요청을 메시지 큐에 넣고 응답 다른 서비스에서 메시지 큐의 내용을 처리

  • Oracle - RDBMS
  • PostgreSQL - RDBMS
  • MongoDB - NoSQL / BigData
  • Redis - 메모리 기반 데이터 그리드. 서비스간 공유할 데이터를 메모리 기반으로 빠르게 조회 및 저장
  • RabbitMQ - 오픈소스 메시지 브로커. 서비스간 메시지를 큐잉하고 변경 시 이벤트를 받아 처리 가능

 

Analystics Layer

서비스 운용 발생하는 로그를 수집 분석하고, 서비스를 모니터링 장애 감지 역할

Log gathering / Analysis : 서비스들로 부터 로그를 수집, 저장, 분석 시각적으로 제공. Elastic(ELK) Stack 사용됨

Monitoring : 네트워크 서버 모니터링 장애 감지 알림

  • Logstash - 실시간 파이프라인 기능을 가진 데이터 수집 엔진
  • ElasticSearch - 분산형 RESTful 검색 및 분석 엔진
  • Kibana - ElasticSearch에 저장된 데이터를 검색 및 분석, 시각화 플랫폼
  • Zabbix - 네트쿼크 서비스, 서버 등을 감시, 추적 및 장애 알림
  • Grafana - 데이터를 시각화하여 효과적으로 데이터기반 의사결정 및 모니터링 가능
  • Prometheus - 이벤트 모니터링 및 경고. HTTP 풀 모델 사용이 특징

DevOps/Dev tooling

  • RAD Studio
  • Ranorex
  • docker
  • Sonar
  • Gitlab
  • Jenkins

 

Deployment environment

  • Ansible
  • Kubernetes
  • Ubuntu
  • Rancher
  • docker

 

자료들

  • 발표자료 PDF
  • 도커 파일(Dockerfiles) - 발표자의 예제 파일들
  • RAD서버 샘플 코드

이 모든 자료는 깃허브를 통해 확인할 수 있습니다 (클릭)

깃허브를 델파이에서 바로 불러와서 활용하는 방법도 체크하세요! (클릭)

 

 

다시보기

 

 

 

 

그레이드 마이그레이션 센터   델파이 최신 무료 평가판 다운로드

 

 

 

 

번호 제목 글쓴이 날짜 조회 수
공지 [DelphiCon 요약] 코드사이트 로깅 실전 활용 기법 (Real-world CodeSite Logging Techniques) 관리자 2021.01.19 15441
공지 [UX Summit 요약] 오른쪽 클릭은 옳다 (Right Click is Right) 관리자 2020.11.16 13961
공지 [10.4 시드니] What's NEW! 신기능 자세히 보기 관리자 2020.05.27 16499
공지 RAD스튜디오(델파이,C++빌더) - 고객 사례 목록 관리자 2018.10.23 22055
공지 [데브기어 컨설팅] 모바일 앱 & 업그레이드 마이그레이션 [1] 관리자 2017.02.06 23268
공지 [전체 목록] 이 달의 기술자료 & 기술레터 관리자 2017.02.06 18923
공지 RAD스튜디오(델파이, C++빌더) - 시작하기 [1] 관리자 2015.06.30 39255
공지 RAD스튜디오(델파이,C++빌더) - 모바일 앱 개발 사례 (2020년 11월 업데이트 됨) 험프리 2014.01.16 174699
50 [발표자료] 20190214 델파이 24주년 기념 세미나: 델파이 앱 현대화 방안 - 다양한 데이터 서비스 연동하기 관리자 2023.04.20 1441
49 [마이그레이션] C++빌더 프로젝트 업데이트하기! 관리자 2020.09.17 404
48 [발표자료] VCL 애플리케이션 확장하기 with RAD 서버 관리자 2020.07.22 389
47 [사례 소개] 데브기어 마이그레이션 유상 컨설팅 사례 험프리 2020.04.22 545
46 High-DPI를 적용한 윈도우 10으로 빠르게 마이그레이션 하기 관리자 2020.01.07 350
45 MS와 엠바카데로 기술팀이 생각하는 윈도우 애플리케이션의 방향 관리자 2020.01.07 376
44 윈도우 버전 점유율 변화: 2009년부터 2019년 현재까지! file 관리자 2019.11.18 370
43 델파이 코드 컨버전 빠르게 완료하기 관리자 2019.11.06 600
42 IBM 왓슨과 인공지능(AI) 활용하기 - 델파이/C++빌더 관리자 2019.10.25 664
41 [발표자료] 20191017 실전 사례로 살펴보는 소프트웨어 현대화 전략 file 관리자 2019.10.23 371
40 데브기어 컴포넌트 컨버터 원리와 구조 설명 험프리 2019.10.11 984
39 VCL 앱, 윈도우 10용으로 현대화하기 관리자 2019.09.25 499
38 현대화 작업, 바로 지금이 골든타임입니다! 관리자 2019.09.11 390
» 20년된 델파이 앱을 현대식 마이크로서비스 아키텍처로 전환하기 관리자 2019.09.11 1449
36 [온라인 세미나 시리즈] 윈도우 10으로 현대화 할 때 확인해야 할 개발팁 file 관리자 2019.09.09 623
35 오래된 C++ 프로젝트 마이그레이션 하기 관리자 2019.09.05 277
34 [마이그레이션 사례] 워프비전(64-bit 애플리케이션) 험프리 2019.05.24 948
33 [마이그레이션] C++프로젝트 현대화하기 (다시보기-영문) 관리자 2019.04.18 413
32 [마이그레이션][팁] 배치파일(커맨드 명령어)을 이용해 손쉽게 소스파일 갯수를 파악할 수 있습니다. 관리자 2019.04.11 555
31 [발표자료] 20190214 델파이 24주년 기념 세미나: 델파이 앱 현대화 방안 - 다양한 데이터 서비스 연동하기 file 관리자 2019.02.15 484