วันศุกร์ที่ 31 กรกฎาคม พ.ศ. 2563

Azure API Management

     สวัสดีครับทุกท่าน สำหรับบทความนี้ของผมจะเป็นเรื่องราวเกี่ยวกับ Service หนึ่งใน Microsoft Azure ครับ โดย Service ดังกล่าวนี้จะเกี่ยวข้องกับท่านผู้อ่านที่เทำหน้าที่เป็น Developer หรือท่านใดที่เกี่ยวข้องกับเรื่องของการพัฒนา Software หรือ Application ครับ โดยส่วนตัวผมเคยมีประสบการณ์ได้เข้าไปมีส่วนรวมในการออกแบบ Azure Architecture และแนะนำให้ลูกค้านำเอา Service นี้มาใช้งานด้วยครับ นอกจากนี้แล้วยังมีหลายๆ องค์กรเลยครับ ที่มีความต้องการที่จะนำเอา Service ดังกล่าวนี้เข้ามาประยุกต์ใช้งานในองค์กรครับ  Service ที่ว่านี้มีชื่อว่า "Azure API Management" ครับ เอาล่ะครับเรามาทำความรู้จักกับ Azure API Management กันเลยครับ


Azure API Management



อย่างที่ผมได้เกริ่นไว้ในตอนต้นครับว่า Service (Azure API Management) นี้เกี่ยวข้องโดยตรงกับท่านผู้อ่านที่ทำงานเกี่ยวกับการพัฒนา Application ครับ สำหรับท่านใดที่ทำหน้าที่เกี่ยวกับ Infrastructure ผมแนะนำว่าให้ทำความรู้จักไว้ซักหน่อยก้อดีครับ  โดยผมขอเริ่มจากสิ่งที่เรียกว่า "APIs" หรือชื่อเต็มๆ คือ "Application Programming Interfaces" พอคุ้นๆ หรือเคยได้ยินมั๊ยครับ ผมเชื่อว่าท่านผู้อ่านทุกท่านน่าจะเคยได้ยินมาบ้างไม่มากก้อน้อยนะครับ แต่สำหรับท่านผู้อ่านที่เทำหน้าที่เป็น Developer ผมเชื่อว่าน่าจะรู้จักกันเป็นอย่างดีครับ และต้องบอกว่า APIs เป็นสิ่งถูกนำมาใช้งานในแทบจะทุกๆ องค์กรเลยครับ จะมากหรือน้อยแค่นั้นครับ สำหรับ APIs ถือว่าเป็นส่วนประกอบที่สำคัญส่วนหนึ่งขององค์กรเลยครับ

เริ่มโดยคอนเซปของ APIs ก่อนนะครับ ถ้าอธิบายง่ายๆ APIs คือ การสร้างการเชื่อมต่อระหว่าง Application ให้สามารถติดต่อสื่อสารระหว่างกันได้ครับ และทำให้เราสามารถใช้งานหรือบริการต่างๆ ของ Application ได้ครับ ผมขออธิบายเพิ่มเติมสำหรับคอนเซปของ APIs อีกนิดนึงครับ อีกมุมหนึ่งสำหรับ APIs คือ การเรียกใช้โปรแกรมหรือ Application โดยเราต้องเริ่มจากการคิดว่า Servers ต่างๆ ที่เราต้องการใช้บริการต่างๆ นั้น เป็น โปรแกรมหรือ Application ครับ เช่น Servers ของ Twitter, Facebook, ของ Google, ของธนาคารต่างๆ, และอื่นๆ  อย่างกรณีลูกค้าผมเค้าต้องการติดต่อกับ Servers ของธนาคารครับ  ดังนั้น Servers เหล่านี้ถ้าต้องการให้คนอื่นเข้ามาใช้งาน ก็ต้องมีการกำหนดคำสั่งต่างๆ เพื่อใช้งานครับ และวิธีหรือคำสั่งสำหรับใช้งาน Servers ต่างๆ นี้แหละครับเราเรียกว่า "APIs" ครับ

