패스트캠퍼스 챌린지 03일차

 

  • DevOps엔지니어 로드맵
  • DevOps엔지니어 신입
  • 문제를 대하는 자세
  • 신입 가능한가

를 주제로 다룬다. 따라서 신입이 아닌 사람은 SKIP하여도 좋을 것 같다. 솔직히 나도 이 강의를 들으면서 긴가민가하다. 그런데 강의가 30분이나 되는 거 보니 뭔가 있나 보다. 일단 들어보자. (다 듣고 보니 필수 수강이다. 오히려 경력직이 SKIP이다.)

Ch2_3 DevOps엔지니어 성장 전략
먼저 DevOps엔지니어의 로드맵(2020을 살펴보자) - 번역본

https://velog.io/@exploit017/2020-%EB%8D%B0%EB%B8%8C%EC%98%B5%EC%8A%A4-%EA%B0%9C%EB%B0%9C%EC%9E%90-%EB%A1%9C%EB%93%9C%EB%A7%B5

DevOps엔지니어 로드맵(2020)

엄청 많지만 요약해 보면 다음과 같다. 

1. 먼저 프로그래밍 언어를 익히는 것을 추천한다. 역자는 Go 언어를 추천했고 강사 역시 Go 언어를 추천했지만 나는 Python을 이미 익히고 있다. Node.JS도 풀스택에 활용할 수 있어서 좋은 언어다(지금도 배우고 있음.) 강사도 추천하였다. 

2. 운영체제에 대한 이해시스템에 대한 이해(프로세스 관리/쓰레드 및 동시성 관리/네트워크의 기초적인 내용/POSIX 표준에 대한 개념/네트워크 개념/입출력 관리/가상화 기본/메모리 저장소 개념/파일 시스템 기본)

+ Systemd(?) / initid (?) - 이해 필요

3. 서버에 대한 학습을 하기 위해서는 OS에 대한 학습을 해야 한다. 주로 리눅스를 사용하므로 리눅스 계열(우분투, CentOS)등에 대해서 학습하는 것을 추천(구형 노트북 하나 사서 패캠에 있는 리눅스 강의 들을 것 - 본인 구매하였음)하고 그 다음에 천천히 윈도우를 공부하는 것을 추천.  

4. Vim/Nano/PowerShell등을 통한 터미널 접근방법을 학습하는 것을 추천한다. 

5. Text manipulation tool(awk, sed, grep...)을 학습하며 업무의 효율성을 증진시킬 수 있다. 

6. Process monitoring tool 7. Network tool 8. System performance tool 9. Others

6,7,8,9를 학습하면 운영상 이슈/network이슈/ performance이슈/ os이슈/ process이슈/ volume작업 가능여부를 볼 수 있음. 따라서 각각에 어떤 명령어 있고, 어떤 상황에서 사용 가능한지 학습해야 한다. 

10. terminal multiplex(tmux)는 하나의 터미널에서 여러 세션을 열어서 동시 작업을 할 수 있게 하는 것으로 TMUX가 최신에 나온 것으로 많은 기능을 지원함. 

11. Netwoking protocol과 보안에 대한 개념에 대해서 이해해야 함. 즉, 1)기본적으로 웹 관련해서 HTTP를 이해하고 이에 TLS를 적용해서 2) HTTPS개념을 이해할 필요가 있다. 그리고 파일 전송에서 3)FTP개념을 이해하고 서버 접근을 위한 3)SSH, 보안을 위해서 4)SSL/TLS를 이해, 방화벽 접근을 위한 개념인 5)Port Fowarding개념을 이해해야 한다. 

12(Optional) Email과 관련된 Protocol을 학습해야 함. SMTP와 IMAPS, POP3프로토콜이 기본적으로 Email과 연계되어 있음. 그리고 관련보안을 이해하고 도메인을 위해서 DMARC/SPG/Domain keys를 이해해야 함. 

13(중요). 방화벽에 대한 내용을 이해하기 위해서 Reverse proxy와 Caching server, Fowad proxy, Load balancer

14. Web server는 최근 Nginx를 많이 사용하나 자바 계열에서는 Tomcat을 아직까지 대부분 사용하고 있음. 뿐만 아니라 Apache도 사용하고 있으므로 Nginx를 먼저 익히고 그 다음으로 Tomcat과 Apache를 학습해야 함.  


IaC에 대한 내용

15. CI/CD툴에 대한 학습

 Gitlab CI/Jenkins/Github Action/Circile CI와 같은 툴에서 전통적으로 Jenkins를 많이 사용하긴 하지만 너무 비싸므로 오픈소스가 있는 Circile CI를 알아 보는 것을 추천. 

16. 설정관리는 Ansible본 강좌에서 다룸. 

17. 컨테이너 오케스트레이션은 kubernetes를 사용해보자. 가볍게 사용해 보려면 Nomad를 학습. 

18. Infastructure provisioning을 하기 위해서는 Terraform을 학습하는데 본 강의에서도 다룸. Terraform은 클라우드에 종속적이지 않고 코드로 AWS및 다른 리소스들도 관리 할 수 있다. (Cloud Formation은 AWS만 관리 가능)


Software and Infrastructure monitoring

19. Log관리는 Elastic stack을 이용하여 관리하는 것을 추천하므로 관련내용을 공부해야 함. Elastic Stack이 log관리에 특화되어 있긴 하지만 Application monitoring, infrastructure monitoring도 가능해서 기술 stack을 일원화하는 것도 가능함. 기업에서 Granfana를 주로 사용하고 있다면 로키(?)를 함께 사용하여 Infastructure와 log의 monitoring을 함께 실시하여 이를 일원화 하는 것도 가능함. (?)

