BackEnd/DEVOPS

프로젝트를 본격적으로 수행하기 전에 CI/CD를 미리 구축해 놓기로 하였다. 🙌CI/CDCI/CD는 지속적 통합/배포 환경을 뜻한다. 여러 명의 개발자가 함께 작업하는 과정에서 꼭 필요한 작업이다. CI를 통해 코드를 지속적으로 통합(PR 후 merge 과정으로 이해해도 좋음)할 때 이를 자동으로 테스트하여 충돌이나 버그를 최소화할 수 있으며, CD를 통해 지속적으로 통합된 코드를 자동으로 프로덕션 환경에 배포할 수 있다.무중단 배포CD 과정에서 무중단 배포가 존재하지 않는다면 이 세상 서비스들은 모두 업데이트 시 사용자를 blocking해야 하는 불상사가 일어날 것이다!! 이를 막기 위해 무중단 배포가 필요하다.간단하게 무중단 배포 방식을 알아보자.Rolling 배포 구버전에서 신버전으로 점진적으로 ..
앞서 Elastic에 text 파일들을 index로 적재해보았다. 이번에는 해당 텍스트들을 이용해 키워드를 추출하고, 키워드들이 총 몇개의 docs에 나타나는지를 추려볼 예정이다(terms 집계). 최종 목표는 '회사 도메인 사전' 만들기이다. 다시 말해 상담 TEXT 기록 내에서 사용되는 용어들을 수집하여, 이를 하나의 사전처럼 나타낼 계획이다.인덱스의 정보 단위인덱스의 정보단위로 /_settings와 /_mappings 가 사용된다. 주로 PUT 으로 인덱스를 처음 생성한 후에 GET /_settings 또는 GET /_mappings( _settings )로 index에 대한 정보들을 따로 볼 수 있다. _settings: 샤드 수나 복제본 수 등 설정 가능_mappings: 미리 정의하지 않아도 ..
개요 이번에는 이어서 GCR을 이용해 CD를 구현해보자 ! CD란 지속적 배포를 의미하며, Github 저장소에 있는 code를 변경했을 경우 자동으로 새롭게 배포된다. 소스코드를 수정하여 배포해야 하는 상황들이 다수 발생하게 된다면 CD 작업은 필수다. CD 설계에서 Deploy 시 서비스가 다운될 수 있다는 점을 주의해야 한다. GCP는 블루 그린 전략 무중단 배포를 지원하기 때문에 다운타임에 대해 걱정하지 않아도 된다 ! 👏 이번에도 Cloud Run에서 서비스를 만들거다. 아래와 같이 서비스를 만든다. 나는 프로젝트 koala에서 서비스를 만들거다. 이번에는 [소스 저장소에서 지속적으로 새 버전 배포]를 선택하고, 아래와 같이 CD를 적용할 Github 저장소를 선택한다. GCR은 도커 기반 배포..
개요 이번에 Koala 자동화 출석부를 만들게 되면서 서버 단은 어떤 형태로 서비스할지 고민해보게 되었다. 기능이 추가될 수는 있으나, 많은 트래픽이 들어오거나 데이터가 압도적으로 많아지는 서비스가 아니기 때문에 Serverless 형태를 고민하게 되었다. 크롤링 또한 Serverless 작업이지만, 서버 자체도 Serverless로 구현하여, 서버 비용을 최소화하여 구현하기로 하였다 ! JSP + Java/Spring 배포하기 우선 CI/CD를 구현하기 전에 꼭 ! "그냥 배포"를 먼저 시도해보길 바란다. 오히려 시간을 단축시켜줄 것이다.. 오류 뜨면 골치가 너무 아파요ㅠㅠ 그리고 CI/CD는 꼭 코드 구현 전에 미리미리 해두자.. 우선 내가 만든 프로젝트 툴은 JSP + Java/Spring 이었다...
개요 회사의 빅데이터 장비 시스템( Linux+GPU+Docker ) 서버의 metric data를 쌓고 관리하기 위해 모니터링 툴을 도입하는 과제를 부여받았다! 서버 내에 ES 에 클러스터 5개가 docker와 NVIDIA GPU를 사용하여 운영되고 있었고, ELK Stack(ES + Kibana + Logstash)를 이용해 Filebeat가 이미 운용되고 있는 환경이었다. 모니터링 기술 선택 고민 모니터링 기술로 크게 두 가지 스택을 논의하였다. 1. Grafana + Prometeus 2. MetricBeat(ELK) ✅ 두 스택을 비교하자면 프로메테우스+Grafana는 Metric data(서버의 상태를 측정한 항목이나 지표) 모니터링 및 시각화에, ELK 스택은 로그 데이터의 수집, 분석 및 ..
본 내용은 아파치 카프카 애플리케이션 프로그래밍 with 자바 를 읽고 아파치 카프카 데브원영 강의를 들으며 공부한 내용입니다. 목차 0. 에필로그 1. 카프카란 1) 카프카의 개요 및 설명 2) 카프카의 구성 2. 카프카 실습 1) windows 10 Linux 설치 및 카프카 설치 2) Producer - Consumer 통신 (Window Local 환경) 0. 에필로그 Kafka 공부하기 전에 OS와 네트워크 DB 개념에 대해 알고 있으면 더 효과적으로 이해할 수 있을 것 같다. 책에 있는 java 코드는 깃허브에서 같이 공부해보기로 했다. 우선, 아래와 같은 고민을 하고 있다면 카프카는 해결을 위한 훌륭한 방안이 되어 줄 수 있다. 동기/ 비동기 데이터 전송에 대한 고민이 존재하는가? 실시간 데..
평소 ec2에 docker image를 올리는 과정에서 환경변수를 그대로 올리는 형태로 구현해왔다. 아래와 같이 docker image 속에 ec2 host, docker ID/password 등이 그대로 적혀 있게 되면 docker가 private이면 그나마 괜찮겠지만.. public이라면!!😱😱 이 image가 그대로 노출되어 버렸을 때 큰 불상사를 야기할 수 있다.!! 지갑을 지키자 이를 해결하는 효율적인 방법으로 ec2 server단에 환경변수를 저장하는 방법이 존재한다. ec2 ubuntu 환경에서 파일을 만드는 것이다. 아래 명령어를 통해 .env 파일을 만들 수 있다. vim .env ##파일이 없으면 생성, 있으면 수정 또는 추가 .env파일은 초기에 비어있다. 환경변수값은 applicat..
개요 슬램덩크 너무 재밌다ㅠㅠ 꼭 보길!! 나는 오히려 상대편 정우성을 보면서, 이 영화를 볼 때 쯤 내 상황이랑 너무 똑같은 것 같아서 심심한 위로를 받았다. 죽어라 노력했는데도 일이 잘 풀리지 않는 경험은 정말 값지다. 값진 이유는 이제부터 내가 증명하면 되겟지 >- docker build -> docker push 하는 걸 볼 수 있다. 이 과정은 아주 귀찮고 하찮다.. github actions, jenkins를 이용하면 자동 배포가 가능하다. 우리는 팀원들과 github organization을 사용하여 서버를 만들고 있으므로 GitHub과의 통합이 쉬운 github action와 docker를 연동시켜 배포해보기로 했다. build pipeline의 장점 위와 같은 CI/CD를 사용하는 이유는..
EC2를 배포하는 방법에는 여러가지가 존재한다. ec2+nginx와 ec2+docker 방식 중에 고민하다 후자를 선택했다. Docker란? Docker 사용방법 일단 도커란 무엇인가? 간단히 리눅스 컨테이너를 만들고, 사용할 수 있는 컨테이너화 기술 이걸 이미지?라고 통칭하는 것 같다. 도커 사용 방법 일단 docker 이미지 업로드로 먼저 시험해보자! 구글링 키워드 - docker 이미지 pull 실습 Docker Desktop을 깔아서 보면서 하면 좋다. 로그인할 때 github 이름으로 해야 함 주의 특히나 github 세미 이름..?? Youngseo-Jeon0313으로 하면 안되고 jeonyoungseo로 했어야 했다. 나중에 배포할 때에도 이름을 jeonyoungseo/umc3-server ..
jeonyoungseo
'BackEnd/DEVOPS' 카테고리의 글 목록