草庐IT

面向集成、微服务和API的快速创新

开源云中文社区 2023-03-28 原文
​API开发和使用的快速增长丝毫没有放缓的迹象,API在跨行业数字业务中的核心作用也随着这一增长而继续激增。

最近一项针对IT领导者的调查发现,98%的人认为API是任务关键型的,81%的人目前正在使用微服务,18%的人计划很快这样做。

API的指数级增长使得当今的大多数软件要么使用API,要么就是一个API。API及其背后的集成和微服务已成为面向客户、员工和合作伙伴的新数字化渠道的基本构建块。

阻碍创新的挑战

然而,你可能已经了解到,在过去十年中,大多数数字化商业计划(一些研究提到70%)都失败了。这些数字化举措要么没有带来所有预期收益,如新的收入来源、每客户收入的增加或利润的增加,要么没有带来任何收益。

关于为什么随着API数量和复杂性的增加,组织生产力降低,上市时间减慢,人们反复提出了两个主要原因。

  • 第一个是关于人的:管理在Kubernetes等相对较新技术之上运行的现代云原生基础设施所需的开发人员和操作技能不足。
  • 第二个是关于流程:由于所有使用API的人对安全、治理和协调变更的需求不断增加,DevOps流程的速度会减慢。随着API使用量的增长,管理数百或数千个API的复杂性可能变得难以承受,从而导致成本和安全风险的增加。由于开发团队被迫将更多的时间用于管理任务和治理,生产力往往会受到影响,发布时间也会延长,这会减缓创新和增长。
如果你深入挖掘根本原因,大多数时候是因为这些组织没有以一种允许他们快速创新和促进重用的方式一起设计、开发和管理他们的API、微服务和集成。这并不容易,因为:

  • API开发:API设计、开发和部署需要在数小时内交付的CI/CD管道,这很困难。
  • API重用:API的存在是为了重用,部分是为了在数小时内实现开发。如果一个API由于任何原因不易于使用、发现、共享或更改,它的价值就会消失。
  • API部署:很难将Kubernetes、API管理、集成、服务开发、安全和其他技术结合到一个易于使用的数字平台中。
  • API治理:管理用户、API生命周期和安全性可能会导致非常手动的流程,增加太多的时间、成本和风险。
  • API可见性:跨多个组织的API、集成和服务,很难管理监控、审计跟踪或开发人员协作的端到端可见性。
随着开发或使用的API总数增加到数百甚至数千,管理所有这些API以及它们使用的集成和微服务很快就会变得难以承受。

快速数字创新的十个最佳实践

好消息是,许多公司已经能够依靠几种常见的最佳实践快速创新。WSO2根据其在1000多家公司部署的经验总结了这些建议。

1. 专注于数字化体验工程

你无法购买吸引和留住客户的独特体验,而是必须构建它,并随着时间的推移不断改进它。我们称之为“数字化体验工程”。你的团队、技术和流程都需要专注于快速构建和改进这种体验。

2. API优先

如果你希望API使用者(开发人员)采用你的API,则需要将API视为产品。从外部到内部设计每个API,以改善API使用者的体验。(不要将现有集成或接口公开为API。这是一种由内而外的设计)。

3. 为每个外部API指定一名产品经理

每个好产品都有一个产品经理。为每个外部API指定一名产品经理,该经理将从头到尾负责该API。

4. 构建API主导的集成和服务

在数小时内开发API的唯一方法是,如果大部分工作涉及重用现有组件,这些组件是专门为在API开发期间重用而设计的。API主导的设计意味着每个API、服务和集成都应该是可重用的、松耦合的。大多数更改应该能够在单个组件内进行,而不会影响其他组件。

5. 提供数字平台作为共享服务

让核心团队提供一个完整的云原生数字平台,作为一个易于使用的共享服务。它应该为API和应用开发团队提供简化的DevOps和CI/CD工具,将服务开发、集成和API管理结合起来。

6. 支持多种开发人员框架和工具

