목록분류 전체보기 (277)
내 잡다한 노트
젠킨스(Jenkins)란?젠킨스(Jenkins)는 오픈소스 자동화 서버로, 소프트웨어 개발의 빌드(Build), 테스트(Test), 배포(Deploy) 과정을 자동화하기 위해 사용됩니다. 특히 CI/CD(지속적 통합 및 지속적 배포)를 구현하는 데 매우 유용하며, DevOps 환경에서 중요한 역할을 합니다. 주요 기능지속적 통합(CI)코드가 변경될 때마다 자동으로 빌드와 테스트를 실행해 개발 주기를 단축하고 품질을 높입니다.지속적 배포(CD)빌드가 성공하면 자동으로 애플리케이션을 배포해 배포 과정에서의 오류를 최소화합니다.플러그인 시스템Jenkins는 1,800개 이상의 플러그인을 지원하여 다양한 개발 환경과 도구를 통합할 수 있습니다.예: Git, Docker, Kubernetes, Maven, Gra..
GitHub Actions의 self-hosted runner는 CI/CD 작업을 수행하는 에이전트로 작동합니다. 각 노드에 해당 에이전트를 설치하고 실행해야 하며, 리포지토리와 러너 간의 구분 및 관리는 다음과 같은 방식으로 이루어집니다. 1. Self-Hosted Runner의 기본 작동 방식러너는 특정 리포지토리, 조직, 또는 엔터프라이즈 계층에 연결할 수 있습니다.GitHub Actions 워크플로우가 실행될 때, 해당 워크플로우에서 지정한 러너 그룹(또는 태그)에 따라 작업이 배정됩니다.러너는 각 노드에 설치되고, 워크플로우의 runs-on 조건에 따라 선택됩니다. 2. 러너의 구분 방식1) 러너를 리포지토리에 연결특정 러너를 개별 리포지토리에만 연결할 수 있습니다.이렇게 하면, 해당 러너는 ..
pNFS(Parallel Network File System)는 전통적인 NFS(Network File System)의 확장으로, 대규모 데이터 처리와 고성능이 요구되는 환경에서 더욱 향상된 성능을 제공하기 위해 설계되었습니다. pNFS는 특히 빅데이터, 고성능 컴퓨팅(HPC), 클라우드 스토리지 등에서 널리 사용됩니다. 아래에서 pNFS의 성능에 대해 자세히 설명드리겠습니다. 1. pNFS란 무엇인가?pNFS는 NFS 버전 4.1부터 도입된 기능으로, 기존의 NFS 서버를 통한 단일 경로 접근 방식을 벗어나, 클라이언트가 여러 스토리지 서버에 직접 접근하여 데이터를 병렬로 읽고 쓸 수 있도록 지원합니다. 이를 통해 데이터 접근 속도와 처리량을 크게 향상시킬 수 있습니다. 2. pNFS의 성능 특징병렬 ..
HPC(High-Performance Computing) 환경은 고성능 컴퓨팅을 위한 시스템과 관련된 개념으로, 방대한 계산량이나 복잡한 데이터 처리를 빠르게 수행하기 위해 설계된 컴퓨터 시스템 및 소프트웨어를 말합니다. HPC 환경은 과학 연구, 엔지니어링, 금융 분석, 인공지능, 기후 모델링, 생명 과학 시뮬레이션 등 다양한 분야에서 사용됩니다. 1. HPC 환경의 주요 구성 요소HPC 환경은 크게 다음과 같은 요소들로 구성됩니다.1-1. 컴퓨팅 노드노드(Node): 일반적으로 하나의 독립적인 컴퓨터로 구성되며, CPU, 메모리, 스토리지가 포함됩니다.멀티코어 및 멀티프로세서: 각 노드는 여러 개의 CPU 코어 또는 GPU를 포함하여 병렬 처리를 지원합니다.수십에서 수천 대의 노드가 클러스터 형태로 ..
**CI/CD(Continuous Integration and Continuous Deployment/Delivery)**는 소프트웨어 개발 프로세스를 자동화하여 코드 통합, 빌드, 테스트, 배포 과정을 효율적이고 안정적으로 수행할 수 있게 하는 방법론입니다. 이를 통해 개발 주기를 단축하고 품질을 유지하면서 소프트웨어를 빠르게 릴리스할 수 있습니다. CI/CD의 구성 요소1. CI (Continuous Integration, 지속적 통합)CI는 개발자들이 작업한 코드를 자주 통합하고, 자동화된 빌드 및 테스트를 실행하는 프로세스입니다.주요 작업:코드 변경 감지:소스 코드가 버전 관리 시스템(Git 등)에 커밋될 때마다 프로세스 시작.빌드(Build):소스 코드를 컴파일하거나 패키지로 묶음.예: Mave..
**DooD(Docker out of Docker)**는 Docker 컨테이너에서 호스트 시스템의 Docker 엔진을 직접 사용하는 설정 방식입니다. 이는 컨테이너 내부에서 별도의 Docker 설치 없이, 호스트 시스템의 Docker를 활용하여 컨테이너를 실행하거나 관리할 수 있도록 해줍니다. DooD의 원리DooD는 두 가지 주요 요소를 공유하여 동작합니다:Docker CLI 실행 파일 공유:/usr/bin/docker를 컨테이너에 마운트하여 Docker CLI(Command Line Interface)를 사용 가능하게 함. volume:- /usr/bin/docker:/usr/bin/dockerDocker 데몬 소켓 공유:/var/run/docker.sock을 컨테이너에 마운트하여 컨테이너 내부에서..
PAM은 리눅스에서 사용하는 인증 모듈로 서비스에 대한 사용자의 사용 권한을 제어하는 모듈이다. PAM이 없을 때는 사용자를 인증하기 위해 응용프로그램을 활용해야 했는데, 응용프로그램은 /etc/passwd의 접근 권한을 가지고 있어야 해서 침해사고의 위험이 존재했다. 이를 해결하기 위해 PAM이 등장하게 됐다. 동작 원리- 인증이 필요한 응용프로그램은 더 이상 passwd 파일을 열람하지 않고 PAM 모듈에 사용자 인증을 요청한다.- PAM은 인증을 요청한 사용자의 정보를 가지고 결과를 도출하여 응용프로그램에 전달한다. PAM의 구성 요소PAM은 다음과 같은 주요 구성 요소로 이루어져 있습니다.1. PAM 모듈실제 인증 작업을 수행하는 소프트웨어./lib/security/ 또는 /usr/lib/sec..
**Reverse DNS(리버스 DNS)**는 IP 주소를 호스트 이름으로 변환하는 시스템입니다. 이는 일반적인 DNS(forward DNS)가 호스트 이름을 IP 주소로 변환하는 것과 반대되는 역할을 합니다. 리버스 DNS는 특정 상황에서 중요하며, 네트워크 및 보안에서 다양한 용도로 사용됩니다. Reverse DNS가 필요한 이유1. 신뢰성과 인증스팸 방지와 메일 서버 인증:많은 이메일 서버는 스팸 메일을 방지하기 위해 발신자의 IP 주소에 대해 리버스 DNS 조회를 수행합니다.발신 IP가 리버스 DNS를 통해 적절한 호스트 이름으로 매핑되지 않으면 스팸으로 간주하거나 메일을 거부할 수 있습니다.예:IP: 192.168.0.28리버스 DNS: mail.example.com리버스 DNS가 설정되어 있으..