New Relic One Developer Experience DX | SiamCafe Blog
New Relic One Developer Experience DX | SiamCafe Blog
ในโลกของเทคโนโลยีที่เปลี่ยนแปลงอย่างรวดเร็ว ความเร็วในการพัฒนา ความเสถียรของระบบ
และความสามารถในการขยายตัวของซอฟต์แวร์กลายเป็นปัจจัยหลักที่กำหนดความสำเร็จขององค์กรในยุคดิจิทัล ซึ่งหนึ่งในแนวทางที่กำลังได้รับความนิยมอย่างสูงในวงการ DevOps และ Engineering คือ New Relic One Developer Experience DX หรือที่เรียกย่อ ๆ ว่า DX ซึ่งไม่ใช่แค่เครื่องมือ แต่คือแนวทางปฏิบัติ (best practice) ที่ออกแบบมาเพื่อสร้างระบบที่มีความยืดหยุ่น ปลอดภัย และสามารถดูแลรักษาระยะยาวได้อย่างมีประสิทธิภาพ โดยเฉพาะในสภาพแวดล้อม production ที่ต้องรับมือกับ traffic สูง ความล่าช้า (latency) ต่ำ และความผิดพลาดที่อาจเกิดขึ้นได้ทุกเมื่อ สำหรับผู้ที่ทำงานด้านระบบหรือพัฒนาซอฟต์แวร์จริงอย่างผม อ.บอม ที่ผ่านการเทรดในตลาด Forex บน XM มาเกือบ 14 ปี ความแม่นยำ ความเสถียร และการวางแผนล่วงหน้าคือหัวใจของทุกสิ่ง ซึ่งตรงกับหลักการของ New Relic One Developer Experience DX เป็นอย่างยิ่ง แนวทางนี้เน้นการรวมเครื่องมือ monitoring, automation, และ observability เข้าไว้ด้วยกัน เพื่อให้ทีมพัฒนาสามารถรู้ทันทีเมื่อระบบมีปัญหา วิเคราะห์สาเหตุได้เร็ว และกู้คืนระบบได้ทันที โดยไม่ต้องพึ่งพาการแก้ไขด้วยมือทีละจุด ซึ่งเป็นสิ่งที่เคยทำให้ทีมงานเหน็ดเหนื่อยและเสียเวลาไปอย่างมหาศาลในอดีต ด้วยการใช้สถาปัตยกรรมแบบ microservices ร่วมกับ Control Plane และ Data Plane ที่แยกส่วนอย่างชัดเจน New Relic One Developer Experience DX จึงสามารถ scale ได้แบบ horizontal โดยไม่ต้องเปลี่ยนโค้ดเดิม เพียงเพิ่ม node เข้าไปในระบบก็สามารถรองรับ load ที่เพิ่มขึ้นได้ทันที ซึ่งเป็นข้อได้เปรียบสำคัญในยุคที่ผู้ใช้งานออนไลน์เพิ่มขึ้นอย่างรวดเร็ว
สถาปัตยกรรมของ New Relic One Developer Experience DX ถือเป็นหัวใจสำคัญที่ทำให้ระบบสามารถทำงานได้อย่างมีประสิทธิภาพในระดับ enterprise
ไม่ว่าจะเป็นขนาดเล็กหรือใหญ่ โครงสร้างนี้ถูกออกแบบมาให้ยืดหยุ่น สามารถปรับเปลี่ยนได้ตามความต้องการขององค์กร โดยแบ่งออกเป็นส่วนหลัก ๆ ได้แก่ Control Plane, Data Plane, Observability Layer, และ Security Layer ซึ่งแต่ละส่วนมีบทบาทเฉพาะตัวและทำงานร่วมกันอย่างกลมกลืน Control Plane คือสมองของระบบ รับผิดชอบการจัดการ configuration ทั้งหมด ตัดสินใจว่า request ใดควรส่งไปยัง service ไหน และควบคุมการสื่อสารระหว่างบริการต่าง ๆ ได้อย่างมีประสิทธิภาพ โดยเฉพาะในระบบที่มีหลาย service ทำงานพร้อมกัน ทำให้ไม่ต้องแก้ไขแต่ละจุดทีละตัว แต่สามารถปรับนโยบายจากศูนย์กลางได้ทันที Data Plane เป็นส่วนที่รับผิดชอบการประมวลผล traffic จริง รับข้อมูลจากผู้ใช้ จัดการส่งต่อระหว่าง service และรับประกันความต่อเนื่องของบริการ แม้ในช่วงเวลาที่มี traffic สูง Observability Layer คือระบบ monitoring ที่เก็บ metrics, logs และ traces ไว้เป็นระยะเวลานาน ช่วยให้ทีมสามารถวิเคราะห์ performance ย้อนหลัง ตรวจจับปัญหาล่วงหน้า และเข้าใจพฤติกรรมของผู้ใช้ได้อย่างลึกซึ้ง ส่วน Security Layer ทำหน้าที่จัดการ authentication, authorization และ encryption ระหว่างบริการ เพื่อป้องกันการเข้าถึงข้อมูลโดยไม่ได้รับอนุญาต ซึ่งเป็นสิ่งจำเป็นอย่างยิ่งในยุคที่ข้อมูลเป็นทรัพย์สินที่มีค่าที่สุด สถาปัตยกรรมนี้ช่วยลดความซับซ้อนของระบบ และทำให้การดูแลรักษาระบบในระยะยาวง่ายขึ้นอย่างมาก โดยเฉพาะเมื่อต้องเผชิญกับเหตุการณ์ downtime หรือการ scale ระบบอย่างฉับพลัน
การเริ่มต้นใช้งาน New Relic One Developer Experience DX ต้องเริ่มจากการเตรียมสภาพแวดล้อมให้พร้อม ซึ่งรวมถึงการติดตั้ง dependencies ที่จำเป็น
การตั้งค่า configuration อย่างถูกต้อง และการทดสอบระบบเบื้องต้นเพื่อให้มั่นใจว่าทุกอย่างทำงานได้ตามที่ตั้งไว้ ขั้นตอนการติดตั้งที่แนะนำเริ่มจากการตรวจสอบ system requirements อย่างเคร่งครัด โดยต้องการ CPU อย่างน้อย 2 cores, RAM 4GB ขึ้นไป และพื้นที่จัดเก็บข้อมูลไม่น้อยกว่า 20GB เพื่อรองรับการเก็บ logs และข้อมูลที่ใช้ในการวิเคราะห์ในอนาคต หลังจากนั้น ต้องติดตั้งเครื่องมือพื้นฐาน เช่น Docker, Docker Compose และ Python 3.8 หรือใหม่กว่า เพื่อรองรับการทำงานของระบบในรูปแบบ container ต่อไป ให้ clone repository ที่เกี่ยวข้อง หรือสร้าง configuration files ใหม่ จากนั้นรันคำสั่ง initial setup เพื่อตั้งค่า database, cache และ service ต่าง ๆ อย่างเป็นระบบ ตัวอย่าง configuration ที่ใช้จริงสามารถดูได้จากสคริปต์ที่เขียนไว้เพื่อตรวจสอบ health status ของระบบทุก 30 วินาที ซึ่งช่วยให้สามารถตรวจจับปัญหาได้ตั้งแต่ต้น ไม่ให้ขยายตัวจนเกินควบคุม โดยสคริปต์นี้ตรวจสอบ HTTP status code, การใช้งาน disk และ memory อย่างต่อเนื่อง และหากพบว่า resource เต็มเกินเกณฑ์ จะแจ้งเตือนทันที และพยายาม restart service อย่างอัตโนมัติ ซึ่งช่วยลด downtime ได้อย่างมีนัยสำคัญ
การติดตั้งและตั้งค่า New Relic One Developer Experience DX
การเริ่มต้นใช้งาน New Relic One Developer Experience DX ต้องเริ่มจากการเตรียมสภาพแวดล้อมให้พร้อม ซึ่งรวมถึงการติดตั้ง dependencies ที่จำเป็น การตั้งค่า configuration อย่างถูกต้อง และการทดสอบระบบเบื้องต้นเพื่อให้มั่นใจว่าทุกอย่างทำงานได้ตามที่ตั้งไว้ ขั้นตอนการติดตั้งที่แนะนำเริ่มจากการตรวจสอบ system requirements อย่างเคร่งครัด โดยต้องการ CPU อย่างน้อย 2 cores, RAM 4GB ขึ้นไป และพื้นที่จัดเก็บข้อมูลไม่น้อยกว่า 20GB เพื่อรองรับการเก็บ logs และข้อมูลที่ใช้ในการวิเคราะห์ในอนาคต หลังจากนั้น ต้องติดตั้งเครื่องมือพื้นฐาน เช่น Docker, Docker Compose และ Python 3.8 หรือใหม่กว่า เพื่อรองรับการทำงานของระบบในรูปแบบ container ต่อไป ให้ clone repository ที่เกี่ยวข้อง หรือสร้าง configuration files ใหม่ จากนั้นรันคำสั่ง initial setup เพื่อตั้งค่า database, cache และ service ต่าง ๆ อย่างเป็นระบบ ตัวอย่าง configuration ที่ใช้จริงสามารถดูได้จากสคริปต์ที่เขียนไว้เพื่อตรวจสอบ health status ของระบบทุก 30 วินาที ซึ่งช่วยให้สามารถตรวจจับปัญหาได้ตั้งแต่ต้น ไม่ให้ขยายตัวจนเกินควบคุม โดยสคริปต์นี้ตรวจสอบ HTTP status code, การใช้งาน disk และ memory อย่างต่อเนื่อง และหากพบว่า resource เต็มเกินเกณฑ์ จะแจ้งเตือนทันที และพยายาม restart service อย่างอัตโนมัติ ซึ่งช่วยลด downtime ได้อย่างมีนัยสำคัญ
| องค์ประกอบ | หน้าที่หลัก | ตัวอย่างการใช้งาน |
|---|---|---|
| Control Plane | จัดการ configuration และ routing | กำหนดนโยบายการกระจาย traffic |
เมื่อโครงสร้างพื้นฐานของ New Relic One Developer Experience DX ตั้งค่าเรียบร้อยแล้ว ขั้นตอนถัดไปคือการใช้งานอย่างมีประสิทธิภาพสูงสุด
โดยต้องอาศัยเทคนิคขั้นสูงและการปฏิบัติที่ดีที่สุด (best practices) เพื่อให้ระบบทำงานได้อย่างราบรื่นในระยะยาว แนวทางแรกที่ผมเน้นย้ำเสมอคือการใช้ Infrastructure as Code (IaC) ซึ่งหมายถึงการกำหนด configuration ทั้งหมดเป็นโค้ด และเก็บไว้ในระบบ version control เช่น Git วิธีนี้ช่วยให้สามารถ track การเปลี่ยนแปลง ย้อนกลับไปยังเวอร์ชันก่อนหน้าได้ทันที และสามารถสร้าง environment ใหม่ได้อย่างแม่นยำในทุกครั้ง ซึ่งเป็นสิ่งสำคัญมากในทีมที่มีหลายคนทำงานร่วมกัน อีกแนวทางหนึ่งคือการตั้ง monitoring ตั้งแต่วันแรกของการพัฒนา อย่ารอให้เกิดปัญหาแล้วค่อยตั้งระบบ monitoring เพราะเมื่อระบบล่มแล้ว การวิเคราะห์ย้อนหลังอาจไม่ทันการณ์ ควรเก็บ metrics, logs และ traces ตั้งแต่เริ่มต้น เพื่อให้มีข้อมูลครบถ้วนสำหรับการวิเคราะห์ในอนาคต ตัวอย่างเช่น การใช้สคริปต์ Python ที่ออกแบบมาให้ทำงานเป็น pipeline แบบ extract-transform-load (ETL) โดยมีการจัดการ error อย่างครบถ้วน มี logging สำหรับ debugging และมีโครงสร้างที่แยก concerns ชัดเจน ทำให้สามารถทดสอบและปรับปรุงแต่ละส่วนได้อย่างอิสระ นอกจากนี้ ควรมี automated testing ทั้ง unit tests, integration tests และ end-to-end tests เพื่อให้มั่นใจว่าการเปลี่ยนแปลงใด ๆ ไม่ทำลายระบบเดิม และควรมี disaster recovery plan ที่ชัดเจน พร้อมทดสอบการกู้คืนระบบ (recovery) เป็นประจำ เพื่อให้แน่ใจว่าแผนดังกล่าวสามารถใช้งานได้จริงเมื่อเกิดเหตุการณ์จริง
| Observability Layer | เก็บ metrics, logs, traces | วิเคราะห์ latency และ error rate |
|---|
การ monitor และ troubleshooting คือกุญแจสำคัญในการดูแลระบบ New Relic One Developer Experience DX ให้ทำงานได้อย่างมีเสถียรภาพ โดยเฉพาะในสภาพแวดล้อม
production ที่ต้องรับมือกับ traffic สูงและข้อผิดพลาดที่อาจเกิดขึ้นได้ทุกเมื่อ Metrics หลักที่ต้องติดตามได้แก่ Latency (P50, P95, P99) ซึ่งควรต่ำกว่า 200ms สำหรับ API calls ทั่วไป Error Rate ที่ต่ำกว่า 0.1% สำหรับ production Throughput ที่ควรสอดคล้องกับ capacity ที่วางไว้ Resource Utilization ของ CPU, memory และ disk I/O ที่ไม่ควรเกิน 85% เป็นเวลานาน Queue Depth ที่เพิ่มขึ้นเรื่อย ๆ บ่งบอกว่า consumers ประมวลผลไม่ทัน เมื่อเกิดปัญหา ให้เริ่มจากการตรวจสอบ logs ด้วยคำสั่ง `docker compose logs --tail=100 -f` เพื่อดู error ล่าสุด จากนั้นตรวจสอบ resource usage โดยใช้ `htop` และ `df -h` เพื่อดูว่า disk หรือ memory เต็มหรือไม่ ตรวจสอบ network connectivity ด้วย `curl` หรือ `telnet` เพื่อให้แน่ใจว่า service ต่าง ๆ สื่อสารกันได้ และเปรียบเทียบ configuration ที่ deploy ใหม่กับเวอร์ชันก่อนหน้า หากไม่สามารถระบุสาเหตุได้ภายใน 15 นาที ควร rollback ไปยังเวอร์ชันก่อนหน้าทันที แล้วค่อยวิเคราะห์ทีหลัง ซึ่งเป็นแนวทางที่ผมใช้มาตลอดในทีมพัฒนาที่เคยเผชิญกับเหตุการณ์ downtime รุนแรง และช่วยลดความเสียหายได้อย่างมาก
เทคนิคขั้นสูงและการปฏิบัติที่ดีที่สุด (Best Practices)
เมื่อโครงสร้างพื้นฐานของ New Relic One Developer Experience DX ตั้งค่าเรียบร้อยแล้ว ขั้นตอนถัดไปคือการใช้งานอย่างมีประสิทธิภาพสูงสุด โดยต้องอาศัยเทคนิคขั้นสูงและการปฏิบัติที่ดีที่สุด (best practices) เพื่อให้ระบบทำงานได้อย่างราบรื่นในระยะยาว แนวทางแรกที่ผมเน้นย้ำเสมอคือการใช้ Infrastructure as Code (IaC) ซึ่งหมายถึงการกำหนด configuration ทั้งหมดเป็นโค้ด และเก็บไว้ในระบบ version control เช่น Git วิธีนี้ช่วยให้สามารถ track การเปลี่ยนแปลง ย้อนกลับไปยังเวอร์ชันก่อนหน้าได้ทันที และสามารถสร้าง environment ใหม่ได้อย่างแม่นยำในทุกครั้ง ซึ่งเป็นสิ่งสำคัญมากในทีมที่มีหลายคนทำงานร่วมกัน อีกแนวทางหนึ่งคือการตั้ง monitoring ตั้งแต่วันแรกของการพัฒนา อย่ารอให้เกิดปัญหาแล้วค่อยตั้งระบบ monitoring เพราะเมื่อระบบล่มแล้ว การวิเคราะห์ย้อนหลังอาจไม่ทันการณ์ ควรเก็บ metrics, logs และ traces ตั้งแต่เริ่มต้น เพื่อให้มีข้อมูลครบถ้วนสำหรับการวิเคราะห์ในอนาคต ตัวอย่างเช่น การใช้สคริปต์ Python ที่ออกแบบมาให้ทำงานเป็น pipeline แบบ extract-transform-load (ETL) โดยมีการจัดการ error อย่างครบถ้วน มี logging สำหรับ debugging และมีโครงสร้างที่แยก concerns ชัดเจน ทำให้สามารถทดสอบและปรับปรุงแต่ละส่วนได้อย่างอิสระ นอกจากนี้ ควรมี automated testing ทั้ง unit tests, integration tests และ end-to-end tests เพื่อให้มั่นใจว่าการเปลี่ยนแปลงใด ๆ ไม่ทำลายระบบเดิม และควรมี disaster recovery plan ที่ชัดเจน พร้อมทดสอบการกู้คืนระบบ (recovery) เป็นประจำ เพื่อให้แน่ใจว่าแผนดังกล่าวสามารถใช้งานได้จริงเมื่อเกิดเหตุการณ์จริง
การตรวจสอบสถานะและแก้ไขปัญหา (Monitor & Troubleshoot)
การ monitor และ troubleshooting คือกุญแจสำคัญในการดูแลระบบ New Relic One Developer Experience DX ให้ทำงานได้อย่างมีเสถียรภาพ โดยเฉพาะในสภาพแวดล้อม production ที่ต้องรับมือกับ traffic สูงและข้อผิดพลาดที่อาจเกิดขึ้นได้ทุกเมื่อ Metrics หลักที่ต้องติดตามได้แก่ Latency (P50, P95, P99) ซึ่งควรต่ำกว่า 200ms สำหรับ API calls ทั่วไป Error Rate ที่ต่ำกว่า 0.1% สำหรับ production Throughput ที่ควรสอดคล้องกับ capacity ที่วางไว้ Resource Utilization ของ CPU, memory และ disk I/O ที่ไม่ควรเกิน 85% เป็นเวลานาน Queue Depth ที่เพิ่มขึ้นเรื่อย ๆ บ่งบอกว่า consumers ประมวลผลไม่ทัน เมื่อเกิดปัญหา ให้เริ่มจากการตรวจสอบ logs ด้วยคำสั่ง `docker compose logs --tail=100 -f` เพื่อดู error ล่าสุด จากนั้นตรวจสอบ resource usage โดยใช้ `htop` และ `df -h` เพื่อดูว่า disk หรือ memory เต็มหรือไม่ ตรวจสอบ network connectivity ด้วย `curl` หรือ `telnet` เพื่อให้แน่ใจว่า service ต่าง ๆ สื่อสารกันได้ และเปรียบเทียบ configuration ที่ deploy ใหม่กับเวอร์ชันก่อนหน้า หากไม่สามารถระบุสาเหตุได้ภายใน 15 นาที ควร rollback ไปยังเวอร์ชันก่อนหน้าทันที แล้วค่อยวิเคราะห์ทีหลัง ซึ่งเป็นแนวทางที่ผมใช้มาตลอดในทีมพัฒนาที่เคยเผชิญกับเหตุการณ์ downtime รุนแรง และช่วยลดความเสียหายได้อย่างมาก
คำถามที่พบบ่อย
Q: New Relic One Developer Experience DX เหมาะกับโปรเจกต์ขนาดไหน?
New Relic One Developer Experience DX ออกแบบมาเพื่อรองรับทั้งโปรเจกต์ขนาดเล็กจนถึงระดับ enterprise ขนาดใหญ่ โดยเฉพาะในองค์กรที่ต้องการระบบทำงานได้อย่างเสถียร รองรับการขยายตัวได้อย่างยืดหยุ่น และสามารถจัดการข้อผิดพลาดได้อย่างมีประสิทธิภาพ สำหรับทีมพัฒนาขนาดเล็กที่เริ่มต้นโปรเจกต์ใหม่ แนวทางนี้ช่วยให้สามารถวางรากฐานระบบได้อย่างถูกต้องตั้งแต่ต้น โดยไม่ต้องกลับมาแก้ไขโครงสร้างในภายหลัง สำหรับองค์กรขนาดใหญ่ที่มีหลายทีมทำงานร่วมกัน การใช้ Control Plane และ Infrastructure as Code ช่วยให้การจัดการ configuration และ deployment เป็นไปอย่างมีระบบและปลอดภัย ไม่เกิดความขัดแย้งระหว่างทีม นอกจากนี้ ระบบนี้ยังรองรับการ scale แบบ horizontal ได้ทันทีโดยไม่ต้องเปลี่ยนโค้ด ทำให้เหมาะกับโปรเจกต์ที่มีผู้ใช้งานเพิ่มขึ้นอย่างรวดเร็ว เช่น แอปพลิเคชันที่กำลังขยายตลาดหรือมีโปรโมชันใหญ่ ซึ่งต้องการระบบที่สามารถรองรับ traffic พุ่งสูงได้ทันที โดยไม่ต้องหยุดระบบเพื่อปรับโครงสร้าง
Q: ทำไมต้องใช้ Infrastructure as Code กับ New Relic One Developer Experience DX?
การใช้ Infrastructure as Code (IaC) กับ New Relic One Developer Experience DX เป็นแนวทางที่จำเป็นอย่างยิ่ง เพราะช่วยให้การจัดการระบบไม่ต้องพึ่งพาการตั้งค่าด้วยมือ ซึ่งมีความเสี่ยงสูงต่อข้อผิดพลาด การกำหนด configuration ทั้งหมดเป็นโค้ดและเก็บไว้ใน Git ทำให้สามารถติดตามการเปลี่ยนแปลงได้ทุกครั้ง ย้อนกลับไปยังเวอร์ชันก่อนหน้าได้ทันที และสามารถสร้าง environment ใหม่ได้อย่างแม่นยำในทุกครั้ง ซึ่งเป็นสิ่งสำคัญมากในทีมที่มีหลายคนทำงานร่วมกัน โดยเฉพาะเมื่อต้อง deploy ระบบไปยังหลาย environment เช่น development, staging และ production การใช้ IaC ยังช่วยลดความแตกต่างระหว่าง environment หรือที่เรียกว่า “works on my machine” ซึ่งเป็นปัญหาใหญ่ที่ทำให้เกิดข้อผิดพลาดใน production ได้ ดังนั้น การใช้ IaC จึงไม่ใช่แค่เรื่องของความสะดวก แต่เป็นหัวใจสำคัญของการพัฒนาซอฟต์แวร์ที่มีคุณภาพและสามารถควบคุมได้ในระยะยาว
Q: การกู้คืนระบบ (recovery) ควรทำอย่างไรเมื่อเกิดเหตุการณ์ใหญ่?
เมื่อเกิดเหตุการณ์ใหญ่ เช่น system downtime หรือข้อผิดพลาดร้ายแรง แผนการกู้คืนระบบ (disaster recovery plan) คือสิ่งที่ต้องมีไว้ล่วงหน้า ไม่ใช่แค่ในทฤษฎี แต่ต้องทดสอบเป็นประจำ เพื่อให้มั่นใจว่าแผนนั้นใช้งานได้จริง สำหรับ New Relic One Developer Experience DX ควรเตรียม backup ของข้อมูลสำคัญ เช่น ฐานข้อมูล และ logs อย่างสม่ำเสมอ โดยเก็บไว้ในที่ปลอดภัยที่ต่างจาก environment หลัก ควรมีกระบวนการ rollback ที่สามารถกลับไปยังเวอร์ชันก่อนหน้าได้ภายในไม่กี่นาที หากไม่สามารถระบุสาเหตุได้ภายใน 15 นาที ควร rollback ทันที เพื่อลดผลกระทบต่อผู้ใช้ พร้อมกันนี้ ควรมี monitoring ที่แจ้งเตือนทันทีเมื่อระบบมีปัญหา และมีทีมงานที่รู้หน้าที่ชัดเจนว่าใครทำอะไรเมื่อเกิดเหตุการณ์ หลังจากกู้คืนระบบแล้ว ควรจัดทำรายงานการวิเคราะห์เหตุการณ์ (post-mortem) เพื่อเรียนรู้จากข้อผิดพลาด และปรับปรุงระบบให้แข็งแกร่งยิ่งขึ้น ซึ่งเป็นสิ่งที่ผมใช้มาตลอดในทีมพัฒนาที่เคยเผชิญกับเหตุการณ์สำคัญ
แนะนำเพิ่มเติม
🎯 เปิดบัญชี XM Forex → สมัคร
📱 แอป iCafeFX → ดาวน์โหลด
📊 สัญญาณฟรี → รับสัญญาณ
📚 คู่มือเทรด → SiamCafeBook
🤝 สมัคร Partner XM → pipaffiliates.com/c?c=72816&l=th&p=6
แนะนำจากเครือข่าย SiamCafe
คู่มือ Forex ที่เกี่ยวข้อง
แหล่งอ้างอิง
- SiamCafe.net - ชุมชนไอทีไทยตั้งแต่ปี 1997
- iCafeFX.com - ศูนย์วิเคราะห์ Forex และทองคำ