$\require{mediawiki-texvc}$

연합인증

연합인증 가입 기관의 연구자들은 소속기관의 인증정보(ID와 암호)를 이용해 다른 대학, 연구기관, 서비스 공급자의 다양한 온라인 자원과 연구 데이터를 이용할 수 있습니다.

이는 여행자가 자국에서 발행 받은 여권으로 세계 각국을 자유롭게 여행할 수 있는 것과 같습니다.

연합인증으로 이용이 가능한 서비스는 NTIS, DataON, Edison, Kafe, Webinar 등이 있습니다.

한번의 인증절차만으로 연합인증 가입 서비스에 추가 로그인 없이 이용이 가능합니다.

다만, 연합인증을 위해서는 최초 1회만 인증 절차가 필요합니다. (회원이 아닐 경우 회원 가입이 필요합니다.)

연합인증 절차는 다음과 같습니다.

최초이용시에는
ScienceON에 로그인 → 연합인증 서비스 접속 → 로그인 (본인 확인 또는 회원가입) → 서비스 이용

그 이후에는
ScienceON 로그인 → 연합인증 서비스 접속 → 서비스 이용

연합인증을 활용하시면 KISTI가 제공하는 다양한 서비스를 편리하게 이용하실 수 있습니다.

리눅스 컨테이너를 이용한 웹기반의 DevOps 플랫폼 연구
A Study on A Web-Based DevOps Platform Using Linux Container 원문보기

한국융합학회논문지 = Journal of the Korea Convergence Society, v.10 no.12, 2019년, pp.71 - 80  

정근훈 (세림티에스지 연구소) ,  박준석 (세림티에스지) ,  이극 (한남대학교 컴퓨터공학과)

초록
AI-Helper 아이콘AI-Helper

DevOps는 소프트웨어 개발과 운영의 합성어로 소프트웨어 생명주기 동안 사용되는 다양한 환경과 도구들이 존재한다. DevOps는 서비스를 제공함에 있어 빠르고 안전한 전개가 핵심이다. 이를 위해 Java, C/C++, Python, PHP, Ruby, Node.js, goLang 의 7가지 개발 언어와 전자정부프레임워크, Spring, Struts, DJango, Laravel, Rails, Express의 7가지 프레임워크 서비스를 사전에 제공하는 웹 기반의 통합 IDE를 제안한다. 통합 IDE는 플랫폼 내에서 웹 기반의 에디터를 통해 직접 개발이 가능하며, 리눅스 컨테이너를 이용하여 원 클릭으로 운영환경 이관이 가능하도록 구현하였다. 제안한 플랫폼은 개발 소스에 대해 컴파일 시간, 배포 시간, 배포된 앱의 처리량에 대한 성능 평가가 이루어졌으며, 상용 수준의 클라우드 서비스를 제공할 수 있는 성능을 보여준다.

Abstract AI-Helper 아이콘AI-Helper

DevOps is a combining which means giving a diverse environments for software development and operations through whole software lifecycle. The key value of the proposed DevOps platform is the fast and stable service capability for a software development and operation environment. To do this, the DevO...

주제어

표/그림 (17)

AI 본문요약
AI-Helper 아이콘 AI-Helper

* AI 자동 식별 결과로 적합하지 않은 문장이 있을 수 있으니, 이용에 유의하시기 바랍니다.

