Chapter 4. 오픈 소스의 주요 요소

  • LAMP

1. LAMP 정의

LAMP는 원래의 네 가지 오픈소스 구성 요소의 이름의 약어로 명명 된 웹 서비스 스택의 전형적인 모델입니다. LAMP 구성 요소는 대체로 상호 교환 가능하며 원래의 선택에만 국한되지 않습니다. LAMP는 솔루션 스택으로서 동적 웹 사이트 및 웹 응용 프로그램을 구축 하는 데 적합 합니다. LAMP 모델은 창안 이래 무료 및 오픈 소스 소프트웨어로 구성되었습니다. 하지만 다른 구성 요소에 맞게 조정되었습니다.

2. LAMP 구성 요소

Linux, Apache, MySQL, PHP
  • 소프트웨어의 구성요소

1. 리눅스

  • 리눅스 소개

Linux는 무료 및 오픈 소스 소프트웨어 개발 및 배포 모델로 조립 된 Unix 계열의 컴퓨터 운영 체제입니다. 대부분의 Linux 배포판은 Linux 커널을 기반으로 하고 종종 패키지 관리 시스템 기반으로하는 소프트웨어 모음으로서 패키지 를 통해 완벽한 LAMP 설정을 제공 합니다. 2013 년 10 월 W3Techs에 따르면 웹 서버 시장 점유율의 58.5 %가 Debian과 Ubuntu 에서 공유 되었으며 RHEL , Fedora 및 CentOS는 함께 37.3 %를 공유했습니다.

  • 리눅스 란?

리눅스는 자유 소프트웨어와 오픈 소스 개발의 가장 유명한 표본으로 들 수 있습니다. 리눅스는 다중 사용자, 다중 작업(멀티태스킹), 다중 스레드를 지원하는 네트워크 운영 체제(NOS)입니다.

엄밀하게 따지면 이 ‘리눅스’라는 용어는 리눅스 커널만을 뜻하지만, 리눅스 커널과 GNU 프로젝트의 라이브러리와 도구들이 포함된, 전체 운영 체제(GNU/리눅스라고도 알려진)를 나타내는 말로 흔히 쓰입니다. 리눅스 배포판은 핵심 시스템 외에 대다수 소프트웨어를 포함합니다. 현재 200여 종류가 넘는 배포판이 존재합니다.

초기 리눅스는 개개인의 애호자들이 광범위하게 개발하였습니다. 이후 리눅스는 IBM, HP와 같은 거대 IT 기업의 후원을 받으며, 서버 분야에서 유닉스와 마이크로소프트 윈도우 운영 체제의 대안으로 자리잡았습니다.

리눅스는 데스크톱 컴퓨터를 위한 운영 체제로서도 인기가 늘어가고 있습니다. 지지자와 분석자들은 이와 같은 성공을 벤더 독립성과 적은 개발비, 보안성과 안전성에서 기인한다고 분석합니다.

리눅스는 처음에 인텔 386 마이크로프로세서를 위해 개발되었으나 현재는 다양한 컴퓨터 아키텍처를 지원합니다. 리눅스는 개인용 컴퓨터에서부터 슈퍼컴퓨터는 물론 휴대 전화, 스마트 TV, 개인용 비디오 레코더와 같은 임베디드 시스템까지 광범위하게 이용되고 있습니다.

  • 리눅스 라이선스

리눅스 커널과 대부분 GNU 소프트웨어는 GNU 일반 공중 사용 허가서 라이선스를 따릅니다. GNU GPL의 조항에 따르면, 수정이 가능한 소스코드를 배포해야 하며 수정된 소스코드는 반드시 같은 라이선스로 배포해야 한다. 때로 이 라이선스는 카피레프트라고 불립니다.

1997년에 리누스 토르발스는 리눅스를 GPL로 만든 것이 완벽하다고 말한 적이 있습니다. 이 라이선스보다 제약이 덜 한 것도 있습니다. 예를 들면 많은 라이브러리가 GNU LGPL(Lesser General Public License)과 같이 제약이 더 줄어든 라이선스를 사용하며 X 윈도 시스템의 경우에는 MIT 라이선스를 사용합니다.

