Background
This game was built to help teams design effective internal developer platforms.
Effective internal platforms help you go faster, be safer, and increase efficiency as you scale.
To create an effective platform, you must incorporate three essential principles:
1. Self-service and on-demand access
2. Consistently applied business processes
3. Fleet-manage services at scale
Syntasso Kratix Enterprise (SKE) does this and more by providing the Promise API. Use this card deck to design your own services that comply to all the platform principles.
The first step of designing your platform is
What is the contract with your users? How do you provision both shared and unique resources? Where do you include key business process rules? And don’t forget to include a user interface and set of deployment targets!
Getting started
First, decide on an API to design. Like any web API, it is important that the scope is clear and useful. Not too big to be confusing, but not so small to be unhelpful. A good place to start is a single piece of infrastructure, something like a database or a storage bucket. But to get to which piece of infrastructure you can start by identifying a higher level abstraction such as a test environment and breaking it down into smaller parts.
Playing the game
Once you have a planned API, you need to design both the contract with your users and the backend implementation. You may want different people in the room for each section, or to keep everyone together.
For example, you may want to pair up platform engineers, security experts, infrastructure engineers and application developers when thinking about the high level contract, but dismiss the application developers, or users of the API, when thinking about the internals. Once iddentified, get everyone together to review the provided cards and create any “wildcards” to define your self-service, secure, and fleet-managed platform capability.
Create your API:
Identify ‘inputs’ (2) users can or should configure.
Include ‘outputs’ (3) users depend.
Create your service:
Define ‘provisioning actions’ (4) & ‘process rules’ (5) dependency setup to execute before specific resource are requested.
Define ‘provisioning actions’ (4) & ‘process rules’ (5) that are executed per resource request made.
Select a set of ‘interfaces’ (1) and ‘destinations’ (6) as the finishing touches of a 3-tier architecture.