[DevOps] 오픈시프트(OpenShift)와 쿠버네티스(Kubernetes)
·
DevOps
1. Kubernetes (k8s)1.1. 쿠버네티스란?❓ 컨테이너를 쉽고 빠르게 배포 및 확장하고, 관리를 자동화해주는 오픈소스 플랫폼컨테이너 오케스트레이션 툴오케스트레이션 : 배포, 관리, 확장, 네트워킹을 자동화컨테이너 수가 많아지면 관리 / 운영이 어려움 → 다수의 컨테이너를 관리 / 조율하는 시스템 필요컨테이너의 생성, 소멸, 시작 및 중단 시점 제어, 스케줄링, 로드 밸런싱, 클러스터링 등 모든 과정 관리특징컨테이너화된 애플리케이션 배포컨테이너로 패키징된 애플리케이션을 여러 대의 컴퓨터 / 클라우드 인프라에 쉽게 배포 가능자동 스케일링 (Auto Scaling)애플리케이션 부하에 따라 자동으로 서버를 늘리거나 줄이기 가능트래픽 증가에 대처 용이고가용성 (High Availability)애플리케..
[DevOps] 컨테이너(Container)와 도커(Docker)
·
DevOps
1. Container1.1. 컨테이너란?❓ 실행 환경에 독립적으로 애플리케이션을 실행하는 기술운영체계 수준의 격리 기술애플리케이션 구동에 필요한 라이브러리, 종속 항목을 패키징장점가벼움 : VM과 달리 Guest OS가 없어 크기가 작음탄력성 : 리눅스, 윈도우, 가상머신 등 어느 환경에서나 구동 가능유지 관리 효율: 운영 체제 커널이 하나 → OS 수준 업데이트 / 패치를 한 번만 수행하여 모든 컨테이너에 적용 가능 1.2. 컨테이너와 가상머신(VM)의 차이컨테이너 (Container)하나의 Host OS그 위에서 각각의 독립적인 프로그램처럼 관리 및 실행확장성이 좋고 빠름불필요한 OS 만들기 및 인프라 독립적으로 나눌 필요 없음가상머신 (Virtual Machine)각 VM에 독립적인 Guest O..
[DevOps] Jenkins란?
·
DevOps
0. 젠킨스 (Jenkins)오픈 소스 CI / CD (지속적 통합 / 지속적 배포) 도구소프트웨어 개발 프로세스의 빌드, 테스트, 배포 등을 자동화 및 관리다양한 플러그인과 함께 여러언어와 프레임워크 지원 1. 젠킨스의 특징마스터 / 슬래이브 구조Master (Controller) : slave를 관리하고, 작업 스케줄링, slave 모니터링을 포함한 다양한 작업 관리Slave (Agent) : 실제 파이프라인(빌드, 테스트 등) 작업을 수행다양한 환경에서 작동작업을 분산시켜 부하를 감소시키는 역할로컬 / 클라우드 컴퓨터를 통해 Master에 연결될 수 있어 다양한 유연성 제공파이프라인 스크립트Jenkinsfile : Grooby 언어로 작성된 스크립트 파일소스코드와 함께 버전관리 시스템에 저장각 단..
[DevOps] CI/CD란?
·
DevOps
1. CI (Continuous Integration)새로운 코드 변경 사항이 정기적으로 빌드 및 테스트되어 공유 리포지토리에 통합개발자를 위한 자동화 프로세스Code - Build - Test 단계에서 꾀할 수 있다개발자는 버그를 일찍 발견할 수 있고, 테스트가 완료된 코드에 대해 빠른 전달 가능코드를 머지하기 전, 이미 빌드 오류나 테스트 오류를 확인하여 훨씬 더 효율적인 개발 가능Code : 개발자가 코드를 원격 코드 저장소 (Ex. github repository)에 push하는 단계Build : 원격 코드 저장소로부터 코드를 가져와 유닛 테스트 후 빌드하는 단계Test : 코드 빌드의 결과물이 다른 컴포넌트와 잘 통합되는 지 확인하는 과정 2. CD (Continuous Delivery / D..