제안 방법

  • HW인프라는 x86서버를 기본으로 설계하여 범용성을 높였으며, 클라우드 환경은 오픈스택을 사용하여 VM을 생성하였다. 이는 제안 시스템의 확장성 및 타 시스템으로의 이식성을 염두에 둔 설계이다.
  • 그러나, 제안 시스템의 서비스 컨테이너 중 프레임워크 컨테이너는 그 역할에 따라 Web, WAS, DB의 3가지컨테이너로 분리되어 운영되기 때문에 서로 간의 통신은 필수적이다. SeCM의 Overlay Network는 이렇게 분리되어 있는 네트워크 간에 통신을 가능하게 하기 위하여 Host의 기본 네트워크 위에 또 다른 네트워크를 덧씌우는 개념으로 구현하였다. SeCM Overlay Network는 구성 시 자체적인 네트워크 인터페이스를 생성하며, 컨테이너 네트워크 인터페이스 브릿지에 강제로 Overlay 네트워크 인터페이스의 CIDR로 사용하도록 설정한다.
  • 각 환경별 Engine은 사용자의 요청정보를 SeCM이 인식할 수 있는 JSON Template형태로 변환하는 작업을 수행 후 완성된 Template를 SeCM에 전달하여 컨테이너 관련 작업을 수행한다.
  • 개발/운영환경을 사용자에게 제공할 수 있는 Web Portal인 CodingLab을 통해 사용자가 개발환경에서 개발한 웹 프로젝트를 운영환경으로 손쉽게 이관하여 운영 할 수 있도록 구현하였다.
  • 개발자가 서비스를 목표로 프로젝트를 생성하고 웹상에서 프로그램 개발 및 테스트를 진행하고 개발이 완료된 프로그램을 운영환경으로 연계하여 배포할 수 있는 웹 기반의 통합 개발 환경인 웹 IDE를 설계하였으며, 제공 기능은 다음과 같다.
  • 웹은 기본적으로 클라이언트에서 서버로 가는 단방향성이지만, 채팅과 같은 실시간 양방향 애플리케이션이나 쪽지와 같이 서버에서 클라이언트로 알림을 보내줘야 하는 요구 사항으로 인해 여러 가지 기법이 생겨났다. 그 중 자바스크립트 기반의 Ajax가 유행하면서 몇 가지 기법이 생겨났는데, 대표적인 방법이 클라이언트가 서버에게 주기적으로 요청을 보내는 Polling, 연결을 항상 유지시키는 Polling 방법인 Long Polling, 그리고 한번 연결되면 계속해서 그 연결을 통해서 이벤트 메시지를 보내는 방식으로 재연결에 대한 부하가 없는 Streaming 방식이 있으며, 본 구현에는 Streaming 방식을 이용하여 웹 상에서 사용자 컨테이너 OS를 제어할 수 있는 터미널환경을 설계하였다.
  • 10과 같이 개발자가 프로그래밍 언어 또는 프레임워크를 웹상에서 개발할 수 있도록 구현하였다. 동일 프로젝트를 개발 중인 타 사용자와의 협업을 위해 채팅기능도 구현하였다.
  • 베이스 컨테이너는 Fig. 7과 같이 Linux OS 중 CentOS 7 와 Ubuntu 14.04 LTS 버전을 기반으로 하고 각각 yum 과 apt 모듈을 통해 패키지를 최신화 하였다. 그 위에 웹 IDE와 WebTerm 모듈을 탑재하였다.
  • 웹 터미널은 브라우저를 통해 현재 실행 중인 사용자 컨테이너 터미널을 표시하기 위한 것이다. 사용자는 웹터미널을 통해 사용자 컨테이너 터미널에 명령어를 실행할 수 있고 그 결과 또한 웹 터미널을 통해 확인할 수 있도록 구현하였다
  • 성능 평가를 위해 Code 컴파일 및 응답시간, 운영환경에 배포된 App 로딩시간, 운영환경에 배포된 App에 대한 처리량을 측정하였다
  • 운영환경에 배포되는 컨테이너 JSON Template은 실 운영환경에 배포된 WEB 서버와 WAS 의 개수를 사용자의 의도대로 Scale in/out이 가능할 수 있도록 하며, 24시간/365일 무중단 상태를 보장해야하기 때문에 배포된 컨테이너가 어떠한 사유에 의해 정지되더라도 DownTime이 없이 바로 새로운 컨테이너로 대체할 수 있도록 구현하였다.
  • SeCM Overlay Network는 구성 시 자체적인 네트워크 인터페이스를 생성하며, 컨테이너 네트워크 인터페이스 브릿지에 강제로 Overlay 네트워크 인터페이스의 CIDR로 사용하도록 설정한다. 이를 통해 컨테이너가 새로 생성될 때 컨테이너 네트워크인터페이스가 해당 CIDR을 기반으로 IP를 할당해 컨테이너간 통신이 가능하도록 구현하였다.
  • Overlay Network를 통해 컨테이너간 통신이 가능해졌지만 SeCM의 Host들은 클라우드 내부에 존재하기 때문에 기본적으로 사용자가 다이렉트로 컨테이너에 접속하는 것은 불가능하다. 이를 해결하기 위해 DNS Discovery모듈을 개발하여 컨테이너와 외부와의 통신을 가능하게 하였다. SeCM Engine 모듈이 SeCM과 통신하여 컨테이너를 생성한 후 컨테이너의 네트워크 정보를 제공받아 Domain Name 정보를 구성한다.
  • 이와 같이 모든 컨테이너의 종합적인 관리 및 모니터링 기능을 수행하기 위해 컨테이너 매니저 SeCM을 구현하였다.
  • 제안 시스템은 Fig. 4와 같이 HW인프라, 클라우드 환경, 가상서버 환경, 플랫폼 엔진의 4계층으로 구성하였다.
  • 제안 시스템은 경량의 리눅스 컨테이너를 이용하여 웹 기반에서 개발 및 운영이 가능한 DevOps 플랫폼이다
  • 제안 시스템의 클라우드 환경을 구축하기 위해 Fig. 5 와 같이 클라우드 컨트롤러 노드 서버 1식, 네트워크 노드 서버 1식, 네트워크 스위치 4식, 컴퓨트 노드 서버 10 식, 블록 스토리지 노드 서버 1식, 오브젝트 스토리지 노드 서버 3식, 스토리지 장비 6식을 사용하였다.
  • 쿠버네티스의 API Server/ Scheduler/ ControllerManager 기능을 구현하였으며, 개발/운영 환경에 따라 Namespace를 구별하여 컨테이너 그룹의 정보를 관리한다. 또한 각 환경은 ControllerManager를 통해 컨테이너를 유지하며 클라우드 Shutdown이나 ServerFault 등으로 컨테이너가 중지 또는 삭제되어도 서버 재기동과 동시에 다시 컨테이너 배치가 가능하도록 감시하며, Container Shared Volume을 통해 컨테이너의 사용자 데이터를 관리한다.
  • 쿠버네티스의 Kubelet을 제안 시스템에 맞게 구현한 모듈로, 각 Worker Host에서 Daemon형태로 동작하며 실시간으로 SeCM Master API 모듈과 통신하여 Host 정보 및 컨테이너 현황을 SeCM Master의 Key/Value Store에 적재하고 SeCM Master가 명령하는 컨테이너 관련 Job을 실행하는 모듈이다.
  • 평가는 동일 기능에 대해 10회 수행하여 최대, 최소, 평균을 측정하였으며, App 처리량은 동시접속자가 300명이 유지될 때(300쓰레드) 요청기준 초당 트랜잭션 처리 건수를 측정하였다. 측정 결과는 Table 2와 Table 3 과 같다.

