写点什么

软件技术栈商品化:应用优先的云服务如何改变游戏规则

  • 2023-04-29
    北京
  • 本文字数:1574 字

    阅读完需:约 5 分钟

软件技术栈商品化:应用优先的云服务如何改变游戏规则

云服务的发展影响了开发人员构建分布式应用程序的方式。在 QCon 伦敦大会上,Diagrid公司的产品经理Bilgin Ibryam谈到了原生云技术(如 Dapr)与以开发者为中心的云服务之间的重叠。

 

Ibryam 从如何看待从单体到微服务的转变以及接下来会发生什么开始。此外,他还讨论了基础设施将如何以云服务的形式发生演变,以及它将如何改变架构。

 


在演讲中,他从基础设施和应用程序趋势的角度讨论了在云计算时代之前或云计算早期、计算优先的云和应用优先的云时代构建应用程序的不同阶段(时间线)。

 

Ibryam 先是讨论云计算早期或云计算之前的时代,也就是单体应用程序时代。在那个时代,云计算还没有成为主流,微服务还没有出现。开发人员必须使用任何可以实现业务逻辑的一切东西,如异步交互(消息传递)、打包程序和缓存。此外,Dev 团队负责的应用程序层和由 Ops 团队管理的基础设施之间也存在区别。

 


接下来,Ilryam 讨论了早期云计算时代之后的内部架构。2010 年之后,人们对应用程序开发重新产生了兴趣,随后出现了一些主要的软件开发趋势,直到今天仍然具有影响力。人们可以使用C4模型4+1架构模型视图来可视化和描述架构,这为他们提供了不同的方法来观察架构。Ibryam 采用了更直接的方法,将架构分为两个层次:内部架构和外部架构。内部应用程序架构由开发人员构建,他们可以完全控制所有的东西,包括应用程序不同的层,或者如他所说的——容器镜像中的所有内容。从 Ops 角度来看,它就是一个黑盒。外部应用程序架构是与应用程序交互的所有内容的集合,包括消息代理、数据库,甚至是云服务。Ops 让它变得可靠、可观察,等等。他讨论了一些影响单体应用程序开发的架构设计方法,例如领域驱动设计、六边形架构、洋葱架构和干净架构(Clean Architecture)。随后出现的 12 因素(12-Factor)应用和微服务原则让单体应用架构变成了一种反模式。

 

在早期的云时代之后是计算优先云,在这个时代,单体应用程序开始向微服务转变。内部应用程序架构的变化和云的出现导致了应用程序及其基础设施之间的分离集成。

 


在讨论“计算优先”时,Ilbryam 详细介绍了应用程序内部架构和云提供的计算。它是应用程序和计算机之间的契约(集成绑定),无论是容器、函数还是无服务器应用程序。它发生在双方的 API(操作调用,如资源需求、部署、配置和度量)之间。通常由 Ops 团队负责。

 

接下来,Ilbryam 再次讨论了随着云计算的出现,应用程序外部架构如何随着时间的推移而发生变化。然后再次提到了应用程序绑定的概念,只是这次说的是位于应用程序之上的云服务(由开发人员负责),而不是底层的基础设施。

 


面向云服务的集成绑定可以移动到另一层,比如分布式应用程序运行时(Dapr)。作为对比,Ibryam 提到了 Google Cloud Event Arc、AWS EventBridge 和 Azure Event Grid,它们都是特定于云的,而 Camel 是语言无关的,Dapr 则是两者兼而有之。

 

最后,Ibryam 谈到了应用优先的云,网络服务正变得越来越以应用为中心,并诞生了集成云:为开发人员构建的托管服务的集合。

 


应用优先的生态系统将提供与事件处理服务(如 Azure Eventgrid)的异步绑定、与服务(如 AWS Step Functions)的有状态绑定、与服务(如 Vercel Edge Middleware)的同步绑定,以及与计算服务(如 AWS ECS、Azure Container Apps 和 Google Cloud Run)的计算绑定。通信将采用遵循 OpenAPI 规范的 API 进行。

 

