Skip to content

Commit cad2ea2

Browse files
authored
news: january progress report (#8)
1 parent 4b59a1f commit cad2ea2

File tree

2 files changed

+82
-0
lines changed

2 files changed

+82
-0
lines changed

news.md

Lines changed: 78 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -10,6 +10,84 @@ Stay up-to-date on all things Platform Specification. This is where you'll find
1010

1111
<p>&nbsp;</p>
1212

13+
::: timeline January 15th, 2025
14+
::: info Progress report
15+
Happy 2025 platform engineers! I wanted to take opportunity to elaborate a bit on our current initiatives.
16+
A lot has been happening the past weeks and it's worth sharing some details.
17+
18+
PlatformSpec has been drafted by Josh end of November and now starts to shape. We are extending the specification draft, work on concept design and detail potential usecases.
19+
20+
The SDK currently just models PlatformSpec entities in it's draft stage and we realized there is need for building something more foundational for the typical uses cases to get started. This is why we now experiment with a couple of ideas that emerged from reflecting the general challenges in Platform Engineering.
21+
22+
<p>&nbsp;</p>
23+
24+
***Challenges to solve***
25+
26+
Platform engineering is an extensive discipline. How do you design a system that is prepared for everlasting change?
27+
As you all know it's not just starting a Backstage project.
28+
29+
Building a platform is not easy and probably never finished. It has a lifecycle on it's own and requires endurance to maintain. Customization is costly but often the only way to make your platform align to your company needs. There is no one-size-fits-all silver bullet but maybe something that fits 60-80% to your current situation.
30+
31+
One of our main goals is to give the community a solid and standardized codebase to start their own platform initiative with the power of Open Source. A single software tool is probably not able to cover all edge cases so we came up something more flexible.
32+
33+
Initially PlatformSpec was the high level definition for the to-be-established platform with Blueprints and Builders executing it in detail.
34+
35+
<p>&nbsp;</p>
36+
37+
***Conceptual changes***
38+
39+
We revised this concept in the following way:
40+
41+
* ***PlatformSpec*** is still the definition which specifies the boundary of a platform at any level. It defines high-level infrastructure, services and at the same time offers a universal domain driven specification to address e.g. CICD or policies. Generally spoken it expresses the _need_ for the assembly.
42+
43+
* ***Blueprints*** are now configuration modules that can be of any scope, be layered and offer consistency within their scope. They contain the real definitions, e.g. Terraform scripts, helm values files, Backstage software templates and alike. They are authored, provided and shared by any party and aim to leverage community knowledge as a consumable. Blueprints are _solution catalogs_ the PlatformSpec can _bind_ to.
44+
45+
* ***Builders*** are now common, reusable providers that cope with a single type of technology. They talk to cloud APIs, git repositories, skaffold templates and help the Blueprint taking _action_.
46+
The SDKs will bring some common builders but rolling your own will be possible as well.
47+
48+
All three of them make up a Platform assembly.
49+
50+
<p>&nbsp;</p>
51+
52+
***PlatformSpec Scope Adjustments***
53+
54+
The scope of PlatformSpec initially was set for _building_ platforms. We now tend to additionally use it for _consuming_ an assembled platform as well in order to make PlatformSpec more holistic.
55+
56+
This comes with a couple of new challenges like frontend/cli integration and domain specific configurations while staying vendor agnostic.
57+
58+
59+
<p>&nbsp;</p>
60+
61+
***Reference Architecture***
62+
63+
How do you apply the PlaformSpec assembly with it's Builders and Blueprints?
64+
This is where we currently experiment the most.
65+
66+
We drafted a modular reference architecture to foster extensibility by coupling all services, modules and providers in a very loosely manner. At the same time we opted for a well known lifecycle pattern going with the Operator SDK.
67+
68+
The idea here is to let the operator reconcile PlatformSpec CRs by executing the builders that are bound via the blueprints.
69+
70+
71+
<p>&nbsp;</p>
72+
73+
![Reference Architecture](./public/arch8.svg)
74+
75+
<p>&nbsp;</p>
76+
77+
***Prototyping***
78+
79+
80+
81+
The last weeks have been mostly invested in writing a Platform Operator as a proof-of-concept for the Java SDK. It consumes Blueprints and runs the Builders and works both on the assembly and consumption side for a couple of use cases with medium to higher complexity.
82+
83+
It is still in a very early stage but already able to shake and rattle the PlatformSpec draft and I am more than happy to release it as a preview in the next weeks to come to drive discussions.
84+
85+
Stay tuned!
86+
87+
// Jens
88+
89+
:::
90+
1391
::: timeline December 2nd, 2024
1492
::: info Major Updates
1593
Much has progressed with The Platform Specification, as a result of some fantastic feedback from [Kubecon North America (Salt Lake City) 2024!](https://events.linuxfoundation.org/kubecon-cloudnativecon-north-america/)

public/arch8.svg

Lines changed: 4 additions & 0 deletions
Loading

0 commit comments

Comments
 (0)