[study] 시스템 기반의 기초 지식

소프트웨어 개발 프로세스

  • 기존의 소프트웨어 개발은 ‘애플리케이션 실행 환경 구축’과 ‘애플리케이션 개발’의 구분이 명확했다.
  • 실행환경 구축은 네트워크나 하드웨어에 능통한 인프라 엔지니어가 담당하고, 애플리케이션 개발은 업무 지식 및 프로그래밍, 테스트 방법과 같은 기술을 잘 아는 애플리케이션 엔지니어가 담당했다.
  • 그러나 클라우드의 등장으로 온프레미스 환경에서 가동하던 서버들을 클라우드 상 가상 인스턴스로 옮기면서 클라우드 상의 DB나 네트워크 등을 이용함으로써 실행 환경 구축의 범위는 극도로 축소되었다.
  • 이로 인해, 인프라 엔지니어와 애플리케이션 엔지니어의 경계는 점차 희미해졌다.

시스템 기반 구성 요소

docker

하드웨어

  • 시스템 기반을 구성하는 물리적인 요소
  • 서버 장비 본체나 데이터를 저장하기 위한 스토리지, 전원 장치 등이 포함

네트워크

  • 시스템 이용자가 원격지에서 엑세스할 수 있도록 서버들을 연결하기 위한 요구사항
  • 라우터, 스위치, 방화벽 등과 같은 네트워크 장비나 그것들을 연결하기 위한 케이블 배선 등

OS(운영체제)

  • 하드웨어나 네트워크 장비를 제어하기 위한 기본 소프트웨어로, 하드웨어의 리소스나 프로세스를 관리
  • 클라이언트 OS : Windows/macOS
  • 서버 OS : Windows Server, Linux, Unix 등

미들웨어

  • 서버 OS 상에서 서버가 특정 역할을 다하기 위한 기능을 갖고 있는 소프트웨어를 말한다.
  • 미들웨어는 상용인 것과 오픈소스인 것 등 다양하게 존재

클라우드와 온프레미스

1) 온프레미스

  • 자사에서 데이터센터를 보유하고 시스템 구축부터 운용까지 모두 수행
  • 시스템 기반의 구성 요소인 서버나 네트워크 장비 모두 자사에서 직접 조달하여 시스템 요구사항에 맞춰 인프라를 구축하고 자사에서 운용
  • 하드웨어 뿐만 아니라 OS나 미들웨어 모두 자사에서 구입, 라이선스 관리나 버전업도 직접 진행
  • 초기 시스템 투자 비용 부담이 큼, 시스템 가동 후 운용에 드는 비용이 일정금액 이상 지출

2) 퍼블릭 클라우드

  • 인터넷을 경유하여 불특정 다수에게 제공되는 클라우드 서비스
  • 자사에서 데이터센터를 보유하지 않아 인프라와 관련된 초기 투자 불필요
  • 제공할 서비스에 따라 IaaS, PaaS, SaaS 등이 있다.
  • 증설이 편리하고 단기간에 인프라 구축이 가능

3) 프라이빗 클라우드

  • 특정 기업, 그룹에게만 제공되는 클라우드 서비스
  • 이용자를 한정하여 보안성이 높고 마이그레이션이 편리
  • 증설이 편리하고 단기간에 인프라 구축이 가능, 초기 투자 불필요

클라우드가 적합한 케이스

  • 트래픽 변동이 많은 경우
  • 재해 대책으로 해외에 백업을 구축하고 싶은 시스템
  • 서비스를 빠르게 구축하고 싶은 시스템

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

  • 높은 가용성이 요구되는 시스템
  • 기밀성이 높은 데이터를 다루는 시스템
  • 특수한 요구사항이 있는 시스템

태그:

카테고리:

업데이트:

댓글남기기