最后,Ibryam 总结他演讲的关键要点:

  • 专注于区分业务逻辑,重用无区别的商品化功能。

  • 使用支持标准可移植性的开放计算和开放集成绑定。

  • 可移植性与应用程序无关,它是关于模式、实践、工具和人。

 

原文链接

https://www.infoq.com/news/2023/03/application-first-cloud-services/


相关阅读:

不只是黑盒测试:测试工程师如何识别和消除代码坏气味?

ThoughtWorks CTO:2025 年之前,我们会看到架构的演进,但不会看到革命

有状态自动扩展系统的设计模式提议


2023-04-29 08:007024

评论

发布
暂无评论
发现更多内容

dart系列之:时间你慢点走,我要在dart中抓住你

程序那些事

flutter 架构 dart 程序那些事 11月日更

java开发之DOS命令学习及运行环境配置安装

@零度

java开发学习 DOS命令学习

处理可能超时的异步操作

编程江湖

大前端

Elasticsearch云生态下的开源共生之路

大咖说

云计算 elasticsearch 开源

百度商业大规模高性能全息日志检索技术揭秘

百度Geek说

软件架构

数仓开发详细剖析

五分钟学大数据

11月日更

Rainbond通过插件整合SkyWalking,实现APM即插即用

北京好雨科技有限公司

Kubernetes 云原生 全链路追踪

如何在P4中管理Unreal Engine 代码

龙智—DevSecOps解决方案

版本控制 游戏开发 版本管理 游戏引擎 虚幻引擎

并发编程中,你加的锁未必安全

华为云开发者联盟

线程 高并发 并发 线程安全

一文讲透一致性哈希的原理和实现

万俊峰Kevin

微服务 高并发 哈希算法 go-zero Go 语言

移动计算云分布式数据缓存服务,实现快速可靠的跨区域多活复制

华为云开发者联盟

可用性 云数据缓存 跨区域多活 无冲突复制数据类型CRDT

Python量化数据仓库搭建系列2:Python操作数据库

恒生LIGHT云社区

Python 量化

Google I/O 2021 What's new in Android Machine Learning

CatTalk

机器学习 tensorflow android Google

Linux学习方法《Linux一学就会》Centos8软件包的管理与安装

侠盗安全

Linux linux运维 运维工程师 云计算架构师

服务API版本控制设计与实践

vivo互联网技术

API 服务器端开发 客户端开发 迭代

Perforce用户文章转载:每个游戏从业者都应该学学P4

龙智—DevSecOps解决方案

版本控制 游戏开发 版本管理 perforce 游戏厂商

测试不趁早,“持续测试”搞不好

飞算JavaAI开发助手

DevOps 敏捷开发 自动化测试

前端开发之JavaScript优化

@零度

JavaScript 大前端

react源码解析3.react源码架构

buchila11

源码 React React Hooks react源码

直播预告|数以智用——大数据应用探索与实践

智联卓聘

大数据 数据管理 线上沙龙

万字讲解WiFi为何物

华为云开发者联盟

wifi 物联网 无线通信 传输 无线

博文推荐|深入解析 Apache Pulsar 中的事务

Apache Pulsar

大数据 架构 分布式 云原生 Apache Pulsar

爱奇艺TFServing负载均衡问题研究及改进实践

爱奇艺技术产品团队

如何使用 Java 代码给图片增加倒影效果

汪子熙

Java API 图片处理 11月日更 Java图片

内存数据库的分布式架构提升之道

鲸品堂

数据库

大批量更新数据mysql批量更新的四种方法

大数据技术指南

11月日更

Java开发中常用的消息队列工具 ActiveMQ

编程江湖

Activemq Java 开发

react源码解析4.源码目录结构和调试

buchila11

React React Hooks

PackML从会到不会——状态机(1)

陈的错题集

标准化 PackML

一些常用的hive sql函数

编程江湖

大数据 hive Hive SQL

为云而生,云原生数据库TDSQL-C技术突破与演进

腾讯云数据库

tdsql 国产数据库

软件技术栈商品化:应用优先的云服务如何改变游戏规则_服务革新_Steef-Jan Wiggers_InfoQ精选文章