DevOps 기반 클라우드 플랫폼 설계에 대한 이해

manopickax·2023년 6월 2일

AWS_OSS_EDU

목록 보기
1/3
post-thumbnail
작가 starline 출처 Freepik

AWS시리즈의 목적은 클라우드와 DevOps를 이해하는 것을 목표로 하고 있습니다.



클라우드의 시작

  • 아마존닷컴이 블랙프라이데이, 연말 주문 처리를 용이하게 처리하기 위해 전사적으로 가상화 도입
  • 관리의 용이함과 자원의 효율적인 사용을 위해 하이퍼 바이저를 자체적으로 만들고 관리 프로그램도 자체적으로 만듦
  • 해당기술의 이용해서 아마존 웹서비스의 ec2서비스를 대중에서 선보였고 퍼블릭 클라우드의 시초가 되었음



이제부터 클라우드 관련 개념들을 알아보도록 하겠습니다.



가상화

하나의 컴퓨터에서 여러개의 운영체제를 가동시킬 수 있도록 하는 소프트웨어 기술 ex) VM

가상화의 장단점

  • 장점 : 시스템의 확장성 및 유연성 향상, 물리적인 비용 절감
  • 단점 : 성능면에서 다소 손해를 볼 수 있음



Pay per Use

  • 소유권은 고객한테 없으며, 통상적으로 사용한 만큼 매달 비용이 청구됨
  • 시간당 비용이나 호출하는 건수에 대한 비용 등 사용량의 기준이 서비스 별로 다를 수 있음
  • 대부분 Public Cloud 경우, 데이터를 Public Cloud 밖으로 이동하게 되면 데이터양에 비례하여 추가 비용이 발생함

Pay per Use의 장단점

  • 장점

    Pay per Use는 사용량만큼 비용을 지불하기 때문에 비용이 절약되고 초기 투자에 많은 비용이 들지 않으며 사용량에 따른 탄력적인 운영이 가능하다는 장점이 있음
  • 단점

    사용량의 변화가 없거나 기능추가가 없다면 H/W와 S/W의 소유권을 가지는 것이 더 저렴하고 많은 클라우드 서비스를 이용하는 경우 비용최적화를 지속적으로 해야한다. 또한 새로운 기능을 추가 할 시 비용예측하는 부분이 어려울 수 있음



API(Application Programming Interface)

프로그램들이 서로 상호작용하는 것을 도와주는 매개체

특징

  • 데이터 처리 부분을 변경하더라도 API 자체를 변경하지 않아도 되므로 호출하는 사용자의 코드는 변경이 없어도 됨
  • 모든 API의 사용량 및 처리 속도에 대한 모니터링 후 필요한 자원을 자원이 부족한 API에 할당하여 성능 관리

API의 장단점

  • 장점

    특정 목적을 가진 API들로 나눠서 만들고 책인 관리가 용이함
    기본적인 HTTP프로토콜을 사용함으로 모든 언어와 플랫폼에서 사용 가능
    API가 어떤 동작을 하는 지 쉽게 문서화 하여 관리가 용이함

  • 단점

    표준이 존재하지 않음
    한번 정의한 API는 지속적으로 지원을 해야 함으로 여러버전의 API를 지원해야 하는 불편함이 있음



MSA(Microservice Architecture)란 ?

  • 서비스별 독립적인 배포가 가능
  • 스케일링(Scaling)
  • 장애 대응
  • 다중언어(Polyglot)

--1개의 서비스를 위해 존재하는 수천개의 Microservice--

아마존을 예를 들면 'TOP DEAL', 'Gaming accessories', 'Shop deals in Fashion'은 서로 독립적으로 배포 중

Contanier

- MSA(Microservice Archtecture) 구조를 사용하기 위해서 최종적으로 고려되는 가상화

  • 컨테이너는 이종의 Public, Private 클라우드 환경 위에 설치되어 하나의 플랫폼 처럼 유기적으로 움직일 수 있도록 만듦
  • 어느 클라우드 환경을 쓰든 동일한 인터페이스로 서비스 조작 가능
  • 대표적인 컨테이너 서비스- 쿠버네티스, 오픈시프트, VMware, Tanzu



확장성

클라우드의 강력한 이점

  • 클라우드 서비스는 미리 준비된 물리적 환경을 토대로 사용자가 원하는 규모의 서비스를 맞춤형을 제공

  • 온디맨드(요구가 있을 때 언제든지) 기반으로 확장

  • 현재 구성된 환경의 자원 점유율에 대한 모니터링 및 조건 설정을 통해 실시간성 대응이 가능하며 효율적인 사용 비용 관리 가능



DevOps

한 문장으로 요약하면 ?

Two Pizza Team🍕

  • 피자 2판으로 식사가 가능한 팀 규모
  • 오너십과 책임감을 갖고 서비스를 운영하는 형태
  • Dev(개발) + Ops(운영)

DevOps의 진화

  • DevOps의 최근 트렌드

    – CI/CD 파이프라인 연계
    – 자동화 된 테스트, 배포, QA (이를 위한 클라우드, 컨테이너 사용)
    – 자동화 된 티켓팅 시스템
    – MSA 조직 형태로 운영

    다만, 실제 현실에서는 적절한 수준의 기술을 차용하는 전략이 더욱 적합한 경우가 많음

DevOps의 현재

• 한 서비스가 Two Pizza Team으로 꼭 구성되는 경우가 많지 않을 때도 있고, 복잡한 과정을 자동화 하다 보니 툴과 서비스로 도배
• DevOps의 어떤 형태를 클라우드 환경에서는 적용하고 있지만 전통적인 조직구조를 가져가는 경우, MSA 구성 등이 쉽지 않은 경우가 발생한다. 이러한 상황에서는 여전히 서비스 조직과 인프라 조직이 구분되며,
근래에는 SRE(Site Reliability Engineer) 라는 직군이 새로 등장하기에 이른 상태



클라우드 네이티브

- 클라우드의 이점을 극대화 하는 방법론

  • MSA, CI/CD(지속적 통합과 배포), DevOps, 컨테이너 기술이 유기적으로 돌아갈 수 있도록 구성하는 것을 클라우드 네이티브라고 함

  • 각각이 세부적인 기술 모두 개별적으로 이해하고 구현하는데 많은 시간을 요하지만, 전반적으로 현업의 프로젝트에서 Source: Ethicalhat Cloud Native라는 이야기를 흔하게 통칭

profile
땅굴파기

0개의 댓글