이론/모형

  • 베이스 컨테이너를 통해 생성되는 불특정 다수의 컨테이너들의 컨트롤 및 라이프사이클 관리를 위해 컨테이너 매니저의 존재는 필수 불가결하다. 본 논문에서 구현한 SeCM(Selim Container Manager)은 구글의 오픈소스인 쿠버네티스 기술을 바탕으로 하고 있다.
본문요약 정보가 도움이 되었나요?

질의응답

핵심어 질문 논문에서 추출한 답변
마이크로서비스 아키텍쳐(MSA)는 무엇인가? 마이크로서비스 아키텍쳐(MSA)는 소프트웨어 응용 프로그램을 독립적으로 배치 가능한 서비스 조합(suite) 으로 설계하는 특정 방법을 말한다[10]. 전통적인 모놀리 딕 아키텍처와 비교하면 Fig.
HW인프라가 x86서버를 기본으로 설계하여 범용성을 높이고, 클라우드 환경은 오픈스택을 사용하여 VM을 생성한 이유는? HW인프라는 x86서버를 기본으로 설계하여 범용성을 높였으며, 클라우드 환경은 오픈스택을 사용하여 VM을 생성하였다. 이는 제안 시스템의 확장성 및 타 시스템으 로의 이식성을 염두에 둔 설계이다. 
어떠한 인프라 환경에서도 애플리케이션 컨테이너를 쿠버네티스에서 운영할 수 있는 이유는? 예들 들면, 오픈스택과 같은 사설 클라우드 자체를 쿠버네티스에서 운영할 수도 있으며[12], 또한 베어메탈 프로비저닝도 가능하다[13]. 이미AWS, Azure, GCP 등 주요 퍼블릭 클라우드에서 모두 쿠버네티스를 서비스로 제공하고 있기 때문에, 어떠한 인프라 환경에서도 애플리케이션 컨테이너를 쿠버네티스에서 운영할 수 있다[14,15].
질의응답 정보가 도움이 되었나요?

