Terdapat 2 platform paling popular hari ini untuk mengehoskan tapak web statik: Netlify dan Google App Engine (GAE) Netlify mendapat banyak populariti baru-baru ini kerana ia menyediakan pengalaman bersepadu dengan membina dan menggunakan tapak web statik âÃÂàsemuanya dalam platform yang sama GAE adalah lebih fleksibel dari segi ia menyokong tapak web bukan statik juga tetapi ia pastinya tidak mempunyai tahap integrasi yang disediakan Netlify. Jadi mengapa saya masih menggunakan GAE dalam banyak kes? Jawapannya mudah âÃÂàkerap GAE menyediakan pilihan harga yang lebih baik. Pada masa yang sama ia membolehkan untuk memiliki semua ciri Netlify dan banyak lagi menggunakan beberapa alat mudah (GitHub Actions dan Reliza Hub) yang akan saya terangkan dalam artikel ini penentuan harga Izinkan saya terlebih dahulu membincangkan senario harga apabila kombo Tindakan GAE + GitHub lebih masuk akal. Perkara utama ialah membina minit. Peringkat percuma Netlify hanya memberikan 300 minit binaan sebulan, yang tidak banyak untuk mana-mana akaun. Jika anda menggunakan sesuatu seperti apl node.js yang dibuat statik dan binaan anda mengambil masa 2-3 minit secara purata, anda hanya mendapat kira-kira 100+ binaan sebulan di Netlify, yang mungkin tidak mencukupi dengan mudah. Lebih-lebih lagi jika anda mempunyai lebih daripada satu laman web Jika anda memerlukan lebih banyak minit binaan pada Netlify âÃÂàsama ada bayar $7 setiap 500 minit tambahan, atau beralih ke peringkat seterusnya yang merangkumi 1000 minit, tetapi berharga $45/bulan. Sebaliknya, pada Tindakan GitHub anda mendapat 2000 minit binaan percuma untuk repositori peribadi dan minit binaan tanpa had untuk repositori awam. Katakan anda sedang membina tapak web dokumentasi dan memutuskan untuk menjadikannya umum di GitHub âÃÂàanda mendapat minit binaan tanpa had pada GitHub Actions âÃÂàdan itu menjadikan perbezaan yang besar Pertimbangan seterusnya ialah kos trafik. Netlify menyediakan jalan keluar lebar jalur 100GB setiap bulan yang disertakan pada peringkat percumanya, yang murah hati. Google menawarkan 1GB keluar setiap hari secara percuma, yang menjadikannya sekitar 30GB sebulan. Jadi jika jalan keluar anda adalah antara 30GB dan 100GB, anda mungkin mendapat tawaran yang lebih baik di Netlify. Walau bagaimanapun, sebaik sahaja anda melepasi 100GB, Netlify mengenakan anda $20 untuk 100GB seterusnya pada bulan itu serta-merta. Google mempunyai dasar penetapan harga bagi setiap keluar GB yang berharga $0.12. Bermaksud anda membayar $12/100GB âÃÂàlwn $20/100GB di Netlify Jadi bergantung pada trafik, anda mungkin lebih baik sama ada di Netlify atau di GAE daripada bakal keluar. Tetapi dalam banyak kes GAE akan memberikan nilai yang lebih baik di sini juga Akhir kata mengenai penetapan harga âÃÂàjika anda menggunakan sesuatu seperti GitHub Actions atau CircleCI untuk binaan anda, anda masih boleh menggunakan Netlify âÃÂàyang menjadikan GitHub Actions sistem yang lebih fleksibel Mengkonfigurasi Projek Enjin Apl Google Kita mulakan dengan pergi ke httpsconsole.cloud.google.com/appengine dan buat projek baharu. Jika anda sudah mempunyai satu âÃÂàmula-mula klik nama projek anda di bahagian atas dan kemudian klik pada **PROJEK BARU** Masukkan nama projek, perhatikan di sini ID projek yang anda perolehi (anda akan memerlukannya kemudian) âÃÂàdalam kes saya ia adalah *âÃÂÃÂevie-landing-tutorialâÃÂÃÂ* âÃÂàdan klik **CREATE Kemudian tukar ke projek ini daripada pemilih projek di bahagian atas halaman Klik pada **Buat Aplikasi** dan pilih kawasan yang anda inginkan. Kemudian untuk aplikasi statik pilih Python dan persekitaran Standard (peringkat percuma hanya digunakan untuk persekitaran Standard). Pada ketika ini permohonan anda sudah bersedia untuk langkah seterusnya Untuk menghalakan nama domain anda ke aplikasi ini, navigasi ke httpsconsole.cloud.google.com/appengine/settings/domains dan klik **Tambah domain tersuai Ikut arahan dan arahkan DNS dari domain anda ke rekod yang disediakan Google. Apabila ini selesai, Google akan secara automatik menghalakan domain anda ke aplikasi ini dan juga mengurus sijil SSL Akhir sekali, kami perlu menyediakan akaun perkhidmatan yang akan bertanggungjawab untuk penempatan automatik. Navigasi ke httpsconsole.cloud.google.com/iam-admin/serviceaccounts?project=your_project_id (ganti *your_project_id *dalam pautan ini dengan id projek sebenar anda, dalam kes saya ini akan menjadi *evie-landing-tutorial Anda akan sampai ke halaman menu berikut: Klik pada ikon 3 titik dalam lajur Tindakan berhampiran akaun perkhidmatan lalai App Engine. Dan pilih Pilihan **Buat kunci** daripada menu lungsur Pilih JSON sebagai jenis Kunci anda dan klik **CREATE Ini akan memuat turun fail .json ke mesin anda. Perkara terakhir yang perlu kita lakukan di sini ialah mengekod fail ini dalam format base64 âÃÂàkita akan memerlukannya kemudian apabila beralih ke Tindakan GitHub Ini boleh dilakukan dengan menggunakan baris arahan seperti berikut: base64 your_json_file.json >key.base64 Kemudian fail key.base64 akan mempunyai kunci yang dikodkan base64 **Nota keselamatan di sini fail utama json dan base64 ini membenarkan untuk mengawal projek GAE anda, oleh itu selepas anda menambahkannya pada Tindakan GitHub (seperti yang akan saya tunjukkan di bawah), adalah disyorkan untuk mencincang padam fail ini. Ini boleh dilakukan dari cli seperti berikut: carik nama_fail_kunci&& rm key_file_name Setelah kunci diperoleh, kami perlu mendayakan API Enjin Aplikasi Google âÃÂàuntuk berbuat demikian, lawati halaman httpsconsole.developers.google.com/apis/api/appengine .googleapis.com/overview dan klik **BOLEHKAN** Menyediakan Repositori GitHub dan Tindakan GitHub Akhirnya, tiba masanya untuk menyediakan Repositori GitHub kami. Tutorial ini merangkumi persediaan tema Evie oleh Undraw. (Ini ialah tema yang sedang saya gunakan untuk halaman pendaratan Reliza Hub!) Tema Evie asal dihoskan di sini, tetapi saya akan menggunakan garpu Reliza dalam repositori ini Seperti yang saya nyatakan dalam artikel lain, falsafah binaan saya hari ini adalah untuk melabuhkan segala-galanya dan menggunakan binaan buruh pelabuhan sebagai persekitaran binaan CI bersatu merentasi pelbagai platform. Oleh itu, saya menambah Dockerfile, konfigurasi nginx dan juga mengemas kini versi npm berbanding dengan tema Evie asal untuk mempunyai binaan dockerized yang berfungsi Sekarang jika kita lakukan arahan membina docker pada kandungan repositori Evie Reliza, ia akan membina imej berasaskan nginx yang menyajikan tema Evie tanpa dokumentasi pada port 80 Kini tiba masanya untuk menyediakan skrip Tindakan GitHub. Kami akan menggunakan actions-hub/gcloud@master action yang menjadikan keseluruhan proses mudah Kita mulakan dengan menetapkan 2 rahsia Tindakan GitHub yang diperlukan oleh tindakan tersebut. Navigasi ke Tetapan ->Rahsia di dalam repositori GitHub anda dan klik **Rahsia baharu** untuk menetapkan 2 rahsia berikut: - GCLOUD_PROJECT_ID âÃÂàtetapkannya kepada id projek yang dinyatakan semasa anda membuat projek anda: evie-landing-tutorial dalam kes saya - GOOGLE_APPLICATION_CREDENTIALS âÃÂàtetapkannya kepada kandungan fail kunci json berkod base64 yang diperoleh untuk akaun perkhidmatan google di atas Sekarang dalam repositori saya mencipta direktori .github dan kemudian direktori aliran kerja di dalamnya. Dan di dalamnya saya mencipta gae_build.yml. Juga kita perlu menambah fail app.yaml yang mengandungi konfigurasi GAE dan akan menjadi sangat mudah untuk kes penggunaan aplikasi statik yang saya ada Selepas anda dan menolak kod ini, ia akan mencetuskan binaan GitHub Actions, yang akan membuat penggunaan pada aplikasi GAE anda âÃÂàdan perkhidmatan anda akan disiarkan secara langsung! Setiap tolakan berikutnya ke GitHub akan secara automatik mencetuskan binaan Tindakan GitHub baharu dan mengemas kini aplikasi secara automatik pada GAE Kini anda mempunyai saluran paip CICD asas untuk tapak web statik anda sedia! Anda boleh berhenti di sini atau anda boleh terus membaca cara anda boleh menambah kelulusan dan fungsi keterlihatan penggunaan menggunakan Reliza Hub BONUS: Menambah Kelulusan dan Keterlihatan Menggunakan Reliza Hub Katakan, bahawa kita tidak mahu setiap binaan baru pergi ke pengeluaran secara automatik. Sebaliknya, kami mahu mereka digunakan terlebih dahulu di suatu tempat yang bukan pengeluaran, dan kemudian jika kami menyukainya âÃÂàanda atau pelulus anda (katakan, Pengurus Pemasaran anda) perlu mengklik butang dan mempromosikan kepada pengeluaran Berikut ialah cara ini boleh dicapai dengan Reliza Hub di atas konfigurasi yang saya nyatakan setakat ini 1 âÃÂàMetadata Keluaran Penstriman ke Reliza Hub Mula-mula, navigasi ke httpsapp.relizahub.com, sahkan dengan GitHub dan buat organisasi anda, dalam kes saya, saya akan menggunakan *âÃÂÃÂTutorial Pendaratan EvieâÃÂÃÂ* sebagai nama organisasi. Klik pada item menu **VCS** dan kemudian pada ikon bulatan tambah untuk menambah Repositori VCS Tampalkan URI repositori GitHub anda dalam input dan Reliza Hub akan menghuraikannya secara automatik klik **Serahkan dan ini akan mencipta repositori anda. Teruskan ke menu Projek dan klik pada ikon bulatan tambah untuk mencipta projek. Masukkan nama projek anda (saya akan menggunakan *Skema versi Evie Landing Set kepada Komponen Tunggal (Major) âÃÂàitu kerana GAE menggunakan versi sendiri yang terdiri daripada satu komponen âà Âàyang akan kami gunakan di dalam Reliza Hub sebagaimana adanya. Pilih repositori VCS untuk menjadi repositori yang baru anda buat dalam langkah sebelumnya Dan klik **Serahkan Ini akan mencipta projek baharu. Kemudian klik pada nama projek yang baru dibuat ini dan klik pada ikon kunci untuk menjana kunci api projek Apabila anda melihat ID API dan Kunci API dijana untuk projek anda, cipta 2 rahsia baharu dalam Tindakan GitHub âÃÂàRELIZA_API_PROJECT_ID dan RELIZA_API_PROJECT_KEY dengan nilai yang sepadan Kini, tiba masanya untuk mengemas kini skrip gae_build.yml kami untuk menstrim butiran binaan ke Reliza dan juga bertukar kepada mod tanpa promosi. Ini bermakna bahawa pada setiap git push, penempatan akan dibuat pada GAE, tetapi Google tidak akan menukar trafik ke penempatan baharu ini sehingga beberapa langkah manual kemudian. Skrip yang dikemas kini termasuk pelaporan penjejakan masa binaan ke Reliza Hub dan juga akan mempunyai URI bagi setiap penggunaan tidak digalakkan pada GAE. Anda boleh mendapatkan perihalan pelbagai bendera yang kami gunakan dalam repositori GitHub Pelanggan Reliza Go Selepas Tindakan GitHub dijalankan pada push selesai, anda kemudian boleh menavigasi ke halaman keluaran anda dalam Reliza Hub dan melihat gambar berikut: Perhatikan bahawa mengklik pada Pautan **titik akhir ujian** akan membawa anda ke versi penggunaan sebenar pada GAE yang sepadan dengan entri kod sumber ini âÃÂàtetapi belum dinaikkan taraf untuk melayani trafik Anda juga boleh menambah integrasi kendur mengikut panduan di sini untuk menerima pemberitahuan setiap keluaran baharu di Reliza Hub 2 âÃÂàMenambah Kelulusan Pergi ke halaman Tetapan Reliza Hub dan di bahagian bawahnya konfigurasikan matriks kelulusan anda untuk persekitaran PENGELUARAN. Dalam kes saya, saya hanya memerlukan kelulusan daripada PEMASARAN untuk keluaran untuk dinaikkan ke pengeluaran. Seperti berikut: Klik pada **Simpan Matriks** Seterusnya saya memasang apl Reliza GitHub âÃÂàhttpsgithub.com/apps/reliza-hub âÃÂàdan ikuti tutorial IâàÃÂtelah menulis lebih awal untuk mendaftarkannya untuk projek itu Akhir sekali, Ia aliran kerja Tindakan GitHub baharu yang akan dicetuskan atas kelulusan daripada Reliza Hub âÃÂàanda boleh melihatnya di sini. Pada asasnya, aliran kerja ini menanyakan Reliza Hub untuk versi terbaru yang diluluskan pengeluaran dan kemudian meminta Google App Engine menukar trafik kepada versi tersebut Satu-satunya perkara yang memerlukan konfigurasi dalam skrip ini ialah pembolehubah persekitaran RELIZA_PROJECT_ID âÃÂàyang perlu ditetapkan untuk menayangkan UUID yang diperoleh pada halaman projek dalam Reliza Hub: Kini, keluaran projek terbaharu dengan kelulusan daripada PEMASARAN akan dinaikkan pangkat secara automatik di sisi Google App EngineUntuk butiran, bagaimana anda boleh menambah pelulus pada organisasi, tonton video tutorial saya tentang kelulusan 3 âÃÂàTambah Keterlihatan untuk Perkara yang Digunakan Apabila Akhir sekali kami ingin menambah keterlihatan pada Reliza Hub tentang keluaran yang sebenarnya digunakan dan bila Untuk berbuat demikian, mula-mula pergi ke Instans dalam Reliza Hub dan klik ikon bulatan tambah untuk membuat tika baharu Saya kemudian memasukkan URI contoh saya dan memilih persekitaran untuk menjadi PRODUCTION âÃÂàkerana saya hanya mempunyai persekitaran pengeluaran di tapak web statik ini. Mengklik **Serah** membuat contoh baharu saya Seterusnya saya memilih contoh yang baru dibuat ini dan klik pada ikon kunci untuk menjana kunci apinya Apabila ID API dan Kunci API dijana, cipta 2 rahsia baharu dalam Tindakan GitHub âÃÂàRELIZA_API_INSTANCE_ID dan RELIZA_API_INSTANCE_KEY dengan nilai yang sepadan Dengan ini saya mula-mula mengemas kini skrip penggunaan atas kelulusan saya untuk menambah bahagian untuk menyemak penggunaan pada GAE dan menstrimkannya ke Reliza Hub. Dan saya juga menambah aliran kerja cron GitHub Actions untuk mengesahkan keadaan aplikasi GAE saya Selepas mana-mana aliran kerja ini berjalan, kami akan mendapat gambaran penggunaan aplikasi GAE kami dalam Reliza Hub dalam paparan contoh kami seperti berikut: Ringkasan Ini dia, kini kami mempunyai saluran paip CI CD butang tekan penuh dengan Tindakan GitHub yang digunakan untuk GAE dan kelulusan serta keterlihatan diurus oleh Reliza Hub. Kami juga boleh mempunyai pemberitahuan Slack dan pengurus Pemasaran kami melihat perubahan dan menekan butang untuk mempromosikannya kepada pengeluaran tanpa meminta kakitangan teknikal. Betapa kerennya itu? Jika anda ingin bercakap dengan saya dan membincangkan hal ini atau aliran kerja lain dengan lebih lanjut âÃÂàtempah panggilan demo Reliza Hub 30 minit tanpa rentetan dengan saya âààdan saya akan cuba sedaya upaya untuk membantu.