{"id":12869,"count":80,"description":"
While developer relations typically focus on\u00a0external developer customers<\/a>, platform engineers are building services to better serve the needs of internal application and operations developers. An evolution of business agility and DevOps, platform engineering looks to break down more cross-organizational silos, while reducing the cognitive load of application teams and duplicate work. This is usually achieved via the creation of the\u00a0internal developer platform<\/a>\u00a0or IDP.<\/p>\r\n Read on to learn what platform engineering is, when it\u2019s needed, and how to leverage it to increase team velocity without increasing developer burnout.<\/p>\r\nhttps:\/\/www.youtube.com\/embed\/WCyiUWIB1wU\r\n DevOps looks to create application teams that are able to\u00a0build, test, release, maintain and operate a single domain<\/a>. But, the further down the stack you go, you\u2019ll find a lot of cross-company duplicate effort. Because application teams were built to more rapidly deliver value to end users \u2014 not to learn how to orchestrate Kubernetes, to spin up multicloud environments or to worry about security and compliance. As a maintainer of platform-as-a-product framework\u00a0Kratix<\/span><\/a>\u00a0Abigail Bangser put it, these are non-differentiating activities, but not unimportant ones. And, as the tech industry moves more cloud native, they are extra burdens for release teams.<\/p>\r\n In comes the internal developer platform team to the rescue! Platform engineering is the discipline of building workflows, toolchains, platforms and documentation to support application teams in their delivery of business value. The platform engineering team sits on the horizontal, serving cross-company needs so the vertical application teams\u2019 can serve their end users. It focuses on enabling an application team to get up and running without the cognitive overload and overlap of each team learning to be cloud native. Ideally, it enables them to do it without a human in the loop always having to approve things either.<\/p>\r\n \u201cOne of the goals of platform engineering is to promote self-service to enhance developer velocity and free them from being dependent on people and processes to do their job,\u201d\u00a0David Melamed, Chief Technology Officer of the\u00a0Jit DevSecOps orchestration platform<\/a>, told The New Stack.<\/p>\r\n A la Netflix\u2019s guardrails not gates, platform engineering teams look to create \u201cgolden pathways\u201d where teams are able to choose from a pre-approved selection of tools, resources and compute, to help them get what they need to run their applications. The platform team takes care of the cloud, so app teams don\u2019t have to. But that doesn\u2019t mean they\u2019re off the hook for essentials like security \u2014 it\u2019s just these teams now have the pathway to automate and run security tooling.<\/p>\r\n\r\n Platform engineering isn\u2019t for every company. In fledgling startups, usually everyone does a bit of everything and that\u2019s OK. But it doesn\u2019t scale. Once you have two or more app teams, you may start to discover duplication of efforts. As you scale up more, so does this repetition. That\u2019s when you might start thinking about hiring a platform engineer to tackle that toil.<\/p>\r\n There\u2019s no secret recipe to \u201cthe platform.\u201d It will vary by organization. The best way to get started on your platform engineering journey is to have a conversation with your engineers. This could kick off with a survey on bottlenecks or developer frustrations or by platform engineering embedding and pair programming within application teams. Some teams, like at\u00a0CyberArk<\/a>, borrow application developers to help build aspects of the platform.<\/p>\r\n You can also kick off your platform planning by looking at the tools you already have, Bangser recommends, like Slack, Trello and Jira. Where do you see the most complaints or requests? Where are your developers finding the most uninteresting repetitive, manual work? Where\u2019s your toil? Start looking to solve those shared concerns first.<\/p>\r\n Just remember, at every step of your platform process, it\u2019s essential to get internal developer feedback early and often, iterating as you go. Look to over-communicate. Offer your internal customers product demos over free lunch. Incentivize early adopters. And never forget to document your platform to encourage self-service and independence.<\/p>\r\n These are all tactics to make sure you are building a platform that your colleague developer audience will actually want to use.<\/p>\r\n And don\u2019t forget to factor in other stakeholders, like making sure you are tying the platform to the overall business value delivered. Namely, make sure your\u00a0C-suite understands what you are building<\/span><\/a>\u00a0and why as well, or your platform might not be adopted at all.<\/p>\r\n\r\n Platform engineering looks to, hopefully, deliver on more of the promise of DevOps. After all, developers are creative knowledge workers and are best put to use solving interesting problems and delivering value to your customers \u2014 not fixing problems outside of their domain.<\/p>\r\n Benefits delivered by platform engineering include:<\/p>\r\n\r\n Again, an internal developer platform isn\u2019t necessary for all organizations. But as your infrastructure gets more complex, platform engineering can help abstract out what\u2019s unnecessary for your developers to get their jobs done.<\/p>\r\n\r\n While platform engineering is still an emerging discipline, there\u2019s already a lot of different options to get started. Part of it depends on how much flexibility your application developers need and\u00a0where you want the platform to sit<\/span>.<\/p>\r\n You can certainly build your own platform, but that costs a lot of overhead. You could also use an out-of-the-box IDP tool but that might not include the flexibility needed to best serve your internal customers. It may be that the complexity is abstracted out by a developer portal that facilitates self-service. You can also use a plethora of open source options as well as CI\/CD pipeline tools. Here\u2019s an overview of the currently available platform engineering tool suite:<\/p>\r\n\r\n Also under this umbrella of platform engineering tooling, you will find a wider array of tooling dedicated to abstracting out Kubernetes complexity.<\/p>\r\n\r\n DevOps \u2014 the bringing together of development and operations \u2014 is the practice of breaking up monolithic architecture and teams, in order to create smaller, autonomous teams that can build, deliver and run whole applications. Platform engineering is the discipline of abstracting out any infrastructure or toil that distracts from DevOps teams delivering their domain. Site reliability engineering or SRE teams are dedicated to helping both the DevOps and internal platform teams by increasing reliability, scalability and, often, security. DevOps focuses on the development side, SRE focuses on the operations side, and platform engineering focuses on internal development enablement.<\/p>\r\n All three disciplines understand that it\u2019s not all about technology \u2014 everything stands on the sociotechnical pillars of people, processes, and tech.<\/p>\r\n Both site reliability engineering and platform engineering benefit from the three ways of DevOps:<\/p>\r\n\r\n And any successful SRE or IDP strategy hinges on cross-organizational collaboration and understanding, which DevOps\u2019 silo-breaking enables.<\/p>","link":"https:\/\/thenewstack.io\/platform-engineering\/","name":"Platform Engineering","slug":"platform-engineering","taxonomy":"category","parent":0,"meta":[],"acf":[],"yoast_head":"\nWhere Did Platform Engineering Come from?<\/b><\/h2>\r\n
Getting Started with Platform Engineering<\/b><\/h2>\r\n
What Are the Benefits of Platform Engineering?<\/b><\/h2>\r\n
\r\n \t
What Are Some Internal Developer Platform (IDP) Tools?<\/b><\/h2>\r\n
\r\n \t
What\u2019s DevOps versus Platform Engineering versus Site Reliability Engineering?<\/b><\/h2>\r\n
\r\n \t