<?xml version="1.0" encoding="UTF-8"?>
<rss version="2.0" xmlns:atom="http://www.w3.org/2005/Atom" xmlns:dc="http://purl.org/dc/elements/1.1/">
  <channel>
    <title>DEV Community: Alex Carter</title>
    <description>The latest articles on DEV Community by Alex Carter (@alexcarteruk).</description>
    <link>https://dev.to/alexcarteruk</link>
    <image>
      <url>https://media2.dev.to/dynamic/image/width=90,height=90,fit=cover,gravity=auto,format=auto/https:%2F%2Fdev-to-uploads.s3.amazonaws.com%2Fuploads%2Fuser%2Fprofile_image%2F3832787%2F6c2a651c-6ecb-4fcd-ad18-b957fd195786.png</url>
      <title>DEV Community: Alex Carter</title>
      <link>https://dev.to/alexcarteruk</link>
    </image>
    <atom:link rel="self" type="application/rss+xml" href="https://dev.to/feed/alexcarteruk"/>
    <language>en</language>
    <item>
      <title>Terraform / IaC: capacity planning cho latency spikes (cách debug nhanh)</title>
      <dc:creator>Alex Carter</dc:creator>
      <pubDate>Wed, 08 Apr 2026 12:18:02 +0000</pubDate>
      <link>https://dev.to/alexcarteruk/terraform-iac-capacity-planning-cho-latency-spikes-cach-debug-nhanh-2amp</link>
      <guid>https://dev.to/alexcarteruk/terraform-iac-capacity-planning-cho-latency-spikes-cach-debug-nhanh-2amp</guid>
      <description>&lt;p&gt;Nếu bạn làm DevOps/SRE, kiểu gì cũng gặp những tình huống &lt;em&gt;đau đầu&lt;/em&gt; giống nhau: lỗi chỉ xuất hiện ở production, alert kêu cả đêm, hoặc pipeline lúc xanh lúc đỏ.&lt;/p&gt;

&lt;p&gt;Bài này chia sẻ kinh nghiệm thực chiến cho chủ đề &lt;strong&gt;latency spikes&lt;/strong&gt; trong bối cảnh &lt;strong&gt;Terraform / IaC&lt;/strong&gt; — theo format: &lt;em&gt;triệu chứng → nguyên nhân gốc → cách xử lý → checklist&lt;/em&gt;.&lt;/p&gt;

&lt;h2&gt;
  
  
  Tình huống hôm nay (case thực tế)
&lt;/h2&gt;

&lt;p&gt;Trong hệ thống &lt;strong&gt;Terraform / IaC&lt;/strong&gt;, bạn gặp vấn đề &lt;strong&gt;latency spikes&lt;/strong&gt; ở production. Điều khó chịu là nó không xảy ra ổn định: có ngày bình thường, có ngày lại bùng lên đúng giờ cao điểm.&lt;/p&gt;

&lt;h2&gt;
  
  
  Vấn đề nhiều người gặp
&lt;/h2&gt;

&lt;ul&gt;
&lt;li&gt;Triệu chứng “khó chịu”: lúc có lúc không.&lt;/li&gt;
&lt;li&gt;Khó tái hiện (reproduce) ở local/staging.&lt;/li&gt;
&lt;li&gt;Debug tốn thời gian vì thiếu dữ liệu (logs/metrics/traces).&lt;/li&gt;
&lt;/ul&gt;

&lt;h2&gt;
  
  
  Nguyên nhân gốc (root causes) thường gặp
&lt;/h2&gt;

&lt;ol&gt;
&lt;li&gt;
&lt;strong&gt;Môi trường và cấu hình lệch nhau&lt;/strong&gt; giữa các nơi chạy.&lt;/li&gt;
&lt;li&gt;
&lt;strong&gt;Thiếu kiểm soát dữ liệu/traffic&lt;/strong&gt; (spike, burst, batch job, retry storm).&lt;/li&gt;
&lt;li&gt;
&lt;strong&gt;Giới hạn tài nguyên / timeout / quota&lt;/strong&gt; đặt chưa sát thực tế.&lt;/li&gt;
&lt;li&gt;
&lt;strong&gt;Thiếu observability&lt;/strong&gt; khiến bạn đoán mò.&lt;/li&gt;
&lt;/ol&gt;

&lt;h2&gt;
  
  
  Cách giải quyết (thực chiến)
&lt;/h2&gt;

&lt;h3&gt;
  
  
  1) Thu thập tín hiệu đúng trước khi “đập”
&lt;/h3&gt;

&lt;ul&gt;
&lt;li&gt;Xác định &lt;em&gt;impact&lt;/em&gt;: user bị ảnh hưởng gì? error rate/latency ra sao?&lt;/li&gt;
&lt;li&gt;Chốt “sự thật”: xảy ra ở endpoint nào, thời điểm nào, tần suất nào.&lt;/li&gt;
&lt;/ul&gt;

&lt;h3&gt;
  
  
  2) Bổ sung observability để debug nhanh
&lt;/h3&gt;

&lt;ul&gt;
&lt;li&gt;Metrics: tỉ lệ lỗi, latency p95/p99, saturation.&lt;/li&gt;
&lt;li&gt;Logs: có correlation id, log theo request/trace.&lt;/li&gt;
&lt;li&gt;Traces: thấy điểm nghẽn xuyên service.&lt;/li&gt;
&lt;/ul&gt;

&lt;p&gt;Gợi ý: OpenTelemetry là bước khởi đầu đáng giá nếu bạn chưa triển khai traces.&lt;/p&gt;

&lt;h3&gt;
  
  
  3) Chốt hướng fix bằng checklist (ít đoán, nhiều đo)
&lt;/h3&gt;

&lt;ul&gt;
&lt;li&gt;[ ] Có ngưỡng timeout hợp lý và có retry &lt;em&gt;có kiểm soát&lt;/em&gt;
&lt;/li&gt;
&lt;li&gt;[ ] Giới hạn tài nguyên (CPU/RAM) đặt theo đo đạc, không đặt theo cảm giác&lt;/li&gt;
&lt;li&gt;[ ] Có rate limit/circuit breaker cho downstream hay bị nghẽn&lt;/li&gt;
&lt;li&gt;[ ] Có dashboard/alert theo &lt;em&gt;user impact&lt;/em&gt; (SLO) thay vì chỉ theo resource&lt;/li&gt;
&lt;/ul&gt;

&lt;h2&gt;
  
  
  3 FAQ
&lt;/h2&gt;

&lt;h3&gt;
  
  
  FAQ 1: Khi nào nên bật retry?
&lt;/h3&gt;

&lt;p&gt;Chỉ nên retry khi bạn &lt;strong&gt;đo được&lt;/strong&gt; lỗi là transient và retry có giới hạn. Nếu retry che lấp lỗi thật, bạn sẽ trả giá ở production.&lt;/p&gt;

&lt;h3&gt;
  
  
  FAQ 2: Làm sao phân biệt “lỗi hệ thống” và “lỗi do load spike”?
&lt;/h3&gt;

&lt;p&gt;Nhìn theo thời gian: spike có pattern (giờ cao điểm, batch, deploy). Kết hợp metrics saturation (CPU, queue, DB connections) để xác nhận.&lt;/p&gt;

&lt;h3&gt;
  
  
  FAQ 3: Nên ưu tiên logs hay metrics?
&lt;/h3&gt;

&lt;p&gt;Bắt đầu với metrics để thấy xu hướng và đặt alert đúng. Sau đó logs/traces giúp drill-down khi có sự cố.&lt;/p&gt;

&lt;h2&gt;
  
  
  Bài trong series
&lt;/h2&gt;

&lt;ul&gt;
&lt;li&gt;&lt;a href="https://dev.to/alexcarteruk/kubernetes-checklist-cho-rate-limiting-checklist-vi-du-2mel"&gt;Kubernetes: checklist cho rate limiting (checklist + ví dụ)&lt;/a&gt;&lt;/li&gt;
&lt;li&gt;&lt;a href="https://dev.to/alexcarteruk/reliability-engineering-sre-migration-plan-cho-high-cpu-checklist-vi-du-44ng"&gt;Reliability engineering (SRE): migration plan cho high CPU (checklist + ví dụ)&lt;/a&gt;&lt;/li&gt;
&lt;/ul&gt;

&lt;h2&gt;
  
  
  Tài liệu tham khảo
&lt;/h2&gt;

&lt;ul&gt;
&lt;li&gt;&lt;a href="https://developer.hashicorp.com/terraform/docs" rel="noopener noreferrer"&gt;Terraform docs&lt;/a&gt;&lt;/li&gt;
&lt;li&gt;&lt;a href="https://docs.aws.amazon.com/wellarchitected/latest/framework/welcome.html" rel="noopener noreferrer"&gt;AWS Well-Architected&lt;/a&gt;&lt;/li&gt;
&lt;li&gt;&lt;a href="https://www.openpolicyagent.org/docs/latest/" rel="noopener noreferrer"&gt;Policy as Code (OPA)&lt;/a&gt;&lt;/li&gt;
&lt;/ul&gt;

</description>
      <category>terraform</category>
      <category>devops</category>
      <category>iac</category>
      <category>cloud</category>
    </item>
    <item>
      <title>Kubernetes: checklist cho rate limiting (checklist + ví dụ)</title>
      <dc:creator>Alex Carter</dc:creator>
      <pubDate>Wed, 08 Apr 2026 11:03:15 +0000</pubDate>
      <link>https://dev.to/alexcarteruk/kubernetes-checklist-cho-rate-limiting-checklist-vi-du-2mel</link>
      <guid>https://dev.to/alexcarteruk/kubernetes-checklist-cho-rate-limiting-checklist-vi-du-2mel</guid>
      <description>&lt;p&gt;Nếu bạn làm DevOps/SRE, kiểu gì cũng gặp những tình huống &lt;em&gt;đau đầu&lt;/em&gt; giống nhau: lỗi chỉ xuất hiện ở production, alert kêu cả đêm, hoặc pipeline lúc xanh lúc đỏ.&lt;/p&gt;

&lt;p&gt;Bài này chia sẻ kinh nghiệm thực chiến cho chủ đề &lt;strong&gt;rate limiting&lt;/strong&gt; trong bối cảnh &lt;strong&gt;Kubernetes&lt;/strong&gt; — theo format: &lt;em&gt;triệu chứng → nguyên nhân gốc → cách xử lý → checklist&lt;/em&gt;.&lt;/p&gt;

&lt;h2&gt;
  
  
  Tình huống hôm nay (case thực tế)
&lt;/h2&gt;

&lt;p&gt;Trong hệ thống &lt;strong&gt;Kubernetes&lt;/strong&gt;, bạn gặp vấn đề &lt;strong&gt;rate limiting&lt;/strong&gt; ở production. Điều khó chịu là nó không xảy ra ổn định: có ngày bình thường, có ngày lại bùng lên đúng giờ cao điểm.&lt;/p&gt;

&lt;h2&gt;
  
  
  Vấn đề nhiều người gặp
&lt;/h2&gt;

&lt;ul&gt;
&lt;li&gt;Triệu chứng “khó chịu”: lúc có lúc không.&lt;/li&gt;
&lt;li&gt;Khó tái hiện (reproduce) ở local/staging.&lt;/li&gt;
&lt;li&gt;Debug tốn thời gian vì thiếu dữ liệu (logs/metrics/traces).&lt;/li&gt;
&lt;/ul&gt;

&lt;h2&gt;
  
  
  Nguyên nhân gốc (root causes) thường gặp
&lt;/h2&gt;

&lt;ol&gt;
&lt;li&gt;
&lt;strong&gt;Môi trường và cấu hình lệch nhau&lt;/strong&gt; giữa các nơi chạy.&lt;/li&gt;
&lt;li&gt;
&lt;strong&gt;Thiếu kiểm soát dữ liệu/traffic&lt;/strong&gt; (spike, burst, batch job, retry storm).&lt;/li&gt;
&lt;li&gt;
&lt;strong&gt;Giới hạn tài nguyên / timeout / quota&lt;/strong&gt; đặt chưa sát thực tế.&lt;/li&gt;
&lt;li&gt;
&lt;strong&gt;Thiếu observability&lt;/strong&gt; khiến bạn đoán mò.&lt;/li&gt;
&lt;/ol&gt;

&lt;h2&gt;
  
  
  Cách giải quyết (thực chiến)
&lt;/h2&gt;

&lt;h3&gt;
  
  
  1) Thu thập tín hiệu đúng trước khi “đập”
&lt;/h3&gt;

&lt;ul&gt;
&lt;li&gt;Xác định &lt;em&gt;impact&lt;/em&gt;: user bị ảnh hưởng gì? error rate/latency ra sao?&lt;/li&gt;
&lt;li&gt;Chốt “sự thật”: xảy ra ở endpoint nào, thời điểm nào, tần suất nào.&lt;/li&gt;
&lt;/ul&gt;

