Developing

패스트캠퍼스 캐시백 챌린지 2일차 본문

Devops/Fastcampus 캐시백 챌린지

패스트캠퍼스 캐시백 챌린지 2일차

DEV_BLOG 2022. 4. 19. 17:50

 

수강 인증샷

 

마찬가지로 기존에 들었던 강의 2개 복습 및 블로깅 + 새로운 강의 1개를 듣는 식으로 챌린지를 진행하였다.

Devops의 업무도메인과 Devops의 핵심지표들을 알 수 있었으며,

Developer Roadmap에서 Devops Engineer의 Roadmap을 같이 보면서 핵심영량들의 Skill Set을 확인하였다.

그 외에 devops engineer로 Junior를 채용하는 것에 대한 생각을 말씀해주셔서 크게 와닿았던 것 같다.

 

Devops vs DevOps 엔지니어

  • 데브옵스 엔지니어는 조직에 데브옵스 문화를 정착시키는데 도움을 주는 역할이다.

⇒ 개발자가 개발 뿐만 아니라 운영에도 참여할 수 있는 환경을 만들어준다.

  • 개발자가 테스트,빌드,관측을 하려면 환경을 구축해야하는데 이에 시간을 투자하는 것은 비지니스 관점으로 손실이다.

⇒ 운영을 필요로하는 환경들에 대해 구축하고 운영하는 작업을 해주는 것이 devops

  • devops팀의 주요 고객은 개발자이다.

⇒ 데브옵스 팀에서 구축하고 운영하는 많은 시스템들의 주 사용자가 개발자이기 때문

 

Devops 팀의 업무 도메인

  • 네트워크(Network)

⇒ 가상 네트워크 및 물리 네트워크 구성

⇒ 프록시 / VPN 서버 운영

⇒ DNS 서버 운영

 

  • 개발 및 배포 플랫폼(Development & Deployment Platform)

⇒ GlitLab / GitHub 같은 버전관리 및 개발 협업 플랫폼 운영

⇒ CI / CD 파이프라인 시스템 구축 및 운영

⇒ QA 테스트 및 성능 테스트를 위한 환경 제공

⇒ 패키지 저장소 운영 및 배포 산출물 관리

 

  • 오케스트레이션 플렛폼(Orchestration Platform)

⇒ 쿠버네티스 / ECS / Nomad같은 오케스트레이션 시스템 구축 및 운영

⇒ Airflow / Argo Workflows와 같은 워크플로우 엔진 구축 및 운영

 

  • 관측 플랫폼(Observability Platform)

⇒ 로그 / 메트릭 / 업타임 / APM 정보를 관측할 수 있는 중앙화된 시스템 구축 및 운영

⇒ 주요 이벤트에 대한 알림 시스템 구축

 

  • 클라우드 플랫폼(Cloud Platform)

⇒ 개발자들이 활용할 수 있도록 클라우드 환경 운영(자체 클라우드, 퍼블릭 클라우드 등)

 

  • 보안 플랫폼(Security Platform)

⇒ LDAP / AD / SAML등을 활용하여 통합된 임직원 계정계 운영

 (하나의 계정으로 여러 사내 시스템 접근권한 관리)

 

⇒ 서버 및 데이터베이스 접근제어 시스템 구축 및 운영

(서버 ssh 접근의 경우 개별 사용자 인증, 개별 사용자 활동 추적등)

 

⇒ 네트워크 방화벽 정책 관리

 

  • 데이터 플랫폼(Data Platform)

⇒ Mysql / DynamoDB / Redis와 같은 데이터베이스 구축 및 운영

⇒ RabbitMQ / Kafka / SQS 같은 메시징 서비스 구축 및 운영

⇒ 데이터 웨어하우스 / BI 대시보드 구축 및 운영

  • 서비스 운영(Service Operations)

⇒ 개발자들과 협업하여 서비스 공동 운영

 

단, 팀 구성에 따라 보안 플랫폼 업무는 보안팀으로, 데이터 플랫폼 업무는 DBA나 Data Scientist로 , 네트워크 업무도 Network Engineer , System Engineer로 업무도메인이 넘어갈 수 있다.

 

Devops 팀의 핵심 지표

  • 장애복구 시간: MTTR (Mean time to Recover)

⇒ 얼마나 빠르게 장애 상황에서 복구할 수 있는가?

(오래걸리는 경우 인프라 자동화 덜 되있거나 , 배포 파이프라인 자체의 최적화가 필요)

  • 변경으로 인한 결함률(Change Failure Rate)

⇒ 얼마나 자주 변경 사항으로 인하여 장애가 발생하는가?

(Test 진행되는 과정이 잘못된 것을 알려주는 지표)

  • 배포 빈도(Deployment Frequency)

⇒ 배포를 얼마나 자주하는가?

(조직내의 문화적/시스템적 차원의 문제 : 제품배포에 대한 두려움, 장애가 발생하더라도 빠르게 문제상황을 해결하는 인식의 변화 필요, 시스템 자체가 거대한 경우 빌드/테스트 시간이 오래걸려 msa체계로 운영검토 등)

  • 변경 적용 소요 시간 (Lead Time for Changes)

