ABOUT ME

-

Today
-
Yesterday
-
Total
-
  • [OpenStack] OLC - Introduce to OpenStack - 1,2
    Cloud Computing 2017. 11. 20. 15:15

     

    OpenStack

     

    - 오픈소스와 클라우드 컴퓨팅

     

     

    클라우드 컴퓨팅이란?

     

    클라우드 컴퓨팅은 resources on demand (리소스를 on demand 형태로 사용할 수 있는 서비스) 이다.

    리소스의 세 가지 정의(서비스, 자원, 능력)는 다음과 같다.

     

    1. 서비스 : 업무용 소프트웨어, 이메일, 저장공간, 데이터 분석, 개발 및 테스트용 소프트웨어

     

    SaaS, PaaS : 저장공간, 메일 등의 서비스를 웹상에서 서비스로 제공하는 것. (dropbox, 다음클라우드, gmail, google docs, google App Engine)

     

     

    2. 자원/재원 : 컴퓨터 (CPU,RAM), 하드디스크(스토리지), 네트워크, 개발도구

     

    IaaS(Infrastructure as a Service) : 아마존 AWS, KT ucloud biz, Google Compute Engine ...

     

     

    3. 리소스들을 제어/관리할 수 있는 능력

     

    API로 모든 기능을 제공 (소프트웨어로 프로그래밍을 할 수 있게 만들어줌)

     

     

    클라우드 컴퓨팅은 리소스를 사용하고 소비하는 방법을 바꾸어 버림. 리소스 사용료를 시간당 지불하고 사용한 만큼 지불하고 신속하고 유연하게 리소스를 사용할 수 있게됨. 소프트웨어가 자동으로 관리 할 수 있도록 프로그래밍이 가능함.

     

     

     

     

    IaaS(Infrastructure as a Service)

    오픈스택은 IaaS에서 사용되는 대표적인 오픈소스 스프트웨어 기반 클라우드임.

     

     

     

    클라우드 서비스를 제공하기 위해서는 데이터센터/서버가 필요함.

    Open Compute라는 데이터센터에 들어가는 공조기술이나 서버 보드를 디자인하고 만드는 기술을 오픈한 오픈 프로젝트가 있다.

     

    그리고 그 서버에 OS를 올렸으면, 가상화가 필요하다. 내가 가지고 있는 서버의 자원( CPU, RAM, 하드디스크)을 클라우드 시스템이 사용할 수 있도록 가상화하는 기술이다. 대표적인 가상화 기술은 하이퍼바이저(Xen, KVM)이 존재하며, 상용에서 많이 사용되고 있다.

     

    그리고 네트워크와 스토리지를 제공하는 기술이 있다.

     

    이와 같은 기술들을 연동하고, 생성, 변경을 시키고, 리소스를 하나의 완성된 서버/서비스로 제공할 수 있는 통합 관리/제어할 수 있는 기술이 필요하다. 이 기술을 Management Stack/Family Controller/Cloud OS라고 불린다. 여기에 해당하는 것이 OpenStack, CloudStack, OpenNebula와 같은 솔루션들이 이 레이어에 해당한다.

    이 Management Stack은 가상 리소스들을 가지고 서로 연동을 시켜 서비스로 제공할 수 있도록 API를 제공하고, 자동으로 구성하기 위한 automation(Puppet, Chef, Crowbar, Juju)이나 모니터링, Metering/Billing, 멀티테넌시를 위한 Account Management와 같은 다양한 관리 기능을 포함한다. 클라우드 서비스를 구축할 수 있는 가장 중요한 기술.

     

     

    다양한 기술들의 모든 API를 통합 제어하기 위한 API proxy나 Multi-cloud open API와 같은 Common API 기술이 존재하며, 이런 API 위에서 어플리케이션 (빅데이터 분석, PaaS, RDB/NoSQL 등)을 서비스 형태로 올리는 구조임.

     

     

     

     

    가상화 기술

    Hypervisor

    2011년까지는 Xen을 많이 사용했으나 실제로 커널 개발관리 조직에서 개발하는 KVM이 성능이 향상되면서, 많이 사용되기 시작함.

     

    - Xen

    - KVM: 리눅스 커널에 포함되어 있는 하이퍼바이저

     

     

     

     

    Management Stack/Cloud Operation System

    가장 치열한 경쟁구도를 이루는 분야중 하나

    컴퓨트, 네트워크, 스토리지등 다양한 리소스들을 연동하여 통합적으로 제어/관리가 가능케 하며, 서비스로 구현하기 위한 미터링, 모니터링, 자동화 기능등을 제공하며, 이러한 모든 기능을 API로 제공하는 플랫폼이다.

     

    오픈소스 기반의 기술

    - CloudStack : Citrix에서 2012년에서 아파치 재단에 있는 오픈소스 프로젝트

    - OpenSTack : Racksapce/NASA가 시작하여, Openstack 재단으로 전환 완료함. 현재 가장 강력한 커뮤니티와 에코시스템을 가진 오픈소스 프로젝트임. 각 리눅스 배포판 회사들에서 상용버전을 제공함.

     

     

     

    과거의 오픈소스 클라우드 서비스

    public cloud : 대중들에게 서비스 제공

    private cloud : 회사 내부에서 사용하기 위한 클라우드 서비스

     

    과거에는 퍼블릭에서는 아마존, 프라이빗에서는 Vmware가 유일했음.

    2011년에 openstack이 나오고, 퍼블릭과 프라이빗 클라우드 구축을 위한 다양한 기술이 나옴. (OpenNebula, Eucalyptus, CloudStack ...)

     

     

     

     

    OpenStack 특징

     

    1. SW이자 커뮤니티

     

    - Public과 Private 클라우드를 구축하기 위한 오픈소스 SW

    - 서버, 스토리지, 네트워크, 가상화 기술들과 같은 리소스들을 모으고, 이들을 제어하고 운영하기 위한 Cloud Operating System

    - 오픈소스 기반으로 클라우드를 구축하고 운용하고자 하는 오픈소스 개발자, 회사, 사용자들로 이루어진 커뮤니티

     

    2. 오픈소스

    Apache 2.0 라이선스, No enterprise version

     

    3. Open Design

    design summit : 개발자들이 언제든지 참여할 수 있는 오픈 디자인을 가지는데 다음 릴리즈에서 개발될 구조나 기능, 전체적 로드맵에 대해서 논의하고 결정하는 자리.

     

    4. Open Development

    lanuchpad와 github를 통해 이루어지는 공개 개발

     

    5. Open community

    공개된 커뮤니티를 가짐

     

    6. Cloud Operationg System

    API 혹은 프로그램을 통해서 사용자에게 가상서버를 제공함

     

     

     

     

Designed by Tistory.