Menyebarkan ke Live dan Staging dengan Deploybot
Diterbitkan: 2022-06-30Jika Anda sudah lama berkecimpung dalam pengembangan web, Anda mungkin telah mengacaukan transfer file saat mencoba memperbarui situs. Dalam skenario kasus terbaik, Anda menambahkan banyak file yang mudah diidentifikasi ke direktori dan Anda menghapusnya untuk memperbaiki kesalahan. Ya itu menghabiskan waktu Anda dan itu menjengkelkan, tetapi tidak ada salahnya dilakukan.
Dalam skenario terburuk, Anda mentransfer banyak file tema dengan tidak benar. Kemudian Anda harus mencari tahu mana yang ditimpa, mana yang bukan milik sama sekali, dan bagaimana Anda akan memulihkan status kerja tema yang tepat.
Hari ini kita akan mengatasi pemecahan masalah ini menggunakan Git dan Deploybot untuk mengotomatiskan proses penerapan Anda.
Apa itu Penerapan Otomatis?
Penyebaran otomatis dasar memiliki empat bagian seperti yang ditunjukkan pada diagram ini.

Sebagian besar pengembang memulai hanya dengan kode dan server mereka. Mereka membuat perubahan pada copy pekerjaan situs mereka, dan kemudian mendorong perubahan tersebut langsung ke server melalui FTP. Alat seperti Coda atau Dreamweaver memiliki integrasi FTP langsung sehingga Anda dapat melakukan ini dari dalam lingkungan pengkodean Anda.
Langkah selanjutnya yang dilakukan banyak pengembang adalah menambahkan situs pementasan sehingga mereka tidak memodifikasi server langsung secara langsung. Anda dapat melakukan ini dengan sesuatu seperti VVV atau MAMP. Seringkali ini juga berarti Anda menggunakan sistem kontrol versi seperti Git untuk mengelola perubahan yang Anda buat pada situs kerja lokal Anda.
Saat Anda menambahkan situs pementasan, Anda juga menambah kerumitan. Bagaimana Anda mendapatkan perubahan kode Anda dari situs kerja lokal Anda ke situs pementasan di mana klien Anda dapat melihat perubahan? Ya, seperti yang sudah saya katakan, Anda dapat menggunakan klien FTP dasar seperti FileZilla, Transmit atau Forklift untuk memindahkan file saat Anda membuat perubahan, tetapi ini rawan kesalahan dan di sinilah mengotomatisasi proses penerapan Anda akan menghemat banyak waktu.
Alih-alih Anda mengambil file yang Anda ubah dan mendorongnya ke server staging, Anda menggunakan sistem lain untuk secara otomatis mendeteksi perubahan dalam repositori Git Anda dan hanya mendorong perubahan tersebut ke situs staging yang dapat digunakan klien Anda untuk memeriksa pekerjaan.
Itu masih meninggalkan situs langsung Anda sebagai penyebaran manual, yang jauh lebih menakutkan karena itu bisa berarti kehilangan uang nyata jika Anda menghapus situs kerja langsung. Sebagai gantinya, mari kita asumsikan bahwa Anda akan menyiapkan sistem penerapan Anda untuk diterapkan secara otomatis ke staging, dan kemudian sistem Anda akan diterapkan dengan satu klik ke lingkungan langsung saat Anda siap untuk pergi.
Jadi sekarang Anda memiliki sistem yang terlihat seperti ini.

