오픈소스 개발 및 기술을 생각해보면, 몇 가지 장점이 있죠.
1. 모둘화 아키텍처
Apache HTTP 서버 등이 좋은 예 입니다. 모듈화의 장점으로 인해 참여하는 개발자의 수가 굉장히 많은 것이 특징입니다.
2. 다양한 프로그래밍 언어 활용
언어에 대한 제약이 적습니다. 이로 인해 많은 개발자들이 참여를 하게 되고, PHP/Perl/Python/Java 등의 다양한 언어로 인해 Linux 같은 많은 프로젝트가 생겨나고 있습니다.
3. 피드백에 의한 개발
소프트웨어를 개발하고, 튜닝하는데 프로젝트 매니저는 큰 영향을 주게 됩니다. 비록 코드를 수정하지는 않더라도 여러 결점들에 대해서는 피드백을 주고, 결과적으로 최종 사용자는 보다 높은 품질의 제품을 사용하게 됩니다.
4. 필요한 부분이 개발되는 시스템
리눅스에서 가장 자주 보여지는 어플리케이션들은 특정한 역할이 필요하기에 개발된 것입니다.
(Gentoo, BusyBox 등)
5. 시스템 어드민이 직접 코드를 작성
숙련된 시스템 어드민이 최종 코드를 작성하는 능력이 있다는 것은 기술이 특정 환경에 효과적으로 작동하고, 개발자들에게 좋은 피드백을 제공할 수 있다는 것을 의미합니다. 대부분의 Linux, Unix 환경에서 대부분의 시스템 어드민은 유능한 프로그래머 이기도 합니다. (Shell)
6. 표준 기반의 통신
표준이 IETF, W3C 이든 아니면 코드 구현 자체이든지, 표준에 기반한 통신을 하기에 성공할 가능성이 크고, 더 규모가 큰 소프트웨어 생태계를 만드는 경향이 있습니다.
위와 같은 6가지의 아이디어가 Windows Server 2008에 적용되었습니다.
1. 모둘화 아키텍처
IIS7이 가장 대표적입니다. IIS7은 40개의 개별 모듈로 아키텍처가 구성되었고, 커뮤니티 개발자에 의해 재작성거나 추가될 수 있도록 설계되었습니다. 결과적으로 성능이 향상되었고, 개별적인 추가로 인해 지속적인 기능 향상이 이루어지고 있습니다.
2. 다양한 프로그래밍 언어 활용
PHP를 IIS7에 지원하고 있고, FastCGI로 인해 성능 및 안정성이 대폭 향상되었습니다. PHP는 WS2008에서의 구동이 인증되었습니다. 또한, .NET 언어 이외의 다른 언어에 대한 런타임, 보안, 관리를 지속적으로 추가 및 확대하고 있습니다. 기존에 PHP 기반의 모든 어플리케이션이 윈도우 서버, IIS, SQL Server에서 구동될 수 있도록 테스트를 계속하고 있습니다. 제로보드가 IIS7에 최적화 되어 구동될 수 있는 방안을 고려중에 있습니다.
3. 피드백에 의한 개발
개발자, 고객 피드백에 의해 특정 기능을 개발하는 것이 지속적으로 이루어지고 있습니다. RODC(Read Only Domain Controller) 등이 대표적인 예입니다.
4. 필요한 부분이 개발되는 시스템
Windows Server Core 같은 경우는 보안 공격 영역을 최소화하고, 하드웨어 상의 메모리 FootPrint를 적게 사용하도록 만들어져 있습니다. 또한, 윈도우 어드민들이 운영체제의 Low Level 구조에 대해 훨씬 더 많이 알 수 있는 기회를 제공하고 있습니다.
5. 시스템 어드민이 직접 코드를 작성
파워쉘을 통해 WMI의 완전한 영역을 마스터할 수 있고, 재사용 가능한 Low Level 스크립트를 사용할 수 있게 되었습니다.
6. 표준 기반의 통신
카드스페이스 (X.509, SAML, Kerberos 토큰), 웹 서비스 스택 (Open Specification Promise의 38개 웹 서비스 뿐 아니라, Apache의 Axis 웹 서비스 스택과 상호운영 가능한 구현 포함), Xen 가상화 같은 신규 표준과도 베타로 지원을 하고 있습니다.
지속적으로 오픈소스 개발 원칙들로부터 배우고 있습니다. 마이크로소프트가 오픈소스로부터 배우는 것과 동일하게 오픈소스 진영 역시 마이크로소프트로 배우고 있다고 밝혔습니다. "What Open Source can learn from Microsoft"라는 Linux Foundation의 Jim Zemlin의 글을 참고하세요. (OSBC, 3/25) 서로 다른 환경의 IT를 사용하는 조직들이 진화하면서, 서로의 베스트프랙티스를 배워나가고, 더 좋은 소프트웨어를 만들고 있는 것입니다. 결과적으로 우리 모두가 앞서 나가게 하는 계기가 되는 것이지요.
(Sam Ramji의 글을 인용합니다)
1. 모둘화 아키텍처
Apache HTTP 서버 등이 좋은 예 입니다. 모듈화의 장점으로 인해 참여하는 개발자의 수가 굉장히 많은 것이 특징입니다.
2. 다양한 프로그래밍 언어 활용
언어에 대한 제약이 적습니다. 이로 인해 많은 개발자들이 참여를 하게 되고, PHP/Perl/Python/Java 등의 다양한 언어로 인해 Linux 같은 많은 프로젝트가 생겨나고 있습니다.
3. 피드백에 의한 개발
소프트웨어를 개발하고, 튜닝하는데 프로젝트 매니저는 큰 영향을 주게 됩니다. 비록 코드를 수정하지는 않더라도 여러 결점들에 대해서는 피드백을 주고, 결과적으로 최종 사용자는 보다 높은 품질의 제품을 사용하게 됩니다.
4. 필요한 부분이 개발되는 시스템
리눅스에서 가장 자주 보여지는 어플리케이션들은 특정한 역할이 필요하기에 개발된 것입니다.
(Gentoo, BusyBox 등)
5. 시스템 어드민이 직접 코드를 작성
숙련된 시스템 어드민이 최종 코드를 작성하는 능력이 있다는 것은 기술이 특정 환경에 효과적으로 작동하고, 개발자들에게 좋은 피드백을 제공할 수 있다는 것을 의미합니다. 대부분의 Linux, Unix 환경에서 대부분의 시스템 어드민은 유능한 프로그래머 이기도 합니다. (Shell)
6. 표준 기반의 통신
표준이 IETF, W3C 이든 아니면 코드 구현 자체이든지, 표준에 기반한 통신을 하기에 성공할 가능성이 크고, 더 규모가 큰 소프트웨어 생태계를 만드는 경향이 있습니다.
위와 같은 6가지의 아이디어가 Windows Server 2008에 적용되었습니다.
1. 모둘화 아키텍처
IIS7이 가장 대표적입니다. IIS7은 40개의 개별 모듈로 아키텍처가 구성되었고, 커뮤니티 개발자에 의해 재작성거나 추가될 수 있도록 설계되었습니다. 결과적으로 성능이 향상되었고, 개별적인 추가로 인해 지속적인 기능 향상이 이루어지고 있습니다.
2. 다양한 프로그래밍 언어 활용
PHP를 IIS7에 지원하고 있고, FastCGI로 인해 성능 및 안정성이 대폭 향상되었습니다. PHP는 WS2008에서의 구동이 인증되었습니다. 또한, .NET 언어 이외의 다른 언어에 대한 런타임, 보안, 관리를 지속적으로 추가 및 확대하고 있습니다. 기존에 PHP 기반의 모든 어플리케이션이 윈도우 서버, IIS, SQL Server에서 구동될 수 있도록 테스트를 계속하고 있습니다. 제로보드가 IIS7에 최적화 되어 구동될 수 있는 방안을 고려중에 있습니다.
3. 피드백에 의한 개발
개발자, 고객 피드백에 의해 특정 기능을 개발하는 것이 지속적으로 이루어지고 있습니다. RODC(Read Only Domain Controller) 등이 대표적인 예입니다.
4. 필요한 부분이 개발되는 시스템
Windows Server Core 같은 경우는 보안 공격 영역을 최소화하고, 하드웨어 상의 메모리 FootPrint를 적게 사용하도록 만들어져 있습니다. 또한, 윈도우 어드민들이 운영체제의 Low Level 구조에 대해 훨씬 더 많이 알 수 있는 기회를 제공하고 있습니다.
5. 시스템 어드민이 직접 코드를 작성
파워쉘을 통해 WMI의 완전한 영역을 마스터할 수 있고, 재사용 가능한 Low Level 스크립트를 사용할 수 있게 되었습니다.
6. 표준 기반의 통신
카드스페이스 (X.509, SAML, Kerberos 토큰), 웹 서비스 스택 (Open Specification Promise의 38개 웹 서비스 뿐 아니라, Apache의 Axis 웹 서비스 스택과 상호운영 가능한 구현 포함), Xen 가상화 같은 신규 표준과도 베타로 지원을 하고 있습니다.
지속적으로 오픈소스 개발 원칙들로부터 배우고 있습니다. 마이크로소프트가 오픈소스로부터 배우는 것과 동일하게 오픈소스 진영 역시 마이크로소프트로 배우고 있다고 밝혔습니다. "What Open Source can learn from Microsoft"라는 Linux Foundation의 Jim Zemlin의 글을 참고하세요. (OSBC, 3/25) 서로 다른 환경의 IT를 사용하는 조직들이 진화하면서, 서로의 베스트프랙티스를 배워나가고, 더 좋은 소프트웨어를 만들고 있는 것입니다. 결과적으로 우리 모두가 앞서 나가게 하는 계기가 되는 것이지요.
(Sam Ramji의 글을 인용합니다)