2019 년 최고의 10 가지 DevOps 툴

개발 및 운영과 유지 보수의 통합으로 소프트웨어 개발의 새로운 장이 열렸습니다. DevOps를 처음 사용하거나 기존 프로세스를 개선 할 수있는 방법을 찾고 있다면 첫 번째 단계는 팀에 가장 적합한 도구를 조사하는 것입니다.

이 문서에서는 필요한 도구를 선택하기위한 자세한 참조 정보를 제공하는 도구 목록을 구성합니다. 자동화 된 빌드 툴에서 애플리케이션 성능 모니터링 플랫폼에 이르는 10 가지 최고의 DevOps 툴을 살펴 보겠습니다.

1. Gradle

1.png

DevOps 툴셋에는 안정적인 빌드 툴이 필요합니다. Apache Ant와 Maven은 수년간 자동화 된 빌드 툴 시장을 장악했지만 Gradle 은 2009 년에 등장한 이후 꾸준히 성장하고 인기를 얻고 있습니다. Gradle은 매우 강력하여 사용자가 Java, C ++, Python 또는 기타 언어로 프로그래밍 할 수 있습니다. Netbeans, Eclipse 및 Intellij IDEA와 같은 다양한 널리 사용되는 IDE도 Gradle을 지원합니다. 이것이 당신이 그것을 사용하도록 확신하지 않는다면 도움이 될 수 있습니다 .Google  Andriod Studio의 공식 빌드 도구 로도 선택했습니다 .

Maven과 Ant는 XML 구성을 사용하고 Gradle은 Groovy 기반의 DSL을 도입하여 빌드를 설명합니다. 2016 년에 Gradle 팀은 Kotlin 기반 DSL을 출시 했으므로 이제 사용자는 Kotlin을 사용하여 빌드 스크립트를 작성할 수 있습니다. Gradle 학습에 어느 정도 시간이 걸리므로 Groovy, Kotlin 또는 기타 JVM 언어를 사용한 적이 있다면 Gradle이 빠르게 마스터하는 데 도움이됩니다. 또한 Gradle은 Maven의 저장소 형식을 사용하므로 Maven을 사용한 경우 Gradle의 종속성 관리에 익숙 할 것입니다. Ant 빌드 를 Gradle로 가져올 수도 있습니다 .

Gradle의 최고의 디자인은 증분 빌드 이므로 많은 컴파일 시간을 절약 할 수 있습니다. Gradle의 성능 보고서 에 따르면 Maven보다 100 배 빠릅니다. 이 성능 이점의 일부는이 증분 디자인에서 비롯되며 Gradle의 빌드 캐시 및데몬 . 빌드 캐시는 작업 출력을 재사용하고 Gradle의 데몬은 빌드 정보를 메모리에 저장하여 여러 빌드간에 공유 할 수 있습니다.

전체적으로 Gradle은 빠른 전송을 가능하게하고 구성을보다 유연하게 만듭니다.

2. Git

2.png

Git 은 가장 널리 사용되는 DevOps 도구 중 하나이며 소프트웨어 세계에서 널리 사용됩니다. 원격 SCM과 오픈 소스 기고자들에게 사랑받는 분산 SCM (소스 관리) 도구입니다. 힘내 사용자는 개발 작업의 진행 상황을 추적 할 수 있습니다. 사용자는 다른 버전의 소스 코드를 저장하고 필요할 때 이전 버전으로 다시 전환 할 수 있습니다. 별도의 브랜치를 생성하고 필요할 때 새 기능 만 병합 할 수 있기 때문에 실험에도 매우 적합합니다.

Git 및 DevOps 워크 플로우를 통합하려면 팀 구성원이 작업을 추진할 수있는 저장소를 유지해야합니다. 현재 두 가지 최고의 온라인 Git 리포지토리 호스팅 서비스는 GitHub 및 Bitbucket 입니다. GitHub는 더 유명하지만 Bitbucket은 소규모 팀 (5 명 이하)을위한 무료 및 무제한 개인 저장소를 제공합니다. GitHub를 사용하면 사용자는 무료로 공개 리포지토리에만 액세스 할 수 있습니다. 이는 여전히 많은 프로젝트에 적합한 솔루션입니다.

GitHub와 Bitbucket은 모두 잘 통합되어 있습니다. 예를 들어, 사용자는 커밋이있을 때 팀의 모든 사람에게 알릴 수 있도록 Slack과 통합 할 수 있습니다.

