프로그래밍 언어 코볼(Cobol)은 61년 전에 등장했다. 그러나 여전히 많은 은행, 보험사, 공공기관이 실업 혜택 지급이나 ATM 등 핵심 트
2020년 4월에 이 시스템의 중요성과 불안정함이 다시 부각됐다. 코로나19 팬데믹 위기가 한창일 때 뉴저지부터 캔자스까지 많은 주 정부들이 삐걱거리는 시스템을 계속 가동하기 위해 은퇴한, 또는 자원 봉사를 할 수 있는 코볼 프로그래머들을 찾았기 때문이다.
제 기능은 하지만, 유지와 통합이 어려운 코볼
소프트웨어 서비스 공급업체인 어드밴스드(Advanced)의 애플리케이션 현대화 담당 매니징 디렉터인 팀 존스는 “특정 업무에 특화된 20~30년 된 앱들이 코볼을 이용하고 있다. 코볼은 기능이 풍부하지만, 제한적이고 다른 현대적 시스템과 호환되지 않는 플랫폼에서 실행이 된다”라고 설명했다.
존스는 오늘날 조직들의 코볼을 탈피하려는 이유로 메인프레임과 코볼 스킬의 위기, 관련된 비용 측면의 고려사항들, 기술 혁신을 통한 경쟁력 유지 필요성으로 진단하고 있다.
존스는 “코볼 스킬과 관련된 문제에 국한되지 않는다. 더 광범위한 현대화 문제다. 현대적 시스템, 모바일 및 클라우드 시스템을 구형 메인프레임에 통합하기가 정말 어렵다. 경쟁 우위 측면에서 보면, 메인프레임 이용이 불리하다. 디지털 트랜스포메이션을 추진한다면, 결국 비즈니스 애플리케이션의 70%를 호스팅하고 있는 구석의 큰 메인프레임실의 코끼리를 다뤄야 한다”라고 말했다.
커머즈뱅크(Commerzbank)의 뉴 메인프레임 클러스터 책임자인 마커스 잔은 “워크로드가 메인프레임에 있다면 코볼을 탈피해야 할 ‘비즈니스 케이스’가 존재한다. 인구통계학적 영향으로 인한 자원 부족 문제, 적시에 데이터를 사용할 수 있게 되는 것과 관련된 고객의 기대사항 변화 등의 이유 때문이다”라고 설명했다.
코볼 애플리케이션 현대화 방법
이런 구식 제약에서 벗어나는 몇 가지 방법이 있다. 비슷한 상용 소프트웨어를 찾으려 시도하거나, ‘리프트 앤 쉬프트’ 방식으로 애플리케이션을 더 저렴한 인프라로 옮기거나, 애플리케이션을 자바나 C# 같은 현대적 언어로 다시 쓸 수 있다. 그러나 어떤 방법이든 위험이 따른다.
‘리프트 앤 쉬프트’는 일반적으로 애플리케이션 디자인은 변경하지 않고, 구식 플랫폼의 애플리케이션을 더 현대적인 인프라로 복제하는 것을 의미한다. 이 접근법을 이용하면 애플리케이션이 이전처럼 계속 실행되도록 대상 플랫폼에서 에뮬레이터를 사용해야 하는 경우가 많다.
즉 ‘리프트 앤 쉬프트’는 많은 조직이 추구하는 장기적인 가치를 제공하지 못할 수도 있다. 존스는 “‘리프트 앤 쉬프트’는 10년 전에 아주 인기있는 전략이었다. 그러나 요즘 조직들은 현대화 프로젝트에서 더 많은 가치를 획득하기 원한다. 운영 비용을 절감하는 것은 물론, 시장의 요구를 충족하는 민첩성을 향상시키고, 미래에 준비가 된 기술을 전달하고, 클라우드와 현대적인 개발 사례를 도입하고, IT혁신을 견인해 비즈니스를 지원하기 원한다”라고 강조했다.
다음 방법은 애플리케이션을 더 현대적인 언어로 다시 쓰는 방법이다. 존스는 “다시 쓰는 방법에도 도전과제가 있다. 이런 시스템들의 경우 도큐멘테이션이 제한된 30년 된 애플리케이션이고, 이를 철저히 이해하는 사람이 드물다. 따라서 많은 시간이 걸린다. 올바르게 하면 클라우드 네이티브가 될 수 있다. 그러나 이렇게 되기 전에 이미 뒤쳐질 수도 있다”라고 지적했다.
이에 많은 조직들이 안전한 ‘중간 옵션’을 선택한다. 이른바 ‘코드 리팩토링(Code refactoring)’이다. 코드를 일정 수준 재구축한다. 전문 공급업체의 자동화된 리팩토링 소프트웨어를 이용하는 경우가 많다. 기존 비즈니스 로직은 유지하면서, 핵심 기능을 크게 바꾸지 않고 성능과 이동성을 강화하는 기법이다. 메인프레임 애플리케이션 현대화에 전문화된 서비스를 공급하는 Lz랩스(LzLabs) 마크 크레스웰 회장은 “성공 가능성이 높다고 판단되는 방법이다”라고 말했다.
다음은 코드 리팩토링 기법과 자동화된 리팩토링 소프트웨어를 이용해 애플리케이션을 현대화, 메인프레임 기반 코볼에서 벗어난 조직 두 곳의 사례이다.
영국 DWP가 메인프레임을 탈피한 방법
연간 최대 2,000만 명을 대상으로 각종 복지, 연금, 아동 복지 지원금을 책임지고 있는 영국 DWP(Department for Work and Pensions)는 ‘리프트 앤 쉬프트’ 메인프레임 에뮬레이션 없이, 코볼 애플리케이션을 전환하는 방법을 선택했다.
2015년 기준, 전상자 연금과 구직자 실업 수당 혜택 등을 책임지고 있는 많은 시스템들이 코볼로 만들어진 상태였다. 이는 HP의 ICL 메인프레임에 호스팅 되어 있었다. DWP의 책임 인프라 엔지니어는 “지원과 유지에 많은 돈이 드는 플랫폼이다”라고 말했다.
값비싼 구식 인프라 유지 비용, 메인프레임 기반 코볼을 유지보수 할 수 있는 사람들을 찾아 유지하기 어렵다는 문제, 여기에 VME 메인프레임 운영 체제가 2020년 12월 만료될 예정이라는 현실이 직면했다. 조직은 2,500만 줄의 코드를 업데이트한다는 결정을 내렸다.
DWP에서 VME 교체 프로그램을 책임졌던 마크 벨은 인포월드에 “코볼 코드를 지원하는 인프라와 더 관련되어 있었다. 노후화되었고, 이를 지원할 전문성을 가진 인력도 고령화되고 있는 인프라이다”라고 설명했다.
그러나 DWP 엔지니어들이 구식 시스템 탈피를 시도한 것은 처음이 아니었다. 몇 년 동안 이 지불시스템의 현대화를 4번이나 시도했었다. 특히 장기간에 걸쳐 코볼 코드를 자바로 다시 쓰려 시도했지만 실패하기도 했다. 결국 플랫폼의 수명이 끝나가고 있었다. 능률적인 전략을 수립했고, 어드밴스드 소속 애플리케이션 현대화 전문가들의 도움을 받았다.
조직은 전략을 추진하면서 코볼 코드를 더 현대적인 객체 지향형 마이크로 포커스 비주얼 코볼(Micro Focus Visual Cobol)로 바꿨고, VME 운영 체제를 레드햇 리눅스로 바꿨다. 그리고 영국 내각 정부기관과 민간 아크 데이터 센터(Ark Data Centres) 간 합작 법인인 크라운 호스팅 데이터 센터(Crown Hosting Data Centres)의 프라이빗 클라우드 서버에 호스팅했다. 100억 줄 이상의 데이터를 폐쇄적이고 계층적인 IDMSX 데이터베이스에서 오라클(Oracle) 관계형 데이터베이스로 옮겼다.
참고로 마이크로 포커스의 비주얼 코볼은 현대적인 개발 환경과 개념을 목표로 코볼 언어를 더 현대적으로 구현한 것이다. 어드밴스드의 존스는 “혼합된 언어를 지원한다. 동일한 개발 환경 내에서 기존 코볼 언어와 매끄럽게 통합되는 새 프로그램을 개발할 수 있는 자바와 C# 개발자를 참여시킬 수 있다”라고 말했다.
가장 작은 시스템에서 시작했다. 매달 한 번 약 360개 지방 당국에 15억 파운드 상당의 주택 관련 혜택을 지급하는 시스템이었다. 이후 4주 간 최초 코드에 대해 새 코드를 변환해 테스트했다. 서비스 중단이 발생하지 않을 것이라고 모두가 판단한 후, 엔지니어들은 2018년 2월 새로운 시스템으로 이전했다.
DWP 엔지니어들과 어드밴스드 전문가들은 시스템 별로 작업을 추진했다. 예를 들어, 코로나19 팬데믹 위기가 영국에 닥치기 시작한 2020년 부활절 기간 DWP의 최대 서비스인 구직자 수당 관련 시스템을 전환했다.
벨은 “코로나19 때문에 청구가 급증하기 시작한 바쁜 시기에 애플리케이션을 마이그레이션 했다”고 말했다. 이후 규모가 더 작은 3개 시스템을 마이그레이션했고, 부처는 2021년 1월에 VME 메인프레임 기반 코볼 애플리케이션에서 탈피할 수 있었다.
비용 절감과 성능 향상 효과가 아주 컸다. 벨은 “더 현대적인 운영 모델은 리소스와 지원을 줄이도록 도움을 주고 있다”라고 강조했다. 예전에는 여러 차례 4시간 배치로 구직자 수당을 처리했었다. 그런데 지금은 약 1시간 안에 이를 완료한다.
새 클라우드 기반 마이크로 포커스 비주얼 코볼은 과거처럼 코볼을 이용하면서도 전체 조직의 반응성을 높이고 소프트웨어 접근법을 현대화함으로써 문제를 해결했다. 특히 기존의 모놀리식 코볼 시스템은 매년 1~2차례 업데이트를 배포할 수 있었다. 그러나 새 객체 지향형 시스템은 더 작게 더 정기적으로 개발자 팀이 변화를 줄 수 있다.
즉 DWP의 개발자들은 이제 AWS의 개발/테스트(Dev/test) 환경에서 실험을 시작하고, 재사용이 가능한 API 세트를 만들어 중요 데이터 소시를 노출하고, CI/CD 파이프라인을 통해 변화를 줄 수 있다. 또한, 마이크로 포커스 비주얼 코볼로의 전환은 미래에 자바나 C# 같은 것들로 다시 혁신적으로 변경을 할 수 있는 기회를 제공한다.
뉴욕 타임즈(New York Times)의 코볼 변환
뉴욕 타임즈도 가정 배달 서비스를 위한 애플리케이션을 2015년에 업데이트해야 했다. 35년된 애플리케이션은 코볼을 기반으로 만들어졌고, IBM Z 메인프레임에서 실행되고 있었다. 뉴욕 타임즈는 애플리케이션을 자바로 바꾸고, AWS 클라우드에서 운영하기 원했다. 유지관리에 많은 비용이 들고, 더 현대적인 시스템 등 다른 시스템과 잘 통합되지 않았기 때문이다.
2006년과 2009년 사이에 수동으로 가정 배달 애플리케이션을 다시 작성하려 시도했지만 실패했다. 이후 2015년까지 애플리케이션을 거의 방치했다. 이 애플리케이션은 당시 600개 배치 작업을 실행하고 있었고, 매일 다운스트림의 소비자와 시스템에 3,500개 파일을 전송하고, 3TB의 데이터를 소비하고 있었으며, 20TB의 백업 데이터를 저장하고 있었다.
뉴욕 타임즈의 엔지니어들은 코드 리팩토링 기법, 전문 파트너 기업인 모던 시스템(어드밴스드가 이후 인수)의 자동화 리팩토링 소프트웨어를 이용해 코드와 데이터를 이전하는 전략을 추진하기로 결정을 내렸다.
코드를 자바로 변환했고, 데이터를 인덱스형 파일에서 관계형 오라클 데이터베이스로 바꿨다. 여기에 2년이 걸렸다. 1년이 조금 안되는 기간 프라이빗 데이터 센터에서 운영을 했고, 8개월 동안 추가 작업을 해서 2018년 3월에 AWS로 아리스토(Aristo)라는 새 애플리케이션을 마이그레이션했다.
AWS는 이 프로젝트에 대한 블로그 게시글에서 “뉴욕 타임즈가 메인프레임 마이그레이션 시작 이전에 클라우드 전략을 수립했다면, 이 회사는 메인프레임을 직접 AWS로 옮겨 온프레미스 아리스토 배포를 위한 설계와 구현에 필요했던 추가 작업을 없앨 수 있었을 것이다”라고 설명했다.
현재 이 배달 시스템은 더 현대적인 디지털 구독 플랫폼(Digital Subscription Platform)에 통합되어 있다. 뉴욕 타임즈의 구독 플랫폼 그룹이 운영, 구축, 유지관리하고 있다. 이는 아리스토의 총 소유 비용을 연간 70% 줄이도록 도움을 줬다.
dl-ciokorea@foundryco.com