👶 Azure App Services

มาหัดทำแอพบนคลาว์กันดีกั่ว

ในคอร์สนี้เราจะมาทำความรู้จักกับเจ้าสิ่งที่ชื่อว่า App Services ของ Microsoft Azure กันบ้าง ซึ่งงานพื้นฐานต่างๆที่เราใช้ๆกัน 80% ก็จะอยู่กับเจ้าตัวนี้นั่นเอง ดังนั้นถ้าอยากมีชีวิตที่ดี๊ดี ลองมาศึกษามันจริงๆจังๆกันดีกว่านะ

แนะนำให้อ่าน สำหรับคนที่ไม่รู้เรื่องคลาว์เลย แต่แอบมีใจอยากลองเด่ขาเข้ามาฝั่งนี้บ้าง ผมแนะนำให้ลองดูบทเรียนในลิงค์ด้านล่างนี้ก่อนนะ มันจะได้รู้ว่าควรจะสละเวลาเล่นเกมส์มาศึกษามันจริงๆหรือเป่านั่นเอง 👶 Cloud พื้นฐาน****

🤔 App Services ทำไยได้ ?

🔥 Apps

อู๊วววว เย๊อะม๊วกกก เช่น อยากได้เว็บไซต์ซักตัว, อยากทำ Mobile back-end, อยากมีทำ REST API บลาๆ ก็สามารถให้กดสร้างได้เลยเพียงคลิก 2-3 ทีและรอไม่กี่วินาทีเท่านั้นเอง เราก็จะได้ของที่ว่ามาเอาไว้ใช้ทำ production ได้เลย

หรือแม้กระทั้งแอพที่ใช้ทำงานแบบไม่มีวันพักผ่อน ทำงานจนตายกันไปข้าง หรือที่เราเรียกกันว่า Background Services นั่นเอง ซึ่งของ Azure เขาเรียกว่า WebJobs เช่น เอาไว้ไล่เคลียข้อมูล เอาไว้ทำ thumbnail รูป หรืออะไรก็ตามที่เราไม่อยากให้มันเสียทรัพยากร (มีหลายตัวอยู่ที่มีไว้ทำงานลักษณะนี้)

หรือแม้กระทั่งตัวที่เอาไว้ส่ง Notification ต่างๆลง Platforms ต่างๆ เช่น Android, iOS, Windows, Kindle ก็มีตัวที่ชื่อว่า Notification Hub นะจ๊ะ

🔥 Operating System

แถมเรายังสามารถเลือกได้ด้วยว่าจะใช้ OS เป็น Windows หรือ Linux อีกด้วยนะ อันนี้รักเลยเพราะบางทีเราอยากจะประหยัดค่า License

🔥 Development Frameworks

รองรับภาษาอะไรบ้างนะเหรอ ตามลิสต์นี้เลย .NET Framework, .NET Core, Java, Ruby, Node.js, PHP, Phyton อีกทั้งเรายังเลือก version ย่อยได้อีกนะ ตามรูปด้านล่าง เวอร์ชั่นใหม่ๆออกก็กระโดดมาให้ใช้ทันที + ยังคงเวอร์ชันเก่าให้เลือกใช้ได้ยาวๆอีกด้วย

คือจะให้มาร่ายทั้งหมดทุกซอกทุกมุมของ App Services ในบทความนี้ ผมว่ามันคงจะยาวเฟื้อยเลยล่ะ ดังนั้นขอตัดบทไปดูเรื่องอื่นกันบ้างนะ ... ฉับ ฉับ ฉับ

🤔 ชีวิตสบายขึ้นได้ไง ?

🔥 Deployments

DevOps

สำหรับคนที่ชอบ Automation ตามฉบับของ DevOps อย่าง (CI) Continuous Integration, (CD) Continuous Delivery หรือทำงานในพวก Git ต่างๆแล้วล่ะก็ งานเหล่านั้นสามารถเอาขึ้น App Services ได้เลยนะฮ๊าฟฟฟฟ ไม่ว่าเราจะใช้ค่ายไหน VSTS, GitHub, BitBucket, Docker Hub เขาก็รองรับหมดนะก๊าฟฟฟ หรือจะเป็น FTP, Local Repository ก็จัดมาได้หมดเลย หรือจะเป็นอัพโหลดด้วย Zip file, OneDrive, DropBox ก็มิหวั่นนะจ๊ะ

