XSP Windows 컨테이너로 웹 폼 레거시 애플리케이션을 클라우드화하기

윈도우 컨테이너에서 가장 대표적인 활용 예시로 꼽히는 것은 단연 IIS/ASP.NET 웹 애플리케이션 (웹 폼)을 컨테이너로 만드는 것이죠! 그렇지만 정말 안타깝게도 IIS는 NT 서비스이고, NT 서비스는 컨테이너의 기본이라고 할 수 있는 표준 출력 장치를 처음부터 제공하지 않습니다. 표준 출력 장치 대신 이벤트 로그에 기록을 남기도록 되어있다보니 컨테이너와는 친화적이지 않죠!

잘 알려지지 않았지만, ASP.NET 런타임을 일반적인 닷넷 애플리케이션에서 호스팅할 수 있는 방법은 사실 이전부터 존재했습니다. 이것을 잘 구현한 유명한 예제가 마이크로소프트가 개발자 커뮤니티에 공개했던 적이 있는 Cassini 웹 서버이고요, 또한 Mono 프로젝트에서는 XSP라는 서버를 만들어서 최근까지도 최신 버전으로 업데이트했습니다. (XSP는 최근에 메인 리포지터리가 아카이브 처리되었습니다.)

XSP가 콘솔 타입의 ASP.NET 웹 서버이다보니 컨테이너로 만들 수 있다면 정말 딱 들어맞는다고 생각해서, Mono 대신 닷넷 프레임워크에서 실행할 수 있도록 코드를 변경하고, 이것을 윈도우 컨테이너에서 띄우도록 수정한 샘플 프로젝트를 새로 제작했습니다.

이 컨테이너를 이용해서 웹 폼 ASP.NET 웹 앱을 컨테이너화 하는 예시를 다음주 (1월 19일)에 있을 닷넷콘 2023에서 구체적으로 시연하고, 레거시 웹 애플리케이션을 어떻게 모던 클라우드 애플리케이션으로 탈바꿈시킬 수 있을지 전략과 인사이트도 같이 공유드릴 수 있도록 하겠습니다!

7개의 좋아요