Mari selami sehingga saya dapat menunjukkan kepada Anda bagaimana saya mengatur proses penerapan ini untuk setiap klien yang bekerja dengan saya. Ini adalah langkah-langkah yang saya ambil segera setelah saya memulai proyek baru. Saya selalu memastikan bahwa proses penerapan saya sudah diatur dan berfungsi sebelum saya mulai melakukan pekerjaan lain pada proyek klien.
Bagaimana Menyusun Repositori Git Anda
Pilihan pertama yang Anda buat adalah, di direktori mana Anda akan mengatur penerapan otomatis Anda? Kecuali jika klien saya secara khusus meminta kontrol sumber penuh untuk instalasi WordPress mereka, saya menggunakan direktori konten-wp untuk mengatur sistem penerapan otomatis saya. Itu dimulai di terminal dengan mengeluarkan perintah ini yang menginisialisasi repositori git.
git init
Sekarang saatnya untuk mengabaikan file yang tidak ingin Anda gunakan sepanjang waktu. Ini adalah file seperti file cadangan, gambar, dan file proyek khusus yang ditambahkan oleh banyak editor kode ke direktori. Anda dapat melihat file .gitignore saya yang biasa di bawah ini.
config/app_config.yml
config/database.yml
config/*.sphinx.conf
config/s3_credentials.yml
*~
*.cache
*.catatan
*.pid
tmp/**/*
.DS_Store
db/cstore/**
db/sphinx/**
dok/api
dokumen/aplikasi
doc/plugin
doc/*.dot
cakupan/*
db/*.sqlite3
*.tmproj
*.sw?
*.esproj
_catatan*
dwsync.xml
podcast.xml
*.kpf
*upload/*
*.swp
*.ide
*.proyek-agung
*.sublime-workspace
*/node_modules/*
tag
*.bak
cache/*
kelolawp/*
mu-plugin/*
dp.php
updraft/*
bahasa/*
db.php
plugins/wp-rocket/cache.json
Jangan ragu untuk menambahkan atau menghapus dari ini sesuai kebutuhan. Hampir setiap proyek yang saya kerjakan memerlukan semacam entri khusus untuk mengabaikan beberapa file yang khusus untuk situs kerja lokal saya yang pementasan dan situs langsungnya akan memiliki file khusus mereka sendiri yang tidak ingin saya timpa.
Dari sini saatnya untuk menyiapkan cabang yang Anda perlukan untuk menjalankan sistem penerapan Anda. Saya menggunakan dua cabang utama. Pertama adalah cabang master yang sesuai dengan situs produksi langsung saya. Kedua, adalah cabang yang saya beri label staging dan sesuai dengan situs staging yang saya ingin klien saya gunakan sebagai cara untuk memeriksa perubahan yang kami buat.
Saat Anda menginisialisasi repositori Git Anda, Anda sudah mendapatkan cabang master Anda, jadi gunakan perintah ini untuk menambahkan cabang staging dan periksa.
git checkout -b pementasan
Perintah ini membuat dan memeriksa cabang baru. Jika Anda baru mengenal git, Anda dapat menemukan informasi lebih lanjut tentang perintah yang tersedia di dokumentasi Git.
Sekarang Anda harus mendorong proyek Anda ke dalam sistem kontrol sumber Anda. Github dan Bitbucket adalah dua pilihan populer yang keduanya bekerja dengan sistem penerapan otomatis yang akan kita gunakan yang disebut Deploybot. Saat Anda membuat repositori baru dengan salah satu situs, mereka akan memberi Anda petunjuk lebih lanjut untuk menambahkan repositori lokal Anda ke versi online Anda di Github atau Bitbucket.
- Dokumentasi penyiapan repositori Bitbucket
- Dokumentasi penyiapan repositori Github
Menyiapkan Deploybot
Ketika saya pertama kali masuk ke pekerjaan yang lebih kompleks sebagai pengembang, teman saya Duane terus merekomendasikan Deploybot kepada saya ketika saya mengeluh secara online tentang mengacaukan penerapan FTP manual. Butuh sejumlah rekomendasi sebelum saya akhirnya melakukan apa yang diperintahkan, tetapi sekarang saya telah menjadi pelanggan Deploybot yang bahagia selama bertahun-tahun.

Meskipun ada cara lain untuk menyebarkan situs Anda, banyak di antaranya melibatkan antarmuka dengan Git Webhooks atau beberapa file konfigurasi penerapan otomatis melalui editor kode Anda. Ada banyak kekuatan di alat lain tersebut, tetapi jika Anda baru memulai penerapan otomatis, maka memulai dengan sesuatu yang lurus ke depan seperti Deploybot adalah tempat untuk memulai.
Untuk memulai, daftar akun Deploybot dan hubungkan Github atau Bitbucket ke akun Anda. Saya akan menggunakan akun Bitbucket saya yang ada hari ini. Mulailah dengan menambahkan repositori baru ke akun Deploybot Anda.


Setelah Anda menemukan repositori yang ingin Anda siapkan untuk penerapan otomatis, klik tombol berlabel connect di bagian bawah halaman. Ini akan mengirim Anda kembali ke halaman repositori Anda saat Deploybot selesai menginisialisasi repositori Anda. Umumnya ini dilakukan dalam satu atau dua menit, jadi isi kopi Anda dan kembalilah untuk menyelesaikan pengaturan proses penerapan Anda.
Setelah repositori Anda diatur, klik untuk dibawa ke halaman utamanya. Karena kami belum menyiapkan informasi sFTP, kotak besar di dalamnya akan memberi tahu Anda untuk menyiapkan server. Klik pada tombol untuk membuat lingkungan dan server.

Mari kita mulai dengan penerapan ke lingkungan pementasan kita. Jadi beri label server Anda sebagai pementasan. Pilih penerapan otomatis dan pastikan Anda mengatur cabang ke staging.

Setelah selesai, klik tombol Simpan di bagian bawah halaman untuk pindah ke konfigurasi server Anda.
Pada halaman berikutnya, beri label sebagai server Staging lagi dan masukkan informasi sFTP Anda dari situs Anda. Jika Anda tidak yakin di mana menemukannya, baca panduan bermanfaat ini.

Dengan memasukkan informasi sFTP, Anda dapat menggulir ke bawah dan menyimpannya. Deploybot kemudian akan menguji koneksi Anda untuk memastikan bahwa informasi yang Anda berikan berfungsi. Sekarang saatnya untuk melakukan penerapan awal kami untuk situs untuk memastikan semuanya berfungsi. Saya sering menambahkan file test.txt ke penerapan sebagai cara mudah untuk memverifikasi bahwa penerapan berfungsi dengan benar.
Untuk memulai penerapan Anda ke riwayat lingkungan Anda dan klik terapkan.

Sekarang Anda akan melihat halaman dengan pesan komit git terakhir Anda di dalamnya sebagai catatan yang akan Anda lihat di dalam Deploybot di sebelah penerapan ini. Untuk perubahan besar saya akan mengubah ini, tetapi jika saya hanya mengubah CSS atau sesuatu yang kecil, pesan komit dapat tetap ada. Karena ini adalah staging, setiap komit ke cabang staging kami akan disebarkan secara otomatis, yang berarti pesan komit Anda yang akan muncul. Ini hanya komit awal yang perlu kita lakukan secara manual ke situs pementasan kita.

Sekarang verifikasi bahwa file Anda telah dipublikasikan ke situs pementasan dan kami dapat menyiapkan penerapan langsung.
Untuk penerapan langsung Anda, pastikan Anda tidak memilih penerapan otomatis dan pastikan Anda memilih cabang master sebagai sumber penerapan Anda. Kami ingin ini menjadi penerapan manual saat kami siap untuk mendorong perubahan ke situs langsung kami.
Untuk melakukan ini, Anda harus memeriksa cabang master Anda lalu menggabungkan perubahan Anda dari cabang staging ke master.
Anda dapat melakukannya dengan perintah ini.
git checkout master
pementasan git merge
git push master asal
Sekarang ketika Anda masuk ke akun Deploybot Anda, Anda akan dapat menerapkan perubahan Anda secara manual seperti yang kami lakukan dengan penerapan awal kami ke lingkungan staging kami. Untuk lingkungan langsung Anda, pastikan Anda mengubah pesan penerapan agar sesuai dengan perubahan yang didorong ke situs langsung Anda. Anda juga harus membuat cadangan situs Anda. Anda dapat melakukan ini dengan mengakses navigasi pencadangan di situs Anda dan kemudian membuat pencadangan manual.

Itu saja, Anda memiliki pengaturan sistem penerapan otomatis untuk lingkungan staging dan live.
Pertimbangan Penerapan Lainnya
Meskipun sistem ini merupakan langkah maju yang besar bagi sebagian besar pengembang, ini bukan tanpa masalah. Yang terbesar adalah jika Anda memiliki banyak perubahan, Anda masih menunggu FTP selesai mentransfer file yang telah berubah. Ini bisa berarti bahwa seseorang mengunjungi situs Anda dan tidak semua file yang dibutuhkan situs Anda untuk dijalankan ada.
Bagi banyak klien, ini tidak akan menjadi masalah, tetapi jika itu untuk situs Anda, maka Anda harus melihat menyiapkan sistem penerapan Atom. Jenis sistem penyebaran ini memindahkan semua file, memverifikasi bahwa mereka bekerja dengan benar dan kemudian mengubah pengaturan file di server Anda sehingga direktori baru sekarang adalah direktori yang menjalankan situs Anda.
Proses menautkan ke folder baru membutuhkan waktu yang sangat singkat sehingga hanya komputer yang menyadarinya. Itu juga berarti jika Anda menemukan masalah nanti, Anda dapat mengubah tautan sistem Anda kembali ke versi lama situs untuk mengembalikan ke versi yang berfungsi. Sekali lagi ini hanya membutuhkan waktu yang sangat singkat dan mengurangi waktu henti.
Apa pun yang Anda pilih, hentikan penggunaan klien FTP untuk menyebarkan file klien Anda hari ini. Biaya bulanan yang kecil dari Deploybot dipulihkan setiap kali Anda tidak melakukan kesalahan dalam menerapkan file Anda.