Cloud-Native คือแนวทางสร้างและรันระบบให้ประกอบจากส่วนที่ผูกกันหลวม ๆ ทำงานร่วมกันอย่างปลอดภัย ทนต่อความผิดพลาด จัดการได้ ยั่งยืน และสังเกตการทำงานได้ ตามนิยามของ Cloud Native Computing Foundation (CNCF) ซึ่งใช้ได้ทั้งบน public cloud, private cloud และ hybrid cloud การปรับระบบเก่าสู่ Cloud-Native จึงเป็นงานด้านสถาปัตยกรรมและวิธีส่งมอบซอฟต์แวร์ ไม่ใช่แค่การย้าย server ไปที่ใหม่ และระบบเก่าไม่จำเป็นต้องแตกเป็น Microservices ทั้งระบบ จุดเริ่มที่มักคุ้มกว่าคือการแบ่งโมดูลให้ชัดแล้วรันใน container และทยอยแยกเฉพาะส่วนที่มีเหตุผลชัด

บทความนี้เขียนสำหรับ IT Manager สถาปนิกระบบ และทีมพัฒนาที่มีระบบเก่าอยู่ในมือ และกำลังถูกถามว่าควรแตกเป็น microservices ไหม หรือควรใช้ Cloud Region ในไทยหรือเปล่า นิยามและตัวอย่างของ Legacy System พร้อมทางเลือก rehost ถึง rebuild อยู่ในบทความ Legacy System คืออะไร รูปแบบการย้ายขึ้น Cloud หมวดต้นทุน และเรื่องข้อมูลต้องอยู่ในไทยหรือไม่ อยู่ในคู่มือ Cloud Migration ส่วนการตั้งเป้าหมายธุรกิจและแผนงาน DX ทั้งองค์กรอยู่ในแผน Digital Transformation สำหรับองค์กรไทย บทความนี้เจาะเฉพาะขั้นตรงกลาง คือจะปรับสถาปัตยกรรมของระบบเดิมอย่างไร ข้อเท็จจริงเรื่อง Cloud Region ตรวจจากหน้าของผู้ให้บริการ ณ วันที่ 3 พฤศจิกายน 2026

สรุปสั้น: ประเมินระบบเดิมก่อนเลือกเทคโนโลยี ดูว่าแอปพร้อมเข้า container แค่ไหน ส่วนต่าง ๆ ผูกกันผ่านฐานข้อมูลเดียวกันหรือไม่ และทีม deploy กับ monitor ได้เร็วพอหรือยัง Microservices ไม่ใช่คำตอบตั้งต้น หลายระบบได้ประโยชน์มากกว่าจากการแบ่งโมดูลให้ชัดแล้วรันเป็นชิ้นเดียวใน container เมื่อจะเปลี่ยนจริง ให้ทยอยย้ายทีละส่วนด้วยรูปแบบ Strangler Fig แทนการเขียนใหม่ทั้งระบบ Cloud Region ในไทยมีให้เลือกแล้วหลายราย รวมถึง Google Cloud Region Bangkok แต่ latency ที่ได้จริงต้องวัดจากตำแหน่งผู้ใช้เอง และ ROI ต้องวัดเทียบกับค่าตั้งต้นของระบบเดิม ไม่ใช่ตัวเลขสำเร็จรูป

Cloud-Native คืออะไร และต่างจากการย้ายขึ้น Cloud อย่างไร?

นิยาม Cloud Native ฉบับ v1.1 ของ CNCF (อนุมัติ 26 กุมภาพันธ์ 2024) อธิบายว่าเป็นแนวปฏิบัติที่ช่วยให้องค์กรพัฒนา build และ deploy workload บนสภาพแวดล้อมแบบ public, private หรือ hybrid cloud โดยมีลักษณะเด่นคือระบบที่ผูกกันหลวม ๆ และทำงานร่วมกันอย่าง "secure, resilient, manageable, sustainable, and observable" เทคโนโลยีที่มักใช้ ได้แก่ container, service mesh, multi-tenancy, microservices, immutable infrastructure, serverless และ declarative API ซึ่ง CNCF ระบุเองว่ารายการนี้ไม่ครบทุกแบบ (ไฟล์เดียวกันมีคำแปลภาษาไทยของ CNCF ซึ่งแปลจากนิยามฉบับก่อนหน้า)

