내가 보고 듣고 해서 나온 뇌피셜인거 알아두고. 그리고 난 우리팀 옵스 전담자가 아니라 정확도가 떨어지고 그래서 틀린 내용이 있을 수 있음 (특히 시간 순서가)
최신이라 말하지만 사실 태동기가 이미 4-5년 전이라 현재 진행형 트렌드라 말하는게더 맞을듯 나도 뒤쳐져서 최신은 잘 모르겠다.
2000년 부터 2010년 대에는
제프 베조스가 "사내 모든 시스템을 API화 하라!"는 미친 듯한 선구안이 대박을 쳐서 클라우드가 대세가 되었는데, 컴퓨터 하나 없이 0원으로 스타트업을 시작할 수 있게 해줬을 뿐만 아니라 빅테크나 사용하는 걸로 여겨졌던 수십가지 기술들이 모두에게 풀린, 그런 세상으로 바꿔버렸음.
컴퓨팅 리소스의 자유가 주어지니, 덩달아 Circle CI, Ansible, Github Action 등 등 CI/CD, Infra as Code 같은 자동화 개념들과 툴이 핫 해졌고, 당연히 더 많은 스타트업이 창궐하고 걔 중에는 유니콘이 탄생했으며 그들이나 그걸 고스란히 플랫폼 수익으로 얻은 테크 대기업들의 인프라는 이 시점부터 미친듯이 커지기 시작했음.
쿠버네티스
하지만 시장에 있는 개발자들은 여전히 고민이 있었는데, 여전히 서버는 유지보수가 필요한데 인프라는 미친듯이 커져버렸음. 에를 들어 간단한 nginx도 os마다 설치하고 각 팀마다 설정 하고, 이걸 코드화 시켜도 nginx 버전, os버전이 오르고 미처버리게 만들었지.
쿠버네티스는 (물론 처음엔 경쟁 제품이 좀 있었지만) 특유의 비종속성 덕분에 거대한 인프라를 가진 기업들 입맛에 맞았고, 이때 딱 AI 붐이 일어나면서 더더욱 미친듯한 인프라 스케일링에 적절한 툴로 각광받았음. 이 세상 모든 서비스는 운영체제에서 벗어나 천천히 쿠버네티스 클러스터 안에서 돌아가기 시작했지. 이때 이후로 네모난 데이터 센터만 신나게 지으면서 우리 클러스터엔 노드 7000개! 10000개! 가 대기업 기술 블로그 핵심 주제가 되어버렸지만
헬름
이때 얼마 안 있어 등장한 헬름은 미칠듯한 센세이션을 불러왔는데, 인프라를 이루는 컴포넌트 들의(예를 들어 위에 말한 nginx 처럼) 재사용성에 관한 패러다임을 혁신적으로 개선해렸음.
헬름의 핵심은 헬름 차트에 있으니, 누군가 한명이 노력해서 차트를 만들어 놓으면, 쿠버네티스를 쓴다는 가정하에 복잡한 설치 과정 하나 없이 (과장 좀 보태서) yaml파일 하나로 컴포넌트를 배포할 수 있게 만들어주고, 게다가 다른 기업들도, 모두 쿠버네티스를 쓰기 때문에 오픈 소스 소프트웨어 들이 헬름 차트를 같이 제공하기 시작하고, 덕분에 노력 조차 필요 없는 경우가 많아짐.
또 다른 혁신은 GitOps의 등장인데, 헬름 덕분에 인프라가 이젠 코드 조차 아닌 value를 기반으로 배포되게 됨. 배포 환경마다 미리 값을 정해 놓고 배포 변수만 바꾸면 배포를 관리할 수 있기 때문에, 환경 별로 복잡한 설정이 필요 없어 졌고 고전적인 여러 git flow 브랜치 전략을 퇴색시켰음. 따라서 단순해진 git을 인프라 정의 삼아 배포하는 새로운 패러다임이 등장했고.
테라폼
아까 말한 Infra as Code 개념이 떠오를때, 당연히 이걸 모를 리가 없는 클라우드 공급자들은 앞다투어 자사 IaC툴을 내놓았지만 하나같이 사용감이 조약했고 자기네 클라우드에 호스팅을 강요해서 종속되기 싫은 기업들은 기피했음.
이때 테라폼은 다른 클라우드 공급자들과 달리, 깔끔한 HCL 언어를 정의해서 시장에 내놓았고 아주 좋은 반응을 었었음. 아까 말했듯이 클라우드 공급자들이 만든 툴은 다 망했기 때문에 테라폼은 시장을 독점하게 됬지.
3개의 툴이 기가 막힌 조합을 가졌는데, 테라폼이 클라우드에 인프라를 프로비저닝 하고, 클라우드 위에는 쿠버네티스 클러스터가 돌아가고, 클러스터에 대한 리소스 정의와 배포는 헬름이 하게 되는, CI부터 CD까지 전 파이프라인을 독점하게 됬음 (물론 실제로는 여기에 여러 서브 툴을 같이 사용하지만)
프로비저닝이나 클러스터를 자사에 최적화시키는데 욕심이 있는 기업들은, 쿠버네티스나 테라폼의 커스텀 화 기능을 사용 할 수 밖에 없었고 Go는 요즘 백엔드 주력 언어 중 하나로 채용 시장에서 가장 핫한 언어 중 하나가 됨.
Jvm 계열로만 커리어를 쌓다가 golang 으로 현업에서 일년째인데 GC 언어중에 내 경험상 가장 메모리 관리하기가 까다로웠음 ..
go gc는 마크앤스윕만 있지않나
헬름 쿠버네티스 꺼내왔으면 argo도 같이 올려두는게 예의인데
argo도 쓰고 싶었는데 이미 너무 길어 글에서 냄새남
ㅇㅈ
이거보고 go 파는 주니어 있을까봐 두렵네요. 이게 유튜버랑 뭐가 다른지
디시르 보고 배우는 거면 태도가 그릇된게 아닐까요? ㅋㅋㄹ
유튜브는 뭐 다른가 ㅋㅋ
정성글 추