关于 IDP 的五大认知误解
内部开发者平台(IDP)是近年来在希望加快软件交付和改善开发者体验的企业中得到普及的一个概念。然而,大众对于什么是 IDP 以及它能为开发者和企业带来什么也有很多困惑和误解。在这篇文章中,我们将尝试解开一些关于平台工程以及 IDP 的常见误解,以及关于企业该如何避免进入这些误区给出一些建议。
关于 IDP 的常见五大误解
之前我们了解过 IDP 和平台工程的基本概念。IDP 实际上是一套标准化的工具和技术,能够实现开发人员的自我服务,为他们在日常工作中创建和部署符合要求的代码提供便利的途径。IDP 抽象了底层基础设施的复杂性,并与现有的 CI/CD 和部署流程相结合,使开发人员能够专注于他们的代码和业务逻辑。在本文中,我们总结了关于 IDP 的五大误区。
IDP 仅仅是一个工具集合
有些人可能会简单地认为 IDP 仅仅是一个开发者常用的工具集合,帮助开发者们去执行各类任务,例如版本控制、测试、CI/CD、监控等等。实际上,IDP 的用处远不止这些,IDP 不仅仅是一个工具链,它更是一个以无缝和连贯的方式整合这些工具的产品,同时为开发者提供清晰的界面和工作流程。
当然,IDP 并不是完美适配一切公司的万能解决方案。各个企业的堆栈、文化、代码库和工具集都会因业务内容有所区别,因此企业及开发者需要根据自身的需求和偏好对 IDP 进行定制。例如,有一些企业更偏向于使用 Kubernetes 作为他们的协调层,而其他企业则倾向于选择不同的解决方案。IDP 还应当允许企业在保持定制和可拓展性的同时,仍然保持一致性和操作的简便性。
只有大型企业才能用 IDP
在之前我们提到过,当企业拥有复杂和分布式系统、多个团队和环境,并对可拓展性和可靠性有高要求,构建 IDP 能够使这些大型组织受益。但这里并不是说只有大型企业才能使用 IDP,相反,任何旨在提高软件交付速度、效率和质量的企业都可以构建自己的 IDP 并从中受益。
IDP 同样可以有效帮助中小型企业组织,让他们从最开始就采用最佳实践和标准,而不必在建立和维护自己的基础设施和工具方面投入过多的时间和资源。IDP 可以通过自动化重复性任务和减少人工错误来降低 DevOps 团队的操作负荷。这样 DevOps 团队就可以专注于建设和维护平台,而不是花费大量时间来回应和解决来自开发人员的 tickets 和 requests。同时,IDP 通过提供一个简单和一致的界面来访问平台的功能,有效改善开发者体验。开发人员可以进行自我服务,在不用了解复杂的工具链和配置的情况下运行他们的应用程序。最重要的是,IDP 能够允许开发人员使用平台上的功能尝试和实验新的想法,测试不同场景,并进行相应优化,从而提高软件产品的创新程度和价值。
IDP 无所不能
我们想聊的关于 IDP 的另一个认知误区是,人们认为 IDP 能够解决开发者在日常工作中面临的所有问题和挑战。现实是,IDP 只是一个帮助开发者高效工作的平台,为开发者提供一个标准化过程、可靠的平台和一个具有支持性的环境,但它并不是一个无所不能的万能解决方案。
直白地讲,IDP 无法消除开发者沟通、协作、反馈、学习、测试或创新的需要。也就是无论企业是否拥有 IDP,开发人员始终需要与其他团队及他们的客户进行交流。开发人员需要了解他们的业务领域、技术领域、用户需求等,开发者还是得编写代码,然后进行测试、调试、监控和改进。
IDP 总能零失误构建/部署
另一个关于 IDP 的误解是 IDP 可以保证应用程序的构建或部署完美无缺。
事实上构建软件、系统和平台是十分复杂的过程。构建是将源代码打包成应用程序工件的过程,构建可能由于各种原因而失败,例如语法错误、缺少依赖项、不兼容的版本或配置。而部署是将应用程序构件从暂存环境转移到生产环境的过程,部署也会由于各种原因失败,例如网络问题、配置错误、资源限制、安全漏洞或性能问题。
在这个过程中有各种范式和技术需要采用,工程师们需要进行大量的筛选和选择。而在构建或部署的过程中,开发人员还需要根据业务内容需求和调整学习新的东西。因此,即便拥有 IDP,企业在构建和部署应用程序时需要测试、监控和故障排除,以确保构建和部署的质量和可靠性。同时,拥有 IDP 也依旧需要在进行部署时考虑对用户和客户的影响。企业仍然需要遵循持续集成、持续交付和按需发布的最佳实践。
平台访问总是安全的
最后一个误解是大家想当然地认为平台的访问是绝对安全的,符合企业的所有政策和法规。然而安全性和合规性并不是静态的概念或一次性的要求,恰恰相反,安全和合规是动态且持续的过程,需要企业不断地跟进、适应并相应调整。结合企业内部和外部因素,安全威胁及合规要求可能随时发生变化。
因此企业的 IDP 需要有一个强大的安全态势和合规性框架,涵盖平台生命周期的方方面面,例如认证、授权、加密、审计、日志、监控、报告等。同时 IDP 应当遵循安全最佳实践和标准,比如最小权限原则、深度防御策略及安全设计方法等。与此同时,企业需要定期对 IDP 进行更新和修补,预防潜在的漏洞和风险带来的安全威胁。
企业如何避免陷入 IDP 认知误区
那么企业应当如何避免陷入 IDP 认知误区以更好地利用其优势呢?这里我们总结了三个要点供企业参考。
采用产品思路
IDP 不仅仅是一个技术项目,而是一个为企业开发人员提供服务的产品。因此,在建立和运行 IDP 时,企业需要采用产品的思路心态。在构建 IDP 时,建议企业考虑并尝试做到:
需要尽可能去了解内部开发者的需求、期望、偏好和反馈。
在设计 IDP 时以用户为中心,同时考虑到 IDP 可用性、可及性和使用简易性。
以敏捷性、质量、可靠性和安全性为前提来交付 IDP。
通过数据驱动的洞察力、实验和创新来改进企业的 IDP。
采用产品思维将会助力企业创建一个实用且有价值的 IDP,为开发人员解决实际问题,为企业提供价值,并以良好的开发人员体验更好地服务于企业用户。
让开发者尽早参与进来
这里我们需要明白 IDP 并不是企业为开发者建立的平台,而是企业和开发者共同建立的。因此,企业需要让开发者们尽早并积极参与到 IDP 建设项目中,并尝试做到:
征求开发者们对 IDP 的愿景、战略、功能和设计的意见和反馈。
让开发者们参与 IDP 的开发、测试、部署和操作。
赋予开发者们使用 IDP 的自主性、灵活性和自我服务的权力。
对开发者们进行相关培训,以深入了解 IDP 的好处、使用方式和最佳实践。
尽早和经常地让企业的开发人员参与进来,有助于企业与开发者们建立信任关系,这样能够更好地了解他们的需求和期望,确保他们对 IDP 的采用度和满意度,从而培养合作和创新的文化氛围。
平衡抽象和透明度
一个好的 IDP 应该抽象出底层工具和技术的复杂性和操作。当然,这并不意味开发人员可以对底层工具和技术一无所知。企业在建立和使用 IDP 时,需要对底层技术与工具的抽象和透明度进行平衡。具体来说就是:
充分将底层工具与技术抽象出来,从而简化和规范开发者的工作流程。
保证底层工具和技术的透明度,以便开发者更好地进行了解。
提供足够的访问和控制,让开发人员能够定制他们的应用程序并在需要时进行故障排除。
保证 IDP 可见性和可观察性,以监测和优化其应用程序的性能和质量。
平衡好抽象和透明度能够帮助企业更好地构建 IDP,从而为开发者们提供充足的背景信息和知识,有效降低开发人员的认知负荷,这样开发人员就可以更高效地构建高质量的软件。
总结
IDP 是一个强大的工具,它可以帮助企业通过简化应用开发流程,更快更有效地交付数字产品。但是如果企业带着对 IDP 的认知误区和误解,可能会大大降低其采用的效果,因为这些误区往往会导致企业产生不切实际的期望、作出错误的决定、最终浪费资源或错过商业机会。为了避免这些误区,企业需要充分了解 IDP 的真正性质和价值,以及最佳实践。
版权声明: 本文为 InfoQ 作者【SEAL安全】的原创文章。
原文链接:【http://xie.infoq.cn/article/f929a2ce764dc84456b9cee36】。
本文遵守【CC-BY 4.0】协议,转载请保留原文出处及本版权声明。
评论