Abstract
My job has been converting technical requirements of a project into the architecture and design that will guide the final product. For many years, I’ve been creating fault-tolerant and highly available cloud solutions that are deployed worldwide and are managed by very small teams. I’m sharing my experiences and some of the solutions that I have designed and implemented.
In the last years, there have been looking at some technologies that have
brought my attention, first Golang, from a very strong background in low latency
Java services, this new modern language brings a new set of possibilities to
write very fast services, the power of C/C++ with a much easier easy way to
develop. On the other hand, software distribution has been revolutionised tools
like Packer
or Docker
that do not require any specific version of a virtual
machine or interpreter installed, this gives a more reliable way to produce
software.
I see, it has been as a cycle, We knew that C/C++ was the language to produce very fast services but maintenance, learning and even compiling it wasn’t the best solution, now We are in another era in which internet and Github join forces to make software sharing easier to everyone and Go uses this to produce a binary that can be run in any supported OS.
The other tech stack is Kubernetes (K8s), for years working on Cloud environments I see that the benefits of running Kubernetes are huge, from cost savings to faster software development. I am currently on the path of a migration of a very large platform with multiple different types of workloads, APIs, UIs, batch processing and low latency services, I’ll sharing this journey.
Hopefully this blog will help someone.