본문 바로가기

IT Note/IT Basics

[1분 IT] DevOps란 무엇일까?

안녕하세요 전기톱맨입니다

안녕하세요, 전기톱맨입니다.

제가 에디터를 신청하고 난 뒤 첫글인데요, 어떤 글을 쓸까 생각하다 DevOps에 대해 써보기로 했습니다.

요새는 DevSecOps라고도 많이 부르시더라고요.

저는 산업공학과를 나와서 Computer Science적 기초지식이 부족한데요. 

그런 점을 항상 생각하기에 어떻게 하면 조금 더 쉽게 지식을 전달할 수 있을까 항상 고민하게 됩니다.

출처 : 나무위키

일단 나무위키를 보면 개발과 운영에 대해 통합 관점으로 보는 개발 방법론 및 문화를 의미한다고 되어있습니다.

 

문화라는 말이 들어가는 순간 저는 애매하다는 생각을 합니다. 난 DevOps엔지니어가 되고 싶은데 문화를 다루는 엔지니어? 라는 생각을 하게되면서 뭔가 혼종이 되어가는 느낌입니다.

 

제가 직접 느낀 DevOps는 이렇습니다.

 

1. 자동화

- 일단 자동화 시킬 수 있는건 다 자동화 시킵니다. 구체적으로 Ansible이 있습니다. 여기에 환경변수들을 놓고 돌리면 (playbook) 계속해서 새로운 VM(Virtual Machine)을 찍어낼수 있습니다. IaC(Infrastructure as Code)라고도 부릅니다. 

저는 홈서버를 운영하고 있습니다. 

Master Node 1개와 Worker Node 2개를 운영하고 있는데요. Kubernetes를 구성할때 환경셋팅을 하나하나씩 다 해주었어야 했습니다.

CentOS 설치, Kubernetes, Kubelet, Kubeadm 설치, Port 개방, swapoff, iptables 설정, Container runtime 설치, Cluster 생성 조인 등등 해야될게 많습니다.

근데 이걸 미리 환경설정값으로 놓고 Ansible을 돌리면 VM이 알맞게 셋팅되어서 뿅 하고 나오는거죠. (Network ip 및  ssh 설정은 수동으로 해주어야합니다.)

한땀한땀 만든 내 작고 소중한 클러스터.. 자동화를 이용하면 1시간 컷이다!

 

 

2. 빌드 및 배포

- 빌드와 배포는 CI/CD로 많이 표현하는데 서버에 반영을 하는 것을 배포(Deployment), 그 반영하기 전 과정, 컴파일된 코드들을 실제 실행할 수 있도록 만드는 것이 빌드입니다.

- https://coffeewhale.com/kubernetes/gitops/argocd/2020/02/10/gitops-argocd/ CNCF라는 Cloud Native 지향으로 가장 유명한 곳에서 Graduated project로 유명한 ArgoCD 에 대한 설명이 잘 나와있습니다.

 

3. 모니터링

- 현재 프로젝트에서 이 모니터링과 로깅을 중점으로 프로젝트를 하고 있습니다.

- 시스템의 Metric, Health Check, CPU/Memory/Disk의 사용량을 체크하는 것이 모니터링의 주 업무입니다.

- 이어서 /var/log 밑에 남는 로그들을 긁어서 보여주기도 합니다.

- Prometheus + Grafana의 조합을 많이 씁니다. (다음 글에서 더 자세하게 다뤄 보겠습니다!)

 

1분 IT : DevOps


 

1분만에 정리하자면 DevOps는 도장 찍듯이 VM을 찍어내면서 그 안에 있는 어플리케이션을 빌드 및 배포하며 에러와 디스크에 대한 모니터링을 하는 분야로 볼 수 있습니다.

 

DevSecOps에 대한 1장 그림

위의 Roadmap은 DevSecOps에 대한 기술 스택을 모아논 한장의 그림입니다.

Programming language부터 OS, Frontend, Backend, Network, Cloud, Security 등 온갖 기술들이 DevOps에는 섞여있습니다.

반응형