Platform engineering

From Wikipedia, the free encyclopedia

Platform engineering is the discipline of designing and building toolchains and workflows that enable self-service capabilities for software engineering organizations.[1] It provides comprehensive and consistent tools and processes, which enables developers to focus on software development instead of managing underlying toolchains.[2] Platform engineering isn’t solely about the tools and components. It’s also about alignment within the organization with a special focus on understanding user needs — in this case, your software engineering teams.[3]

Key Components of Developer Platform[edit]

There are 5 core components to create successful developer platforms.[4]

  • Application Configuration Management: Manage application configuration in a dynamic, scalable and reliable way. For example: Chef, Puppet, Ansible
  • Infrastructure Orchestration: Orchestrate your infrastructure in a dynamic and intelligent way depending on the context. For example: Terraform, Jenkins, Kubernetes
  • Environment Management: Enable developers to create new and fully provisioned environments whenever needed. For example: Spacelift, Env0, vCluster
  • Deployment Management: Implement a delivery pipeline for Continuous Delivery or even Continuous Deployment (CD). For example: CircleCI, TravisCI,
  • Role-Based Access Control: Manage who can do what in a scalable way. For example: Cerbos, Casbin

Platform Engineering Maturity Model[edit]

CNCF’s initial Platforms Definition white paper describes what internal platforms for cloud computing are and the values they promise to deliver to enterprises. But to achieve those values an organization must reflect and deliberately pursue outcomes and practices that are impactful for them, keeping in mind that every organization relies on an internal platform crafted for its own organization - even if that platform is just documentation on how to use third party services. Platform engineering maturity model provides a framework for that reflection and for identifying opportunities for improvement in any organization.

Aspect Provisional Operational Scalable Optimizing
Investment How are staff and funds allocated to platform capabilities? Voluntary or temporary Dedicated team As product Enabled ecosystem
Adoption Why and how do users discover and use internal platforms and platform capabilities? Erratic Extrinsic push Intrinsic pull Participatory
Interfaces How do users interact with and consume platform capabilities? Custom processes Standard tooling Self-service solutions Integrated services
Operations How are platforms and their capabilities planned, prioritized, developed and maintained? By request Centrally tracked Centrally enabled Managed services
Measurement What is the process for gathering and incorporating feedback and learning? Ad hoc Consistent collection Insights Quantitative and qualitative
  1. ^ "What is platform engineering?". platformengineering.org. Retrieved 2024-05-17.
  2. ^ "What is platform engineering? | Definition from TechTarget". IT Operations. Retrieved 2024-05-17.
  3. ^ Sharma, Atulpriya (2024-03-28). "Platform Engineering Is Not Just about the Tools". The New Stack. Retrieved 2024-05-17.
  4. ^ "The 5 Core Components of an Internal Developer Platform (IDP)". internaldeveloperplatform.org. Retrieved 2024-05-17.