⚙️ Devops

⚙️ Devops/📬 Kafka

Kafka Cluster(Broker), Zookeeper에 대해서 이해하기

Kafka란 무엇일까?카프카는 요즘 MSA에 필수적으로 사용되는 기술입니다. 이 카프카란 뭐고 왜 필요할까요? 카프카는 링크드인이라는 회사에서 하루에 1조 몇천억이 넘는 대량의 메시지들을 처리하기 위해 개발되었습니다. 링크드인이 사용중이라면 대용량 메시지 처리를 할 수 있고 안정성 또한 높을 것이라고 기대가 됩니다.카프카는 Messaging Queue라고도 합니다. 간단하게 말해서 메시지를 보내는 쪽이 있고 그 메시지를 관리하는 주체가 있고, 또 그 메시지를 수신하는 쪽이 있을 겁니다. Messaging Queue는 Pub/Sub Model을 의미하는데 카프카 말고도 여러 MQ들이 있는데 카프카의 차별화된 점은 무엇인지 알아보도록 하겠습니다.Messaging Queue: 카프카를 알아보기 전에P..

⚙️ Devops/🌈 Jenkins

Jenkins, Docker를 이용한 무중단 배포 시작하기

시작하기 예전에는 배포하는 날이면 접속하는 사용자가 적은 새벽시간에 했다고 본적이 있습니다. 배포를 할 때에는 새로운 버전의 jar 파일을 배포할 서버로 복사시키고, 직접 SSH로 접속하여 jar를 변경하여 실행하는 것이였습니다. 이렇게 배포를 진행하면, 배포를 할 때마다 개발자의 많은 리소스가 들어간다는 단점과 jar를 바꿔끼는 그 찰나에 서비스가 끊긴다는 치명적인 단점이 존재합니다. 그래서 이번 시간에는 어떻게 하면 배포를 자동화하고, 또 기존 서비스를 정지시키지 않고 배포할 수 있는지 알아보도록 하겠습니다. 위에서 말한 이 무중단 배포에는 여러 방법들이 있습니다. Nginx로 무중단 배포 AWS에서 Blue-Green 무중단 배포 도커를 이용한 무중단 배포 이번 시간에는 하나의 서버가 있다고 가정하..

⚙️ Devops/🐳 Docker

Docker Permission Denied 해결방법

도커 권한 문제 일반 유저가 도커 명령어를 사용할 때마다 Permission Denied가 떠서 sudo를 사용해야하는 불편함이 있습니다. 이때 해결방법은 여러가지가 있습니다. 제가 알아본 2가지 방법에 대해서 알아보겠습니다. 현재 사용자를 그룹에 추가 현재 로그인 된 유저를 docker 그룹에 추가하는 것으로 sudo 권한 없이 실행할 수 있습니다. sudo usermod -aG docker $USER logout # 로그아웃 후 다시 로그인 후 적용 하지만 위 방법은 써드파티(jenkins 등) 유저에 대해서는 적용이 어려웠습니다. docker.sock Docker CLI(도커 커맨드들)는 결국 docker.sock을 통해서 명령을 실행합니다. 그래서 docker.sock의 권한을 수정해주면 됩니다...

⚙️ Devops/⛏ Git

GitLab CI/CD 구성하기

목표 GitLab에서 CI/CD를 하는 것 개발 환경 HOST Mac OS X SERVER Ubuntu 20.04 LTS GitLab Version : v14.5.0 Docker version 20.10.17, build 100c701 Gitlab Runner 설치 💡 Gitlab 버전과 Gitlab-Runner의 버전을 꼭 일치시켜주세요! Docker로 설치하기 docker run -d --name gitlab-runner-v14.5.0 \\ --restart always \\ --volume /srv/gitlab-runner/config:/etc/gitlab-runner: \\ --volume /var/run/docker.sock:/var/run/docker.sock \\ gitlab/gitlab-r..

⚙️ Devops/⛏ Git

[git] rebase로 커밋을 합쳐보자

다른 브랜치에서 커밋을 가져오는 방법은 크게 2가지가 있습니다. git merge git rebase 둘의 차이점은? Merge와 rebase의 큰 차이점은 하나로 합치냐 모두 가져오냐 입니다. merge로 커밋을 합치면 모든 커밋들이 다 보이는 반면, rebase로 합친 커밋로그는 깔끔하게 하나만 남기도록 할 수 있습니다. git rebase를 이용해서 커밋을 합쳐보자 1. 커밋 리스트 확인 $ git log commit a1d131c918d52ed96759d1f181e3cac96aa80031 Author: iseunghan Date: Thu Aug 4 07:38:20 2022 +0000 Third commit commit a1d131c918d52ed96759d1f181e3cac96aa80031 Aut..

⚙️ Devops/🐳 Docker

도커 이미지 빌드시 플랫폼 변경하기 (feat. M1 Mac)

M1 맥을 사용중인데 문제는 M1이 arm 기반 칩셋이라 도커 이미지를 만들면, arm 플랫폼 전용 이미지로 생성이 됩니다. 근데 이미지를 배포할 환경은 Ubuntu 이므로 해당 이미지가 제대로 동작하지 않거나 성능이 저하될 수 있다고 경고창을 띄웁니다. 그래서 이미지 빌드 시 아래 플랫폼 옵션을 붙여서 빌드를 해주면 해결이 됩니다. $ docker build --platform amd64 -t [이미지명] . 다른 플랫폼으로 빌드하고 싶을 때 도커 이미지를 만들 때, 보통 alpine 처럼 가벼운 이미지를 Base 이미지로 사용하곤 합니다. 빌드할 때 지원되는 Arch도 Base 이미지를 따라가게 되는데요. openjdk 공식 이미지를 예로 들면, 여러 OS Arch를 제공합니다. 여러분이 이미지를 생..

iseunghan
'⚙️ Devops' 카테고리의 글 목록