참고문헌 (15)

  1. Ministry of Science and ICT. (2018). Cloud computing acting strategy for 4th industrial revolution, Sejong, Ministry of Science and ICT. 

  2. M. S. Kang. (2019.1). Cloud computing market trends and future prospects. KDB Monthly. 758. 54-71 

  3. Ministry of Science and ICT. (2018.12). 2018 Cloud Industry Survey Report, Sejong, Ministry of Science and ICT. 

  4. Wikipedia. (2019). DevOps. [Online]. https://www.wikipedia.org/ 

  5. J. H. Yim. (2017). Critical success factors for introducing DevOps into Korean companies. Thesis for Master's Degree in Konkuk University, Seoul. 

  6. I. S. Jeon. (2015). Integrated management (DevOps) of development and operation organization in the non stop environment considering security. Review of Korea Institute Of Information Security And Cryptology, 25(1), 47-52. 

  7. Christopher Little. (2019). Jan 2019 - DevOps Agenda. Gartner [Online]. https://blogs.gartner.com/christopher-little/2019/01/09/jan-2019-devops-agenda/ 

  8. Pivotal. (2019). Cloud native application. Pivotal [Online]. https://pivotal.io/kr/cloud-native 

  9. A. Wiggins. (2017). The twelve factors. [Online]. https://www.12factor.net/ko/ 

  10. J. Lewis. (2014). Microservices. [Online]. https://martinfowler.com/articles/microservices.html 

  11. Konstantin Pogrebnoy & Olga Yatskevich. (2019). Microservices Architecture:to Build or not to build. [Online]. https://codetiburon.com/microservices-architecturebuild-or-not/ 

  12. Redhat. (2019). Welcome to kolla's ocumentation. [Online]. https://docs.openstack.org/kolla/latest/ 

  13. Github. (2019). Metal Kubed - Bare Metal Host Provisioning for Kubernetes. [Online]. https://github.com/metal3-io 

  14. Konstantin Ivanov. (2017). Containerization with LXC: Get acquainted with world of LXC. Birmingham : Packt 

  15. Kubernetes. (2019). Operation level Container Orchestration. [Online]. https://kubernetes.io/ko/ 

저자의 다른 논문 :

관련 콘텐츠

오픈액세스(OA) 유형

BRONZE

출판사/학술단체 등이 한시적으로 특별한 프로모션 또는 일정기간 경과 후 접근을 허용하여, 출판사/학술단체 등의 사이트에서 이용 가능한 논문

이 논문과 함께 이용한 콘텐츠

저작권 관리 안내
섹션별 컨텐츠 바로가기

AI-Helper ※ AI-Helper는 오픈소스 모델을 사용합니다.

AI-Helper 아이콘
AI-Helper
안녕하세요, AI-Helper입니다. 좌측 "선택된 텍스트"에서 텍스트를 선택하여 요약, 번역, 용어설명을 실행하세요.
※ AI-Helper는 부적절한 답변을 할 수 있습니다.

선택된 텍스트

맨위로