Serverless vs Containers ក្នុងឆ្នាំ 2026៖ សាលក្រមចុងក្រោយ | B4N1

Serverless vs Containers ក្នុងឆ្នាំ 2026៖ សាលក្រមចុងក្រោយ

3 months ago · b4n1 Read time: 9 min

Serverless vs Containers ក្នុងឆ្នាំ 2026៖ សាលក្រមចុងក្រោយ

ប្រព័ន្ធ​អេកូ​ដើម​កំណើត​ពពក​បាន​រីក​ចម្រើន​យ៉ាង​ខ្លាំង​ក្នុង​មួយ​ទសវត្សរ៍​ចុង​ក្រោយ​នេះ។ នៅឆ្នាំ 2026 អ្នកអភិវឌ្ឍន៍ និងស្ថាបត្យករតែងតែជ្រើសរើសរវាង មុខងារគ្មានម៉ាស៊ីនមេ (មុខងារ-as-a-Service, FaaS) និង បន្ទុកការងារផ្អែកលើកុងតឺន័រ (Kubernetes, ម៉ោងដំណើរការដែលត្រូវគ្នានឹង OCI និងបច្ចេកវិទ្យា sandbox ដែលកំពុងលេចចេញ)។ គំរូទាំងពីរសន្យាថា "គ្មានការops-to-manage" ហេដ្ឋារចនាសម្ព័ន្ធ ប៉ុន្តែការដោះដូរមានការរីកចំរើនជាងមុន ដោយសារការអនុវត្ត ការសង្កេត សុវត្ថិភាព និងគំរូនៃការចំណាយបញ្ចូលគ្នា។

អត្ថបទនេះផ្តល់នូវការប្រៀបធៀបយ៉ាងស៊ីជម្រៅនៃ serverless និង containers គិតត្រឹមឆ្នាំ 2026។ យើងពិនិត្យមើលលក្ខណៈស្ថាបត្យកម្ម ការពិចារណាប្រតិបត្តិការ សក្ដានុពលនៃការចំណាយ ឥរិយាបថសុវត្ថិភាព និងករណីប្រើប្រាស់ក្នុងពិភពលោកពិត ហើយយើងសន្និដ្ឋានជាមួយនឹងម៉ាទ្រីសនៃការសម្រេចចិត្តដែលជួយក្រុមកំណត់គំរូដ៏ល្អប្រសើរសម្រាប់បន្ទុកការងារដែលបានផ្តល់ឱ្យ។


