1일차 ( 용어 정리 )

Tyun_Record·2023년 8월 7일
0

리눅스기본정리
네트워크 정리

클라우드 네이티브

  • 클라우드의 장점을 최대한 활용할 수 있도록 애플리케이션을 개발하고 또 구축하고 실행하는 방식

  • 세계 최대 규모의 오픈 소스 개발자 컨퍼런스를 운영하는 비영리 재단 ' CNCF ( Cloud Native Computing Foundation ) 은 2022년이 클라우드 네이티브가 표준이 된 원년이라고 발표할 만큼 각광 받고 있음

  • 데브옵스 ( DevOps )

    • 클라우드 네이티브 애플리케이션의 방법론
  • 마이크로서비스

    • 애플리케이션 운영 구조
  • 컨테이너

    • 애플리케이션 운영 인프라
  • 지속적인 통합/배포 ( CI / CD )

    • 애플리케이션을 더욱 짧은 주기로 고객에게 제공하는 자동화 프로세스

React

SPA

REST API

마이크로 서비스 아키텍처, MSA

  • 각각을 마이크로하게 나눈 독립적인 서비스를 연걸한 구조
  • 이러한 특성 덕분에 시스템 저체의 중단 없이 필요한 부분만 업데이트, 수정, 배포 등이 가능함
    출처

MSA 장점

  • 배포

    • 서비스별 개별 배포가 가능(배포시 전체 서비스의 중단 없음)

    • 특정 서비스의 요구사항만을 반영하여, 빠르게 배포 가능

  • 확장

    • 특정 서비스에 대한 확장성(scale-out)이 유리

    • 클라우드 기반 서비스 사용에 적합

  • 장애

    • 일부 장애가 전체 서비스로 확장될 가능성이 적음

    • 부분적으로 발생하는 장애에 대한 격리가 수월

  • 그 외

    • 새로운 기술을 적용하기 유연(전체 서비스가 아닌 특정 서비스만 별도의 기술 또는 언어로 구현 가능)

    • 각각의 서비스에 대한 구조 파악 및 분석이 모놀리식 구조에 비해 쉬움

MSA 단점

  • 설계의 어려움

    • MSA는 모놀리식에 비해 상대적으로 많이 복잡 서비스가 모두 분산되어 있기 때문에 개발자는 내부 시스템의 통신을 어떻게 가져가야 할지 정해야함
      또한, 통신의 장애와 서버의 부하 등이 있을 경우 어떻게 transaction을 유지할지 결정하고 구현해야함
  • 성능

    • 서비스 간 호출 시 API를 사용하므로, 통신 비용이나 Latency에 대해 이슈가 존재
  • 테스트/데이터 트랜잭션

    • 모놀리식에서는 단일 트랜잭션을 유지하면 됐지만 MSA에서는 비즈니스에 대한 DB를 가지고 있는 서비스도 각기 다르고, 서비스의 연결을 위해서는 통신이 포함되기 때문에 트랜잭션을 유지하는게 어려움
    • 통합 테스트가 어렵다. 개발 환경과 실제 운영환경을 동일하게 가져가는 것이 쉽지 않음
  • 데이터 관리

    • 데이터가 여러 서비스에 분산되어 있어 조회 및 관리하기 어려움

컨테이너란 ?

  • 환경과 상관없이 실행을 위해 필요한 모든 요소를 포함하는 소프트웨어 패키지
  • 컨테이너라는 분리된 공간에 애플리케이션과 운영 환경이 모두 들어있음
  • 즉, 분리된 공간마다 다른 환경 제공할 수 있음
  • 마치 컨테이너 하나가 별도의 서버인 것처럼 사용 가능
    출처. 쿠버네티스
  • 애플리케이션을 실행하기 위한 컴퓨팅 작업을 패키징하여 이미지로 만들기 때문에 경량화 되어있음
  • 종속적이지 않아 이식성을 실현할 수 있고 독립적임
  • 인프라와 운영 환경에 상관없이 어디서나 실행할 수 있음!!
    • 따라서, 환경을 구축하거나 테스트하는데 필요한 시간이 짧음
  • 같은 기반 위에서 한꺼번에 개발된 것이 아니기 때문에 고객 니즈에 맞춘 수정이나 교체도 용이함
  • 프로세스 수준에서 실행되어 필요한 컴퓨팅 자원의 소비가 적음
  • 동작과 확장이 빠름

쿠버네티스란? ( K8s )###

  • 오픈소스 컨테이너 오케스트레이션 플랫폼

  • 컨테이너화된 애플리케이션의 관리를 자동화할 수 있도록 도와주는 플랫폼

    • 컨테이너 오케스트레이션 : 컨테이너의 배포, 관리, 확장 및 네트워크 자동화
      출처. 쿠버네티스
  • 쿠버네티스를 이용하여 MSA를 관리할 때 이점

    • 컨테이너 오케스트레이션 비용 절감
    • MSA를 위한 데브옵스 효율성 향상
    • 멀티 클라우드 환경에서 워크로드 배포 용이
    • 종속 가능성 없는 이식성 제고
    • 배포 자동화 및 확장성 강화
    • 클라우드 환경에서의 앱 안정성 및 가용성 강화
    • 오픈소스 생태계의 일부로서 이용하기 편리
  • 쿠버네티스 환경에서 쓸 수 있으면 OS와 관계없이 이용 가능

  • 구글에서 사용하던 컨테이너화된 애플리케이션을 AWS로 그대로 마이그레이션 가능하다는 뜻

  • 퍼블릭, 프라이빗 클라우드 등 다양한 유형의 인프라에서 컨테이너 관리, 자동 배포, 확장 및 축소, 실행 가능

0개의 댓글