ประเด็นที่ควรจับจากนิยามนี้มีสองข้อ ข้อแรก Cloud-Native ไม่ได้แปลว่าต้องอยู่บน public cloud ระบบที่รันใน data center ขององค์กรหรือบน private cloud ก็ออกแบบแบบนี้ได้ ข้อสอง การย้าย VM เดิมขึ้น cloud (rehost) ไม่ได้ทำให้ระบบเป็น Cloud-Native ถ้าแอปยังต้องตั้งค่าด้วยมือ deploy ทีละเครื่อง และล่มทั้งระบบเมื่อส่วนเดียวมีปัญหา

การย้ายขึ้น Cloud กับการปรับเป็น Cloud-Native
ประเด็นย้ายขึ้น Cloudปรับเป็น Cloud-Native
สิ่งที่เปลี่ยนที่รันของระบบโครงสร้างแอปและวิธีส่งมอบ
คำถามหลักย้ายไปไหน ย้ายอย่างไร ต้นทุนเท่าไรแยกส่วนอย่างไร deploy และกู้คืนอย่างไร สังเกตการทำงานอย่างไร
ทำแยกกันได้ไหมได้ เช่น rehost โดยไม่แก้ codeได้ เช่น ปรับแอปให้เข้า container แล้วรันใน data center เดิม
อ่านต่อคู่มือ Cloud Migrationบทความนี้

ก่อนปรับระบบเก่า ต้องประเมินอะไรบ้าง?

ประเมินสามเรื่องก่อนเลือกเทคโนโลยี คือ แอปพร้อมรันใน container แค่ไหน ส่วนต่าง ๆ ของระบบผูกกันแน่นแค่ไหน และทีมกับเครื่องมือพร้อมดูแลระบบที่มีหลายส่วนหรือยัง การประเมินนี้ต่างจาก discovery ของงานย้ายระบบ ซึ่งเน้นรายการเครื่อง dependency และต้นทุน ตรงที่ดูลงไปถึงโครงสร้างภายในของแอป ถ้าระบบไม่มีเอกสารเลย ให้เริ่มจากการรับช่วงระบบเก่าที่ไม่มีเอกสารก่อน

แอปพร้อมเข้า container แค่ไหน?

The Twelve-Factor App เป็นแนวทางสร้างแอปแบบ software-as-a-service ที่มี 12 ข้อ ได้แก่ Codebase, Dependencies, Config, Backing services, Build/release/run, Processes, Port binding, Concurrency, Disposability, Dev/prod parity, Logs และ Admin processes เราใช้เป็นเช็กลิสต์ตรวจความพร้อมของแอปเดิมได้ดี ข้อที่ระบบเก่ามักติดคือ

  • Config: รหัสผ่านฐานข้อมูลหรือ URL ของระบบอื่นฝังอยู่ใน code หรือไฟล์ที่แก้ด้วยมือบนเครื่อง แทนที่จะอ่านจาก environment
  • Processes: แอปเก็บ session หรือไฟล์อัปโหลดไว้บนดิสก์ของเครื่อง ทำให้เพิ่มเครื่องหรือย้ายเครื่องแล้วข้อมูลหาย
  • Backing services: ฐานข้อมูล คิว หรือที่เก็บไฟล์ ถูกอ้างถึงแบบตายตัว เปลี่ยนไปใช้บริการ managed ไม่ได้ถ้าไม่แก้ code
  • Disposability: แอปใช้เวลาเริ่มนาน หรือปิดแล้วงานที่ค้างอยู่หาย ทำให้ restart หรือ scale อัตโนมัติไม่ปลอดภัย
  • Logs: log เขียนลงไฟล์ในเครื่องแล้วหมุนทิ้ง ไม่ได้ส่งออกเป็น stream ให้ระบบรวม log
  • Dev/prod parity: เครื่องทดสอบกับ production ต่างกันจนผลทดสอบเชื่อไม่ได้

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

ส่วนต่าง ๆ ของระบบผูกกันแน่นแค่ไหน?

