Panduan integrasi berkelanjutan untuk Laravel 6 di Google Cloud Run

Halo semuanya! Untuk mengantisipasi dimulainya kursus "Framework Laravel" dan "Backend-developer dalam PHP" , kami terus berbagi materi menarik tentang topik tersebut. Ayo pergi.




Selama beberapa tahun terakhir, popularitas Laravel telah meningkat secara dramatis . Komunitas Laravel bahkan berpendapat bahwa Laravel membuat proses bekerja dalam PHP lebih menyenangkan dibandingkan dengan rasa sakit yang sebelumnya. Laravel 6 memiliki beberapa fitur baru yang keren . Mendapatkan URL yang dapat ditingkatkan skalanya untuk aplikasi Anda membutuhkan waktu berjam-jam, jika tidak berhari-hari. Dan menciptakan sesuatu seperti Kubernetes adalah tugas yang menakutkan. Dalam kasus seperti itulah Google Cloud Run berada dalam cahaya terbaik, karena dengan itu Anda bisa mendapatkan URL HTTP yang berfungsi untuk semua aplikasi kontainer Anda dalam hitungan menit.

Google Cloud Run tidak memiliki server dan sepenuhnya dikelola oleh Google. Anda mendapatkan penskalaan super, pembayaran per detik, URL HTTPs, dan pemetaan domain Anda sendiri.

Jika Anda ingin menjalankan wadah stateless, Cloud run adalah cara termudah untuk melakukan ini. Pada artikel ini, saya akan menjelaskan secara rinci cara membuat aplikasi Laravel 6 Anda berjalan di Google cloud run dengan Continous Integration (CI).

Persyaratan yang Diperlukan


  • Anda terbiasa dengan PHP / Komposer dan tahu tentang Laravel (saya pikir kalau tidak Anda tidak akan berada di sini);
  • Anda tahu cara menggunakan Git dari konsol;
  • Kode CI / CD Anda dihosting di GitHub dan Anda tahu cara menggunakannya;
  • Anda terbiasa dengan Docker, bahkan mungkin dengan perakitan multi-tahap;
  • Anda memiliki akun Google Cloud yang berfungsi (mereka memberi Anda pinjaman tanpa bunga $ 300 selama 1 tahun, tidak ada alasan untuk tidak memulainya).

Mengapa Cloud Run Sangat Bagus Untuk Pemula


Karena dua alasan, yang akan saya jelaskan di bawah:

  • Anda akan belajar tentang praktik terbaik dan perangkat lunak seperti Docker dan CI / CD.
  • Kerangka utama akan berfungsi setelah mengklik tombol, memilih dua hal dan lima menit menunggu, dan Anda bisa mendapatkan URL HTTP yang berfungsi. Seberapa mudah?

Langkah Penempatan


Berikut ini adalah panduan untuk mengatur dan menggunakan Laravel 6 di Cloud Run:

1. Klon Laravel atau proyek Laravel baru

Mulailah dengan mengkloning Laravel atau menggunakan komposer atau Laravel CLI, seperti yang ditunjukkan dalam panduan instalasi resmi.

Saya menggunakan komposer untuk mendapatkan Laravel versi terbaru, seperti yang ditunjukkan di bawah ini:

composer global require laravel/installer 

Saya menjalankan perintah berikut untuk mendapatkan Laravel versi terbaru:

 composer create-project --prefer-dist laravel/laravel laravel6-on-google-cloud-run 



2. Tes pertama secara lokal

Kemudian jalankan cd laravel6-on-google-cloud-run dan kemudian php artisan serve . Untuk melihat bahwa semuanya berfungsi, saya pergi ke alamat http: // localhost: 8000 di browser dan berhasil untuk saya. Saya menginstal PHP 7.2 secara lokal.



3. Buat repositori baru di GitHub

Buat repositori baru di GitHub seperti yang ditunjukkan di bawah ini:



