알아야 할 5가지 DevOps 도구
게시 됨: 2016-09-27소개

DevOps(개발 및 운영)는 소프트웨어 개발자 와 IT 전문가 모두의 협업과 커뮤니케이션 을 강조하는 개념 또는 관행의 그룹입니다 . DevOps는 "애자일 시스템 관리"와 "애자일 운영"과 관련된 두 가지 주요 트렌드에서 비롯됩니다.
DevOps는 개발과 IT 운영 간의 협업 및 커뮤니케이션에 대해 생각하기 위한 일련의 프로세스를 촉진합니다. DevOps는 소프트웨어 개발 과 IT 운영 의 상호 의존성 을 인식하고 조직이 소프트웨어 와 IT 서비스를 보다 신속하게 생산할 수 있도록 하는 데 사용할 수 있습니다. DevOps의 주요 목표는 두 사업부 간의 더 나은 협업 및 커뮤니케이션을 옹호하여 관계를 변경하고 개선하는 것입니다. DevOps를 사용하면 기능을 매우 빠르게 프로덕션에 배포하고 문제가 발생할 때 다른 서비스를 중단하지 않고 문제를 감지하고 수정할 수 있습니다.
DevOps의 이점 중 일부는 다음과 같습니다.
- 시장 출시 시간이 현저히 단축됩니다.
- 생산성과 효율성이 향상되었습니다.
- 낮은 실패율.
- 더 안정적인 운영 환경과 더 빠른 딜리버리 기능.
- 지속적인 소프트웨어 제공 및 더 빠른 문제 해결
DevOps 세계에는 시장에서 사용할 수 있는 도구가 많이 있습니다. 이 튜토리얼에서 가장 유용한 도구를 설명하겠습니다.
젠킨스

소프트웨어 개발 주기 를 단축 해야 하는 경우 Jetkins가 적합합니다. Jenkins는 버그가 없는지 확인하기 위해 코드 를 테스트하는 데 널리 사용되는 Java로 작성된 유틸리티 확장 가능한 연속 통합 오픈 소스 입니다 . 생산성을 높여주는 멀티플랫폼 수상 및 CI/CD 애플리케이션입니다. Jenkins는 DevOps 엔지니어가 반복되는 작업의 실행을 모니터링하는 가장 중요한 도구입니다. Jetkins는 개발 측 관리를 위한 오픈 소스 표준이 되었습니다. 그것은 빠르게 데브옵스의 엔진이 되고 있습니다. Jenkins는 1,100개 이상의 플러그인과 추가 기능으로 구성된 훌륭한 생태계 를 보유 하고 있습니다 . 이를 통해 고객은 모든 종류의 기능을 추가하고 Jenkins와 Active Directory를 GitHub에 통합할 수 있습니다. 코드를 빌드하고, Docker 컨테이너를 만들고, 테스트를 실행하고, 프로덕션 환경으로 푸시하도록 Jenkins를 쉽게 구성할 수 있습니다. 웹 인터페이스를 사용하여 Jenkins를 쉽게 설정 및 구성하고 여러 시스템에 작업을 분산할 수 있습니다. Jenkins를 사용하면 SVN 및 Git과 같은 코드 변경 사항을 관찰하고 테스트를 시작한 다음 프로덕션에서 롤백 또는 롤포워드하는 데 도움이 될 수 있습니다.
많은 회사, 오픈 소스 프로젝트 및 기타 조직에서 Dell, Ebay, NASA, Facebook, Linkedin, Netflix, Nokia, Sony, Yahoo!와 같은 Jenkins를 사용합니다. 등.
주요 특징들:
- 스로틀 빌드
- 손쉬운 설치 및 업그레이드
- 스로틀 빌드
- JUnit/TestNG 테스트 보고
- RSS/IM/이메일 통합
- GitHub, Bugzilla, ZIRA와 쉽게 통합
- 영구 링크
요리사

Chef는 Ruby 및 Erlang 으로 작성된 오픈 소스 구성 관리 및 자동화 도구 입니다 . Chef는 IT 인프라를 제어 및 관리하기 위해 물리적 서버, 가상 머신 및 클라우드의 시스템 설정 에 사용됩니다. 하나 또는 수천 개의 서버를 관리하려는 경우 Chef는 전체 프로세스를 코드로 변환하여 자동화합니다. Chef를 Google Cloud, Openstack, Rackspace 및 Amazon EC2와 같은 클라우드 기반 플랫폼과 쉽게 통합하여 새로운 가상 머신을 자동으로 구성할 수 있습니다. Chef는 뛰어난 기능을 갖춘 소규모 및 대규모 IT 인프라 를 위한 솔루션 을 제공합니다. Chef 도구를 사용하면 각 시스템에서 개별 작업을 수행하지 않고도 중앙 위치에서 인프라를 쉽게 구성하고 관리할 수 있습니다. Chef는 Chef Server, Chef Client, Workstation, Chef Analytics 및 Chef Supermarket과 같은 5가지 구성 요소로 구성됩니다.