ตรวจว่าโมดูลต่าง ๆ แบ่งขอบเขตกันชัดหรือเรียกข้ามกันไปมา ใช้ตารางในฐานข้อมูลร่วมกันหรือไม่ มี stored procedure หรือ trigger ที่ซ่อนกฎทางธุรกิจไว้แค่ไหน และมีงาน batch หรือ cron ที่อ่านเขียนตารางของหลายส่วนพร้อมกันหรือเปล่า ระบบที่ทุกส่วนใช้ฐานข้อมูลก้อนเดียวและแก้ตารางของกันและกัน จะแยกเป็น service ได้ยากที่สุด และเป็นจุดที่ควรรู้ก่อนให้คำมั่นเรื่องแผนแยกระบบ

ทีมและเครื่องมือพร้อมหรือยัง?

Martin Fowler เขียนเรื่อง Microservice Prerequisites ไว้ว่าก่อนใช้ microservices ต้องมีอย่างน้อยสามอย่าง คือ สร้างเครื่องใหม่ได้เร็ว (rapid provisioning) มี monitoring พื้นฐาน และ deploy ได้เร็วทั้งไปสภาพแวดล้อมทดสอบและ production (rapid application deployment) ซึ่งรวมกันแล้วหมายถึงวัฒนธรรมแบบ DevOps ถ้าวันนี้ยัง deploy ด้วยการ copy ไฟล์ขึ้นเครื่องและรู้ว่าระบบล่มจากโทรศัพท์ของผู้ใช้ ให้แก้สามข้อนี้ก่อน ต้นทุนที่มักมองไม่เห็นของงานนี้อธิบายไว้ในต้นทุนแฝงของ DevOps

ต้องแตกเป็น Microservices ทุกระบบไหม?

ไม่ต้อง Martin Fowler เขียนไว้ใน Monolith First ว่าเรื่องสำเร็จของ microservices เกือบทั้งหมดเริ่มจาก monolith ที่ใหญ่เกินไปแล้วจึงถูกแยก และการใช้ microservices มีต้นทุนแฝง (MicroservicePremium) ที่คุ้มเฉพาะกับระบบที่ซับซ้อนพอ คู่มือ Microservices architecture style ของ Microsoft Azure Architecture Center ก็ระบุความท้าทายไว้ตรงกัน ได้แก่

  • ความซับซ้อน เพราะมีส่วนที่ต้องดูแลมากกว่า monolith ที่ทำงานเท่ากัน รวมถึงงานพัฒนาและทดสอบที่ยากขึ้น
  • latency ที่สะสมเมื่อ service เรียกต่อกันเป็นทอด ๆ และเครือข่ายที่แออัดขึ้น
  • ความถูกต้องของข้อมูล เพราะแต่ละ service ดูแลข้อมูลของตัวเอง การอัปเดตข้าม service จึงมักต้องยอมรับความสอดคล้องแบบตามมาทีหลัง (eventual consistency) แทน transaction เดียว
  • การจัดการ ซึ่งต้องอาศัยวัฒนธรรม DevOps ที่โตแล้ว รวมถึงการจัดการเวอร์ชันของ API และการกำกับดูแลที่ไม่ปล่อยให้แต่ละทีมเลือกเทคโนโลยีจนดูแลไม่ไหว
  • ทักษะของทีม ซึ่ง Microsoft แนะนำให้ประเมินอย่างจริงจังว่ามีพอหรือไม่ และเตือนไม่ให้แยก service ละเอียดเกินไป

ในทางปฏิบัติ ทางเลือกจึงมีมากกว่าสองทาง ตารางนี้เป็นกรอบที่เราใช้คุยกับเจ้าของระบบ ไม่ใช่มาตรฐานทางการ

ทางเลือกด้านสถาปัตยกรรมเมื่อปรับระบบเก่า
ทางเลือกเหมาะเมื่อสิ่งที่ต้องยอมรับ
คงโครงสร้างเดิม แก้เฉพาะจุดระบบเปลี่ยนไม่บ่อย ผู้ใช้ไม่มาก หรือมีแผนเลิกใช้ในไม่กี่ปียังต้องจัดการเรื่องเวอร์ชันหมด support ตามแนวทางดูแลระบบเก่าให้ปลอดภัย
แบ่งโมดูลภายในให้ชัด แล้วรันเป็นชิ้นเดียวใน containerทีมเล็กถึงกลาง ระบบมีโดเมนหลักไม่กี่ส่วน ต้องการ deploy ซ้ำได้ ขยายเครื่องได้ และกู้คืนเร็วทุกโมดูลยัง deploy พร้อมกัน และขยายได้ทั้งก้อนเท่านั้น
แยกบางส่วนเป็น serviceบางส่วนมีภาระงาน รอบการเปลี่ยน หรือทีมเจ้าของต่างจากส่วนอื่นชัดเจน และทีมผ่านเงื่อนไขของ Fowler แล้วต้องมี monitoring, tracing, CI/CD และการจัดการข้อมูลข้าม service ตั้งแต่ service แรก

