본문 바로가기
Development/Docker & Kubernetes

클라우드와 클라우드 네이티브

by 메정 2021. 9. 7.

클라우드

John McCarthy(1971)
"컴퓨팅은 전화 시스템과 같이 공공재로 구성될 것이다. 사용자들은 다른 사용자들에게 서비스를 제공하기도 하고, 새로운 중요한 산업의 기반이 될 것이다."

클라우드 컴퓨팅

클라우드 컴퓨팅 == 클라우드 서비스
인터넷에 연결된 다른 컴퓨터로 처리하는 기술을 의미

사용자와 기업은 클라우드 컴퓨팅을 통해 물리적 서버를 관리하거나 자체 서버에서 소프트웨어 어플리케이션을 실행하지 않아도 됨
사용자는 인터넷을 통해 서버에 접근이 가능해짐

장점
1.비용 절감
사내 구축 인프라가 불필요하고, 운영 비용이 감소됨
2. 관리 용이
모든 리소스가 서비스 제공 업체에 의해 유지, 관리 되며 웹 기반 사용자 인터페이스로 전문 지식 없이 운영이 가능해짐
3. 사용량의 유연성
수요 변동이 많은 비즈니스에 특화되어 있음
4. 업무장소의 유연성
인터넷에 연결되어 있는 모든 곳에서 업무 수행이 가능해짐

3-tier 아키텍처

1.presentation tier
사용자로부터 값을 요청 받고, 서버로부터 요청 값에 대한 응답을 display 해주는 부분

2.logic tier
요청 받은 값을 얻기 위해 쿼리를 생성하여 db에서 가져와 가공하여 전달

3.data tier
쿼리를 통해 결과를 반환

클라우드 서비스 제공업체

aws, azure, google cloud, 네이버, 카카오 등이 있음

클라우드 종류

1.온프레미스(On-premise)
자사 설비를 이용해 앱을 배포하여 운영하는 방식

2.퍼블릭 클라우드(Public Cloud)
고객들 간에 공유하는 댇신 저렴하고 신속한 운영이 가능한 인프라 환경을 제공(탄력적 서버 가능)
자체 인프라가 없거나 스타트업, 중견기업에서 주로 사용하는 방식

3.멀티 클라우드(Multi Cloud)
여러 퍼플릭 클라우드를 함께 사용하는 경우 ex. aws와 azure를 함께 사용
하나의 클라우드가 다운되더라도 다른 클라우드에서 실행되도록 하기 위함

4.프라이빗 클라우드(Private Cloud)
독점적으로 사용하여 보안을 높이는 인프라 환경
클라우드 역량 확보를 바탕으로 퍼블릭 클라우드 사업 진출을 목표로 하는 기업에서 사용

5.하이브리드 클라우드(Hybrid Cloud)
온프레미스/프라이빗 클라우드와 퍼블릭 클라우드를 함께 사용하는 경우
노출하고 싶지 않은 데이터는 온프레미스와 프라이빗 클라우드에 저장하기 위함

클라우드 서비스 모델

1.SaaS(Software-as-a-Service)
사용자가 장치에 앱을 설치하는 대신 앱이 클라우드 서버에 호스팅되고, 사용자는 인터넷을 통해 앱에 액세스 하는 형식
ex. slack, dropbox 등

2.Paas(Platform-as-aService)
개발도구, 인프라, 운영체제를 포함한 앱 구축에 필요한 모든 것을 인터넷을 통해 제공하는 형태
ex. heroku, redhat, openshitf 등

3.Iaas(Infrastructure-as-a-Serivce)
기업은 클라우드 제공 업체로부터필요한 서버와 저장소를 임대하고, 클라우드 인프라를 활용하여 자체 앱을 구축
ex. Google compute engine 등

4.Faas(Fuction-as-a-Service)
클라우드 앱을 필요할 때만 실행되는 작은 구성 요소로 나누는 형태
ex. AWs lambda 등

클라우드 네이티브

클라우드의 이점을 최대로 활용할 수 있도록 앱을 구축하고 실행하는 방식

1.DevOps
개발-운영 간의 협업 프로세스를 자동화하는 것
앱과 개선 속도를 빠르게 함
오픈소스와 클라우드의 도움을 통해 개발자도 운영을 겸업할 수 있게 됨(운영부분이 자동화)

2.지속적인 통합(CI), 지속적인 배포(CD)
개발자가 작업한 코드를 자동으로 테스트하고, 테스트에 통과하면 코드를 통합하여 저장
해당 사항을 레포지토리에 업로드되고, 실제 서비스 배포까지 자동화됨

3.컨테이너 기반의 인프라
운영체제 수준의 가상화를 통해 인프라 사용률을 향상시키고 빠른 기동 시간으로 효율을 높임

4.마이크로 서비스
Monolithic : 전체 앱이 하나의 통합된 패키지 형태

  • 구성 모듈들이 의존적으로 연결되어 기능 하나 배포 시 전체 앱을 재배포 해야 함 -> 특정 모듈만 확장하기 어려움

Microservice : 앱을 이루는 서비스들을 기능 단위로 쪼개서 구축하는 것

  • 각 서비스 는 API를 통해 서로 통신, 각각 자체 DB를 가짐
  • 개별 서비스 변경 및 확장이 쉽고 배포가 쉽다.
    ex. 검색 서비스, 관련 상품 추천 서비스, 장바구니 서비스 등

'Development > Docker & Kubernetes' 카테고리의 다른 글

chap 1. Docker를 왜 사용할까?  (0) 2022.08.18
컨테이너 기술의 이해  (0) 2021.09.07

댓글