4. Tambahkan repositori dan README

Sekarang setelah Anda membuat repositori, tambahkan ke salinan lokal Laravel dan tambahkan file README.
Untuk melakukan ini, jalankan perintah berikut di konsol:

 git init code . # I used VS code to change the readme git add readme.md git commit -m "Initial commit -- App Readme" git remote add origin git@github.com:geshan/laravel6-on-google-cloud-run.git git push -u origin master 

Setelah menjalankan perintah di repositori saya di GitHub, yang berikut ini muncul:



5. Tambahkan Laravel penuh, buka Tarik Permintaan

Sekarang mari kirim seluruh aplikasi sebagai permintaan tarik ke repositori GitHub dengan menjalankan perintah berikut:

Setelah itu, buka Permintaan Tarik di repositori, seperti ini . Mungkin Anda berpikir mengapa saya memerlukan permintaan tarik jika saya mengerjakan proyek sendiri?

Well, well, saya pikir Anda harus selalu mengikuti pendekatan sistematis, bahkan jika Anda bekerja sendiri.
Setelah itu, perlambat permintaan tarik Anda.

6. Uji pengaturan dengan tindakan GitHub

Bukan bagian yang menyenangkan. Setelah Anda melakukan permintaan tarik, GitHub akan tahu bahwa ini adalah proyek Laravel. Klik pada tab Tindakan di halaman repositori Anda dan Anda akan melihat sesuatu seperti yang ditunjukkan di bawah ini:



Klik Atur alur kerja ini di bawah Laravel , dan pada halaman berikutnya, klik tombol Mulai komit di sudut kanan atas. Setelah itu, tambahkan pesan komit seperti yang ditunjukkan di bawah ini dan klik Komit file baru .



Ini adalah bagaimana Anda mendapatkan instalasi CI Anda. Tes Laravel secara default sekarang akan berjalan pada setiap push git. Apakah ini sulit?
Terima kasih kepada Great Mind GitHub!
Tidak perlu lagi membuat file .myCIname.yml !

7. Tambahkan buruh pelabuhan dan jalankan komposisi buruh pelabuhan untuk menjalankan aplikasi secara lokal

Sekarang mari kita tambahkan buruh pelabuhan dan buatlah pembuat dok untuk menjalankan aplikasi secara lokal tanpa PHP atau artisan .

Bagian tutorial ini terinspirasi oleh Laravel Nicolas di artikel Google Cloud Run .

Jika Anda ingin tahu lebih banyak tentang Docker dan Laravel, lihat artikel ini .

Untuk memulai, jalankan perintah berikut untuk memperbarui cabang master, karena kami menambahkan file alur kerja baru menggunakan antarmuka GitHub:

 git checkout master git fetch git pull --rebase origin master # as we added the workflow file from github interface git checkout -b docker 

Tambahkan kunci ke file .env.example , salin dari file .env , seperti yang ditunjukkan di bawah ini:

 APP_NAME=Laravel APP_ENV=local APP_KEY=base64:DJkdj8L5Di3rUkUOwmBFCrr5dsIYU/s7s+W52ClI4AA= APP_DEBUG=true APP_URL=http://localhost 

Karena ini hanya demo, Anda dapat melakukannya, tetapi dalam aplikasi nyata, berhati-hatilah dengan rahasia. Untuk aplikasi yang siap produksi, nonaktifkan debug dan hal-hal lain yang berkaitan dengan pengembangan.

Tambahkan Dockerfile seperti itu ke root proyek:

 FROM composer:1.9.0 as build WORKDIR /app COPY . /app RUN composer global require hirak/prestissimo && composer install FROM php:7.3-apache-stretch RUN docker-php-ext-install pdo pdo_mysql EXPOSE 8080 COPY --from=build /app /var/www/ COPY docker/000-default.conf /etc/apache2/sites-available/000-default.conf COPY .env.example /var/www/.env RUN chmod 777 -R /var/www/storage/ && \ echo "Listen 8080" >> /etc/apache2/ports.conf && \ chown -R www-data:www-data /var/www/ && \ a2enmod rewrite 

