Hướng dẫn auto deploy webapp

Hướng dẫn auto deploy webapp

Do tính năng của GAE là auto scale nên nếu chúng ta có một web app đang chạy ổn ở local thì chúng ta sẽ deploy nó nên GAE mà không cần quan tâm tới việc mở rộng tài nguyên, hoặc thu hẹp tài nguyên để tối ưu hoá chi phí vận hành.

Trong bài viết này mình sẽ deploy một ứng dụng PHP, MySQL (WordPress) đã hoàn thành trên môi trường local, lên GAE. Hình dưới là giao diện front-end và back-end chạy trên local.

Hướng dẫn auto deploy webapp
Front-end
Hướng dẫn auto deploy webapp
Back-end

Trước tiên chúng ta cần phải chuyển data từ local lên Google Cloud SQL. Các bạn hãy tham khảo bài viết ở đây để thao tác với data trên Google Cloud SQL giống như trên local. Kết quả là chúng ta sẽ có một database trên Google Cloud SQL.

Hướng dẫn auto deploy webapp
wp3 là database đã được di chuyển từ local lên Google Cloud SQL

Để deploy source code lên GAE, chúng ta sẽ phải thêm file app.yaml cấu hình để khai báo cho GAE biết và phải sửa file wp-config.php đề config tới Cloud SQL. Cấu trúc thư mục như hình dưới.

Hướng dẫn auto deploy webapp
file app.yaml vừa thêm vào

Nội dung file app.yaml :

runtime: php55 api_version: 1 #threadsafe: true handlers: - url: /(.*.(htm|html|css|js)) static_files: 1 upload: .*.(htm|html|css|js)$ application_readable: true - url: /wp-content/(.*.(ico|jpg|jpeg|png|gif|woff|ttf|otf|eot|svg)) static_files: wp-content/1 upload: wp-content/.*.(ico|jpg|jpeg|png|gif|woff|ttf|otf|eot|svg)$ application_readable: true - url: /(.*.(ico|jpg|jpeg|png|gif|woff|ttf|otf|eot|svg)) static_files: 1 upload: .*.(ico|jpg|jpeg|png|gif|woff|ttf|otf|eot|svg)$ application_readable: true - url: /wp-includes/images/media/(.*.(ico|jpg|jpeg|png|gif|woff|ttf|otf|eot|svg)) static_files: wp-includes/images/media/1 upload: wp-includes/images/media/.*.(ico|jpg|jpeg|png|gif|woff|ttf|otf|eot|svg)$ application_readable: true - url: /wp-admin/(.+) script: wp-admin/1 secure: always - url: /wp-admin/ script: wp-admin/index.php secure: always - url: /wp-login.php script: wp-login.php secure: always - url: /wp-cron.php script: wp-cron.php login: admin - url: /xmlrpc.php script: xmlrpc.php - url: /wp-(.+).php script: wp-1.php - url: /(.+)?/? script: index.php skip_files: - ^(.*/)?.zip$ - ^(.*/)?.bat$ - ^(.*/)?.sh$ - ^(.*/)?.md$ - ^vendor

File wp-config.php cũng phải sửa lại như bên dưới. Trong đó dòng khai báo define(‘DB_HOST’, ‘:/cloudsql/blog-mysql-234606:asia-east1:db1’); có ý nghĩa như sau: blog-mysql-234606 chính là project id trên GCP, asia-east1 là zone của instance của Cloud SQL, db1 là tên instance của Cloud SQL. Với cấu hình dưới thì ứng dụng của chúng ta sẽ vừa chạy được trên local host vừa chạy được trên GAE.

// $onGae is true on production. if (isset($_SERVER['SERVER_SOFTWARE']) && strpos($_SERVER['SERVER_SOFTWARE'], 'Google App Engine') !== false) { $onGae = true; } else { $onGae = false; } /** The name of the database for WordPress */ if ($onGae) { /** The name of the Cloud SQL database for WordPress */ define('DB_NAME', 'wp3'); /** Production login info */ define('DB_HOST', ':/cloudsql/blog-mysql-234606:asia-east1:db1'); } else { define('DB_NAME', 'wordpress'); /** MySQL hostname */ define('DB_HOST', 'localhost'); }

Tiếp theo chúng ta sẽ chạy lệnh deploy khi đứng tại vị trị folder chứa app.yaml gcloud app deploy app.yaml . Kết quả là chúng ta đã deploy xong một web app có URL như bên dưới.

Hướng dẫn auto deploy webapp
gcloud app deploy app.yaml

Copy URL sau khi chạy lệnh gcloud app deploy app.yaml vào trình duyệt để kiểm chứng kết quả việc deploy.

Hướng dẫn auto deploy webapp

Vậy là chúng ta đã deploy một ứng dụng PHP, MySQL lên GAE từ local, có chỗ nào chưa hiểu, cần support, các bạn hãy liên hệ với các chuyên gia – Cloud Ace Vietnam – để được hỗ trợ tốt hơn.

Post Views: 622

Previous Post

Một số hướng dẫn và lưu ý khi thi chứng chỉ Google Cloud Certified – Professional Data Engineer

Next Post

Vue.js là gì? Nuxt.js là gì? Tạo và Run thử chúng như thế nào?

Hướng dẫn auto deploy webapp