본문 바로가기

👩‍💻 영국에서 일하기/영국 개발자

영국 4년차 데브옵스 엔지니어가 추천하는 데브옵스 공부.👀

스코틀랜드 하일랜드 카우와 아이컨택 2024.05

 
벌써 영국 한 회사에서 데브옵스 엔지니어로 일한지 3년 4개월.
생각나는 대로  데브옵스에서 일하고 싶은 사람들, 특히 영국이나 외국에서 일하고 싶은 사람들을위해 글을 써보려한다.
주관적인 견해도 많고 한국은 데브옵스 업계가 어떤지 잘 모르니까 영국기준이다. 
 

우선, 데브옵스(DevOps)란?!

일단 데브옵스가 뭔지 일도 모르겠으면 내가 좋아하는 나나 유튜버의 데브옵스 정의를 보면 좋겠다. 데브옵스는 단어가 암시하는것 처럼 정말 광범위하다. 
https://www.youtube.com/watch?v=0yWAtQ6wYNM&t=3s&ab_channel=TechWorldwithNana

 
 
나나 채널을 보면 데브옵스와 요새 핫한 Platform enginner, 또는 SRE 타이틀과 비교도 많으니까 정의를 세우고 싶다면 추천한다.
 
내 개인적인 견해로는 데브옵스 엔지니어는 개발도 할수있어야하고, 오퍼레이션도 할수 있어야 하고, 데브옵스 역할과 더 관련이 깊은 자동화(automation)도 할수 있어야한다고 생각한다. 물론 좀 무섭다. 이렇게 할게 많다고???!?!?!?!??!?!? 생각이 들수도 있겠지만 차근차근 공부해 나간다면 정말 다양한 길로 내 진로를 정할수 있는 매력적인포지션 이라고 생각한다!
 
왜냐?데브옵스 롤에서 이것저것 배우고 어떤쪽이 경험을 통해 나와 제일 잘 맞는지 알수 있고, 그리고 이직을 할때도 이직을 할수 있는 타이틀의 범위가 넓어지기 때문이다. 올초에 이직 준비를 할때 나는 개발자 역할도 지원을 했었고, 클라우드 엔지니어 역할도 지원을 할수 있었다. 
 
그리고 현재 우리회사에서는 AWS를 잘 다룰수 있는 데브옵스엔지니어를 뽑으려고 하고 있다. 근데 코딩경험이 전무하고 bash script나 python sciprt 만 짤수 있는 사람이 되게 많았다. 그래서 내 매니저랑 얘기하는데 개발 못하는 사람이 왜이렇게 많냐고 다들 경력이 5년 6년이 넘는데 요즘 데브옵스 엔지니어는 AWS, Terraform 만 좀 해도 가능한건지 의문이 들긴했다. 하도 새로운 자동화 툴이 많아서 그런가?
나뿐만 아니라 팀원들은 개발도 할수있는 엔지니어가 데브옵스엔지니어라고 생각하기 때문에 이런 사람들은 인터뷰패스를 하지 못했다.
 

그래서 뭐부터  배우면 좋을지?

  • Learn language 코딩 언어를 배워라.

언어 하나로 풀스택 소프트웨어를 만들수 있어야 한다고 생각한다. 요즘엔 go templ 이라고 GoLang 언어 만으로 프론트엔드, 백엔드 개발이 가능한 스택이 있고, 자바스크립트로 풀스택 개발이 가능하고, Pyton 으로도 가능하고!
간단한 웹 어플리케이션 그냥 투두리스트라도 CRUD되는 웹앱 만들수 있는 정도면 된다고 생각한다. 어떤 언어든 좋다!
 
현재 회사에서 IDP(Internal Developer Platform)두개를 go templ로 개발중에 있는데 우리 팀에서 만족도가 꽤 크다.
 
Ref go templ: 
- https://templ.guide/
- https://www.youtube.com/watch?v=wttTTFVrQiw&ab_channel=AnthonyGG

 

  • Containerising 컨테이너라이징 배우기.