미국의 경우 리눅스는 리누스 토르발스가 등록한 상표입니다. 1997년에 일부 개인이 상표를 등록하고 리눅스 배포자에게 상표권 사용료를 내라고 한 적이 있었습니다. 토르발스 쪽에서도 상표권을 등록하는 데 성공했습니다. 그는 상표권 침해를 막기 위해서 등록했다고 합니다. 대한민국에서도 비슷한 사건이 있었습니다.

2. 아파치

  • 아파치 소개

LAMP의 웹 서버 역할은 Apache에서 전통적으로 제공되었으며 Nginx와 같은 다른 웹 서버를 포함하고 있습니다.

아파치 HTTP 서버는 가장 인기가있다 웹 서버 공용 인터넷에 2013 년 6 월에 Netcraft는 모든 도메인에서 Apache가 모든 활성 웹 사이트 중 54.2 %를 차지하고 있으며 상위 서버의 53.3 %를 차지하는 것으로 추정했습니다. 2014 년 6 월에 Apache는 모든 활성 웹 사이트 중 52.27 %를 차지했으며 nginx 가 14.36 %를 차지했습니다.

Apache는 Apache Software Foundation 의 지원하에 열린 개발자 커뮤니티에 의해 개발되고 유지 관리됩니다 . Apache License에 따라 출시 된 Apache는 오픈 소스 소프트웨어입니다. 다양한 기능이 지원되며 그 중 많은 기능이 Apache의 핵심 기능을 확장하는 컴파일 된 모듈로 구현됩니다. 이는 서버 측 프로그래밍 언어 지원에서부터 인증 체계에 이르기까지 다양합니다.

  • 아파치 라이선스

아파치 2.0 라이선스는 누구나 해당 소프트웨어에서 파생된 프로그램을 제작할 수 있으며 저작권을 양도, 전송할 수 있는 라이선스 규정을 의미합니다. 아파치 라이선스에 따르면 누구든 자유롭게 아파치 소프트웨어를 다운 받아 부분 혹은 전체를 개인적 혹은 상업적 목적으로 이용할 수 있으며 재배포시에는 원본 소스 코드 또는 수정한 소스 코드를 반드시 포함시켜야 하는 것은 아니고 아파치 라이선스, 버전 2.0을 포함시켜야 하며 아파치 소프트웨어 재단에 개발된 소프트웨어라는 것을 명확하게 밝혀야 합니다.

3. MySQL

  • MySQL 소개

LAMP의 관계형 데이터베이스 관리 시스템(RDBMS) 으로서의 MySQL의 본래 역할은 MariaDB나 PostgreSQL 과 같은 다른 RDBMS 또는 MongoDB 와 같은 NoSQL 데이터베이스에 의해 번갈아 제공되었습니다.

MySQL은 A는 멀티 스레드 , 다중 사용자 , SQL의 데이터베이스 관리 시스템 (DBMS), 인수 썬 마이크로 시스템즈 다음 인수 한 2008 년, 오라클 , 2010 년 초기 년 이후, MySQL의 팀은 GNU 일반 공중 사용 허가서 (General Public License) 의 조건하에 다양한 소스 코드를 사용할 수 있게했으며 , 다양한 독점 계약을 맺었다.

MariaDB 는 커뮤니티 개발자들이 개발 한 MySQL의 포크 입니다. PostgreSQL 은 MySQL과 관련없는 ACID 호환 관계형 데이터베이스이기도합니다.

MongoDB를은 널리 사용되는 오픈 소스 NoSQL에의 기존의 테이블 기반 피하고 데이터베이스 관계형 데이터베이스에 찬성 구조 JSON (형식 호출 동적 스키마와 -like 문서 BSON을 쉽고 빠르게 애플리케이션의 특정 유형의 데이터의 통합을 만드는) 에 사용된다.

  • MySQL 란?