⇒ 변경사항에 프로덕션 배포에 걸리는 소요 시간은 얼마인가?

(빌드/테스트 되는 시간 오래걸리는지 알 수 있는 지표)

 

데브옵스 엔지니어 로드맵

  • roadmap 작성자는 programming language로 go 추천

⇒ 강사님도 go,python,node js , 그 외 필수적으로 shell script 추천

  • 운영체제쪽은 필수 , 컨테이너 도입하지 않은 곳은 systemd나 initd도 알아두면 좋음
  • Server관련

⇒ Linux 배포판 Debian,Rhel 위주 사용,

⇒ 패키지 매니저 관리방법 차이점정도 알고있으면됨 ( Debian계열 : apk , RHEL : yum)

⇒ roadmap 작성자가 Unix 쪽의 freebsd추천하는데 실무에서는 그렇게 사용하지 않음

⇒ Terminal 관련해서 Bash script 필수

⇒ terminal 상에서 사용하는 editor vim/Nano/Powershell/Emacs 중 하나정도는 익혀두기

⇒ text Manipulation tools 익혀두기

⇒Process Monitoring, Network, System Performance 등의 도구들도 업무 효율성 올려줌

⇒ terminal 에서 여러 session 작업하는 경우 tmux 추천

 

  • Network 관련

⇒ http protocol 필수 , tls적용시 https protocol도 사용

⇒ 파일전송 ftp protocol

⇒ 서버접근 ssh 프로토콜 사용

⇒ ssl / tls 암호화 이해 필요

⇒ 방화벽 정책 등의 이유로 접근하지 못하는 Server에 접근하기 위해 Port Forwarding 같은 개념 사용

 

  • Reverse Proxy , Cashing Server , Forawrd Proxy , Load Blancer , Firewall 꼭 알아야함
  • Web server 관련

⇒ Nginx 많이 사용 , java공화국이기에 tomcat도 익혀두면 좋음 , Envoy도 익혀두면 좋음

 

  • Infrastructure as Code 관련

⇒ Jenkins가 오래전부터 활용해왔기에 사용법 알아두면 좋음

⇒ 모던화된 IT기업은 Container Native 하게 나온 CI CD tool 사용법 알아두는게 좋음

⇒ Circle CI : 금적적으로 여유가 안되는 스타트업 주로 사용

⇒ Container로는 Docker , 설정관리로는 Ansible, Orchestration은 k8s..

⇒ Terraform : Cloud Provider에 종속되지 않게 여러 Provider에 대해 코드로 API 리소스 관리

 

  • Monitor 관련

⇒ log 관리는 Elastic Stack 많이 사용.. (Elastic사의 모든 솔루션을 아우르는말)

⇒ 요근래에 Elastic이 Application Monitoring, Infrastructure Monitoring 까지 커버 가능

⇒ 돈이 넘치면 Datadog , opensource로 구축하여 비용감축하고싶으면 prometheus,grafana사용

  • Cloud Provider

⇒ aws 하나 잘 배우면 gcp,azure도 어느정도 일치하는 내용 많음

 

Devops Engineer 신입이 가능한가?

  • 보통 System Engineer , Backend Engineer , Data Platform Engineer 쪽에서 커리어 전환 하는 경우 많음
  • 주니어를 뽑는것이 굉장히 도전적인 것이긴함. Application 어떻게 설계,배포,테스트,운영되는지 전반적인 이해 , 운영하면서 시스템 동작 이슈해결 시스템 운영 지식 필요..

⇒ 이거 다하면 됨.. 불가능은 없지만 어려움

 

문제를 대하는 자세

  • 장애가 발생하면 근본 원인(Root Cause)를 찾고 장애 기록(Post-mortem)을 남기는 습관을 기르자.

⇒ 무지성으로 용량 부족해서 볼륨 확장하고 끝내지 말자..

  • 조직에서 깊게 공부해 볼 문제 혹은 기술을 선택하여 시간 투자를 해보자

⇒ 조직내의 모든 문제를 깊이 있게 다루면 업무 처리 시간이 늦어진다.

⇒ 해결방법을 대충 stackoverflow에 검색해 해결하고 처리하면 이직하고 남는게 없음..

⇒ 이직을 하거든 깊이 다루어본 기술로 신뢰를 얻고 새로운 문제에 도전하기

  • 모르는 것에 솔직해지고 동료에게 도움을 구하자

⇒ 장애사고 10분만에 해결할 것도 2시간 걸릴 수 있음..

  • 정말 잘하고 싶다면 영어는 필수다.

⇒ 공식 문서 읽는 습관, 이슈가 생긴다면 github,stackoverflow 질문하고 답변할 수 있는 능력으로 성장하기

 

 

https://bit.ly/3L3avNW

 

패스트캠퍼스 [직장인 실무교육]

프로그래밍, 영상편집, UX/UI, 마케팅, 데이터 분석, 엑셀강의, The RED, 국비지원, 기업교육, 서비스 제공.

fastcampus.co.kr

*본 포스팅은 패스트캠퍼스 환급 챌린지 참여를 위해 작성되었습니다.