3. Jenkins

3.png

Jenkins 는 많은 소프트웨어 개발 팀이 DevOps로 이동할 때 사용할 자동화 도구입니다. 사용자가 다른 제공 파이프 라인 단계를 자동화하는 데 도움이되는 오픈 소스 CI / CD 서버입니다. Jenkins가 인기있는 주된 이유는 거대한 플러그인 생태계입니다. 현재 1,000 개 이상의 플러그인을 제공 하므로 Docker에서 Puppet에 이르는 거의 모든 DevOps 도구와 통합 할 수 있습니다.

Jenkins를 통해 사용자는 실제 요구에 따라 고유 한 CI / CD 파이프 라인을 구축하고 사용자 지정할 수 있습니다. 다음 예제는 Jenkins 설명서에 설명되어 있습니다 . 이것은 단지 하나의 실현 일뿐입니다. 멋져 보이지 않습니까?

4.png

Jenkins를 사용하는 것은 쉽습니다 . Windows, Mac OS X 및 Linux에서 즉시 사용할 수 있습니다. Docker를 사용하여 쉽게 설치할 수 있습니다 . 사용자는 브라우저를 통해 Jenkins 서버를 구축하고 구성 할 수 있습니다. 처음 사용하는 경우 가장 일반적으로 사용되는 플러그인을 설치하도록 선택할 수 있습니다. 물론 사용자 지정 구성을 만들 수도 있습니다.

Jenkins를 사용하면 사용자는 가능한 한 빨리 새 코드를 반복하고 배포 할 수 있습니다. 또한 파이프 라인에서 각 단계의 성공을 측정하는 데 도움이됩니다. 나는 사람들이 직관적 인 UI가 아니라 Jenkins의 “추악한”것에 대해 불평하는 것을 들었습니다. 그러나 여전히 필요한 모든 것을 쉽게 찾을 수 있습니다.

4. Bamboo

5.png

Bamboo 는 Atlassian의 CI / CD 서버 솔루션이며 많은 기능이 Jenkins와 유사합니다. 이들은 빌드에서 배포에 이르기까지 사용자가 릴리스 파이프 라인을 자동화하는 데 도움이되는 널리 사용되는 DevOps 도구입니다. 그러나 Jenkins는 오픈 소스이며 Bamboo가 청구됩니다. 그러므로 여기서 영원한 질문은 자유 소프트웨어가있을 때 유료 소프트웨어를 선택해야합니까? 그것은 당신의 자금과 목표에 달려 있습니다.

Bamboo에는 많은 사전 빌드 기능이 있으며 이러한 기능은 Jenkins에서 수동으로 빌드해야합니다. 이것이 Bamboo를위한 플러그인이 더 적은 이유입니다 (약 100 개, Jenkins는 1000 이상). 실제로 Bamboo에는 많은 플러그인이 필요하지 않습니다. 기본 제공되는 많은 기능이 포함되어 있기 때문입니다.

Bamboo는 Jira 및 Bitbucket과 같은 다른 Atlassian 제품과 완벽하게 통합됩니다. 또한 사용자는 내장 된 Git 및 Mercurial 지점 워크 플로우 및 테스트 환경에 액세스 할 수 있습니다. 간단히 말해 Bamboo는 많은 구성 시간을 절약 할 수 있습니다. UI는 프롬프트, 자동 완성 및 기타 유용한 기능을 통해보다 직관적입니다.

5. Docker

6.png

Docker 는 2013 년에 출시 된 이후 최고의 컨테이너 플랫폼이되었으며 계속 개선되고 있습니다. 가장 중요한 DevOps 도구 중 하나입니다. Docker는 주로 분산 개발이 가능하고 응용 프로그램 배포를 자동화하기 때문에 기술 세계에서 컨테이너화 추세를 설정했습니다. 응용 프로그램을 별도의 컨테이너로 격리하므로 응용 프로그램의 이동성과 안전성이 향상됩니다. Docker 응용 프로그램은 OS 및 플랫폼과 독립적입니다. 사용자는 VirtualBox와 같은 가상 머신 대신 Docker 컨테이너를 사용할 수 있습니다.

