공통의 DevOps 약관
다음은 일반적인 목록입니다. DevOps 기업에서 효과적이기 위해 꼭 알아야 할 용어 DevOps.
수락 테스트: 일반적으로 시스템 전체에 대한 고수준 테스트로, 새로운 기능과 기존 기능의 전반적인 품질이 시스템을 프로덕션에 투입하기에 충분히 좋은지 여부를 확인하기 위해 수행됩니다.
애플리케이션 릴리스 오케스트레이션(ARO): 대상 환경에 특정 버전의 애플리케이션을 자동으로 설치하고 올바르게 구성하여 사용할 수 있도록 하는 도구, 스크립트 또는 제품입니다. "애플리케이션 릴리스 자동화"(ARA) 또는 "지속적 배포 및 릴리스 자동화"(CDRA)라고도 합니다.
블랙박스 테스팅: 테스트 중인 시스템의 내부 작동에 대한 지식이 없다고 가정하고 수행하는 테스트 또는 품질 보증 관행으로, 내부 동작이나 상태가 아닌 외부 동작이나 상태를 검증하려고 시도합니다.
빌드 에이전트: 지속적 통합(CI)에 사용되는 에이전트 유형으로, 지속적 통합 서버와 관련하여 로컬 또는 원격으로 설치될 수 있습니다. 소프트웨어 빌드 처리에 대한 메시지를 주고받습니다.
빌드 자동화: 소스 코드를 자동으로 컴파일하여 릴리스 가능한 바이너리로 만들어 주는 도구 또는 프레임워크입니다. 일반적으로 개별 코드가 예상대로 작동하는지 확인하기 위한 코드 수준의 단위 테스트가 포함됩니다.
코드로 구성: 머신, 애플리케이션, 작업 등에 대한 구성을 코드로 지정하고 버전 제어에 보관하는 시스템 구성 관리 기술로, 팀에서 몇 초 만에 애플리케이션/시스템/작업을 구성할 수 있습니다.
구성 드리프트: 수동 임시 변경(예: 핫픽스)으로 인해 소프트웨어 및 하드웨어 구성이 템플릿 버전과 일치하지 않거나 일관성이 없게 되는 일반적인 경향을 나타내는 용어로, 해당 변경 사항을 템플릿에 다시 적용하지 않기 때문입니다.
컨테이너: 가상 머신과 비슷하지만 더 가벼운 컨테이너는 소프트웨어를 실행하는 데 필요한 모든 것을 포함하는 독립 실행형 실행 패키지입니다. 여기에는 코드, 런타임, 시스템 도구, 시스템 라이브러리, 설정 등이 포함됩니다.
지속적 전달(CD): 소프트웨어 생산 프로세스에서 낭비를 근본적으로 제거하고, 고품질 기능을 더 빠르게 제공하고, 기업과 사용자 간에 신속하고 효과적인 피드백 루프를 구축하는 일련의 프로세스와 관행입니다.
지속적 통합 (CI): 개발자가 하루에 여러 번 코드를 공유 저장소에 통합해야 하는 개발 관행입니다. 각 체크인은 자동화된 빌드를 통해 검증되므로 팀은 문제를 조기에 감지할 수 있습니다.
배송 파이프라인: 조직되고 자동화된 작업의 시퀀스를 구현합니다. 소프트웨어 제공 새로운 애플리케이션 버전을 위한 프로세스입니다. 파이프라인의 각 단계는 새 버전에 대한 신뢰도를 높여서 진행 여부를 결정할 수 있도록 설계되었습니다. 배포 파이프라인은 조직의 릴리스 프로세스를 최적화한 결과로 볼 수 있습니다.
DevOps – 개발 + 운영: 개발과 운영의 합성어 DevOps 소프트웨어 개발 주기에서 다양한 역할 간의 의사소통, 협업 및 프로세스를 개선하여 속도와 안정성을 갖춘 더 나은 소프트웨어를 제공하는 일련의 프로세스, 관행 및 도구입니다.
DevSecOps: 보안을 통합하는 관행 DevOps 프로세스.
피드백 루프: 소프트웨어 제공 프로세스 초기에 운영 및 개발 간에 빠르고 지속적인 피드백을 생성하는 것은 핵심 원칙입니다. DevOps그렇게 하면 고객이 실제로 원하는 것을 제공하는 데 도움이 될 뿐만 아니라 개발 부담이 줄어들고, 배포에 대한 두려움이 줄어들고, 개발자와 운영자 간의 관계가 개선되고, 생산성이 높아집니다.
거버넌스: IT 분야에서 거버넌스는 조직이 기술 투자가 예상대로 진행되고 새로운 위험을 초래하지 않는지 평가하고 확인하는 프로세스를 의미합니다. 공식적인 거버넌스 프로세스는 기업이 IT 활동이 비즈니스 목표에 부합하는지 확인하는 동시에 모든 것이 다음과 같은 공통 표준을 준수하는지 확인하는 데에도 도움이 됩니다. OWASP, PCI 3.2 및 CWE/SANS.
코드로서의 인프라: 머신, 네트워크 장치, 운영 체제, 미들웨어 등을 완전 자동화 가능한 형식으로 지정하는 시스템 구성 관리 기법입니다. 명세 또는 "청사진"은 프로비저닝 도구에 의해 실행되는 코드로 간주되며, 버전 관리에 저장되고 일반적으로 애플리케이션 코드 개발에 사용되는 것과 동일한 관행이 적용됩니다.
서비스로서의 인프라(IaaS): 클라우드 호스팅 가상화 머신으로, 일반적으로 "사용량에 따른 과금" 방식으로 요금이 청구됩니다. 사용자는 머신에 대한 모든 제어권을 갖지만, 필요한 미들웨어와 애플리케이션은 직접 설치하고 구성해야 합니다.
젠킨스: Java로 작성된 오픈소스 자동화 서버인 Jenkins는 오랫동안 지속적 통합(CI)의 사실상 표준으로 자리매김해 왔습니다. Jenkins를 사용하면 개발자는 하루에도 여러 번 코드를 공유 저장소에 통합할 수 있습니다. 소프트웨어 배포 프로세스를 확장하려는 조직들은 Jenkins가 스크립팅 및/또는 워크플로 유지 관리에 너무 많은 시간을 요구하고 지속적 배포(CI)로 확장해야 한다는 것을 종종 발견합니다. 지속적 배포는 지속적 통합 도구뿐만 아니라 엔드투엔드 릴리스 오케스트레이션, 테스트 자동화, 보안, IT 서비스 관리 등에도 활용됩니다.
읽다: "린 제조" 또는 "린 생산"은 가치 보존에 초점을 맞춰 생산 과정에서 낭비를 줄이는 것을 목표로 하는 접근 방식 또는 방법론입니다. 토요타가 자동차 제조 분야에서 개발한 관행에서 크게 파생된 린 개념은 애자일 방법론의 일환으로 소프트웨어 개발에 적용되어 왔습니다. 가치 있는 프로세스 단계와 낭비되는 프로세스 단계를 시각적으로 식별하는 가치 흐름 맵은 핵심적인 린 도구입니다.
비기능적 요구 사항(NFR): 사용 편의성, 설계 명확성, 지연 시간, 속도, 그리고 대규모 사용자 수용 능력과 같은 시스템 품질에 대한 명세는 단순히 기능의 존재 여부가 아니라, 기능을 얼마나 쉽고 효과적으로 사용할 수 있는지를 설명합니다. 이러한 특성은 지속적 전달 피드백 루프를 통해 해결하고 개선할 수도 있습니다.
오픈 소스 : 누구나 수정할 수 있는 소스 코드가 포함된 프로그램이나 애플리케이션을 말합니다. AngularJS, React와 같은 다양한 오픈 소스 프레임워크, Gradle, Jenkins와 같은 오픈 소스 도구, 그리고 JHipster와 같은 오픈 소스 라이브러리를 사용하여 특정 소프트웨어 개발 및 배포 프로세스를 개선할 수 있습니다. 복잡한 기업 환경에서는 DevOps 플랫폼은 오픈 소스 도구를 통합하고 이를 전달 파이프라인에 간소화할 수 있습니다.
서비스형 플랫폼(PaaS): 클라우드 호스팅 애플리케이션 런타임은 일반적으로 "사용량에 따른 요금" 방식으로 청구됩니다. 고객은 애플리케이션 코드와 제한된 구성 설정을 제공하고, 미들웨어, 데이터베이스 등은 제공된 런타임에 포함됩니다.
프로비저닝 : 사용자를 위해 새로운 시스템을 준비하는 프로세스입니다. 지속적 배포 시나리오에서 이 작업은 일반적으로 개발팀이나 테스트팀에서 수행합니다. 시스템은 일반적으로 가상화되고 필요에 따라 인스턴스화됩니다. 운영 체제, 미들웨어 등을 설치하기 위한 시스템 구성은 자동화된 시스템 구성 관리 도구에 의해 처리되며, 이 도구는 원하는 구성이 유지되는지 확인합니다.
회귀 테스트: 애플리케이션의 변경 사항이 기존 기능에 부정적인 영향을 미치지 않는지 확인하기 위해 종단 간 시스템을 테스트합니다.
Release 구축: 개발 단계부터 실제 소프트웨어 릴리스까지 소프트웨어 릴리스를 관리하는 프로세스입니다.
왼쪽으로 이동: 배포 속도가 빨라짐에 따라 다양한 애플리케이션, 팀 및 환경에서 보안 위험과 규정 준수 문제가 증가합니다. '시프트 레프트(Shift Left)'는 배포 파이프라인 초기에 위험 평가, 보안 테스트 및 규정 준수 평가 프로세스를 통합하는 것을 의미합니다. 이를 통해 잠재적인 출시 지연 또는 실패, 운영 환경을 위협하는 보안 취약점, 그리고 고액의 벌금을 초래하는 IT 거버넌스 위반을 더 저렴하고 쉽게 해결할 수 있습니다.
테스트 주도 개발(TDD): 코드 자체를 작성하기 전에 코드의 동작을 검증하기 위한 작은 테스트를 작성하는 개발 관행입니다. 테스트는 처음에는 실패하지만, 개발자는 테스트가 성공하도록 코드를 추가하는 것을 목표로 합니다.
단위 테스트: 코드 수준(즉, 실행을 위해 완전히 설치된 엔드투엔드 시스템이 필요하지 않음) 테스트를 통해 개별 코드의 동작을 검증합니다. 테스트 주도 개발은 단위 테스트를 광범위하게 활용하여 의도된 동작을 설명하고 검증합니다.
가치 흐름 매핑: 린 제조 및 엔지니어링 접근 방식에 널리 사용되는 프로세스 시각화 개선 기법입니다. 가치 흐름 맵은 필수 프로세스 단계와 프로세스에서 점진적으로 제거할 수 있는 "낭비"를 구분하는 데 사용됩니다.
버전 제어 시스템(VCS): 시간 경과에 따라 파일이나 파일 세트의 변경 사항을 기록하여 나중에 특정 버전을 다시 불러올 수 있는 시스템입니다. (GitHub, GitLab, Subversion 등)
가상화: 사용자와 애플리케이션이 물리적 머신이 아닌 실제 "실제" 하드웨어에서 실행되는 시뮬레이션 시스템을 사용하는 시스템 관리 방식입니다. 이러한 "가상 머신"은 몇 초 만에 자동으로 생성, 시작, 중지, 복제 및 삭제될 수 있어 운영에 엄청난 유연성을 제공합니다.
화이트 박스 테스트: 시스템 내부가 올바르게 작동하는지 확인하기 위해 시스템이 실행되는 동안 시스템의 동작과 상태를 검사하는 테스트 또는 품질 보증 관행입니다.
무관용 원칙: 즉, 프로덕션 장애에 대한 무관용 원칙을 적용합니다. 고객은 장애에 대해 무관용 원칙을 가지고 있습니다. 고객용 소프트웨어 배포 실패 또는 서비스 중단은 조직, 특히 규제가 엄격한 산업에 종사하는 조직에 치명적인 영향을 미칠 수 있습니다.