top of page

Applied Observability คืออะไร และ ทำไมทุกๆ องค์กรถึงต้องมี Applied Observability ?

สวัสดีค่ะ วันนี้เราจะพาทุกท่านไปรู้จักกับคำว่า Applied Observability คืออะไร

Applied Observability คืออะไร ? มีความสำคัญอย่างไร ?แล้วทำไมทุกๆองค์กรถึงต้องมี ? มีแล้วดียังไง ? ถ้าไม่มีจะเป็นอะไรหรือเปล่า ?

คำว่า Observability มาจากคำ 2 คำ ก็คือ Observe ที่แปลว่า การสังเกต บวกกับคำว่า Ability ที่แปลว่า ความสามารถ Observability จึงมีความหมายตรงๆง่ายๆ ก็คือ ความสามารถในการสังเกตการณ์นั่นเอง



ยกตัวอย่าง ทุกคนคงจะเคยดูหนังสายลับกันใช่มั้ยคะ สายลับหรือ Spy เนี่ย เขามีหน้าที่หลักๆเลยก็คือ แทรกซึม สอดส่อง เพื่อหาข้อมูลของฝ่ายตรงข้าม แจ้งข่าวสารสำคัญให้ฝ่ายตัวเองทราบอย่างรวดเร็ว และทันเวลา แล้วนำข้อมูลกลับมาวางกลยุทธ์ ปรับเปลี่ยนแผนการให้เข้ากับสถานการณ์ต่างๆ และเหนือไปกว่านั้น เขายังแก้ไขปัญหาเฉพาะหน้าได้หากมีอันตรายเกิดขึ้น นี่แหละค่ะ คือการมี Observability ที่ไม่ใช่แค่การ monitor ว่า มีศัตรูจำนวนหนึ่งอยู่ตรงนี้นะคะ แต่เป็นการแทรกซึมไปในทุกๆจุดที่มีข้อมูล ทำให้เราสามารถรู้ว่า ศัตรูกลุ่มนั้นมีจำนวนเท่าไหร่ ถืออาวุธอะไร มีแผนการอะไรบ้าง ซึ่งจะทำให้เราวางแผนรับมือได้อย่างมีประสิทธิภาพนั่นเองค่ะ


การที่เราเพิ่ม Observability ให้กับระบบไอทีของเรานี้ จะทำให้เราจัดการทรัพยากรด้านไอทีได้ง่ายขึ้น เพราะว่า เราจะมีการตรวจสอบ performance ของระบบตลอดเวลา เช่น การแจ้งเตือนเมื่อเครื่อง sever ของเรามีการใช้ CPU ที่สูงกว่าปกติ หรือว่าจะเป็นการที่แอปพลิเคชันของเรามันล่ม การที่มันล่มเนี่ยสาเหตุเกิดจากอะไร Observability ก็จะหาสาเหตุของปัญหาที่เกิดขึ้นว่ามันเกิดจากที่ไหน เพื่อให้เราพร้อมสำหรับทุกๆ เหตุการณ์ที่จะเกิดขึ้น อีกทั้งเรายังสามารถนำข้อมูลเหล่านี้ไปประเมินงบประมาณในแต่ละปีได้ด้วย

ซึ่ง Observability ก็จะมีองค์ประกอบด้วยกัน 3 องค์ประกอบหลัก ตามทฤษฏี 3 Pillars of Observability หรือว่า 3 เสาแห่ง Observability นั่นเองนะคะ


1. Metrics เป็นข้อมูลประเภทที่เราสามารถวัดค่าได้ในระยะเวลาหนึ่ง เช่น ปกติแล้ว แอปพลิเคชันนี้ใช้เวลาเปิดกี่วินาที ใน 1 ชั่วโมง แอปพลิเคชันนี้มี error rate อยู่ที่กี่เปอร์เซ็นต์ หรือว่าจะเป็นข้อมูลทางธุรกิจ อย่างเช่น จำนวนลูกค้าที่เข้ามาใช้บริการแอปพลิเคชันของเราในแต่ละวัน ก็ถือว่าเป็น Metrics เช่นเดียวกัน ซึ่งเราจะนำข้อมูล Metrics เหล่านี้มาแสดงผลเป็น dashboard เพื่อให้สะดวกแก่ผู้ใช้งานหรือว่า Data Analyst ได้


