Building a Developer Platform: “Behind the Scenes” of application lifecycle management

Haggai Philip Zagury
Israeli Tech Radar
Published in
5 min readApr 16, 2024

In the dynamic realm of software development, particularly within agile and cloud-native landscapes, the ability to swiftly adapt and innovate is paramount. This agility, however, often comes with its own set of challenges, especially when it involves the coordination and management of numerous microservices and processes. Herein lies the crux of our narrative: the establishment of a robust developer platform, metaphorically dubbed “The Show” for its ability to seamlessly present the final act to the audience — our customers — without exposing the countless hours and effort invested backstage by developers and operations personnel.

The Problem at Hand

Imagine orchestrating a theatrical show where every element, from the lighting to the sound to the performance itself, must align perfectly to create a memorable experience for the audience.

In software terms, “The Show” represents the polished, user-facing aspect of our products and services, which we continually refine and improve behind the curtains. The challenge, however, is ensuring that the complex, backstage operations are as streamlined and efficient as possible, enabling the seamless execution of the final product. This is where a developer platform comes into play.

The “Full-Cycle development process”

In today’s agile, cloud-native environment, where opportunities, ideas, and even microservices appear and vanish with astounding rapidity, having a centralized, cohesive platform becomes indispensable. Such a platform acts as the backstage area, fueling the show by providing a common ground for development, operations, and everything in between.

Educated by Reality

One of our clients at Tikal encountered a business opportunity that necessitated the establishment of a development environment. This setup required integrating several components to review a specific dataset’s interaction with OpenAI.
Once the service was operational in the developers' environment, we aimed to replicate this system in the cloud. The development machine included a folder with frequently updated documents that needed to be converted into a specific format. To manage this in the cloud, object storage presented itself as a great solution. A cloud function would process these files and submit requests to OpenAI, followed by a secondary service that would enhance the outputs — standard procedure in such setups, when openai’s API was unstable we deployed our own tenant on Azure.

During the second phase, we introduced machine learning processes that required GPU support, leading us to utilize on-demand GPU services. Setting up such an environment for a team involves complexities akin to orchestrating a symphony.

Consider only one item in the architecture described above, provisioning an OpenAI tenant on Azure. This task involves several steps usually beyond the scope of a developer’s responsibilities, including infrastructure provisioning, budgeting, and access control. It’s comparable to expecting a stage actor to handle ticket sales, lighting, and costume design simultaneously — a scenario that often leads to inefficiency and potential disaster.

A Common Platform, Is what we need (so we can focus on doing our job)

What companies need is a backstage — a developer platform that standardizes and simplifies these processes, making tools and services self-service and easily accessible to the wider organization. This platform should not only handle the orchestration of services but also promote best practices and efficiency across the board. In essence, it should allow internal teams to contribute and utilize resources in a controlled, scalable manner, ensuring that the final “show” is as captivating and flawless as possible.

The Platform Engineers behind the scenes

There are several tools designed to streamline all these tedious operations, one notable example being Backstage.io. Developed by Spotify’s platform engineering team and part of the Cloud Native Computing Foundation (CNCF), Backstage.io is crafted to aid developers and operations teams. It provides a unified frontend for accessing and managing all tools and services. Key to its functionality are its five core plugins software catalog, software templates, techdocs, kubernetes & search, these form the foundation for any software company. I will highlight just two of these:

  1. Software Catalog: Imagine a new developer joining your team with a brilliant idea for a new API. With one glance at the catalog, they can access all existing projects and ideas within the company’s software catalog. This tool facilitates seamless onboarding and idea integration, which could be cumbersome with other tools.
  2. Software Templates: While many companies use software templates, they are often scattered across various Git repositories or obscured within them. Backstage’s software templates make these resources readily available as self-service options for newcomers, who might otherwise be hesitant to ask critical questions about accessing such resources.

This consolidation not only enhances productivity but also fosters innovation, as teams can focus more on development and less on the overhead of managing their tools.

Who builds the platform?

In small to medium-sized organizations, the responsibility for building and maintaining the platform typically falls to the main team or squad leaders.

Your squad leaders -> they should know what your team needs

These individuals often take the lead in defining the scope, selecting the tools, and overseeing the deployment and integration of technological solutions. This approach ensures that the platform development aligns closely with the organization’s immediate needs and strategic goals, leveraging the expertise and leadership within the core teams.

How do we keep it relevant?

If you don’t keep it up2date — it will perish …

By encouraging every professional team within an organization to contribute through the platform, R&D managers can exert greater control over the final product. And, management can even get real-time reports via the platform APIs. This collaborative approach ensures that the best practices and most efficient processes are not just maintained but also continuously improved. Consequently, the “show” that the customers experience is not just a display of individual brilliance but a testament to the collective effort and orchestration behind the scenes.

The Takeaway

Building a developer platform is not merely about technological integration; it’s about creating an ecosystem where innovation, efficiency, and collaboration are at the forefront. It’s about ensuring that the backstage — the myriad of processes and microservices that power our products — is as optimized and effective as the show that the audience gets to see. For R&D managers looking to streamline operations and boost productivity, investing in such a platform is not just beneficial; it’s imperative for staying competitive in the fast-paced, ever-evolving landscape of cloud-native development.

In conclusion, let’s not forget that every successful show relies on the seamless coordination and hard work of countless individuals behind the scenes. Similarly, a well-constructed developer platform enables our teams to perform at their best, ensuring that what the audience — our customers — gets to experience is nothing short of spectacular.

--

--