이 문서는 Sk Tactics 런칭 회고입니다.
개요
Carrieverse사의 DevOps 엔지니어로 합류하여 30일 만에 첫 서비스를 런칭하였습니다.
부족한 부분이 정말로 많고 안정성, 재사용성에 키포인트를 잡고 성공적으로 런칭을 할 수 있었습니다.
빠르게 움직이는 상황 속에서 팀에 처음으로 합류하였습니다.
소프트 랜딩을 하되, 비가역적인 선택은 확장성 있는 방법을 선택하고 싶었습니다.
Specification Analyze
이 팀은 어떤 길을 걸어왔으며, 어떤 길을 걸어가고자 하는가.
그리고 데브옵스 엔지니어로서 어떤 길로 걸어가야 하는가.OKR
당장 서비스 런칭을 맞추기 위해서 어떤 것을 취해야 하는가.
앞으로의 방향성에 적합하면서도 도전적인 OKR 설정FEA
회고를 통해서 유지(Keep), 집중(Focus), 회피(Avoid)할 부분들을 분석하자.
- 서비스 런칭 전 : Specification Analyize, OKR
- 서비스 런칭 후 : FEA
Specification Analyze
Keypoints
Core Keypoints
Priority Classification
Keypoints
총 2주에 걸쳐서 WEB3 개발실에 존재하는 모든 엔지니어 님들과 이야기를 나누었습니다.
그 과정에서 나온 Keypoints를 정리하였습니다.
기존에는 클라우드 담당자가 따로 없었습니다.
개발자님들의 클라우드 작업의 피로도가 높았습니다.
개발자님들의 클라우드 학습/성취에 대한 욕구가 강했습니다.
선택한 코어 기술들은 아래와 같았습니다.
AWS, K8s, Helm, Lens, ArgoCD, …
⛳️ 클라우드와 관련된 프로세스/문화가 구성되어 있지 않았습니다.
⛳️ 클라우드 지식/경험/코드의 축적이 제대로 이루어지지 않고 있었습니다.
⛳️ 기본적인 로그, 모니터링, 트레이스 뿐만 아니라 전체적인 관찰 가능성이 낮았습니다.
♟️ 자동화 수준이 많이 낮아서, 중/장기적인 생산성 저하가 발생하고 있었습니다.
♟️ 많은 비용이 지출되고 있으며, 이를 개선하기 위한 지식 축적/리소스 투입이 현실적으로 어려운 상황이었습니다.
Core Keypoints
한 명의 클라우드 엔지니어로서 일을 쳐내듯이 처리하는 것은 단기적인 관점이라 생각했습니다. 따라서 근본적인 문제를 파악하고 이를 기반으로 연/반기/분기/월 별 목표를 수립하고 이를 병렬적으로 처리하고자 했습니다.
Keypoints들로 파악한 근본적인 문제점은 아래와 같았습니다.
업무 생산성의 문제
정말로 수많은 이유들로 중/장기적인 업무 생산성이 너무 낮다고 생각했습니다.
이로 인해서 휴먼 리소스가 부족해지고 중/장기적으로 처리하지 못하는 일들이 빠르게 급증하고 있습니다.
거버넌스의 부재
회사, 팀을 어우르는 최소한의 거버넌스가 부재하고 있습니다.
이로 인해서 자동화 및 운영/관리가 불가능하거나 비효율적으로 많은 시간을 소모하게 만듭니다. 결과적으로 투입한 노동력 대비 낮은 성과를 낼 수밖에 없습니다.
AWS 멀티 어카운트에 복잡하게 흩뿌려져있는 리소스들은 관리를 더 어렵게 만듭니다.
네이밍, 태깅 규칙이 없는 환경에서 생성된 리소스들은 관리를 더 어렵게 만듭니다.
완성되지 않은 개발 환경
K8S, Helm, Terraform 등 좋은 도구들을 많이 사용하고 있습니다.
하지만 최소한의 로그, 매트릭, 트레이스가 없기 때문에 디버깅에 너무 많은 시간이 소모됩니다.
Priority Classification
회사에서 요구하는 비용 절감이라는 목표는 결국 휴먼 리소스가 뒷받침 되어야 한다고 생각했습니다. 따라서 1번을 최우선으로 빠르게 진행하면서 2번과 3번을 병행하는 것으로 정했습니다.
1순위 : 업무 생산성 개선
2순위 : 거버넌스 개선, 개발환경 완성
3순위 : 개선된 환경에서 비용 절감, 보안 강화 (회사의 니즈)
다만 이 과정이 너무 분리되어 있을 경우, In & Out이 명확하게 연결되지 않을 수 있다고 생각했습니다. 따라서 연/반기/분기/월 별로 세분화하여 3순위 작업들을 병렬적으로 처리할 필요성이 있다고도 생각했습니다.
자세한 내용는 OKR, KEW에서 말하겠습니다.
OKR(Object Key Results)
Objective | Key Result |
---|---|
인프라 인수인계 | 서비스 런칭까지 안전히 러닝 |
흩어진 인프라 문서를 중앙 집중화 | |
IaC 모듈화/탬플릿화 | 99% 이상의 Terraform 작업 |
K8s Manifest가 아닌 Helm 사용 |
FEA(Focus, Keep, Avoid)
Focus(지향할것)
99% 이상의 Terraform 작업
KMS + SSM Parameter Store를 통해서 환경변수, 키 관리 건 개선
Terratest를 통해서 Unit, Integration 테스트를 작성하여 사이드 이펙트 억제
Terraform Visulaization을 위한 방법 고민
Terraform을 통해서 각종 원칙 및 모범 사례 준수하는 모듈화
K8s Manifest가 아닌 Helm 사용
매번 Helm을 작성하는 것이 아니라 유지 보수하는 몇몇 Helm Package를 기반으로 관리할 것
Helm Encrypt, Decrypt 도입할 것
Keep(지속할 것)
서비스 런칭까지 안정히 러닝
흩어진 문서를 중앙 집중화
Avoid(지양할 것)
흩어진 문서를 중앙 집중화
기존의 환경변수, 키 관리 건으로 개발자-데브옵스 협업 방식
결론
전체적으로 성공적으로 SK Tactics를 런칭할 수 있어서 뿌듯했습니다.
업무 생산성을 개선하여 속도를 빠르게 하면서도 안정성을 뒷받침 하기 위한 몇 가지 FEA를 정할 수 있었습니다.
이를 통해서 다음 서비스 런칭에는 FEA를 포함하여 더 많은 작업을 안정적으로 처리할 수 있는 토대를 마련하고자 합니다.