Author Archive

ทำการ run GitHub Action บนเครื่อง local ด้วย Act

หลัง ๆ มาเริ่มใช้งาน GitHub Actions เยอะขึ้นแต่การแก้ไข pipeline และใช้งานไม่สะดวกเท่าไรรวมทั้งยังมี limit ของเวลาการ run อีกด้วยดังนั้นเพื่อลดปัญหาและข้อจำกัดลงไปจึงทำการ run GitHub Actions บน local ก่อนดีกว่าซึ่งเครื่องมือที่ใช้งานคือ Act

Read More…

[Flutter] ว่าด้วยเรื่อง StreamBuilder vs FutureBuilder Widget

วันนี้เขียน Mobile app ด้วย Flutter เลยไปเจอ code ส่วนหนึ่งที่เกิดปัญหาคือ เมื่อมีการเปลี่ยน state แล้วพบว่า app ทำการ render ใหม่ทั้งหน้าแน่นอนว่า ทำให้การ render ช้า หรือ performance แย่ลงทีมพัฒนามองว่าเป็นเรื่องปกติแต่ผมคิดว่า ไม่น่าจะเป็นเรื่องที่ปกติดังนั้นจึงมาแก้ไขกันหน่อย

Read More…

คำเตือนจาก Elasticsearch 8.x

วันนี้เพิ่งเห็นว่า ใน Elasticsearch 8 จะมี feature หลาย ๆ อย่างที่อาจจะทำให้ระบบงานมีปัญหาขึ้นมาได้หนึ่งในนั้นคือ action.destructive_requires_name มีค่าเป็น trueนั่นคือ ไม่สามารถลบ index แบบ wildcard ได้อีกแล้ว โดย defaultยกตัวอย่างเช่น DELETE * เป็นต้น

Read More…

ทำความรู้จักกับ match_only_text ใน Elasticsearch

ใน Elasticsearch 7.14 นั้นได้เพิ่ม field type ใหม่ขึ้นมาชื่อว่า match_only_textสร้างขึ้นมาเพื่อนำมาใช้เก็บข้อมูล log ต่าง ๆ โดยเฉพาะสามารถ query ได้เหมือนกับ type textเพียงแต่ไม่สนับสนุนการ sorting/scoringแต่ก็มีข้อจำกัดเช่นกัน ในการใช้บาง query เช่น span queryหรือใช้แล้วช้ากว่า type text เช่น phase และ interval queryในส่วนการ aggregation บางอย่าง ก็มีข้อจำกัด

Read More…

บันทึกปัญหาการใช้ Data structure ใน Redis

ปัญหาที่พบเจอสำหรับการจัดเก็บข้อมูลใน Redisนั่นก็คือ การเลือก data structure ที่ไม่เหมาะสมกับการใช้งานส่งผลให้การทำงานในแต่ละ operation สูงขึ้นส่งผลให้ Redis รับงานได้น้อยลงเนื่องจาก Redis ทำงานแบบ Single Thread นะ (แต่ก็ปรับปรุงมาเยอะ)ดังนั้นจึงกลับมาดูที่ต้นเหตุ รวมทั้งความรู้พื้นฐานกันหน่อย

Read More…

สรุปการแบ่งปันเรื่องของการเขียน code ที่น่าจะดีขึ้น

มีโอกาสได้แบ่งปันประสบการณ์ ของการเขียน program อีกครั้งจึงคิดว่า จะแบ่งปันเรื่องพื้นฐานดีกว่า (พอดีทำเป็นแต่เรื่องพื้นฐาน)นั่นก็คือ การเขียน code ที่น่าจะดีขึ้นกว่าเดิม ไม่มากก็น้อยประกอบด้วยแนวคิดต่าง ๆ เหล่านี้น่าจะพอมีประโยชน์บ้าง

Read More…

น่าสนใจเรื่อง Cloud-Native Is about Culture, Not Containers

จากบทความเรื่องของ DevOps และ Cloud Trend 2021 นั้นมีเรื่องหนึ่งที่น่าสนใจมาก ๆ คือ Cloud-Native Is about Culture, Not Containersซึ่งทำการอธิบายว่า เครื่องมือและเทคโนโลยีมันเปลี่ยนไปเร็วมากแต่สิ่งหนึ่งที่มักจะละเลยคือ culture ของทีมว่าเรากำลังทำอะไรกัน ทำไปทำไม มีประโยชน์อะไรมากกว่าเราใช้เครื่องมืออะไร หรือ ซื้ออะไรมาใช้ดี

Read More…

มาดูการ scale ระบบ Club leaderboard ใน Strava

สายนักวิ่ง นักปั่น หรือ นักกีฬา น่าจะรู้จักและใช้งาน Stravaซึ่งแต่ละคนสามารถ update activity ต่าง ๆ รวมทั้งสร้างหรือร่วม Club ต่าง ๆเพื่อบันทึก แข่งขัน หรือ ดูสถิติต่าง ๆหนึ่งใน feature หลักของ club คือ Leaderboard

Read More…

ทำความรู้จักกับ Twemproxy เพื่อการ scale Redis แบบง่าย ๆ

ปัญหาการ scale Redis บน Google Cloud Memorystore for Redisเนื่องจาก Redis ทำงานแบบ Single threadทำให้ถ้ามีการทำงานที่ช้า ๆ อาจจะส่งผลต่อการทำงานอื่น ๆ ได้แต่ละ scale ด้วยการขยายเครื่อง ก็ไม่การันตีว่าจะดีขึ้นหนึ่งในคำแนะนำคือ การใช้งาน Proxy มาช่วยโดยตัวที่น่าสนใจคือ Twemproxy ซึ่งพัฒนาจาก Twitterดังนั้นจึงมาลองทำความรู้จักกันหน่อย

Read More…

รูปแบบที่น่าสนใจ สำหรับจัดการปัญหาการติดต่อสื่อสารระหว่าง service

ในระบบงานมักจะมีการติดต่อสื่อสารระหว่างระบบหรือ serviceผ่านระบบ network ที่ขึ้นชื่อว่า พร้อมพัง ได้เสมอดังนั้นในการออกแบบ พัฒนา และ ทดสอบระบบต้องทำให้มั่นใจว่าการติดต่อสื่อสารจะต้องทำงานตามที่เราต้องการเสมอทั้งการทำงานให้เสร็จ ทั้งการทำงานอย่างไรเมื่อเกิดปัญหาขึ้นมาเพื่อให้ระบบงานมีความน่าเชื่อถือมากยิ่งขึ้น

Read More…