클라우드 컴퓨팅
DevOps에서는 가능한 많은 작업을 자동화하려 합니다. 방대한 인프라로 환경을 수동 구성하는 데 몇 주가 걸립니다. 모든 설정이 완료될 즈음엔 새로운 효과적인 솔루션(Rancher 서버 등)을 구현하는 대신 불을 끄는 데 급급하게 됩니다.
Puppet은 시스템을 빠르게 프로비저닝하고 애플리케이션을 배포하기 위해 수동 작업을 자동화하는 데 도움을 줍니다. 동적 인프라 관리가 Puppet의 핵심입니다.
이 글은 Puppet이 무엇인지, 어떤 문제를 해결하는지, DevOps 팀으로서 수동 작업을 자동화하기 위해 Puppet을 성공적으로 사용하는 방법을 설명합니다.
Puppet은 여러 서버 관리를 위한 IaC(Infrastructure as Code) 도구입니다. 주로 Ruby로 작성되었으며, 여러 Unix 계열 시스템에서 작동하고 Windows도 지원합니다.
이 소프트웨어는 2005년 초기 릴리스로 매우 성숙했습니다. Puppet은 무료 오픈소스 소프트웨어로 제공되며, 복잡한 인프라를 위한 독점 버전도 이용 가능합니다.
Puppet은 서버 구성 관리와 배포를 자동화합니다. 이 소프트웨어는 여러 시스템에서 동시에 상태를 관리하고 당겨서, 서버를 개별적으로 수동 설정하고 관리할 필요를 줄입니다.
Puppet은 시스템에 대한 원하는 상태를 정의하며 어떻게 도달할지는 정의하지 않습니다. 구성은 다양한 플랫폼과 기기에 적용되며 인프라 전반에 걸쳐 상태를 유지합니다. 전반적으로 시스템 관리자가 불을 끄는 일이 줄어들어 DevOps 팀이 새롭고 더 나은 서버 솔루션을 구현할 수 있게 됩니다.
자동화 스크립트는 서버 설치 및 구성 같은 반복적 작업 처리에 도움이 됩니다. 그러나 광범위한 인프라로 작업할 때 자동화 스크립트는 확장되지 않습니다.
구성 관리는 광범위한 인프라 구성에 대한 솔루션을 제공합니다. 이 관행은 DevOps의 중추로 간주되며 구축된 DevOps 파이프라인에서 빈번하고 더 신뢰할 수 있는 소프트웨어 릴리스를 가능하게 합니다.
서버 구성 관리는 인프라-코드 접근 방식 덕분에 발생합니다. Puppet의 경우 서버 관리 코드는 Puppet 코드에 있으며, 이는 Ruby와 유사합니다. 이 언어는 선언적이며 모델 기반 구성을 설명합니다.
Puppet은 클라이언트-서버 접근 방식을 사용하며 다음 시스템으로 구성됩니다:
아래 섹션들은 Puppet 작동 방식을 명확히 하는 필수 Puppet 요소와 용어를 설명합니다.
Puppet은 Puppet Master와 Puppet Agents로 구성된 클라이언트/서버 아키텍처를 활용합니다. Puppet Agents는 풀 모드를 사용하여 마스터를 폴링하고 노드별 및 사이트별 구성 정보를 검색합니다.
토폴로지는 다음 단계를 거칩니다:
Puppet은 시스템 정보를 발견하기 위해 Facter라는 유틸리티를 사용합니다. 이 도구는 Puppet 설치 시 기본적으로 포함됩니다.
Puppet Master는 전용 서버에서 실행되는 데몬입니다. Puppet Master는 서버 노드로서 정보 소스이자 구성 권한입니다. 마스터는 모든 에이전트 노드에 지침을 보내고 시스템 구성을 감독합니다.
Puppet Master는 다음 작업을 담당합니다:
Puppet은 전용 사용자와 그룹을 통한 신원 접근 관리를 사용하여 보안을 제공하고 에이전트에게만 필요한 정보를 노출합니다. 그러나 모든 작업이 높은 권한을 요구하는 것은 아닙니다.
Puppet Agent는 시스템 또는 노드에서 실행되는 Puppet 데몬입니다. 에이전트는 Puppet Master에서 가져온 구성 카탈로그를 적용하기 위해 노드에서 특정 권한을 가집니다.
통신 권한을 받기 위해 에이전트는 마스터와의 첫 접촉 시 SSL 인증서를 요청합니다. 인증서는 에이전트가 마스터에 구성 업데이트를 요청할 때마다 확인된 후 정보가 전송됩니다. 마스터도 에이전트에 인증하여 올바른 구성 정보를 보장합니다.
Puppet 에이전트는 시스템 구성을 수정하며 작업을 수행하기 위해 루트 권한이 필요합니다.
Puppet은 통신과 보안을 위해 OpenSSL을 사용합니다. SSL과 TLS 프로토콜을 기반으로 Puppet은 표준 SSL/TLS 암호화와 SSL 인증서를 에이전트/마스터 인증 및 검증에 사용합니다. 또한 Puppet은 SHA-256을 기본 해시로 사용하여 에이전트와 서버 간 트래픽 흐름을 SSL/TLS로 암호화합니다.
Puppet의 암호화 방법은 다음을 보장합니다:
마스터는 자체 CA 인증서, 프라이빗 키, CRL(인증서 해지 목록), 서버 인증서를 생성합니다. 서버 인증서는 에이전트에 전송되어 SSL 및 TLS 통신을 가능하게 합니다.
Puppet은 가장 오래되고 가장 인기 있는 구성 관리 자동화 도구 중 하나입니다. Puppet 사용을 시작해야 하는 충분한 이유가 되는 다섯 가지 장점은 다음과 같습니다.
Puppet은 오픈소스로 기술 확장이 가능합니다. 맞춤 라이브러리와 모듈이 개별 프로젝트를 사용 사례에 맞게 풍부하게 합니다.
오픈소스는 활성 커뮤니티라는 이점도 제공합니다. 수많은 토론, 포럼, 전문가들이 기꺼이 도와주고 질문에 답합니다.
구성 작업은 반복적이며, 플랫폼별 단계를 통해 다른 운영체제의 서버에서 동일한 단계가 종종 필요합니다. 모든 명령을 기억하는 것은 불가능한 작업입니다.
Facter는 Puppet이 세부사항을 파악하고 추상화를 달성하도록 돕습니다. 시스템별 데이터와 OS 세부사항이 모두 Facter 덕분에 Puppet에 친숙합니다.
여러 서버 작업 시 중복 구성은 복잡한 이슈이며, Puppet은 시스템에 영향을 주는 변경만 적용하는 것을 목표로 합니다. 인프라의 원하는 상태가 달성되면 Puppet은 명령을 실행하지 않습니다. 이 Puppet 기능은 멱등성으로 알려져 있으며 중복 감소와 효율성 증대에 도움이 됩니다.
Puppet은 광범위한 플랫폼을 커버하여 구성 자동화 프로세스의 서버 수를 늘립니다. 이 도구는 Windows, OS X, Debian 기반 시스템, Fedora, Gentoo, RHEL, Solaris에서 작동합니다.
Puppet 언어에는 지침을 재정의하고 다양한 시나리오에 대한 예외를 생성하는 방법이 포함됩니다. Puppet은 또한 특정 유지보수 작업을 주기적으로 스케줄링하는 것을 돕습니다.
Puppet은 구성 및 서버 작업 관리를 위한 강력한 도구이며, 동적으로 또는 자주 변경되지 않는 안정적인 서버에 훌륭한 선택입니다.
Puppet이 다른 유사 기술과 어떻게 비교되는지 보려면 비교 글인 Ansible vs. Terraform vs. Puppet을 확인하세요.
클라우드 컴퓨팅
컴퓨터 수치 제어(CNC) 가공은 기술 장비를 사용하여 재료를 자동으로 제품, 부품 또는 프로토타입으로 가공하는 것을 포함합니다. 이는 감산 제조의 한 형태이며, 항공우주, 자동차, 전력 및 기타 기술 산업에 사용되는 정밀 부품을 제조하는 인기 있는 방법이 되었습니다. 사용되는 재료는 보통 금속, 목재, 플라스틱 및 복합 재료이며, 나이프, 드릴, 선반, 프레스, 와이어 컷 방전 가공기(EDM) 같은 CNC 공구로 가공할 수 있습니다. CNC 머시니스트는 가장 수요가 많은 작업 분야입니다. CNC 공작기계 프로그래밍은 고급 5축 공
펌프 공식에서 N이 나타내는 3가지 물리량 펌프 엔지니어링에서 기호 N은 문맥에 따라 다음 세 가지 중 하나를 의미합니다. 혼동 방지를 위해 첨자/단위를 반드시 표기해야 합니다. 기호정식 명칭단위정의주요 공식 N 또는 n회전 속도(Rotational Speed)RPM(rev/min)펌프/모터 축 회전수Q ∝ N, H ∝ N², P ∝ N³ (유사 법칙) N_s 또는 Nq비속도(Specific Speed)미단위: N√Q/H^0.75SI: n√Q/H^0.75펌프 형상 분류 무차원 수Ns < 1,500: 원심/라디얼1,500~4,000