&lt;h3&gt;
  
  
  2) Bổ sung observability để debug nhanh
&lt;/h3&gt;

&lt;ul&gt;
&lt;li&gt;Metrics: tỉ lệ lỗi, latency p95/p99, saturation.&lt;/li&gt;
&lt;li&gt;Logs: có correlation id, log theo request/trace.&lt;/li&gt;
&lt;li&gt;Traces: thấy điểm nghẽn xuyên service.&lt;/li&gt;
&lt;/ul&gt;

&lt;p&gt;Gợi ý: OpenTelemetry là bước khởi đầu đáng giá nếu bạn chưa triển khai traces.&lt;/p&gt;

&lt;h3&gt;
  
  
  3) Chốt hướng fix bằng checklist (ít đoán, nhiều đo)
&lt;/h3&gt;

&lt;ul&gt;
&lt;li&gt;[ ] Có ngưỡng timeout hợp lý và có retry &lt;em&gt;có kiểm soát&lt;/em&gt;
&lt;/li&gt;
&lt;li&gt;[ ] Giới hạn tài nguyên (CPU/RAM) đặt theo đo đạc, không đặt theo cảm giác&lt;/li&gt;
&lt;li&gt;[ ] Có rate limit/circuit breaker cho downstream hay bị nghẽn&lt;/li&gt;
&lt;li&gt;[ ] Có dashboard/alert theo &lt;em&gt;user impact&lt;/em&gt; (SLO) thay vì chỉ theo resource&lt;/li&gt;
&lt;/ul&gt;

&lt;h2&gt;
  
  
  3 FAQ
&lt;/h2&gt;

&lt;h3&gt;
  
  
  FAQ 1: Khi nào nên bật retry?
&lt;/h3&gt;

&lt;p&gt;Chỉ nên retry khi bạn &lt;strong&gt;đo được&lt;/strong&gt; lỗi là transient và retry có giới hạn. Nếu retry che lấp lỗi thật, bạn sẽ trả giá ở production.&lt;/p&gt;

&lt;h3&gt;
  
  
  FAQ 2: Làm sao phân biệt “lỗi hệ thống” và “lỗi do load spike”?
&lt;/h3&gt;

&lt;p&gt;Nhìn theo thời gian: spike có pattern (giờ cao điểm, batch, deploy). Kết hợp metrics saturation (CPU, queue, DB connections) để xác nhận.&lt;/p&gt;

&lt;h3&gt;
  
  
  FAQ 3: Nên ưu tiên logs hay metrics?
&lt;/h3&gt;

&lt;p&gt;Bắt đầu với metrics để thấy xu hướng và đặt alert đúng. Sau đó logs/traces giúp drill-down khi có sự cố.&lt;/p&gt;

&lt;h2&gt;
  
  
  Bài trong series
&lt;/h2&gt;

&lt;ul&gt;
&lt;li&gt;&lt;a href="https://dev.to/alexcarteruk/reliability-engineering-sre-migration-plan-cho-high-cpu-checklist-vi-du-44ng"&gt;Reliability engineering (SRE): migration plan cho high CPU (checklist + ví dụ)&lt;/a&gt;&lt;/li&gt;
&lt;li&gt;&lt;a href="https://dev.to/alexcarteruk/release-engineering-monitoring-alerting-design-cho-certificate-expiration-checklist-vi-du-5adg"&gt;Release engineering: monitoring &amp;amp; alerting design cho certificate expiration (checklist + ví dụ)&lt;/a&gt;&lt;/li&gt;
&lt;/ul&gt;

&lt;h2&gt;
  
  
  Tài liệu tham khảo
&lt;/h2&gt;

&lt;ul&gt;
&lt;li&gt;&lt;a href="https://kubernetes.io/docs/" rel="noopener noreferrer"&gt;Kubernetes docs&lt;/a&gt;&lt;/li&gt;
&lt;li&gt;&lt;a href="https://prometheus.io/docs/introduction/overview/" rel="noopener noreferrer"&gt;Prometheus&lt;/a&gt;&lt;/li&gt;
&lt;li&gt;&lt;a href="https://grafana.com/docs/" rel="noopener noreferrer"&gt;Grafana&lt;/a&gt;&lt;/li&gt;
&lt;/ul&gt;

</description>
      <category>kubernetes</category>
      <category>devops</category>
      <category>sre</category>
      <category>performance</category>
    </item>
    <item>
      <title>Reliability engineering (SRE): migration plan cho high CPU (checklist + ví dụ)</title>
      <dc:creator>Alex Carter</dc:creator>
      <pubDate>Tue, 07 Apr 2026 11:38:11 +0000</pubDate>
      <link>https://dev.to/alexcarteruk/reliability-engineering-sre-migration-plan-cho-high-cpu-checklist-vi-du-44ng</link>
      <guid>https://dev.to/alexcarteruk/reliability-engineering-sre-migration-plan-cho-high-cpu-checklist-vi-du-44ng</guid>
      <description>&lt;p&gt;Nếu bạn làm DevOps/SRE, kiểu gì cũng gặp những tình huống &lt;em&gt;đau đầu&lt;/em&gt; giống nhau: lỗi chỉ xuất hiện ở production, alert kêu cả đêm, hoặc pipeline lúc xanh lúc đỏ.&lt;/p&gt;

&lt;p&gt;Bài này chia sẻ kinh nghiệm thực chiến cho chủ đề &lt;strong&gt;high CPU&lt;/strong&gt; trong bối cảnh &lt;strong&gt;Reliability engineering (SRE)&lt;/strong&gt; — theo format: &lt;em&gt;triệu chứng → nguyên nhân gốc → cách xử lý → checklist&lt;/em&gt;.&lt;/p&gt;

&lt;h2&gt;
  
  
  Tình huống hôm nay (case thực tế)
&lt;/h2&gt;

&lt;p&gt;Trong hệ thống &lt;strong&gt;Reliability engineering (SRE)&lt;/strong&gt;, bạn gặp vấn đề &lt;strong&gt;high CPU&lt;/strong&gt; ở production. Điều khó chịu là nó không xảy ra ổn định: có ngày bình thường, có ngày lại bùng lên đúng giờ cao điểm.&lt;/p&gt;

&lt;h2&gt;
  
  
  Vấn đề nhiều người gặp
&lt;/h2&gt;

&lt;ul&gt;
&lt;li&gt;Triệu chứng “khó chịu”: lúc có lúc không.&lt;/li&gt;
&lt;li&gt;Khó tái hiện (reproduce) ở local/staging.&lt;/li&gt;
&lt;li&gt;Debug tốn thời gian vì thiếu dữ liệu (logs/metrics/traces).&lt;/li&gt;
&lt;/ul&gt;

&lt;h2&gt;
  
  
  Nguyên nhân gốc (root causes) thường gặp
&lt;/h2&gt;

&lt;ol&gt;
&lt;li&gt;
&lt;strong&gt;Môi trường và cấu hình lệch nhau&lt;/strong&gt; giữa các nơi chạy.&lt;/li&gt;
&lt;li&gt;
&lt;strong&gt;Thiếu kiểm soát dữ liệu/traffic&lt;/strong&gt; (spike, burst, batch job, retry storm).&lt;/li&gt;
&lt;li&gt;
&lt;strong&gt;Giới hạn tài nguyên / timeout / quota&lt;/strong&gt; đặt chưa sát thực tế.&lt;/li&gt;
&lt;li&gt;
&lt;strong&gt;Thiếu observability&lt;/strong&gt; khiến bạn đoán mò.&lt;/li&gt;
&lt;/ol&gt;

&lt;h2&gt;
  
  
  Cách giải quyết (thực chiến)
&lt;/h2&gt;

&lt;h3&gt;
  
  
  1) Thu thập tín hiệu đúng trước khi “đập”
&lt;/h3&gt;

&lt;ul&gt;
&lt;li&gt;Xác định &lt;em&gt;impact&lt;/em&gt;: user bị ảnh hưởng gì? error rate/latency ra sao?&lt;/li&gt;
&lt;li&gt;Chốt “sự thật”: xảy ra ở endpoint nào, thời điểm nào, tần suất nào.&lt;/li&gt;
&lt;/ul&gt;

&lt;h3&gt;
  
  
  2) Bổ sung observability để debug nhanh
&lt;/h3&gt;

&lt;ul&gt;
&lt;li&gt;Metrics: tỉ lệ lỗi, latency p95/p99, saturation.&lt;/li&gt;
&lt;li&gt;Logs: có correlation id, log theo request/trace.&lt;/li&gt;
&lt;li&gt;Traces: thấy điểm nghẽn xuyên service.&lt;/li&gt;
&lt;/ul&gt;

&lt;p&gt;Gợi ý: OpenTelemetry là bước khởi đầu đáng giá nếu bạn chưa triển khai traces.&lt;/p&gt;

&lt;h3&gt;
  
  
  3) Chốt hướng fix bằng checklist (ít đoán, nhiều đo)
&lt;/h3&gt;

&lt;ul&gt;
&lt;li&gt;[ ] Có ngưỡng timeout hợp lý và có retry &lt;em&gt;có kiểm soát&lt;/em&gt;
&lt;/li&gt;
&lt;li&gt;[ ] Giới hạn tài nguyên (CPU/RAM) đặt theo đo đạc, không đặt theo cảm giác&lt;/li&gt;
&lt;li&gt;[ ] Có rate limit/circuit breaker cho downstream hay bị nghẽn&lt;/li&gt;
&lt;li&gt;[ ] Có dashboard/alert theo &lt;em&gt;user impact&lt;/em&gt; (SLO) thay vì chỉ theo resource&lt;/li&gt;
&lt;/ul&gt;

&lt;h2&gt;
  
  
  Mẹo nhỏ: test luồng email/notification (không dùng email thật)
&lt;/h2&gt;

&lt;p&gt;Nếu bạn cần test password reset, webhook, hoặc alert qua email trong staging mà không muốn dùng email cá nhân, một hộp thư &lt;em&gt;temp mail&lt;/em&gt; như &lt;a href="https://tempmailso.com" rel="noopener noreferrer"&gt;temp mail&lt;/a&gt; thường tiện hơn (dùng vừa đủ, đừng phụ thuộc cho production).&lt;/p&gt;

&lt;h2&gt;
  
  
  3 FAQ
&lt;/h2&gt;

&lt;h3&gt;
  
  
  FAQ 1: Khi nào nên bật retry?
&lt;/h3&gt;

&lt;p&gt;Chỉ nên retry khi bạn &lt;strong&gt;đo được&lt;/strong&gt; lỗi là transient và retry có giới hạn. Nếu retry che lấp lỗi thật, bạn sẽ trả giá ở production.&lt;/p&gt;

&lt;h3&gt;
  
  
  FAQ 2: Làm sao phân biệt “lỗi hệ thống” và “lỗi do load spike”?
&lt;/h3&gt;

&lt;p&gt;Nhìn theo thời gian: spike có pattern (giờ cao điểm, batch, deploy). Kết hợp metrics saturation (CPU, queue, DB connections) để xác nhận.&lt;/p&gt;

&lt;h3&gt;
  
  
  FAQ 3: Nên ưu tiên logs hay metrics?
&lt;/h3&gt;

&lt;p&gt;Bắt đầu với metrics để thấy xu hướng và đặt alert đúng. Sau đó logs/traces giúp drill-down khi có sự cố.&lt;/p&gt;

&lt;h2&gt;
  
  
  Bài trong series
&lt;/h2&gt;

&lt;ul&gt;
&lt;li&gt;&lt;a href="https://dev.to/alexcarteruk/release-engineering-monitoring-alerting-design-cho-certificate-expiration-checklist-vi-du-5adg"&gt;Release engineering: monitoring &amp;amp; alerting design cho certificate expiration (checklist + ví dụ)&lt;/a&gt;&lt;/li&gt;
&lt;li&gt;&lt;a href="https://dev.to/alexcarteruk/caching-performance-connection-pool-exhaustion-debug-playbook-checklist-vi-du-88f"&gt;Caching &amp;amp; performance: connection pool exhaustion — debug playbook (checklist + ví dụ)&lt;/a&gt;&lt;/li&gt;
&lt;/ul&gt;

&lt;h2&gt;
  
  
  Tài liệu tham khảo
&lt;/h2&gt;

&lt;ul&gt;
&lt;li&gt;&lt;a href="https://sre.google/books/" rel="noopener noreferrer"&gt;Google SRE book&lt;/a&gt;&lt;/li&gt;
&lt;li&gt;&lt;a href="https://sre.google/workbook/alerting-on-slos/" rel="noopener noreferrer"&gt;SLO (Google)&lt;/a&gt;&lt;/li&gt;
&lt;li&gt;&lt;a href="https://opentelemetry.io/docs/" rel="noopener noreferrer"&gt;OpenTelemetry&lt;/a&gt;&lt;/li&gt;
&lt;/ul&gt;

