JD의 블로그

Jenkins란 무엇인가? 본문

클라우드/Devops

Jenkins란 무엇인가?

GDong 2020. 1. 26. 15:42

Build Pipeline 도구, Jenkins

Devops를 위해, Ansible, Git, Docker 등을 이용해 command line 환경에서 처리 가능하게 만듬으로써 개발을 빠르게 할 수 있습니다. 그러나, 이러한 도구와 도구 사이에도 연결하는 작업들이 필요하고 연결 자체에 시간과 노력이 필요하며 이런 부분에서 실수가 발생하여 문제가 생길 수 있습니다.  Jenkins는 이러한 문제를 해결하고, 좀 더 개발을 효율적으로 할 수 있게 도와줍니다.

 

Jenkins는 어떻게 개발을 효율적으로 만들어주는가?

Jenkins는 빌드와 테스트 등을 위해 서버에 로그인하고 명령어를 수행하는 다소 복잡한 과정을 단순화해줘 한층 더 효율을 높일 수 있게 해줍니다.

 

인프라 구축은 조금만 잘못되어도 큰 영향을 미치는 작업인데, 절차상의 오류로 인해 발생하는 문제도 있을 수 있습니다. 따라서 이러한 작업은 가능한 사람의 수작업과 판단을 배제할 수 있는 프로세스로 구축해야합니다. 또한 구축 후에는 반드시 테스트 등 정해진 작업을 연속적으로 수행할 수 있어야 합니다.

 

Git을 통해서 코드 변경에 대한 이력은 확인할 수 있지만, 실행 이력과 결과는 축적되지 않기 때문에 누가, 언제, 어떤 작업을 했는지, 이를 통해 결과가 어떻게 되었는지 확인할 수 없습니다. 그러나 이러한 정보를 가진다면 장애 발생 시 발생 원인 조사를 위해 필요한 정보로 바로 사용할 수 있기 때문에 굉장히 유용합니다. 

 

Jenkins는 Build Pipeline 도구로 이러한 문제를 해결하며 GUI를 통해 작업을 수행할 수 있는 도구입니다. 즉, 다양한 처리("빌드" or "테스트")를 정의하고 파이프라인으로 만들어, 일련의 프로세스를 자동화하고 원활하게 수행할 수 있게 해줍니다. 따라서 빌드 및 테스트 등의 개별 처리를 쉽게 관리/실행할 수 있게 해줄 뿐 아니라 연속해서 실행할 수 있게 해줍니다.

 

Jenkins에서는 어떤 작업이 가능한가?

  • 프로젝트 단위로 작업을 모아 실행할 수 있는 환경을 제공한다.
    • 정의된 프로세스를 프로젝트 단위로 정의할 수 있게 해주며, 미리 정의된 프로젝트는 실행할 때 명령어 입력이 필요 없습니다. 단순히 정해진 프로젝트를 선택하고 실행하면 끝입니다.
  • 작업을 안전하게 처리할 수 있습니다.
    • 명령어 입력이 필요없기 때문에 절차상의 누수가 발생하지 않습니다.
  • 실행과 결과에 대한 이력을 추적할 수 있는 목록을 만들 수 있습니다.
    • 언제, 누가 프로젝트를 실행했는지, 그 결과가 어떻게 나왔는지를 저장하고 추적할 수 있게 해줍니다.

 

 

'클라우드 > Devops' 카테고리의 다른 글

Kubernetes 개념  (0) 2021.10.05
넷플릭스 마이크로 서비스 가이드  (0) 2020.05.13