Tobias Andersen
6 min readNov 24, 2023

In a rapidly evolving technological landscape, empowering developers with efficient tools and resources is pivotal to accelerating innovation and productivity. Heimdall, our bespoke internal developer platform was meticulously designed with this goal in mind to optimize the development experience within our organization.

Heimdall takes its inspiration from the ancient Norse god known for his all-seeing and all-knowing abilities, reflecting its capability to oversee and manage a myriad of “platform capabilities”. Resting on the foundation of a hub and spoke architecture, Heimdall orchestrates a network of interconnected Kubernetes clusters, fostering collaboration, enhancing security, and simplifying the development lifecycle for our stream-aligned teams.

At its core, Heimdall operates as a centralized hub, serving as the nerve center that connects and governs multiple spoke clusters spread across our infrastructure. This architecture enables us to provide a cohesive and controlled environment while empowering individual teams with the autonomy to manage their specific workloads, applications, and development pipelines effectively.

Within Heimdall, developers gain access to a unified, user-friendly developer experience via Backstage which streamlines the deployment, management, and monitoring of applications running on our platform. Leveraging this strategy allows our stream-aligned teams to seamlessly navigate between clusters, services, documentation and tools provided by the hub or spokes while adhering to tailored policies and configurations specific to their respective permissions.

Our commitment to security and compliance remains unwavering within Heimdall. Through meticulously designed networking infrastructure and access control mechanisms, the platform will ensure data isolation, encryption, and regulatory compliance. Heimdall’s security measures will thus offer peace of mind to our customers while facilitating seamless flow of data packages between clusters.

By adopting Heimdall, our organization fosters a culture of innovation, collaboration and open-source while optimizing resource utilization across diverse stream-aligned teams. Developers can focus on their core objectives without the complexities of managing underlying infrastructure, leading to faster iterations, improved reliability, and ultimately an accelerated time-to-market for our products and services.

Hub & Spoke architecture?!?

In the context of Heimdall the hub and spoke architecture provides a networking model that utilizes a centralized hub connecting to multiple individual clusters (spokes). This architecture is designed to manage communication and data flow efficiently between various clusters while maintaining a level of control and governance over the entire system.

A breakdown of the key components and their roles within the hub and spoke architecture in a multi-cluster Kubernetes setup gives us something like this:

Hub Cluster: The hub cluster serves as the central point of control and coordination. It typically hosts essential services like networking, security, monitoring, and shared applications. The hub cluster also acts as a gateway to manage traffic between clusters.

Spoke Clusters: Spoke clusters are individual Kubernetes clusters that operate independently. They can be geographically distributed, each serving specific applications, teams, or workloads. These clusters can vary in size and purpose, such as development, testing, staging, or production.

Networking Infrastructure: The hub and spoke architecture relies on robust networking infrastructure to establish connections between the hub and individual spoke clusters. This networking setup often involves technologies like Virtual Private Networks (VPNs), Service Meshes like Istio, or specialized networking solutions that enable secure and efficient communication between clusters.

Control Plane and Management: The hub cluster typically hosts the control plane responsible for managing the entire multi-cluster environment. This includes controlling policies, configurations, access control, and monitoring across all clusters. To help us manage this we are building Ymir, which is a “platform capability” that leverages Crossplane to enable our customers to easily migrate their infrastructure between the different cloud providers we support.

Data and Traffic Flow: The hub cluster manages the flow of data and traffic between different spoke clusters. It may implement policies, such as network segmentation, access control, and traffic routing rules to regulate communication between clusters while ensuring security and performance.

Benefits of the hub and spoke architecture in a multi-cluster Kubernetes setup include:

Centralized Management: The hub provides a single point of control for monitoring, managing, and deploying configurations across multiple clusters.

Isolation and Security: Segmentation of clusters allows for better isolation and security enforcement between different workloads or teams.

Scalability and Flexibility: Each spoke cluster can scale independently based on workload demands without impacting other clusters, offering flexibility and resource optimization.

It is worth noting that implementing a hub and spoke architecture requires careful planning, robust networking, and management tools to ensure seamless communication and coordination among clusters while maintaining security and performance standards across the entire environment.

Understanding “platform capabilities” aka X-as-a-Service

Our platform capabilities refer to the specific functionalities, tools, services, or features that Heimdall provides to support the delivery of various services or products to our customers. Thus the platform acts as an enabler, offering a set of capabilities that teams can leverage to build, deploy, manage, and scale their applications efficiently.

Key features of our platform includes:

Standardized Services: The platform offers standardized and reusable services or components that teams can use to build their offerings. These can include infrastructure resources (like compute, storage, networking), middleware services, databases, APIs, etc.

Automation and Tooling: The platform provides tools, automation, and toolchains that enable teams to automate repetitive tasks, streamline processes, and accelerate development, testing, deployment, and operations. This might involve CI/CD pipelines, monitoring tools, testing frameworks, etc.

Self-Service Interfaces: The platform offers self-service GUIs and CLIs, allowing teams to provision, configure, and manage resources without heavy reliance on manual intervention from centralized teams. This promotes agility and empowers teams to act autonomously.

Scalability and Resilience: Capabilities related to scalability, resilience, and fault-tolerance are integral. The platform might offer features like auto-scaling, load balancing, redundancy, disaster recovery exposed as “traits” via Open Application Model, ensuring that the services built on it are elasticm seamlessly integrated and can handle varying workloads.

Security and Compliance: Platform capabilities also encompass security measures, access controls, encryption, compliance frameworks, and auditing tools to ensure that the services built and operated on the platform adhere to security best practices and regulatory requirements.

In summary, platform capabilities are the foundational elements provided by Heimdall to facilitate a better developer experience and enable teams to deliver value more efficiently and effectively.

Conclusion

Looking ahead, the journey with Heimdall remains an ongoing saga of refinement and enhancement. We are dedicated to nurturing this platform, continuously optimizing its capabilities, and tailoring it to meet the evolving needs of our business. The feedback and experiences shared by our developers serve as invaluable insights guiding us toward further improvements and advancements.

Our aspiration extends beyond mere technological prowess; it revolves around fostering a culture that thrives on collaboration, innovation, and excellence. Heimdall encapsulates our dedication to providing an environment where creativity flourishes, collaboration blooms, and where our developers are empowered to push the boundaries of what’s possible.

As we conclude, we remain steadfast in our pursuit of excellence, harnessing the power of Heimdall to steer our organization toward greater heights. It’s not just a platform; it’s a testament to our commitment to nurturing talent, driving innovation, and achieving remarkable milestones in our collective journey toward success.