Environment

แถมยังสามารถสร้าง Environments ต่างๆขึ้นมาเพื่อให้เราแยกการ Deploy ในแต่ละ Environments เพื่อทำการทดสอบระบบก่อนที่จะใช้งานจริงได้ด้วย ซึ่งถ้าระบบพร้อมใช้งานแล้วก็ทำการสลับตัวกัน ทำให้ผู้ใช้ไม่รู้สึกถึง Downtime ที่เกิดขึ้นเลย หรือพูดง่ายๆว่า ไม่ต้องปิดเซิฟเวอร์เพื่ออัพเดทนั่นเอง ซึ่งบน Azure เรียกมันว่า Deployment Slots นั่นเอง

A/B Testing

เวลาที่เราอยากรู้ว่าแบบ A กับแบบ B อันไหนมีปัญหา หรืออะไรก็ตามแต่ เราก็สามารถ แยก Traffic ของผู้ใช้ ไปลองใช้งานได้ด้วยนะจ๊ะ

🔥 Backup & Restore

ถ้าเราอยากทำ Snapshot หรือสร้าง Backup ข้อมูล, database หรืออะไรต่างๆก็สามารถทำได้ แถมยังตั้งเป็น Schedule ไว้ได้ด้วยนะ เมื่อไหร่ที่มีปัญหาก็สามารถย้อนกลับมาได้

🔥 Authentications

กรณีที่เราไม่อยากให้ใครก็ไม่รู้มาเข้าใช้งานระบบ เขาก็มีระบบ Authentication เพื่อยืนยันตัวตนก่อนใช้งานให้เราด้วยนะ กดจิ้มจึ๊กๆไม่กี่ทีก็ได้ระบบ Login ด้วย Azure AD, Facebook, Google, Microsoft, Twitter มาใช้งานแว้ว

🔥 Scaling

กรณีที่มีคนเข้ามาใช้งานเยอะๆ แล้วกลับระบบรับโหลดไม่ไหว เราก็สามารถขยายเครื่องได้ด้วยนะ ไม่ว่าจะเป็นการทำ Scale Up/Down หรือ Scale In/Out ก็ได้หมด แถมยังตั้งเป็น schedule เช่นทุกๆวันศุกร์ตอน 2 ทุ่ม หรือ จะให้ระบบมันจัดการให้เองถ้า CPU พุ่งปรี๊ดไรงี้ก็ได้เช่นกัล

แนะนำให้อ่าน พอดีเขียนบทความเรื่อง Auto Scaling ไว้แล้ว ดังนั้นถ้าสนใจจุดนี้ก็ไปอ่านได้จากลิงค์นี้เบย Auto Scaling****

🔥 Domain Name

สำหรับคนที่อยากได้ Domain Name เป็นของตัวเอง หรือมีอยู่แล้วก็สามารถมา claim ได้เลยนะจ๊ะ

🔥 SSL Cerifications

สำหรับคนที่มี Certifications อยู่แล้วก็สามารถเอามา binding ได้เช่นกัลล์ หรือ ยังไม่มีกดซื้อด้านบนได้เช่นกัล

🔥 Monitoring

เพื่อป้องกันไม่ให้ระบบล่ม หรือ หาสาเหตุข้อผิดพลาดที่เกิดขึ้นในระบบของเรา การเข้าไปดูสถานะ Log สภาพเซิฟเวอร์ หรือแม้กระทั่ง Real-time Log ก็เป็นสิ่งที่ขาดไม่ได้เลย ซึ่ง Azure จัดเต็มมาให้กับเรื่องนี้เป็นหมวดใหญ่ๆเลย และมันก็ทำงานกับ Application Insights ได้ด้วยนะ ซึ่งจุดนี้มันเยอะม๊วกกก ขอแยกไปอธิบายในบทความเฉพาะทางเอาละกัน

