본문 바로가기

Infra & Tools/CI & CD4

배포란 ? 배포 ? 만든 작업물을 외부 환경에 공개하는 일. 1. FTP 나 원격저장소로 설치 & 실행 FTP를 통해 서버에 소스 코드를 업로드하거나 GitHub와 같은 코드 원격 저장소를 통해 코드를 업로드하고, 이후 서버에 접속하여 소스 코드를 실행시킴. → 그러나, 한 서버에 여러개 서비스를 실행할 경우, 각 서비스는 독립적이지만, 같은 실행 환경을 공유하고 있기 때문에 부작용이 발생할 수 있음. → ‘코드를 실행하는 환경'과 ‘베포의 독립성'에 대한 이슈를 제기하게 됨. 2. VM 위에 배포 VM으로 리눅스 환경을 구축하여, 이 위에서 실행할 수 있음. VM을 사용하여 테스트 환경과 똑같은 운영체제 환경을 구축 할 수 있음. 3. 컨테이너 기반 (Docker) 으로 배포 코드 개발 → Dockerfile 을.. 2022. 6. 2.
가상화 기술과 도커 OS 하드웨어 리소스를 관리하는 소프트웨어. 사용자와 하드웨어 사이 매개체 역할을 함. 가상화 기술이란 ? 하드웨어 리소스를 추상화하여 소프트웨어화 하는 기술. (예를 들어, 가상화 기술을 통해, 또다른 운영환경 (CPU 1코어, Memory 2G, Ubuntu 16.04) 처럼 소프트웨어를 만듬) → 하드웨어 리소스를 추상화했기 때문에 서비스에 자원을 자유롭게 할당할 수 있음. → OS에 관계없이 동일한 환경에서 소프트웨어를 구동할 수 있음. → 특정 리소스만큼 할당된 가상화 공간을 제공받음. 가상화 기술 종류 VM (Virtual Machine) → VM은 하드웨어를 가상화하는 기술 중 하나로, 컴퓨터에 기본적으로 설치한 OS 위에 Hypervisor라는 소프트웨어를 통해 여러 OS (Guest OS.. 2022. 6. 2.
모놀리스와 마이크로서비스 소프트웨어 아키텍처 패턴. 모놀리스 (Monolith) 아키텍처 모놀리스 아키텍처란 하나의 소프트웨어를 구성하는 모든 모듈을 한 프로젝트에서 관리함. → 한 프로젝트 내에 모든 모듈과 코드가 있음 → 소프트웨어가 비규적 단순 → 그러나, 애플리케이션 코드가 많아지고 서비스가 확장되면 전체 구조나 코드 흐름을 쉽게 이해하기 어려움. 한 프로젝트 내에 있는 코드이므로, 모든 코드가 결합되어 있기 때문에 사이드 이펙트가 일어날 수 있음. ⇒ 모놀리스 아키텍처는 하나의 소프트웨어를 하나의 프로젝트로 개발하는 아키텍처임. 마이크로서비스 아키텍처 마이크로 서비스는 하나의 소프트웨어를 구성하는 컴포넌트들을 독립적인 프로젝트들로 분리하여 관리함. → 각각의 컴포넌트들을 마이크로 서비스라고함. → 개발과 배포도 분리된 .. 2022. 6. 2.
CI & CD 에 대해 알아보자. 목차 1. CI/CD에 대해 알아보자. 2. CI/CD 연동 시 구조에 대해 알아보자. 1. CI/CD에 대해 알아보자. CI (Contious Integration)은 지속적 통합이다. 지속적 통합이라는 것은 어떤 의미일까? 코드 버전 관리를 하는 VCS (Git,SVN 등)에 PUSH를 하면 자동으로 테스트와 빌드가 수행되어 안정적인 배포 파일을 만드는 과정이다. CD (Contious Deployment/Continuos Delivery)는 지속적인 배포/지속적인 서비스제공이다. 지속적인 배포란, 빌드 결과를 자동으로 운영 서버에 무중단 배포까지 진행되는 과정이다. 이러한 과정이 왜 필요하게 된 것일까? 이를 알아보기 위해 아래에는 Red Hat 문서에 있는 글을 가져와 보았다. CI/CD는 애플리.. 2020. 7. 26.