Kamal 2.0이 VM 및 베어메탈 서버에 웹 애플리케이션을 직접 배포하는 도구로 공식 출시되었습니다. Kamal 1.0이 37signals의 다중 호스트 배포 시나리오에 맞춰 설계된 반면, Kamal 2.0은 규모에 관계없이 모든 사용자가 더욱 쉽고 효율적으로 애플리케이션을 배포할 수 있도록 사용 편의성 향상에 중점을 두었습니다. 이는 50대의 서버에 대규모 애플리케이션을 배포하든, 단일 서버에 5개의 소규모 애플리케이션을 배포하든 관계없이 간소화된 경험을 제공하는 것을 목표로 합니다. Kamal 2.0의 출시는 배포 환경의 복잡성을 줄이고 유연성을 높이는 데 기여할 것으로 기대됩니다.
Kamal 2.0의 핵심적인 변화는 새로운 프록시 시스템의 도입입니다. 기존 Kamal 1.0은 애플리케이션 버전 간의 원활한 전환을 위해 Traefik을 사용했으나, Traefik의 선언적 서비스 검색 모델이 Kamal의 명령형 설계와 불일치하여 복잡성을 야기했습니다. 이러한 문제점을 해결하기 위해 Kamal 2.0은 자체 개발한 kamal-proxy
를 채택했습니다. 이 맞춤형 프록시는 Kamal 명령과 프록시 명령 간의 1:1 매핑을 제공함으로써 배포 과정을 획기적으로 간소화합니다. 이러한 긴밀한 통합 덕분에 Kamal 팀은 향후 유지보수 모드, 요청 일시 중지, 카나리 배포와 같은 혁신적인 신규 기능을 Kamal에 추가할 수 있는 기반을 마련했습니다.
Kamal 2.0은 Rails 8.0에 기본으로 설치될 예정이지만, Rails 애플리케이션에만 국한되지 않고 모든 언어 또는 프레임워크로 작성된 웹 애플리케이션에 폭넓게 적용 가능합니다. 기존 Kamal 1.0 사용자들을 위해서는 원활한 전환을 돕는 상세한 업그레이드 가이드가 제공됩니다. 이미 37signals의 HEY 배포는 Kamal 2.0을 통해 이루어지고 있으며, 이를 통해 더 빠른 배포 시간과 간소화된 설정의 이점을 경험하고 있습니다. 37signals는 조만간 자사의 모든 애플리케이션을 Kamal 2.0으로 전환할 계획이라고 밝히며, Kamal 2.0의 안정성과 효율성을 실제 프로덕션 환경에서 입증하고 있습니다.
결론적으로, Kamal 2.0은 웹 애플리케이션 배포의 복잡성을 줄이고 효율성을 극대화하기 위한 중요한 진전을 보여줍니다. 새로운 `kamal-proxy`의 도입은 배포 과정을 간소화하고, 미래 지향적인 기능들을 통합할 수 있는 강력한 기반을 제공합니다. Rails 생태계를 넘어선 범용적인 적용 가능성과 실제 서비스에서의 성공적인 적용 사례는 Kamal 2.0이 모든 규모의 개발팀에게 매력적인 배포 솔루션임을 시사합니다. Kamal 2.0은 웹 애플리케이션 배포를 더욱 간소하고 효율적으로 만들어나가는 데 기여할 것입니다.