ในแต่ละองค์กรมีการใช้งาน APIs กันอยู่แล้วครับ เพียงแต่จะมากหรือน้อยครับ ทั้งนี้ขึ้นอยู่กับความต้องการและกลยุทธ์ทางธุรกิจขององค์กรครับ ดังนั้นแต่ละองค์กรก็จะมี Developer เพื่อทำการพัฒนาและใช้งาน APIs ทั้งในรูปแบบที่ใช้งานกันภายใน (Internal) องค์กร และ ภายนอก (External) เช่น Partners  และมีความเป็นไปได้เช่นกันครับที่บางครั้งที่ Developer มีการพัฒนาและสร้าง APIs ขึ้นมาเพื่อใช้งานกับ Application เดียว นอกจากนี้ยังมีความเป็นไปได้อีกเช่นกันที่มีความต้องการที่จะแชร์ APIs ครับ นอกจากนี้แล้วยังมีปัญหาอื่นๆ อีกครับสำหรับการที่ Developer จะจัดการ APIs เช่น การวิเคราะห์ Performance ของ APIs, การติดตามการใช้งาน APIs และอื่นๆ และจากประเด็นและปัญหาดังกล่าวนี้เองจึงเป็นความท้าทายหรือ Challenge คือ องค์กรจะทำการป้องกัน (Protect) และจัดการ (Manage) APIs อย่างไร?

นอกจากนี้แล้ว Developer อาจจะมีความต้องการเพิ่มเติม โดยเฉพาะในกรณีที่มีความต้องการที่จะแชร์ APIs ใช้งานทั้งภายในและภายนอก เช่น การควบคุมการใช้งาน, การกำหนดสิทธิ์ในการเข้าถึงและใช้งาน APIs, และอื่นๆ ตลอดจนในช่วงเวลาที่ผ่านมาจนถึงปัจจุบัน การพัฒนา Application โดยใช้คอนเซปและเทคโนโลยีของ Container และ Serverless ยิ่งทำให้ APIs มีบทบาทสำคัญมากขึ้นครับ เป็นต้น จาก Challenge ดังกล่าวนี้จึงเป็นจุดที่มีการนำเอาคอนเซปของ API Strategy และ Governance เข้ามาช่วยจัดการกับ Challenge ดังกล่าวโดยใช้ Azure API Management ครับ

Azure API Management ทำหน้าที่เป็น APIs Gateway โดยเตรียมวิธีการที่มีความ Reliable, Secure และ Scalable สำหรับใช้ในการ Publish, Consume, และ Manage APIs ครับ โดย Azure API Management ไดเตรียม Central Interface สำหรับใช้ในการสร้าง, จัดการ, และอื่นๆ ตลอดจนเครื่องมือหรือ Tools ต่างๆ เพื่อใช้ในการจัดการ APIs ตลอดจนการวิเคราะห์ Performance, การติดตามการใช้งาน, เรื่องของความปลอดภัย (Security) สำหรับ Azure API Management สามารถทำ IP Whitelisting เพื่อกำหนดว่าให้สามารถ Call หรือเรียก APIs จาก IP ใด, Authentication, และ Authorization ครับ  รูปด้านล่างเป็นตัวอย่างของ Azure API Management Architecture ครับ
















สำหรับรายละเอียดเพิ่มเติมสำหรับเรื่องราวของ Azure API Management ท่านผู้อ่านสามารถไปที่ Link นี้ได้เลยครับ https://docs.microsoft.com/en-us/azure/api-management/api-management-key-concepts

















อีก Link หนึ่งนะครับ เกี่ยวกับการ Import และ Publish APIs ใน Azure API Management ครับ
https://docs.microsoft.com/en-us/azure/api-management/import-and-publish


















และทั้งหมดนี้คือเรื่องราวของ Azure API Management ซึ่งเป็น Service หนึ่งใน Microsoft Azure ที่ผมอยากแนะนำให้ทุกท่านได้รู้จักกันครับผม.....


ไม่มีความคิดเห็น:

แสดงความคิดเห็น