아직 ASP.NET Windows 플랫폼에서만 실행된다고 생각하는 사람들이 많겠지만 MS의 친 오픈소스, Linux 정책에 따라서 이제 Linux, Mac 에서도 실행된다.

 

사실 이전에도 Mono를 통해서 ASP.NETWindows 이외의 플랫폼에서 실행할 수 있었다. 그러나 이것은 Windows에 비해서 성능이 좋지 않았다. 이에 비해 현재 MS가 직접 만들고 있는 ASP.NET 5는 성능을 중요시 여기고 있다.

 

 

ASP.NET 5을 호스팅 하는 방법은 2가지 있다.

1. Microsoft.AspNet.Loader.IIS (Helios)

: IIS에서 호스팅. 기존처럼 IIS 모듈을 사용.

2. Microsoft.AspNet.Server.WebListener

: IIS에 의존하지 않고 http.sys 위에서 직접 동작하는 경량 서버.

3. Microsoft.AspNet.Server.Kestrel (Kestrel)

: libuv 라는 라이브러리 베이스의 크로스 플랫폼 서버

(현재 1번은 제외 되었다. IIS 8 이후의 HttpPlatformHandler와 ASP.NET 5 Kestrel server만 사용한다. 이것은 현재 Azure의 WEB.App에서 node.js 나 python 응용 프로그램을 호스팅하는 방식과 동일하다.)

 

이 중 3번이 설명처럼 linux, mac 에서 ASP.NET을 실행할 때 사용하는 서버이고, 이것은 Node.js에서 비동기I/O 부분을 담당하고 있는 libuv으로 만든 것이다.

MSNode.js 개발에 직접 참여하고 있어서 libuv에 대해서 잘 알고 있고, 성능에 대해서 인정하고 있기 때문에 크로스플랫폼용 네트워크 엔진으로 사용하고 있는 것 같다.

 

libuv의 성능에 대한 검증은 이미 node.js를 통해서 검증 받았으므로 ASP.NET 5 linux에서 사용할 때 성능에 대한 걱정은 하지 않아도 될 듯하다.

 

 

ps: 현재 ASP.NET 5 정식 버전은 20161분기를 목표 중이다. 지금은 완성은 되지 않았지만 linuxmac에서 실행되는 버전은 만져 볼 수 있다.

얼마 전에 본 ASP.NET 팀의 근황에서는 커뮤니티와 협력으로 성능 최적화에 공을 들이고 있었다.



저작자 표시
신고
by 흥배 2015.10.21 08:00
| 1 |