你需要支持不同类型的开发人员和技能集。虽然你应该让开发人员易于创建新的API,但也需要让其他人易于重用、集成或组合API,以便广泛采用。

7. 提供简化的DevOps作为默认框架

虽然支持不同的开发人员需求以最大限度地提高采用率很重要,但你应该为开发人员提供至少一个首选环境,该环境将围绕数字平台的所有最佳实践编成代码,并简化DevOps,以帮助简化快速创新的道路。

8. 将共享服务目录集成到所有工具中

所有需要重用的东西都需要易于发现、学习、采用和随时间变化。这至少需要一个开发人员门户。然而,理想情况下,你还应该在开发环境中提供一个开发人员市场,允许添加组件和其他编码。

9. 从安全到生命周期管理的内置治理

使安全和治理流程成为尽可能简化和自动化的通用DevOps流程的一部分。如果你将API发现、API设计、API安全和API生命周期管理构建到开发过程中,将增加重用,加快新API的开发,降低返工量,而不仅仅是取消手动“固定”的后期开发过程。这将有助于更快地交付API。

10. 为团队实施云原生服务和CI/CD

每个团队重新发明自己的Docker/Kubernetes基础设施或多级CI/CD管道没有任何优势。使他们能够轻松地将API、集成和服务作为复合API或应用程序一起开发、部署、监控、保护和管理。尽可能将云原生部署的复杂性抽象掉。

快速创新之路

数字化之旅是各不相同的,也是不易的。但如果你遵循这些规则,成功的机会就会大得多。​

