Posts

ออกแบบระบบให้คุยข้าม module กันได้ ด้วย Pub/Sub

Image
เมื่อนานมาแล้ว ผมพัฒนา Apps Script ขึ้นมาตัวหนึ่ง เพื่อดึงข้อมูลจาก Reseller API มาตรวจสอบ หากเข้าเงื่อนไขที่กำหนดไว้ script ก็จะส่งอีเมลแจ้งเตือนไปยังทีมงานที่ดูแลข้อมูลชุดนั้น เมื่อเวลาผ่านไปนานเข้า จำนวนข้อมูลที่ต้องตรวจสอบก็เยอะขึ้น และจำนวนอีเมลที่ต้องส่งแจ้งเตือนออกไปก็มากขึ้นเป็นเงาตามตัว จนถึงขีดจำกัดของ script

account ที่ผมใช้รัน script เพื่อดึงข้อมูลจาก Reseller API นั้น เป็น G Suite free editon ซึ่งมีข้อจำกัดในการส่งอีเมลที่ 100 ฉบับต่อวัน ซึ่งในบางวันนั้น จำนวนอีเมลที่ต้องส่งออกก็สูงเกินข้อจำกัดนี้ และการที่ระบบส่งอีเมลไม่ได้ ก็ส่งผลให้ทีมงานที่ทำงานกับอีเมลแจ้งเตือนนี้ ทำงานได้ลำบาก


ทางออกที่ก้าวข้ามขีดจำกัดนี้ มีอยู่หลายทาง เช่น การเปลี่ยนวิธีการส่งอีเมล แทนที่จะใช้ email service ของ Apps Script ก็สามารถเปลี่ยนไปใช้ SMTP relay อื่นๆ ได้ แต่ก็จะมีองค์ประกอบที่ต้องดูแลเพิ่มเติมเข้ามา

ด้วยความที่บริษัทใช้ G Suite Business อยู่แล้ว และเมื่อดูจาก quota อีเมลก็สามารถส่งได้มากถึง 1,500 ฉบับต่อวัน ซึ่งน่าจะเพียงพอกับการใช้งานไปได้อีกนาน แต่เนื่องจาก API ที่ผมต้องดึงข้อมูลมานั้น …

ลดเวลาการเรียก API ใน Apps Script ด้วย fecthAll

Image
Apps Script มี function UrlFetchApp.fetch() สำหรับเรียก http request ไปที่ service อื่นๆ ได้ ซึ่งสามารถนำมาใช้เรียก API ภายนอกได้เช่นกัน แต่หากเรามีข้อมูลจำนวนมาก และต้องเรียก UrlFetchApp.fetch() หลายๆ ครั้ง จะทำให้ระบบทำงานช้าและเกินข้อจำกัดของ Apps Script ไป (document ระบุไว้ว่าได้ 6 นาที) วันนี้ผมจะมาแนะนำวิธีแก้ปัญหาในกรณี้นี้กันคับ


เมื่อการเรียกทีละ request ไม่ตอบโจทย์ เรื่องเริ่มมาจากผมมีโปรเจกต์ที่มีข้อมูลชื่อโดเมน จำนวนประมาณ 1,400 รายการ ที่ต้องการดึงค่า DNS มาตรวจสอบอะไรบางอย่าง ด้วยการเรียก http request ไปที่
https://dns.google.com/resolve?name=%DOMAIN%  โดยการแทนค่า %DOMAIN% ด้วยโดเมนที่ต้องการ และนำค่าที่ได้จาก API มาทำงานต่อ

หลังจากที่เตรียมชื่อโดเมนทั้ง 1,400 รายการลง array เรียบร้อย ก็เริ่ม process ข้อมูลใน array ทุกตัว โดยแต่ละตัวก็จะมีการเรียก UrlFetchApp.fetch() 1 ครั้ง ผลที่ได้ออกมาคือ
เริ่มรันตอน 2020-03-17 17:41:48.049 script สามารถทำงานจนถึง record ที่ 1047ที่เวลา 2020-03-17 17:49:36.137 เกิด "Script delayed (1.0 min) waiting for quota" เวลาห่างกันประมา…

แนะนำ Dialogflow: การใช้ regex เพื่อดึงข้อมูลด้วย pattern

Image
การสร้าง chatbot engine ด้วย Dialogflow นั้น มีความสะดวกตรงที่ เราสามารถใส่ตัวอย่างข้อความที่ผู้ใช้จะพิมพ์มาคุยกับ bot ลงใน training phrase ระบบจะเรียนรู้จากข้อมูลตัวอย่างนั้นและทำความเข้าใจประโยค ทำให้เมื่อผู้ใช้พิมพ์มาไม่ตรงกับ training phrase ระบบก็ยังสามารถเข้าใจความหมายและโต้ตอบได้อย่างถูกต้อง (อ่านเพิ่มเติม: แนะนำ Dialogflow: Intent, Parameters และ Fulfillment)

