<?xml version='1.0' encoding='UTF-8'?>
<feed xmlns="http://www.w3.org/2005/Atom" xml:lang="en">
  <id>https://www.donaldsebleung.com/</id>
  <title>donaldsebleung</title>
  <updated>2026-03-08T03:22:26.431927+00:00</updated>
  <author>
    <name>Donald Sebastian Leung</name>
    <email>donaldsebleung@gmail.com</email>
  </author>
  <link href="https://donaldsebleung.com/feed/rss/" rel="alternate"/>
  <link href="https://www.donaldsebleung.com/feed/atom" rel="self"/>
  <generator uri="https://lkiesow.github.io/python-feedgen" version="1.0.0">python-feedgen</generator>
  <logo>https://www.donaldsebleung.com/assets/images/avatar.png</logo>
  <subtitle>donaldsebleung's personal website and DevOps blog</subtitle>
  <entry>
    <id>https://donaldsebleung.com/blog/20260302-exploring-the-ascend-ecosystem-with-orangepi-aipro-20t</id>
    <title>Exploring the Ascend ecosystem with OrangePi AIpro (20T)</title>
    <updated>2026-03-02T00:00:00+08:00</updated>
    <author>
      <name>Donald Sebastian Leung</name>
      <email>donaldsebleung@gmail.com</email>
    </author>
    <content>OrangePi AIpro (20T) is a development board under the Orange Pi brand owned by Xunlong Software and released in 2024. It features 4 CPU cores plus a neural processing unit (NPU) based on Huawei's Ascend technology capable of running modern AI/ML workloads. The embedded NPU is capable of performing 20 TOPS or trillion operations per second.