</description>
      <category>sre</category>
      <category>devops</category>
      <category>reliability</category>
      <category>monitoring</category>
    </item>
    <item>
      <title>Release engineering: monitoring &amp; alerting design cho certificate expiration (checklist + ví dụ)</title>
      <dc:creator>Alex Carter</dc:creator>
      <pubDate>Tue, 07 Apr 2026 11:07:56 +0000</pubDate>
      <link>https://dev.to/alexcarteruk/release-engineering-monitoring-alerting-design-cho-certificate-expiration-checklist-vi-du-5adg</link>
      <guid>https://dev.to/alexcarteruk/release-engineering-monitoring-alerting-design-cho-certificate-expiration-checklist-vi-du-5adg</guid>
      <description>&lt;p&gt;Nếu bạn làm DevOps/SRE, kiểu gì cũng gặp những tình huống &lt;em&gt;đau đầu&lt;/em&gt; giống nhau: lỗi chỉ xuất hiện ở production, alert kêu cả đêm, hoặc pipeline lúc xanh lúc đỏ.&lt;/p&gt;

&lt;p&gt;Bài này chia sẻ kinh nghiệm thực chiến cho chủ đề &lt;strong&gt;certificate expiration&lt;/strong&gt; trong bối cảnh &lt;strong&gt;Release engineering&lt;/strong&gt; — theo format: &lt;em&gt;triệu chứng → nguyên nhân gốc → cách xử lý → checklist&lt;/em&gt;.&lt;/p&gt;

&lt;h2&gt;
  
  
  Tình huống hôm nay (case thực tế)
&lt;/h2&gt;

&lt;p&gt;Trong hệ thống &lt;strong&gt;Release engineering&lt;/strong&gt;, bạn gặp vấn đề &lt;strong&gt;certificate expiration&lt;/strong&gt; ở production. Điều khó chịu là nó không xảy ra ổn định: có ngày bình thường, có ngày lại bùng lên đúng giờ cao điểm.&lt;/p&gt;

&lt;h2&gt;
  
  
  Vấn đề nhiều người gặp
&lt;/h2&gt;

&lt;ul&gt;
&lt;li&gt;Triệu chứng “khó chịu”: lúc có lúc không.&lt;/li&gt;
&lt;li&gt;Khó tái hiện (reproduce) ở local/staging.&lt;/li&gt;
&lt;li&gt;Debug tốn thời gian vì thiếu dữ liệu (logs/metrics/traces).&lt;/li&gt;
&lt;/ul&gt;

&lt;h2&gt;
  
  
  Nguyên nhân gốc (root causes) thường gặp
&lt;/h2&gt;

&lt;ol&gt;
&lt;li&gt;
&lt;strong&gt;Môi trường và cấu hình lệch nhau&lt;/strong&gt; giữa các nơi chạy.&lt;/li&gt;
&lt;li&gt;
&lt;strong&gt;Thiếu kiểm soát dữ liệu/traffic&lt;/strong&gt; (spike, burst, batch job, retry storm).&lt;/li&gt;
&lt;li&gt;
&lt;strong&gt;Giới hạn tài nguyên / timeout / quota&lt;/strong&gt; đặt chưa sát thực tế.&lt;/li&gt;
&lt;li&gt;
&lt;strong&gt;Thiếu observability&lt;/strong&gt; khiến bạn đoán mò.&lt;/li&gt;
&lt;/ol&gt;

&lt;h2&gt;
  
  
  Cách giải quyết (thực chiến)
&lt;/h2&gt;

&lt;h3&gt;
  
  
  1) Thu thập tín hiệu đúng trước khi “đập”
&lt;/h3&gt;

&lt;ul&gt;
&lt;li&gt;Xác định &lt;em&gt;impact&lt;/em&gt;: user bị ảnh hưởng gì? error rate/latency ra sao?&lt;/li&gt;
&lt;li&gt;Chốt “sự thật”: xảy ra ở endpoint nào, thời điểm nào, tần suất nào.&lt;/li&gt;
&lt;/ul&gt;

&lt;h3&gt;
  
  
  2) Bổ sung observability để debug nhanh
&lt;/h3&gt;

&lt;ul&gt;
&lt;li&gt;Metrics: tỉ lệ lỗi, latency p95/p99, saturation.&lt;/li&gt;
&lt;li&gt;Logs: có correlation id, log theo request/trace.&lt;/li&gt;
&lt;li&gt;Traces: thấy điểm nghẽn xuyên service.&lt;/li&gt;
&lt;/ul&gt;

&lt;p&gt;Gợi ý: OpenTelemetry là bước khởi đầu đáng giá nếu bạn chưa triển khai traces.&lt;/p&gt;

&lt;h3&gt;
  
  
  3) Chốt hướng fix bằng checklist (ít đoán, nhiều đo)
&lt;/h3&gt;

&lt;ul&gt;
&lt;li&gt;[ ] Có ngưỡng timeout hợp lý và có retry &lt;em&gt;có kiểm soát&lt;/em&gt;
&lt;/li&gt;
&lt;li&gt;[ ] Giới hạn tài nguyên (CPU/RAM) đặt theo đo đạc, không đặt theo cảm giác&lt;/li&gt;
&lt;li&gt;[ ] Có rate limit/circuit breaker cho downstream hay bị nghẽn&lt;/li&gt;
&lt;li&gt;[ ] Có dashboard/alert theo &lt;em&gt;user impact&lt;/em&gt; (SLO) thay vì chỉ theo resource&lt;/li&gt;
&lt;/ul&gt;

&lt;h2&gt;
  
  
  Mẹo nhỏ: test luồng email/notification (không dùng email thật)
&lt;/h2&gt;

&lt;p&gt;Nếu bạn cần test password reset, webhook, hoặc alert qua email trong staging mà không muốn dùng email cá nhân, một hộp thư &lt;em&gt;temp mail&lt;/em&gt; như &lt;a href="https://tempmailso.com" rel="noopener noreferrer"&gt;temp mail&lt;/a&gt; thường tiện hơn (dùng vừa đủ, đừng phụ thuộc cho production).&lt;/p&gt;

&lt;h2&gt;
  
  
  3 FAQ
&lt;/h2&gt;

&lt;h3&gt;
  
  
  FAQ 1: Khi nào nên bật retry?
&lt;/h3&gt;

&lt;p&gt;Chỉ nên retry khi bạn &lt;strong&gt;đo được&lt;/strong&gt; lỗi là transient và retry có giới hạn. Nếu retry che lấp lỗi thật, bạn sẽ trả giá ở production.&lt;/p&gt;

&lt;h3&gt;
  
  
  FAQ 2: Làm sao phân biệt “lỗi hệ thống” và “lỗi do load spike”?
&lt;/h3&gt;

&lt;p&gt;Nhìn theo thời gian: spike có pattern (giờ cao điểm, batch, deploy). Kết hợp metrics saturation (CPU, queue, DB connections) để xác nhận.&lt;/p&gt;

&lt;h3&gt;
  
  
  FAQ 3: Nên ưu tiên logs hay metrics?
&lt;/h3&gt;

&lt;p&gt;Bắt đầu với metrics để thấy xu hướng và đặt alert đúng. Sau đó logs/traces giúp drill-down khi có sự cố.&lt;/p&gt;

&lt;h2&gt;
  
  
  Bài trong series
&lt;/h2&gt;

&lt;ul&gt;
&lt;li&gt;&lt;a href="https://dev.to/alexcarteruk/caching-performance-connection-pool-exhaustion-debug-playbook-checklist-vi-du-88f"&gt;Caching &amp;amp; performance: connection pool exhaustion — debug playbook (checklist + ví dụ)&lt;/a&gt;&lt;/li&gt;
&lt;li&gt;&lt;a href="https://dev.to/alexcarteruk/databases-in-production-vi-sao-terraform-drift-xay-ra-va-cach-phong-tranh-trieu-chung-nguyen-4elg"&gt;Databases in production: vì sao terraform drift xảy ra (và cách phòng tránh) (triệu chứng → nguyên nhân → cách fix)&lt;/a&gt;&lt;/li&gt;
&lt;/ul&gt;

&lt;h2&gt;
  
  
  Tài liệu tham khảo
&lt;/h2&gt;

&lt;ul&gt;
&lt;li&gt;&lt;a href="https://trunkbaseddevelopment.com/" rel="noopener noreferrer"&gt;Trunk Based Development&lt;/a&gt;&lt;/li&gt;
&lt;li&gt;&lt;a href="https://semver.org/" rel="noopener noreferrer"&gt;Semantic Versioning&lt;/a&gt;&lt;/li&gt;
&lt;li&gt;&lt;a href="https://sre.google/books/" rel="noopener noreferrer"&gt;SRE book&lt;/a&gt;&lt;/li&gt;
&lt;/ul&gt;

</description>
      <category>devops</category>
      <category>cicd</category>
      <category>release</category>
      <category>productivity</category>
    </item>
    <item>
      <title>Caching &amp; performance: connection pool exhaustion — debug playbook (checklist + ví dụ)</title>
      <dc:creator>Alex Carter</dc:creator>
      <pubDate>Mon, 06 Apr 2026 11:33:22 +0000</pubDate>
      <link>https://dev.to/alexcarteruk/caching-performance-connection-pool-exhaustion-debug-playbook-checklist-vi-du-88f</link>
      <guid>https://dev.to/alexcarteruk/caching-performance-connection-pool-exhaustion-debug-playbook-checklist-vi-du-88f</guid>
      <description>&lt;p&gt;Nếu bạn làm DevOps/SRE, kiểu gì cũng gặp những tình huống &lt;em&gt;đau đầu&lt;/em&gt; giống nhau: lỗi chỉ xuất hiện ở production, alert kêu cả đêm, hoặc pipeline lúc xanh lúc đỏ.&lt;/p&gt;

&lt;p&gt;Bài này chia sẻ kinh nghiệm thực chiến cho chủ đề &lt;strong&gt;connection pool exhaustion&lt;/strong&gt; trong bối cảnh &lt;strong&gt;Caching &amp;amp; performance&lt;/strong&gt; — theo format: &lt;em&gt;triệu chứng → nguyên nhân gốc → cách xử lý → checklist&lt;/em&gt;.&lt;/p&gt;

&lt;h2&gt;
  
  
  Tình huống hôm nay (case thực tế)
&lt;/h2&gt;

&lt;p&gt;Trong hệ thống &lt;strong&gt;Caching &amp;amp; performance&lt;/strong&gt;, bạn gặp vấn đề &lt;strong&gt;connection pool exhaustion&lt;/strong&gt; ở production. Điều khó chịu là nó không xảy ra ổn định: có ngày bình thường, có ngày lại bùng lên đúng giờ cao điểm.&lt;/p&gt;

&lt;h2&gt;
  
  
  Vấn đề nhiều người gặp
&lt;/h2&gt;

&lt;ul&gt;
&lt;li&gt;Triệu chứng “khó chịu”: lúc có lúc không.&lt;/li&gt;
&lt;li&gt;Khó tái hiện (reproduce) ở local/staging.&lt;/li&gt;
&lt;li&gt;Debug tốn thời gian vì thiếu dữ liệu (logs/metrics/traces).&lt;/li&gt;
&lt;/ul&gt;

&lt;h2&gt;
  
  
  Nguyên nhân gốc (root causes) thường gặp
&lt;/h2&gt;

&lt;ol&gt;
&lt;li&gt;
&lt;strong&gt;Môi trường và cấu hình lệch nhau&lt;/strong&gt; giữa các nơi chạy.&lt;/li&gt;
&lt;li&gt;
&lt;strong&gt;Thiếu kiểm soát dữ liệu/traffic&lt;/strong&gt; (spike, burst, batch job, retry storm).&lt;/li&gt;
&lt;li&gt;
&lt;strong&gt;Giới hạn tài nguyên / timeout / quota&lt;/strong&gt; đặt chưa sát thực tế.&lt;/li&gt;
&lt;li&gt;
&lt;strong&gt;Thiếu observability&lt;/strong&gt; khiến bạn đoán mò.&lt;/li&gt;
&lt;/ol&gt;

&lt;h2&gt;
  
  
  Cách giải quyết (thực chiến)
&lt;/h2&gt;

&lt;h3&gt;
  
  
  1) Thu thập tín hiệu đúng trước khi “đập”
&lt;/h3&gt;

&lt;ul&gt;
&lt;li&gt;Xác định &lt;em&gt;impact&lt;/em&gt;: user bị ảnh hưởng gì? error rate/latency ra sao?&lt;/li&gt;
&lt;li&gt;Chốt “sự thật”: xảy ra ở endpoint nào, thời điểm nào, tần suất nào.&lt;/li&gt;
&lt;/ul&gt;

