Sunday morning ☕ musings: How do you create a platform that supports self-service and is tailored to support your business needs (workflows, compliance, governance, etc)? 🤔 History provides a lot of good lessons:
🤷♂️ No platform (a.k.a. YOLO): Without a platform, there is no self-service, and every app/deployment/config is a snowflake ❄ This is how I started my career in the 2000s. In 2024 there is a lot of amazing tech to bootstrap apps and infra now, and this is a good approach for many startups that just want to find product-market fit. But for enterprise use cases, this doesn't typically scale beyond a handful of services.
🏗 IaaS platform: With an IaaS platform (think "access to the Azure console" 👩💻), there is self-service, but business needs are not implemented consistently. This is a dark side of the "you build it, you run it" approach that was championed with DevOps. You can get pretty far with this approach, but reacting to a Log4Shell incident or ensuring that all of your systems are PCI-DSS compliant can be super challenging.
🚉 PaaS: With PaaS, you clearly get self-service (I ❤️ “cf push”), but business needs are implemented in a generic or "one size fits all" way. And if you're using a SaaS-based PaaS, you often have limited control of the upgrade and deprecation cycle of the underlying platform (think AWS Lambda deprecating a runtime version)
🏎 Bespoke PaaS: If you can build your own PaaS, you can implement self-service and provide composable (and reusable) building blocks that support the team’s/department’s/organisation’s business needs 🧱 If you’re an old-school Java programmer like me, think of it as providing “aspects” (from AOP) for your platform. You also control the upgrade and maintenance cycles across your fleet.
This is why I'm bullish on the recent development of platform frameworks and orchestrators.
As Kelsey said in 2017, we all want to build our own PaaS, but maybe now this is a reality for most enterprises...