สำหรับระบบเก่าหลายระบบ ทางเลือกที่สองเป็นจุดเริ่มที่สมเหตุสมผล เพราะได้ประโยชน์เรื่อง deploy ซ้ำได้และย้ายที่ได้ก่อน แล้วค่อยแยก service ออกเฉพาะส่วนที่มีเหตุผลชัด โดยยังไม่ต้องจ่ายต้นทุนของระบบกระจายตั้งแต่วันแรก

ต้องใช้ Kubernetes ไหม?

ไม่จำเป็น Kubernetes เป็นตัวจัดการ container ที่ใช้กันแพร่หลาย แต่มีงานดูแลหลังติดตั้ง (day-2 operations) ต่อเนื่อง เช่น อัปเกรด cluster จัดการ certificate และ network policy ซึ่งต้องมีแผนและคนรับผิดชอบจริง ระบบที่มีไม่กี่ส่วนอาจใช้บริการรัน container แบบ managed ของผู้ให้บริการ cloud หรือ VM ที่ deploy อัตโนมัติก็พอ Kubernetes คุ้มเมื่อมีหลาย workload หลายทีม หรือต้องการ autoscaling และ GitOps ที่ทีมดูแลได้จริง รายละเอียดว่าเราใช้ Kubernetes อย่างไรอยู่ที่หน้า Kubernetes

ย้ายจากระบบเก่าทีละส่วนทำอย่างไร?

ใช้รูปแบบ Strangler Fig คือวางตัวกลางไว้หน้าระบบเดิม แล้วย้ายความสามารถไปส่วนใหม่ทีละส่วน จนส่วนเดิมไม่เหลืองานจึงปิดทิ้ง ตามคำอธิบายใน Strangler Fig pattern ของ Azure Architecture Center ขั้นตอนด้านล่างเป็นวิธีที่เราแนะนำ โดย façade, การเลือกส่วนที่ ROI สูงก่อน, anti-corruption layer และการ sync ข้อมูลด้วย change data capture มาจากคำอธิบายของ Microsoft ส่วนทางเลือกให้ส่วนใหม่เป็นเจ้าของตารางแล้วให้ระบบเดิมเรียกผ่าน API เป็นแนวทางของเราเอง

  1. วาง façade: ตัวกลาง เช่น reverse proxy หรือ API gateway รับคำขอทั้งหมด แล้วส่งไประบบเดิมหรือส่วนใหม่ตามเส้นทาง ผู้ใช้และระบบที่เรียกเข้ามาไม่ต้องรู้ว่าปลายทางเปลี่ยน
  2. เลือกส่วนแรกให้ถูก: เริ่มจากส่วนที่ขอบเขตชัด ผูกกับตารางอื่นน้อย และได้ประโยชน์ชัด Microsoft อธิบายว่ารูปแบบนี้ช่วยใช้ประโยชน์จากระบบเดิมให้มากที่สุดระหว่างทยอยปรับ และเปิดทางให้ทำส่วนที่ ROI สูงก่อนส่วนที่ ROI ต่ำ
  3. คั่นด้วย anti-corruption layer: เมื่อส่วนใหม่ต้องเรียกระบบเดิมหรือกลับกัน ให้ผ่านชั้นแปลงข้อมูลที่แยกออกมา เพื่อไม่ให้โครงสร้างข้อมูลและข้อจำกัดของระบบเดิมรั่วเข้ามาในส่วนใหม่
  4. แยกข้อมูลอย่างระวัง: ช่วงที่สองฝั่งยังต้องเห็นข้อมูลชุดเดียวกัน ทางเลือกหนึ่งคือ change data capture (CDC) ที่อ่านการเปลี่ยนแปลงจาก log ของฐานข้อมูลเดิมแล้วส่งต่อให้ส่วนใหม่ อีกทางคือให้ส่วนใหม่เป็นเจ้าของตารางนั้นแล้วให้ระบบเดิมเรียกผ่าน API ทุกทางต้องกำหนดว่าฝั่งใดเป็นเจ้าของข้อมูลแต่ละชุด และตรวจว่าสองฝั่งตรงกันอย่างไร
  5. ย้ายเส้นทางทีละส่วนพร้อมทางถอย: เปลี่ยนเส้นทางที่ façade ทีละกลุ่ม เก็บเส้นทางเดิมไว้ให้ถอยกลับได้ ใช้เกณฑ์ cutover และ rollback แบบเดียวกับในแผน cutover ของคู่มือ Cloud Migration