&lt;h3&gt;
  
  
  2) Bổ sung observability để debug nhanh
&lt;/h3&gt;

&lt;ul&gt;
&lt;li&gt;Metrics: tỉ lệ lỗi, latency p95/p99, saturation.&lt;/li&gt;
&lt;li&gt;Logs: có correlation id, log theo request/trace.&lt;/li&gt;
&lt;li&gt;Traces: thấy điểm nghẽn xuyên service.&lt;/li&gt;
&lt;/ul&gt;

&lt;p&gt;Gợi ý: OpenTelemetry là bước khởi đầu đáng giá nếu bạn chưa triển khai traces.&lt;/p&gt;

&lt;h3&gt;
  
  
  3) Chốt hướng fix bằng checklist (ít đoán, nhiều đo)
&lt;/h3&gt;

&lt;ul&gt;
&lt;li&gt;[ ] Có ngưỡng timeout hợp lý và có retry &lt;em&gt;có kiểm soát&lt;/em&gt;
&lt;/li&gt;
&lt;li&gt;[ ] Giới hạn tài nguyên (CPU/RAM) đặt theo đo đạc, không đặt theo cảm giác&lt;/li&gt;
&lt;li&gt;[ ] Có rate limit/circuit breaker cho downstream hay bị nghẽn&lt;/li&gt;
&lt;li&gt;[ ] Có dashboard/alert theo &lt;em&gt;user impact&lt;/em&gt; (SLO) thay vì chỉ theo resource&lt;/li&gt;
&lt;/ul&gt;

&lt;h2&gt;
  
  
  3 FAQ
&lt;/h2&gt;

&lt;h3&gt;
  
  
  FAQ 1: Khi nào nên bật retry?
&lt;/h3&gt;

&lt;p&gt;Chỉ nên retry khi bạn &lt;strong&gt;đo được&lt;/strong&gt; lỗi là transient và retry có giới hạn. Nếu retry che lấp lỗi thật, bạn sẽ trả giá ở production.&lt;/p&gt;

&lt;h3&gt;
  
  
  FAQ 2: Làm sao phân biệt “lỗi hệ thống” và “lỗi do load spike”?
&lt;/h3&gt;

&lt;p&gt;Nhìn theo thời gian: spike có pattern (giờ cao điểm, batch, deploy). Kết hợp metrics saturation (CPU, queue, DB connections) để xác nhận.&lt;/p&gt;

&lt;h3&gt;
  
  
  FAQ 3: Nên ưu tiên logs hay metrics?
&lt;/h3&gt;

&lt;p&gt;Bắt đầu với metrics để thấy xu hướng và đặt alert đúng. Sau đó logs/traces giúp drill-down khi có sự cố.&lt;/p&gt;

&lt;h2&gt;
  
  
  Bài trong series
&lt;/h2&gt;

&lt;ul&gt;
&lt;li&gt;&lt;a href="https://dev.to/alexcarteruk/databases-in-production-vi-sao-terraform-drift-xay-ra-va-cach-phong-tranh-trieu-chung-nguyen-4elg"&gt;Databases in production: vì sao terraform drift xảy ra (và cách phòng tránh) (triệu chứng → nguyên nhân → cách fix)&lt;/a&gt;&lt;/li&gt;
&lt;li&gt;&lt;a href="https://dev.to/alexcarteruk/security-for-devops-secretspermissions-vi-sao-least-privilege-xay-ra-va-cach-phong-tranh-4jif"&gt;Security for DevOps (secrets/permissions): vì sao least privilege xảy ra (và cách phòng tránh) (cách debug nhanh)&lt;/a&gt;&lt;/li&gt;
&lt;/ul&gt;

&lt;h2&gt;
  
  
  Tài liệu tham khảo
&lt;/h2&gt;

&lt;ul&gt;
&lt;li&gt;&lt;a href="https://redis.io/docs/latest/" rel="noopener noreferrer"&gt;Redis docs&lt;/a&gt;&lt;/li&gt;
&lt;li&gt;&lt;a href="https://sre.google/books/" rel="noopener noreferrer"&gt;Google SRE book&lt;/a&gt;&lt;/li&gt;
&lt;li&gt;&lt;a href="https://opentelemetry.io/docs/" rel="noopener noreferrer"&gt;OpenTelemetry&lt;/a&gt;&lt;/li&gt;
&lt;/ul&gt;

</description>
      <category>performance</category>
      <category>devops</category>
      <category>redis</category>
      <category>sre</category>
    </item>
    <item>
      <title>Databases in production: vì sao terraform drift xảy ra (và cách phòng tránh) (triệu chứng nguyên nhân cách fix)</title>
      <dc:creator>Alex Carter</dc:creator>
      <pubDate>Mon, 06 Apr 2026 11:02:00 +0000</pubDate>
      <link>https://dev.to/alexcarteruk/databases-in-production-vi-sao-terraform-drift-xay-ra-va-cach-phong-tranh-trieu-chung-nguyen-4elg</link>
      <guid>https://dev.to/alexcarteruk/databases-in-production-vi-sao-terraform-drift-xay-ra-va-cach-phong-tranh-trieu-chung-nguyen-4elg</guid>
      <description>&lt;p&gt;Nếu bạn làm DevOps/SRE, kiểu gì cũng gặp những tình huống &lt;em&gt;đau đầu&lt;/em&gt; giống nhau: lỗi chỉ xuất hiện ở production, alert kêu cả đêm, hoặc pipeline lúc xanh lúc đỏ.&lt;/p&gt;

&lt;p&gt;Bài này chia sẻ kinh nghiệm thực chiến cho chủ đề &lt;strong&gt;terraform drift&lt;/strong&gt; trong bối cảnh &lt;strong&gt;Databases in production&lt;/strong&gt; — theo format: &lt;em&gt;triệu chứng → nguyên nhân gốc → cách xử lý → checklist&lt;/em&gt;.&lt;/p&gt;

&lt;h2&gt;
  
  
  Tình huống hôm nay (case thực tế)
&lt;/h2&gt;

&lt;p&gt;Trong hệ thống &lt;strong&gt;Databases in production&lt;/strong&gt;, bạn gặp vấn đề &lt;strong&gt;terraform drift&lt;/strong&gt; ở production. Điều khó chịu là nó không xảy ra ổn định: có ngày bình thường, có ngày lại bùng lên đúng giờ cao điểm.&lt;/p&gt;

&lt;h2&gt;
  
  
  Vấn đề nhiều người gặp
&lt;/h2&gt;

&lt;ul&gt;
&lt;li&gt;Triệu chứng “khó chịu”: lúc có lúc không.&lt;/li&gt;
&lt;li&gt;Khó tái hiện (reproduce) ở local/staging.&lt;/li&gt;
&lt;li&gt;Debug tốn thời gian vì thiếu dữ liệu (logs/metrics/traces).&lt;/li&gt;
&lt;/ul&gt;

&lt;h2&gt;
  
  
  Nguyên nhân gốc (root causes) thường gặp
&lt;/h2&gt;

&lt;ol&gt;
&lt;li&gt;
&lt;strong&gt;Môi trường và cấu hình lệch nhau&lt;/strong&gt; giữa các nơi chạy.&lt;/li&gt;
&lt;li&gt;
&lt;strong&gt;Thiếu kiểm soát dữ liệu/traffic&lt;/strong&gt; (spike, burst, batch job, retry storm).&lt;/li&gt;
&lt;li&gt;
&lt;strong&gt;Giới hạn tài nguyên / timeout / quota&lt;/strong&gt; đặt chưa sát thực tế.&lt;/li&gt;
&lt;li&gt;
&lt;strong&gt;Thiếu observability&lt;/strong&gt; khiến bạn đoán mò.&lt;/li&gt;
&lt;/ol&gt;

&lt;h2&gt;
  
  
  Cách giải quyết (thực chiến)
&lt;/h2&gt;

&lt;h3&gt;
  
  
  1) Thu thập tín hiệu đúng trước khi “đập”
&lt;/h3&gt;

&lt;ul&gt;
&lt;li&gt;Xác định &lt;em&gt;impact&lt;/em&gt;: user bị ảnh hưởng gì? error rate/latency ra sao?&lt;/li&gt;
&lt;li&gt;Chốt “sự thật”: xảy ra ở endpoint nào, thời điểm nào, tần suất nào.&lt;/li&gt;
&lt;/ul&gt;

&lt;h3&gt;
  
  
  2) Bổ sung observability để debug nhanh
&lt;/h3&gt;

&lt;ul&gt;
&lt;li&gt;Metrics: tỉ lệ lỗi, latency p95/p99, saturation.&lt;/li&gt;
&lt;li&gt;Logs: có correlation id, log theo request/trace.&lt;/li&gt;
&lt;li&gt;Traces: thấy điểm nghẽn xuyên service.&lt;/li&gt;
&lt;/ul&gt;

&lt;p&gt;Gợi ý: OpenTelemetry là bước khởi đầu đáng giá nếu bạn chưa triển khai traces.&lt;/p&gt;

&lt;h3&gt;
  
  
  3) Chốt hướng fix bằng checklist (ít đoán, nhiều đo)
&lt;/h3&gt;

&lt;ul&gt;
&lt;li&gt;[ ] Có ngưỡng timeout hợp lý và có retry &lt;em&gt;có kiểm soát&lt;/em&gt;
&lt;/li&gt;
&lt;li&gt;[ ] Giới hạn tài nguyên (CPU/RAM) đặt theo đo đạc, không đặt theo cảm giác&lt;/li&gt;
&lt;li&gt;[ ] Có rate limit/circuit breaker cho downstream hay bị nghẽn&lt;/li&gt;
&lt;li&gt;[ ] Có dashboard/alert theo &lt;em&gt;user impact&lt;/em&gt; (SLO) thay vì chỉ theo resource&lt;/li&gt;
&lt;/ul&gt;

&lt;h2&gt;
  
  
  3 FAQ
&lt;/h2&gt;

&lt;h3&gt;
  
  
  FAQ 1: Khi nào nên bật retry?
&lt;/h3&gt;

&lt;p&gt;Chỉ nên retry khi bạn &lt;strong&gt;đo được&lt;/strong&gt; lỗi là transient và retry có giới hạn. Nếu retry che lấp lỗi thật, bạn sẽ trả giá ở production.&lt;/p&gt;

&lt;h3&gt;
  
  
  FAQ 2: Làm sao phân biệt “lỗi hệ thống” và “lỗi do load spike”?
&lt;/h3&gt;

&lt;p&gt;Nhìn theo thời gian: spike có pattern (giờ cao điểm, batch, deploy). Kết hợp metrics saturation (CPU, queue, DB connections) để xác nhận.&lt;/p&gt;

&lt;h3&gt;
  
  
  FAQ 3: Nên ưu tiên logs hay metrics?
&lt;/h3&gt;

&lt;p&gt;Bắt đầu với metrics để thấy xu hướng và đặt alert đúng. Sau đó logs/traces giúp drill-down khi có sự cố.&lt;/p&gt;

&lt;h2&gt;
  
  
  Bài trong series
&lt;/h2&gt;

&lt;ul&gt;
&lt;li&gt;&lt;a href="https://dev.to/alexcarteruk/security-for-devops-secretspermissions-vi-sao-least-privilege-xay-ra-va-cach-phong-tranh-4jif"&gt;Security for DevOps (secrets/permissions): vì sao least privilege xảy ra (và cách phòng tránh) (cách debug nhanh)&lt;/a&gt;&lt;/li&gt;
&lt;li&gt;&lt;a href="https://dev.to/alexcarteruk/networking-dns-tls-hardening-best-practices-cho-oomkilled-checklist-vi-du-1j1p"&gt;Networking / DNS / TLS: hardening &amp;amp; best practices cho OOMKilled (checklist + ví dụ)&lt;/a&gt;&lt;/li&gt;
&lt;/ul&gt;

&lt;h2&gt;
  
  
  Tài liệu tham khảo
&lt;/h2&gt;

&lt;ul&gt;
&lt;li&gt;&lt;a href="https://www.postgresql.org/docs/" rel="noopener noreferrer"&gt;PostgreSQL docs&lt;/a&gt;&lt;/li&gt;
&lt;li&gt;&lt;a href="https://dev.mysql.com/doc/" rel="noopener noreferrer"&gt;MySQL docs&lt;/a&gt;&lt;/li&gt;
&lt;li&gt;&lt;a href="https://docs.aws.amazon.com/rds/" rel="noopener noreferrer"&gt;AWS RDS&lt;/a&gt;&lt;/li&gt;
&lt;/ul&gt;