2. Logs เป็นสิ่งที่ทุกคนจะมองหาอยู่เสมอเมื่อมีเหตุการณ์อะไรเกิดขึ้น เราก็จะเริ่มจากการหาทางไป investigate logs ก่อน เพื่อหาทาง debug ซึ่งก็จะเป็น approach ที่ดี และเป็นองค์ประกอบที่สำคัญของ Observability


3. Traces เป็นสิ่งที่บอกว่า ในแต่ละ request ที่เข้ามาในแอปพลิเคชันของเรามี performance เป็นอย่างไร โดย request นั้นๆ อาจจะมีการเรียกไปใช้งานในหลายระบบ เช่น application server หรือ database server หรือว่าระบบที่อยู่ทั้งบน cloud และ on-premise โดยเราสามารถ observe ได้ตั้งแต่ต้นสายจนถึงปลายสายเลย หรือที่เราเรียกว่า end-to-end observability นั่นเองนะคะ

ซึ่งเมื่อรวม 3 องค์ประกอบนี้เข้าด้วยกัน จะทำให้ Metrics, Logs และTraces จะทำให้การแก้ไขปัญหาและการจัดการภายในองค์กรง่ายขึ้นมากเลยค่ะ


เมื่อเราทราบว่า observability คืออะไร มีส่วนประกอบอะไรบ้าง ในส่วนต่อไปเราจะพาทุกคนไปทำความเข้าใจว่า Applied Observability คืออะไร


Applied Observability เป็นการนำข้อมูลที่ได้จากการ observe มาใช้งานให้เกิดประโยชน์สูงสุดกับทุกๆทีมเลย ไม่ว่าจะเป็นทีม Business ทีม Developer หรือว่าทีม Operation เนื่องจากองค์กรต่างๆมีข้อมูลมากมายที่จะต้องจัดการไม่ว่าจะเป็นการจัดเก็บ การ processing อีกหลายขั้นตอนเลยจนกว่าข้อมูลจะพร้อมใช้งานได้


เป้าหมายของ Applied Observability คือ การลดเวลา ลดการติดต่อสื่อสารกันระหว่างทีมที่อาจจะตกหล่น หรือ ผิดพลาดได้ ซึ่งส่งผลให้การวางแผนหรือการตัดสินใจเป็นไปได้อย่างรวดเร็วนั่นเอง หากเรามี Applied Observability แต่ไม่ได้หมายความว่า จะไม่ให้ทุกคนคุยกับทีมอื่น หรือ ต่างคนต่างทำงาน โดยไม่มีปฏิสัมพันธ์เลยนะคะ จริงๆแล้วการมีทีมที่คอยดูแลในทุกๆจุดในระบบก็ดีมากๆแล้ว แต่ Observability จะมาช่วยลดในสิ่งที่เรียกว่า data layer หรือว่าชั้นของข้อมูลที่ทุกทีมจะมีข้อมูลเป็นของตัวเอง ซึ่งทุกทีมจะเก็บข้อมูลเฉพาะของทีมตัวเองไว้ การขอข้อมูลเนี่ยก็จะเป็นเรื่องยากกว่าจะ process กว่าจะ export ข้อมูลออกมาเนี่ยค่อนข้างที่จะใช้เวลา ถ้าเรานำข้อมูลจากเหตุการณ์เดียวกันมารวมกันอยู่ในที่เดียวก็จะทำให้เราปะติดปะต่อเรื่องราวได้ง่ายขึ้น ทำให้ทุกอย่างง่ายขึ้น เราไม่ต้องโทรหรืออีเมล์หากัน ซึ่ง Observability จะมาช่วยลดจำนวนชั้นของข้อมูลหรือ data layer ลงได้ เพื่อให้ทุกคนสามารถ access ข้อมูลเดียวกันในที่เดียวกันได้


หากองค์กรของท่านเป็นองค์กรขนาดเล็กก็อาจจะไม่ใช่เรื่องใหญ่อะไรในการค้นหาหรือส่งต่อข้อมูล แต่หากองค์กรของท่านเป็นองค์กรขนาดใหญ่มาก มีข้อมูลเข้ามามากมายมหาศาลในแต่ละวัน ข้อมูลเหล่านั้นอาจจะอยู่คนละ platform กันอีก การทำ process ของข้อมูล export ส่งต่อ หรือนำไป analyze ในทุกๆวัน ถ้ายิ่งเป็น critical application ที่คนใช้เยอะมากๆในแต่ละวัน เช่น application ของธนาคาร การโอนเงิน การสแกนจ่ายในทุกๆวัน การเสียเวลาแค่นาทีเดียวก็อาจจะส่งผลมากมายตามมาได้ เช่น รายได้ที่ลดลง เป็นต้น


