原文:
annas-archive.org/md5/be98d708e176b50f9833d9bb61c785a3译者:飞龙
第十章:通过开发者体验和平台工程提高生产力
移动开发者是许多公司和组织的基石,拥有一个专门的团队来理解他们的需求并提供最佳体验,对于成功和提高生产力至关重要,尤其是在团队扩展和公司成长的过程中。这就是开发者体验(DX)、内部开发平台(IDP)和平台工程(PE)团队的作用所在。
在本章中,我们将涵盖以下主题:
-
DX 和 IDP 的概念
-
拥有 DX 和 IDP 团队的重要性
-
移动 DevOps 与 DX 团队的关系
-
PE 的概念、好处和原则
-
DevOps 工程、站点可靠性工程和 PE 的区别
在今天的移动应用开发环境中,交付高质量、创新和用户友好的应用不仅仅是关于编写代码、测试和发布应用。移动 DevOps 团队需要管理一套复杂的活动,如我们在前几章中所讨论的,包括持续集成与交付(CI/CD)、发布编排、监控和分析。投资 DX 可以帮助移动 DevOps 团队简化和自动化这些活动,从而提高应用质量、加快上市时间(TTM)并提高团队生产力。
这不仅仅是工具、流程和活动;开发者的幸福感和生产力应该是 DX 团队最重要的目标。
让我们更深入地探讨 DX,了解它意味着什么。
什么是 DX?
DX 描述了移动开发者在使用工具或平台时的整体体验。为了提高开发者的采用率、参与度和留存率,DX 专注于为移动开发者创造积极的体验。
对于与大规模和远程移动开发者合作的公司来说,拥有一个 DX 团队变得越来越重要。这能确保移动开发者能够使用最新的工具和资源,同时也能为组织提供有价值的反馈和见解,从而提升移动应用和服务,并让移动开发者更开心。
DX 是一种思考工程卓越和最大化工程表现的方法,通过提升个人和团队整体的能力和表现来实现。
组织可以采取若干步骤将 DX 融入到他们的移动 DevOps 文化中。这可以包括提供必要工具和流程的访问、创建开放且协作的环境,并鼓励持续学习和改进的文化。
此外,组织还可以专注于为移动开发者提供资源和支持,并认可他们的成就,以进一步建立积极的 DX。
确保在移动 DevOps 文化中实现良好的 DX 对组织至关重要,因为这能带来诸多好处,如缩短 TTM、提高团队间的协作、以及吸引并留住 顶尖人才。
组织应专注于提供适当的工具和流程,创造一个开放和协作的环境,促进持续学习和改进的文化,并为移动开发人员提供资源和支持,以实现这一目标。
DX 团队做什么?
DX 团队的角色基于三个支柱:理解开发者需求、创建以用户为中心的解决方案,以及改善开发者互动。如下面的图所示,DX 团队的目标是提升使用其平台的开发者的生产力、效率和满意度:
图 10.1 – DX 的重点
DX 团队代表并倡导公司内部的开发者,优先考虑他们的需求和体验。它提供技术支持,开发简化开发过程并提高应用性能的工具和接口。
理解开发者需求
DX 团队的主要目标是了解移动开发人员的需求,以确保组织为移动开发人员创造最佳体验。
这涉及到审查移动开发人员当前使用的工具和服务,并理解他们在使用这些工具时面临的问题。通过清晰且全面地了解移动开发人员的需求,DX 团队可以提出量身定制的解决方案和服务,以满足这些需求。
通过组织工作流程创建以用户为中心的解决方案
一旦识别出移动开发人员的需求,DX 团队就可以开始创建以用户为中心的解决方案。这意味着团队将设计量身定制的软件和服务,旨在让移动开发人员的体验更加直观和愉悦。通过设计符合移动开发人员需求的软件和服务,团队可以确保移动开发人员在与组织合作时获得最佳体验。
通过清晰且标准化的沟通增强开发者互动
DX 团队还致力于确保移动开发人员与组织的互动是积极的。这可能包括为移动开发人员提供他们成功所需的资源,确保他们在使用组织的产品和服务时获得良好体验。此外,团队将寻找方法来创造更积极且富有成效的组织与移动开发人员之间的关系,例如定期进行调查,征询他们对流程、工具和公司目标的反馈。
DX 与移动 DevOps
DX 团队可以提供对移动开发者需求的宝贵理解,这有助于确保所有团队成员达成共识。它还可以充当移动开发者、产品经理和高层之间的桥梁,帮助确保每个人的需求得到满足。这有助于创造一个团队协作的环境,共同开发成功的移动应用。
DX 涵盖了开发者与移动开发平台或生态系统互动的各个方面。以下是 DX 团队的一些关键职责:
-
入职支持:为移动开发者提供适当的材料、培训和业务文档,以帮助新员工或加入者顺利完成入职过程。这将使他们能够快速融入工作,避免浪费时间和精力去了解业务或代码。
-
文档:全面且清晰的文档对于移动开发者理解如何使用库、API、SDK、框架以及其他工具和流程至关重要。文档应易于查找、阅读和理解,并提供常见使用场景的示例和解释。
-
工具和 SDK:平台提供的工具、库、API 和 SDK 应直观易用,并提供清晰的文档和示例。这些工具应帮助移动开发者自动化重复任务,加快开发和发布速度,并提供代码质量和性能的洞察。
-
测试:测试和调试工具应易于使用、全面且可靠。移动开发者应能够快速识别和解决问题,并高效地调试代码。
-
性能与可扩展性:DX 团队应关注移动应用的性能,同时也要考虑后端服务的可扩展性。
-
安全与合规性:DX 团队应提供强有力的安全与合规指导,例如数据加密、访问控制和审计。它应遵循行业标准和法规,并为公司内的移动开发者提供明确的安全开发实践指南。
了解更多关于 Slack 移动开发者体验团队如何帮助移动开发者保持高效的内容,请访问slack.engineering/Mobile-developer-experience-at-slack/。
探讨了 DX 背后的概念后,接下来让我们讨论一下 IDP 与移动 DevOps 之间的关系。
什么是 IDP?
IDP(internaldeveloperplatform.org/)关注的是如何最好地为你的移动开发团队提供高效和有效的工具与资源。
在我看来,正如以下截图所示,IDP 是 DX 的一个子集,DX 是将各种工具和技术汇聚在一起的集合。IDP 提升了开发者的生产力,改善了 DX,减少了手动操作,降低了成本,并减轻了团队的维护负担。它们在保持低认知负荷的同时,支持开发者自助服务:
图 10.2 – DX 与 IDP
如我们在第一章中讨论的,Mobile DevOps 是一套实践方法,能够帮助组织以安全且高效的方式构建、测试、发布和监控移动应用。为了确保开发者的最高生产力,投资合适的工具、流程和实践至关重要。
这包括投资自动化工具,设置敏捷开发环境,并提供访问最新技术的权限。还应利用如 CI/CD 等技术,尽可能地自动化开发和发布周期。
对于 Mobile DevOps 来说,确保拥有合适的工具和流程是很重要的。这包括一个自动化测试框架,以及一个允许移动开发者快速测试和推送应用更新的移动设备实验室。
注意
了解更多关于 Netflix 在开发者生产力方面的经验,参见 www.droidcon.com/2022/06/28/netflix-gradle-a-journey-in-developer-productivity/,了解 Uber 如何进行开发者生产力工程,参见 www.youtube.com/watch?v=YdmzVzxz9DI,以及 DoorDash 如何进行开发者生产力工程,参见 www.youtube.com/watch?v=MN9U-JmRFJA。
IDP 和 DX 能够解决组织面临的诸多痛点。
IDP 减少了整个组织的认知负担,使得移动开发者可以自助服务,而不需要抽象上下文或隐藏底层技术,具体包括以下内容:
-
移动 CI/CD 基础设施编排和发布管理:管理能够使这些阶段发生的工具和流程。这包括构建和测试应用的工具、自动化部署过程的工具,以及管理新版本应用发布的工具,正如我们在第六章中讨论的,移动应用 发布管理。
-
移动应用配置:用户可以自定义的设置和偏好,以定制应用的外观和行为。其中包括语言选择、主题自定义、通知设置、隐私设置和用户偏好等选项。
-
管理开发环境:开发者大多数时间都花在设置环境上,一个设计良好的开发环境对生产力和代码质量有着显著影响。
通过这种方式,团队可以确保开发环境根据他们的需求量身定制,并包含完成目标所需的所有工具和集成。
有不同的开发环境作为服务或产品,提供完全配置的开发环境,包括以下内容:
-
Coder (
coder.com/): 这是一个自托管的远程开发平台,将软件开发从本地机器转移到本地和公有云基础设施上。在强大的服务器上构建代码,并在几分钟内为新开发者提供入职体验,同时确保源代码和数据的安全。 -
GitHub Codespaces (
github.com/features/codespaces): 这是一个完全配置的云端开发环境,能够通过 GitHub 在几秒钟内启动,使用 Visual Studio Code、Jupyter 或 JetBrains,并配备编辑器、终端、调试器、版本控制、设置同步和所有扩展。无论你是在浏览器中工作还是在桌面上工作,都可以在任何设备上完成。这就是它的全部功能。 -
Gitpod (
www.gitpod.io/): 该平台为任何类型的软件项目提供完全初始化和完美配置的开发环境。任何团队成员都可以使用 Gitpod 运行代码。通过一次配置环境,PE 团队能够实现开发者自服务。
在我看来,如果团队决定转向基于云的开发环境,可能会遇到困难,因为移动应用开发需要特殊的环境、工具和 SDK,但优步的开发者平台最近通过 Kubernetes 构建了一个基于单一代码库的远程开发平台,这是一个很好的例子 (www.uber.com/en-DE/blog/devpod-improving-developer-productivity-at-uber/)。
- 管理机密:安全地存储密码、API 密钥和其他凭证,并确保它们保持受保护。通过有效管理机密,敏感数据能够防止未经授权的访问。
可以使用不同的秘密管理工具和服务,以下是一些例子:
-
HashiCorp Vault (
www.vaultproject.io/): 使用 UI、CLI 或 HTTP API 安全存储并严格控制访问令牌、密码、证书和加密密钥,从而保护机密和其他敏感数据。 -
AWS Secrets Manager (
aws.amazon.com/secrets-manager/): 跟踪数据库凭证、API 密钥和其他机密的生命周期,允许您根据需要检索、轮换和存储它们。 -
Doppler (
www.doppler.com/): 允许开发人员和安全团队在设备、环境和团队成员之间同步和保护机密与应用配置。
如前面章节所讨论的,随着规模的扩大,所有上述责任应由一个专门的团队管理,这个团队可以是 IDP 和 DX 团队。
IDP 优化开发流程,使得移动应用的开发和发布变得更加高效。
这包括审视开发环境、工具和流程,寻找提升整体生产力的方法。这可能包括自动化流程、引入新工具,或重组移动开发团队等。
通过生产力工程,移动开发者能够将更多时间花在实际开发工作上,减少繁琐任务的时间。这样,你能够提升团队士气,加速开发周期。
例如,Netflix 的移动生产力(MoPro)团队帮助全球的工程师快速创建 Netflix 移动应用。为了实现这一目标,它使用优化开发者体验的工具和基础设施。通过先进的自动化测试和生产力解决方案,支持实验、自治和所有权的文化。
为了更好地理解开发者生产力,有一个框架叫做SPACE (queue.acm.org/detail.cfm?id=3454124),它涵盖了以下几个重要方面:
-
满意度与福祉
-
性能
-
沟通与协作
-
效率与流程
组织和团队可以通过识别和衡量生产力,基于多个维度做出更好的决策。
移动开发者可以使用多种工具和技术来提升生产力,包括以下分析与协作平台:
-
Backstage (
backstage.io): 这是一个开放平台,用于构建开发者门户。通过 Backstage 的集中式软件目录,你可以恢复微服务和基础设施的秩序,并使产品团队能够快速交付高质量的代码。 -
LinearB (
linearb.io/developer-experience/): 这是一个平台,通过工作流自动化和优化你的交付流水线,提升开发者体验,使用你移动开发者喜爱的工具。 -
Compass (
developer.atlassian.com/cloud/compass/): 这是一个开发者体验平台,将你的分布式软件架构和相关团队汇聚在一个统一的地方。 -
Okay (
www.okayhq.com/): 这是一个平台,帮助你基于 Jira、GitHub、PagerDuty 等开发者工具构建查询和仪表板。
通过使用这些工具和技术,移动开发者可以简化工作流程,消除耗时的任务。
除了使用生产力工具,移动开发者还应优化他们的流程。开发过程可以被分解成更小的任务,或者可以为代码审查和修复漏洞创建更高效的流程。通过系统地优化流程,移动开发者可以最大化他们的生产力。
IDP 工程的好处
通过采用 IDP,移动开发者可以通过提高效率来增加生产力。它还能帮助开发者更快地发现和修复错误,并通过自动化重复性任务来节省时间。此外,IDP 还可以帮助减少与长周期开发相关的成本,如错过的截止日期和延期。
开发者生产力的概念充满了误解和神话,这些误解和神话可能导致错误的决策。其中包括以下几点:
-
一个常见的误区是认为工作时间越长,生产力越高。实际上,往往情况正好相反。过度工作可能导致倦怠,进而降低动机和生产力。
-
毫无疑问,干扰会妨碍生产力,但同样重要的是认识到,休息和停机时间对于防止倦怠和保持专注也同样重要。工作与生活的平衡 至关重要。
-
人们常常认为最优秀的移动开发者是单打独斗的,不需要其他人的帮助或合作。实际上,合作与团队合作能够带来更好的结果并提高生产力。
在 DX 和 IDP 团队的背景下,是时候了解新时代的 PE,以及它如何与 IDP 协同工作了。
什么是 PE?
PE 的概念是指定义、构建和维护一个平台的过程,这个平台将作为软件开发、发布和扩展的基础。
这包括设计基础设施和基础设施即代码(IaC),设置 CI/CD 管道,并自动化测试和发布过程。
PE 在确保移动 DevOps 平台成功方面扮演着至关重要的角色。
为了确保平台能够优化用于构建和发布移动应用,PE 与移动开发团队密切合作。在这个过程中,我们设置了构建、测试和部署应用所需的工具和框架,并确保平台具有可扩展性和可靠性。
PE 团队还负责监控和维护平台。任务包括监控平台的性能和稳定性,识别和修复问题,以及根据需要实施升级和更新。
PE 的原则包括以下几点:
-
处理不断增加的负载和使用量的能力
-
维护平台的可用性和功能性
-
保证平台及其用户免受恶意攻击和数据泄露是安全团队的责任。
-
保持平台的更新并易于维护
-
平台应该能被多个团队和应用重复使用
在许多情况下,平台工程师是更大工程团队的一部分,因此,考虑团队如何沟通及工作流程至关重要。因此,它变得更像是一个集中的产品团队,专注于内部平台客户,如移动开发者、测试人员和产品经理。
在 PE 中,常见的工程资源被整合为一个内部工具/平台,以简化软件开发。
平台工程师的技术能力还应包括云计算、容器化、基础设施即代码(IaC)、自动化和监控专长。可能还需要掌握编程语言和工具的熟练程度。
如今,平台工程师社区非常庞大(platformengineering.org/),但大多数话题似乎主要集中在云计算和 Kubernetes 相关内容上。不过,我相信随着时间的推移,越来越多与移动相关的话题将被加入和支持。
PE 的好处
有了 PE,企业能够更快速、更具成本效益地开发和部署符合需求的软件解决方案。
此外,PE 使公司能够快速轻松地更新其软件解决方案,保持领先于竞争对手。此外,PE 还降低了成本,因为它消除了手动编码、测试和调试的需求。
如果想了解规模化 PE 的好例子,可以阅读Wise的PE历史(www.wise.jobs/2021/03/25/introduction-to-the-wise-platform-team/)。
为了确保有效的 PE,遵循最佳实践至关重要。这包括确保应用的架构是可扩展和模块化的,使得随着应用的发展,新增功能和特性变得容易。平台工程师还应确保数据库设计合理,并经过性能优化,同时确保应用的数据 安全存储。
定期测试应用的后端以识别并修复任何问题也是非常重要的,避免它们影响用户体验。
最后,平台工程师应时刻关注移动应用开发领域的最新技术和趋势,以确保其应用保持竞争力和相关性。
随着移动应用使用量的持续增长,平台工程师的角色将变得更加重要。随着移动应用变得更加复杂和功能丰富,新的工具和框架将被需要来应对不断增加的工作负载。包括 5G、人工智能(AI)、云计算、增强现实(AR)和虚拟现实(VR)等新技术,将为平台工程师提供创新和创造引人入胜的移动体验的新机会。
平台工程师、移动 DevOps 工程师和移动端站点可靠性工程师的区别
随着更多组织采用移动 DevOps,理解三个相关角色——移动 DevOps 工程师、网站可靠性工程师和平台工程师之间的差异变得越来越重要。
这些角色中的每一个都需要自动化和基础设施来部署、维护和监控软件。尽管如此,每个角色在职责和重点上都具有独特性。
网站可靠性工程师、DevOps 工程师和平台工程师在移动应用开发中都扮演着至关重要的角色。每个角色的具体重点取决于组织的需求,每个角色在移动应用的成功中都发挥着关键作用。
移动应用平台工程师
如前所述,移动应用平台工程师构建和维护运行移动应用的平台。他们的职责包括以下内容:
-
构建和维护运行移动应用的平台服务,如数据库、缓存系统和消息队列
-
开发自动化工具,以简化常见的移动应用开发任务
-
通过微调平台服务来优化移动应用系统的性能
-
设计和实现移动应用系统的安全性和合规性功能
-
与移动应用开发人员合作,确保平台服务的设计和构建能够满足移动应用开发的需求
平台工程师的关键指标包括正常运行时间、可扩展性、开发者满意度、上市时间、安全性、基础设施成本效率和移动应用用户满意度。
移动应用 DevOps 工程师
在移动应用 DevOps 中,DevOps 工程师简化了移动应用的开发和部署过程。为了确保代码尽可能快速且可靠地交付给用户,他们与移动应用开发人员紧密合作,自动化移动应用系统的部署和测试。
DevOps 工程师应熟悉如 React Native 和 Flutter 等移动应用开发框架。此外,他们还应熟悉 GitHub Actions、GitLab 和 Bitrise 等 CI/CD 工具。
除了自动化和管理配置外,移动 DevOps 工程师还具有安全方面的专业知识。他们自动化应用交付,设置 CI/CD 管道,并管理移动应用的云基础设施。他们的日常职责包括以下内容:
-
通过 CI/CD 管道交付移动应用
-
通过构建和维护测试与集成系统来确保代码质量
-
解决由移动应用引发的事故
-
通过与移动应用开发人员合作简化移动应用交付
除了技术能力,移动 DevOps 工程师还必须具备出色的问题解决能力,能够识别并解决发布过程中出现的问题。
DevOps 的关键指标包括频率、交付时间、平均恢复时间(MTTR)和变更失败率(CFR)。
移动应用网站可靠性工程师
移动站点可靠性工程师负责确保移动应用程序的可靠性、可用性和性能。作为其职责的一部分,他们与开发团队密切合作,识别潜在的性能问题并优化应用程序,以实现最大效率。此外,他们必须熟悉诸如 Prometheus、Grafana 和 Elasticsearch 等监控和日志工具。
他们的专业知识包括监控和管理移动应用性能、自动化重复任务以及故障排除。以下是他们的职责:
-
建立监控和警报系统,以便在问题影响用户之前发现它们
-
创建和维护移动应用数据备份和 灾难恢复(DR)系统
-
与移动应用开发人员合作,设计和构建可扩展、可靠且容错的系统
移动应用站点可靠性工程师的关键指标包括应用程序稳定性、崩溃率、用户参与度、响应时间和服务器正常运行时间。
尽管这三个角色都需要与移动应用开发团队合作,但他们的具体重点各不相同。移动应用站点可靠性工程师的目标是与移动开发人员合作,确保移动应用系统的可靠性、可扩展性和性能。为了简化移动应用的交付过程,DevOps 工程师与移动开发人员密切合作。平台工程师与移动开发人员合作,设计和构建支持移动应用的平台。
我的公司是否需要 DX、IDP 或 PE?
为了在数字时代保持竞争力,企业需要 DX、IDP 和 PE 团队。PE 使公司能够创建安全、可扩展且强大的软件解决方案。通过 PE,公司还可以更快、更具成本效益地开发和发布软件解决方案,并对符合需求的开发过程有更多的控制权。
当公司利用 DX、IDP 和 PE 团队时,它们可以降低成本。如果你希望在数字时代保持竞争力,PE 可能是你公司成功的关键。
投资 PE 时,必须选择合适的工具,建立强大的基础设施,并需要跨团队的协作。为了确保成功,移动 DevOps 团队应定期评估其 PE 策略。
总结
任何与移动开发人员合作的组织都应该拥有 DX 团队。除了提高员工士气和忠诚度外,它还确保移动开发人员在公司产品和服务中的最佳体验。为了建立 DX 团队,必须进行细致的规划和执行,团队还应配备必要的资源和工具。
此外,DX 团队可以承担各种项目,从创建新工具到提供支持和指导。
本章中,我们涵盖了以下主题:
-
DX 和 IDP 的概念
-
拥有 DX 和 IDP 团队的重要性
-
移动 DevOps 和 DX 团队之间的关系
-
PE 的概念、优势和原则
-
DevOps 工程、站点可靠性工程和 PE 之间的区别
对于移动 DevOps 来说,确保拥有正确的工具和流程至关重要。这包括一个自动化测试框架,以及一个可以让移动开发者快速测试并推出应用更新的移动设备实验室。
最终,DX 团队将通过为移动开发者提供更好的体验,帮助公司或组织在开发工作中取得更大的成功。根据 DX 团队的设置和执行情况,它可以成为任何组织的宝贵资产。DX 团队可以用于各种项目,从开发新工具和资源到响应功能需求。
PE 使公司能够创建安全、可扩展和强大的软件平台和解决方案。通过 PE,公司还可以更快速、成本更低地开发和发布软件解决方案,同时在满足需求的开发过程中拥有更多的控制权。
最后,移动应用的站点可靠性工程师致力于确保移动应用系统的可靠性、可扩展性和性能,并与移动开发者协作。DevOps 工程师与移动开发者合作,优化移动应用交付流程。平台工程师与移动开发者合作,设计并构建用于运行移动应用的平台。
在下一章中,我们将讨论移动应用开发和移动 DevOps 的未来趋势,并将以总结我们的书籍以及我们对未来的预测作为结尾。
平台工程师、移动 DevOps 工程师和移动站点可靠性工程师之间的区别
第十一章:预测移动 DevOps 的未来
在本书中,我们讨论了移动 DevOps 是如何迅速发展的,它正在改变移动应用的开发、测试和发布方式。它是一种颠覆性的技术形式,彻底革新了我们开发移动应用的方式,使团队能够比以往更快地开发和发布移动应用。
本章将涵盖以下主题:
-
移动应用开发的未来趋势
-
移动 DevOps 的未来趋势
-
移动 DevOps 操作手册 回顾
移动 DevOps 为组织提供了灵活性,使其能够快速适应不断变化的市场条件和客户需求,从而更快、更高效地开发和发布移动应用。移动 DevOps 解决方案必须能够跟上移动技术的快速变化。
未来几年将充满移动应用开发的趋势。让我们一起探索这些趋势,并看看开发者和企业如何保持领先。
移动应用开发趋势
我们现在正处于 2023 年;这一年已经过半,移动应用开发行业正在经历快速变化。让我们仔细看看。
跨平台移动开发正在兴起
移动开发行业近年来一直在上升,这一趋势预计将继续。特别是,越来越多的公司意识到跨平台移动开发的潜力。
跨平台移动开发还通过使用单一代码库,使得实现新功能和更新变得更加容易;开发人员可以快速、轻松地向应用添加新功能和更新,而不必为不同操作系统更新多个版本的应用。
未来,跨平台移动开发的兴起将受到几个因素的推动,包括成本效益、更快的 市场时间 (TTM) 和一致性。
我们在 第二章中讨论了各种跨平台框架,理解移动生态系统。但在我看来,Flutter 在未来几年将会获得更多关注,因为它不仅是跨平台的,而且是一个允许用户通过单一代码库构建六个应用的生态系统,面向不同操作系统和设备。
使用低代码开发移动应用
使用低代码开发应用的方式越来越受欢迎,因为开发人员可以在几乎不需要编码技能的情况下创建移动应用。低代码移动应用是快速、轻松创建移动应用的绝佳方式,无需编写太多代码。通过使用拖放组件和预构建功能,开发人员可以快速创建具有丰富功能的移动应用,而无需了解太多编程知识。
在我看来,云服务将在低代码时代占据重要地位;例如,AWS Amplify(aws.amazon.com/amplify/),您可以利用它在几小时内创建一个完整堆栈的移动应用,并为您的 iOS、Android、Flutter 或 React Native 应用创建一个带有认证、数据、存储等功能的Amazon Web Services(AWS)后端,并在几分钟内与其他 AWS 服务进行集成。
低代码移动应用开发的优点包括更快的开发速度、降低开发成本以及简化开发流程,但尽管低代码移动应用开发有其优势,企业也应意识到其中的一些潜在缺点。以下是几个需要考虑的因素:
-
低代码平台的定制潜力由于预构建的模板和组件而受到限制。因此,创建独特的功能或用户 体验(UXs)可能会变得困难。
-
如果企业被某个平台锁定,可能会很难切换到其他低代码平台。
-
由于依赖于尚未经过充分测试以排查安全漏洞的预构建组件,低代码平台可能比定制应用程序更不安全。
-
对于更复杂的应用程序,低代码平台可能仍然需要一定的学习曲线才能有效使用,尽管其易用性较高。
低代码移动应用开发的确是企业快速创建简单移动应用的一个好方法,但在决定使用哪个平台之前,企业应考虑其潜在的缺点。
安全性变得越来越重要
随着移动应用程序的流行,移动应用开发越来越注重安全性。开发安全的应用程序对开发者来说是必须的。
为了做到这一点,开发者必须保持对最新安全工具、框架、流程和技术的了解。为了进一步保护他们的应用程序,开发者应当集成额外的安全措施,如加密、会话管理、输入验证以防止 SQL 注入、跨站脚本(XSS)以及双因素认证(2FA)。
在第八章《保持移动应用和 DevOps 安全》中,我们详细讨论了如何使用 DevSecOps 保持移动 DevOps 的安全性,开发者如何在开发的每个阶段考虑安全性,以及他们如何将安全性集成到移动 DevOps 过程中。由于移动应用变得越来越复杂,我相信结合安全性的自动化将变得越来越重要。
AI 和 ML 的影响不断增加
使用人工智能(AI)和机器学习(ML)变得越来越流行,正如我们最近所注意到的,现在大多数应用程序都在不同的业务领域中使用 AI 以实现他们的目标。
通过 AI 和机器学习,移动开发者可以创建更加直观且用户友好的应用,同时提升应用功能。AI 和 ML 还可以用来创建预测分析,提供个性化的用户推荐。
为了保持竞争力,开发者应熟悉 AI 和机器学习(ML)技术,这些技术有潜力彻底改变移动应用开发。
我的预测是,AI 将在今年及未来几年内更加深入地融入各个行业,科技公司将在市场上展开激烈竞争。今天的世界已经可以看到,越来越多不同的工具、平台和应用正在融入 AI 技术。
云计算使用的增加
移动应用开发越来越依赖云计算,以创建可以在多个平台和设备上运行并提高移动性能的应用。
由于云计算的可扩展性和灵活性,移动开发者可以根据需要调整应用,以适应使用量的增加或新增的功能。开发者可以使用 AWS 的云服务来构建、测试和部署复杂的移动应用业务。
举例来说,AWS 提供了多种云服务,可以集成到移动应用中作为后端服务,包括以下几项:
-
AWS Amplify (
aws.amazon.com/amplify/) 提供了一个无服务器的后端基础设施,能够自动扩展,免去开发者管理服务器基础设施的需要。它将后端开发的复杂性抽象化,使得开发者可以专注于构建前端体验,并为最终用户提供价值。 -
Amazon Cognito (
aws.amazon.com/cognito/) 提供了一项安全且可扩展的用户身份验证和授权服务。它使得移动应用开发者能够轻松地为他们的应用添加用户注册、登录和访问控制功能。 -
Amazon Pinpoint (
aws.amazon.com/pinpoint/) 是一项面向移动应用的客户参与和分析服务。它帮助你通过多个渠道(包括推送通知、短信和电子邮件)向应用用户发送定向、个性化的信息。这些只是云服务在移动应用中的一些例子。
用户体验(UX)日益重要
移动应用开发越来越重视用户体验(UX)。开发者必须创建用户友好且直观的应用,确保用户能够轻松导航和理解。UI 应设计得清晰、简洁,并融入语音命令、手势和动画。
用户体验(UX)包括诸如应用设计、使用方式、可访问性以及响应速度等因素。这些因素共同作用,帮助打造出让人印象深刻的应用。
通过专注于用户体验(UX),开发者可以开发出全球范围内受欢迎且成功的应用,吸引数百万用户。
因此,开发者在开发应用时,必须专注于用户体验(UX)。一个应用的 UX 可以使其更易于使用且更具愉悦感,反之也可能导致用户放弃使用。正如我们之前讨论的,AI 和 ML 可以在理解用户需求和期望、以及开发既易于使用又美观的应用程序方面发挥重要作用。UX 实践也应融入开发过程中,因为它们有助于创建既高效又愉悦的应用程序。
增强现实(AR)和虚拟现实(VR)的影响力日益增长
近年来,虚拟现实(VR)和增强现实(AR)在游戏行业以及商业和消费领域变得越来越受欢迎。通过移动应用,企业和开发者可以探索并利用这项先进技术所带来的无限可能。
因此,AR 和 VR 变得越来越显著,它们的潜力也愈加明显。AR 和 VR 将继续吸引大量关注和增长,因为这些技术有可能彻底改变我们与周围世界的互动方式。
正如我们之前提到的,AR 和 VR 可以提升移动应用的用户体验(UX)。移动设备使开发者和企业能够轻松创建沉浸式、互动性强且引人入胜的应用程序。用户与环境的互动变得更加容易,从而带来更愉悦和互动的体验。
语音应用的使用逐渐增多
语音应用在移动应用开发中变得越来越受欢迎。通过创建支持语音的应用程序,开发者可以为用户提供更直观、更友好的体验。语音应用可以用来为用户提供语音控制的功能访问,例如搜索、导航和日程安排。
此外,语音应用还可以用来创建互动教程和模拟,帮助用户更高效、有效地学习如何使用应用程序。语音应用是移动应用开发中的一项宝贵工具,开发者应该充分利用它们的诸多优点。
物联网(IoT)集成的增长
毫无疑问,物联网(IoT)正成为移动应用开发中最重要的部分之一。通过将物联网设备集成到应用中,开发者可以创建更智能的应用,并为消费者提供更个性化的体验。
随着物联网(IoT)集成的增长,智能家居设备变得越来越常见,如照明系统、温控器和安防摄像头。例如,通过智能手机应用,你可以远程控制你的灯光和安防系统。
物联网(IoT)集成的前景非常光明,随着物联网设备变得更加实惠和强大,未来可以开发出更复杂的应用程序,如预测性维护和自动驾驶汽车。人工智能(AI)和机器学习(ML)也将融入物联网中。
在讨论移动应用开发的未来以及如何为移动 DevOps 做准备时,组织需要了解移动应用开发的需求和挑战、可用的潜在解决方案以及新兴技术的影响。要实施正确的移动 DevOps 策略,组织必须理解移动开发人员的需求、移动应用开发的挑战和复杂性,以及新兴技术的影响。
通过利用合适的工具和技术,开发人员将能够构建强大、可靠的应用程序,满足用户的需求。
为了利用移动 DevOps 所带来的机会,开发人员需要了解将塑造其未来的趋势和技术。
移动 DevOps 趋势
为了保持竞争力,组织必须开始规划未来的移动 DevOps,以确保在竞争中保持领先地位。
随着我们不断前进,我相信以下目标将成为未来的方向:
为了实现成本优化、性能效率、提高可靠性并加快发布速度,业务团队和 IT 领导者必须理解 移动 DevOps。
以下预测适用于 2023 年及以后的移动 DevOps。
移动发布的自动化编排将增长
持续交付(CD)和发布编排是移动应用开发中的重要趋势。除了保持质量和可靠性外,发布管理实践还允许开发人员快速高效地构建、测试和部署移动应用。为了降低成本、提高可靠性并加速发布过程,预计部署和测试过程的自动化将变得越来越重要。
基于云的基础设施崛起
在我看来,这是移动 DevOps 最重要的趋势;如我们之前所讨论的,移动应用始终需要最新的硬件基础设施、操作系统和移动设备。
如我们所知,构建 iOS 应用总是需要使用最新的苹果芯片,因此我预计更多公司将采用基于云的基础设施,以便他们不必担心维护基础设施,而可以专注于开发应用。因此,应用开发将变得更快、更高效,同时扩展性、性能和测试也将得到改善。
对自动化需求的增长
自动化 在移动 DevOps 中至关重要,它将有助于加快开发过程,使开发人员可以专注于需要更多人工输入的任务。这将使他们能够专注于更重要的任务。
对于移动开发人员来说,专注于重要任务并避免浪费时间在无用任务上是非常重要的。
自动化过程可以用于将应用发布到应用商店、进行不同类型的测试、收集客户反馈、监控性能、扫描安全漏洞等。
除了节省时间和金钱外,自动化还可以减少错误的风险,而错误往往是昂贵且耗时的。这种自动化的增加也有助于提高移动应用的安全性,并减少完成某些任务所需的时间。
向左移将变得更加普遍
正如我们在第五章中讨论的,实施健全的移动应用测试策略,向左移指的是在开发过程的早期进行测试。根据向左移的原则,测试不应是开发过程的最后一步,而应是一个贯穿整个开发生命周期的持续过程。提前进行测试可以在项目进一步开发之前识别和修正任何问题,从而减少成本和时间。
显而易见,向左移将带来成本节约。如果团队成员在开发周期后期发现 bug,他们可以避免重新做项目。此外,向左移还可以改善客户体验,因为发布的无 bug 软件更有可能受到好评。
只有从一开始就在开发过程中构建健全的测试流程,向左移才能得以实施。为了确保软件的准确性,应该在整个开发过程中进行自动化测试,并在多个阶段进行手动测试。对于可能随着时间推移出现的问题,团队应持续监控软件。
增加安全性和数据保护的重要性
无法过分强调安全性在移动 DevOps 中的重要性。安全性和符合行业标准与法规对于日益复杂和互联的移动应用变得越来越重要。
在移动 DevOps 中,安全性和数据保护是首要任务。
移动 DevOps 的未来也将严重依赖于安全性。为了开发更强大和更安全的移动应用,开发流程必须变得更加健壮和安全。作为这一过程的一部分,必须采用安全编码技术,并对应用程序进行测试和验证。
开发人员可以通过遵循这些流程来确保其应用程序的安全性和可靠性。
关注移动应用的性能
分析分析数据对于移动 DevOps 团队来说至关重要,帮助他们了解用户如何与应用互动,识别改进空间,监控移动应用的性能,并诊断和解决可能出现的问题。
为了做出明智的决策,团队将需要工具来捕捉、分析和使用数据。为了确保应用程序保持可靠并满足用户需求,监控生产环境中的应用程序并快速响应用户反馈将变得至关重要。
因此,我相信 AI 和 ML 也将成为移动 DevOps 战略的一部分,我的梦想是参与应用程序监控和性能,因为正如我们之前提到的,组织将考虑这些因素在其移动应用中。通过 AI 和 ML,任务可以自动化,预测可以更加准确,移动开发成本和时间可以减少。
AI 测试和无代码测试工具的兴起
近年来,AI 在软件测试中的应用有所增加。AI 驱动的无代码测试工具如 Sofy.ai、Waldo 和 Testsigma 现在广泛用于自动化软件测试并增加测试覆盖率。
使用 AI 测试工具,我们可以自动化编写测试用例,增加测试覆盖率,并减少手动测试的需求,正如我们在第五章中讨论的,实施强大的移动应用测试策略。
测试人员可以使用无代码测试工具创建自动化测试,无需编写任何代码。这使得测试更简单、更快速,因为测试人员不需要花时间学习如何编写代码。由于测试可以在需要时快速修改,无代码测试工具也提供了更大的灵活性。
使用 AI 驱动的测试自动化工具,分析软件并生成自动化测试脚本。利用这些工具,测试人员可以自动化测试过程并快速发现任何问题。除了模拟真实用户交互外,AI 驱动的测试自动化工具还能更准确地进行测试。
平台工程和开发者生产力的上升
在 2023 年及以后,我认为我们将看到从 DevOps、站点可靠性工程(SRE)和平台工程(PE)转向,我们在第十章中讨论过,通过开发者体验和平台工程提升生产力。
DevOps或DevSecOps这一术语在过去曾试图涵盖其工作职能中过多内容,因此我们现在看到越来越多的 DevOps 和 DevSecOps 团队采用能够简化任务的平台,如编写规则和政策、创建流水线和编写代码来自动化这些任务。
行业不会将某些任务过度集中在一个团队,而是采用能够赋予团队最佳表现的平台。
通过 PE,开发团队可以提供更多的业务价值并实现更强的成果。
为了快速交付应用变更,移动 DevOps 团队需要建立强大的 DevOps 文化。
未来的移动 DevOps 工具链将最大化 IT 价值流的流程。
为了满足客户需求,移动 DevOps 在确保应用程序及时开发、测试和发布中起着关键作用。
总结
我们已经到达本书的最后一站,希望你和我一样享受这个过程,并且它能为你个人带来价值,并教会你一些可以带回团队或组织的知识。
回顾整本书,让我们总结一下我们学到的内容。
从第一章开始,我们着手解决移动应用开发中面临的挑战以及移动 DevOps 的概念,移动 DevOps 涉及将开发和运维(mobile DevOps)实践整合,以提高移动应用开发的效率和速度。
我们专注于确保你不会复制网上找到的别人流程。制定一个适合你利益相关者和团队成员需求的战略和计划。提前为你的移动 DevOps 最佳实践建立一个标准流程。
然后,在第二章中,我们了解了移动生态系统,并共同探索了各种移动平台、框架和移动设备的独特功能,以便理解移动开发人员、QA 工程师、发布工程师或任何从事移动开发工作的人所面临的挑战,因为我们需要考虑如何通过利用自动化来帮助我们构建、测试、发布和监控出色的移动应用。
然后,在第三章中,我们的移动 DevOps 之旅刚刚开始,我们讨论了移动 DevOps 的基础知识,包括持续集成(CI)、持续测试(CT)、持续交付(CD)、持续部署和持续监控(CM)的概念。同时,我们了解了自托管和基于云的 CI/CD 之间的区别以及云的好处。之后,我们学习了移动应用发布的检查表和发布列车背后的概念。
接下来,在后续的章节中,我们开始使用不同的平台实际实现移动 CI/CD 和 DevOps,并讨论了构建稳健测试策略的实施,包括 UI 测试、快照测试、性能测试和安全性测试等不同类型的测试。
一旦应用程序成功开发和测试完毕,它就准备好发布了。那时我们讨论了将移动应用发布给 Beta 测试者、质量保证(QA)、或者发布到应用商店和 Google Play 商店并使其对用户可用的过程。这包括了代码签名、证书、配置文件、密钥库等背后的概念。
在发布移动应用后,下一步是如何为移动应用建立监控和可观察性,并利用这些数据向开发团队提供反馈。我们讨论了不同的崩溃报告和错误监控的实现方式,以及不同的选项和平台。
由于安全性是一个必须考虑的重要因素,我们讨论了如何通过 DevSecOps 概念将安全性注入到移动 DevOps 和 CI/CD 中。这包括如何为团队进行安全培训、哪些安全工具适合我们的团队,以及安全测试类型之间的区别。此外,我们还讨论了全球应用安全项目(OWASP)的移动应用安全指南。
在第九章中,我们讨论了几种移动 DevOps 最佳实践,如 ChatOps、提升团队技能、规模化敏捷和 A/B 测试,以提高移动应用开发的速度和质量,并向用户交付高质量的应用。
在第十章中,我们讨论了内部开发平台(IDP)团队、开发者体验(DX)团队、PE 的好处,以及 DevOps、SRE 和 PE 之间的区别。
我们与移动 DevOps 的旅程终于走到了尽头;希望你享受其中。正如我们所讨论的,随着企业寻求最大化其移动开发团队的效率,移动 DevOps 预计将在未来几年变得越来越流行。许多组织可能会采用移动 DevOps 实践,以简化他们的移动开发流程。我们讨论了今年及未来几年我们应当看到的移动应用开发和移动 DevOps 趋势。
没有万能的解决方案;你应根据你的需求 和期望选择、构建并引导你的流程。
祝你构建愉快!
移动 DevOps 生产力提升与未来趋势
1520

被折叠的 条评论
为什么被折叠?