</description>
      <category>database</category>
      <category>devops</category>
      <category>performance</category>
      <category>sre</category>
    </item>
    <item>
      <title>Security for DevOps (secrets/permissions): vì sao least privilege xảy ra (và cách phòng tránh) (cách debug nhanh)</title>
      <dc:creator>Alex Carter</dc:creator>
      <pubDate>Sun, 05 Apr 2026 13:29:06 +0000</pubDate>
      <link>https://dev.to/alexcarteruk/security-for-devops-secretspermissions-vi-sao-least-privilege-xay-ra-va-cach-phong-tranh-4jif</link>
      <guid>https://dev.to/alexcarteruk/security-for-devops-secretspermissions-vi-sao-least-privilege-xay-ra-va-cach-phong-tranh-4jif</guid>
      <description>&lt;p&gt;Nếu bạn làm DevOps/SRE, kiểu gì cũng gặp những tình huống &lt;em&gt;đau đầu&lt;/em&gt; giống nhau: lỗi chỉ xuất hiện ở production, alert kêu cả đêm, hoặc pipeline lúc xanh lúc đỏ.&lt;/p&gt;

&lt;p&gt;Bài này chia sẻ kinh nghiệm thực chiến cho chủ đề &lt;strong&gt;least privilege&lt;/strong&gt; trong bối cảnh &lt;strong&gt;Security for DevOps (secrets/permissions)&lt;/strong&gt; — theo format: &lt;em&gt;triệu chứng → nguyên nhân gốc → cách xử lý → checklist&lt;/em&gt;.&lt;/p&gt;

&lt;h2&gt;
  
  
  Tình huống hôm nay (case thực tế)
&lt;/h2&gt;

&lt;p&gt;Trong hệ thống &lt;strong&gt;Security for DevOps (secrets/permissions)&lt;/strong&gt;, bạn gặp vấn đề &lt;strong&gt;least privilege&lt;/strong&gt; ở production. Điều khó chịu là nó không xảy ra ổn định: có ngày bình thường, có ngày lại bùng lên đúng giờ cao điểm.&lt;/p&gt;

&lt;h2&gt;
  
  
  Vấn đề nhiều người gặp
&lt;/h2&gt;

&lt;ul&gt;
&lt;li&gt;Triệu chứng “khó chịu”: lúc có lúc không.&lt;/li&gt;
&lt;li&gt;Khó tái hiện (reproduce) ở local/staging.&lt;/li&gt;
&lt;li&gt;Debug tốn thời gian vì thiếu dữ liệu (logs/metrics/traces).&lt;/li&gt;
&lt;/ul&gt;

&lt;h2&gt;
  
  
  Nguyên nhân gốc (root causes) thường gặp
&lt;/h2&gt;

&lt;ol&gt;
&lt;li&gt;
&lt;strong&gt;Môi trường và cấu hình lệch nhau&lt;/strong&gt; giữa các nơi chạy.&lt;/li&gt;
&lt;li&gt;
&lt;strong&gt;Thiếu kiểm soát dữ liệu/traffic&lt;/strong&gt; (spike, burst, batch job, retry storm).&lt;/li&gt;
&lt;li&gt;
&lt;strong&gt;Giới hạn tài nguyên / timeout / quota&lt;/strong&gt; đặt chưa sát thực tế.&lt;/li&gt;
&lt;li&gt;
&lt;strong&gt;Thiếu observability&lt;/strong&gt; khiến bạn đoán mò.&lt;/li&gt;
&lt;/ol&gt;

&lt;h2&gt;
  
  
  Cách giải quyết (thực chiến)
&lt;/h2&gt;

&lt;h3&gt;
  
  
  1) Thu thập tín hiệu đúng trước khi “đập”
&lt;/h3&gt;

&lt;ul&gt;
&lt;li&gt;Xác định &lt;em&gt;impact&lt;/em&gt;: user bị ảnh hưởng gì? error rate/latency ra sao?&lt;/li&gt;
&lt;li&gt;Chốt “sự thật”: xảy ra ở endpoint nào, thời điểm nào, tần suất nào.&lt;/li&gt;
&lt;/ul&gt;

&lt;h3&gt;
  
  
  2) Bổ sung observability để debug nhanh
&lt;/h3&gt;

&lt;ul&gt;
&lt;li&gt;Metrics: tỉ lệ lỗi, latency p95/p99, saturation.&lt;/li&gt;
&lt;li&gt;Logs: có correlation id, log theo request/trace.&lt;/li&gt;
&lt;li&gt;Traces: thấy điểm nghẽn xuyên service.&lt;/li&gt;
&lt;/ul&gt;

&lt;p&gt;Gợi ý: OpenTelemetry là bước khởi đầu đáng giá nếu bạn chưa triển khai traces.&lt;/p&gt;

&lt;h3&gt;
  
  
  3) Chốt hướng fix bằng checklist (ít đoán, nhiều đo)
&lt;/h3&gt;

&lt;ul&gt;
&lt;li&gt;[ ] Có ngưỡng timeout hợp lý và có retry &lt;em&gt;có kiểm soát&lt;/em&gt;
&lt;/li&gt;
&lt;li&gt;[ ] Giới hạn tài nguyên (CPU/RAM) đặt theo đo đạc, không đặt theo cảm giác&lt;/li&gt;
&lt;li&gt;[ ] Có rate limit/circuit breaker cho downstream hay bị nghẽn&lt;/li&gt;
&lt;li&gt;[ ] Có dashboard/alert theo &lt;em&gt;user impact&lt;/em&gt; (SLO) thay vì chỉ theo resource&lt;/li&gt;
&lt;/ul&gt;

&lt;h2&gt;
  
  
  Mẹo nhỏ: test luồng email/notification (không dùng email thật)
&lt;/h2&gt;

&lt;p&gt;Nếu bạn cần test password reset, webhook, hoặc alert qua email trong staging mà không muốn dùng email cá nhân, một hộp thư &lt;em&gt;temp mail&lt;/em&gt; như &lt;a href="https://tempmailso.com" rel="noopener noreferrer"&gt;temp mail&lt;/a&gt; thường tiện hơn (dùng vừa đủ, đừng phụ thuộc cho production).&lt;/p&gt;

&lt;h2&gt;
  
  
  3 FAQ
&lt;/h2&gt;

&lt;h3&gt;
  
  
  FAQ 1: Khi nào nên bật retry?
&lt;/h3&gt;

&lt;p&gt;Chỉ nên retry khi bạn &lt;strong&gt;đo được&lt;/strong&gt; lỗi là transient và retry có giới hạn. Nếu retry che lấp lỗi thật, bạn sẽ trả giá ở production.&lt;/p&gt;

&lt;h3&gt;
  
  
  FAQ 2: Làm sao phân biệt “lỗi hệ thống” và “lỗi do load spike”?
&lt;/h3&gt;

&lt;p&gt;Nhìn theo thời gian: spike có pattern (giờ cao điểm, batch, deploy). Kết hợp metrics saturation (CPU, queue, DB connections) để xác nhận.&lt;/p&gt;

&lt;h3&gt;
  
  
  FAQ 3: Nên ưu tiên logs hay metrics?
&lt;/h3&gt;

&lt;p&gt;Bắt đầu với metrics để thấy xu hướng và đặt alert đúng. Sau đó logs/traces giúp drill-down khi có sự cố.&lt;/p&gt;

&lt;h2&gt;
  
  
  Bài trong series
&lt;/h2&gt;

&lt;ul&gt;
&lt;li&gt;&lt;a href="https://dev.to/alexcarteruk/networking-dns-tls-hardening-best-practices-cho-oomkilled-checklist-vi-du-1j1p"&gt;Networking / DNS / TLS: hardening &amp;amp; best practices cho OOMKilled (checklist + ví dụ)&lt;/a&gt;&lt;/li&gt;
&lt;li&gt;&lt;a href="https://dev.to/alexcarteruk/cloud-cost-optimization-finops-common-pitfalls-cho-deployment-rollback-cach-debug-nhanh-3ca3"&gt;Cloud cost optimization (FinOps): common pitfalls cho deployment rollback (cách debug nhanh)&lt;/a&gt;&lt;/li&gt;
&lt;/ul&gt;

&lt;h2&gt;
  
  
  Tài liệu tham khảo
&lt;/h2&gt;

&lt;ul&gt;
&lt;li&gt;&lt;a href="https://owasp.org/www-project-top-ten/" rel="noopener noreferrer"&gt;OWASP&lt;/a&gt;&lt;/li&gt;
&lt;li&gt;&lt;a href="https://www.nist.gov/cyberframework" rel="noopener noreferrer"&gt;NIST&lt;/a&gt;&lt;/li&gt;
&lt;li&gt;&lt;a href="https://developer.hashicorp.com/vault/docs" rel="noopener noreferrer"&gt;HashiCorp Vault&lt;/a&gt;&lt;/li&gt;
&lt;/ul&gt;

</description>
      <category>security</category>
      <category>devops</category>
      <category>secrets</category>
      <category>cloud</category>
    </item>
    <item>
      <title>Networking / DNS / TLS: hardening &amp; best practices cho OOMKilled (checklist + ví dụ)</title>
      <dc:creator>Alex Carter</dc:creator>
      <pubDate>Sun, 05 Apr 2026 11:13:23 +0000</pubDate>
      <link>https://dev.to/alexcarteruk/networking-dns-tls-hardening-best-practices-cho-oomkilled-checklist-vi-du-1j1p</link>
      <guid>https://dev.to/alexcarteruk/networking-dns-tls-hardening-best-practices-cho-oomkilled-checklist-vi-du-1j1p</guid>
      <description>&lt;p&gt;Nếu bạn làm DevOps/SRE, kiểu gì cũng gặp những tình huống &lt;em&gt;đau đầu&lt;/em&gt; giống nhau: lỗi chỉ xuất hiện ở production, alert kêu cả đêm, hoặc pipeline lúc xanh lúc đỏ.&lt;/p&gt;

&lt;p&gt;Bài này chia sẻ kinh nghiệm thực chiến cho chủ đề &lt;strong&gt;OOMKilled&lt;/strong&gt; trong bối cảnh &lt;strong&gt;Networking / DNS / TLS&lt;/strong&gt; — theo format: &lt;em&gt;triệu chứng → nguyên nhân gốc → cách xử lý → checklist&lt;/em&gt;.&lt;/p&gt;

&lt;h2&gt;
  
  
  Tình huống hôm nay (case thực tế)
&lt;/h2&gt;

&lt;p&gt;Trong hệ thống &lt;strong&gt;Networking / DNS / TLS&lt;/strong&gt;, bạn gặp vấn đề &lt;strong&gt;OOMKilled&lt;/strong&gt; ở production. Điều khó chịu là nó không xảy ra ổn định: có ngày bình thường, có ngày lại bùng lên đúng giờ cao điểm.&lt;/p&gt;

&lt;h2&gt;
  
  
  Vấn đề nhiều người gặp
&lt;/h2&gt;

&lt;ul&gt;
&lt;li&gt;Triệu chứng “khó chịu”: lúc có lúc không.&lt;/li&gt;
&lt;li&gt;Khó tái hiện (reproduce) ở local/staging.&lt;/li&gt;
&lt;li&gt;Debug tốn thời gian vì thiếu dữ liệu (logs/metrics/traces).&lt;/li&gt;
&lt;/ul&gt;

&lt;h2&gt;
  
  
  Nguyên nhân gốc (root causes) thường gặp
&lt;/h2&gt;

&lt;ol&gt;
&lt;li&gt;
&lt;strong&gt;Môi trường và cấu hình lệch nhau&lt;/strong&gt; giữa các nơi chạy.&lt;/li&gt;
&lt;li&gt;
&lt;strong&gt;Thiếu kiểm soát dữ liệu/traffic&lt;/strong&gt; (spike, burst, batch job, retry storm).&lt;/li&gt;
&lt;li&gt;
&lt;strong&gt;Giới hạn tài nguyên / timeout / quota&lt;/strong&gt; đặt chưa sát thực tế.&lt;/li&gt;
&lt;li&gt;
&lt;strong&gt;Thiếu observability&lt;/strong&gt; khiến bạn đoán mò.&lt;/li&gt;
&lt;/ol&gt;

&lt;h2&gt;
  
  
  Cách giải quyết (thực chiến)
&lt;/h2&gt;

&lt;h3&gt;
  
  
  1) Thu thập tín hiệu đúng trước khi “đập”
&lt;/h3&gt;

&lt;ul&gt;
&lt;li&gt;Xác định &lt;em&gt;impact&lt;/em&gt;: user bị ảnh hưởng gì? error rate/latency ra sao?&lt;/li&gt;
&lt;li&gt;Chốt “sự thật”: xảy ra ở endpoint nào, thời điểm nào, tần suất nào.&lt;/li&gt;
&lt;/ul&gt;

&lt;h3&gt;
  
  
  2) Bổ sung observability để debug nhanh
&lt;/h3&gt;

