詳細検索

2024년 Colorkrew 인하우스 서비스 인프라 운영 현황

아바타
글쓴이 Kohei Akiyama
5분 읽기

2024년 Colorkrew 인하우스 서비스 인프라 운영 현황
日本語에서 번역 • 원문 보기

안녕하세요. 저는 아키야마라고 하며, Azure 클라우드 솔루션 아키텍트이자 DevOps 엔지니어입니다. 저희 서비스의 인프라 책임자를 맡고 있습니다.

제가 마지막으로 쓴 블로그는 2년 전이었기에, 여기서는 최근 인프라 상황을 요약해 보겠습니다. AKS가 자체 서비스인 마모루 비즈로 도입된 지 1주년을 되돌아보며

제품 개발 팀 성장과 효율성 향상

이것이 가장 큰 변화입니다. 2년 전만 해도 저희 서비스는 마모루 비즈(현 컬러크루 비즈)와 동등했지만, 지금은 "컬러크루 ID", "컬러크루 인트라", "AI 채팅 시스템" 등 다양한 제품을 개발 중입니다. 이 모든 제품은 클라우드 인프라를 활용하기 때문에 신규 시스템의 인프라를 효율적으로 구축하는 것이 필요합니다.

현재 저희 서비스 인프라 팀은 저를 포함해 네 명으로 구성되어 있으며, 모두 동시에 계약 프로젝트 등 다른 업무를 수행하고 있습니다.

지난 한두 년 동안 우리는 인프라 운영이 지연되지 않도록 대략 다음 내용을 홍보해 왔습니다.

  • 제품 개발팀의 템플릿 요청
  • 인프라 배치 코드의 모듈화
  • 최신 기술에 대한 시행착오 및 피드백

이 항목은 그들을 순서대로 설명합니다.

제품 개발팀의 템플릿 요청

소스 코드 관리는 GitHub를 사용합니다. 새로운 제품 개발을 시작하거나 기존 제품에 새로운 클라우드 인프라가 필요할 때, 인프라 팀이 GitHub Issue의 콘텐츠를 직접 구성하도록 합니다.

그리고 이것이 하나의 패턴이 되었기 때문에, 제품 개발팀이 작성할 수 있는 이슈 템플릿을 준비했습니다. 참고: 저장소용 이슈 템플릿을 설정하세요

내용은 다음과 같습니다

  • 필요한 클라우드 인프라 자원(DB, 스토리지 등) 등)
  • 쿠버네티스 리소스 (Pod, CronJob 등) 등)
  • 배포 흐름
  • 환경별 마감일 (디버그는 최대한 빨리 시작, 프로덕션은 2개월 후, 등등)

필요한 정보를 채팅 랠리로 채우는 것은 비효율적이므로, 한 번에 대부분의 정보를 다루는 것이 효율적입니다. 또한, 다른 제품의 인프라 요청을 참고함으로써 제품 개발팀은 사일로를 방지하고 수평적 연결과 이해를 촉진하는 부작용을 확인할 수 있습니다.

인프라 배치 코드의 모듈화

인프라 - 테라폼

우리 팀은 Terraform을 사용해 서비스 인프라를 관리합니다. Terraform은 모듈이라는 기능을 제공하며, 재사용성과 유지보수 가능성을 향상시키는 것을 목표로 합니다. (안타깝게도 모든 모듈이 모듈은 아닙니다.) 모듈에 배포된 코드를 다시 작성하는 데는 많은 노력이 필요합니다. )

참고: 모듈 개요

쿠버네티스 - 헬름

Kubernetes 리소스는 Helm을 사용해 매니페스트를 관리합니다. 각 애플리케이션은 여러 기술 스택 패턴(Laravel, Go lang 등)으로 구성되어 있기 때문에, 이를 수용하고 각 애플리케이션이 자체 매니페스트 정의를 생성하는 것을 최소화하기 위한 공통 템플릿을 가지고 있습니다.

참고 : 라이브러리 차트

애플리케이션 - GitHub Action

우리는 GitHub Actions를 사용해 애플리케이션을 배포합니다. GitHub Actions는 '워크플로우 재사용(Reusing workflows)'이라는 기능을 제공합니다. 이 기능은 애플리케이션의 저장소를 하나씩 별도의 저장소에서 관리하기 때문에 GitHub Action 템플릿이 복사될 때마다 관리하기 번거롭기 때문에 중요했습니다. 참고: 워크플로우 재사용

모듈화는 공통 부품을 유지하고 각 제품의 균일한 품질을 누릴 수 있어 훨씬 쉽습니다.

시행착오와 현대 기술에 대한 피드백

이전에 만든 것을 그냥 따르면 지금까지는 할 수 있지만, 끊임없이 진화하는 IT 기술 중 최신 기술을 시도하고 실패하는 것이 중요합니다. 우리는 새로운 기술과 기능을 소량씩 적극적으로 시도하고, 효과가 있는 것을 전체에 피드백합니다.

예를 들어, Azure Static Web Apps는 웹 서비스의 프론트엔드로서 딱 맞는 서비스입니다.

참고: Azure 정적 웹 앱이란 무엇인가요?

이전에는 Azure Kubernetes Service에서 호스팅했기 때문에 Docker 이미지에 대한 보안 업데이트가 필요하거나 배포를 위해 빌드했습니다. 새 제품에서는 잘 작동하고 있어 점차 다른 제품에 적용하고 있습니다.

결론

Colorkrew의 서비스는 계속 확장되고 있으며, 인프라와 개별 개발자 모두 매일 더 높은 품질과 성능을 달성하기 위해 더 많은 노력을 기울여야 합니다.

Colorkrew에서는 자신의 서비스 개발과 계약 사업 모두를 경험할 수 있습니다. 저희 회사에 관심이 있으시면 채용 페이지에서 입력해 주세요.

Related Articles