有关面向集成、微服务和API的快速创新的更多相关文章

  1. ruby-on-rails - 如何使辅助方法在 Rails 集成测试中可用? - 2

    我在app/helpers/sessions_helper.rb中有一个帮助程序文件,其中包含一个方法my_preference,它返回当前登录用户的首选项。我想在集成测试中访问该方法。例如,这样我就可以在测试中使用getuser_path(my_preference)。在其他帖子中,我读到这可以通过在测试文件中包含requiresessions_helper来实现,但我仍然收到错误NameError:undefinedlocalvariableormethod'my_preference'.我做错了什么?require'test_helper'require'sessions_hel

  2. ruby-on-rails - ActionController::RoutingError: 未初始化常量 Api::V1::ApiController - 2

    我有用于控制用户任务的Rails5API项目,我有以下错误,但并非总是针对相同的Controller和路由。ActionController::RoutingError:uninitializedconstantApi::V1::ApiController我向您描述了一些我的项目,以更详细地解释错误。应用结构路线scopemodule:'api'donamespace:v1do#=>Loginroutesscopemodule:'login'domatch'login',to:'sessions#login',as:'login',via::postend#=>Teamroutessc

  3. ruby-on-rails - 我如何将 Hoptoad 与 DelayedJob 和 DaemonSpawn 集成? - 2

    我一直很高兴地使用DelayedJob习惯用法:foo.send_later(:bar)这会调用DelayedJob进程中对象foo的方法bar。我一直在使用DaemonSpawn在我的服务器上启动DelayedJob进程。但是...如果foo抛出异常,Hoptoad不会捕获它。这是任何这些包中的错误...还是我需要更改某些配置...或者我是否需要在DS或DJ中插入一些异常处理来调用Hoptoad通知程序?回应下面的第一条评论。classDelayedJobWorker 最佳答案 尝试monkeypatchingDelayed::W

  4. 【鸿蒙应用开发系列】- 获取系统设备信息以及版本API兼容调用方式 - 2

    在应用开发中,有时候我们需要获取系统的设备信息,用于数据上报和行为分析。那在鸿蒙系统中,我们应该怎么去获取设备的系统信息呢,比如说获取手机的系统版本号、手机的制造商、手机型号等数据。1、获取方式这里分为两种情况,一种是设备信息的获取,一种是系统信息的获取。1.1、获取设备信息获取设备信息,鸿蒙的SDK包为我们提供了DeviceInfo类,通过该类的一些静态方法,可以获取设备信息,DeviceInfo类的包路径为:ohos.system.DeviceInfo.具体的方法如下:ModifierandTypeMethodDescriptionstatic StringgetAbiList​()Obt

  5. Observability:从零开始创建 Java 微服务并监控它 (二) - 2

    这篇文章是继上一篇文章“Observability:从零开始创建Java微服务并监控它(一)”的续篇。在上一篇文章中,我们讲述了如何创建一个Javaweb应用,并使用Filebeat来收集应用所生成的日志。在今天的文章中,我来详述如何收集应用的指标,使用APM来监控应用并监督web服务的在线情况。源码可以在地址 https://github.com/liu-xiao-guo/java_observability 进行下载。摄入指标指标被视为可以随时更改的时间点值。当前请求的数量可以改变任何毫秒。你可能有1000个请求的峰值,然后一切都回到一个请求。这也意味着这些指标可能不准确,你还想提取最小/

  6. ruby-on-rails - Mandrill API 模板 - 2

    我正在使用Mandrill的RubyAPIGem并使用以下简单的测试模板:testastic按照Heroku指南中的示例,我有以下Ruby代码:require'mandrill'm=Mandrill::API.newrendered=m.templates.render'test-template',[{:header=>'someheadertext',:main_section=>'Themaincontentblock',:footer=>'asdf'}]mail(:to=>"JaysonLane",:subject=>"TestEmail")do|format|format.h

  7. jenkins部署1--jenkins+gitee持续集成 - 2

    前置步骤我们都操作完了,这篇开始介绍jenkins的集成。话不多说,看操作1、登录进入jenkins后会让你选择安装插件,选择第一个默认的就行。安装完成后设置账号密码,重新登录。2、配置JDK和Git都需要执行路径,所以需要先把执行路径找到,先进入服务器的docker容器,2.1JDK的路径root@69eef9ee86cf:/usr/bin#echo$JAVA_HOME/usr/local/openjdk-82.2Git的路径root@69eef9ee86cf:/#whichgit/usr/bin/git3、先配置JDK和Git。点击:ManageJenkins>>GlobalToolCon

  8. ruby-on-rails - 在 Ruby (on Rails) 中使用 imgur API 获取图像 - 2

    我正在尝试使用Ruby2.0.0和Rails4.0.0提供的API从imgur中提取图像。我已尝试按照Ruby2.0.0文档中列出的各种方式构建http请求,但均无济于事。代码如下:require'net/http'require'net/https'defimgurheaders={"Authorization"=>"Client-ID"+my_client_id}path="/3/gallery/image/#{img_id}.json"uri=URI("https://api.imgur.com"+path)request,data=Net::HTTP::Get.new(path

  9. ruby-on-rails - 使用 HTTParty 的非常基本的 Rails 4.1 API 调用 - 2

    Rails相对较新。我正在尝试调用一个API,它应该向我返回一个唯一的URL。我的应用程序中捆绑了HTTParty。我已经创建了一个UniqueNumberController,并且我已经阅读了几个HTTParty指南,直到我想要什么,但也许我只是有点迷路,真的不知道该怎么做。基本上,我需要做的就是调用API,获取它返回的URL,然后将该URL插入到用户的数据库中。谁能给我指出正确的方向或与我分享一些代码? 最佳答案 假设API为JSON格式并返回如下数据:{"url":"http://example.com/unique-url"

  10. ruby-on-rails - 是否使用 API - 2

    关闭。这个问题是opinion-based.它目前不接受答案。想要改进这个问题?更新问题,以便editingthispost可以用事实和引用来回答它.关闭4年前。Improvethisquestion我的公司有一个巨大的数据库,该数据库接收来自多个来源的(许多)事件,用于监控和报告目的。到目前为止,数据中的每个新仪表板或图形都是一个新的Rails应用程序,在巨大的数据库中有额外的表,并且可以完全访问数据库内容。最近,有一个想法让外部(不是我们公司,而是姊妹公司)客户访问我们的数据,并且决定我们应该公开一个只读的RESTfulAPI来查询我们的数据。我的观点是-我们是否也应该为我们的自己

随机推荐