Follow me as I unpack and set up my OrangePi AIpro (20T) development board for exploring AI/ML applications and use cases.</content>
    <link href="https://donaldsebleung.com/blog/20260302-exploring-the-ascend-ecosystem-with-orangepi-aipro-20t"/>
    <summary>Exploring the Ascend ecosystem with OrangePi AIpro (20T)</summary>
    <published>2026-03-02T00:00:00+08:00</published>
  </entry>
  <entry>
    <id>https://donaldsebleung.com/blog/20260217-deploying-deepseek-r1-for-distributed-inferencing-with-ray</id>
    <title>Deploying DeepSeek-R1 for distributed inferencing with Ray</title>
    <updated>2026-02-17T00:00:00+08:00</updated>
    <author>
      <name>Donald Sebastian Leung</name>
      <email>donaldsebleung@gmail.com</email>
    </author>
    <content>Follow me as I deploy a distilled variant of DeepSeek-R1 across 2 GPU-enabled cloud servers on Huawei Cloud with vLLM and Ray.</content>
    <link href="https://donaldsebleung.com/blog/20260217-deploying-deepseek-r1-for-distributed-inferencing-with-ray"/>
    <summary>Deploying DeepSeek-R1 for distributed inferencing with Ray</summary>
    <published>2026-02-17T00:00:00+08:00</published>
  </entry>
  <entry>
    <id>https://donaldsebleung.com/blog/20260214-running-deepseek-r1-on-a-commodity-laptop-with-vllm</id>
    <title>Running DeepSeek-R1 on a commodity laptop with vLLM</title>
    <updated>2026-02-14T00:00:00+08:00</updated>
    <author>
      <name>Donald Sebastian Leung</name>
      <email>donaldsebleung@gmail.com</email>
    </author>
    <content>Follow me as I deploy my first locally hosted distilled variant of the DeepSeek-R1 model on a commodity Redmi Book 14 2024 laptop with vLLM in this exploratory lab.</content>
    <link href="https://donaldsebleung.com/blog/20260214-running-deepseek-r1-on-a-commodity-laptop-with-vllm"/>
    <summary>Running DeepSeek-R1 on a commodity laptop with vLLM</summary>
    <published>2026-02-14T00:00:00+08:00</published>
  </entry>
  <entry>
    <id>https://donaldsebleung.com/blog/20260118-exploring-the-developer-ecosystem-on-huawei-matebook-pro</id>
    <title>Exploring the developer ecosystem on Huawei MateBook Pro</title>
    <updated>2026-01-18T00:00:00+08:00</updated>
    <author>
      <name>Donald Sebastian Leung</name>
      <email>donaldsebleung@gmail.com</email>
    </author>
    <content>Follow me as I explore the developer tooling and ecosystem available on the Huawei MateBook Pro since HarmonyOS 6.x, plus some of the improvements that I would like to see on HarmonyOS 6.x in the near future.</content>
    <link href="https://donaldsebleung.com/blog/20260118-exploring-the-developer-ecosystem-on-huawei-matebook-pro"/>
    <summary>Exploring the developer ecosystem on Huawei MateBook Pro</summary>
    <published>2026-01-18T00:00:00+08:00</published>
  </entry>
  <entry>
    <id>https://donaldsebleung.com/blog/20260117-implementing-gitops-practices-with-argo-cd</id>
    <title>Implementing GitOps practices with Argo CD</title>
    <updated>2026-01-17T00:00:00+08:00</updated>
    <author>
      <name>Donald Sebastian Leung</name>
      <email>donaldsebleung@gmail.com</email>
    </author>
    <content>Learn how to deploy a sample podinfo application via GitOps with Argo CD using the Argo CD Operator</content>
    <link href="https://donaldsebleung.com/blog/20260117-implementing-gitops-practices-with-argo-cd"/>
    <summary>Implementing GitOps practices with Argo CD</summary>
    <published>2026-01-17T00:00:00+08:00</published>
  </entry>
  <entry>
    <id>https://donaldsebleung.com/blog/20250923-configuring-rook-with-external-ceph-storage</id>
    <title>Configuring Rook with external Ceph storage</title>
    <updated>2025-09-23T00:00:00+08:00</updated>
    <author>
      <name>Donald Sebastian Leung</name>
      <email>donaldsebleung@gmail.com</email>
    </author>
    <content>Learn how to configure Rook to connect to an external Ceph cluster provisioned with cephadm</content>
    <link href="https://donaldsebleung.com/blog/20250923-configuring-rook-with-external-ceph-storage"/>
    <summary>Configuring Rook with external Ceph storage</summary>
    <published>2025-09-23T00:00:00+08:00</published>
  </entry>
  <entry>
    <id>https://donaldsebleung.com/blog/20250921-provisioning-ceph-storage-with-cephadm</id>
    <title>Provisioning Ceph storage with cephadm</title>
    <updated>2025-09-21T00:00:00+08:00</updated>
    <author>
      <name>Donald Sebastian Leung</name>
      <email>donaldsebleung@gmail.com</email>
    </author>
    <content>Learn how to provision a Ceph cluster with cephadm and provision block storage for applications</content>
    <link href="https://donaldsebleung.com/blog/20250921-provisioning-ceph-storage-with-cephadm"/>
    <summary>Provisioning Ceph storage with cephadm</summary>
    <published>2025-09-21T00:00:00+08:00</published>
  </entry>
  <entry>
    <id>https://donaldsebleung.com/blog/20250420-implementing-pod-to-pod-encryption-with-istio-ambient-mesh</id>
    <title>Implementing Pod-to-Pod encryption with Istio Ambient Mesh</title>
    <updated>2025-04-20T00:00:00+08:00</updated>
    <author>
      <name>Donald Sebastian Leung</name>
      <email>donaldsebleung@gmail.com</email>
    </author>
    <content>Learn how to implement Pod-to-Pod encryption with Istio Ambient Mesh</content>
    <link href="https://donaldsebleung.com/blog/20250420-implementing-pod-to-pod-encryption-with-istio-ambient-mesh"/>
    <summary>Implementing Pod-to-Pod encryption with Istio Ambient Mesh</summary>
    <published>2025-04-20T00:00:00+08:00</published>
  </entry>
  <entry>
    <id>https://donaldsebleung.com/blog/20250413-uncovering-a-reverse-shell-attack-in-real-time</id>
    <title>Uncovering a reverse shell attack in real time</title>
    <updated>2025-04-13T00:00:00+08:00</updated>
    <author>
      <name>Donald Sebastian Leung</name>
      <email>donaldsebleung@gmail.com</email>
    </author>
    <content>Uncovering a reverse shell attack in real time with Tracee and lessons learned from this incident</content>
    <link href="https://donaldsebleung.com/blog/20250413-uncovering-a-reverse-shell-attack-in-real-time"/>
    <summary>Uncovering a reverse shell attack in real time</summary>
    <published>2025-04-13T00:00:00+08:00</published>
  </entry>
  <entry>
    <id>https://donaldsebleung.com/blog/20250304-understanding-the-security-benefits-of-ebpf-based-vs-traditional-service-meshes</id>
    <title>Understanding the security benefits of eBPF-based vs. traditional service meshes</title>
    <updated>2025-03-04T00:00:00+08:00</updated>
    <author>
      <name>Donald Sebastian Leung</name>
      <email>donaldsebleung@gmail.com</email>
    </author>
    <content>Understand the security pitfalls of traditional user-space service meshes and how eBPF-based service meshes elegantly address these issues</content>
    <link href="https://donaldsebleung.com/blog/20250304-understanding-the-security-benefits-of-ebpf-based-vs-traditional-service-meshes"/>
    <summary>Understanding the security benefits of eBPF-based vs. traditional service meshes</summary>
    <published>2025-03-04T00:00:00+08:00</published>
  </entry>
  <entry>
    <id>https://www.donaldsebleung.com/blog/20250119-operating-kafka-at-scale-with-strimzi</id>
    <title>Operating Kafka at scale with Strimzi</title>
    <updated>2025-01-19T00:00:00+08:00</updated>
    <author>
      <name>Donald Sebastian Leung</name>
      <email>donaldsebleung@gmail.com</email>
    </author>
    <content>Deploy, manage and scale Kafka clusters on Kubernetes with ease using the Strimzi operator</content>
    <link href="https://www.donaldsebleung.com/blog/20250119-operating-kafka-at-scale-with-strimzi"/>
    <summary>Operating Kafka at scale with Strimzi</summary>
    <published>2025-01-19T00:00:00+08:00</published>
  </entry>
  <entry>
    <id>https://www.donaldsebleung.com/blog/20241228-enforcing-recommended-practices-on-kubernetes-with-validatingadmissionpolicy</id>
    <title>Enforcing recommended practices on Kubernetes with ValidatingAdmissionPolicy</title>
    <updated>2024-12-28T00:00:00+08:00</updated>
    <author>
      <name>Donald Sebastian Leung</name>
      <email>donaldsebleung@gmail.com</email>
    </author>
    <content>Enforce compliance controls and mitigate platform vulnerabilities with Kubernetes ValidatingAdmissionPolicy.</content>
    <link href="https://www.donaldsebleung.com/blog/20241228-enforcing-recommended-practices-on-kubernetes-with-validatingadmissionpolicy"/>
    <summary>Enforcing recommended practices on Kubernetes with ValidatingAdmissionPolicy</summary>
    <published>2024-12-28T00:00:00+08:00</published>
  </entry>
  <entry>
    <id>https://www.donaldsebleung.com/blog/20240609-protecting-stateful-workloads-on-kubernetes-with-kanister</id>
    <title>Protecting stateful workloads on Kubernetes with Kanister</title>
    <updated>2024-06-09T00:00:00+08:00</updated>
    <author>
      <name>Donald Sebastian Leung</name>
      <email>donaldsebleung@gmail.com</email>
    </author>
    <content>Define application-specific backup and recovery operations for your stateful workloads on Kubernetes with Kanister, a CNCF sandbox project and an integral component of the enterprise-ready Veeam Kasten Kubernetes data protection platform.</content>
    <link href="https://www.donaldsebleung.com/blog/20240609-protecting-stateful-workloads-on-kubernetes-with-kanister"/>
    <summary>Protecting stateful workloads on Kubernetes with Kanister</summary>
    <published>2024-06-09T00:00:00+08:00</published>
  </entry>
  <entry>
    <id>https://fedoramagazine.org/keycloak-on-fedora-workstation-with-podman/</id>
    <title>Keycloak on Fedora Workstation with Podman - Fedora Magazine</title>
    <updated>2024-03-06T00:00:00+08:00</updated>
    <author>
      <name>Donald Sebastian Leung</name>
      <email>donaldsebleung@gmail.com</email>
    </author>
    <content>I would like to thank the Fedora Project for selecting my article on Keycloak for publication. Deploy an enterprise-ready identity and access management (IAM) solution with Podman on Fedora Linux with SSL/TLS encryption enabled, learn how to configure a realm with mandatory MFA enforcement for all users, create a user and observe single-sign on (SSO) in action with this hands-on lab.</content>
    <link href="https://fedoramagazine.org/keycloak-on-fedora-workstation-with-podman/"/>
    <summary>Keycloak on Fedora Workstation with Podman - Fedora Magazine</summary>
    <published>2024-03-06T00:00:00+08:00</published>
  </entry>
  <entry>
    <id>https://www.donaldsebleung.com/blog/20240225-deploying-keycloak-on-fedora-workstation-with-podman</id>
    <title>Deploying Keycloak on Fedora Workstation with Podman</title>
    <updated>2024-02-25T00:00:00+08:00</updated>
    <author>
      <name>Donald Sebastian Leung</name>
      <email>donaldsebleung@gmail.com</email>
    </author>
    <content>Deploy an enterprise-ready identity and access management (IAM) solution with Podman on Fedora Linux with SSL/TLS encryption enabled, learn how to configure a realm with mandatory MFA enforcement for all users, create a user and observe single-sign on (SSO) in action with this hands-on lab.</content>
    <link href="https://www.donaldsebleung.com/blog/20240225-deploying-keycloak-on-fedora-workstation-with-podman"/>
    <summary>Deploying Keycloak on Fedora Workstation with Podman</summary>
    <published>2024-02-25T00:00:00+08:00</published>
  </entry>
  <entry>
    <id>https://www.donaldsebleung.com/blog/20240213-running-workloads-at-the-edge-with-microk8s</id>
    <title>Running workloads at the edge with MicroK8s</title>
    <updated>2024-02-13T00:00:00+08:00</updated>
    <author>
      <name>Donald Sebastian Leung</name>
      <email>donaldsebleung@gmail.com</email>
    </author>
    <content>Get started with Kubernetes in no time with MicroK8s, deploy a website with just a few simple commands and obtain a verified HTTPs certificate automatically with cert-manager and Let's Encrypt.</content>
    <link href="https://www.donaldsebleung.com/blog/20240213-running-workloads-at-the-edge-with-microk8s"/>
    <summary>Running workloads at the edge with MicroK8s</summary>
    <published>2024-02-13T00:00:00+08:00</published>
  </entry>
  <entry>
    <id>https://fedoramagazine.org/okd-on-fedora-workstation-with-crc/</id>
    <title>OKD on Fedora Workstation with CRC - Fedora Magazine</title>
    <updated>2024-01-22T00:00:00+08:00</updated>
    <author>
      <name>Donald Sebastian Leung</name>
      <email>donaldsebleung@gmail.com</email>
    </author>
    <content>I would like to thank the Fedora Project for selecting my article on OKD for publication. Basic Kubernetes concepts are explained from the ground up - no prior Kubernetes experience required.</content>
    <link href="https://fedoramagazine.org/okd-on-fedora-workstation-with-crc/"/>
    <summary>OKD on Fedora Workstation with CRC - Fedora Magazine</summary>
    <published>2024-01-22T00:00:00+08:00</published>
  </entry>
  <entry>
    <id>https://www.donaldsebleung.com/blog/20240114-exploring-openshift-with-crc</id>
    <title>Exploring OpenShift with CRC</title>
    <updated>2024-01-14T00:00:00+08:00</updated>
    <author>
      <name>Donald Sebastian Leung</name>
      <email>donaldsebleung@gmail.com</email>
    </author>
    <content>Learn all about OpenShift through this hands-on exploration session, the developer and operations friendly Kubernetes distro by Red Hat.</content>
    <link href="https://www.donaldsebleung.com/blog/20240114-exploring-openshift-with-crc"/>
    <summary>Exploring OpenShift with CRC</summary>
    <published>2024-01-14T00:00:00+08:00</published>
  </entry>
  <entry>
    <id>https://www.donaldsebleung.com/blog/20231226-running-stateful-workloads-on-kubernetes-with-rook-ceph</id>
    <title>Running stateful workloads on Kubernetes with Rook Ceph</title>
    <updated>2023-12-26T00:00:00+08:00</updated>
    <author>
      <name>Donald Sebastian Leung</name>
      <email>donaldsebleung@gmail.com</email>
    </author>
    <content>Learn about the CNCF Graduated Rook Ceph distributed storage solution for providing redundant enterprise-grade storage for your on-premises Kubernetes clusters through this hands-on lab exercise.</content>
    <link href="https://www.donaldsebleung.com/blog/20231226-running-stateful-workloads-on-kubernetes-with-rook-ceph"/>
    <summary>Running stateful workloads on Kubernetes with Rook Ceph</summary>
    <published>2023-12-26T00:00:00+08:00</published>
  </entry>
  <entry>
    <id>https://www.donaldsebleung.com/blog/20231114-investigating-a-failed-volumesnapshot-with-nfs-on-kubernetes</id>
    <title>Investigating a failed VolumeSnapshot with NFS on Kubernetes</title>
    <updated>2023-11-14T00:00:00+08:00</updated>
    <author>
      <name>Donald Sebastian Leung</name>
      <email>donaldsebleung@gmail.com</email>
    </author>
    <content>Understand the security implications and drawbacks of adopting NFS as your storage backend for on-premises Kubernetes clusters so as to make an informed decision on selecting a secure, reliable, enterprise-ready storage backend for your on-premises Kubernetes clusters.</content>
    <link href="https://www.donaldsebleung.com/blog/20231114-investigating-a-failed-volumesnapshot-with-nfs-on-kubernetes"/>
    <summary>Investigating a failed VolumeSnapshot with NFS on Kubernetes</summary>
    <published>2023-11-14T00:00:00+08:00</published>
  </entry>
  <entry>
    <id>https://www.donaldsebleung.com/blog/20230916-configuring-an-ipsec-vpn-connection-with-openiked</id>
    <title>Configuring an IPsec VPN connection with OpenIKED</title>
    <updated>2023-09-16T00:00:00+08:00</updated>
    <author>
      <name>Donald Sebastian Leung</name>
      <email>donaldsebleung@gmail.com</email>
    </author>
    <content>Take a deep dive into applied computer networking by constructing two disconnected networks with OpenBSD as the gateway device in each subnet, then connect them together by establishing an IPsec VPN connection with OpenIKED.</content>
    <link href="https://www.donaldsebleung.com/blog/20230916-configuring-an-ipsec-vpn-connection-with-openiked"/>
    <summary>Configuring an IPsec VPN connection with OpenIKED</summary>
    <published>2023-09-16T00:00:00+08:00</published>
  </entry>
  <entry>
    <id>https://www.donaldsebleung.com/blog/20230912-configuring-a-simple-router-with-openbsd</id>
    <title>Configuring a simple router with OpenBSD</title>
    <updated>2023-09-12T00:00:00+08:00</updated>
    <author>
      <name>Donald Sebastian Leung</name>
      <email>donaldsebleung@gmail.com</email>
    </author>
    <content>Solidify your knowledge on computer networking by installing OpenBSD on a physical or virtual appliance and configuring it as a gateway device.</content>
    <link href="https://www.donaldsebleung.com/blog/20230912-configuring-a-simple-router-with-openbsd"/>
    <summary>Configuring a simple router with OpenBSD</summary>
    <published>2023-09-12T00:00:00+08:00</published>
  </entry>
  <entry>
    <id>https://www.donaldsebleung.com/blog/20230825-evaluating-and-securing-your-kubernetes-infrastructure-with-kube-bench</id>
    <title>Evaluating and securing your Kubernetes infrastructure with kube-bench</title>
    <updated>2023-08-25T00:00:00+08:00</updated>
    <author>
      <name>Donald Sebastian Leung</name>
      <email>donaldsebleung@gmail.com</email>
    </author>
    <content>Evaluate your cluster against the CIS Kubernetes benchmark with kube-bench and apply remediations to ensure your cluster is compliant and secure.</content>
    <link href="https://www.donaldsebleung.com/blog/20230825-evaluating-and-securing-your-kubernetes-infrastructure-with-kube-bench"/>
    <summary>Evaluating and securing your Kubernetes infrastructure with kube-bench</summary>
    <published>2023-08-25T00:00:00+08:00</published>
  </entry>
  <entry>
    <id>https://www.donaldsebleung.com/blog/20230819-scanning-and-remediating-vulnerabilities-with-grype</id>
    <title>Scanning and remediating vulnerabilities with Grype</title>
    <updated>2023-08-19T00:00:00+08:00</updated>
    <author>
      <name>Donald Sebastian Leung</name>
      <email>donaldsebleung@gmail.com</email>
    </author>
    <content>Uncover existing vulnerabilities with a container image scanning tool such as Grype and learn how to minimize the attack surface of your container images.</content>
    <link href="https://www.donaldsebleung.com/blog/20230819-scanning-and-remediating-vulnerabilities-with-grype"/>
    <summary>Scanning and remediating vulnerabilities with Grype</summary>
    <published>2023-08-19T00:00:00+08:00</published>
  </entry>
  <entry>
    <id>https://www.donaldsebleung.com/blog/20230802-implementing-continuous-delivery-pipelines-with-github-actions</id>
    <title>Implementing continuous delivery pipelines with GitHub Actions</title>
    <updated>2023-08-02T00:00:00+08:00</updated>
    <author>
      <name>Donald Sebastian Leung</name>
      <email>donaldsebleung@gmail.com</email>
    </author>
    <content>Build an end-to-end (E2E) CI/CD pipeline from scratch for a Python microservice which automatically executes unit and integration tests, builds a container image from a Dockerfile, pushes the image to Docker Hub and deploys the microservice to a local kind Kubernetes cluster.</content>
    <link href="https://www.donaldsebleung.com/blog/20230802-implementing-continuous-delivery-pipelines-with-github-actions"/>
    <summary>Implementing continuous delivery pipelines with GitHub Actions</summary>
    <published>2023-08-02T00:00:00+08:00</published>
  </entry>
  <entry>
    <id>https://www.donaldsebleung.com/blog/20230729-enabling-local-project-collaboration-with-gitea</id>
    <title>Enabling local project collaboration with Gitea</title>
    <updated>2023-07-29T00:00:00+08:00</updated>
    <author>
      <name>Donald Sebastian Leung</name>
      <email>donaldsebleung@gmail.com</email>
    </author>
    <content>Explore how to deploy a lightweight private Git server with minimal effort to Kubernetes with Gitea and Helm.</content>
    <link href="https://www.donaldsebleung.com/blog/20230729-enabling-local-project-collaboration-with-gitea"/>
    <summary>Enabling local project collaboration with Gitea</summary>
    <published>2023-07-29T00:00:00+08:00</published>
  </entry>
  <entry>
    <id>https://www.donaldsebleung.com/blog/20230720-securing-your-kubernetes-workloads-with-sigstore</id>
    <title>Securing your Kubernetes workloads with Sigstore</title>
    <updated>2023-07-20T00:00:00+08:00</updated>
    <author>
      <name>Donald Sebastian Leung</name>
      <email>donaldsebleung@gmail.com</email>
    </author>
    <content>Learn how to secure your CI/CD pipelines from software supply chain attacks by leveraging the Cosign and policy-controller projects from Sigstore.</content>
    <link href="https://www.donaldsebleung.com/blog/20230720-securing-your-kubernetes-workloads-with-sigstore"/>
    <summary>Securing your Kubernetes workloads with Sigstore</summary>
    <published>2023-07-20T00:00:00+08:00</published>
  </entry>
  <entry>
    <id>https://www.donaldsebleung.com/blog/20230715-patching-a-directory-traversal-attack-vulnerability</id>
    <title>Patching a directory traversal attack vulnerability</title>
    <updated>2023-07-15T00:00:00+08:00</updated>
    <author>
      <name>Donald Sebastian Leung</name>
      <email>donaldsebleung@gmail.com</email>
    </author>
    <content>Learn how seemingly innocuous bugs in Python code can manifest themselves as security loopholes that can be exploited by malicious actors and how to prevent these bugs from appearing in the first place.</content>
    <link href="https://www.donaldsebleung.com/blog/20230715-patching-a-directory-traversal-attack-vulnerability"/>
    <summary>Patching a directory traversal attack vulnerability</summary>
    <published>2023-07-15T00:00:00+08:00</published>
  </entry>
  <entry>
    <id>https://www.donaldsebleung.com/blog/20230715-migrating-my-personal-website-to-an-event-driven-serverless-architecture</id>
    <title>Migrating my personal website to an event-driven serverless architecture</title>
    <updated>2023-07-15T00:00:00+08:00</updated>
    <author>
      <name>Donald Sebastian Leung</name>
      <email>donaldsebleung@gmail.com</email>
    </author>
    <content>Explore the motivation behind migrating my personal website from a traditional LAMP architecture to a cloud native serverless architecture and the advantages of doing so.</content>
    <link href="https://www.donaldsebleung.com/blog/20230715-migrating-my-personal-website-to-an-event-driven-serverless-architecture"/>
    <summary>Migrating my personal website to an event-driven serverless architecture</summary>
    <published>2023-07-15T00:00:00+08:00</published>
  </entry>
</feed>
