DevOps (6) 썸네일형 리스트형 [DevOps] 배포 전략에 대해서 알아보자 새로운 기능을 완료하고 테스트를 완료 후 운영 서버에 배포를 완료했습니다. 구현한 기능이 문제 없이 동작하는 지 확인하려고 운영서버에 들어가서 확인하던 중 버그를 발견하고 급하게 수정했습니다. 수정 내용을 바로 업데이트하려고 했지만, 업데이트를 하는 동안 어플리케이션이 빌드되고 실행되면 서비스가 잠깐 멈추기 때문에 업데이트를 진행할 수 없었습니다. 서비스가 중단 되지 않고 배포할 수 있는 방법이 없을까? 에 대한 의문을 가지게 되었고 여러가지 방법이 있어 정리해보고 프로젝트에도 적용시켜보려고 합니다.먼저 배포를 진행하려면 어떤 과정이 필요할까?새롭게 구현된 기능을 빌드하고 배포하려고 하는 서버에 다운로드를 받아야 합니다.현재 실행중인 프로세스를 종료하고 새롭게 빌드한 배포 파일을 실행해야 합니다.배포 파.. [Ansible] 왜 Ansible을 사용하게 되었는가? Ansible을 왜 하게 되었는가?안정성과 효율성이 뛰어나기 때문이다. 기존에는 대부분 프로젝트를 배포하고 구축할 때 수동으로 진행했었다. 수동으로 배포를 진행하다보면 많은 문제가 발생했다.시간이 오래걸린다.예를 들어 서버에 웹서버를 띄우고 프론트, 백앤드 어플을 배포한다고 가정해보고 순서를 나열해본다. 간단하게 나열했는데도 많은 task가 필요하다.먼저 필요한 패키지 설치 (nginx, node, jdk)nginx.conf 설정node 버전 설정 (nvm 설치)jdk 설치gradle 빌드사람이기 때문에 실수할 수 있다.나는 기계가 아니다. 그렇기 때문에 실수를 할 수도 있다. 물론 스크립트를 정리해두고 하나하나 실행하면 실수할 확률이 줄어들지만 그래도 실수할 가능성이 존재한다.노드가 두개 이상이라면?구.. [Ansible] 어플리케이션 배포 자동화 Ansible 다중 서버 프로젝트 배포 자동화“Ansible provides open-source automation that reduces complexity and runs everywhere. Using Ansible lets you automate virtually any task."Ansible 공식 문서에 있는 소개 내용이다. Ansible은 거의 모든 작업을 자동화할 수 있다고 소개하고 있다. 오늘은 Ansible 에 대해서 다뤄보려고 한다.담당 업무 특성상 많은 프로젝트를 개발하고 있다. 그리고 프로젝트 성능을 위해서 여러개의 노드를 설정해야할 수 도 있다. 늘어난 프로젝트와 노드를 한번에 관리할 수 있는 솔루션이 필요했다. 현재 많은 양의 노드를 사용하는 프로젝트를 다루진 않지만…서버 노.. [Docker] 도커 배포 vs 일반 배포 프로젝트 운영 서버 구축을 도커라이징으로 진행하면서 느낀점과 마주친 에러를 나누려고 합니다.도커를 왜 하게 됐는지?운영 서버 구축을 앞두고 있었고 CTO님으로 부터 너 5년차에 어떤 개발자가 될꺼야? 라는 말씀에 현실을 직시하고 시작하게 되었습니다.도커에 대한 지식이 없어 공부하고 있었는데 제안해주셔서 설렘과 걱정을 가지고 시작하게 되었습니다.내가 느끼기에 기존 마이스 배포와 도커 컴포즈 배포 차이▶️ 주로 사용한 개발 스택인 백앤드는 스프링 부트, 프론드 앤드는 vue로 개발한다고 가정 하겠습니다.기존 배포 환경 구축윈도우 환경에서 개발을 진행합니다.제공 받은 테스트 서버에 Nginx, MySQL 등의 설치와 설정 그리고 개발 스펙에 맞춰서 패키지를 다운 받고 실행합니다.운영 서버에서도 테스트 서버에서.. [Jenkins] Pipeline으로 배포 자동화 (2) 지금 까지 작성했던 과정들을 Jenkins Pipeline으로 작성해보려고 합니다.Jenkins Pipeline?Jenkins Pipeline은 Jenkins에서 사용할 수 있는 여러 플러그인으로 구성된 도구 모음입니다. Pipeline은 파이프라인 DSL(Domain-Specific Language) 구문을 통해 간단하거나 복잡한 전달 파이프 라인을 코드로 생성 할 수 있는 확장 가능한 자동화 서버를 갖추고 있습니다.Jenkins Pipeline 사용하는 이유Jenkins Pipeline 다양한 장점이 있습니다.코드로 자동화 프로세스를 정의할 수 있습니다. 버전 관리를 통해 관리하기 편합니다.또한 유연하게 확장 가능합니다. 다양한 외부 도구와 통합하고 조건 분기, 루프 등을 사용하여 유연하게 구현 가능.. [Jenkins] Spring Boot Application 배포 자동화 (1) Jenkins 자동화 실현하기개발 프로젝트를 관리하는 과정에서 저는 반복되는 배포와 디버깅 작업이 얼마나 시간을 소모하고 생산성을 저해하는지 직면했습니다. CI/CD와 Jenkins 자동화 도구로 자동 배포를 해보려고 합니다. 이 글에서는 CI/CD의 개념을 이해하고, Jenkins의 소개 및 설치 과정을 제 개인적 경험을 통해 공유하고자 합니다.CI/CD의 이해CI/CD는 개발의 모든 단계를 자동화하여 애플리케이션을 사용자에게 빈번하고 효율적으로 배포하는 프로세스입니다.Continuous Integration (CI)CI, 즉 지속적 통합은 개발 과정에서 발생하는 코드 변경사항을 주기적으로 빌드 및 테스트하여 레포지토리에 통합하는 것을 의미합니다.Continuous Delivery/Deployment .. 이전 1 다음