DevOps란?
: 소프트웨어 개발과 운영의 합성어로 개발자와 정보 기술 전문가 간의 소통, 협업 및 통합을 강조하는 개발 환경이나 문화.
조직이 소프트웨어 제품과 서비스를 빠른 시간에 개발 및 배포하는 것을 목적으로 한다.
DevOps = 철학&방법론 => 그 팀, 회사의 문화가 된다.
- AWS
- Docker
- Kubernetes
- git
등의 툴이 있다.
도커랑 쿠버네티스를 사용하면 더 빨라질까요?
-> 매우 좋은 서버 관리 툴
새로운 기술을 배우는 이유는 개발과 배포를 개선하기 위함.
새로운 도구를 도입했는데 개발과 배포가 개선되지 않는다면 재검토하면 됨.
우리 팀에 좋은지를 확인하면 됨.
DevOps 왜쓸까?
- 부하가 생길 때 알아서 서버가 늘어난다면? 좋은 도구를 잘 사용해서 자동화 = 시간 절약 = 효율증가
- 로그 남기고 검색할 수 있다면? 특정 시점 부하 측정가능 = 빠른 분석 = 효율증가
- 어렵게 해결한 내용을 공유할 수 있다면? 공유 = 팀원 지식 습득 = 효율 증가
- 고민하지 않고 사용할 수 있다면? = 축적 = 패시브 스킬 = 자연스러움 = 효율 증가
서버를 관리한다는 것
도커/쿠버네티스 등장
가상머신과의 차이
- 자원 격리
- 파일, 디렉토리를 격리
- 리눅스 기능을 이용해 서버 관리
- 가상머신은 돌리기 위해서 레이어를 더 얹어서 좀 더 느림
컨테이너 관리를 편리하게 하는 도구도 등장함
-> 컨테이너 오케스트레이션
- 중앙제어
- 상태관리
- 배포관리 : 스케줄링
- 배포 버전관리
- 서비스 등록 및 조회
- 볼륨 스토리지
쿠버네티스
: 컨테이너를 쉽고 빠르게 배포/확장하고 관리를 자동화해주는 오픈소스 플랫폼
구글에서 1주일에 20억개의 컨테이너 생성하다가 borg를 기반으로 만든 오픈소스.
누구나 서버를 확장하고 관리할 때 쿠버네티스를 쓴다~
- 오픈소스
- 엄청난 인기
- 무한한 확장성
- 사실상의 표준
쿠버네티스를 이용한 서버 관리 예시
쿠버네티스를 쓰는게 좋은데 쓰기 어려우니 잘 쓸 수 있는 도구를 찾음 -> ArgoCD
장점
- 무제한 테스트 서버
- 배포주기 빨라짐
- 배포속도도 빨라짐
DevOps 엔지니어
역할
: 조직이 소프트웨어 제품과 서비스를 빠른 시간에 배포하는 것
DevOps가 되려면 어떤걸 필요로 하나요? 단계별로 어떤걸 공부하면 좋을까
DevOps Roadmap: Learn to become a DevOps Engineer or SRE
Learn to become a modern DevOps engineer by following the steps, skills, resources and guides listed in our community-driven roadmap.
roadmap.sh
-> 데브옵스 로드맵(여기 다른 로드맵도 있기 때문에 보면 좋을듯)
결론 및 느낀점
인프라를 공부하고 싶었어서 강의를 기대했는데 원래 생각했던 것은 실제로 사용하는 방법이 궁금했지만 강의에서는 DevOps와 도커, 쿠버네티스에 관해 설명을 해주는 것이 주를 이루었다.
그러나 오히려 좋았다!
학교에서 들었던 빅데이터 수업은 설명보다는 일단 명령어를 치면서 급하게 실습을 나가서 이해못한 채로 사용했었는데 이번 강의를 통해서 도커와 쿠버네티스가 정확이 무엇인지 가상머신과 도커의 차이가 무엇인지 정확히 알 수 있었다. 물론 의문점도 많아서 이건 실제로 프로젝트를 진행하면서 공부를 해봐야겠다고 생각했다.
'공통 프로젝트' 카테고리의 다른 글
[공통 프로젝트] Nfc 정복하기 (1) | 2025.01.30 |
---|---|
[공통 프로젝트] DB 설계, 필수 체크 리스트! (0) | 2025.01.23 |
[공통 프로젝트] Jira 사용하기 (0) | 2025.01.13 |
[공통 프로젝트] 아이디어 해커톤 (1) | 2025.01.09 |
[공통 프로젝트] 프로젝트 정리 (0) | 2025.01.06 |