การ Deploy บน Azure ทำอย่างไร Leave a comment

การ Deploy บน Azure ทำอย่างไร ยากหรือง่ายมาทำความเข้าใจในบทความนี้ไปด้วยกัน

มาเริ่มจาการทำความรู้จักก่อนว่า Azure และการ Deploy app คืออะไร

Azure คือ ระบบคลาวด์แพลตฟอร์อม (Cloud Platform) จาก Microsoft ที่เปิดให้เช่าระบบปฏิบัติการ ประสิทธิภาพสูง โดยสามารถสร้าง จัดการ และปรับใช้งานได้อย่างอิสระ รองรับการใช้งานที่หลากหลายรูปแบบ ทำให้สรรค์สร้างระบบขึ้นมาได้ตามที่ต้องการ เมื่อเสร็จขั้นตอนการสร้างจากนั้นจะนำไปสู่ขั้นตอนของการนำไปใช้งานจริง หรือ ที่ทุกคนเข้าใจกันว่า คือ การ Deploy

การ Deploy บน Azure ทำได้อย่างไรล่ะ

ในบทความนี้ มีเกร็ดความรู้ของการ Deploy บน Azure มานำเสนอ 6 รูปแบบด้วยกัน มีรายละเอียดดังต่อไปนี้

  1. การ Deploy โดยใช้ Publish profile

สิ่งที่ต้องมีก่อนการเริ่มต้น Deploy app โดยวิธีนี้ คือ ต้องติดตั้ง Visual Studio 2019, ASP.NET และ Web development workload

ที่มา Publish to Azure by importing publish settings – Visual Studio (Windows) | Microsoft Docs

สามารถทำได้ เมื่อมี Web application บน Azure อยู่แล้ว จากนั้น กดเลือก Get publish profile       จะได้ไฟล์ Text ออกมา เมื่อเปิดไฟล์จะมี Username Password และ โหมด Web Deployment และ FTP Deployment หาก Develop โดย Visual Studio สามารถนำไปเปิดใช้งานบน Visual Studio หากเราเขียนรูปแบบ .Net Core สามารถคลิกขวาตรง API แล้วและเลือก Publish จะสามารถ Import profile ขึ้นมาใช้งานได้

เมื่อเลือกไฟล์เสร็จ Visual Studio จะสามารถ Automatic export ออกมาเป็นหน้าเว็บได้เลย ซึ่งวิธีนี่เหมาะสมกับการใช้งานในขั้นตอน ของ Develop เนื่องจากเราสามารถตรวจสอบหน้าเว็บได้ตลอด

  1. การ Deploy โดย Azure Extensions

วิธีนี้สามารถใช้ได้ทั้ง  VS Code และ Visual Studio แต่เราจะมาเริ่มโดยการใช้ VS Code กันก่อน โดยวิธีนี้สามารถทำได้ 2 รูปแบบ เริ่มจากการดาวน์โหลด Azure App Service ใน Extensions ของ VS Code จากนั้นทำการ Installed ไม่ว่าเราจะเขียนด้วย Node.js vue.js react หรือ Angular JS สามารถนำมาใช้งานได้ทั้งหมด

หากเราใช้ Node.js มาใช้ในวิธีนี้ สามารถนำมาทำ NPM ไปสู่ขั้นตอน Run build และ Distribute ตามลำดับ จะได้ Folder ออกมาให้เรา คลิกขวา และเลือก Deploy to Azure จากนั้น Azure APP Service จะทำการให้ login เมื่อ log in เสร็จจะมีตัวเลือกให้ Deploy หากต้องการ Deploy เราสามารถเปิด Web application ขึ้นมาได้เลย หรืออีกวิธีนึงเราสามารถเลือก Deploy จาก Web application ได้เลย เพียงแค่คลิกขวา

  1. การ Deploy โดย FTP และ FTPS

ย้อนไปตรงขั้นตอนการ Deploy app โดยใช้ Publish profile เมื่อเราเลือก Get publish profile จะได้ไฟล์ Text ออกมา ในไฟล์จะมี Username Password ของ FTP deployment สามารถ Copy แล้วไป Paste ใน FTP ได้ทุกรูปแบบ เช่น FilleZilla เป็นต้น จากนั้น Copy files และ Directory ไปไว้ที่ the /site/wwwroot Directory ใน Azure หรือ the /site/wwwroot/App_Data/Jobs/ Directory สำหรับ WebJobs

หากไม่ต้องการ Copy FTP จาก Publish profile สามารถทำได้อีกวิธี คือการเข้าไป Detail ที่ Configuration ใน Azure ได้ และสามารถเลือก FTPS only เพื่อยกระดับความปลอดภัยได้อีกด้วย

ที่มา Deploy content using FTP/S – Azure App Service | Microsoft Docs