컨테이너라이징을 해보자.
간단한 풀스택 앱을 만들었다면 Docker를 배워서 컨테이너라이징을 해야한다. 
Docker 관련된 영상도 나나 유튜버를 보면 배울 컨텐츠가 많이 있다.
Docker를 통해서 이미지를 만들고 그 이미지를 GCP container registry(또는 artifact registry) 에 저장까지 해보자. 리소스는 찾아보면 넘쳐난다. 
그리고 로컬머신에서 로컬 데이터 연결도 하고 싶으면 SQL 이미지들도(Mysql, PostgresQL) 함께 사용하면 좋다. 그럴때는 독커 컴포즈를 통해서 내가 만든 백엔드랑 데이터를 같이 돌리면 된다. 
 

  • Cloud

AWS, GCP, Azure 등 cloud 툴들이 많은데 이게 뭔지 개념을 잡고 각 cloud 회사에서 프리 크레딧을 주니까 유튜브 영상 같은거 보면서 공부를 해보자. 다 알필요없고 다 비슷비슷해서 하나만 공부하면 된다. 개인적으로 GCP 추천. 현업에서 많이 쓰는건 AWS.
 

  • Deploy 디플로이하기.

컨테이너라이징을 했으면 내가 만든 이미지로 디플로이를 해보자. GCP Cloud Run 으로 백엔드 디플로이 하는건 정말로 너무너무 쉽다.
GCP SQL 데이터를 사용하고 내가 만들어서 GCP container registry에 저장한 이미지를 디플로이 하면 된다. 나머지는 자동으로 GCP가 알아서 해준다. 
 
프론트엔드는 Clouflare, Vercel 등을 이용해서 깃헙 리포지터리를 연결하면 자동으로 디플로이가 되니까 그렇게 해서 백앤드 프론트엔드 사이에 커뮤니케이션이 된다면 끝!

  • CI/CD Pipeline 파이프라인

파이프라인은 자동으로 디플로이하는 걸 구축하는것이다. 왜냐? 디플로이 할때마다 일일이 수동으로 하면 에러도 잦아지고, 느리기 때문에 그 디플로이를 하는 프로세스를 자동화 한다고 생각하면된다.  파이프라인을 구축할수 있는 툴은 아주아주아주 많다. Circle ci, Argo cd, 
Argo workflow, Github pipeline, Gitlab pipeline..
 
우리회사파이프라인을 예로 들면, 우리는 argo worfklow + argocd 를 사용하고 있다. 배우기 쉬운건 github pipeline이나 gitlab pipeline인것 같다. 
 

  • IaC (Infrastructure As Code)

IaC는 인프라스트럭쳐를 code로 짤수 있는 것을 말한다. 
 
현업에서 가장 많이 쓰는 툴은 Terraform 이다. 우리회사는 Pulumi라고 자기가 많이 쓰는 개발언어로 Iac를 할 수 있는 툴이다. 
 
Terraform이 커뮤니티도 크고 문서작업도 잘되어있어서 추천한다. 

  • Kubernetes  쿠버네티스

쿠버네티스는 쿠버네티스는 데브옵스 엔지니어면 알아야 한다고 생각하지만 일단 개인이 혼자 배우는게 한계가 있다. 왜냐면 너무 비싸니까!!!!!! 추천하는 방법은 로컬 쿠버네티스로 쿠버네티스가 어떻게 작동하는 지 배우는것. 그러면 GCP 나 AWS등에 돈 안내고 내 머신에서 그냥 쿠버네티스를 돌릴수 있다.  Minikube, K3d 등등 로컬쿠버네티스 툴은 많다. 나는 쿠버네티스 자격증을 땃는데 자격증이 있는게 이직 인터뷰 할때 도움이 된것 같고 요즘은 매일 사용하는게 쿠버네티스라 확실히 자신감이 붙었지만 처음에 배웠을때는 너무 어려웠다. 
 
이렇게 공부하면 컨테이너라이징 알고, 클라우드 좀 알고(클라우드 런 으로 디플로이했으니까), 쿠버네티스 좀 알고, 풀스택 개발할줄 알고 물론 할게 많지만 이렇게 알면 주니어 데브옵스로 영국에서 커리어를 시작할수 있다고 생각한다!
 
그리고 다른 데브옵스 관련 툴이 궁금하다면 이웹사이트 다이아그램을 추천한다. CNCF Graduate 로마크 되어있는 툴들이 공신력있는 배워도될 스택이다.
https://landscape.cncf.io/
 
 

CNCF Landscape

landscape.cncf.io