Tambahkan file berikut ke docker/000-default.conf :

 <VirtualHost *:8080> ServerAdmin webmaster@localhost DocumentRoot /var/www/public/ <Directory /var/www/> AllowOverride All Require all granted </Directory> ErrorLog ${APACHE_LOG_DIR}/error.log CustomLog ${APACHE_LOG_DIR}/access.log combined </VirtualHost> 

Setelah itu tambahkan docker-compose.yml :

 version: '3' services: app: build: context: ./ volumes: - .:/var/www ports: - "8080:8080" environment: - APP_ENV=local 

Mari kita kurangi semuanya menjadi hal utama.

Jika Anda mencoba memahami semua yang ditulis di sini, itu bisa lengkap, jadi izinkan saya memberi tahu Anda tentang bagian utama:

  • Kami menggunakan gambar docker PHP Apache resmi untuk menjalankan Laravel, ia memiliki PHP versi 7.3.
  • Kami menggunakan multi-stage build untuk mendapatkan dependensi dengan Composer, dan kemudian menyalinnya ke gambar buruh pelabuhan utama, yang memiliki PHP 7.3 dan Apache.
  • Karena Google Cloud Run mengharuskan server web untuk mendengarkan pada port 8080, kami menggunakan 000-default.conf untuk mengonfigurasinya.
  • Untuk membuat docker-compose up lebih mudah dijalankan, masukkan hanya satu perintah docker-compose up.
  • Sekarang setelah Anda membaca hingga saat ini, jalankan docker-compose dari root dan semuanya akan berfungsi di http://localhost:8080 , dalam hal ini Anda akan memahami bahwa Laravel 6 berjalan secara lokal di Docker.

Di bawah ini Anda melihat output setelah menjalankan docker-compose up akhir:



Jika Anda memiliki Laravel yang bekerja dengan Docker, buka permintaan tarik baru (misalnya, satu ) dan tambahkan Docker ke proyek Anda.

Saya menjalankan perintah berikut di root proyek sebelum membuka Permintaan Tarik:

 git status 

Anda akan mendapatkan sesuatu seperti ini:

 On branch docker Untracked files: (use "git add <file>..." to include in what will be committed) Dockerfile docker-compose.yml docker/ nothing added to commit but untracked files present (use "git add" to track) 

Dan jalankan perintah berikut:

 git add . git commit -m "Add docker and docker compose" git push origin docker 

Sebagai bonus, mereka akan menjalankan tes Laravel default setelah push, seperti yang terlihat di bawah ini:



Hanya pemilik repositori yang memiliki akses ke tab Tindakan, jadi orang lain tidak perlu mengetahui hasil pembuatan uji Anda

8. Tambahkan penyebaran ke tombol Google Cloud .

Sekarang mari kita gunakan instalasi Laravel ini ke Google Cloud Run dengan cara sederhana. Pada tahap ini, diyakini bahwa Anda melakukan permintaan tarik dari cabang buruh pelabuhan.

Mari kita jalankan perintah berikut:

 git checkout master git fetch git pull --rebase origin master git checkout -b cloud-run-button 

Tambahkan berikut ini ke file readme.md Anda:

### Run on Google cloud run

