Modern deployment the right way
- 웹 앱 배포는 초기에는 쉬워 보이지만, 규모가 커질수록 인프라를 수동으로 설정하는 것은 비효율적임 😥
- Docker와 같은 컨테이너화 도구는 앱에 필요한 모든 종속성을 Docker 파일에 정의하여 이 문제를 해결함 🐳
- Docker 이미지는 앱과 해당 환경을 버전 관리하고 공유 가능한 번들로 만들어 어디서든 동일하게 실행할 수 있게 함 📦
- Docker는 Linux 커널의 기능(cgroups, namespaces)을 활용하여 프로세스 격리 및 리소스 관리를 수행함 🛡️
- 컨테이너는 가상 머신보다 가볍고 빠르며, 리소스 효율성이 높아 하나의 머신에서 여러 컨테이너를 실행할 수 있음 🚀
- Docker 이미지는 앱 실행에 필요한 모든 것을 정의하는 청사진이며, 컨테이너는 해당 이미지의 실행 인스턴스임 🖼️
- 앱이 복잡해지면 Docker만으로는 부족하며, 컨테이너 오케스트레이션 도구가 필요함 оркестр
- Kubernetes는 Docker를 기반으로 인프라를 코드로 관리하고, 컨테이너를 관리, 재시작, 트래픽 라우팅, 스케일링함 ☸️
- Kubernetes는 컨트롤 플레인을 사용하여 시스템 상태를 모니터링하고, YAML 매니페스트에 정의된 원하는 상태로 조정함 ⚙️
- Kubernetes의 주요 구성 요소로는 deployments, services, config maps, secrets, persistent volumes 등이 있음 🔑
- Savala는 Kubernetes Engine 기반의 PaaS로, 간편한 배포, 고급 배포 파이프라인, 빠른 미리보기, 원클릭 배포 템플릿을 제공함 ✨
- Savala는 Cloudflare의 엣지 네트워크 통합을 통해 정적 콘텐츠를 전역적으로 최적화하여 빠른 속도를 제공함 🌐