Microsoft ระบุด้วยว่ารูปแบบนี้อาจไม่เหมาะเมื่อดักคำขอที่เข้าระบบเดิมไม่ได้ เมื่อแก้ code หรือจุดเชื่อมต่อของระบบเดิมไม่ได้ เมื่อระบบเล็กจนเปลี่ยนทั้งก้อนง่ายกว่า หรือเมื่อต้องปิดระบบเดิมให้เร็ว กรณีเหล่านี้การเปลี่ยนทั้งระบบในรอบเดียวอาจเป็นคำตอบที่ถูก แต่ต้องซ้อม cutover และเตรียมทางถอยให้หนักขึ้น

ควรใช้ Cloud Region ในไทยไหม?

ถ้าผู้ใช้ส่วนใหญ่อยู่ในไทย หรือมีข้อกำหนดเรื่องที่ตั้งข้อมูล Region ในไทยควรอยู่ในรายการที่ต้องทดสอบ ตารางสถานะ Region ในไทยของแต่ละผู้ให้บริการอยู่ในคู่มือ Cloud Migration ส่วนนี้เพิ่มเฉพาะสองเรื่องที่กระทบการออกแบบสถาปัตยกรรม ตามหน้าของผู้ให้บริการ ณ วันที่ 3 พฤศจิกายน 2026

  • Google Cloud Region Bangkok อาจยังไม่มีบริการครบทุกตัว: Google เปิด Region Bangkok (asia-southeast3) เมื่อ 21 มกราคม 2026 และหน้า regions and zones แสดง 3 zone คือ asia-southeast3-a, -b และ -c หน้า locations ของ Google ระบุว่า region ใหม่เปิดพร้อมบริการชุดขั้นต่ำ เช่น Compute Engine, Google Kubernetes Engine, Cloud Storage และ Cloud SQL ส่วนบริการอื่น เช่น Cloud Run และ BigQuery Google ระบุว่าจะเปิดตามมาภายใน 6 เดือนหลังเปิด region ซึ่งสำหรับ Bangkok ครบกำหนดแล้ว แต่บทความนี้ไม่ได้ตรวจรายการบริการรายตัว จึงควรตรวจรายการบริการของ asia-southeast3 ณ วันที่ออกแบบ โดยเฉพาะถ้าสถาปัตยกรรมพึ่งบริการ managed อย่าง Cloud Run
  • Microsoft Azure ยังไม่มี region ที่เปิดในไทย: หน้า Azure geographies ยังแสดง Thailand South ในสถานะ intent to establish (ประกาศว่าจะเปิด) ยังไม่เปิดให้บริการ

เรื่องที่ตั้งข้อมูล Google ระบุในประกาศเปิด region ว่า region Bangkok รองรับ data residency และช่วยให้ธุรกิจและหน่วยงานรัฐสอดคล้องกับกฎหมายอย่าง พ.ร.บ. คุ้มครองข้อมูลส่วนบุคคล พ.ศ. 2562 (PDPA) ข้อความนี้เป็นคำกล่าวของผู้ให้บริการ ไม่ใช่การรับรองทางกฎหมาย PDPA มาตรา 28 ไม่ได้บังคับให้เก็บข้อมูลส่วนบุคคลในไทยเป็นการทั่วไป แต่กำหนดเงื่อนไขเมื่อส่งหรือโอนข้อมูลไปต่างประเทศ ส่วนหน่วยงานรัฐ เอกสารของสำนักงานพัฒนารัฐบาลดิจิทัล (องค์การมหาชน) (สพร. หรือ DGA) ระบุแนวทาง National Cloud ที่ให้เก็บข้อมูลภาครัฐในไทยเป็นหลัก และให้จัดหาผ่านคลาวด์กลางภาครัฐ (Government Data Center and Cloud service หรือ GDCC) เป็นลำดับแรก โดยประกาศที่จะทำให้มีผลบังคับ ณ เวลาที่เขียนยังเป็นร่าง รายละเอียดทั้งหมด รวมถึงเกณฑ์ของ ธปท. สำหรับสถาบันการเงิน อยู่ในหัวข้อข้อมูลต้องอยู่ในไทยไหม ของคู่มือ Cloud Migration

