KwonSunJae / MuscleMemory

생성한 IaC파일들의 존속성을 보장하고 특정시점으로 Rollback할 수 있도록 합니다.
2 stars 1 forks source link

MuscleMemory

MuscleMemory는 IaC(Infrastructure as Code) 파일의 버전 관리와 동시성을 제어하기 위한 소프트웨어입니다. 폐쇄망 환경에서도 안전하고 효율적으로 인프라를 관리할 수 있도록 설계되었습니다.

개발 동기

실패케이스

일반적으로 git으로만 tfstate 파일을 관리하게 될 경우에 발생할 수 있는 중복 자원생성 문제

1. 폐쇄망에서의 tfstate 파일 관리

Terraform의 tfstate 파일은 AWS S3와 같은 퍼블릭 서비스를 이용하여 동시성을 제어하는 경우가 많습니다. 하지만 폐쇄망에서 작업할 경우 이러한 퍼블릭 서비스에 접근하기 어려운 문제점이 있습니다. 이에, 폐쇄망에 구축된 사설 Git repository와 연동하여 tfstate 파일의 동시성을 제어할 수 있는 소프트웨어가 필요하다는 생각에서 MuscleMemory 프로젝트가 기획되었습니다.

2. IaC 파일의 업데이트 관리

현재 대용량 트래픽을 처리하고 다양한 서비스를 배포하는 환경에서, 복잡한 인프라를 IaC 파일로 관리하는 것이 일반화되었습니다. 이때, 만약 특정 시점으로 롤백해야 하는 상황이 발생한다면, 재빠르게 대처할 수 있어야 합니다. 따라서 IaC 파일의 업데이트 버전을 관리할 수 있는 시스템이 필요하다는 고민에서 MuscleMemory의 필요성을 느꼈습니다.

동작 과정

  1. Muscle이 Conflict를 예방할 수 있는 이유

성공시나리오

주요 기능

  1. IaC 파일 버전 관리 및 롤백
    생성한 IaC 파일의 버전을 관리하고, 특정 시점으로 롤백할 수 있는 기능을 제공합니다. (현재 미구현)

  2. 자동 배포 기능
    Terraform, Ansible 등 다양한 IaC 파일을 자동으로 배포할 수 있는 기능을 지원합니다.

  3. 동시성 제어
    여러 사람이 동시에 프로젝트에 작업할 수 있도록 동시성을 제어하는 기능을 제공합니다.

설치 및 사용법

  1. 설치
    MuscleMemory를 설치하려면 [설치 가이드]를 참조하십시오.

  2. 사용법
    사용법에 대한 자세한 내용은 [사용 가이드]를 확인해 주시기 바랍니다.

기여

MuscleMemory 프로젝트에 기여하고 싶으신 분들은 [기여 가이드]를 참조해 주세요.

라이센스

이 프로젝트는 [MIT 라이센스]에 따라 라이센스가 부여됩니다.


이 프로젝트는 폐쇄망 환경에서 안전하게 인프라를 관리하고, IaC 파일의 버전 관리를 통해 효율성을 높이기 위해 개발되었습니다. 여러분의 많은 관심과 참여 부탁드립니다!