많은 회사에서 Chef를 사용하여 Facebook, Indiegogo, Mozilla, HP Public Cloud, Disney 및 Etsy와 같은 인프라를 제어하고 관리합니다.
셰프의 장점:
- 클라우드 또는 온프레미스에서 Windows, Linux 및 Solaris 서버와 같은 모든 환경을 관리합니다.
- 네트워크 또는 하드웨어 장애 시 자동화된 로드 밸런싱 및 장애 조치를 제공하는 고가용성을 유지합니다.
- 중앙 위치에서 여러 클라우드 환경을 관리합니다.
- 프리미엄 기능을 사용할 수 있습니다.
앤서블

Ansible은 SSH를 사용하여 다운타임 없이 쉽게 애플리케이션과 시스템을 배포하는 데 사용되는 강력한 오픈 소스 IT 자동화 플랫폼 입니다. Ansible을 사용하면 SSH 또는 PowerShell을 통해 Linux 및 Windows 노드를 관리 할 수 있습니다. Ansible은 Chef, Puppet 또는 Salt와 유사한 프로비저닝 도구이며 시작하기 가장 간단하고 쉬운 도구 중 하나입니다. Ansible은 에이전트와 보안 인프라를 사용하지 않으므로 배포하기 쉽습니다. 또한 일반 영어에 접근하는 방식으로 자동화 작업을 설명할 수 있는 YAML을 사용합니다. 수천 개의 노드에 단일 또는 다중 소프트웨어를 배포해야 하는 경우 Ansible이 필요합니다. 단일 명령을 사용하여 많은 애플리케이션을 많은 노드에 배포할 수 있습니다. Chef 및 Puppet과 같이 Linux에 사용할 수 있는 널리 사용되는 구성 관리 도구가 많이 있지만 사용하기가 더 복잡합니다. Ansible은 이러한 옵션에 대한 훌륭한 대안 도구입니다.
주요 특징들:
- 그래픽 대시보드, 작업 스케줄링, 역할 기반 액세스 제어 및 그래픽 인벤토리 관리.
- 그 어느 때보다 사용하기 가장 간단하고 쉬운 IT 자동화 시스템.
- 루트가 아닌 사용자로 쉽게 실행할 수 있습니다.
- 소프트웨어를 부트스트랩하지 않고도 여러 노드를 매우 빠르게 병렬로 관리합니다.
- Tower의 원격 명령 실행으로 인벤토리에 있는 호스트 또는 호스트 그룹에서 간단한 작업을 실행하십시오.
도커

Docker는 소프트웨어 컨테이너 내부에 Linux 애플리케이션 배포를 자동화 하는 오픈 소스 이자 세계 최고의 소프트웨어 컨테이너화 플랫폼 입니다. Docker는 컨테이너를 사용하여 애플리케이션을 보다 쉽게 생성, 배포 및 실행할 수 있도록 특별히 설계되었습니다. Docker를 사용하면 실행 중인 시스템과 동일한 Linux 커널을 사용하도록 애플리케이션을 실행할 수 있습니다. Docker는 개발자와 시스템 관리자 모두를 위한 도구이므로 많은 DevOps의 일부가 됩니다. Docker를 Ansible, Amazon Web Services, Chef, Google Cloud Platform 및 Puppet과 같은 다양한 인프라 도구에 통합할 수 있습니다.
주요 특징들:
- 앱의 모든 컨테이너를 단일 그룹으로 관리합니다.
- 다중 컨테이너 앱을 조합하고 모든 인프라에서 실행합니다.
- 단일 Linux 인스턴스에서 여러 컨테이너를 실행할 수 있습니다.
- 도커는 너무 가볍습니다.
감독자

Supervisor는 사용자가 UNIX와 유사한 운영 체제에서 여러 프로세스를 모니터링하고 제어할 수 있도록 하는 프로세스 제어 시스템 입니다. Supervisor는 다른 프로세스와 자식 프로세스를 모니터링하고 충돌이 발생하면 다시 시작하는 역할을 하는 프로세스를 말합니다. 매우 간단하고 간단한 구성 파일을 통해 구성됩니다. 개별 또는 그룹으로 프로세스를 쉽게 제어할 수 있습니다. Supervisor는 로컬 또는 원격 명령줄과 웹 인터페이스를 제공합니다.
Supervisor는 실패한 프로세스와 자동 로그 회전을 다시 시작하는 데 사용되는 많은 사전 프로세스 옵션을 제공합니다.
주요 특징들:
- Python으로 작성되었으며 설치를 위해 C 컴파일러가 필요하지 않습니다.
- Solaris Solaris, Linux, Mac OS X 및 FreeBSD에서 지원됩니다.
- 중앙 위치에서 프로세스를 관리합니다.
- 모니터링하는 데 사용할 수 있는 이벤트 알림 프로토콜이 있습니다.