เลือก region ในไทยแล้วยังต้องตรวจต่อว่า backup, log, ระบบ monitoring และบริการเสริมที่เปิดใช้ เก็บหรือประมวลผลข้อมูลที่ใด

วัด latency ก่อนเลือก Region อย่างไร?

วัดจากตำแหน่งที่ผู้ใช้อยู่จริง อย่าใช้ระยะทางบนแผนที่หรือตัวเลขในเอกสารการตลาดแทนการวัด บทความนี้จึงไม่ใส่ตัวเลข millisecond เพราะผลขึ้นกับเครือข่ายของผู้ใช้ ผู้ให้บริการอินเทอร์เน็ต และเส้นทางเชื่อมต่อของแต่ละ cloud วิธีที่ใช้ได้จริงมีดังนี้

  1. ตั้ง endpoint ทดสอบในแต่ละ region ที่พิจารณา เช่น VM เล็กหรือ container ที่ตอบคำขอ HTTP แล้ววัดจากสำนักงาน สาขา เครือข่ายมือถือ และเครือข่ายของคู่ค้าที่เรียก API ในช่วงเวลาที่มีผู้ใช้มาก ดูทั้งค่ามัธยฐาน (p50) และค่าช่วงที่ช้า เช่น p95 หรือ p99 ไม่ใช่ค่าเฉลี่ยอย่างเดียว
  2. ใช้เครื่องมือของผู้ให้บริการให้ถูกงาน: Google Cloud Region Picker ช่วยเทียบ region ตาม carbon footprint ราคา และ latency และ Performance Dashboard ของ Google แสดง latency ระหว่าง region ที่มี VM อยู่กับตำแหน่งบนอินเทอร์เน็ตของอุปกรณ์ปลายทาง โดยรวมผลเป็นระดับเมือง ภูมิภาค หรือประเทศได้ ส่วน AWS Network Manager Infrastructure Performance วัด latency ระหว่าง Region และระหว่างหรือภายใน Availability Zone ไม่ได้วัดไปถึงผู้ใช้ ต้องวัดฝั่งผู้ใช้แยก
  3. เก็บข้อมูลจากผู้ใช้จริง (real-user monitoring): ถ้าระบบเดิมมีผู้ใช้อยู่แล้ว ให้เก็บเวลาตอบสนองจาก browser หรือแอปของผู้ใช้ไว้เป็นค่าตั้งต้นก่อนย้าย แล้วเทียบหลังย้าย
  4. นับ latency ภายในระบบด้วย: ถ้าแอปเรียกฐานข้อมูลหรือ service อื่นหลายรอบต่อหนึ่งคำขอ ระยะระหว่างแอปกับฐานข้อมูลสำคัญพอ ๆ กับระยะถึงผู้ใช้ ระบบที่แยก service แล้วเรียกต่อกันเป็นทอด อาจเสียเวลาที่ได้จาก region ใกล้ผู้ใช้ไปหมด ตามที่ Microsoft เตือนไว้

ROI ของการปรับเป็น Cloud-Native คิดจากอะไร?

คิดจากต้นทุนทั้งหมดเทียบกับประโยชน์ที่วัดเทียบค่าตั้งต้นของระบบเดิมได้ เราไม่ใช้ตัวเลข ROI สำเร็จรูป เพราะผลขึ้นกับสภาพระบบและวิธีทำงานของแต่ละองค์กร สิ่งที่ควรนับมีดังนี้

ฝั่งต้นทุน

งานประเมินและงานปรับ code ค่า cloud และ license ค่าเครื่องมือ CI/CD และ monitoring ช่วงที่ต้องเดินระบบเดิมกับส่วนใหม่คู่กัน และการฝึกทีม หมวดต้นทุนและการเทียบ TCO หลายปีอธิบายไว้ในหัวข้อค่าใช้จ่ายของคู่มือ Cloud Migration สิ่งที่งาน Cloud-Native เพิ่มมาคือต้นทุนต่อเนื่องของการดูแลระบบที่มีหลายส่วน ซึ่งโตตามจำนวน service