Docker에서 가장 좋아하는 점은 사용자가 종속성 관리에 대해 걱정할 필요가 없다는 것입니다. 모든 종속성을 응용 프로그램 컨테이너에 패키지하고 모든 것을 별도의 단위로 제공 할 수 있습니다. 그러면 사용자는 모든 시스템 또는 플랫폼에서이 응용 프로그램을 쉽게 실행할 수 있습니다.

Docker는 Jenkins 및 Bamboo 와도 통합 됩니다 . Docker와 함께 자동화 된 서버를 사용하는 경우 전달 워크 플로우를 더욱 향상시킬 수 있습니다. 또한 Docker는 클라우드 컴퓨팅에도 매우 적합합니다. 최근에는 AWS 및 Google Cloud와 같은 모든 주요 클라우드 공급 업체가 Docker를 지원했습니다. 따라서 클라우드 마이그레이션을 계획하는 경우 Docker가이 프로세스를 단순화 할 수 있습니다.

6. Kubernetes

7.png

올해 모두 Kubernetes 에 대해 이야기하고 있습니다 . 컨테이너화를 다음 단계로 발전시키는 컨테이너 오케스트레이션 플랫폼입니다. Docker 또는 다른 대체 제품을 사용할 수 있습니다. Kubernetes는 여전히 새롭고 첫 번째 버전은 2015 년에만 출시되었습니다. 대규모 컨테이너 관리 솔루션을 찾고자하는 일부 Google 엔지니어가 만들었습니다. Kubernetes를 사용하면 컨테이너를 논리 단위로 구성 할 수 있습니다.

컨테이너가 적은 경우 컨테이너 오케스트레이션 플랫폼이 필요하지 않을 수 있습니다. 그러나 시스템이 특정 수준의 복잡성에 도달하여 자원을 확장해야하는 경우 다음 단계는 합리적입니다. Kubernetes를 사용하면 수백 개의 컨테이너 관리 프로세스를 자동화 할 수 있습니다.

Kubernetes를 사용하면 컨테이너화 된 응용 프로그램을 별도의 컴퓨터에 바인딩 할 필요가 없습니다. 대신 컴퓨터 클러스터에 배포 할 수 있으며 Kubernetes는 클러스터 전체에 컨테이너를 자동으로 배포하고 예약합니다.

Kubernetes 클러스터에는 마스터 및 여러 작업자 노드가 포함되어 있습니다. 마스터 노드는 미리 정의 된 규칙을 구현하고 컨테이너를 작업자 노드에 배포합니다. Kubernetes는 모든 책임이 있습니다. 예를 들어 작업자 노드가 오프라인 상태 인 것을 발견하면 해당 컨테이너가 다른 노드에 재배포됩니다.

7. Puppet

8.png

Puppet Enterprise 는 플랫폼 간 구성 관리 플랫폼입니다. 사용자가 인프라를 코드로 관리 할 수 ​​있습니다. 인프라 관리를 자동화하므로 소프트웨어를보다 빠르고 안전하게 제공 할 수 있습니다. 또한 Puppet은 소규모 프로젝트에 사용할 수있는 오픈 소스 도구를 개발자에게 제공합니다 . 그러나 더 큰 인프라를 담당하는 경우 Puppet Enterprise의 추가 기능 이 다음과 같이 유용 하다는 것을 알 수 있습니다.

  • 실시간 보고서
  • 역할 기반 액세스 제어
  • 노드 관리

Puppet Enterprise를 사용하면 여러 팀과 수천 개의 리소스를 관리 할 수 ​​있습니다. 인프라의 관계를 자동으로 이해할 수 있습니다. 종속성을 처리하고 결함을 지능적으로 처리합니다. 구성에 실패하면 모든 종속 구성도 건너 뜁니다. Puppet의 가장 좋은 점은 많은 유명한 DevOps 도구 와 통합 할 수있는 5,000 개 이상의 모듈 이 있다는 것 입니다.

8. Ansible

9.png

Ansible 은 Puppet 및 Chef와 유사한 구성 관리 도구입니다. 사용자는이를 사용하여 자체 인프라를 구성하고 배포를 자동화 할 수 있습니다. 다른 유사한 DevOps 도구와 비교할 때 주요 판매 지점은 단순성과 사용 편의성입니다. Ansible은 Puppet의 인프라 (IAC)와 동일한 철학을 따릅니다. 그러나 매우 간단한 YAML 구문을 사용합니다. Ansible을 통해 사용자는 YAML에서 작업을 정의 할 수 있으며 Puppet에는 자체 선언 언어가 있습니다.

