About

Creating fault-tolerant, highly available and maintainable workloads

Abstract

My role involves translating the technical requirements of a project into its architectural and design framework, which essentially shapes the final product. Over the years, I’ve specialised in creating cloud solutions that are fault-tolerant, highly available, deployed globally, and managed by small teams. I aim to share my experiences and some of the solutions I’ve designed and implemented.

Recently, I’ve been exploring certain technologies that have captured my attention. Firstly, Golang has piqued my interest. Coming from a strong background in low-latency Java services, this modern language offers a new realm of possibilities to develop exceptionally fast services. It combines the power of C/C++ with a more user-friendly development approach. Additionally, there’s been a revolution in software distribution with tools like Packer or Docker, eliminating the need for specific versions of virtual machines or interpreters. This significantly enhances the reliability of software production.

I perceive this as a cyclic evolution. Previously, C/C++ was recognised as the language for high-speed services, yet its maintenance, learning curve, and compilation posed challenges. Presently, we’re in an era where the internet and platforms like Github collaborate to facilitate easier software sharing. Go leverages this environment, producing a binary executable that can run on any supported operating system.

Another significant technology stack I’ve been involved with is Kubernetes (K8s). Having worked extensively in cloud environments, I’ve witnessed the substantial benefits of implementing Kubernetes, ranging from cost efficiencies to accelerated software development. Currently, I’m engaged in migrating a sizable platform comprising various workloads, including APIs, UIs, batch processing, and low-latency services. I intend to document and share this ongoing journey.

I hope that this blog proves beneficial to someone navigating similar technological landscapes.

Latest Posts

GCP Managed Kafka Authentication Handler
GCP Managed Kafka Authentication Handler

When working with Google Cloud Platform’s Managed Service for Apache Kafka, you’ll quickly discover that authentication can be surprisingly challenging, especially when using Apache Beam Dataflow pipelines. In this post, I’ll share a utility I created called gcp-kafka-auth-handler that bridges this gap.

AWS KMS Key Replication
AWS KMS Key Replication

When architecting cloud-based solutions, one key principle I follow is to isolate resources within their respective regions and avoid sharing or replicating them across regions. This approach consistently provides a more secure and compliant framework for business continuity. Recently, AWS has introduced replication capabilities for various resources. In this post, I will delve into AWS Key Management Service (KMS) and assess whether adopting replication for KMS keys offers tangible benefits.

AWS VPN Client
AWS VPN Client

Amazon Web Services (AWS) offers a VPN Client that is particularly advantageous for organizations seeking scalable and secure connectivity solutions compared to traditional VPN services like NordVPN. This distinction is largely due to the inherent flexibility and elasticity of cloud-based services provided by AWS, tailored to meet the dynamic requirements of modern businesses.