ฝั่งประโยชน์

  • ความเร็วและความเสถียรในการส่งมอบ: ตัวชี้วัดของ DevOps Research and Assessment (DORA) ได้แก่ change lead time (ระยะเวลาจาก commit ถึง production), deployment frequency, failed deployment recovery time, change fail rate และ deployment rework rate เก็บค่าก่อนเริ่มแล้วเทียบหลังปรับแต่ละขั้น
  • เหตุขัดข้อง: จำนวนเหตุและเวลาที่ระบบใช้ไม่ได้ต่อเดือน รวมถึงเวลาที่ใช้กู้คืน
  • เวลาที่ใช้เปลี่ยนกฎทางธุรกิจหนึ่งข้อ: ตั้งแต่รับคำขอจนผู้ใช้ได้ใช้ ซึ่งผู้บริหารเห็นผลได้ง่าย
  • ต้นทุนที่ไม่ต้องจ่ายอีก: ค่า license ค่า support ของเวอร์ชันที่หมดอายุ hardware ที่ไม่ต้องซื้อรอบใหม่ และงานด้วยมือที่หายไป

การจัดกลุ่มนี้เป็นกรอบที่เราใช้ในงานจริง ไม่ใช่โมเดลทางการ ใช้เรียงลำดับว่าส่วนใดควรย้ายก่อน โดยเอาส่วนที่ประโยชน์ชัดและเสี่ยงต่ำขึ้นก่อน ซึ่งตรงกับหลักของ Strangler Fig ที่ให้ทำส่วนที่ ROI สูงก่อน การผูกตัวชี้วัดเหล่านี้กับเป้าหมายธุรกิจระดับองค์กรอยู่ในแผน Digital Transformation

ประเมินสถาปัตยกรรมระบบเดิมก่อนตัดสินใจ

ถ้ายังตอบไม่ได้ว่าระบบควรคงไว้ แบ่งโมดูลแล้วรันใน container หรือแยกบางส่วนเป็น service ให้เริ่มจากการประเมินสถาปัตยกรรมของระบบเดิม บริการ ดูแลและปรับปรุงระบบเดิม ของ UNIXDEV ประเมิน codebase และความเสี่ยงก่อน แล้วเลือกระหว่างแก้เฉพาะจุด ทยอยเปลี่ยน หรือพัฒนาใหม่ตามสภาพระบบ เมื่อเปลี่ยนจะทยอยทีละชั้นด้วยรูปแบบ Strangler Fig และ cut-over ที่มี rollback ไม่ใช่การเขียนใหม่ทั้งระบบในครั้งเดียว

ด้านโครงสร้างพื้นฐาน บริการ Cloud ของเราเลือกผู้ให้บริการจากความต้องการของ workload ได้แก่ อธิปไตยข้อมูล (sovereignty) latency ข้อกำหนดด้าน compliance กรอบต้นทุน และทักษะของทีม บางครั้งคำตอบคือ hybrid หรือ private cloud และงานย้ายระบบมีแผน cutover ที่วางตามลักษณะของแต่ละแอป พร้อม rollback เราไม่รับประกัน zero downtime ช่วงหยุดระบบที่ต้องใช้ประเมินได้หลังตรวจสถาปัตยกรรมและ dependency ของระบบจริง

ส่งข้อมูลระบบเท่าที่มี เช่น ภาษาและ framework ฐานข้อมูล วิธี deploy ปัจจุบัน และสิ่งที่อยากแก้ ผ่านแบบฟอร์มส่งโจทย์ได้

แหล่งอ้างอิงและอ่านต่อ

บทความโดย UNIXDEV Team · 3 พฤศจิกายน 2026 · ข้อมูล Cloud Region ตรวจจากหน้าของผู้ให้บริการ ณ วันที่เขียน ส่วนเรื่องกฎหมายเป็นการสรุปเพื่อประกอบการวางแผน ไม่ใช่คำแนะนำทางกฎหมาย

คำถามที่พบบ่อย

