완벽한 IT 인프라 구축을 위한 Docker <책 요약 3>

YP J·2024년 2월 5일
post-thumbnail

1.4 미들웨어 기초 지식

  • 미들웨어란 OS와 업무 처리를 수행하는 애플리케이션 사이에 들어가는 소프트웨어를 말한다.
  • 즉 OS가 가지고 있는 기능을 확장한것,
  • 애플리케이션에서 사용하는 공통 기능을 제공하는것
  • 각종 서버기능을 제공하는것

웹 서버/ 웹 애플리케이션 서버

  • 웹 서버란 클라이언트의 브라우저가 보내온 HTTP 요청을 받아
  • 웹 컨텐츠 를 응답으로 반환 하거나 다른 서버사이드 프로그램을 호출하는 기능을 갖고 있는 서버
  • 대표적으로 아파치, nginx

데이터베이스 서버

  • 시스템이 생성하는 다양한 데이터를 관리하기 위한 미들웨어 이다.
  • 데이터의 검색, 등록, 변경, 삭제 와 같은 기능외에
  • 트렌젝션 처리 등도 포함 해서
  • DBMS라고 부른다.

    관계형 데이터베이스?
    데이터를 2차원 표 형식으로 관리하는 데이터베이스로
    여러개의 표를 결합(Relation)하여 이용 할수있다.

NoSQL

  • RDBMS와 다른 새로운 방식을 통틀어서 말한다.
  • 병렬분산처리나 유연한 스키마 설정등이 특징
  • 주요 방식으로 KVS(key-value store)나 도큐먼트 지향 데이터베이스, XML데이터 베이스 등이 있다.
  • 대량의 데이터 축적이나 병렬 처리에 뛰어나기 때문에 다수의 사용자 액세스 처리할 필요가 있는 곳에 쓴다.
  • Redis, MongoDB, dynamo

시스템 감시 툴

  • 시스템의 감시 대상인 서버나 장비의 상태를 감시해서 미리 설정한 경계값을 초과한 경우에 정해진 액션을 실행하는 것입니다.

  • Zabbix, Datadog, Mackerel

  • 미들웨어는 이외에도 HTTP에 의한 통신 트랜잭셩과 업무 요청인 처리 트랜잭션을 관리하는 트랜잭션 모니터 등이 있다.

1.5 인프라 구성 관리 기초 지식

인프라 구성 관리

  • 하두웨어, 네트워크, OS, 미들웨어, 애플리케이션의 구성, 유지

코드를 사용한 구성 관리

대표적인 인프라 구성 관리 툴

  • 네트워크나 OS를 포함하는 서버의 구성을 자동으로 구축 및 관리하는 것부터
  • OS나 미들웨어의 정의 파일을 자동으로 작성하는것
  • 여러 서버에 대해 애플리케이션의 일괄 배포나 통합 관리를 하는 툴까지 다양

OS 시작을 자동화하는 툴

  • RedHat계열의 리눅스패포한 에서 이용할수있는 KickStart,
  • 로컬PC에 가상 환경을 만들기 위한 Vagrant

OS나 미들웨어의 설정을 자동화하는 툴

  • 데이터베이스 서버, 웹서버, 감시 에이전트 등과 같은 미들웨어의 설치나 버전 관리,
  • Unix 계열 OS의 /etc 아래에 있는 OS나 미들웨어의 설정 파일이나
  • OS의 방화벽 기능의 설정 등 보안과 관련된 설정을 자동화
  • Chef, Ansible, Puppet, Itamae

여러 서버의 관리를 자동화하는 툴

  • 쿠버네티스 -> 컨테이너 오케스트레이션 관리

지속적인 인티그레이션/지속적 딜리버리

지속적 인티그레이션

  • 애플리케이션의 코드를 추가 및 수정할 때마다 테스트를 실행하고 작동하는 코드 유지하는것을 CI 라고 한다.
  • 소프트웨어의 특정 부품에 대해 사영서에 정해진대로 작동하는지를 확인하는 테스트를 단위 테스트라고한다.
  • 이걸 자동화 하는게 Jenkins로~
  • 하지만 단위 레벨에서 테스트가 끝난 모듈이 다른 환경에서도 잘 작동한다는 보장은 없다.
  • 이러한 인프라적인것도 코드로 관리~

지속적 딜리버리

  • 지속적인 배포가 아니라 딜리버리다.
  • 블루 그린 디플로이먼트 라는게 있다.
  • 현재 작동하고 있는 블루와 버전업의 그린 을 동시에 작동시킨 상태에서 시스템을 전환해서 무중단 배포를 하는것.

Cloud Native Computing Foundation
클라우드 네이티브 컴퓨팅을 추진하는 조직입니다.
2016년에 Linux Foundation으로부터 정식 발족 하고 그 다음 쿠버네티스 그다음 모니터링하는 프로메테우스 ,
로그 수집 하는 Fluetnd ,
컨테이너 런타임인 Container 및 rkt,
서비스 디스커버리인 CoreDns,
RFC프레임워크인 gRPC등 16개 프로젝트 관리하고 있다.

profile
be pro

0개의 댓글