MySQL은 세계에서 가장 많이 쓰이는 오픈 소스의 관계형 데이터베이스 관리 시스템(RDBMS)입니다. 다중 스레드, 다중 사용자 형식의 구조질의어 형식의 데이터베이스 관리 시스템으로서 MySQL AB가 관리 및 지원하고 있으며, Qt 처럼 이중 라이선스가 적용됩니다. 하나의 옵션은 GPL이며, GPL 이외의 라이선스로 적용시키려는 경우 전통적인 지적재산권 라이선스의 적용을 받습니다.

위와 같은 지원 방식은 자유 소프트웨어 재단이 프로젝트에 저작권을 적용하는 방법과 비슷한 JBoss의 모델과 유사합니다. 그러나 기반코드가 개인의 소유자에게 저작권이 있고 커뮤니티에 의해 개발되는 아파치 프로젝트와는 다릅니다.

MySQL AB는 MySQL 라이선스에 의한 판매 지원 및 서비스 계약 시스템을 개발, 유지합니다. 그리고 또한 인터넷을 통한 전 세계의 협력자들을 고용합니다. MySQL AB는 David Axmark, Allan Larsson 그리고 Michael "Monty" Widenius에 의해 설립되었습니다.

MySQL AB는 또한 MaxDB라고 불리는 MySQL AB와는 기반코드가 다른 데이터베이스 관리 시스템을 판매하고 있습니다.

썬 마이크로시스템즈에 10억 달러에 인수되었으나, 썬 마이크로시스템즈가 오라클에 인수되며 같이 넘어갔습니다.

4. PHP

LAMP의 응용 프로그래밍 언어로서의 PHP의 역할은 Perl 이나 Python 과 같은 다른 언어에서도 수행되었습니다. PHP는 웹 개발 용으로 설계된 서버 측 스크립팅 언어 이지만 범용 프로그래밍 언어로도 사용 됩니다. PHP 코드는 결과 웹 페이지를 생성하는 PHP 프로세서 모듈을 통해 웹 서버에 의해 해석 됩니다. PHP 명령은 외부 파일을 호출하여 데이터를 처리하는 대신 HTML 소스 문서에 직접 삽입 할 수도 있습니다. 또한 커맨드 라인 인터페이스 기능 을 포함하도록 진화 했으며 독립형 그래픽 응용 프로그램 에서도 사용할 수 있습니다.

PHP는 무료 소프트웨어의 조건에 따라 출시 된 PHP 라이센스과 호환되지 GNU 일반 공중 사용 허가서 때문에 용어의 사용에 대한 제한의 PHP 라이센스 곳 (GPL) PHP

Perl 은 높은 수준의 범용 해석되고 동적 인 프로그래밍 언어 계열입니다 . 이 패밀리의 언어에는 Perl 5 및 Perl 6 이 포함됩니다. 그들은 현대의 유닉스 커맨드 라인 툴의 임의의 데이터 - 길이 제한없이 고급 텍스트 프로세싱 기능을 제공한다. 텍스트 파일의 조작을 용이하게한다 . Perl 5는 1990 년대 후반 파싱 (parsing) 능력 으로 인해 웹용 CGI 스크립팅 언어 로서 널리 보급되었습니다.

파이썬은 널리 사용되는 범용 고급 프로그래밍 언어입니다. Python은 객체 지향 , 명령 적 , 기능적 및 절차 적 패러다임 을 비롯한 여러 프로그래밍 패러다임을 지원합니다 . 그것은 기능 동적 타입 시스템, 자동 메모리 관리 하는 표준 라이브러리 , 그리고 엄격한 사용 공백을 다른 동적 언어 와 마찬가지로 Python은 종종 스크립팅 언어로 사용되지만 광범위한 비 스크립팅 컨텍스트에서도 사용됩니다.

