티스토리 뷰

읽은 책들

그림으로 배우는 클라우드 by

비즈붓다 2023. 10. 21. 17:45
728x90

 

 

[ 밑줄/연결 ]

 

(SaaS)

하나의 서버를 여러 기업에서 공유하는 것을 전제로 한 멀티 테넌트 방식 서비스를 제공한다. 그러나  데이터는 기업 사용자별로 분리되도록 설계하여 보안성을 확보합니다.

 

(PaaS)

기업의 애플리케이션 실행 환경 및 애플리케이션 개발 환경을 서비스로 제공하는 모델

PaaS와 IaaS의 차이점은 서버, 네트워크, 보안 부분을 클라우드 사업자에게 위임한다는 점으로 구축 및 운영이 쉽습니다.

SaaS는 정해진 SW를 서비스로 제공하지만, PaaS는 자사에서 개발한 응용 프로그램을 가동할 수 있습니다.

 

애플리케이션 활용 자유도가 높지만 반대로 서버 및 미들웨어의 상세한 설정을 할 수 없으며, 특정 PaaS  환경에 대한 의존도가 높아지게 되면 다른 환경으로의 마이그레이션이 어려워질 수도 있습니다.

 

주된 용도는 개발 및 테스트 시행에 큰 처리 능력이 필요한 경우 혹은 자사에서 운용 중인 애플리케이션의 최대 부하를 분산 처리하는 경우..

 

 

(기간계 시스템을 위한 클라우드 서비스)

 

기존의 온프레미스 시스템과의 호환성과 계승성을 우선시하기 위해 기존 시스템을 변경하지 않고 그대로 클라우드로 옮기고(Lift), 수시로 클라우드에 최적화(Shift)해 나가는 전략을 'Lift & Shift 전략'이라고 합니다.

 

(클라우드  AI/기계학습 서비스)

 

하나는 미리 준비한 기능(라이브러리)를 이용하여 사용자 스스로 기계를 학습시키는 것

--> Amazon SageMaker, Azure Machine Learining,  Google Cloud Machine LeariningEngine 등

 

나머지 하나는 '클라우드 사업자가 미리 대량의 데이터로 학습을 시켜두고, 그 결과를 사용자에게 제공하는 것'--> 음성 인식, 화상 인식, 자연어 처리, 자동 번역, 동영상 인식과 분석 등을 API로 제공

 

(클라우드를 이용한 시스템 구축)

 

시스템 구축에 대한 사고방식이 크게 바뀌어야 함

 

(1) 시스템 구성이 클라우드 서비스에 의존함

 

온프레미스 : 사용자의 요구사항 --> 시스템 설계 --> 필요한 제품과 서비스 조달하여 구축클라우드ㅇ 클라우드 서비스가 제공하는 표준회된 서비스(기능)을 조합하는 개념

ㅇ 세세한 커스터마이징보다 표준화된 시스템 구성을 채택하고,  API를 통해 다른 서비스와 연계하자는 사고방식이 필요함

 

(2) 장애를 전제한 설계

 

장애가 발생하더라도 문제없이 운영할 수 있도록 설계하는 'Design for Failure'라는 사고방식이 필요

 

장애 시 서버 기동 및 정지, 정기적인 백업 등의 작업을 운영 자동화 도구 등을 자동화해서 최대한 손이 가지 않는 구조를 만들어야 함

 

 

(컨테이너 기술)

 

하나의 OS 환경에서 애플리케이션의 실행 영역(User Space)을 여러 개로 나누어 사용하는 기술

이렇게 나눈 각각의 User Space를 '컨테이너'라는 이름으로 부름

컨테이너는 호스트 OS의 입장에서 보면 하나의 프로세스(실행 중인 프로그램)임

 

서버 가상화는 HW환경을 통째로 가상화하는 것, 컨테이너는 애플리케이션이 실행 환경을 가상화하는 것으로 이해해도 됨

 

빠르게 기동/정지할 수 있으며 성능 저하도 거의 없음

 

사용하는 HW 리소스(CPU, 메모리, 스토리지, 네트워크 등)가 적으므로 1대의 물리 서버에 매우 많은 양의 컨테이너를 올리 수 있음

 

애플리케이션의 실행 환경이 컨테이너 단위로 패키징되므로 로컬 컴퓨터의 개발 환경을 클라우드로 옮길 수도 있으며 A사의 클라우드에서 B사의 클라우드로 그대로 옮길 수도 있는 등 복제가 쉽고 이식성이 뛰어남

 

컨테이너 타입 가상화 SW : Docker사가 개발한 오픈 소스 SW 'Docker'

컨테이너 타입 가상화 SW의 운영 관리를 자동화하는 도구 : 오픈소스 SW  'Kubernetes사의 쿠버네틱스

 

 

(GPU)

 

GPU는 원래 빠른 이미지 처리를 위해 개발된 것이지만, GPU를 기계학습/딥러닝 등의 범용 계산에 응용하는 GPGPU(General-Purpose computing on GPU)가 널려 있음

 

(개발과 통합의 운영, DevOps)

 

Development(개발)과 Operation(운영)이 함께 협력하여, 완성도 높은 SW를 더욱 신속하게 만들어가는 문화

 

DevOps에 이목이 쏠리는 배경으로는 '개발 방법', '클라우드', '자동화'라른 3가지 요소

 

개발 방법 : 

ㅇ 서비스의 전체 그림 안에서 결정된 부분을 먼저 개발하여 배포하는 개발 속도 우선적인 방법, Agile

ㅇ 개발할 내용을 작게 쪼개고, 그것의 구현과 테스트를 반복해가며 전체 시스템을 개발해 나가는 방법, 애자일

 

클라우드

ㅇ 애자일이 가능해진 이유는 AWS, OpenStack 등의 Self Portal을 통한 IaaS 환경 보급, 애플리케이션 개발/운영환경을 지원하는 PaaS 서비스와 컨테이너 서비스가 완비되었기 때문임

 

자동화

ㅇ 철저한 자동화를 통해 많은 수의 서버를 소규모 인원으로 운용 가능, 운영부서의 자원 --> 개발 부서로 이전 움직임

 

 

(애플리케이션 개발/테스트 환경에서의 클라우드 활용)

 

개발자 스스로 서버, 스토리지를 설정, OS나 미들웨어의 설정을 바꾸는 등 개발 환경을 유연하게 생성할 수 있게 됨

 

개발 언어, API로 외부 서비스 연계 기능을 활용하여 개발, 테스트, 팀 공동 작업을 단기간에 효율적으로 수행 가능하게 됨

 

 

 

 

[ 자평 ]  추억의 책이 <2판>이 나왔길래 훑어 봤다. 독자 수준과 목적에 제대로 맞춘 깔끔한 역할을 다하는 책.

 

영진닷컴의 <그림으로 배우는 ~  > 시리즈는 나 같은 문송이지만 밥벌이를 위해서 IT를 기본적으로 알아야 하는 사람들에게 꽤 도움이 되는 책이다.

 

빠르게 훑어 있는 다면 어디 가서 그 주제로 알아 듣는 척은 할 수 있다.

하지만 '딱 알아 듣는 척'. 그 수준이다.

 

스스로 그 이상이라고 생각하면 고수를 만났을 때 판판이 깨지게 된다.

 

 

댓글