PaaS 구축 시 고객들이 꼭 알아야 하는 인프라 요소는 어떤 것들이 있을까요?
PaaS 클라우드를 구축한다면 고려해야 하는 내용들이 많이 있을 텐데요.
기획과 운영 측면에서 많이 궁금해 하시는 내용들을 살펴봅니다.
(발표자료) PaaS 구축 시 IT 운영자들이 꼭 고민해야 하는 5가지 인프라요소
(유튜브) PaaS 구축 시 IT 운영자들이 꼭 고민해야 하는 5가지 인프라 요소 발표 보기
PaaS 클라우드를 구축한다면 기존의 인프라와는 어떻게 통합해야 할까요?
인프라 요소들 중 새로 도입하거나 변경해야 하는 것이 어떤 부분인지 알아보겠습니다.
첫번째로 DNS 입니다.PaaS 플랫폼은 외부에서 도메인 기반으로 접속하여 애플리케이션과 통신하기 떄문에 DNS에 설정이 필요합니다.
두번째로 L4 입니다.PaaS는 OS 이중화 와는 달리 모든 노드가 액티브 상태입니다.그에따라 VIP 설정과 헬스체크가 필요합니다.
세번째로 Git 입니다.컨테이너 환경의 장점은 빠른 개발과 빠른 배포가 있을 텐데요.고도화된 브랜치 전략을 실현 할 수있는 깃과 같은 소스코드 저장소가 필요합니다.
또한 Source To Image 를 통해 깃에 소스만 커밋하면 컨테이너 이미지 생성에서 배포까지 완전 자동화도 가능합니다.
컨테이너 이미지를 저장할 수 있는 NAS 와 같은 공유스토리지가 필요합니다.
마지막으로 클라우드 운영에 적합한 네트워크 환경 구축이 필요합니다. 서비스망, 관리망, 스토리지망은 분리하여 구성해야 합니다.그러기 위해서는 10G 이상의 넓은 대역폭이 필요합니다.
PaaS 환경에서 인프라 구성 방법이 어떻게 달라 지는지 살펴보기 위해 기존의 3 Tier 환경을 보겠습니다.
웹서버 티어, WAS 티어, DB 티어로 티어 별로 분리되어 있어 관리는 편할 수 있지만 확장과 축소 시 서비스 중지와 수작업에 의한 관리는 문제가 됩니다.
기존에는 모든 서버들이 서비스의 역할에 따라 웹서버 티어, WAS 티어 등으로 구성했습니다.
클라우드 환경에서 가장 큰 차이점은 클라우드 인프라 이기 때문에 실제 서비스는 워크 노드 이외에 클라우드 운영을 위한 메니지먼트 노드와 인프라 노드들 있는 것입니다.
또한 삼중화 이상으로 구성하여 장애시에도 서비스가 문제가 없도록 구성한 다는 것입니다.
네트워크는 서비스, 관리, 스토리지 네트워크로 구분 되어 상호 간섭이 없도록 합니다.
인프라 노드들은 로그 통합, 서비스 기반의 호출 등 클라우드 네이티브 환경에 필요한 인프라 소프트웨어를 구성합니다.
메니지먼트 노드들은 클라우드 관리를 위한 메타 정보 저장과 무정비 서비스, 자동 장애 복구와 자동 확장 등의 클라우드 운영을 위한 기능을 제공합니다.
기존 아키텍처와 클라우드 네이티브 아키텍처의 차이점에 대해서 간단히 살펴 보았습니다.
첫번째로 DNS 가 왜 필요한지 설명 드립니다.
오픈시프트에는 라우트라고 불리는 Ingress가 있는데요.
이 라우트가 IP가 아닌 , DNS 서비스 기반으로 호출 할 수 있도록 해 줍니다.
컨테이너 환경에서 애플리케이션은 호출을 위하여 자동으로 도메인 네임으로 서비스를 생성합니다.
그래서 PaaS 환경에서는 DNS 를 등록해야 합니다.
하지만 캐시서버나 DB 서버 와 같은 경우에는 PaaS 내부의 호출이기 때문에 외부 라우트를 거치지 않고 도메인 기반으로 내부 통신을 하게 됩니다.
이번에는 L4가 왜 필요한지에 대해서 설명 드리겠습니다.
PaaS 는 클라우드 환경이기 때문에 고가용성 확보가 필수적으로 삼중화 이상으로 구성합니다.
OS 이중화와 같이 액티브 , 스탠바이 형태가 아닌 모든 노드가 액티브 상태로 구성해야 합니다.
그렇기 때문에 서버들의 IP를 묶어 줄 가상IP와 헬스체크 기능이 필요합니다.
또한 오토스케일링과 외부 호출시 부하 분산 등의 이유로 L4가 필요합니다.
PaaS 환경에서 스토리지가 왜 필요한지 설명 드립니다.
컨테이너 이미지를 저장하는 공간으로 스토리지가 필요합니다.
PaaS 환경에서는 각종 로그들을 통합으로 수집하여 관리하기 때문에 로그 모니터링과 시스템 모니터링 데이터를 저장하기 위해 필요합니다.
기존 환경과 마찬가지로 애플리케이션에서 업로드 한 파일을 공유하거나 대용량의 라이브러리를 저장하고 공유하기 위해서 스토리지가 필요할 수 있습니다.
GIT 이 왜 필요한지 살펴보겠습니다.
GIT 은 분산 개발과 고도화된 브랜치 전략을 위한 형상 관리 도구 입니다.
DevOps 실현을 위해서는 지속적인 빌드와 배포가 필요할 텐데요.
특히 PaaS 환경에서는 깃에 소스를 Push하는 것만으로도 서비스 정지 없이 자동으로 빌드에서 배포까지 가능 합니다.
개발한 소스나 빌드 된 애플리케이션 바이너리 또는 컨테이너로 만들어진 애플리케이션 이미지가 제공된다면 서비스 정지 없이 언제든지 배포가 가능한 환경을 갖출 수 있습니다.
마지막으로 네트워크 요구 사항을 살펴보겠습니다.
클라우드 환경이기 때문에 서비스용 네트워크, 관리용 네트워크, 스토리지용 네트워크를 분리해야 합니다.
집적도가 높은 컨테이너 기반의 클라우드 환경으로 텐지 이상의 네트워크 대역폭으로 구축되어야 합니다.
마이크로서비스 아키텍처 (MSA : MICROSERVICES ARCHITECTURE) 발표 자료 다운로드
/in Kubernetes, 발표자료/by 실장 님OpenShift 자료 다운로드
/in Container, Kubernetes, OpenShift, 발표자료/by 실장 님애플리케이션 마이그레이션 툴킷 ( MTA : Migration Toolkit for Applications ) 발표자료 다운로드
/in Container, Kubernetes, OpenShift, Red Hat, Tech Talk, 발표자료, 분류되지 않음/by 실장 님