ในบางกรณี ข้อมูลที่เราต้องการจากผู้ใช้ ไม่สามารถระบุลงไปใน training phrase ได้โดยตรง เนื่องจากเป็นข้อมูลที่ไม่ตายตัว จึงไม่สามารถใช้วิธีการยกตัวอย่างเพื่อให้ระบบเรียนรู้ได้ เช่น สำหรับ chatbot แจกป๊อบคอร์น สมมติว่า เราจะขอให้ผู้ใช้ใส่เลขบัตรประจำตัวประชาชนมาเพื่อยืนยันตัวตนก่อน จึงจะแจกป๊อปคอร์นให้ จะเห็นว่า ค่าที่ผู้ใช่จะใส่เข้ามานั้นเป็นค่าเฉพาะของแต่ละคนและไม่ซ้ำกันเลย การจะระบุค่านี้ได้เราจะใช้ความสามารถของ regex เข้ามาช่วยครับ

regex หรือ Regular Expression เป็นวิธีการระบุรูปแบบ (pattern) ของตัวอักษรที่เราต้องการค้นหา ซึ่งจะใช้ได้ดีกับการค้นหาข้อมูลที่มีรูปแบบ ในกรณีนี้เราจะใช้ regex เพื่อระบุรูปแบบของเลขบัตรประจำตัวป…

แนะนำ Google PSO: ถ้าไม่รู้จะเริ่มยังไง ให้เริ่มจาก Cloud Start / Cloud Discover

Image
Google PSO เป็นบริการให้คำปรึกษาการใช้งาน Google Cloud Platform สำหรับลูกค้าองค์กร โดยการแบ่งเป็นขั้นต่างๆ คือ

Assess: สำหรับองค์กรที่ยังไม่แน่ใจว่าจะใช้งาน GCP ดีหรือไม่ และจะเริ่มต้นยังไงPlan: สำหรับองค์กรที่จะเริ่มใช้งาน GCP และต้องการออกแบบวิธีการจัดการ และวางรากฐานในการใช้งานอย่างเป็นระบบจากส่วนกลางDeploy: สำหรับองค์กรที่ต้องการย้ายหรือสร้าง workload ขึ้นบน GCPOptimize: สำหรับองค์กรที่ใช้งาน GCP ได้สักระยะ และต้องการตรวจสอบว่าใช้งาน GCP ได้อย่างมีประสิทธิภาพ หรือตรงตาม best practices ของ Google หรือไม่


หากองค์กรของคุณ ต้องการเริ่มต้นใช้งาน แต่ไม่รู้จะเริ่มจากจุดไหน PSO service ที่แนะนำคือกลุ่มที่อยู่ในขั้นการ assess เพื่อประเมินว่าเราควรจะเริ่มใช้งาน cloud ยังไง ด้วย workload แบบไหน หรือเราพร้อมจะไป cloud หรือไม่ โดยมี service ที่อยู่ในขั้น assess อยู่ 2 ตัวคือ Cloud Start และ Cloud Discover ครับ

Cloud Start ทำความเข้าใจระบบเดิม ประเมินความเป็นไปได้ และจัดทำรายงานสำหรับผู้บริหาร service ตัวแรกคือ Cloud Start โดยจะเป็น workshop แบบโต้ตอบกับลูกค้า ผ่านรูปแบบของการเขียนกระดาน หรือแสด…

แนะนำบริการให้คำปรึกษาในการใช้งาน cloud จาก Google

Image
ในปัจจุบันการใช้งาน cloud ในองค์กรเริ่มแพร่หลายมากขึ้น โดยเหตุผลอันดับต้นๆ คือ

ความรวดเร็วในการเริ่มต้นใช้งาน (องค์กรไม่ต้องรอสร้างบริการเหล่านั้นเอง) ค่าใช้จ่ายที่คิดตามการใช้งานจริง (ใช้น้อยจ่ายน้อย ใช้มากจ่ายมาก หลายๆ ครั้ง ค่าใช้จ่ายถูกกว่าสร้างบริการขึ้นมาเอง)ความปลอดภัย (ผู้ให้บริการ cloud มีการดำเนินการตามมาตรฐานความปลอดภัยต่างๆ และได้รับการรับรองจากหน่วยงานภายนอก)

จากข้อดีดังกล่าว ทำให้องค์กรสามารถมุ่งความสนใจไปที่การสร้างคุณค่าของบริการที่ส่งมอบให้ลูกค้า แทนการเสียเวลาบริหารจัดการโครงสร้างทางด้าน IT ด้วยตนเองทั้งหมด