Cloud-Native คืออะไร ต่างจากการย้ายขึ้น Cloud อย่างไร?

Cloud-Native คือแนวทางสร้างและรันระบบให้ประกอบจากส่วนที่ผูกกันหลวม ๆ ทำงานร่วมกันอย่างปลอดภัย ทนต่อความผิดพลาด จัดการได้ ยั่งยืน และสังเกตการทำงานได้ ตามนิยามของ Cloud Native Computing Foundation (CNCF) ซึ่งใช้ได้ทั้งบน public cloud, private cloud และ hybrid cloud ส่วนการย้ายขึ้น Cloud คือการเปลี่ยนที่รันของระบบ ระบบที่ย้ายขึ้น Cloud แล้วจึงอาจยังไม่ใช่ Cloud-Native และระบบใน data center ขององค์กรก็ออกแบบแบบ Cloud-Native ได้

ระบบเก่าทุกระบบควรแตกเป็น Microservices ไหม?

ไม่ควร Martin Fowler ชี้ว่า microservices มีต้นทุนแฝงที่คุ้มเฉพาะกับระบบที่ซับซ้อนพอ และเรื่องสำเร็จเกือบทั้งหมดเริ่มจาก monolith ที่ใหญ่เกินไปแล้วจึงแยก ส่วน Microsoft Azure Architecture Center ระบุความท้าทาย เช่น ความซับซ้อน latency จาก service ที่เรียกต่อกันเป็นทอด ความถูกต้องของข้อมูลข้าม service และความต้องการวัฒนธรรม DevOps ที่โตแล้ว หลายระบบเหมาะกับการแบ่งโมดูลภายในให้ชัดแล้วรันเป็นชิ้นเดียวใน container มากกว่า

ต้องใช้ Kubernetes ถึงจะเป็น Cloud-Native ไหม?

ไม่จำเป็น นิยามของ CNCF ยกตัวอย่างเทคโนโลยีหลายแบบ เช่น container, microservices, serverless และ declarative API และระบุว่ารายการนี้ไม่ครบทุกแบบ Kubernetes เหมาะเมื่อ workload และทีมได้ประโยชน์คุ้มกับความซับซ้อนในการดูแลหลังติดตั้ง ระบบที่มีไม่กี่ส่วนอาจใช้บริการรัน container แบบ managed หรือ VM ที่ deploy อัตโนมัติก็พอ

ใช้ Cloud Region ในไทยแล้ว latency จะดีขึ้นแน่ไหม?

ไม่แน่เสมอไป ต้องวัดจากตำแหน่งที่ผู้ใช้อยู่จริง เช่น ตั้ง endpoint ทดสอบในแต่ละ region ที่พิจารณา แล้ววัดจากสำนักงาน สาขา เครือข่ายมือถือ และเครือข่ายของคู่ค้าในช่วงที่มีผู้ใช้มาก โดยดูทั้งค่ามัธยฐาน (p50) และค่าช่วงที่ช้า เช่น p95 หรือ p99 นอกจากนี้ ถ้าแอปเรียกฐานข้อมูลหรือ service อื่นหลายรอบต่อหนึ่งคำขอ หรือแยก service แล้วเรียกต่อกันเป็นทอด เวลาที่เสียภายในระบบอาจกลบเวลาที่ได้จาก region ที่ใกล้ผู้ใช้ไปหมด

ROI ของการปรับระบบเป็น Cloud-Native คิดจากอะไร?

เทียบต้นทุนทั้งหมด ได้แก่ งานปรับระบบ ค่า cloud ช่วงเดินระบบคู่ขนาน และการฝึกทีม กับประโยชน์ที่วัดเทียบค่าตั้งต้นก่อนเริ่มได้ เช่น ตัวชี้วัดของ DevOps Research and Assessment (DORA) อย่างระยะเวลาจาก commit ถึง production และความถี่ในการ deploy จำนวนเหตุขัดข้องและเวลาที่ระบบใช้ไม่ได้ เวลาที่ใช้แก้กฎทางธุรกิจหนึ่งข้อ และค่า license หรือค่า support ของเวอร์ชันหมดอายุที่ไม่ต้องจ่ายอีก บทความนี้ไม่ใช้ตัวเลข ROI สำเร็จรูป เพราะผลขึ้นกับระบบและค่าตั้งต้นของแต่ละองค์กร