DevOps 정복기 [2] - 로드맵

김진성·2021년 9월 27일
0

DevOps

목록 보기
2/2

저번에는 DevOps의 개념에 대해서 알아봤고 이번에는 DevOps 엔지니어가 어떻게 되어가는지에 대해서 알아볼 예정이다. DevOps 엔지니어가 되기 위한 로드맵을 구글에 쳤을때 바로 이 사진이 나왔다.

이걸 보자마자 든 생각은 ?? 내가 이걸 한다고? 였다. 그리고 도대체 이걸 정리한 사람은 누구인가라는 생각이 마구 들었다. 누군가는 이걸보고 'DevOps 접어야 되겠다' 생각할 수 있겠다. 그러나 위기 상황 속에서도 살아남을 길은 존재한다!!

너무나 긴 로드맵 어디서부터 시작해야할까?

사실 우리가 DevOps를 공부하는 과정에서 굳이 모든 것을 공부할 필요는 없다. 결국에는 DevOps와 같이 협업이 필요한 조직에서는 기본 Tool이나 개발 스택이 존재하고 있기 때문이다. 즉, 다른 사람이 먼저 걸어왔던 길부터 시작하면 될 것이다. 물론 개발 툴을 선정하는데 있어 여러가지 생각이 들 것이다.

  • 많이 사용된 툴 vs. 최신 툴
  • 조직 크기
  • 설계 측면 : agent vs. agentless, master vs. marterless
  • 학습 곡선에 따른 최고 효율의 공부 방법

위와 같은 툴 선정에 대한 고민이 존재할 것이다. 따라서, 내가 지금 할 수 있는 것, 가장 많이 사용되는 툴, 익숙한 툴, 가장 필요할 툴 여러가지 측면에서 고민을 해보는 것이 좋다.

지금 당장 나에게 필요한 것

내가 개발 툴을 공부하는데 있어서 가장 중요한 것이 지금 당장 필요한가? 라는 기준이다. 스타트업에서 개발을 하면서 직접 시장에 뛰어드니까 느낀 점은 결국엔 니즈(needs) 이다. 제품도 시장이 필요로 하지 않으면 실패하고 개발도 내가 들어간 조직에서 필요한 툴이 아니라면 역할이 축소될 것이다. 그렇다면 지금 나에게 DevOps의 어떤 기능이 필요할까?

DevOps의 기능과 툴 분류

만약 다른 엔지니어가 여러분에게 DevOps가 어떤 기능이 존재한지 알고 어떤 툴을 사용할지 설명하라고 하면 설명할 수 있나요?? 이러한 것들을 설명하지 못한다면 지금의 나도 모르는 사람들은 DevOps를 그냥 해보자 라는 사람일 것이다. DevOps의 기능과 툴을 분류하면 아래와 같다.

  1. CI/CD - Jenkins, Circle CI, Travis, Drone, Argo CD, Zuul
  2. Provisioning infrastructure - Terraform, CloudFormation
  3. Configuration Management - Ansible, Puppet, Chef
  4. Monitoring & alerting - Prometheus, Nagios
  5. Logging - Logstash, Graylog, Fluentd
  6. Code review - Gerrit, Review Board
  7. Code coverage - Cobertura, Clover, JaCoCo
  8. Issue tracking - Jira, Bugzilla
  9. Containers and Containers Orchestration - Docker, Podman, Kubernetes, Nomad
  10. Tests - Robot, Serenity, Gauge

DevOps에 너무 많은 기능과 너무 많은 툴들이 존재하는데 그나마 들어봤던 것들을 하이라이트 쳐봐도 모르는 것이 엄청 많이 존재한다. 근데 너무 걱정하지 않아도 된다. 우리에게는 구글 검색이 있으니까! 한번 구글에 다른 조직이 주로 사용하는 툴과 에코시스템에 대해서 검색을 해봤는데 SK C&C에서는 아래 그림처럼 DevOps를 운영하고 있었다.

핵심이 되는 CI/CD, Issue Tracking, Containers 중심으로 흘러가고 있다. 실제 깃헙에다가 DevOps를 검색하고 살펴보면 우리가 공부해야 될 것은 그리 많지는 않다.

소스관리나 버전관리에는 Git, 컴파일 및 패키징에는 Jenkins, 컨테이너 관리나 오케스트레이션에는 Docker와 Kubernetes, 클라우드 서버는 AWS, 코드형 인프라(IaC)에는 Ansible로 하나 하나 선택해나가면 되는 것이다. 물론, 막상 공부해보면 해볼 것이 많이 있겠지만 기본이 되는 것들을 먼저 공부하고 나중에 최신의 기술로 확장하면 될 것이라 빨리 이러한 도구들을 공부해서 정리를 해야겠다.

profile
https://medium.com/@jinsung1048 미디엄으로 이전하였습니다.

0개의 댓글