งาน Seven Peaks Speaks ได้จัดขึ้นอีกครั้งเมื่อวันที่ 23 มีนาคม 2565 โดยในครั้งนี้เรามีวิทยากร 4 ท่านที่จะมาพูดเกี่ยวกับ “การ deploy และดูแลความปลอดภัยให้กับแอปพลิเคชันของคุณใน Azure” เพื่อให้การย้ายข้อมูลแอปฯ ใน Azure นั้นมีประสิทธิภาพ
งาน meetup ครั้งนี้เริ่มด้วยคุณ Giorgio Desideri ซึ่งเป็น Tech Lead Cloud Solutions ที่ Seven Peaks Software โดยหัวข้อที่เขาจะมาบรรยายคือ “การสร้างมาตรการรักษาความปลอดภัยและข้อบังคับใน Azure”
เริ่มจากเรื่องของบัญชีผู้ใช้ Azure กันก่อน คุณ Giorgio อธิบายหลักการทำงานพื้นฐานว่า บัญชีผู้ใช้ Azure นั้นแบ่งออกเป็น 3 ประเภท ได้แก่ ฟรี, Office 365, และพรีเมียม โดยการใช้งานของผู้ใช้, บริการ, แอปพลิเคชัน, และอุปกรณ์ต่างๆ จะถูกกำหนดโดย roles หรือ group ซึ่งสิ่งเหล่านี้จะเกี่ยวข้องกับการกำหนดนโยบาย ในส่วนของผู้ใช้นั้นจะแบ่งออกเป็น 4 ประเภท ได้แก่ guest, member, Microsoft 365 (Enterprise), และบัญชี work/consumer (Azure B2C)
บริการเกี่ยวกับข้อมูลผู้ใช้แบ่งออกเป็น 3 ส่วนต่อไปนี้
หลังจากนั้นคุณ Giorgio ก็ได้ลงลึกถึงเรื่องของฐานข้อมูลและแอปพลิเคชัน รวมถึงวิธีพัฒนาแอปพลิเคชันอย่างปลอดภัย ซึ่งได้อธิบายว่า developer คือหัวใจสำคัญในการสร้างความปลอดภัยให้กับฐานข้อมูล จากนั้นจึงจบการบรรยายด้วยการสรุปประเด็นสำคัญ
อันดับแรก เราต้องพิจารณาถึง requirement ต่างๆ แล้วตรวจสอบ บัญชี Azure ก่อน จากนั้นจึงวางกฎระเบียบของการจัดการการเข้าถึงข้อมูลบัญชีผู้ใช้ เช่น กลุ่มเป้าหมาย, สิทธิ์ที่ได้รับอนุญาต, method และ operation ซึ่งในท้ายที่สุดแล้ว การศึกษาหาความรู้, ฝึกฝน, ติดตามผล, แจ้งเตือน, ตรวจสอบ, และลงมือปฏิบัติ คือสิ่งสำคัญที่ต้องทำเพื่อให้การพัฒนามีความปลอดภัยมากยิ่งขึ้น
คุณมีน Mid-Level Java Developer และคุณภู Junior .NET Developer ของเรา คือสองวิทยากรที่จะมาพูดถึงหัวข้อต่อไป ซึ่งนี่เป็นครั้งแรกที่ทั้งสองคนได้มาบรรยายในงาน Seven Peaks Speaks
คุณมีนแนะนำคอนเซปต์ของ Azure Function ให้เราได้รู้ด้วยการเปรียบเทียบกับรถยนต์ว่า หาก Azure Function คือรถยนต์ สิ่งที่เป็น trigger อย่างเช่น HTTP Trigger ก็เปรียบเสมือนกุญแจไว้สตาร์ตรถ ซึ่ง Azure Function แต่ละอันสามารถมี trigger type ได้เพียงอันเดียวเท่านั้น
trigger type นั้นมีอยู่หลายประเภท ดังนั้น คุณมีนจึงเลือกเอา 6 trigger type ที่ใช้กันบ่อยที่สุดมาอธิบายพวกเรา ซึ่งได้แก่
คุณมีนแสดงวิธีการใช้งาน trigger และ binding ด้วยการยกตัวอย่างสถานการณ์ที่ผู้ใช้ต้องการห้องพักที่ว่างให้เช่าของคอนโดมิเนียมแห่งหนึ่ง เมื่อผู้ใช้คลิกที่ Azure Function (HTTP Trigger type) มันก็จะถูก trigger และพยายามส่งข้อมูลจากผู้ใช้ไปยังทีมงานหลังบ้านด้วย “SendGrid”
คุณภูบรรยายเกี่ยวกับการรักษา ความปลอดภัยข้อมูลระหว่างระบบ (in-transit) ซึ่งแบ่งออกเป็น 4 หัวข้อ ได้แก่ Function Access Keys, Authorization Scopes, Authentication/Authorization และ Networking (Azure Private Endpoint)
โดย Authorization Scopes แบ่งออกเป็น 3 scope ดังนี้
สำหรับเรื่องของ Networking นั้น มีหลายวิธีในการรักษาความปลอดภัยให้ฟังก์ชันในเครือข่ายของคุณ อย่างไรก็ตาม คุณภูก็แนะนำให้ใช้งาน Azure Virtual Network ซึ่งเป็นเครื่องมือที่เรียบง่ายแต่มีประสิทธิภาพดี
คุณมีนจบการบรรยายด้วยเรื่องของ “ความปลอดภัยของข้อมูล at-rest” ซึ่งอยู่บนพื้นฐานของการรักษาความปลอดภัยข้อมูลเกี่ยวกับผู้ใช้ ว่าในจักรวาลของ Azure นั้น การรักษาความปลอดภัยข้อมูลเกี่ยวกับผู้ใช้เรียกอีกอย่างหนึ่งว่า managed identities เพราะมันจะปล่อยให้ Azure ทำการบริหารจัดการความปลอดภัยแทนเรา นอกจากนั้น คุณมีนยังบอกเคล็ดลับที่มีประโยชน์จากประสบการณ์การทำงานที่ผ่านมากับเราอีกด้วย
เซสชันสุดท้ายในคืนนั้นคือเรื่องของ DevSecOps กับการย้ายแอปฯ ใน Azure ด้วย EF6 ที่บรรยายโดยคุณ Nicolas Pierson ผู้เป็น Solution Architect ของ Seven Peaks Software
อันดับแรก คุณ Nicolas ได้สรุปคอนเซปต์ของแนวทางการทำงานแบบ Agile และ DevOps ให้เรารู้ก่อนที่จะพูดถึงกระบวนการทำงานของ Seven Peaks Software ที่นำเสนอด้วยแผนภูมิ คุณ Nicolas พูดถึงการปรับปรุงประสิทธิภาพการทำงานของเราด้วยการแสดงให้เห็น feedback loop ที่เริ่มด้วยการรวบรวมฟีดแบ็ก, นำฟีดแบ็กมาวิเคราะห์, และแก้ไขจากข้อมูลที่ได้จากการวิเคราะห์ นอกจากนั้นยังขอฟีดแบ็กใหม่จากเพื่อนร่วมทีมเพื่อดำเนินกระบวนการทั้งหมดต่อไป
เนื่องจากแนวทางการทำงานแบบ DevOps นั้นเป็นการรวมเอาทีม developer, QA และ Ops ไว้ด้วยกัน แล้วทำงานร่วมกัน เพื่อให้สามารถ release ซอฟต์แวร์ได้เร็วขึ้น จึงมีการทำเช็กลิสต์เพื่อให้แน่ใจว่าได้ทำตาม requirement ด้านความปลอดภัยทุกอย่างแล้ว ซึ่งคุณ Nicolas สรุปเช็กลิสต์ DevOps ของ Microsoft ไว้ใน 6 bullet point ต่อไปนี้
นี่คือเครื่องมือที่คุณสามารถนำไปใช้ในกระบวนการพัฒนาเพื่อให้แอปฯ เสถียรและปลอดภัยมากยิ่งขึ้นได้