[도커 이론] 시스템과 인프라 기초 지식

su-mmer·2022년 9월 5일
0

아묻따 도커 공부

목록 보기
1/18

인프라 엔지니어

배경

온프레미스 환경에서 가동시키던 서버들을 클라우드로 이동하면서 분산 환경을 사용하게 되었다. 분산 환경에서는 인프라 엔지니어가 수동으로 운용(operation)을 하지 않고 자동화된 툴을 사용하여 오케스트레이션(orchestration)을 한다. 따라서 인프라 엔지니어는 인프라 기술 + 코드 작성 기술이 필요하다.


시스템 기반 구성 요소

시스템 기반

애플리케이션을 가동시키기 위한 인프라

구성 요소

하드웨어, 네트워크, OS, 미들웨어

미들웨어: 운영 체제에서 제공하지 않는 일반적인 서비스와 기능을 애플리케이션에 제공하는 소프트웨어

기능 요구사항(functional requirement)

시스템이나 소프트웨어에서 무엇을 할 수 있는지.

비기능 요구사항(non-functional requirement)

시스템의 성능이나 신뢰성, 확장성, 운영성, 보안 등 기능 요구사항 이외의 모든 요구 사항.


시스템의 이용 형태

온프레미스(on-premises)

자사에서 데이터센터를 보유하고 시스템 구축부터 운용까지를 모두 수행하는 형태.
초기 시스템 투자에 드는 비용 부담이 크며, 시스템 가동 후의 운용에 드는 비용도 시스템 이용량과 상관없이 일정 금액을 부담해야 함.

온프레미스가 적합한 케이스

  • 높은 가용성이 요구되는 시스템(클라우드 업체가 보장하는 것 이상의 가용성)
  • 기밀성이 높은 데이터를 다루는 시스템
  • 특수한 요구사항이 있는 시스템

퍼블릭 클라우드(public cloud)

자사에서 데이터센터를 보유하지 않으므로 서버나 네트워크 등 인프라와 관련된 초기 투자가 필요 없다.
IaaS/PaaS/SaaS

프라이빗 클라우드(private cloud)

특정 기업 그룹에게만 제공되는 서비스. 이용자가 한정되어 보안 확보가 쉽다.

클라우드가 적합한 케이스

  • 트래픽의 변동이 많은 시스템(사이징이 어려운 경우 트래픽 양에 변동 가능하도록 클라우드 시스템이 좋다.)
  • 재해 대책으로 해외에 백업을 구축하고 싶은 시스템
  • 서비스를 빨리 제공하고 싶은 시스템

미들웨어

미들웨어

OS와 애플리케이션 사이에 들어가는 소프트웨어

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

클라이언트의 브라우저가 보내온 HTTP 요청을 받아, 웹 콘텐츠를 응답으로 반환하거나 다른 서버사이드 프로그램을 호출하는 기능
ex. Apache HTTP Server, Internet Information Services, Nginx

데이터베이스 서버(DBMS)

ex. MySQL, PostgreSQL, Oracle Database

NoSQL

RDBMS와는 다른 새로운 방식.병렬분산처리나 유연한 스키마 설정. 대량 데이터 축적이나 병렬처리에 뛰어남.
ex. Redis, MongoDB, Apache Cassandra

시스템 감시 툴

시스템을 안정적으로 가동시키기 위함
ex. Zabbix, Datadog, Mackerel


인프라 구성 관리

인프라 구성 관리

인프라 구성을 코드로 관리하면 소스코드 관리와 같이 버전 관리를 할 수 있고 가시화할 수 있어 인적 실수를 배제할 수 있다. (Infrastructure as Code)

CI / CD

Continuous Integration

애플리케이션의 코드를 추가 및 수정할 때마다 테스트를 실행하고 확실하게 작동하는 코드를 유지. 테스트를 자동으로 반복함으로써 품질 확보.

Continuous Delivery

짧은 사이클의 개발과 릴리스를 반복할 수 있게 함. 절차를 코드로 관리하여 인프라 환경도 포함한 테스트가 끝난 애플리케이션 실행 환경을 그대로 제품 환경에 전개할 수 있다.

참고

도서 - 완벽한 IT 인프라 구축을 위한 Docker

0개의 댓글