eBook ini merupakan panduan lengkap dan disusun secara sistematis untuk mengimplementasikan Zero Downtime Deployment pada aplikasi Laravel menggunakan kombinasi Deployer, FrankenPHP, dan GitHub Actions, dengan pendekatan Atomic Deployment serta sistem rollback otomatis.
Zero Downtime Deployment adalah metode deployment yang memungkinkan pembaruan aplikasi dilakukan tanpa menghentikan layanan yang sedang berjalan. Dengan pendekatan ini, pengguna tetap dapat mengakses aplikasi secara normal selama proses deployment berlangsung, tanpa mengalami gangguan atau downtime.
Dalam eBook ini, pembaca akan diajak memahami konsep dasar Zero Downtime Deployment, cara kerja Atomic Deployment, serta langkah-langkah teknis untuk menerapkannya secara nyata pada aplikasi Laravel. Seluruh pembahasan disusun secara bertahap, mulai dari persiapan server, konfigurasi runtime, hingga proses deployment ke environment production.
Fokus utama eBook ini adalah memanfaatkan Deployer sebagai alat otomatisasi deployment, FrankenPHP sebagai application server modern pengganti PHP-FPM, dan GitHub Actions sebagai sistem CI/CD untuk mengotomatisasi proses build, dan deployment. Kombinasi ketiganya memungkinkan proses deployment yang konsisten, cepat, dan aman, sekaligus mendukung perpindahan versi aplikasi secara instan melalui mekanisme symlink.
Melalui eBook ini, pembaca akan mempelajari bagaimana:
- Mengonfigurasi Deployer untuk menerapkan Atomic Deployment pada aplikasi Laravel.
- Menjalankan aplikasi Laravel menggunakan FrankenPHP dengan konfigurasi production-ready.
- Menyusun workflow GitHub Actions untuk proses CI/CD yang terintegrasi dengan deployment.
- Melakukan rollback otomatis ke versi sebelumnya jika terjadi kegagalan saat deployment.
- Menyiapkan struktur server dan aplikasi yang mendukung Zero Downtime Deployment secara optimal.
Dengan bahasa yang mudah dipahami dan pendekatan yang praktis, eBook ini ditujukan bagi developer Laravel yang ingin membangun proses deployment yang lebih terstruktur dan siap digunakan di lingkungan production.
{ setTimeout(() => { showShimmer = false; }, 300); })"
:class="{'opacity-0': !loaded, 'opacity-100': loaded}"
loading="lazy"
>
{ setTimeout(() => { showShimmer = false; }, 300); })"
alt="Deployer"
loading="lazy">
{ setTimeout(() => { showShimmer = false; }, 300); })"
alt="FrankenPHP"
loading="lazy">
{ setTimeout(() => { showShimmer = false; }, 300); })"
alt="GitHub"
loading="lazy">