ด้วยความที่มีองค์กรใช้งาน Google Cloud Platform (GCP) มากขึ้น ทีมงาน Google Cloud ได้รวบรวมความรู้และประสบการณ์ในการให้บริการลูกค้า เพื่อให้องค์กรสามารถใช้งาน GCP ได้อย่างเต็มประสิทธิภาพ โดยอยู่ในรูปแบบของบริการให้คำปรึกษา (consulting services) ที่ครอบคลุมสถานการณ์ของลูกค้าตามขั้นต่างๆ ดังนี้

Assess: สำหรับองค์กรที่ยังไม่แน่ใจว่าจะใช้งาน GCP ดีหรือไม่ และจะเริ่มต้นยังไงPlan: สำหรับองค์กรที่จะเริ่มใช้งาน GCP และต้องการออกแบบวิธีการจัดการ และวางรากฐานในการใช้งานอย่างเ…

Hangout On Air ใช้ไม่ได้แล้ว ทำยังไงดี!?

Image
ยังจำ Hangout On Air กันได้มั้ย? Hangout On Air เป็นบริการ streaming แบบถ่ายทอดสด โดยในช่วงเปิดตัว ได้เป็นส่วนหนึ่งของ Google+  หน้าจอหลักในการ stream จะเป็นหน้าจอของ Hangout ที่เป็นระบบ video conference สามารถแชร์หน้าจอเข้าไปใน Hangout เพื่อให้คนใน video conference เห็นหน้าจอเดียวกัน และประชุมกันได้สะดวกมาขึ้น

ความสามารถของ Hangout On Air ที่สามารถถ่ายทอดการประชุม ให้คนในองค์กรเข้ามาดูผ่านหน้า YouTube ได้จำนวนมาก แต่ยังสามารถจำกัดสิทธิ์ในการเข้าชมสำหรับคนในองค์กรเท่านั้น ทำให้หลายๆ องค์กร โดยเฉพาะองค์กรที่มีออฟฟิศกระจายอยู่หลายๆ ที่ หรือหลายๆ ประเทศ มีการนำ Hanout On Air มาใช้ในการประชุมบริษัทที่ถ่ายทอดสดจากสำนักงานใหญ่ และให้ออฟฟิศในเขตหรือประเทศอื่นๆ เข้ามาชมได้ทันที เพื่อให้ข้อความจากผู้บริหาร ไปถึงพนักงานในแต่ละส่วนได้อย่างทั่วถึง


เนื่องจาก Hangouts On Air ในปัจจุบัน ไม่สามารถใช้งานได้แล้ว หากใครยังต้องการใช้งานการถ่ายทอดสดการประชุม วันนี้มีทางเลือกมาให้พิจารณาครับ นั่นคือการใช้ Open Broadcaster Software (OBS) ในการ stream ภาพหน้าจอขึ้น YouTube Live แทน (สามารถ download ได้ใน li…

แชร์ประสบการณ์ขึ้นพูด 15 นาทีในงาน Google Cloud Summit Bangkok 2019

Image
จบไปแล้วกับงาน Google Cloud Summit Bangkok 2019 เมื่อวันที่ 26 กันยายน 2562 ที่ Royal Paragon Hall



เนื่องจากงานนี้ผมได้มีโอกาสเป็นตัวแทนบริษัทฯ ขึ้นไปพูดใน Track One ช่วงเวลา 13:50 - 14:05 น. (ระยะเวลา 15 นาที) ในหัวข้อ Improve Customer Experience through chat: Core factor for winning on CX with Chatbot ผมได้มีโอากาสเห็นเบื้องหลังการเตรียมงานนี้ในบางส่วน เลยอยากมาเล่าให้ฟัง เผื่อจะเป็นประโยชน์กับผู้อ่านครับ


การเตรียมตัว 1 เดือนก่อนวันงาน ทีมผู้จัดงานให้กรอกข้อมูลของ speaker ที่จะขึ้นพูด ก็จะเป็นรายละเอียดทั่วๆ ไป เช่น ชื่อ นามสกุบ ตำแหน่ง รูป profile ที่จะใช้ และประโยคแนะนำตัวสั้นๆ เป็นภาษาอังกฤษ พร้อมทั้งหัวข้อที่ต้องการพูดบนเวที
2 สัปดาห์ก่อนวันงาน ทีมผู้จัดงานแชร์ template ของ slide ให้ speaker นำมาใช้ในการเตรียม presentation โดยใน template จะมีรูปแบบที่สอดคล้องกับ theme ของงาน และ speaker ทุกคนจะใช้ template เดียวกัน และมีคำอธิบายการใช้งาน template เช่น ตัวอย่างการวาง logo คู่กัน หรือช่องไฟที่ต้องเว้นห่างจากตัว logo เป็นต้น
ใน template จะมีรูปแบบของหน้าปก หน้าคั่นหัวข้อ หน้าสำหรับ…