&lt;ul&gt;
&lt;li&gt;Metrics: tỉ lệ lỗi, latency p95/p99, saturation.&lt;/li&gt;
&lt;li&gt;Logs: có correlation id, log theo request/trace.&lt;/li&gt;
&lt;li&gt;Traces: thấy điểm nghẽn xuyên service.&lt;/li&gt;
&lt;/ul&gt;

&lt;p&gt;Gợi ý: OpenTelemetry là bước khởi đầu đáng giá nếu bạn chưa triển khai traces.&lt;/p&gt;

&lt;h3&gt;
  
  
  3) Chốt hướng fix bằng checklist (ít đoán, nhiều đo)
&lt;/h3&gt;

&lt;ul&gt;
&lt;li&gt;[ ] Có ngưỡng timeout hợp lý và có retry &lt;em&gt;có kiểm soát&lt;/em&gt;
&lt;/li&gt;
&lt;li&gt;[ ] Giới hạn tài nguyên (CPU/RAM) đặt theo đo đạc, không đặt theo cảm giác&lt;/li&gt;
&lt;li&gt;[ ] Có rate limit/circuit breaker cho downstream hay bị nghẽn&lt;/li&gt;
&lt;li&gt;[ ] Có dashboard/alert theo &lt;em&gt;user impact&lt;/em&gt; (SLO) thay vì chỉ theo resource&lt;/li&gt;
&lt;/ul&gt;

&lt;h2&gt;
  
  
  Mẹo nhỏ: test luồng email/notification (không dùng email thật)
&lt;/h2&gt;

&lt;p&gt;Nếu bạn cần test password reset, webhook, hoặc alert qua email trong staging mà không muốn dùng email cá nhân, một hộp thư &lt;em&gt;temp mail&lt;/em&gt; như &lt;a href="https://tempmailso.com" rel="noopener noreferrer"&gt;temp mail&lt;/a&gt; thường tiện hơn (dùng vừa đủ, đừng phụ thuộc cho production).&lt;/p&gt;

&lt;h2&gt;
  
  
  3 FAQ
&lt;/h2&gt;

&lt;h3&gt;
  
  
  FAQ 1: Khi nào nên bật retry?
&lt;/h3&gt;

&lt;p&gt;Chỉ nên retry khi bạn &lt;strong&gt;đo được&lt;/strong&gt; lỗi là transient và retry có giới hạn. Nếu retry che lấp lỗi thật, bạn sẽ trả giá ở production.&lt;/p&gt;

&lt;h3&gt;
  
  
  FAQ 2: Làm sao phân biệt “lỗi hệ thống” và “lỗi do load spike”?
&lt;/h3&gt;

&lt;p&gt;Nhìn theo thời gian: spike có pattern (giờ cao điểm, batch, deploy). Kết hợp metrics saturation (CPU, queue, DB connections) để xác nhận.&lt;/p&gt;

&lt;h3&gt;
  
  
  FAQ 3: Nên ưu tiên logs hay metrics?
&lt;/h3&gt;

&lt;p&gt;Bắt đầu với metrics để thấy xu hướng và đặt alert đúng. Sau đó logs/traces giúp drill-down khi có sự cố.&lt;/p&gt;

&lt;h2&gt;
  
  
  Bài trong series
&lt;/h2&gt;

&lt;ul&gt;
&lt;li&gt;&lt;a href="https://dev.to/alexcarteruk/cloud-cost-optimization-finops-common-pitfalls-cho-deployment-rollback-cach-debug-nhanh-3ca3"&gt;Cloud cost optimization (FinOps): common pitfalls cho deployment rollback (cách debug nhanh)&lt;/a&gt;&lt;/li&gt;
&lt;li&gt;&lt;a href="https://dev.to/alexcarteruk/incident-response-on-call-timeouts-operational-runbook-playbook-thuc-chien-27b7"&gt;Incident response / On-call: timeouts — operational runbook (playbook thực chiến)&lt;/a&gt;&lt;/li&gt;
&lt;/ul&gt;

&lt;h2&gt;
  
  
  Tài liệu tham khảo
&lt;/h2&gt;

&lt;ul&gt;
&lt;li&gt;&lt;a href="https://www.cloudflare.com/learning/" rel="noopener noreferrer"&gt;Cloudflare Learning Center&lt;/a&gt;&lt;/li&gt;
&lt;li&gt;&lt;a href="https://letsencrypt.org/docs/" rel="noopener noreferrer"&gt;Let's Encrypt&lt;/a&gt;&lt;/li&gt;
&lt;li&gt;&lt;a href="https://developer.mozilla.org/en-US/docs/Web/Security/Transport_Layer_Security" rel="noopener noreferrer"&gt;MDN: TLS&lt;/a&gt;&lt;/li&gt;
&lt;/ul&gt;

</description>
      <category>devops</category>
      <category>networking</category>
      <category>security</category>
      <category>dns</category>
    </item>
    <item>
      <title>Cloud cost optimization (FinOps): common pitfalls cho deployment rollback (cách debug nhanh)</title>
      <dc:creator>Alex Carter</dc:creator>
      <pubDate>Sat, 04 Apr 2026 13:17:32 +0000</pubDate>
      <link>https://dev.to/alexcarteruk/cloud-cost-optimization-finops-common-pitfalls-cho-deployment-rollback-cach-debug-nhanh-3ca3</link>
      <guid>https://dev.to/alexcarteruk/cloud-cost-optimization-finops-common-pitfalls-cho-deployment-rollback-cach-debug-nhanh-3ca3</guid>
      <description>&lt;p&gt;Nếu bạn làm DevOps/SRE, kiểu gì cũng gặp những tình huống &lt;em&gt;đau đầu&lt;/em&gt; giống nhau: lỗi chỉ xuất hiện ở production, alert kêu cả đêm, hoặc pipeline lúc xanh lúc đỏ.&lt;/p&gt;

&lt;p&gt;Bài này chia sẻ kinh nghiệm thực chiến cho chủ đề &lt;strong&gt;deployment rollback&lt;/strong&gt; trong bối cảnh &lt;strong&gt;Cloud cost optimization (FinOps)&lt;/strong&gt; — theo format: &lt;em&gt;triệu chứng → nguyên nhân gốc → cách xử lý → checklist&lt;/em&gt;.&lt;/p&gt;

&lt;h2&gt;
  
  
  Tình huống hôm nay (case thực tế)
&lt;/h2&gt;

&lt;p&gt;Trong hệ thống &lt;strong&gt;Cloud cost optimization (FinOps)&lt;/strong&gt;, bạn gặp vấn đề &lt;strong&gt;deployment rollback&lt;/strong&gt; ở production. Điều khó chịu là nó không xảy ra ổn định: có ngày bình thường, có ngày lại bùng lên đúng giờ cao điểm.&lt;/p&gt;

&lt;h2&gt;
  
  
  Vấn đề nhiều người gặp
&lt;/h2&gt;

&lt;ul&gt;
&lt;li&gt;Triệu chứng “khó chịu”: lúc có lúc không.&lt;/li&gt;
&lt;li&gt;Khó tái hiện (reproduce) ở local/staging.&lt;/li&gt;
&lt;li&gt;Debug tốn thời gian vì thiếu dữ liệu (logs/metrics/traces).&lt;/li&gt;
&lt;/ul&gt;

&lt;h2&gt;
  
  
  Nguyên nhân gốc (root causes) thường gặp
&lt;/h2&gt;

&lt;ol&gt;
&lt;li&gt;
&lt;strong&gt;Môi trường và cấu hình lệch nhau&lt;/strong&gt; giữa các nơi chạy.&lt;/li&gt;
&lt;li&gt;
&lt;strong&gt;Thiếu kiểm soát dữ liệu/traffic&lt;/strong&gt; (spike, burst, batch job, retry storm).&lt;/li&gt;
&lt;li&gt;
&lt;strong&gt;Giới hạn tài nguyên / timeout / quota&lt;/strong&gt; đặt chưa sát thực tế.&lt;/li&gt;
&lt;li&gt;
&lt;strong&gt;Thiếu observability&lt;/strong&gt; khiến bạn đoán mò.&lt;/li&gt;
&lt;/ol&gt;

&lt;h2&gt;
  
  
  Cách giải quyết (thực chiến)
&lt;/h2&gt;

&lt;h3&gt;
  
  
  1) Thu thập tín hiệu đúng trước khi “đập”
&lt;/h3&gt;

&lt;ul&gt;
&lt;li&gt;Xác định &lt;em&gt;impact&lt;/em&gt;: user bị ảnh hưởng gì? error rate/latency ra sao?&lt;/li&gt;
&lt;li&gt;Chốt “sự thật”: xảy ra ở endpoint nào, thời điểm nào, tần suất nào.&lt;/li&gt;
&lt;/ul&gt;

&lt;h3&gt;
  
  
  2) Bổ sung observability để debug nhanh
&lt;/h3&gt;

&lt;ul&gt;
&lt;li&gt;Metrics: tỉ lệ lỗi, latency p95/p99, saturation.&lt;/li&gt;
&lt;li&gt;Logs: có correlation id, log theo request/trace.&lt;/li&gt;
&lt;li&gt;Traces: thấy điểm nghẽn xuyên service.&lt;/li&gt;
&lt;/ul&gt;

&lt;p&gt;Gợi ý: OpenTelemetry là bước khởi đầu đáng giá nếu bạn chưa triển khai traces.&lt;/p&gt;

&lt;h3&gt;
  
  
  3) Chốt hướng fix bằng checklist (ít đoán, nhiều đo)
&lt;/h3&gt;

&lt;ul&gt;
&lt;li&gt;[ ] Có ngưỡng timeout hợp lý và có retry &lt;em&gt;có kiểm soát&lt;/em&gt;
&lt;/li&gt;
&lt;li&gt;[ ] Giới hạn tài nguyên (CPU/RAM) đặt theo đo đạc, không đặt theo cảm giác&lt;/li&gt;
&lt;li&gt;[ ] Có rate limit/circuit breaker cho downstream hay bị nghẽn&lt;/li&gt;
&lt;li&gt;[ ] Có dashboard/alert theo &lt;em&gt;user impact&lt;/em&gt; (SLO) thay vì chỉ theo resource&lt;/li&gt;
&lt;/ul&gt;

&lt;h2&gt;
  
  
  3 FAQ
&lt;/h2&gt;

&lt;h3&gt;
  
  
  FAQ 1: Khi nào nên bật retry?
&lt;/h3&gt;

&lt;p&gt;Chỉ nên retry khi bạn &lt;strong&gt;đo được&lt;/strong&gt; lỗi là transient và retry có giới hạn. Nếu retry che lấp lỗi thật, bạn sẽ trả giá ở production.&lt;/p&gt;

&lt;h3&gt;
  
  
  FAQ 2: Làm sao phân biệt “lỗi hệ thống” và “lỗi do load spike”?
&lt;/h3&gt;

&lt;p&gt;Nhìn theo thời gian: spike có pattern (giờ cao điểm, batch, deploy). Kết hợp metrics saturation (CPU, queue, DB connections) để xác nhận.&lt;/p&gt;

&lt;h3&gt;
  
  
  FAQ 3: Nên ưu tiên logs hay metrics?
&lt;/h3&gt;

&lt;p&gt;Bắt đầu với metrics để thấy xu hướng và đặt alert đúng. Sau đó logs/traces giúp drill-down khi có sự cố.&lt;/p&gt;

&lt;h2&gt;
  
  
  Bài trong series
&lt;/h2&gt;

&lt;ul&gt;
&lt;li&gt;&lt;a href="https://dev.to/alexcarteruk/incident-response-on-call-timeouts-operational-runbook-playbook-thuc-chien-27b7"&gt;Incident response / On-call: timeouts — operational runbook (playbook thực chiến)&lt;/a&gt;&lt;/li&gt;
&lt;li&gt;&lt;a href="https://dev.to/alexcarteruk/observability-logsmetricstraces-capacity-planning-cho-thundering-herd-checklist-vi-du-3488"&gt;Observability (logs/metrics/traces): capacity planning cho thundering herd (checklist + ví dụ)&lt;/a&gt;&lt;/li&gt;
&lt;/ul&gt;

&lt;h2&gt;
  
  
  Tài liệu tham khảo
&lt;/h2&gt;

&lt;ul&gt;
&lt;li&gt;&lt;a href="https://aws.amazon.com/aws-cost-management/" rel="noopener noreferrer"&gt;AWS Cost Optimization&lt;/a&gt;&lt;/li&gt;
&lt;li&gt;&lt;a href="https://docs.aws.amazon.com/wellarchitected/latest/cost-optimization-pillar/welcome.html" rel="noopener noreferrer"&gt;Well-Architected Cost&lt;/a&gt;&lt;/li&gt;
&lt;li&gt;&lt;a href="https://www.finops.org/introduction/" rel="noopener noreferrer"&gt;FinOps Foundation&lt;/a&gt;&lt;/li&gt;
&lt;/ul&gt;