🔥 รวบรัดตัดจบ

อย่างที่บอกว่ามันยาวม๊ากกกกกกก ถ้าจะให้ไล่ให้หมด ดังนั้นผมขอไล่แบบรวดเดียวตรงนี้เลยว่า ถ้าเราใช้ App Services มันยังจะทำให้เรา

  • Hybrid data connection - ต่อไปใช้งานกับเซิฟเวอร์ส่วนตัวของเราก็ได้

  • Restrict Access to IP Address & Ranges IPs - จำกัดสิทธิ์ IP ที่จะเข้ามาใช้งานได้

  • App Service Advisor - มีระบบสอดส่องสิ่งแปลกๆที่เกิดขึ้นในระบบตลอดเวลา

  • Resource health - มีระบบตรวจสอบว่า Service เรายังอยู่ดีมีสุขทำงานได้ปรกติหรือเปล่า

  • Performance Testing - ถ้าอยากรู้ว่าระบบของเราจะรับโหลดได้มากน้อยขนาดไหน ก็ลองจิ้มตัวนี้ได้เลย เขาจะจำลองสถานะการณ์ผู้ใช้กระหน่ำเซิฟเวอร์ให้เราแบบถึงลูกถึงคน แล้วเราจะรู้ขีดจำกัดของตัวเราเอง เพื่อไล่หาคอขวด ที่มาคอยขัดให้ระบบเราช้าเป็นเต่านั่นเอง

  • API Management - สามารถทำงานเข้ากับตัวจัดการเรื่อง 3rd party หรือ Client ของเราได้ว่าจะให้สิทธิ์เข้าได้ถึงไหน เวอร์ชั่นอะไร บลาๆ

และอื่นๆอีกมากมายที่เริ่มขี้เกียจอธิบาย เอาไว้ดูในรายละเอียดของมันในบทความเฉพาะอีกทีละกัน เพราะเดี๋ยวเราจะลงรายละเอียดมันไปเรื่อยๆทีละตัวนั่นเอง Kudo, VNet, Azure Front Door, Web Firewall, CDN

🤔 ต้องดูแลเยอะป่ะ ?

ทั้งหมดที่ร่ายยาวมา เราไม่ต้องไปสนใจเรื่อง Infrastructure เลย เช่น จะเว็บเราจะอัพเกรด OS เมื่อไหร่? จะเพิ่ม Anti-virus ดีไหม? Internet ล่มต้องทำไง? บลาๆ เพราะตัว App Services นั้นตั้งอยู่บนสิ่งที่เรียกว่า PaaS หรือ Platform as a Service นั่นเอง

แนะนำให้อ่าน ใครจำ PaaS ไม่ได้หรืออยากรู้ประเภทของคลาว์เซอร์วิส ก็สามารถไปอ่านทำความเข้าใจได้ที่ลิงค์นี้ขอรับ ประเภทของคลาว์เซอร์วิส****

🎯 บทสรุป

สำหรับคนที่อ่านทั้งหมดนั่นแล้วไม่เข้าใจเลย ผมพูดง่ายแบบนี้ละกันว่า แค่ใช้งาน App Services เป็นเพียงตระกูลนี้ตระกูลเดียว ก็รองรับงานส่วนใหญ่ 80% ของที่ลูกค้าจะมาจ้างแล้วล่ะ แถมยังได้ความสามารถในการควบคุมดูแลระบบ ที่อยู่ในระดับโลกใช้กันอีกด้วย ดังนั้นจงมอบตัวแล้วค่อยๆมาเรียนรู้การใช้งานเจ้าตัวนี้กันดีกั่ว

คอร์สนี้กำลังค่อยๆเขียนอยู่ ใครที่ไม่อยากพลาดอัพเดทก็เข้าไปกดติดตามที่ลิงค์ Mr.Saladpuk ได้เลย ส่วนใครที่อยากศึกษา App Service ตัวไหนล่วงหน้าก็ส่งข้อความไปทักเอาได้เช่นกันขอรับ