목록DevOps (94)
내 잡다한 노트
Standalone 방식과 inetd 방식 비교Standalone 방식과 inetd 방식은 서버 프로세스 실행 방식에 대한 두 가지 접근법으로, 각각 장단점과 적합한 상황이 다릅니다. 이를 아래에서 설명하겠습니다.1. Standalone 방식설명:서버 프로세스가 독립적으로 실행되어 항상 대기 상태로 동작하는 방식.프로세스가 메모리에 상주하며 클라이언트 요청을 처리.특징:서버가 항상 메모리에 상주하므로 초기 연결 속도가 빠름.주로 사용자가 많거나 고빈도 요청이 필요한 서비스에 적합.예: 웹 서버(Apache, Nginx), 데이터베이스 서버(MySQL).장점:빠른 응답 시간(항상 실행 중이기 때문).빈번한 요청 처리에 적합.단점:메모리와 CPU를 항상 소비(비효율적일 수 있음).요청이 적으면 리소스 낭비...
NI(Nice Value)란?**NI(Nice Value)**는 Linux/Unix 운영체제에서 프로세스의 우선순위를 설정하기 위해 사용하는 값입니다.프로세스가 CPU를 얼마나 선호하는지를 나타내며, 시스템에서 CPU 리소스를 효율적으로 할당하는 데 도움을 줍니다. 1. Nice Value의 역할프로세스가 CPU를 얼마나 "양보(nice)"할지를 결정합니다.값이 낮을수록 우선순위가 높고, 값이 높을수록 우선순위가 낮습니다.**우선순위(priority)**는 Nice Value와 다른 내부 값인 "기본 우선순위"를 조합하여 결정됩니다.2. Nice Value의 범위범위: -20에서 19까지.-20: 가장 높은 우선순위.19: 가장 낮은 우선순위.기본 값은 **0**이며, 모든 프로세스는 기본적으로 0의 우..
Docker Stack은 Docker의 오케스트레이션 도구 중 하나로, 주로 Docker Swarm 모드에서 여러 컨테이너 서비스를 관리하고 배포하는 데 사용됩니다. Docker Stack을 사용하면 복잡한 애플리케이션을 여러 서비스로 구성하고, 이를 하나의 스택으로 정의하여 쉽게 배포, 확장, 관리할 수 있습니다. 다음은 Docker Stack에 대한 주요 설명입니다.주요 개념스택(Stack)스택은 여러 개의 서비스, 네트워크, 볼륨 등을 하나의 단위로 묶은 구성입니다. 예를 들어, 웹 서버, 데이터베이스, 캐시 서버 등을 하나의 스택으로 정의할 수 있습니다.Compose 파일docker-compose.yml 파일과 유사한 YAML 파일을 사용하여 스택의 구성을 정의합니다. 이 파일에는 각 서비스의 이..
오버레이 네트워크는 물리적 네트워크 위에 가상 네트워크를 생성하여 여러 호스트 간 통신을 가능하게 하는 네트워크 기술입니다. 이 가상 네트워크는 물리적 네트워크를 캡슐화(encapsulation)하여 논리적으로 격리된 네트워크 환경을 제공합니다. 오버레이 네트워크는 컨테이너나 VM과 같은 가상 환경 간의 통신을 지원하며, 다음과 같은 주요 구성 요소로 이루어져 있습니다:1.1. 가상 네트워크 (Virtual Network)물리적 네트워크와 독립적으로 작동하며, 각 컨테이너나 VM은 가상 네트워크를 통해 통신합니다.논리적으로 구성되기 때문에 네트워크를 세분화하고, 격리된 환경을 제공할 수 있습니다.1.2. 캡슐화 (Encapsulation)네트워크 트래픽은 VXLAN(또는 GRE, IPsec) 프로토콜을 ..
Docker BuildKit는 Docker의 빌드 엔진으로, Docker 이미지 빌드 프로세스를 개선하고 최적화하기 위해 도입된 혁신적인 기능입니다. BuildKit은 기존의 Docker 빌드 시스템에 비해 여러 가지 장점과 기능을 제공하며, 더 효율적이고 빠른 이미지 빌드를 가능하게 합니다. 1. Docker BuildKit 소개Docker BuildKit은 Docker의 새로운 이미지 빌드 시스템으로, Docker Engine과 통합되어 더 빠르고 효율적인 빌드 프로세스를 제공합니다. BuildKit은 기본 Docker 빌드 시스템보다 향상된 기능과 성능을 제공하며, 복잡한 빌드 요구 사항을 더 잘 처리할 수 있도록 설계되었습니다.주요 특징병렬 빌드: 여러 단계의 빌드를 병렬로 실행하여 빌드 시간을..
직렬화(Serialization)와 역직렬화(Deserialization)는 데이터 구조나 객체를 저장하거나 전송할 수 있는 형태로 변환하는 과정과 그 반대 과정을 의미 1. 직렬화(Serialization)란?정의직렬화는 복잡한 데이터 구조나 객체를 연속된 바이트 스트림으로 변환하는 과정입니다. 이를 통해 데이터를 파일에 저장하거나 네트워크를 통해 전송할 수 있게 됩니다.작동 방식데이터 구조 선택: 직렬화할 객체나 데이터 구조를 선택합니다.변환 과정: 객체의 상태(데이터)를 바이트 형태로 변환합니다.저장 또는 전송: 변환된 바이트 스트림을 파일, 데이터베이스, 메모리, 또는 네트워크를 통해 저장하거나 전송합니다.사용 사례데이터 저장: 객체 상태를 파일이나 데이터베이스에 저장할 때.네트워크 전송: 클라..
Jenkins의 공식 문서에서 Organization Folders 사용을 권장하는 이유는 주로 대규모 프로젝트 관리, 자동화된 리포지토리 발견, 일관된 파이프라인 관리 등을 통해 CI/CD 프로세스를 더욱 효율적이고 확장 가능하게 만들기 때문입니다. 1. Organization Folders란?Organization Folders는 GitHub, GitLab, Bitbucket과 같은 소스 코드 관리(SCM) 플랫폼에서 조직(Organization) 또는 사용자(User) 계정 아래에 있는 모든 리포지토리를 자동으로 탐색하고, 각 리포지토리에 대해 개별적인 Jenkins 파이프라인을 생성하는 기능입니다. 이를 통해 여러 리포지토리를 중앙에서 관리하고, 자동화된 방식으로 빌드 및 배포 파이프라인을 설정할..
1. Declarative Pipeline장점가독성구조화된 문법을 사용하므로 코드가 직관적이고 읽기 쉬움.정해진 구문(pipeline, stages, steps) 덕분에 초보자도 쉽게 이해 가능.에러 방지Jenkins에서 선언형 문법을 강제하기 때문에 문법 오류를 줄일 수 있음.Jenkins의 자동 완성 및 구문 검증 기능과 잘 연동됨.표준화팀 간에 파이프라인 작성 방식이 일관될 수 있음.반복 가능한 작업에 적합.내장 기능post 블록과 같은 후처리 단계(always, success, failure)를 기본 제공.agent 설정, 환경 변수(environment) 선언이 간단.단점제한된 유연성복잡한 조건 분기나 동적인 작업에는 적합하지 않음.특정한 로직을 구현하려면 Scripted Pipeline으로 전..