คลังเก็บป้ายกำกับ: SERVICE-TO-SERVICE_AUTHENTICATION

IBM, Google, และ Lyft ร่วมมือพัฒนา Istio แพลตฟอร์มจัดการ Microservice

ปัญหาที่ตามมากับการพัฒนาแอพพลิเคชันในรูปแบบ microservice นั้นคงจะหนีไม่พ้นการจัดการกับ microservice ทั้งหลาย ไม่ว่าจะเป็นการทำ service discovery, การติดตั้ง load balancer, หรือการดูแลให้ทุกๆส่วนในระบบทำงานไปได้โดยไม่สะดุด แต่ในวันนี้ IBM, Google, และ Lyft ได้ร่วมมือกันพัฒนาแพลตฟอร์ม Istio มาเพื่อดูแลจัดการกับ microservices ต่างๆโดยเฉพาะ

จุดเริ่มต้นของการร่วมมือพัฒนา Istio ครั้งนี้ประกอบไปด้วยระบบและเทคโนโลยีที่แต่ละบริษัทมีอยู่แล้ว อันได้แก่

  • Amalgam8 ของ IBM – โปรเจคโอเพ่นซอร์สที่มุ่งเน้นไปที่การกำกับ traffic ในระบบที่มาพร้อมกับ programmable control plane ซึ่งช่วยให้องค์กรสามารถทำ A/B testing, การทำ canary release (การปล่อยซอฟต์แวร์อีกเวอร์ชั่นให้ผู้ใช้ส่วนน้อยได้ใช้งานก่อนเปลี่ยนไปใช้เวอร์ชั่นใหม่ทั้งหมด), และการทดสอบความแข็งแกร่งของระบบ
  • Service Control ของ Google – ระบบควบคุมที่เน้นไปที่การสร้างและใช้งาน policy ต่างๆ เช่น ACL, ลิมิตการใช้งาน, หรือการทำ authentication ซึ่งนอกจากสิ่งเหล่านี้แล้วยังสามารถเก็บข้อมูลภายในระบบและ proxy ได้ด้วย
  • Envoy proxy ของ Lyft – edge และ service proxy ซึ่งถูกพัฒนาขึ้นมาเพื่อ microservice โดยเฉพาะ ซึ่งถูกใช้งานจริงในบริษัทกับกว่า 10000 VMs ที่มี microservice มากกว่า 100 ตัว

Istio นั้นทำงานด้วยการเพิ่ม layer ในการ routing และการจัดการเข้าไปในระบบที่ประกอบไปด้วย microservice ต่างๆ เมื่อเพิ่มเซิฟเวอร์ Envoy proxy เข้าไปใน network ระบบ Istio จะเข้ามาจัดการกำกับดูแล traffic ในระบบ เช่น การทำ load-balancing และ การทำ fine-grained routing หลังจากนั้น ผู้ใช้ก็จะสามารถเปิดใช้งานการ authentication และ authorization ระหว่างการสื่อสารของ service ใดๆก็ตาม ผ่าน TLS authentication ที่มีการจัดการ certificate อัตโนมัติโดยระบบ

Credit: IBM Blog

การทำงานของ Istio นั้นจะรวมไปถึงการเก็บข้อมูลสถิติต่างๆในระบบซึ่ง 1) สามารถนำไปใช้ในการตั้งค่าในระบบ เช่นการตั้งลิมิตการใช้งาน และ 2) จะถูกส่งไปยังระบบ monitoring โดยไม่ต้องตั้งค่าหรือเขียนโค้ดเพิ่มมากมายแต่อย่างใด

Feature เด่นๆของ Istio มีดังนี้

  • Zone-aware load balancing และ failover แบบอัตโนมัติสำหรับ HTTP/1.1, HTTP/2, gRPC, และ TCP
  • การควบคุมพฤติกรรม traffic แบบ fine-grained มาพร้อม routing rules หลากหลายรูปแบบ, การทำ fault tolerance, และการทำ fault injection
  • Policy layer ที่สามารถตั้งค่าได้สำหรับการตั้ง access control, rate limits, และโควต้าการใช้งาน
  • การเก็บข้อมูลสถิติ, logs, และ traces สำหรับ traffic ในคลัสเตอร์ รวมถึงปริมาณ traffic เข้าออกในคลัสเตอร์
  • การ authentication ที่ปลอดภัยระหว่าง service ต่างๆ ที่มีการทำ strong identity assertions ระหว่าง service ภายใน cluster เดียวกันด้วย

ปัจจุบัน Istio ยังทำงานร่วมกับคลัสเตอร์ Kubernetes เท่านั้น แต่ในอนาคตทางทีมพัฒนามีแผนที่จะขยายไปยังแพลตฟอร์มอื่นๆ สำหรับท่านใดที่สนใจสามารถเข้าไปอ่านข้อมูลเพิ่มเติมและทดลองดาวน์โหลดแอพลิเคชันตัวอย่างได้ที่ https://istio.io/docs/ หรือใน GitHub ที่ https://github.com/istio/

 

ที่มา: https://developer.ibm.com/dwblog/2017/istio/

from:https://www.techtalkthai.com/istio-microservice-mesh-ibm-google-lyft/