-
글을 쓰는 이유
요즘 들어 직무와 커리어패스에 대한 고민이 많아 스스로 정리해보고자 작성한다.
DevOps란 무엇일까.
나는 아직 너무나도 연차가 낮은 고작 경력 2년에 이제 3년차인 엔지니어다.
DevOps라는 것은 문화라고 늘상 배우고 생각만 했다.
그러나 이제는 이게 무엇을 의미하는지 그리고 아름다운 인프라를 위해서 어떤 것들을 진행해야하는지 써내려가보고 싶다.
DevOps? Development, Operations 이 합쳐진 단어다.
즉, System Engineer와 같이 기존에 있던 단어가 아니라 두개의 단어가 합쳐져서 파생된 새로운 단어라는 뜻이다.
DevOps는 누구나 할 수 있다.
Network Engineer, System Engineer, SoftWare Engineer등 DevOps Engineer가 아니더라도 누구나 할 수 있다.
그럼 그게 무슨 의미길래 그게 된다는거야?
-> 말 그대로 개발, 운영간의 다양한 흐름을 조화롭고 아름답게 만드는 행위이다.
Q. 나는 DevOps가 아니라서 Role이 없어 그래서 나는 우리 개발 부서의 Commit Message를 정하는 문화를 하는 거 밖에 못했는데 이것도 DevOps라고 볼 수 있어?
A. 그렇다고 생각한다. 결국 개발, 운영 흐름에 있는 모든 것들을 아름답고 조화롭게 만든다면 그게 DevOps인 것 같다.
Q. 그럼 DevOps는 뭘 하는데? 누구나 할 수 있으면 필요 없는거 아니야?
A. 이 문화를 전파하기도하고 서비스화 시켜 실제 운영 환경까지 잘 녹아들도록 적극적으로 시스템, 문화적으로 선두하는 사람들이기에 반드시 필요하다.
Q. AI가 하면 되는거 아님? ㅋㅋ
A. 잘 모르겠다. AI는 사람의 귀찮음을 알 수도 없고, 아름다움이라는 인간이 만들어낸 추상적인 단어를 이해하기란 쉽지 않으리라 생각한다. 미의 기준은 실제로 시대를 거듭하며 계속 바뀌어왔기 때문에 AI가 행하는 행위가 아름다움의 기준이 되는 날도 있겠지만 지속되지는 않으리라 생각한다.
내가, DevOps Engineer가 앞으로 해야할 그리고 해야만 하는 일들은 무엇일까?
기술
- K8S(현재로써)를 사용하여 언제 죽여도 좀비처럼 살아나고, 비용과 안정성이 우수한 인프라를 만드는 것
- CI/CD를 막힘없고 자유도가 높은 흐름속에서 제공하여 누구나 배포를 어디서든 간단하게 할 수 있도록 만드는 것
- IaC를 적극 채택해 모든 것을 선언만으로 이루어지고 인프라를 관리하는데 막힘없도록 하는 것
- 자신이 하는 업무에 있어서 그 외의 것은 신경쓰지 않아도 매끄럽게 IT시스템이 돌아가도록 플랫폼화 하는 것
=> K8S, GitOps, FinOps, Terraform, CloudFormation, Ansible, Jenkins, GO, Python 등등
문화
- git 형상관리에 대한 규정을 만들고 언제 누가봐도 이해가 가는 커밋을 만들고 머지 규칙을 만들 것
- 개발, 운영 간 서로의 니즈를 파악하고 서로가 서로의 사정이 있음을 이해하는 지식을 전파할 것
- 나 한명 없어도 돌아가는 IT시스템을 만들 것
이 모든걸 지키는 것은 정말 어려울 것 같다.
그러나, 나는 언젠가 이 모든걸 모두 포괄하는 문화와 기술을 갖는 엔지니어가 되고 말 것이다.
엔지니어인 이유는 내가 엔지니어가 아니라면 엔지니어의 입장을 이해할 수 없기에 같은 처지에서, 같은 입장에서 구성을 하고 싶은 것 이다.
나는 아직도 많이 부족하다. 이제야 한걸음 걷는 방법을 배워 나가는 것이지 한걸음 발을 때지는 못했다.
그치만 나는 내가 가진 기술과 내가 가진 생각, 능력을 통해서 위 문화들을 전파하고 기술을 적용해 나갈 것 이다.
내일부터 할 것
-> GO언어 공부
이유는? k8s의 다양한 컨트롤러를 내가 직접 건들여보고 싶다. 그것도 프로그램 언어를 통해서
조금 더 향상된 k8s 인프라를 만들기 위해선 이게 반드시 필요해서 공부하려는 것 이다.
지금까진 python만을 사용했지만 이제는 조금 더 로우레벨한 환경까지도 볼 것 이다.