หากใครมีปัญหาว่า เมื่อ Deploy เสร็จแล้ว ไม่ทราบว่า Folder ที่อัพโหลดไปอยู่ที่ไหน จำนวนครบตามที่ต้องการหรือไม่ สามารถเข้าไปตรวจสอบ โดยเลือก Control ที่มีชื่อ Advanced tool เมื่อทำการเลือกแล้ว จะนำไปสู่หน้า Kudu สามารถไป Browse cmd ได้ จาก Debug Console ทำให้ตรวจสอบได้ว่ามี Folder อะไรบ้างจะแสดงรายละเอียดทั้งหมด และยัง Download file ออกมาได้ด้วย

  1. Continuous Deployment to Azure App Service

สามารถใช้ Git Workflow ที่อยู่ใน Azure App Service มา Deploy ได้ หากต้องการใช้ CI/CD ให้เลือกใช้ Deployment center สามารถเลือกใช้ GitHub Bitbucket Local Git หรือ Azure Repos ได้ตามที่ต้องการ จากนั้นต้องทำการกรอก Username Password เพื่อที่จะเลือก Project ระบบจะทำการ Automatic Git branch ไปที่ App service โดยไม่ต้อง Deploy ไปเอง แต่มีข้อควรระวัง ระบบจะ Put แต่ตัว Main เข้าไปเท่านั้น

ที่มา Configure continuous deployment – Azure App Service | Microsoft Docs

  1. Mobile Deployment

Azure สามารถ Develop Mobile app ได้หมดไม่ว่าจะเป็น IOS apps Android apps Windows apps React native APPS หรือ Xamarin apps ได้ โดยเชื่อมต่อกับ Git Workflow หากทำการ Put mobile app เข้าไประบบจะ Distribute app ให้ บน http://appcenter.ms โดยเมื่อ Distribute เสร็จ ระบบจะทำการส่ง Email ไปที่โทรศัพท์เครื่องที่เราต้องการทดสอบ การใช้ Azure ทำให้การ Deploy mobile app มีวิธีที่ง่ายขึ้น รวดเร็วและราคาย่อมเยา

  1. Deploy Best Practice

Deploy best practice หรือการที่ Azure สร้างระบบ Zero Downtime Deployment โดยใช้ Slot มีหลักการทำงาน เริ่มจาก มุ่งเน้น ที่ Git Workflow โดยการ แบ่ง Branch ออกเป็น 3 ส่วน ได้แก่ Develop Stage และ Master สามารถ Deploy แต่ละส่วนได้เลย การ Deploy นั้นใช้เวลานาน และอาจเกิดปัญหา Production หยุดทำงาน เมื่อเราต้องการ Deploy Web Application จึงเลือกใช้ Slot หรือ Temporary Folder ใน Azure เข้ามาช่วยทำให้ระบบเป็น Zero Downtime เพื่อไม่ให้ Production หยุด โดยการ Deploy slot ก่อน หากต้องการตัวไหนไปใช้ให้ Swap ได้เลย แถมยังสามารถ Swap production อันเก่ามาใช้งานได้เลย ทำให้สามารถทำระบบ Zero Downtime Deployment ได้เลย

 

ที่มา Deployment best practices – Azure App Service | Microsoft Docs

 

วิธีการข้างต้นเป็นวิธีคร่าวๆ ในการ Deploy หากต้องการทราบวิธีการอย่างละเอียดสามารถเข้าไปดูได้ที่ https://youtu.be/_RajdOHzSps

สรุป

Azure คือระบบคลาวด์แพล็ตฟอร์มขนาดใหญ่ที่สามารถเลือกใช้งานได้อย่างอิสระแถมยังรองรับฟีเจอร์มากมาย มี Data Center กระจายอยู่ทั่วโลก โดยไม่ต้องกังวลว่าเซิร์ฟเวอร์จะมีปัญหา หากเซิร์ฟเวอร์ใด เซิร์ฟเวอร์หนึ่งมีปัญหา ระบบจะมีการจัดการให้เซิร์ฟเวอร์อื่นๆสามารถเข้ามาทำงานแทนได้ทันที มีระบบความปลอดภัยที่มั่นคง จากการคอยเฝ้าระวังและติดตามการใช้งานของผู้ใช้งานทั่วโลก ทั้งที่สามารถเข้าถึงผู้ใช้งานได้ง่าย ทำให้สะดวกต่อการใช้งาน

 

อ้างอิง

https://docs.microsoft.com/en-us/visualstudio/deployment/tutorial-import-publish-settings-azure?view=vs-2022

https://azure.microsoft.com/en-us/blog/new-deploy-to-azure-extension-for-visual-studio-code/

https://docs.microsoft.com/en-us/azure/devops/pipelines/targets/deploy-to-azure-vscode?view=azure-devops

https://docs.microsoft.com/en-us/azure/app-service/deploy-continuous-deployment?tabs=github

https://docs.microsoft.com/en-us/azure/app-service/deploy-ftp?tabs=portal

https://docs.microsoft.com/en-us/azure/app-service/deploy-best-practices

https://www.saviantconsulting.com/blog/10-reasons-why-choose-microsoft-azure.aspx

 

Leave a Reply

Your email address will not be published.