2021.09.02

글로벌 칼럼 | 마이그레이션을 도중에 멈추면 안 되는 이유

Lee Atchison | InfoWorld
애플리케이션 마이그레이션을 계획 중인가? 아마 온프레미스 애플리케이션을 클라우드로 이전하거나 모놀리식 애플리케이션을 서비스 지향 아키텍처나 마이크로서비스 아키텍처로 옮길 생각일 것이다.  

이런 마이그레이션은 전력을 다해야 하는 일이다. 시간과 자원은 물론, 마음가짐과 기업의 역량을 모두 투여해야 한다. 
 
ⓒ Getty Images Bank

하지만 마이그레이션은 완료하기가 쉽지 않다. 마이그레이션은 장기간의 점진적인 변화이고, 통상적으로 소비된 노력이 실현된 혜택과 바로 일치하지는 않는다. 혜택은 투자가 이루어지고 난 시점보다 훨씬 이후에 찾아온다. 때에 따라 좋아지기 전에 난관에 부딪히기도 한다.  

그래서 마이그레이션을 도중에 종료하려는 유혹을 뿌리치기는 쉽지 않다.  

도대체 마이그레이션을 도중에 종료하고 싶은 사람이 있기는 할까? 말도 안 되는 것처럼 보이지만 실제로 일어난다. 모놀리식 애플리케이션으로부터 서비스 지향 아키텍처로 이동한다고 하자. 마이그레이션을 시작한 지 얼마 되지 않아 중단한다면 애플리케이션은 마이그레이션 이전보다 훨씬 좋지 않은 상태로 남는다.  

그렇다면 마이그레이션을 도중에 중단하려는 유혹을 어떻게 뿌리칠 것인가? 기대를 관리하는 것, 그리고 진정한 ROI를 이해하는 것이 핵심이다.  
 

고통의 계곡  

중대한 마이그레이션을 시작할 때, 특히 모놀리식 애플리케이션에서 마이크로서비스로 마이그레이션하는 등의 복잡한 마이그레이션을 시작한다면, 궁극적으로 얻게 될 혜택에 대한 일정한 기대가 있기 마련이다. 보통은 혜택이 투입된 시간과 노력에 상응할 것이라고 기대한다. ROI가 마이그레이션 노력을 정당화시킬 것이라고 생각한다.  

그러나 이는 마이그레이션의 가치와 혜택을 판단하는 1차원적 시각이다. 단순 ROI 계산은 마이그레이션에 투여된 시간과 노력이 어떻게 혜택으로 변환되는지에 관한 이해를 충분히 포착하지 못한다. 일반적으로 <그림 1>에서 보듯이 혜택과 투자가 시간의 경과에 따라 균등하게 작용할 것이라고 생각한다.  
 
그림 1. 기대하는 노력 대비 성과는 단순하다. ⓒ IDG

시간이 경과하고 마이그레이션 투자를 계속할 때 얻어지는 혜택은, 그것이 실질적이든 개념적이든, 계속해서 증가하리라 생각한다. 더 많은 시간과 노력을 투입할수록 더 많은 혜택을 얻는다. 또는 그럴 것이라고 생각한다.  

현실적으로, 이 관념적 모델은 마이그레이션이 일반적으로 작용하는 방식을 정확히 반영하지 않는다. 투자와 혜택 간의 관계는 훨씬 더 복잡하고, 흔히 <그림 2>와 더 비슷한 모습이다.  
 
그림 2. 실제로 노력과 성과의 관계는 복잡하다. ⓒ IDG

여기서 초기 투자는 대단한 혜택을 가져오지 못한 듯이 보인다. 실제로 처음에는 상황이 나빠지기 때문에 혜택이 사실상 퇴보한다. 시간이 어느 정도 경과한 후에야 진정한 혜택이 나타나기 시작한다.  

실례를 들어보자. 모놀리식 애플리케이션을 서비스 지향 아키텍처로 변환한다고 하자. 처음에는 모놀리식 애플리케이션의 부분 부분을 서비스로 변환한다. 이 때 성능 저하가 나타날 수 있다. 애플리케이션이 훨씬 많은 구동부를 갖기 때문에 복잡성이 증가한다. 개별 서비스를 애플리케이션에 계속 추가하더라도 모놀리식 애플리케이션의 남은 부분은 여전히 존재하며, 애플리케이션의 기능에 크게 관여한다. 이 복잡성은 안정성 문제, 확장성 문제로 이어질 수 있고, 다른 예상치 못한 문제가 생길 수 있다.  

간단히 말해 애플리케이션은 마이그레이션을 시작하기 전보다 더 나빠질 수 있다. 이유는 아래와 같다.  
 
  • 마이그레이션에 따른 기술 부채가 추가되면서 코드가 어중간한 상태에 있다.  
  • 일부 코드는 갱신되고 일부 코드는 갱신되지 않기 때문에 코드가 더 느리게 실행된다.  
  • 일부 코드는 구식 패러다임을 이용하고 일부 코드는 새 패러다임을 이용하기 때문에 코드를 이해하기 더 어렵다.  


솔직히 말해 코드가 엉망인 것이다.  