</description>
      <category>cloud</category>
      <category>devops</category>
      <category>finops</category>
      <category>costoptimization</category>
    </item>
    <item>
      <title>Incident response / On-call: timeouts — operational runbook (playbook thực chiến)</title>
      <dc:creator>Alex Carter</dc:creator>
      <pubDate>Sat, 04 Apr 2026 11:05:35 +0000</pubDate>
      <link>https://dev.to/alexcarteruk/incident-response-on-call-timeouts-operational-runbook-playbook-thuc-chien-27b7</link>
      <guid>https://dev.to/alexcarteruk/incident-response-on-call-timeouts-operational-runbook-playbook-thuc-chien-27b7</guid>
      <description>&lt;p&gt;Nếu bạn làm DevOps/SRE, kiểu gì cũng gặp những tình huống &lt;em&gt;đau đầu&lt;/em&gt; giống nhau: lỗi chỉ xuất hiện ở production, alert kêu cả đêm, hoặc pipeline lúc xanh lúc đỏ.&lt;/p&gt;

&lt;p&gt;Bài này chia sẻ kinh nghiệm thực chiến cho chủ đề &lt;strong&gt;timeouts&lt;/strong&gt; trong bối cảnh &lt;strong&gt;Incident response / On-call&lt;/strong&gt; — theo format: &lt;em&gt;triệu chứng → nguyên nhân gốc → cách xử lý → checklist&lt;/em&gt;.&lt;/p&gt;

&lt;h2&gt;
  
  
  Tình huống hôm nay (case thực tế)
&lt;/h2&gt;

&lt;p&gt;Trong hệ thống &lt;strong&gt;Incident response / On-call&lt;/strong&gt;, bạn gặp vấn đề &lt;strong&gt;timeouts&lt;/strong&gt; ở production. Điều khó chịu là nó không xảy ra ổn định: có ngày bình thường, có ngày lại bùng lên đúng giờ cao điểm.&lt;/p&gt;

&lt;h2&gt;
  
  
  Vấn đề nhiều người gặp
&lt;/h2&gt;

&lt;ul&gt;
&lt;li&gt;Triệu chứng “khó chịu”: lúc có lúc không.&lt;/li&gt;
&lt;li&gt;Khó tái hiện (reproduce) ở local/staging.&lt;/li&gt;
&lt;li&gt;Debug tốn thời gian vì thiếu dữ liệu (logs/metrics/traces).&lt;/li&gt;
&lt;/ul&gt;

&lt;h2&gt;
  
  
  Nguyên nhân gốc (root causes) thường gặp
&lt;/h2&gt;

&lt;ol&gt;
&lt;li&gt;
&lt;strong&gt;Môi trường và cấu hình lệch nhau&lt;/strong&gt; giữa các nơi chạy.&lt;/li&gt;
&lt;li&gt;
&lt;strong&gt;Thiếu kiểm soát dữ liệu/traffic&lt;/strong&gt; (spike, burst, batch job, retry storm).&lt;/li&gt;
&lt;li&gt;
&lt;strong&gt;Giới hạn tài nguyên / timeout / quota&lt;/strong&gt; đặt chưa sát thực tế.&lt;/li&gt;
&lt;li&gt;
&lt;strong&gt;Thiếu observability&lt;/strong&gt; khiến bạn đoán mò.&lt;/li&gt;
&lt;/ol&gt;

&lt;h2&gt;
  
  
  Cách giải quyết (thực chiến)
&lt;/h2&gt;

&lt;h3&gt;
  
  
  1) Thu thập tín hiệu đúng trước khi “đập”
&lt;/h3&gt;

&lt;ul&gt;
&lt;li&gt;Xác định &lt;em&gt;impact&lt;/em&gt;: user bị ảnh hưởng gì? error rate/latency ra sao?&lt;/li&gt;
&lt;li&gt;Chốt “sự thật”: xảy ra ở endpoint nào, thời điểm nào, tần suất nào.&lt;/li&gt;
&lt;/ul&gt;

&lt;h3&gt;
  
  
  2) Bổ sung observability để debug nhanh
&lt;/h3&gt;

&lt;ul&gt;
&lt;li&gt;Metrics: tỉ lệ lỗi, latency p95/p99, saturation.&lt;/li&gt;
&lt;li&gt;Logs: có correlation id, log theo request/trace.&lt;/li&gt;
&lt;li&gt;Traces: thấy điểm nghẽn xuyên service.&lt;/li&gt;
&lt;/ul&gt;

&lt;p&gt;Gợi ý: OpenTelemetry là bước khởi đầu đáng giá nếu bạn chưa triển khai traces.&lt;/p&gt;

&lt;h3&gt;
  
  
  3) Chốt hướng fix bằng checklist (ít đoán, nhiều đo)
&lt;/h3&gt;

&lt;ul&gt;
&lt;li&gt;[ ] Có ngưỡng timeout hợp lý và có retry &lt;em&gt;có kiểm soát&lt;/em&gt;
&lt;/li&gt;
&lt;li&gt;[ ] Giới hạn tài nguyên (CPU/RAM) đặt theo đo đạc, không đặt theo cảm giác&lt;/li&gt;
&lt;li&gt;[ ] Có rate limit/circuit breaker cho downstream hay bị nghẽn&lt;/li&gt;
&lt;li&gt;[ ] Có dashboard/alert theo &lt;em&gt;user impact&lt;/em&gt; (SLO) thay vì chỉ theo resource&lt;/li&gt;
&lt;/ul&gt;

&lt;h2&gt;
  
  
  3 FAQ
&lt;/h2&gt;

&lt;h3&gt;
  
  
  FAQ 1: Khi nào nên bật retry?
&lt;/h3&gt;

&lt;p&gt;Chỉ nên retry khi bạn &lt;strong&gt;đo được&lt;/strong&gt; lỗi là transient và retry có giới hạn. Nếu retry che lấp lỗi thật, bạn sẽ trả giá ở production.&lt;/p&gt;

&lt;h3&gt;
  
  
  FAQ 2: Làm sao phân biệt “lỗi hệ thống” và “lỗi do load spike”?
&lt;/h3&gt;

&lt;p&gt;Nhìn theo thời gian: spike có pattern (giờ cao điểm, batch, deploy). Kết hợp metrics saturation (CPU, queue, DB connections) để xác nhận.&lt;/p&gt;

&lt;h3&gt;
  
  
  FAQ 3: Nên ưu tiên logs hay metrics?
&lt;/h3&gt;

&lt;p&gt;Bắt đầu với metrics để thấy xu hướng và đặt alert đúng. Sau đó logs/traces giúp drill-down khi có sự cố.&lt;/p&gt;

&lt;h2&gt;
  
  
  Bài trong series
&lt;/h2&gt;

&lt;ul&gt;
&lt;li&gt;&lt;a href="https://dev.to/alexcarteruk/observability-logsmetricstraces-capacity-planning-cho-thundering-herd-checklist-vi-du-3488"&gt;Observability (logs/metrics/traces): capacity planning cho thundering herd (checklist + ví dụ)&lt;/a&gt;&lt;/li&gt;
&lt;li&gt;&lt;a href="https://dev.to/alexcarteruk/cicd-checklist-cho-message-queue-backlog-trieu-chung-nguyen-nhan-cach-fix-eba"&gt;CI/CD: checklist cho message queue backlog (triệu chứng → nguyên nhân → cách fix)&lt;/a&gt;&lt;/li&gt;
&lt;/ul&gt;

&lt;h2&gt;
  
  
  Tài liệu tham khảo
&lt;/h2&gt;

&lt;ul&gt;
&lt;li&gt;&lt;a href="https://sre.google/books/" rel="noopener noreferrer"&gt;Google SRE book&lt;/a&gt;&lt;/li&gt;
&lt;li&gt;&lt;a href="https://response.pagerduty.com/" rel="noopener noreferrer"&gt;Incident response (PagerDuty)&lt;/a&gt;&lt;/li&gt;
&lt;li&gt;&lt;a href="https://www.atlassian.com/incident-management/postmortem" rel="noopener noreferrer"&gt;Postmortems (Atlassian)&lt;/a&gt;&lt;/li&gt;
&lt;/ul&gt;

</description>
      <category>sre</category>
      <category>devops</category>
      <category>incident</category>
      <category>oncall</category>
    </item>
    <item>
      <title>Observability (logs/metrics/traces): capacity planning cho thundering herd (checklist + ví dụ)</title>
      <dc:creator>Alex Carter</dc:creator>
      <pubDate>Fri, 03 Apr 2026 12:38:42 +0000</pubDate>
      <link>https://dev.to/alexcarteruk/observability-logsmetricstraces-capacity-planning-cho-thundering-herd-checklist-vi-du-3488</link>
      <guid>https://dev.to/alexcarteruk/observability-logsmetricstraces-capacity-planning-cho-thundering-herd-checklist-vi-du-3488</guid>
      <description>&lt;p&gt;Nếu bạn làm DevOps/SRE, kiểu gì cũng gặp những tình huống &lt;em&gt;đau đầu&lt;/em&gt; giống nhau: lỗi chỉ xuất hiện ở production, alert kêu cả đêm, hoặc pipeline lúc xanh lúc đỏ.&lt;/p&gt;

&lt;p&gt;Bài này chia sẻ kinh nghiệm thực chiến cho chủ đề &lt;strong&gt;thundering herd&lt;/strong&gt; trong bối cảnh &lt;strong&gt;Observability (logs/metrics/traces)&lt;/strong&gt; — theo format: &lt;em&gt;triệu chứng → nguyên nhân gốc → cách xử lý → checklist&lt;/em&gt;.&lt;/p&gt;

&lt;h2&gt;
  
  
  Tình huống hôm nay (case thực tế)
&lt;/h2&gt;

&lt;p&gt;Trong hệ thống &lt;strong&gt;Observability (logs/metrics/traces)&lt;/strong&gt;, bạn gặp vấn đề &lt;strong&gt;thundering herd&lt;/strong&gt; ở production. Điều khó chịu là nó không xảy ra ổn định: có ngày bình thường, có ngày lại bùng lên đúng giờ cao điểm.&lt;/p&gt;

&lt;h2&gt;
  
  
  Vấn đề nhiều người gặp
&lt;/h2&gt;

&lt;ul&gt;
&lt;li&gt;Triệu chứng “khó chịu”: lúc có lúc không.&lt;/li&gt;
&lt;li&gt;Khó tái hiện (reproduce) ở local/staging.&lt;/li&gt;
&lt;li&gt;Debug tốn thời gian vì thiếu dữ liệu (logs/metrics/traces).&lt;/li&gt;
&lt;/ul&gt;

&lt;h2&gt;
  
  
  Nguyên nhân gốc (root causes) thường gặp
&lt;/h2&gt;

&lt;ol&gt;
&lt;li&gt;
&lt;strong&gt;Môi trường và cấu hình lệch nhau&lt;/strong&gt; giữa các nơi chạy.&lt;/li&gt;
&lt;li&gt;
&lt;strong&gt;Thiếu kiểm soát dữ liệu/traffic&lt;/strong&gt; (spike, burst, batch job, retry storm).&lt;/li&gt;
&lt;li&gt;
&lt;strong&gt;Giới hạn tài nguyên / timeout / quota&lt;/strong&gt; đặt chưa sát thực tế.&lt;/li&gt;
&lt;li&gt;
&lt;strong&gt;Thiếu observability&lt;/strong&gt; khiến bạn đoán mò.&lt;/li&gt;
&lt;/ol&gt;

&lt;h2&gt;
  
  
  Cách giải quyết (thực chiến)
&lt;/h2&gt;

&lt;h3&gt;
  
  
  1) Thu thập tín hiệu đúng trước khi “đập”
&lt;/h3&gt;

&lt;ul&gt;
&lt;li&gt;Xác định &lt;em&gt;impact&lt;/em&gt;: user bị ảnh hưởng gì? error rate/latency ra sao?&lt;/li&gt;
&lt;li&gt;Chốt “sự thật”: xảy ra ở endpoint nào, thời điểm nào, tần suất nào.&lt;/li&gt;
&lt;/ul&gt;

&lt;h3&gt;
  
  
  2) Bổ sung observability để debug nhanh
&lt;/h3&gt;

&lt;ul&gt;
&lt;li&gt;Metrics: tỉ lệ lỗi, latency p95/p99, saturation.&lt;/li&gt;
&lt;li&gt;Logs: có correlation id, log theo request/trace.&lt;/li&gt;
&lt;li&gt;Traces: thấy điểm nghẽn xuyên service.&lt;/li&gt;
&lt;/ul&gt;

&lt;p&gt;Gợi ý: OpenTelemetry là bước khởi đầu đáng giá nếu bạn chưa triển khai traces.&lt;/p&gt;

&lt;h3&gt;
  
  
  3) Chốt hướng fix bằng checklist (ít đoán, nhiều đo)
