มาถึง product ตัวต่อไปที่เราอยากนำเสอ ได้แก่ !!!! Laita ( ไลต้า) Laita เป็น product ที่เราได้นำความสามารถของ AI as a Service มาเป็นส่วนหนึ่งในการพัฒนา. Laita นี้เหมาะสำหรับใคร และ Technology ที่เรานำมาใช้สำหรับการพัฒนางานนี้มีอะไรบ้าง บทความนี้เราจะพาเพื่อนๆไปลงลึกในรายละเอียดแต่ละจุดกันครับผม
เชื่อว่าเพื่อนๆหลายคนน่าจะต้องเคยไปงาน event และในงานเหล่านั้นก็จะมีช่างภาพ ซึ่งเมื่อหลังจบงานแล้ว ทางผู้จัดงานก็จะมีกองทัพรูปภาพมหาศาลส่งมาให้เราเพื่อเลือกรูปของตัวเองกลับไป สำหรับผู้ใช้งานอย่างเราก็จะคิดแล้วแหละว่า “ไหนหล่ะรูปเรา” “ต้องไถอีกเท่าไหร่ถึงเจอรูปตัวเอง”
💡 ใช้ Laita แล้วจะไม่ TaLai
Laita ในเฟสแรกนี้ เราพัฒนาให้เป็น service สำหรับการทำ face search คือการค้นหารูปตัวเองจาก Album โดยการอัพโหลดรูปตัวเองขึ้นไปในระบบ เพื่อทำการค้นหารูปที่มีหน้าเราอยู่ในนั้นเพื่อให้ง่ายต่อการค้นหา และเป็นการสร้างความประทับใจเล็กๆสำหรับ ผู้จัดงานและผู้ร่วมงาน และในอนาคตเราจะมีการพัฒนาเพิ่มเติมเพื่อให้ตอบโจทย์การทำงานให้หลายๆรูป รวมถึงผู้ใช้งานกลุ่มเป้าหมายใหม่ๆอีกด้วย
Core service ของเรานั่นก็คือการทำ recognization ในการจำแนกใบหน้า เพื่อเปรียบเทียบความคล้ายของใบหน้าเพื่อนำมาทำ image searching หรือจำแนกวัตถุต่างๆภาพในรูปภาพว่ามีสิ่งใดบ้างทำให้เราจับกลุ่มของรูปภาพเหล่านั้นได้ ซึ่ง service ที่เรานำมาใช้เป็นพระเอกของการทำงานนี้ได้แก่ AWS Rekognition
AWS Rekognition เป็น AI as a Service ที่ให้บริการโดย AWS เป็นบริการที่ใช้ Deep Learning มาช่วยในการตรวจสอบและวิเคราะห์รูปภาพ ซึ่งตัว Rekognition เองนั้นได้รับการ tranning จากรูปภาพต่างๆมาเป็นจำนวนมาก ทำให้ความแม่นยำที่ได้ออกมาจากการวิเคราะห์นั้นถือว่าสูงมากเลยทีเดียว
Rekognition มี model ที่สามารถหยิบมาใช้งานได้ทันทีไม่ว่าจะเป็น
ทำให้ง่ายต่อการนำไปพัฒนาต่อเป็น product ต่างๆได้มากมาย Laita ของเรา ได้หยิบความสามารถของการทำ Face comparison มาเป็น core หลักร่วมกับการพัฒนาในด้าน Web application เพื่อให้ได้เป็น product ที่ตอบโจทย์ผู้ใช้งานมากยิ่งขึ้น
เมื่อต้องการระบบที่ให้ทุกคนเข้าถึงได้รวดเร็วและเข้าถึงได้ทุกที่แบบไม่ติดขัด Cloud service ยังเป็นสิ่งที่เรารักเสมอ
Cloud ☁️
โดยภาพรวมเรายังใช้งาน Stack คล้ายคลึงกับ ImageXYZ และ OgXYZ
User Facing
Languages
Serve Static Content
Authentication
Edge Network
Languages
Instance
LoadBalancer
Database
Storage
Security
Gateway
Payment
CI/CD Tools
Collaborate
User Feedback Tools
Logging and Monitoring
Cloudtrail Setup
สิ่งสำคัญที่เราจะลืมไม่ได้เลยในการทำ webapplication ก็คือ security สำหรับผู้ใช้งานของเรา มองไปที่ข้อมูลหลักๆของเราก็คือรูปภาพที่ทุกคนได้อัพโหลดขึ้นมาที่ S3 bucket นั่นเอง เพื่อความปลอดภัยในการใช้งาน เราได้เปิดใช้งาน AWS Cloudtrail ในการ capture event ที่เกิดขึ้นกับ object ( ในที่นี้คือรูปภาพทุกๆรูป ) ทำให้เรา audit การกระทำทุกๆอย่างที่เกิดขึ้นกับรูปนั้นๆได้ feature ที่เราได้ implement ไปนั้นเรียกว่า Cloudtrail data event ผมคิดว่าหลายคนที่ใช้งาน AWS อยู่น่าจะรู้จัก Cloudtrail เป็นอย่างดี การเปิดใช้งาน capture data event ทำให้เราลงลึกไปถึง action ที่เกิดกับ object ที่เป็น data ได้เลย ตั้งแต่ object ใน S3 หรือ item ที่เก็บใน DynamoDb Table ก็สามารถทำได้ด้วยเช่นกัน ถือว่าเป็น feature ที่ดีและมีประโยชน์มากๆเลยทีเดียว
S3 Presign-url
S3 Presign-url คือการส้ราง URL พิเศษแบบจำกัดเวลาขึ้นมาชั่วคราวเพื่อใช้งานการ View, Download หรือ Upload Object ที่อยู่ใน S3 ซึ่ง Laita ได้นำเทคนิคนี้มาใช้งานเพื่อเป็นส่วนหนึ่งในการพัฒนาเพื่อเพิ่มคุณภาพในด้านความปลอยภัยแต่ว่ายังสามารถให้ผู้ใช้งาน ใช้งานได้อยากสะดวกสะบายเช่นเดิม
EC2 IAM Role
Communication ระหว่า backend ไปยัง service ต่างๆใน AWS นั้นสิ่งที่จำเป็นในการเรียกใช้ผ่าน SDK ก็คือ access_key และ secret_key ซึ่งเราสามารถ configure ได้ผ่าน aws cli หรือใส่เป็น parameter ให้ code เรียกใช้งาน แต่ๆๆๆๆ การ develop ในท่าที่บอกไปอาจจะไม่ใช่วิธีทีดี เนื่องจากว่าการที่เรามี credential ใส่ไว้ในเครื่องนั้นอาจจะไม่ปลอดภัย เพราะถ้าหาก credential นั้นหลุดไปก็จะทำให้ service ของเราถูกเรียกใช้งานจากที่ไหนก็ได้ Best practice ที่ AWS แนะนำเลยก็คือการ assign role ให้ service ต้นทาง และใช้งาน Policy ที่กำหนดไว้ภายใน Role นั้นเรียกใช้งาน service ปลายทางต่อไป ในกรณี backend ของเรา run อยู่ที่ EC2 เราก็จะทำการสร้าง Role ขึ้นมาและ assign role นั้นไปยัง EC2 เพื่อให้ติดต่อไปยัง S3 ที่ระบุไว้ใน Policy เท่านั้น
ปัญหาที่พบ
แม้ว่า Laita ตอนนี้จะยังอยู่ในช่วงพัฒนา ที่มีแผนการให้บริการในอีก 1-2 เดือนข้างหน้า หากเราเปิดให้บริการแล้วทางเรามี free tier ให้ทุกคนลองเข้ามาลองใช้งานอย่างแน่นอน และถ้าหากติดใจก็สามารถ subscribe เพื่อใช้งานเราต่อไปได้ สำหรับ package ที่ให้บริการนั้นมีอะไรบ้าง เดี๋ยวเราจะมาบอกทุกคนอีกทีนะครับ แต่รับรองได้ว่าคุ้มค่าต่อการใช้งานแน่นอน