visit
"We could deploy fast, but we maxed out the number of servers and needed more control and customization. We're too big for platform-as-a-service, but we need to buy as we can't be running it all ourselves."For many companies, Heroku PaaS is/was a traditional place to start building services due to being quick and easy, but the costs build very quickly. There comes a point that many companies outgrow their one-size-fits-all PaaS. They may be planning to adopt a microservices architecture. Their number of developers may have increased with the introduction of a dedicated DevOps engineer. Features such as service discovery, traffic routing, and secret management may have become a priority. People want personalised control, but that takes time to build and resources to maintain. Despite the initial look of high cost, does something-as-a-service that gives you control but ties with common patterns fit into that gap perfectly? You also need to know what outcome you are trying to achieve. According to David, "Just because something is a good idea doesn't mean the process is easy or painless." He shared,
"We could do whatever we want, but what do we actually want, and do we have the resources to do it all?"Companies have the option to either their own internal developer platform with a plethora of pros and cons for each choice.As Kelsey Hightower asserts “I'm convinced the majority of people managing infrastructure just want a PaaS. The only requirement: it has to be built by them.”
Internal Developer Platform as a product
Global software consultants Thoughtworks that companies that are most successful in introducing an Internal Development Platform are those that apply product management to internal platforms: “This means establishing empathy with internal consumers (the development teams) and collaborating with them on the design.”David Sufia also emphasizes the importance of the platform as a product. He notes that where any organization that designs a system will produce a design whose structure is a copy of the organization's communication structure, is a problem in platform teams."One of the biggest pitfalls of platform teams that I've seen is that they build things for themselves and platform teams tend to be composed of some of the wonkiest teams who build things that are not what everyone consuming the platform wants to use."In response, GoSpotCheck viewed their IDP as something that needed to be designed, managed, and operated just like any other product within an organization. This correlates with Puppet's research that found highly evolved firms are nearly twice as likely to be highly product-oriented as firms in the middle of their DevOps evolution. They assert that organizational buy-in is crucial to the success of a platform, such as ongoing development and funding.
"Over the longer term, you'll build a competency that will become a serious competitive advantage for rolling out future revenue-producing products that can drive your business forward."David's team utilized cross-functional reference groups and made an effort to represent user personas, including senior and junior developers, and created a library of tools. He asserts that CNCF tooling "is at a point of maturity and interoperability where you can dive in as a midsize org and compose something that is going to serve your needs probably pretty well."
"Harvest already proven solutions from application teams, and try joint-ventures to create and test capabilities with the teams that will use them."Further, any platform is only as good as its makers and users, and the decision to build an IDP may result in a company realizing a lack of capabilities or specialist skills. Implementing an IDP is all about interpersonal team relationships. Resources such as Manuel Pais and Matthew Skelton's bring together different frameworks, models, and case studies to provide a functional and team-centered approach to building complex software systems.Container Solutions suggest starting with a system's less critical, smaller applications.
"By looking at these components, we can examine the dependencies and create a structure that eliminates many of them or consider tools to achieve the self-service aspects (such as a mixture of Kubernetes IDEs and Operators). Once all the core components are in place for this kind of setup, we can look at migrating this component, working with the engineers in charge of it to understand the engineers' needs and workflows. Once those steps are undertaken, you now have a starting point for your platform."They suggest using a dedicated team that will gradually move more significant, more critical components to the internal developer platform as the Platform Team increases their understanding of the company's specific needs.
The crowdsourced, curated site provides a central repository for IDP resources including articles, experts, and companies, and tools that can help.