PHP는 이 CGI(Common Gateway Interface)를 구현하기 위한 하나의 도구랍니다. PHP 말고라도 ASP나 Perl 같은 CGI 스크립트, C, Java 같은 프로그램으로도 CGI를 구현할 수는 있습니다. 곧 PHP란 CGI를 구현하기 위한 수많은 프로그램 중 한 가지입니다.

  • 오픈소스 네트워킹 프로젝트 10가지

1. CORD

(CORD, Central Office Re-architected as a Data Center, 데이터센터로 재설계된 중앙국) 프로젝트의 기본 개념은 통신 및 서비스 제공업체 환경의 중앙국에는 네트워크의 여러 측면을 제어하기 위해 일반적으로 수많은 하드웨어와 소프트웨어가 포함된다는 것입니다. CORD의 목표는 범용화된 서버, 화이트박스 스위치 및 오픈소스 소프트웨어를 사용해 중앙국을 위한 소프트웨어 정의 운영 플랫폼을 만드는 것입니다.

2. FD.io

FD.io는 Fast Data – input/output의 약어로, 네트워킹에서 데이터 효율성 증대를 목표로 하며 다양한 오픈소스 라이브러리로 구성된 오픈소스 프로젝트입니다. FD.io는 오픈소스 네트워킹 환경에서 최고 처리량, 최저 지연, 가장 효율적인 IO 서비스를 달성하는 데 초점을 둡니다. FD.io에는 몇 가지 집중 영역이 있는데, 여기에는 시스코가 후원하는 벡터 패킷 처리(VPP, Vector Packet Processing) 프로젝트를 비롯해 하드웨어 가속화, 프로그래밍 편의성 및 다른 시스템과의 통합에 중점을 두는 여러 영역이 포함됩니다. FD.io 구성 요소는 일반적으로 오픈데이라이트(OpenDaylight), 오픈NFV(OpenNFV), 오픈스택(OpenStack)과 같은 다른 프로젝트와 함께 사용됩니다. 구성 요소는 x86, ARM, 파워PC(PowerPC) 등 다양한 일반 하드웨어에서 작동하도록 설계됐습니다. FD.io 프로젝트의 플래티넘 회원사로는 시스코, 에릭슨, 인텔 등이 있습니다.

3. Mano

마노는 소프트웨어 정의 네트워크의 관리 및 오케스트레이션과 네트워크 기능 가상화를 위한 오픈소스 소프트웨어를 지향합니다. 멀티 사이트 구축 지원, NFV 온보딩, 가상 네트워크 기능 패키징, SDN 업그레이드 및 설치, 개발 환경 구성, 서비스 모델링 및 플랫폼 인식과 같은 핵심 영역에 집중합니다. 이 프로젝트는 유럽 통신 표준 기구(ETSI)가 관할합니다.

4. ONAP

오픈 네트워킹 자동화 플랫폼, 즉 ONAP은 AT&T가 후원하는 ECOMP와 오픈-O(Open-O) 오케스트레이션 플랫폼, 두 가지 프로젝트가 결합된 것입니다. ONAP은 주로 서비스 제공업체, 특히 통신 사업자가 SDN을 운용하고 가상 네트워크 기능을 제공하기 위한 오픈소스 자동화 및 오케스트레이션 플랫폼을 제공하는 데 중점을 두고 있습니다. 1,000만 줄 이상의 방대한 ONAP 코드에는 네트워크 및 네트워크 기능 온보딩, 제어, 네트워크 전반의 인벤토리 및 유지관리 정책을 위한 프로세스가 포함됩니다.

5. ONOS

오픈 네트워킹 운영체제(ONOS, Open Networking Operating System)는 오픈소스 기반의 통신 사업자급 소프트웨어 정의 네트워킹(SDN) 운영체제를 표방합니다. SDN 소프트웨어를 구축 또는 실행하기 위해 오픈소스 운영체제를 찾는 서비스 제공업체를 주 대상으로 합니다.

6. 오픈데이라이트(OpenDaylight)