จะเห็นได้ว่า performance ของแอปพลิเคชันเป็นสิ่งสำคัญมาก แอปฯที่ช้า และค้าง เราก็คงจะรำคาญและไม่ได้อยากใช้สักเท่าไหร่ ซึ่งมันส่งผลต่อผลประกอบการ และ user experience เต็มๆเลย ยกตัวอย่าง เมื่อเร็วๆนี้ มีแอปพลิเคชัน Delivery เจ้าหนึ่ง ได้ส่ง notifications มารัวๆ นับร้อย notifications ภายในไม่กี่นาที ซึ่งเหตุการณ์ในครั้งนั้น Facebook page ของแอปพลิเคชันเจ้านั้นโดนทัวร์ลงเลยก็ว่าได้ ผู้ใช้หลายรายถึงขั้นลบแอปพลิเคชันนั้นทิ้ง ผู้ใช้จำนวนมากขอให้ทางแอปพลิเคชันแจกส่วนลดเพื่อชดเชยจากการที่ส่ง notifications ผิดพลาด ซึ่งการแจกส่วนลด อาจจะทำให้ cost ในการบริหารมันเพิ่มขึ้น หากทางแอปฯจะออกส่วนลดเพื่อทำให้ลูกค้ากลับมาใช้งานแอปพลิเคชันอีกครั้งก็อาจจะต้องลงเงินในส่วนของ Marketing campaign เพิ่ม ซึ่งนี่ก็คือความเสี่ยงที่ต้องแบกรับหากมีการเกิดความผิดปกติเกิดขึ้นในระบบไอทีของเรา

ดังนั้น หากเรานำ Applied Observability มาใช้ในองค์กรเพื่อวางแผนบริหารความเสี่ยง ซึ่งเราสามารถตรวจสอบแบบเรียลไทม์ได้เลยว่า ปัญหามันอยู่ตรงจุดไหนผ่าน Metrics, Logs และTraces หรือว่าจะนำข้อมูลเหล่านั้นมาสร้างเป็น dashboard หรือนำไป analyze เพื่อเก็บไว้เป็น use case เตรียมตัวรับมือกับเหตุการณ์ที่ไม่คาดคิดโดยไม่ต้องคาดเดาอีกต่อไปเลย เพราะเราสามารถมี backup plan ได้ หรือที่เหนือไปกว่านั้นเรายังสามารถ integrate กับ DevOps หรือ automation tools ต่างๆได้ เพื่อให้ระบบสามารถทำ self-healing หรือการรักษาตัวเองได้โดยอัตโนมัติเมื่อมีปัญหาเกิดขึ้น ซึ่งก็จะลดจำนวนคนลงไปอีก และลดเวลาได้ ไม่ต้องมีคนมานั่ง monitor แล้วก็ไปแก้ปัญหาระบบมันสามารถทำ self-healing ผ่านตัว observability


เครื่องมือที่จะมาช่วยในการทำ observability ก็มีมากมาย ทั้งแบบ opensource และแบบ platform แต่ละตัวก็มีความสามารถโดดเด่นต่างกัน ซึ่ง Gartner ก็มีการจัดลำดับลงใน Magic Quadrant ในทุกๆปี ตัวที่อยู่ในกลุ่ม leader ก็จะเป็นเครื่องมือที่คัดมาแล้วว่ามีประสิทธิภาพสูง ซึ่งทุกท่านสามารถเลือกใช้งานได้ตามความถนัดเลย แต่ในเรื่องความคุ้มค่า ทางเราแนะนำให้ลองมองเครื่องมือที่เป็น platform ซึ่งซื้อครั้งเดียวสามารถ observe ได้ทุกๆ segment ไม่ว่าจะเป็น application performance, digital experience, application security หรือว่ารวมไปถึงการ automation ด้วยการ integrate เครื่องมือ DevOps ต่างๆที่ใช้ในองค์กรได้ เรียกว่าเป็นการลงทุนครั้งเดียว และคุ้มค่า


ขอขอบคุณผู้อ่านทุกท่านที่ เจอกันใหม่ในบทความถัดไปนะคะ

bottom of page