2021.09.02

글로벌 칼럼 | 마이그레이션을 도중에 멈추면 안 되는 이유

Lee Atchison | InfoWorld
애플리케이션 마이그레이션을 계획 중인가? 아마 온프레미스 애플리케이션을 클라우드로 이전하거나 모놀리식 애플리케이션을 서비스 지향 아키텍처나 마이크로서비스 아키텍처로 옮길 생각일 것이다.  

이런 마이그레이션은 전력을 다해야 하는 일이다. 시간과 자원은 물론, 마음가짐과 기업의 역량을 모두 투여해야 한다. 
 
ⓒ Getty Images Bank

하지만 마이그레이션은 완료하기가 쉽지 않다. 마이그레이션은 장기간의 점진적인 변화이고, 통상적으로 소비된 노력이 실현된 혜택과 바로 일치하지는 않는다. 혜택은 투자가 이루어지고 난 시점보다 훨씬 이후에 찾아온다. 때에 따라 좋아지기 전에 난관에 부딪히기도 한다.  

그래서 마이그레이션을 도중에 종료하려는 유혹을 뿌리치기는 쉽지 않다.  

도대체 마이그레이션을 도중에 종료하고 싶은 사람이 있기는 할까? 말도 안 되는 것처럼 보이지만 실제로 일어난다. 모놀리식 애플리케이션으로부터 서비스 지향 아키텍처로 이동한다고 하자. 마이그레이션을 시작한 지 얼마 되지 않아 중단한다면 애플리케이션은 마이그레이션 이전보다 훨씬 좋지 않은 상태로 남는다.  

그렇다면 마이그레이션을 도중에 중단하려는 유혹을 어떻게 뿌리칠 것인가? 기대를 관리하는 것, 그리고 진정한 ROI를 이해하는 것이 핵심이다.  
 

고통의 계곡  

중대한 마이그레이션을 시작할 때, 특히 모놀리식 애플리케이션에서 마이크로서비스로 마이그레이션하는 등의 복잡한 마이그레이션을 시작한다면, 궁극적으로 얻게 될 혜택에 대한 일정한 기대가 있기 마련이다. 보통은 혜택이 투입된 시간과 노력에 상응할 것이라고 기대한다. ROI가 마이그레이션 노력을 정당화시킬 것이라고 생각한다.  

그러나 이는 마이그레이션의 가치와 혜택을 판단하는 1차원적 시각이다. 단순 ROI 계산은 마이그레이션에 투여된 시간과 노력이 어떻게 혜택으로 변환되는지에 관한 이해를 충분히 포착하지 못한다. 일반적으로 <그림 1>에서 보듯이 혜택과 투자가 시간의 경과에 따라 균등하게 작용할 것이라고 생각한다.  
 
그림 1. 기대하는 노력 대비 성과는 단순하다. ⓒ IDG

시간이 경과하고 마이그레이션 투자를 계속할 때 얻어지는 혜택은, 그것이 실질적이든 개념적이든, 계속해서 증가하리라 생각한다. 더 많은 시간과 노력을 투입할수록 더 많은 혜택을 얻는다. 또는 그럴 것이라고 생각한다.  

현실적으로, 이 관념적 모델은 마이그레이션이 일반적으로 작용하는 방식을 정확히 반영하지 않는다. 투자와 혜택 간의 관계는 훨씬 더 복잡하고, 흔히 <그림 2>와 더 비슷한 모습이다.  
 
그림 2. 실제로 노력과 성과의 관계는 복잡하다. ⓒ IDG

여기서 초기 투자는 대단한 혜택을 가져오지 못한 듯이 보인다. 실제로 처음에는 상황이 나빠지기 때문에 혜택이 사실상 퇴보한다. 시간이 어느 정도 경과한 후에야 진정한 혜택이 나타나기 시작한다.  

실례를 들어보자. 모놀리식 애플리케이션을 서비스 지향 아키텍처로 변환한다고 하자. 처음에는 모놀리식 애플리케이션의 부분 부분을 서비스로 변환한다. 이 때 성능 저하가 나타날 수 있다. 애플리케이션이 훨씬 많은 구동부를 갖기 때문에 복잡성이 증가한다. 개별 서비스를 애플리케이션에 계속 추가하더라도 모놀리식 애플리케이션의 남은 부분은 여전히 존재하며, 애플리케이션의 기능에 크게 관여한다. 이 복잡성은 안정성 문제, 확장성 문제로 이어질 수 있고, 다른 예상치 못한 문제가 생길 수 있다.  

간단히 말해 애플리케이션은 마이그레이션을 시작하기 전보다 더 나빠질 수 있다. 이유는 아래와 같다.  
 
  • 마이그레이션에 따른 기술 부채가 추가되면서 코드가 어중간한 상태에 있다.  
  • 일부 코드는 갱신되고 일부 코드는 갱신되지 않기 때문에 코드가 더 느리게 실행된다.  
  • 일부 코드는 구식 패러다임을 이용하고 일부 코드는 새 패러다임을 이용하기 때문에 코드를 이해하기 더 어렵다.  


솔직히 말해 코드가 엉망인 것이다.  



X