[![Run on Google Cloud](https://storage.googleapis.com/cloudrun/button.svg)](https://console.cloud.google.com/cloudshell/editor?shellonly=true&cloudshell;_image=gcr.io/cloudrun/button&cloudshell;_git_repo=https://github.com/geshan/laravel6-on-google-cloud-run.git)


Ganti dengan hati-hati bagian terakhir dari URL HTTP repositori Anda, misalnya, jika repositori Anda berada di alamat yang akan diubah, lalu komit dan dorong .

Permintaan Tarik Anda akan terlihat seperti ini .

9. Menyebarkan di Google Cloud Run

Setelah penggabungan permintaan tarik Anda, buka halaman repositori dan klik tombol Run on Google Cloud .



Setelah itu, jika Anda masuk ke akun Google Anda dan Anda memiliki pengaturan cloud Google dengan satu proyek, klik tombol "Lanjutkan". Anda mungkin harus menunggu sebentar, setelah ini:

  1. Pilih proyek - Pilih proyek untuk menggunakan aplikasi ini
    Pilih satu daerah - Pilih satu daerah untuk menggunakan aplikasi ini, saya biasanya memilih kami-pusat-1
    Kemudian tunggu wadah untuk mengumpulkan dan memperluas, proses dalam kasus saya terlihat seperti ini:

Jika semuanya berjalan dengan baik, maka pada Google Cloud Shell Anda akan melihat URL HTTP yang dapat Anda klik untuk melihat bahwa aplikasi Laravel Anda berjalan, seperti yang ditunjukkan di bawah ini:



Apa yang terjadi di atas adalah ini:

  1. Setelah memilih suatu wilayah, skrip membangun gambar wadah buruh pelabuhan dari Dockerfile di repositori;
  2. Dia kemudian mendorong gambar yang dikumpulkan ke dalam Google Container Registry;
  3. Setelah itu, menggunakan CLI gcloud, ia menyebarkan gambar yang telah dirakit ke Cloud Run, yang mengembalikan URL.

10. Hore! Aplikasi Anda berfungsi!

Setelah Anda mendapatkan URL, Anda akan melihat aplikasi Anda berjalan di Google Cloud Run, seperti yang ditunjukkan di bawah ini:



Jika Anda ingin menggunakan versi yang berbeda, Anda dapat mengubah permintaan tarikan Anda menjadi master dan mengklik tombol lagi untuk penyebaran.

Lebih lanjut tentang Google Cloud Run


Harga untuk Google Cloud Run sangat murah hati. Anda dapat menjalankan aplikasi apa pun dalam sebuah wadah atau aplikasi web di Google Cloud Run.

Saya menjalankan proyek rumah yang menerima 1 permintaan per menit, dan saya tidak perlu membayar apa pun.

Di bawah tenda, ia menggunakan Knative dan Kubernetes. Itu juga dapat dijalankan di kluster Kubernetes Anda, tetapi siapa yang ingin mengelola kluster K8s jika Anda bisa mendorong dan mempelajari aplikasi serverless yang dikelola sepenuhnya yang dapat diskalakan

TLDR


Untuk meluncurkan Laravel 6 di Google Cloud Run dengan cepat, ikuti langkah-langkah ini:






Kesimpulan


Semoga menjalankan aplikasi Laravel di Google cloud run ternyata menjadi tugas yang mudah bagi Anda. Anda bahkan dapat menjalankan tes dengan tindakan Github. Saya harap artikel ini bermanfaat bagi Anda.

Untuk mengambil pendekatan CI / CD, Anda dapat membaca artikel ini, yang membahas tentang penggunaan build di cloud. Karena wadah yang sama berfungsi secara lokal dan pada produksi (Google Cloud Run), Anda tidak perlu mempelajari kerangka kerja baru untuk beralih ke arsitektur tanpa server.

Aplikasi web apa pun dalam wadah dapat berjalan di Google Cloud Run, jadi saya menganggapnya sebagai layanan hebat!


Itu saja, dan kami mengingatkan Anda bahwa pada 21 dan 22 Januari setiap orang dapat mengunjungi intensif online gratis , dalam kerangka yang mana kami akan membuat bot Telegram untuk memesan kopi di tempat usaha dan membayar online. Anda dapat mendaftar untuk hari kedua intensif di sini .

Source: https://habr.com/ru/post/id484738/


All Articles