728x90




최근에는 On-premise방식에서 Cloud 방식으로 넘어오게 되면서 개발자가 배포나 테스트 등을 직접 할 수 있게 되었고 이로 인해서 인프라 관련 지식이 필요하게 되었습니다. 인프라엔지니어의 업무였던 제품환경에 개한 배포나 테스트등도 애플리케이션 엔지니어가 직접 할 수 있게 되었기 때문에 os커널이나 네트워크등과 같은 인프라 기술의 기초 지식을 알아두어야 한다.

도커는 애플리케이션 실행에 필요한 환경을이미지’로 만들고 해당 이미지를 활용해 다양한 환경에서 실행 환경을 구축하기 위한 오픈소스 플랫폼입니다. 도커는 내부에서 컨테이너를 사용합니다.

일반적인 개발 환경에서는 잘 동작하다가 갑자기 스테이징이나 운영 환경(operating environment)으로 가면 동작하지 않는 경우가 있습니다. 이런 인프라 환경을 도커를 이용해 컨테이너로 관리하면 어떨까요? 필요한 것을 모두 컨테이너로 모아서 ‘이미지’로 만드는 것입니다.

좀 더 자세히 보면 개발자가 커밋(commit)을 할 때마다 CI를 통해 도커이미지로 빌드하고 해당 이미지를 관리합니다. 그리고 개발환경이든 테스트환경이든, 실제 운영환경이든 해당 이미지를 배포하면 컨테이너에서 독립적으로 배포된 환경에서 동작하기 때문에 오류 없이 동작할 수 있습니다.

*

지금도 대부분의 서버 장비들은 컴퓨팅 환경을 소프트웨어로 구현한 가상머신(VM : Virtual Machine)을 사용하고 있습니다. 이 서버들은 다수의 운영 체제를 동시에 실행하기 위해 ‘하이퍼바이저’가 필요하고, 그 상위계층에 Guest OS가 각각 설치된 가상머신들을 구동시킵니다.

*

클라우드를 구성하는 대부분의 기술은 한 대의 물리 호스트상에서 움직이는 시스템과는 달리 분산환경에서 가동시키는 것이 기본.

 

*

시스템 기반의 구축/운용 흐름

기존의 폭포형 개발의 경우는 다음과 같은 공정을 위에서부터 순서대로 진행해 가지만,

애자일 개발의 경우는 각 단계를 작은 단위로 나눠 반복하면서 개발한다.

시스템화 계획, 요구사항정의 — 인프라설계 —인프라구축 —운용

(1) 시스템 구축 계획 및 요구사항 정의 단계

시스템 구축 범위 선정

인프라 요구사항 정의

예산 책정

프로젝트 체계화

기존 시스템과의 연계

시스템 마이그레이션(migration) 계획

(2) 인프라설계단계

인프라 아키텍처 설계

네트워크 토폴로지(topology) 설계

장비선택, 조달(클라우드인 경우 서비스 선택)

OS, 미들웨어 선택, 조달(클라우드인 경우 서비스선택)

시스템 운용 설계

시스템 마이그레이션 설계

(3) 인프라 구축 단계

네트워크 부설

서버설치

OS셋업

미들웨어셋업

애플리케이션 및 라이브러리 설치

테스트(네트워크확인, 부하테스트, 운용테스트)

시스템 릴리스 및 마이그레이션

(4) 운용단계

서버프로세스, 네트워크, 리소스, 배치 Job 모니터링

데이터 백업 및 정기 유지보수

OS, 미들웨어 버전 업그레이드

애플리케이션 버전 업그레이드

시스템 장애 시 대응

사용자 서포트

출처:

https://ithub.tistory.com/249(IT인프라 구조 총정리)

https://developer.ibm.com/kr/cloud/2019/02/01/easy_container_kubernetes/(difference between kubernetes and docker)

완벽한 IT인프라 구축을 위한 Dodcker 2판, Asa Shiho지음

나동빈 - 도커(Docker) 활용 및 배포 자동화 실전 초급

+ Recent posts