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 17875
공지 [UX Summit 요약] 오른쪽 클릭은 옳다 (Right Click is Right) 관리자 2020.11.16 16233
공지 [10.4 시드니] What's NEW! 신기능 자세히 보기 관리자 2020.05.27 18878
공지 RAD스튜디오(델파이,C++빌더) - 고객 사례 목록 관리자 2018.10.23 24470
공지 [데브기어 컨설팅] 모바일 앱 & 업그레이드 마이그레이션 [1] 관리자 2017.02.06 25845
공지 [전체 목록] 이 달의 기술자료 & 기술레터 관리자 2017.02.06 21206
공지 RAD스튜디오(델파이, C++빌더) - 시작하기 [1] 관리자 2015.06.30 41796
공지 RAD스튜디오(델파이,C++빌더) - 모바일 앱 개발 사례 (2020년 11월 업데이트 됨) 험프리 2014.01.16 177096
25 API로 머신 러닝과 컴퓨터 비전 활용하기 관리자 2021.05.04 531
24 이 달의 기술자료 - 2021년 05월 험프리 2021.04.29 447
23 MODERNLISTVIEW 라이브러리 – 커스터마이징 가능한 강력한 크로스 플랫폼 라이브러리 활용 방법 관리자 2021.04.06 407
22 이 달의 기술자료 - 2021년 04월 험프리 2021.03.25 593
21 이 달의 기술자료 - 2021년 03월 험프리 2021.02.26 444
20 TCOFFEE & CODE WEEK 관리자 2021.02.19 372
19 개발. 공유. 영감. – 엠바카데로 총괄 매니저가 전하는 메세지 (2020.11) 관리자 2020.12.01 348
18 이 달의 기술자료 - 2020년 12월 험프리 2020.11.26 381
17 [개발환경] 델파이, RAD스튜디오 에서 Git과 Github를 사용해야하는 이유와 꼭 필요한 만큼 사용법 관리자 2020.08.27 1375
16 엠바카데로 오픈 소스 프로젝트 관리자 2020.05.25 721
15 프로그래밍 언어 인기도 측정의 문제점 file 김원경 2020.03.27 522
14 델파이 25주년 기념 무료 크로스 플랫폼 샘플 앱 25개 선정(델파이/C++ 샘플 150여종) 험프리 2020.03.02 665
» 20년된 델파이 앱을 현대식 마이크로서비스 아키텍처로 전환하기 관리자 2019.09.11 1472
12 [온라인 세미나 시리즈] 윈도우 10으로 현대화 할 때 확인해야 할 개발팁 file 관리자 2019.09.09 640
11 이 달의 기술자료 - 2019년 07월 험프리 2019.06.28 374
10 [개발환경] 깃허브 PR을 이용한 코드리뷰 환경 구성(4) 험프리 2019.06.20 1297
9 [개발환경] 깃허브에 저장소 생성 및 연동하기(3) 험프리 2019.06.20 601
8 [개발환경] RAD 스튜디오에서 Git 설정 및 불러오기(2) 험프리 2019.06.20 1580
7 [개발환경] Git 설치와 저장소 구성(1) 험프리 2019.06.20 965
6 CEF4Delphi(크로미움 기반 웹브라우저) 컴포넌트 설치 및 실행하기 험프리 2019.01.14 4067