개발/DevOps 6

[The DevOps Handbook] (1) 데브옵스를 위한 세 가지 방법

2000년대에 이르러 기술의 진보와 애자일 원칙, 애자일 실천 방법의 도입으로 새로운 기능을 개발하는 데 필요한 시간이 수주 또는 수개월로 줄어들었다. 하지만 여전히 프로덕션 환경으로 배포하는 데는 수주에서 수개월이 소요돼서 때때로 치명적인 결과를 초래했다. 2010년에는 데브옵스의 도입, 하드웨어와 소프트웨어의 지속적인 상용화로 지금과 같은 클라우드 환경과 서비스를 몇 주 내로 만들고, 프로덕션 환경으로 단 몇 시간 또는 몇 분 만에 배포할 수 있게 됐다. 오늘날 데브옵스 원칙과 실천 방법을 도입한 조직은 보통 수백, 수천 개의 변경 사항을 매일 배포하고 있다. 이런 조직들은 실험을 통해 비즈니스 아이디어를 테스트하고, 어떤 아이디어가 고객과 조직 전체에 도움이 되는지를 발견할 수 있다. 또한 신속하고..

개발/DevOps 2024.08.01

[Kubernetes] Loki stack을 활용한 로그 시스템 구축기

현재 NKS를 활용해 프로젝트를 진행중인데 pod 수가 꽤 많아서 로그를 확인하려면 일일히 명령어를 쳐야하는 상황이다. 이러한 상황은 쿠버네티스 초보인 나에게 처음에는 설레고 멋있어 보이는 일이었지만, 지금은 아주 귀찮은 짓거리가 되었다.   따라서 각 pod에서 생성되는 로그를 좀 더 쉽게 관리하기 위해 Loki + Promtail + Grafana를 활용해 로그 시스템을 구축하려고 한다. 1. 구성 요소loki-stack (Helm) Loki: 로그를 실시간으로 집계Promtail: 노드에 DaemonSet으로 구성되며 로그를 수집하고 이를 Loki에 전송Grafana: Loki와 같은 시스템에서 데이터를 가져와서 대시보드 형태로 시각화   2. 구성Ingress를 사용하지 않고 service의 no..

개발/DevOps 2024.06.26

[docker] 쉽고 빠른 서비스를 향해 (3)

https://kiku99.tistory.com/14 [docker] 쉽고 빠른 서비스를 향해 (2) https://kiku99.tistory.com/13 [docker] 쉽고 빠른 서비스를 향해 (1) 때는 바야흐로 2020년. 코로나로 인해 비대면 수업을 하던 시절이었다. 1년동안 아무도 학교에 나오지 않았고, 학과 회장 선거에 비상이 kiku99.tistory.com 지난 글에서 봤듯이 시스템 구축은 끝났다. 남은 작업은 CI/CD pipeline과 readme를 작성하는 것 뿐. CI/CD pipeline은 github acitons를 통해 구축하기로 했다. github actions는 yaml 파일을 통해 간단하게 파이프라인을 구축할 수 있다는 장점을 가지고 있다. name: "[Push] Bu..

개발/DevOps 2023.12.09

[docker] 쉽고 빠른 서비스를 향해 (2)

https://kiku99.tistory.com/13 [docker] 쉽고 빠른 서비스를 향해 (1) 때는 바야흐로 2020년. 코로나로 인해 비대면 수업을 하던 시절이었다. 1년동안 아무도 학교에 나오지 않았고, 학과 회장 선거에 비상이 걸렸다. 왜나하면 선거 투표는 항상 대면으로 진행했으까. kiku99.tistory.com 지난 글에서 말했던 대로 docker volume을 사용해서 환경변수 파일을 컨테이너에 주입해 보기로 했다. 참고로 현재 작성 시점은 테스트 성공까지 확인한 후다. 따라서 내가 겪었던 우여곡절 순으로 글을 써볼 생각이다. 1. 볼륨을 src 디렉토리에 직접 연결해 보자! 처음 생각해 본 건 환경변수 파일을 가진 호스트 볼륨을 도커 workdir인 src 디렉토리와 연결하자라는 생..

개발/DevOps 2023.11.21

[docker] 쉽고 빠른 서비스를 향해 (1)

때는 바야흐로 2020년. 코로나로 인해 비대면 수업을 하던 시절이었다. 1년동안 아무도 학교에 나오지 않았고, 학과 회장 선거에 비상이 걸렸다. 왜나하면 선거 투표는 항상 대면으로 진행했으까. 그 때 소수의 인원들이 모여서 온라인 투표 시스템을 구축했고, 따라서 우리 과는 2020년도부터 지금까지 온라인으로 투표를 진행할 수 있었다. 현재 시스템은 오픈소스 프로젝트로 관리되고 있다. https://github.com/ampm-jbnu/jbnu-se-voting GitHub - ampm-jbnu/jbnu-se-voting: 전북대학교 소프트웨어공학과 온라인 투표 시스템 전북대학교 소프트웨어공학과 온라인 투표 시스템. Contribute to ampm-jbnu/jbnu-se-voting developmen..

개발/DevOps 2023.11.20

[git hub actions] 간단한 CI/CD pipeline 구축하기

최근 프로젝트를 진행하면서 쿠버네티스 환경에 배포할 일이 생겼다. 그래서 이번 김에 프로젝트 릴리즈와 도커 이미지 빌드 및 푸시까지 자동화 하는 CI/CD 파이프라인을 구축하려고 한다. 원래는 jenkins를 사용하려고 했는데 서버 만들기도 귀찮고 복잡한 작업이 많아서 git hub actions를 사용해보기로 했다. git hub actions는 jenkins에 비해 서버가 따로 필요 없이 클라우드 위에서 동작하고 레포지토리가 public이면 무료다! 그리고 yaml 파일을 통해 쉽게 환경을 만들 수 있다는 장점이 있다. 프로젝트 폴더에 .github 디렉토리를 만들고 workflows 디렉토리를 생성해준다. 그 안에 릴리즈를 담당하는 yaml 파일과 docker 작업을 위한 yaml 파일을 작성해주었..

개발/DevOps 2023.10.16