តារាងមាតិកា

  1. សេចក្តីផ្តើម
  2. មូលនិធិស្ថាបត្យកម្ម
  3. ការអនុវត្ត និងការធ្វើមាត្រដ្ឋាន
    • 3.1 Cold Starts vs Warm Pools
    • 3.2 [យន្តការធ្វើមាត្រដ្ឋានផ្ដេក] (#horizontal-scaling-mechanics)
  4. រចនាសម្ព័ន្ធតម្លៃ
  5. Observability & Debugging
  6. សុវត្ថិភាព និងអនុលោមភាព
  7. បទពិសោធន៍អ្នកអភិវឌ្ឍន៍ និងប្រព័ន្ធអេកូ
  8. [ករណីសិក្សា & លក្ខណៈវិនិច្ឆ័យ] (#case-studies)
  9. Decision Matrix
  10. សេចក្តីសន្និដ្ឋាន

សេចក្តីផ្តើម

គ្មានម៉ាស៊ីនមេ និងកុងតឺន័រ ធ្លាប់ត្រូវបានគិតថាជាផ្លូវផ្តាច់មុខទៅវិញទៅមកទៅកាន់ "មូលដ្ឋានពពក"។ សព្វ​ថ្ងៃ​នេះ​ពួក​គេ​រួម​រស់​នៅ​ក្នុង ** polyglot runtime fabric** ដែល​មាន​ស្ថាប័ន​ជា​ច្រើន​ដំណើរ​ការ​ម៉ូដែល​ទាំង​ពីរ​នៅ​ខាង​គ្នា។ ការសម្រេចចិត្តគឺតិចជាងអំពី "មួយណាល្អជាង" និងច្រើនទៀតអំពី ការផ្គូផ្គងលក្ខណៈនៃបន្ទុកការងារទៅនឹងការធានាពេលដំណើរការ។

នៅឆ្នាំ 2026 និន្នាការម៉ាក្រូចំនួនបីបង្កើតការជជែកដេញដោលគ្នា៖

និន្នាការ ផលប៉ះពាល់លើ Serverless ផលប៉ះពាល់លើកុងតឺន័រ
** Edge-first Computing** ពេលដំណើរការមុខងារឥឡូវនេះដាក់ពង្រាយដើមកំណើតទៅថ្នាំងគែមដែលបានចែកចាយ (AWS Lambda@Edge 2.0, Cloudflare WorkersR2) ជាមួយនឹងបណ្តាញ hops រងមីលីវិនាទី។ Container-orchestrated edge (K3s, K8s-lite) ទទួលបានការគាំទ្រ "micro-node" ប៉ុន្តែភាពយឺតនៃការទាញរូបភាពនៅតែជាឧបសគ្គ។
** ប្រតិបត្តិការ AI-augmented (AIOps)** ការបន្ធូរបន្ថយការចាប់ផ្តើមត្រជាក់ដោយស្វ័យប្រវត្តិ និងការធ្វើមាត្រដ្ឋានព្យាករណ៍ ប្រើគំរូ ML ដែលបានបង្កប់នៅក្នុងយន្តហោះគ្រប់គ្រងរបស់អ្នកផ្តល់សេវា។ ឧបករណ៍បញ្ជាឥឡូវនេះ ការដាក់ pod ដោយស្វ័យប្រវត្តិដោយផ្អែកលើ telemetry ពេលវេលាជាក់ស្តែង ប៉ុន្តែត្រូវការអ្នកជំនាញបន្ថែមពីប្រតិបត្តិករ។
Zero-Trust Service Meshes យានជំនិះកម្រិតមុខងារ (ឧ. OpenFaaS + Kuma) អនុញ្ញាត mTLS តាមការអញ្ជើញដោយមិនលះបង់ការចេញវិក្កយបត្របង់ប្រាក់ក្នុងមួយដង។ Service mesh per-pod overhead នៅតែអាចកត់សម្គាល់បានសម្រាប់បន្ទុកការងារដែលមានទម្ងន់ស្រាលបំផុត។

ការយល់ដឹងអំពីការផ្លាស់ប្តូរទាំងនេះគឺចាំបាច់សម្រាប់ ស្ថាបត្យកម្មដែលការពារអនាគត។ ផ្នែកដែលធ្វើតាមការញែកវិមាត្រនីមួយៗជាមួយនឹងទិន្នន័យ គំរូកូដ និងការណែនាំជាក់ស្តែង។


មូលដ្ឋានគ្រឹះស្ថាបត្យកម្ម

គំរូប្រតិបត្តិដោយគ្មានម៉ាស៊ីនមេ

វេទិកាគ្មានម៉ាស៊ីនមេអរូបីលើសពីការផ្តល់ VM ប៉ុណ្ណោះ។ ជង់ធម្មតានៅឆ្នាំ 2026 មើលទៅដូចនេះ:

  1. API Gateway / Event Router – គ្រប់គ្រង HTTP, WebSocket, Pub/Sub ឬប្រភពព្រឹត្តិការណ៍ផ្ទាល់ខ្លួន។
  2. Invocation Engine – ព្រឹត្តិការណ៍ផែនទីចំពោះមុខងារកំណត់អត្តសញ្ញាណ ដោះស្រាយកំណែពេលដំណើរការ និងផ្តល់ ប្រអប់ខ្សាច់ប្រតិបត្តិ។
  3. Sandbox – នៅក្នុងពពកសាធារណៈភាគច្រើន នេះគឺជា micro-VM (Firecracker, gVisor) ឬ WebAssembly runtime (WasmEdge) ជាមួយនឹង ns-jail ដាច់ដោយឡែក។
  4. Runtime – Cold-start រួមបញ្ចូលការផ្ទុកភាសាដែលកំពុងដំណើរការ (Node.js 22, Python3.12, Go 1.22) និងភាពអាស្រ័យដែលបានប្រកាសណាមួយ។
  5. ការផ្ទុកមិនទៀងទាត់ – 512MiB នៃ tmpfs ក្នុងមួយការស្នើសុំ (លៃតម្រូវបានសម្រាប់អ្នកផ្តល់សេវា) បន្តសម្រាប់តែជីវិតនៃសំណើនេះ។

** លក្ខណៈសំខាន់ៗ **៖

  • ** Pay-per-execution**៖ វិក្កយបត្រវិក័យប័ត្រគឺនៅក្នុងការបង្កើន 1ms សម្រាប់កុំព្យូទ័រ និង 0.01GiB-វិនាទីសម្រាប់អង្គចងចាំ។
  • ការធានាគ្មានរដ្ឋ៖ គ្មានរដ្ឋក្នុងតំបន់ជាប់លាប់។ ត្រូវតែប្រើប្រាស់ខាងក្រៅទៅកាន់សេវាកម្មប្រើប្រាស់បានយូរ (DB, object store, KV store)។
  • ការធ្វើមាត្រដ្ឋានដែលជំរុញដោយព្រឹត្តិការណ៍៖ អ្នកផ្តល់សេវាបង្កើតប្រអប់ខ្សាច់ថ្មីភ្លាមៗ ដោយផ្អែកលើអត្រាព្រឹត្តិការណ៍ចូល។

Sample Serverless Function (Node.js)

``យ៉ាម

serverless.yml - AWS SAM (2026 edition)

AWSTemplateFormatVersion: '2010-09-09' បំលែង៖ AWS::Serverless-2026-03-01 ធនធាន៖ មុខងារប្ដូរទំហំរូបភាព៖ ប្រភេទ៖ AWS::Serverless::Function លក្ខណៈសម្បត្តិ៖ ពេលវេលាដំណើរការ៖ nodejs22.x ទំហំអង្គចងចាំ៖ 256 # MiB អស់ពេល៖ 30 # វិនាទី អ្នកដោះស្រាយ៖ index.handler CodeUri៖ src/ គោលការណ៍៖ - S3ReadPolicy៖ BucketName៖ ប្រភព-រូបភាព - S3WritePolicy៖ BucketName៖ ប្តូរទំហំរូបភាព បរិស្ថាន៖ អថេរ៖ TARGET_SIZES៖ "128,256,512"


---

### ម៉ូដែលពេលដំណើរការកុងតឺន័រ  

កុងតឺន័រនៅតែជាភាសារបារាំងសម្រាប់បន្ទុកការងារដែលត្រូវការ **ដំណើរការដែលមានអាយុកាលយូរ** ** ភាពអាស្រ័យ OS ផ្ទាល់ខ្លួន** ឬ ** ការគ្រប់គ្រងល្អិតល្អន់ ** លើបណ្តាញ និងការផ្ទុក។ នៅឆ្នាំ 2026 ជង់លេចធ្លោរួមមាន:

1. **Container Engine** – ពេលវេលាដំណើរការដែលត្រូវគ្នានឹង OCI (containerd 2.0, cri‑o) ជាមួយនឹង `kata-runtime` សម្រាប់ភាពឯកោដែលគាំទ្រដោយផ្នែករឹង។
2. **Orchestrator** – Kubernetes 1.30+ ជាមួយនឹងការគាំទ្រដែលភ្ជាប់មកជាមួយសម្រាប់ **Ephemeral Containers**, **Pod-Level Autoscaling (PPA)**, និង **Serverless-like Knative Serving**។
3. **Service Mesh** – Istio2.0, Linkerd2.13, ឬ **Consul Connect v2** ផ្តល់នូវ per-pod mTLS និងការកំណត់ផ្លូវចរាចរណ៍។
4. **ការចែកចាយរូបភាព** - ការចុះឈ្មោះ OCI ជាមួយនឹង **Sigstore** verification, layer caking across clusters, and **ZSTD-compressed layers** for the bandwidth.

** លក្ខណៈសំខាន់ៗ **៖

- **ការបែងចែកធនធានដែលអាចទស្សន៍ទាយបាន**៖ Pods ប្រកាសសំណើ CPU, memory, និង accelerator; កម្មវិធីកំណត់ពេលអនុវត្តដែនកំណត់។
- **ជម្រើសនៃការផ្ទុកជាប់លាប់**៖ StatefulSets, កម្មវិធីបញ្ជា CSI និង **បរិមាណក្នុងជួរមិនទៀងទាត់**។
- ** ទំពក់ Lifecycle **៖ PreStop, PostStart, និង **GracefulShutdown** សម្រាប់ការរិចរិលដ៏ប្រណិត។

#### ការដាក់ពង្រាយ Kubernetes គំរូ (គំនិត)

``យ៉ាម
apiVersion៖ serving.knative.dev/v1
ប្រភេទ៖ សេវាកម្ម
ទិន្នន័យមេតា៖
  ឈ្មោះ៖ រូបភាព-resizer
បញ្ជាក់៖
  គំរូ៖
    ទិន្នន័យមេតា៖
      ចំណារពន្យល់៖
        autoscaling.knative.dev/minScale៖ "5"
        autoscaling.knative.dev/maxScale: "2000"
        autoscaling.knative.dev/target: "80"
    បញ្ជាក់៖
      កុងតឺន័រស្របគ្នា៖ ៥០
      ធុង៖
        - រូបភាព៖ ghcr.io/example/image-resizer:1.4.2
          ធនធាន៖
            ដែនកំណត់៖
              cpu: "500m"
              អង្គចងចាំ៖ "៥១២ ម៉ៃ"
          env:
            - ឈ្មោះ៖ TARGET_SIZES
              តម្លៃ៖ "128,256,512"

Knative បន្ថែមការអរូបីដែលគ្មានម៉ាស៊ីនមេនៅលើកំពូលនៃកុងតឺន័រ ដែលអនុញ្ញាតឱ្យអ្នកទទួលបានអត្ថប្រយោជន៍ពី ភាពបត់បែនរបស់កុងតឺន័រ ខណៈពេលដែលទទួលបាន ការធ្វើមាត្រដ្ឋានដោយស្វ័យប្រវត្តិ ស្រដៀងទៅនឹង FaaS។


ការអនុវត្ត និងមាត្រដ្ឋាន

Cold Starts vs Warm Pools

ម៉ែត្រ (2026 ជាមធ្យម) Serverless (Firecracker) Serverless (Wasm) កុងតឺន័រ (K8s)
ភាពយឺតយ៉ាវនៃការចាប់ផ្តើមត្រជាក់ 45ms (256MiB) 12ms (គ្មានពេលរត់) N/A (pods នៅតែបន្ត)
** ភាពយឺតនៃកុងតឺន័រក្តៅ ** 5ms (ឃ្លាំងសម្ងាត់មូលដ្ឋាន) 1ms (Wasm JIT) 0-2ms (ដំណើរការកំពុងដំណើរការ)
បន្ធូរបន្ថយ * បញ្ញត្តិដែលបានផ្តល់* (AWS), * អាងកក់ក្ដៅ* (Azure) ម៉ូឌុល WASM ដែលត្រូវបានកំដៅមុន (Cloudflare) Pod Autoscaler ជាមួយ pause containers

Key Insight៖ នៅឆ្នាំ 2026 អ្នកផ្តល់សេវាជាច្រើនផ្តល់ជូន អាងកក់ក្ដៅជាសេវាកម្ម ក្នុងតម្លៃបុព្វលាភតិចតួច (ឧ. 0.02USD ក្នុងមួយការអំពាវនាវក្តៅ 10k)។ សម្រាប់ APIs latency-sensitive (<10ms) មុខងារដែលមានមូលដ្ឋានលើ WASM ជារឿយៗវាយ micro-VMs ប៉ុន្តែដំណើរការដែលមានដើមកំណើតនៅក្នុងកុងតឺន័រនៅតែមានគែមនៅពេលដែលបន្ទុកការងារលើសពីពីរបីរយមីលីវិនាទីនៃពេលវេលាគណនា។

យន្តការធ្វើមាត្រដ្ឋានផ្ដេក

  • ** គ្មានម៉ាស៊ីនបម្រើ **៖ ការធ្វើមាត្រដ្ឋានគឺ គ្មានរដ្ឋ និង ** ជំរុញដោយព្រឹត្តិការណ៍ **; អ្នកផ្តល់សេវាអាចបង្វិល ** ប្រអប់ខ្សាច់រាប់ពាន់ក្នុងមួយវិនាទី ** ។ ទោះជាយ៉ាងណាក៏ដោយ មួកបិទបើកទូទាំងតំបន់ (ឧ. ការអំពាវនាវស្របគ្នា 10k ក្នុងមួយគណនី) នៅតែមាន ហើយត្រូវតែត្រូវបានគ្រោងទុកតាមរយៈ កូតាផ្ទុះ។
  • កុងតឺន័រ៖ ការធ្វើមាត្រដ្ឋានកើតឡើងតាមរយៈ Horizontal Pod Autoscaler (HPA) ឬ Keda សម្រាប់រង្វាស់ប្រភពព្រឹត្តិការណ៍។ ល្បឿនធ្វើមាត្រដ្ឋានត្រូវបានកំណត់ដោយ ភាពយឺតនៃកម្មវិធីកំណត់ពេល (ជាមធ្យម 300ms សម្រាប់ការដាក់ផតថ្មី) និងពេលវេលាទាញរូបភាព (លុះត្រាតែទុកក្នុងឃ្លាំងសម្ងាត់)។ រូបភាព-ទាញមុន ថ្មីជាងនេះ DaemonSets និង ** node-local cache** កាត់បន្ថយបញ្ហានេះ។

វិធីសាស្រ្តកូនកាត់៖ ដាក់ពង្រាយ សេវាកម្មនិទាន គាំទ្រដោយ រូបភាពកុងតឺន័រ ដែលដំណើរការក្នុងប្រអប់ខ្សាច់ (gVisor) ខណៈពេលដែលអនុញ្ញាតឱ្យ ការកែប្រែដោយស្វ័យប្រវត្តិតាមការកំណត់។ នេះផ្តល់ឱ្យអ្នកនូវអ្វីដែលល្អបំផុតនៃពិភពលោកទាំងពីរ – ការធ្វើមាត្រដ្ឋានលឿនសម្រាប់ចរាចរណ៍ផ្ទុះ និងសមត្ថភាពក្នុងការដឹកជញ្ជូនប្រព័ន្ធគោលពីរដើម។


រចនាសម្ព័ន្ធចំណាយ

ការចេញវិក្កយបត្រល្អិតល្អន់

ឯកតាវិក័យប័ត្រ Serverless (2026) កុងតឺន័រ (K8s លើសេវាកម្មគ្រប់គ្រង)
** កុំព្យូទ័រ ** $0.000013 ក្នុងមួយជីកាបៃវិនាទី (AWS Lambda) $0.04 ក្នុងមួយ vCPU-hour (EKS)
ការចងចាំ ដុតក្នុងការគណនាតម្លៃ $0.008 ក្នុង​មួយ GB-hour
សំណូមពរ $0.0000004 ក្នុងមួយការអំពាវនាវ 1k ឥតគិតថ្លៃ (ប៉ុន្តែត្រូវចំណាយលើថ្នាំង)
ការផ្ទេរទិន្នន័យ $0.09 ក្នុងមួយជីកាបៃ (ចេញក្រៅប្រទេស) ដូចគ្នានឹងអ្នកផ្តល់សេវាដែរ ប៉ុន្តែអាចត្រូវបានកាត់បន្ថយជាមួយ VPC ឯកជន

ឧទាហរណ៍រូបភាព៖ មុខងារដែលដំណើរការព្រឹត្តិការណ៍ 1M ដែលនីមួយៗប្រើប្រាស់ 128MiB សម្រាប់ 200ms មានតម្លៃប្រហែល $2.60 នៅលើវេទិកាគ្មានម៉ាស៊ីនមេសុទ្ធ។ បន្ទុកការងារដូចគ្នាទៅនឹងសេវាមីក្រូកុងតឺន័រនៅលើថ្នាំង t3.medium ចំនួនបី (2vCPU, 4GiB) នឹងត្រូវចំណាយអស់ ≈$7.20 ក្នុងមួយខែ (រាប់បញ្ចូលទាំងថ្នាំងខាងលើ) ប្រសិនបើថ្នាំងនៅតែប្រើប្រាស់បានពេញលេញ។ សមតុល្យផ្លាស់ប្តូរយ៉ាងខ្លាំងនៅពេលដែលការប្រើប្រាស់ធ្លាក់ចុះក្រោម ~ 35% ។

យុទ្ធសាស្ត្រកំណត់សមត្ថភាព និងកន្លែង

  • Serverless៖ ឥឡូវនេះអ្នកផ្តល់សេវាផ្តល់ជូន រូបិយបណ្ណដែលបានបម្រុងទុក (ឧ. "ផែនការសន្សំប្រាក់ស្របគ្នា") ដែលបញ្ចុះតម្លៃរហូតដល់ 30% សម្រាប់បន្ទុកការងារដែលអាចព្យាករណ៍បាន។
  • កុងតឺន័រ៖ ថ្នាំង Spot (Preemptible) អាចកាត់បន្ថយការចំណាយលើការគណនាបាន 80% ប៉ុន្តែណែនាំ ហានិភ័យនៃការបណ្តេញចេញ។ ការរួមបញ្ចូល Spot ជាមួយនឹង Pod Disruption Budgets និង Pubernetes-based checkpointing (តាមរយៈ CRIU) អាចសម្រេចបាននូវភាពអាចរកបានខ្ពស់ក្នុងតម្លៃទាប។

បញ្ជីត្រួតពិនិត្យការបង្កើនប្រសិទ្ធភាពតម្លៃ

  1. កំណត់ទម្រង់ ពេលវេលាប្រតិបត្តិជាមធ្យម និង ការចងចាំ នៃមុខងាររបស់អ្នក។
  2. ប្រសិនបើរយៈពេលជាមធ្យម > 5 វិនាទី សូមពិចារណា ការវេចខ្ចប់ ដើម្បីជៀសវាងការចេញវិក្កយបត្រក្នុងមួយលើក។
  3. សម្រាប់ចរាចរណ៍ដ៏ខ្លាំង សូមបើកដំណើរការ រូបិយប័ណ្ណស្របគ្នាដែលបានផ្តល់ ឬ អាងកក់ក្ដៅ ដើម្បីកាត់បន្ថយភាពយឺតយ៉ាវក្នុងការចំណាយដែលអាចព្យាករណ៍បាន។
  4. អានុភាព Karpenter ឬ Cluster Autoscaler ជាមួយ Spot + On-Demand mix សម្រាប់តម្លៃ/ដំណើរការល្អបំផុត។

ការសង្កេត និងការបំបាត់កំហុស

លក្ខណៈពិសេស Serverless (2026) កុងតឺន័រ (K8s)
ការតាមដានចែកចាយ ការរួមបញ្ចូលកាំរស្មីអ៊ិច, ឧបករណ៍ស្វ័យប្រវត្តិ OpenTelemetry (លេខសម្គាល់ដានបានឆ្លងកាត់ x-amzn-trace-id) OpenTelemetry sidecar ឬ OTel Collector daemonset
ម៉ែត្រ ឧបករណ៍វាស់ស្ទង់ CloudWatch ដែលភ្ជាប់មកជាមួយ (ការអំពាវនាវ កំហុស បិទបើក) Prometheus, kube-state-metrics, អ្នកនាំចេញផ្ទាល់ខ្លួន
កំណត់ហេតុ ការស្ទ្រីមកំណត់ហេតុកណ្តាល (កំណត់ហេតុ CloudWatch, Azure Monitor) – ភាពយឺតនៃកំណត់ហេតុ ≤ 2s បំពង់ស្រូបប៊ីត/ស្ទាត់ជំនាញ; កំណត់ហេតុអាចត្រូវបានបន្តទៅ Loki ឬ Elasticsearch
** ការបំបាត់កំហុសបន្តផ្ទាល់ ** ជំហានតាមរយៈ AWS LambdaSnapStart Debugger (មើលជាមុន) – កំណត់ត្រឹម <10s sessions kubectl exec ចូលទៅក្នុង pod, k9s, ឬ kubectl debug ជាមួយនឹងកុងតឺន័រ Ephemeral
ការជូនដំណឹង ការដាស់តឿនលើកម្រិត ការបិទបើក ឬ ការប្រតិបត្តិស្របគ្នា ការដាស់តឿនលើលក្ខខណ្ឌ PodReady, CPU throttling, OOMKilled events

ឧទាហរណ៍កូដ – ឧបករណ៍ OpenTelemetry (Python)

``ពស់ថ្លាន់

handler.py – ទូទៅសម្រាប់ Serverless & Container

នាំចូល os ពី aws_lambda_powertools import Logger, Tracer ពី opentelemetry ដាននាំចូល ពី opentelemetry.instrumentation.aws_lambda នាំចូល AwsLambdaInstrumentor ពី opentelemetry.instrumentation.requests នាំចូល RequestsInstrumentor

tracer = trace.get_tracer(name)

ពេលវេលាដំណើរការ Lambda ឧបករណ៍ស្វ័យប្រវត្តិ

AwsLambdaInstrumentor(.instrument() RequestsInstrumentor().instrument()

អ្នកកាប់ឈើ = អ្នកកាប់ឈើ (សេវាកម្ម = "រូបភាព-resizer") tracer = Tracer (សេវា = "រូបភាព-resizer")

@logger.inject_lambda_context @tracer.capture_lambda_handler def handler (ព្រឹត្តិការណ៍ បរិបទ)៖ logger.info({"msg": "Invocation started", "eventId": context.aws_request_id}) #តក្កវិជ្ជាអាជីវកម្មនៅទីនេះ... ត្រឡប់ {"statusCode": 200, "body": "OK"}


នៅពេលដាក់ពង្រាយទៅកាន់កុងតឺន័រ លេខកូដដូចគ្នាដំណើរការជាមួយ **OTel Collector** sidecar បញ្ជូនបន្តដានទៅកាន់ផ្នែកខាងក្រោយ Jaeger ។

---

## សុវត្ថិភាព និងអនុលោមភាព  

### ការធានាពីភាពឯកោ

| យន្តការឯកោ | Serverless (2026) | កុងតឺន័រ |
|--------------------|--------------------------------|------------------|
| **ដំណើរការឯកោ** | Micro‑VM (Firecracker) ឬ Wasm sandbox – កម្រិត Hardware- Virtualization; ការអំពាវនាវនីមួយៗទទួលបានបរិបទ VCPU របស់ខ្លួន។ | Namespaces + cgroups; ជាជម្រើស **Kata Containers** សម្រាប់ Hardware-assisted VM isolation។ |
| **ការចូលប្រើជា Root** | គ្មានឫស; មុខងារដំណើរការជាអ្នកប្រើប្រាស់ដែលមិនមានសិទ្ធិ `sbx_user`។ | កុងតឺន័រអាចដំណើរការជា root លុះត្រាតែអនុវត្ត `runAsNonRoot` ។ ក្របខ័ណ្ឌគោលនយោបាយ (OPA Gatekeeper) អាចដាក់កម្រិត។ |
| ** ភាពឯកោបណ្តាញ ** | តាមការអញ្ជើញ ENI ឬ **VPC-ដើម** ENI; ចរាចរណ៍ចេញក្រៅគ្រប់គ្រងដោយក្រុមសន្តិសុខ។ | គោលនយោបាយបណ្តាញនៅកម្រិត pod; បណ្តាញត្រួតលើគ្នាអាចបន្ថែមភាពឯកោបន្ថែម។ |

**Supply-Chain Hardening**៖ គំរូទាំងពីរឥឡូវនេះទាមទារ **ការផ្ទៀងផ្ទាត់ SBOM** នៅពេលដាក់ពង្រាយ។ Serverless frameworks គាំទ្រ **ការផ្ទៀងផ្ទាត់ Sigstore** នៃ function code zip ខណៈពេលដែលកុងតឺន័រដំណើរការរយៈពេលអាចបង្ខំ **cosign** signatures នៅលើរូបភាពមុនពេលទាញ។

** គោលការណ៍គំរូ - OPA Gatekeeper សម្រាប់មុខងារ Wasm **

`` រីហ្គោ
កញ្ចប់ kubernetes.admission

បដិសេធ[msg] {
  input.request.kind.kind == "មុខងារ"
  input.request.object.spec.runtime == "nodejs22.x"
  មិន input.request.object.spec.tracing.enabled
  msg = sprintf("ការតាមដានត្រូវតែបើកសម្រាប់ %s", [input.request.object.metadata.name])
}

បទពិសោធន៍អ្នកអភិវឌ្ឍន៍ និងប្រព័ន្ធអេកូឡូស៊ី

ឧបករណ៍ (IaC, CI/CD, Local Emulation)

  • ** គ្មានម៉ាស៊ីនបម្រើ **៖

    • Frameworks: AWS SAM2026, Serverless Framework v4, Azure Functions Core Tools 4.
    • កម្មវិធីត្រាប់តាមមូលដ្ឋាន៖ sam local start-api ដោយប្រើ Firecracker; ** WasmEdge ** ពេលវេលាដំណើរការក្នុងតំបន់សម្រាប់មុខងារគែម។
      • CI Integration*៖ ដាក់ពង្រាយតាមរយៈ GitHub Actions aws-actions/aws-sam-deploy ជាមួយនឹង ការកសាងបន្ថែម (មានតែស្រទាប់ដែលបានផ្លាស់ប្តូរប៉ុណ្ណោះ)។
  • ** កុងតឺន័រ **៖

    • IaC៖ Helm 3, Kustomize, Pulumi (TypeScript, Go)។
    • Local: kind (Kubernetes IN Docker) + Kargo សម្រាប់ GitOps; docker compose សម្រាប់ multi-service dev loops។
    • CI/CD៖ Argo CD សម្រាប់ការចែកចាយបន្ត បំពង់ Tekton សម្រាប់ការសាងសង់កុងតឺន័រ ko សម្រាប់ Go binary-to-image ដោយគ្មាន Dockerfiles។

ជំហាន CI គំរូ – បង្កើត និងប្រើប្រាស់មុខងារ Serverless

``យ៉ាម

.github/workflows/deploy.yml

ឈ្មោះ៖ ដាក់ពង្រាយ នៅលើ៖ រុញ៖ សាខា៖ [ចម្បង] ការងារ៖ ដាក់ពង្រាយ៖ ដំណើរការលើ៖ ubuntu-latest ជំហាន៖ - ការប្រើប្រាស់៖ actions/checkout@v3 - ការប្រើប្រាស់៖ actions/setup-node@v3 ជាមួយ៖ កំណែថ្នាំង៖ '២២' - រត់៖ npm ci && npm រត់ build - ប្រើប្រាស់៖ aws-actions/configure-aws-credentials@v2 ជាមួយ៖ តួនាទីដើម្បីសន្មត់៖ ${{ secrets.AWS_ROLE_ARN }} aws-តំបន់៖ us-east-1 - ដំណើរការ៖ sam deploy --no-confirm-changeset --no-fail-on-empty-changeset env: SAM_TEMPLATE_FILE៖ template.yaml


---

### ការគាំទ្រភាសា និងពេលដំណើរការ  

| Runtime | Serverless Support (2026) | ការគាំទ្រកុងតឺន័រ |
|--------|----------------------------------------------------------------|
| **ចាវ៉ា** | ការបង្កើនប្រសិទ្ធភាពរូបភាពដើម GraalVM ការចាប់ផ្តើមត្រជាក់ ~60ms | Full JDK, hot-reload តាមរយៈ Spring DevTools |
| ** Node.js** | Node.js22 (V8 12.3) – ទំពក់ async ដែលភ្ជាប់មកជាមួយ | ពេលរត់ដូចគ្នា បូករួមទាំងសមត្ថភាពដំណើរការ **pnpm** workspaces |
| **Python** | Python3.12 ជាជម្រើស **PyPy** sandbox | CPython ពេញលេញ + ផ្នែកបន្ថែមដើម |
| **ទៅ** | ដើមចងក្រង binary, ប្រតិបត្តិក្នុង Firecracker; ~ 15ms ចាប់ផ្តើមត្រជាក់ | គោលពីរដូចគ្នា អាចត្រូវបានបង្កើតជាមួយ `CGO_ENABLED=0` សម្រាប់រូបភាពតិចតួចបំផុត |
| **ច្រេះ** | WasmEdge + `wasmtime` – ការចាប់ផ្តើមត្រជាក់ 3ms (Wasm) | រូបភាព OCI អប្បបរមា (`scratch`) – 1ms ចាប់ផ្តើមប្រសិនបើឃ្លាំងសម្ងាត់ជាមុន |

**Key Takeaway**៖ សម្រាប់ *ភាសាដែលបានចងក្រង* (Go, Rust, Java native) គម្លាតនៃការអនុវត្តរួមតូច ហើយគ្មានម៉ាស៊ីនមេ មានភាពទាក់ទាញ សូម្បីតែករណីប្រើប្រាស់ដែលមានភាពយឺតយ៉ាវតិចក៏ដោយ។

---

## ករណីសិក្សា & លក្ខណៈវិនិច្ឆ័យ  

### ដំណើរការព្រឹត្តិការណ៍ឆ្លងកាត់កម្រិតខ្ពស់  

**សេណារីយ៉ូ**៖ ការបញ្ចូលការចុចស្ទ្រីមតាមពេលវេលាជាក់ស្តែងនៅព្រឹត្តិការណ៍ 500k/s ព្រឹត្តិការណ៍នីមួយៗ ≤ 5KB ។  

| វិធីសាស្រ្ត | ភាពយឺតយ៉ាវជាមធ្យម | តម្លៃ (USD/ខែ) | Ops Overhead |
|----------|----------------|----------------|----------------|
| **Serverless (AWS Lambda + Kinesis)** | 18ms (99th pct) | $1,800 | តិចតួចបំផុត – គ្មានការកំណត់មាត្រដ្ឋាន |
| **កុងតឺន័រ (K8s + Strimzi + អ្នកប្រើប្រាស់ច្រែះ)** | 12ms (99th pct) | $2,100 (3 t3.large nodes) | តម្រូវឱ្យធ្វើមាត្រដ្ឋានដោយស្វ័យប្រវត្តិ និងការត្រួតពិនិត្យ |
| ** កូនកាត់ (រូបភាព + ច្រែះ) ** | 13ms (99th pct) | $1,950 (2 ថ្នាំង + អាងទឹកក្តៅ) | កម្រិតមធ្យម – CRDs ដើមដើម្បីគ្រប់គ្រង |

**សេចក្តីសន្និដ្ឋាន**៖ Serverless ឈ្នះលើភាពសាមញ្ញ និងការចំណាយរបស់ ops នៅពេលដែលតក្កវិជ្ជាដំណើរការគឺគ្មានរដ្ឋ និងសមនឹងក្នុងដែនកំណត់ប្រតិបត្តិអតិបរមា 15s ។ លីបផ្ទាល់ខ្លួនធ្ងន់ (ឧ. កូឌិកដែលមានកម្មសិទ្ធិ) ជំរុញការសម្រេចចិត្តឆ្ពោះទៅកាន់កុងតឺន័រ។

### Latency-Critical APIs  

** សេណារីយ៉ូ**៖ សេវាសម្រង់ហិរញ្ញវត្ថុជាមួយនឹងភាពយឺតយ៉ាវ 99 ភាគរយ SLA នៃ ≤3ms ។  

- **កម្មករ Cloudflare ដែលមានមូលដ្ឋានលើ Wasm** បានចែកចាយជាបន្តបន្ទាប់ **1.8ms** ដោយសារភាពជិតគែម និងអនុ ms WASM JIT ។
- **មុខងារ Firecracker** នៅលើ AWS សម្រេចបាន **2.9ms** បន្ទាប់ពីកំណត់រចនាសម្ព័ន្ធ **Provisioned Concurrency** (10k warm invocation)។
- **សេវាកម្ម Containerized Go** នៅលើថ្នាំងដែកទទេជាក់លាក់ (តាមរយៈ AWS Outposts) បានបុក **2.2ms** ប៉ុន្តែតម្រូវឱ្យមានការលៃតម្រូវកម្រិតបណ្តាញ (TCP បើកលឿន ផ្លូវវាងខឺណែល)។

**Verdict**: **Edge-Wasm** គឺជាជម្រើស serverless តែមួយគត់ដែលអាចដំណើរការបានសម្រាប់ sub-3ms global latency ខណៈពេលដែល containers នៅតែប្រកួតប្រជែងនៅពេលដែលអ្នកគ្រប់គ្រង hardware stack។

### ការងារជាក្រុមដែលដំណើរការយូរ  

**សេណារីយ៉ូ**៖ ដំណើរការការងារ ETL នៅពេលយប់ 100TB នៃកំណត់ហេតុឆៅ ដំណើរការរហូតដល់ 6 ម៉ោង។  

- **Serverless** មិនអាចលើសពីដែនកំណត់ 15min; ខ្សែសង្វាក់មុខងារ (មុខងារជំហាន) នាំទៅរកការចំណាយខ្ពស់ និង 0.025 ដុល្លារក្នុងមួយការផ្លាស់ប្តូររដ្ឋ។
- **កុងតឺន័រ** ដោយប្រើ **K8s Job** ជាមួយ **node-local SSD** បានបញ្ចប់ក្នុងរយៈពេល 5 ម៉ោង ដោយមានតម្លៃ $3,200 (spot nodes) ទល់នឹង $12k សម្រាប់កងនាវា EC2 ដែលខិតខំប្រឹងប្រែង។
- **កូនកាត់**៖ ប្រើ **Kubernetes-based FaaS** (OpenFaaS) នៅលើចង្កោមកន្លែង មុខងារនីមួយៗដំណើរការភាគថាសសម្រាប់ ≤10min ដែលរៀបចំដោយជួរ **Kafka**។ តម្លៃសរុប $4,300 នៅតែទាបជាងធុងសុទ្ធ ដោយសារភាពស្របគ្នាល្អជាង។

**Takeaway**៖ សម្រាប់ *បន្ទុកការងារលើសម៉ោងប្រតិបត្តិការគ្មានម៉ាស៊ីនមេ* កុងតឺន័រ (ឬក្របខ័ណ្ឌមុខងារដែលរៀបចំដោយកូនកាត់) គឺមិនអាចខ្វះបាន។

---

## ម៉ាទ្រីសការសម្រេចចិត្ត  

ខាងក្រោម​នេះ​ជា​ម៉ាទ្រីស​ជាក់ស្តែង​ដើម្បី​ណែនាំ​ស្ថាបត្យករ។ កំណត់ពិន្ទុ (0–5) ទៅកត្តានីមួយៗសម្រាប់បន្ទុកការងាររបស់អ្នក; ចំនួនសរុបខ្ពស់ជាងបង្ហាញពីគំរូដែលពេញចិត្ត។

| កត្តា | ទម្ងន់ | ពិន្ទុគ្មានម៉ាស៊ីនមេ | ពិន្ទុកុងតឺន័រ | យោបល់ |
|--------|--------|------------------|--------------------------------|
| **តម្រូវការភាពយឺតយ៉ាវ** | 0.25 | 5 (≤5ms) / 2 (5−20ms) / 0 (>20ms) | 4 (≤5ms នៅលើគែម) / 3 (5−20ms) / 1 (>20ms) | Edge-Wasm អាចគ្របដណ្ដប់លើរង 5ms |
| **រយៈពេលប្រតិបត្តិ** | 0.20 | 5 (≤15s) / 2 (>15s) | 5 (ណាមួយ) / 2 (≤30s) | កុងតឺន័រដោះស្រាយការងារយូរ |
| ** ភាពប្រែប្រួលនៃមាត្រដ្ឋាន ** | 0.15 | 5 (ផ្ទុះ > 10 ×) / 2 (ស្ថិរភាព) | 3 (ផ្ទុះជាមួយមាត្រដ្ឋានស្វ័យប្រវត្តិ) / 1 (ស្ថិរភាព) | Serverless auto-scales ភ្លាមៗ |
| **ភាពជារដ្ឋ** | 0.10 | 2 (គ្មានរដ្ឋ) / 5 (ទាមទាររដ្ឋខាងក្រៅ) | 5 (រដ្ឋ) / 2 (គ្មានរដ្ឋ) | បន្ទុកការងាររបស់រដ្ឋពេញចិត្តកុងតឺន័រ |
| **ការព្យាករណ៍តម្លៃ** | 0.10 | 4 (បង់ក្នុងមួយការប្រើប្រាស់) / 2 (បានបម្រុងទុកស្របគ្នា) | 3 (កន្លែង + ថ្នាំងដែលបានបម្រុងទុក) / 1 (តាមតម្រូវការ) | Serverless ថោកជាងក្រោមការប្រើប្រាស់ទាប |
| ** ការអនុលោមតាម / ភាពឯកោ ** | 0.10 | 4 (មីក្រូ-VM, Wasm) / 2 (ចែករំលែកអ៊ីនហ្វ្រា) | 5 (Kata/VM) / 3 (namespace) | កុងតឺន័រដែលមានការធានាខ្ពស់ |
| **ល្បឿនអ្នកអភិវឌ្ឍន៍** | 0.10 | 5 (គ្មានអ៊ីនហ្វ្រា) / 3 (អាងទឹកក្ដៅ) | 3 (helm, CI) / 1 (សៀវភៅដៃ) | Serverless ផ្តល់​ការ​ធ្វើ​ឡើងវិញ​លឿន​បំផុត |

** ការបកស្រាយ **៖

- **សរុប ≥25** → Serverless គឺជាអ្នកឈ្នះយ៉ាងច្បាស់។  
- **សរុប 18-24** → ពិចារណាវិធីសាស្រ្តកូនកាត់ (Knative, OpenFaaS, ឬ sidecar-based micro-VMs)។  
- **សរុប ≤17** → Containers/Kubernetes ត្រូវបានណែនាំ។

---

## សេចក្តីសន្និដ្ឋាន  

នៅឆ្នាំ 2026 ការជជែកដេញដោល **serverless vs. containers បានឈានដល់កម្រិតនៃជម្រើស** ជាជាងជម្រើសគោលពីរ។ "សាលក្រមចុងក្រោយ" អាស្រ័យលើ **SLAs ជាក់លាក់ ទម្រង់ចំណាយ និងកាលកំណត់ប្រតិបត្តិការ** របស់អង្គការ៖

1. **Serverless** ចែងចាំងសម្រាប់ **បន្ទុកការងារដែលមានអថេរខ្ពស់ដែលជំរុញដោយព្រឹត្តិការណ៍** ជាពិសេសនៅពេលដែលភាពយឺតយ៉ាវអាចត្រូវបានពេញចិត្តដោយ **micro-VM ឬ Wasm sandboxes** និងនៅពេលដែល **ការបង់ប្រាក់ក្នុងមួយការប្រើប្រាស់សេដ្ឋកិច្ច** គឺសំខាន់បំផុត។ អ្នកផ្តល់សេវា Edge-first បានកាត់បន្ថយការពិន័យការចាប់ផ្តើមត្រជាក់ដល់ចំណុចដែលភាពយឺតយ៉ាវរង 10ms អាចសម្រេចបានសម្រាប់បន្ទុកការងារ API ភាគច្រើន។

2. **កុងតឺន័រ** នៅតែមិនអាចខ្វះបានសម្រាប់ **កម្មវិធីដែលមានស្ថានភាព ដំណើរការយូរ ឬធនធានធ្ងន់** ដែលត្រូវការ **ការគ្រប់គ្រងប្រកបដោយគុណភាពលើភាពអាស្រ័យកម្រិត OS** ** បណ្តាញផ្ទាល់ខ្លួន** ឬ **ការអនុលោមតាមច្បាប់យ៉ាងតឹងរឹង**។ អ្នករៀបចំកម្មវិធីទំនើបឥឡូវនេះបានបង្កប់ **ការធ្វើមាត្រដ្ឋានដោយស្វ័យប្រវត្តិដូចម៉ាស៊ីនមេ (Knative, KEDA)** ដោយកាត់បន្ថយគម្លាតប្រតិបត្តិការ ខណៈពេលដែលរក្សាភាពបត់បែននៃរូបភាព OCI ។

3. **ម៉ូដែលកូនកាត់**—ធុងដែលប្រើដោយធម្មជាតិ OpenFaaS នៅលើចង្កោមកន្លែង ឬមុខងារ-sidecars ជាមួយនឹងសុវត្ថិភាពសេវា-សំណាញ់-ផ្តល់ **ល្អបំផុតនៃពិភពលោកទាំងពីរ** សម្រាប់បន្ទុកការងារដែលជាប់ព្រំដែនជាប់គ្នា (ឧ. មុខងារបណ្តុំ, ភាពយឺតយ៉ាវ-សំខាន់) មិនទាន់មានរដ្ឋនៅឡើយ។

អនុសាសន៍ជាយុទ្ធសាស្រ្តសម្រាប់សហគ្រាសភាគច្រើនក្នុងឆ្នាំ 2026 គឺ៖

- **ទទួលយកស្រទាប់វេទិកាបង្រួបបង្រួម** (ឧ. សេវា K8s ដែលត្រូវបានគ្រប់គ្រងជាមួយ Knative និងស្រទាប់គែមដែលមិនត្រូវគ្នានឹងម៉ាស៊ីនមេ) ដែលអនុញ្ញាតឱ្យក្រុម **ប្រកាសចេតនា** ("មុខងារ" "សេវាកម្ម" "ការងារ") ខណៈពេលដែលយន្តហោះបញ្ជាជ្រើសរើសពេលវេលាដំណើរការដ៏ល្អប្រសើរ។
- **វិនិយោគលើការសង្កេត និងបំពង់ CI/CD** ដែលព្យាបាលគំរូទាំងពីរឱ្យស្មើគ្នា (OpenTelemetry, GitOps, SBOM validation)។  
- ** ស្តង់ដារជាបន្ត ** ភាពយឺតយ៉ាវ ការចំណាយ និងលក្ខណៈនៃការធ្វើមាត្រដ្ឋាននៅពេលដែលអ្នកផ្តល់សេវាពពកធ្វើម្តងទៀតនៅលើពេលវេលាដំណើរការ។ គម្លាតគឺមានភាពរលូន ហើយការពិនិត្យឡើងវិញមួយឆ្នាំម្តងអាចបង្ហាញពីឱកាសនៃការធ្វើចំណាកស្រុក។

តាមរយៈការទទួលយក **ស្ថាបត្យកម្មដំណើរការមិនប្រក្រតី** អង្គការអាចបញ្ជាក់អំពីបន្ទុកការងាររបស់ពួកគេនាពេលអនាគត ទាញយកប្រយោជន៍ពីការបង្កើតថ្មីយ៉ាងឆាប់រហ័សទាំងនៅក្នុងប្រព័ន្ធអេកូឡូស៊ីគ្មានម៉ាស៊ីនមេ និងកុងតឺន័រ ហើយទីបំផុតផ្តល់នូវភាពធន់ និងប្រសិទ្ធភាព សេវាកម្មដែលបំពេញតាមការរំពឹងទុកនៃទិដ្ឋភាពឌីជីថលឆ្នាំ 2026 ។

Have Questions?

Let's Talk

Contact me on LinkedIn