2013년에 설립된 이 모듈형 오픈소스 SDN 컨트롤러는 리눅스 재단 산하에 있습니다. 기본적으로 사용자가 일부분 또는 전체를 사용해서 가상 네트워크를 위한 소프트웨어 컨트롤러를 만들 수 있는 일련의 소프트웨어 패키지입니다. 브로케이드, HPE, 에릭슨, 세로(Serro), 이노사이브(Inocybe)를 포함한 많은 업체가 상용 SDN 컨트롤러에서 이 오픈소스 코드를 사용하거나 지원합니다. 리눅스 재단을 위한 소스 코드 개발을 관리하는 오픈데이라이트 재단은 전 세계적으로 27개의 오픈데이라이트 사용자 그룹이 있다고 전했습니다.

7. 오픈플로우(OpenFlow)

오픈플로우는 소프트웨어 정의 네트워킹 시장에서 최초의 표준 통신 프로토콜로 통합니다. 스탠포드 대학에서 개발된 오픈플로우의 통신 표준은 SDN 환경에서 제어 플레인과 포워딩 데이터 플레인의 통신 방법을 규정합니다. 오픈플로우 자체는 오픈소스 프로젝트가 아니지만 오픈플로우 및 오픈플로우를 조직한 오픈 네트워킹 재단이 개발한 표준은 SDN 시장에서 가장 중요한 표준입니다. 알카텔-루슨트, 아리스타(Arista), 브로케이드, 빅 스위치, 시에나(Ciena), 시스코, 큐뮬러스(Cumulus), 델, 에릭슨, 익스트림 네트웍스, HPE, 화웨이, 주니퍼, 피카8 등 많은 업체가 적어도 일부 라우터와 스위치에서 오픈플로우 표준을 지원합니다.

8. 오픈NFV(OpenNFV)

네트워크 기능 가상화(NFV)는 로드 밸런서, 방화벽과 같은 전용 하드웨어에 탑재되는 네트워킹 애플리케이션을 대체해서 이를 소프트웨어로 구현한다는 개념입니다. 오픈NFV의 목표는 오픈소스 NFV 구성 요소를 만드는 것입니다. 오픈NFV는 시스템 수준 통합을 제공하기 위해 기업에서 NFV 구성 요소를 구축해 배포할 수 있도록 레퍼런스 NFV 플랫폼을 만들었습니다. 지금까지 오픈NFV의 주 사용처는 서비스 제공업체 및 통신 사업자입니다. 오픈NFV 프로젝트에 속한 53개 기업에는 AT&T, 시스코, 델, 에릭슨, HPE, 화웨이, IBM, 인텔, 주니퍼, 레드햇, 수세 등이 포함됩니다.

9. 오픈스위치(OpenSwitch)

오픈스위치는 리눅스 재단에서 호스팅하는 모듈형의 리눅스 기반 오픈소스 네트워크 운영체제(NOS)입니다. 2, 3계층 기능을 제공하는 소프트웨어 플랫폼으로, 오픈 컴퓨트(Open Compute) 프로젝트의 사양을 사용해 설계된 스위치, 라우터와 같은 하드웨어에서 실행됩니다. 오픈스위치 프로젝트의 주요 회원사에는 베어풋 네트웍스(Barefoot Networks), 브로드컴, 캐비엄(Cavium), 델 EMC, 익스트림 네트웍스, HPE, 멜라녹스(Mellanox), 스냅라우트(Snaproute)가 있습니다.

10. 오픈브이스위치(OpenvSwitch)

흔히 OVS라고 부르며, 아파치 라이선스로 배포되는 다계층 오픈소스 가상 스위치입니다. OVS는 네트워킹 환경에서 네트워킹 스위치를 가상으로 또는 소프트웨어로 구현해 사용할 수 있습니다. OVS는 호스트 내의 가상머신 또는 호스트 간 가상머신을 연결하는 데 사용됩니다. 오픈플로우와 같은 일반적인 네트워킹 프로토콜과 트리 아키텍처, VLAN 태깅 및 포트 미러링 관련 표준도 지원합니다.

참고

results matching ""

    No results matching ""