&lt;/h3&gt;

&lt;ul&gt;
&lt;li&gt;[ ] Có ngưỡng timeout hợp lý và có retry &lt;em&gt;có kiểm soát&lt;/em&gt;
&lt;/li&gt;
&lt;li&gt;[ ] Giới hạn tài nguyên (CPU/RAM) đặt theo đo đạc, không đặt theo cảm giác&lt;/li&gt;
&lt;li&gt;[ ] Có rate limit/circuit breaker cho downstream hay bị nghẽn&lt;/li&gt;
&lt;li&gt;[ ] Có dashboard/alert theo &lt;em&gt;user impact&lt;/em&gt; (SLO) thay vì chỉ theo resource&lt;/li&gt;
&lt;/ul&gt;

&lt;h2&gt;
  
  
  Mẹo nhỏ: test luồng email/notification (không dùng email thật)
&lt;/h2&gt;

&lt;p&gt;Nếu bạn cần test password reset, webhook, hoặc alert qua email trong staging mà không muốn dùng email cá nhân, một hộp thư &lt;em&gt;temp mail&lt;/em&gt; như &lt;a href="https://tempmailso.com" rel="noopener noreferrer"&gt;temp mail&lt;/a&gt; thường tiện hơn (dùng vừa đủ, đừng phụ thuộc cho production).&lt;/p&gt;

&lt;h2&gt;
  
  
  3 FAQ
&lt;/h2&gt;

&lt;h3&gt;
  
  
  FAQ 1: Khi nào nên bật retry?
&lt;/h3&gt;

&lt;p&gt;Chỉ nên retry khi bạn &lt;strong&gt;đo được&lt;/strong&gt; lỗi là transient và retry có giới hạn. Nếu retry che lấp lỗi thật, bạn sẽ trả giá ở production.&lt;/p&gt;

&lt;h3&gt;
  
  
  FAQ 2: Làm sao phân biệt “lỗi hệ thống” và “lỗi do load spike”?
&lt;/h3&gt;

&lt;p&gt;Nhìn theo thời gian: spike có pattern (giờ cao điểm, batch, deploy). Kết hợp metrics saturation (CPU, queue, DB connections) để xác nhận.&lt;/p&gt;

&lt;h3&gt;
  
  
  FAQ 3: Nên ưu tiên logs hay metrics?
&lt;/h3&gt;

&lt;p&gt;Bắt đầu với metrics để thấy xu hướng và đặt alert đúng. Sau đó logs/traces giúp drill-down khi có sự cố.&lt;/p&gt;

&lt;h2&gt;
  
  
  Bài trong series
&lt;/h2&gt;

&lt;ul&gt;
&lt;li&gt;&lt;a href="https://dev.to/alexcarteruk/cicd-checklist-cho-message-queue-backlog-trieu-chung-nguyen-nhan-cach-fix-eba"&gt;CI/CD: checklist cho message queue backlog (triệu chứng → nguyên nhân → cách fix)&lt;/a&gt;&lt;/li&gt;
&lt;li&gt;&lt;a href="https://dev.to/alexcarteruk/terraform-iac-migration-plan-cho-dns-propagation-issues-cach-debug-nhanh-603"&gt;Terraform / IaC: migration plan cho DNS propagation issues (cách debug nhanh)&lt;/a&gt;&lt;/li&gt;
&lt;/ul&gt;

&lt;h2&gt;
  
  
  Tài liệu tham khảo
&lt;/h2&gt;

&lt;ul&gt;
&lt;li&gt;&lt;a href="https://opentelemetry.io/docs/" rel="noopener noreferrer"&gt;OpenTelemetry&lt;/a&gt;&lt;/li&gt;
&lt;li&gt;&lt;a href="https://prometheus.io/docs/introduction/overview/" rel="noopener noreferrer"&gt;Prometheus&lt;/a&gt;&lt;/li&gt;
&lt;li&gt;&lt;a href="https://grafana.com/docs/" rel="noopener noreferrer"&gt;Grafana&lt;/a&gt;&lt;/li&gt;
&lt;/ul&gt;

</description>
      <category>devops</category>
      <category>observability</category>
      <category>monitoring</category>
      <category>opentelemetry</category>
    </item>
    <item>
      <title>CI/CD: checklist cho message queue backlog (triệu chứng nguyên nhân cách fix)</title>
      <dc:creator>Alex Carter</dc:creator>
      <pubDate>Fri, 03 Apr 2026 11:20:09 +0000</pubDate>
      <link>https://dev.to/alexcarteruk/cicd-checklist-cho-message-queue-backlog-trieu-chung-nguyen-nhan-cach-fix-eba</link>
      <guid>https://dev.to/alexcarteruk/cicd-checklist-cho-message-queue-backlog-trieu-chung-nguyen-nhan-cach-fix-eba</guid>
      <description>&lt;p&gt;Nếu bạn làm DevOps/SRE, kiểu gì cũng gặp những tình huống &lt;em&gt;đau đầu&lt;/em&gt; giống nhau: lỗi chỉ xuất hiện ở production, alert kêu cả đêm, hoặc pipeline lúc xanh lúc đỏ.&lt;/p&gt;

&lt;p&gt;Bài này chia sẻ kinh nghiệm thực chiến cho chủ đề &lt;strong&gt;message queue backlog&lt;/strong&gt; trong bối cảnh &lt;strong&gt;CI/CD&lt;/strong&gt; — theo format: &lt;em&gt;triệu chứng → nguyên nhân gốc → cách xử lý → checklist&lt;/em&gt;.&lt;/p&gt;

&lt;h2&gt;
  
  
  Tình huống hôm nay (case thực tế)
&lt;/h2&gt;

&lt;p&gt;Trong hệ thống &lt;strong&gt;CI/CD&lt;/strong&gt;, bạn gặp vấn đề &lt;strong&gt;message queue backlog&lt;/strong&gt; ở production. Điều khó chịu là nó không xảy ra ổn định: có ngày bình thường, có ngày lại bùng lên đúng giờ cao điểm.&lt;/p&gt;

&lt;h2&gt;
  
  
  Vấn đề nhiều người gặp
&lt;/h2&gt;

&lt;ul&gt;
&lt;li&gt;Triệu chứng “khó chịu”: lúc có lúc không.&lt;/li&gt;
&lt;li&gt;Khó tái hiện (reproduce) ở local/staging.&lt;/li&gt;
&lt;li&gt;Debug tốn thời gian vì thiếu dữ liệu (logs/metrics/traces).&lt;/li&gt;
&lt;/ul&gt;

&lt;h2&gt;
  
  
  Nguyên nhân gốc (root causes) thường gặp
&lt;/h2&gt;

&lt;ol&gt;
&lt;li&gt;
&lt;strong&gt;Môi trường và cấu hình lệch nhau&lt;/strong&gt; giữa các nơi chạy.&lt;/li&gt;
&lt;li&gt;
&lt;strong&gt;Thiếu kiểm soát dữ liệu/traffic&lt;/strong&gt; (spike, burst, batch job, retry storm).&lt;/li&gt;
&lt;li&gt;
&lt;strong&gt;Giới hạn tài nguyên / timeout / quota&lt;/strong&gt; đặt chưa sát thực tế.&lt;/li&gt;
&lt;li&gt;
&lt;strong&gt;Thiếu observability&lt;/strong&gt; khiến bạn đoán mò.&lt;/li&gt;
&lt;/ol&gt;

&lt;h2&gt;
  
  
  Cách giải quyết (thực chiến)
&lt;/h2&gt;

&lt;h3&gt;
  
  
  1) Thu thập tín hiệu đúng trước khi “đập”
&lt;/h3&gt;

&lt;ul&gt;
&lt;li&gt;Xác định &lt;em&gt;impact&lt;/em&gt;: user bị ảnh hưởng gì? error rate/latency ra sao?&lt;/li&gt;
&lt;li&gt;Chốt “sự thật”: xảy ra ở endpoint nào, thời điểm nào, tần suất nào.&lt;/li&gt;
&lt;/ul&gt;

&lt;h3&gt;
  
  
  2) Bổ sung observability để debug nhanh
&lt;/h3&gt;

&lt;ul&gt;
&lt;li&gt;Metrics: tỉ lệ lỗi, latency p95/p99, saturation.&lt;/li&gt;
&lt;li&gt;Logs: có correlation id, log theo request/trace.&lt;/li&gt;
&lt;li&gt;Traces: thấy điểm nghẽn xuyên service.&lt;/li&gt;
&lt;/ul&gt;

&lt;p&gt;Gợi ý: OpenTelemetry là bước khởi đầu đáng giá nếu bạn chưa triển khai traces.&lt;/p&gt;

&lt;h3&gt;
  
  
  3) Chốt hướng fix bằng checklist (ít đoán, nhiều đo)
&lt;/h3&gt;

&lt;ul&gt;
&lt;li&gt;[ ] Có ngưỡng timeout hợp lý và có retry &lt;em&gt;có kiểm soát&lt;/em&gt;
&lt;/li&gt;
&lt;li&gt;[ ] Giới hạn tài nguyên (CPU/RAM) đặt theo đo đạc, không đặt theo cảm giác&lt;/li&gt;
&lt;li&gt;[ ] Có rate limit/circuit breaker cho downstream hay bị nghẽn&lt;/li&gt;
&lt;li&gt;[ ] Có dashboard/alert theo &lt;em&gt;user impact&lt;/em&gt; (SLO) thay vì chỉ theo resource&lt;/li&gt;
&lt;/ul&gt;

&lt;h2&gt;
  
  
  Mẹo nhỏ: test luồng email/notification (không dùng email thật)
&lt;/h2&gt;

&lt;p&gt;Nếu bạn cần test password reset, webhook, hoặc alert qua email trong staging mà không muốn dùng email cá nhân, một hộp thư &lt;em&gt;temp mail&lt;/em&gt; như &lt;a href="https://tempmailso.com" rel="noopener noreferrer"&gt;temp mail&lt;/a&gt; thường tiện hơn (dùng vừa đủ, đừng phụ thuộc cho production).&lt;/p&gt;

&lt;h2&gt;
  
  
  3 FAQ
&lt;/h2&gt;

&lt;h3&gt;
  
  
  FAQ 1: Khi nào nên bật retry?
&lt;/h3&gt;

&lt;p&gt;Chỉ nên retry khi bạn &lt;strong&gt;đo được&lt;/strong&gt; lỗi là transient và retry có giới hạn. Nếu retry che lấp lỗi thật, bạn sẽ trả giá ở production.&lt;/p&gt;

&lt;h3&gt;
  
  
  FAQ 2: Làm sao phân biệt “lỗi hệ thống” và “lỗi do load spike”?
&lt;/h3&gt;

&lt;p&gt;Nhìn theo thời gian: spike có pattern (giờ cao điểm, batch, deploy). Kết hợp metrics saturation (CPU, queue, DB connections) để xác nhận.&lt;/p&gt;

&lt;h3&gt;
  
  
  FAQ 3: Nên ưu tiên logs hay metrics?
&lt;/h3&gt;

&lt;p&gt;Bắt đầu với metrics để thấy xu hướng và đặt alert đúng. Sau đó logs/traces giúp drill-down khi có sự cố.&lt;/p&gt;

&lt;h2&gt;
  
  
  Bài trong series
&lt;/h2&gt;

&lt;ul&gt;
&lt;li&gt;&lt;a href="https://dev.to/alexcarteruk/terraform-iac-migration-plan-cho-dns-propagation-issues-cach-debug-nhanh-603"&gt;Terraform / IaC: migration plan cho DNS propagation issues (cách debug nhanh)&lt;/a&gt;&lt;/li&gt;
&lt;li&gt;&lt;a href="https://dev.to/alexcarteruk/kubernetes-monitoring-alerting-design-cho-disk-full-cach-debug-nhanh-57oo"&gt;Kubernetes: monitoring &amp;amp; alerting design cho disk full (cách debug nhanh)&lt;/a&gt;&lt;/li&gt;
&lt;/ul&gt;

&lt;h2&gt;
  
  
  Tài liệu tham khảo
&lt;/h2&gt;

&lt;ul&gt;
&lt;li&gt;&lt;a href="https://docs.github.com/actions" rel="noopener noreferrer"&gt;GitHub Actions&lt;/a&gt;&lt;/li&gt;
&lt;li&gt;&lt;a href="https://opentelemetry.io/docs/" rel="noopener noreferrer"&gt;OpenTelemetry&lt;/a&gt;&lt;/li&gt;
&lt;li&gt;&lt;a href="https://sre.google/books/" rel="noopener noreferrer"&gt;Google SRE book&lt;/a&gt;&lt;/li&gt;
&lt;/ul&gt;

</description>
      <category>devops</category>
      <category>cicd</category>
      <category>testing</category>
      <category>productivity</category>
    </item>
  </channel>
</rss>
