Blog

WordPress Audit Log บน AWS Elasticsearch

เนื่องจากที่ Pronto เราใช้ระบบ Multisite ของ WordPress ดูแลเว็บไซต์ของลูกค้าเป็นพันกว่าเว็บไซต์ ทำให้การดูแล โดยเฉพาะเรื่องความปลอดภัยของแต่ละไซต์นั้นทำได้ค่อนข้างลำบาก เวลาตรวจสอบอะไรกับไซต์หนึ่งสักที ก็ต้องมานั่งกรอง log ให้มีแต่ข้อมูลไซต์ที่เราต้องการตรวจสอบ ถ้าใครเคยใช้ Multisite ก็น่าจะพอนึกภาพออกเนอะ เพราะ log มันเก็บไว้ที่เดียวกันหมดทุกไซต์ ต่างกับแยกแต่ละเว็บออกเป็นระบบส่วนตัว ซึ่งแบบนี้เราสามารถดู log เฉพาะของเว็บไซต์นั้นได้ทันที

ปัญหาอีกอย่างคือเรื่อง infrastructure ที่เราต้องไปดูแล ต้องคิดถึงการเก็บข้อมูล เพราะเนื่องจากข้อมูล log จะเป็นข้อมูลที่ไหลเข้ามาเรื่อยๆ อยู่แล้ว ไฟล์ log ก็จะยิ่งใหญ่ขึ้นเรื่อยๆ ถ้าจัดการเก็บเองแล้วคอย rotate เองเรื่อยๆ ก็คงเปลืองแรงไม่น้อย ยิ่งถ้าข้อมูลเก็บอยู่ในไฟล์ ก็คงจะลำบากที่จะดึงออกมาตรวจสอบ หรือเอาข้อมูลเหล่านั้นมาวิเคราะห์ (data analytics)

Test-Driven Infrastructure with Puppet

Puppet เกิดขึ้นมาเพื่อแก้ปัญหาการดูแลระบบ infrastructure เนื่องจากการดูแลระบบหนึ่งๆ เป็นสิ่งที่ยาก ยิ่งถ้ามีหลายๆ เซิฟเวอร์ในระบบนั้นแล้ว แค่การแก้ไขไฟล์ configuration ให้กับเครื่องเซิฟเวอร์แต่ละเครื่องก็สร้างความลำบากให้ชีวิตมากแล้ว การตรวจสอบเวอร์ชั่นของ package ต่างๆ ของแต่ละเซิฟเวอร์ก็สำคัญ บ่อยครั้งที่เซิฟเวอร์เราล่มเพราะว่าเวอร์ชั่นของ package ไม่ตรงกันก็มี

(more…)

SQS for Asynchronous Tasks and Why It Matters

สำหรับคนที่สงสัยว่า asynchronous task คืออะไร? ว่ากันง่ายๆ เลย มันคืองานที่ไม่จำเป็นต้องทำ ณ เวลานั้น หรือคืองานที่ถูกรันไม่พร้อมกับ process หลัก ส่วน asynchronous task queue ก็คือการที่เรามี queue เพื่อจัดการงานเหล่านั้น มีคอนเซปง่ายๆ ประมาณว่า ถ้าเรามีงานอยู่งานหนึ่ง แต่เราไม่มีเวลาทำเลย เราจะฝากเพื่อนร่วมงานให้ช่วยทำแทนเรา! ในที่นี้เพื่อนเราก็คือ queue ของเรานั่นเอง แลดูเป็นคนขี้เกียจเนอะ 🙂

(more…)