21. Application monitoring은 퍼포먼스나 매트릭을 측정할 수 있는 도구이며 마이크로 서비스 아키텍쳐 상에서는 각 마이크로 서비스 아키텍쳐 사이의 네트워크 통신들을 측정하는 분산 트래싱 기술이 적용되어 있는 제품: Jaeger, OpenTracing: 오픈소스이고 상용제품으로는 Datadog도 좋음. -> Datadog이 제일 비쌈. 

22. Infastructure monitoring은 기업에서 쓸 수 있는 예산이 많을 경우 즉, 쉽게 Monitoring을 구축할 수 있는 경우 Datadog를 통해 구축/그렇지 않을 경우 즉, 오픈소스를 활용하여 직접 구축해야 할 경우 Prometheus와 Grafana를 활용


Cloud Provider

23. AWS(본 강의에서 다룸)를 익힌 다음 GCP를 익히고 AZURE를 익히면 쉽게 익힐 수 있을 것임. 

24. Cloud Design patten은 서비스의 가용성과/데이터 관리/설계 및 구현/관리 및 모니터링에 대한 내용을 학습해야 하는데 각각은 1) 어떤 식으로 디자인을 설계를 해서 고가용성을 확보하고 2) 데이터관리를 어떻게 해서 데이터 라이프사이클을 가져가고, 3) 어플리케이션을 구성할 때 어떤 설계 방식과 구현을 가져갈 수 있는지, 3) 어떤 식으로 모니터링을 해서 가시성을 확보 할 수 있는지. 등을 공부해야 함. - 실제 프로젝트에 투입이 되고 실무에서 경험을 쌓을 수 있음. 

 이렇게 보면 엄청나게 많은 기술을 익혀야 할 것 같다. 백엔드로 조금 지식을 가지고 있다고 해도 추가적으로 공부해야 할 양이 엄청나게 많다. (더구나 주니어나 1년차나 나같이 다른 분야에서 DevOps일을 하려면.) 여기서는 하나의 기술 스택을 이해하면 쉽게 다른 스택을 이해 할 수 있다고 하는데 과연 그럴까=_=

 

DevOps엔지니어 신입은 가능한가

 DevOps신입은 거의 불가능한 거 같다. 강사의 말도 백엔드 엔지니어나 시스템엔지니어가 인프라를 공부하다가 DevOps엔지니어로 넘어오는 경우가 많다고 한다. 역시 필요하다면 당장은 AWS자체는 개발을 내가 하되, DevOps가 필요하면 외주를 맡겨야 겠다. (아니면 인원을 뽑거나) DevOps엔지니어는 단기간에 될 수 있는 것은 아니고, 상당 기간의 공부를 필요로 하는 것이고 주로 경력직을 요하는 것이라고 한다. 그런데 지금 당장 DevOps엔지니어가 필요 할까? 이것부터 일단 결정해야 할 것 같다. 

DevOps엔지니어 성장 전략(문제를 대하는 자세)

1. 시스템을 도입하여 단순 기능만 동작하게 가는 것(초보)

2. 기능의 확보를 넘어 고장에 대한 대비, 즉 안정성을 확보 하는 것. (중급)

3. 사내 표준에 따른 자동화를 수행하는 것. (상급)

4. 시스템의 접근제어와 데이터에 보안을 적용하는 것. (여기부터 최상급)

5. 최적화를 통해 동일한 머신에서 비용 대비 좋은 성능을 내는 것

> 이를 위해서 어떤 기술이나 도구를 사용해야 하는가? 또는 직접 만들어야 하는가? 

> It depends on situation

장애 대응은 어떻게 해야 하는가

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

- 저장 공간이 다 찼네, 볼륨확장하고 끝. 이 아님

- 저장 공간이 계속 다 차네, 왜 다 차지? 아 Log파일이 굉장히 크네, 이에 대한 해결을 하도록 하자. 

지금 조직에서 한 번 깊이 문제를 다뤄 보자.

Stack overflow같은 데서 처리하는 버릇을 좀 버리자. 이거 내가 잘하는 건데, 모든 정보는 인터넷에 있지만, 모든 문제를 인터넷에서 대충 처리하고 해결하다 보면 신뢰를 잃기 쉽다. 

- 영어! 영어!  

 

DevOps 엔지니어는 해야 할 일이 정말, 정말 많다. 단 시간에는 될 수 없을 거 같다. 당장 DevOps엔지니어를 목표로 하는 것 보다는 꾸준히 공부를 하다 보면 어느새 DevOps 엔지니어의 스펙을 만족하는 사람이 되어 있지 않을까? 

일단 당장 내가 할 수 있는 것은 빨간 줄과 노란색 배경색으로 나타내보니 6개 정도 된다. 공부해 봐야겠다. 가능하면 네트워크도 병행해서 공부해 봐야겠다. 쉬운 거 부터 해야지 쉬엄쉬엄. 

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

#패스트캠퍼스 #패캠챌린지 #직장인인강 #직장인자기계발 #패스트캠퍼스후기 #한 번에 끝내는 AWS 인프라 구축과 DevOps 운영 초격차 패키지 Online!

https://bit.ly/3FVdhDa

 

수강료 100% 환급 챌린지 | 패스트캠퍼스

딱 5일간 진행되는 환급챌린지로 수강료 100% 환급받으세요! 더 늦기전에 자기계발 막차 탑승!

fastcampus.co.kr

 

+ Recent posts