에이전트없는 아키텍처는 종종 언급되는 또 다른 Ansible 기능입니다. 백그라운드에서 실행되는 데몬이나 에이전트가 없기 때문에 Ansible은 구성 관리를위한 안전하고 가벼운 자동화 솔루션입니다. Puppet과 유사하게 Ansible에도 일부 모듈이 있습니다.

DevOps 워크 플로우에서 Ansible의 작동 방식을보다 잘 이해하려면 Red Hat Blod 에서이 블로그 게시물을 확인하십시오 . Jenkins 파이프 라인에서 Ansible을 사용하여 환경을 프로비저닝하고 애플리케이션을 배치하는 방법에 대해 설명합니다.

9. Nagios

10.png

Nagios 는 가장 인기있는 무료 오픈 소스 DevOps 모니터링 도구입니다. 사용자가 문제를 찾고 해결하도록 인프라를 모니터링 할 수 있습니다. Nagios를 사용하면 사용자가 이벤트를 기록하고 중단 및 실패를 실행할 수 있습니다. Nagios 차트 및 보고서를 통해 추세를 모니터링 할 수도 있습니다. 이러한 방식으로 운영 중단 및 오류를 예측하고 보안 공격을 발견 할 수 있습니다.

인프라 모니터링에는 많은 DevOps 도구가 있지만 Nagios 는 풍부한 플러그인 에코 시스템으로 인해 눈에 stands니다. Nagios는 수년 동안 릴리스되었으므로 (2002 년에 릴리스 됨) Nagios를 둘러싼 커뮤니티가 넓습니다. 커뮤니티는 플러그인 외에도 부가 기능, 가이드 기사, 번역 및 기타 유용한 것들을 모두 무료로 제공했습니다.

Nagios는 4 가지 오픈 소스 모니터링 솔루션을 제공합니다.

  1. Nagios 코어
  2. Nagios 11 세
  3. Nagios 로그 서버
  4. Nagios 퓨전

Nagios Core 는 모든 기본 기능을 제공하는 명령 줄 도구입니다. 사용자는 웹 기반 GUI 및 모니터링 마법사를 제공하는 Nagios XI를 선택할 수도 있습니다 . Nagios는 기능 비교를 제공 합니다 .

Nagios Log Server를 통해 사용자는 로그 데이터를 검색하고 가능한 공격에 대한 경보를 구성 할 수 있습니다. Nagios Fusion은 여러 네트워크를 동시에 모니터링 할 수 있습니다.

Nagios는 전반적으로 DevOps 팀에 인프라 모니터링 솔루션을 제공했습니다. 그러나 빌드하는 데 특정 시간이 걸리므로 환경과의 호환성을 고려해야합니다.

10. Raygun

11.png

Raygun 은 오류 모니터링 및 충돌보고를위한 최고의 플랫폼입니다. APM ( Application Performance Monitoring )이 가장 최근의 프로젝트입니다. Raygun의 DevOps 도구는 사용자가 성능 문제를 분석하고 코드, 함수 또는 API 호출을 찾을 수 있도록 도와줍니다. APM 도구와 Raygun의 오류 관리 워크 플로는 함께 작동 할 수 있습니다. 예를 들어 우선 순위가 가장 높은 이슈를 자동으로 찾아 이슈를 만듭니다.

Raygun APM은 항상 문제에 대한 알림을받을 수 있으므로 다른 DevOps의 가치를 극대화 할 수 있습니다. Raygun은 자동으로 오류를 소스 코드에 연결하므로 Raygun은 전체 팀에 오류 및 성능 문제를 찾고 개발 및 운영 및 유지 관리를 밀접하게 연결하기 위해 통일 된 진실의 소스를 제공합니다.

팀에 적합한 DevOps 도구는 무엇입니까?

최고의 DevOps 도구를 찾으려면 약간의 테스트와 경험이 필요합니다. 일반적으로 오픈 소스 소프트웨어를 구축하고 구성하는 데 시간이 더 걸립니다. 대부분의 상용 DevOps 도구에는 사용자가 테스트하고 평가할 수있는 무료 평가판이 있습니다. 도구의 최종 선택은 팀의 요구와 목표에 달려 있습니다.

답글 남기기

이메일 주소는 공개되지 않습니다.