写点什么

Kevin Webber:Java 的云迁移

  • 2017-11-30
  • 本文字数:1125 字

    阅读完需:约 4 分钟

Kevin Webber 在开始演讲的时候说,企业软件构建应用程序的形式比较散碎,不够系统,集成很复杂。传统的基础架构(Traditional infrastructures)具备主动 / 被动的粗糙故障转移(crude failover),支持在主动和被动系统之间复制复杂的状态。

在一个现代化项目中,架构师必须做出的最初几项决定(“第一英里(The First mile)”)是至关重要的。他不仅谈到了关键的架构决策,也提及了如何根据领域驱动设计( Domain-Driven Design)的原则来做出这些决策。为了定义所涉及的业务过程以及如何将这些过程转换为事件驱动(event-driven)系统,事件风暴(Event storming)将关键的利益相关者聚集到一个协作的环境中。团队应该关注在业务中已经发生的最有趣的事件。

在从遗留系统(legacy sysems)到反应系统(Reactive systems)的迁移中,其他一些诸如防护层 (ACL) 和 Strangler 模式的概念也同样有用。

洋葱架构(Onion architecture)与领域驱动设计(Domain Driven Design)的概念非常吻合。该架构中的以下几个层可以帮助实现不同方面的需求。

  • 基础架构:我们可以使用该层来实现诸如健康检查、跟踪和身份验证等交叉需求(cross-cutting requirements)。
  • API:用于路由和数据验证
  • 域:管理这个层中的有界上下文
  • 核心:这就是我们管理聚合(Aggregates)的地方

Webber 讨论了云原生对于应用程序的意义。应用程序需要是容器包装的、动态管理的和面向微服务的。

Webber 还谈到了微服务架构,他推荐道:团队首先应该从整体模型开始着手, 并使用微服务作为重构技术将系统分解成多个微服务。微服务模型不仅有助于分布式系统, 也有助于分布式团队。

很多团队专注于在服务级别上分解系统,但却在数据层保持耦合。在这样的架构中,任何数据模型都将影响多个服务。

在会议结束后,InfoQ 与Kevin 进行了交谈,了解了有关将Java 应用程序迁移到云基础架构上的更多详细信息。

Kevin 说到,一旦微服务有点对点的交互,那么在服务管理方面就会混乱。重要的是要记住, 如果一个微服务发生改变的时候影响了另一个,那么这种情况下它们就不算真正独立的微服务,两者应该整合为单一的服务。

微服务的构成可以利用 PubSub 模型来实现,PubSub 使用像 Kafka 之类的服务器, 先将事件发送到队列,再使用诸如 Cassandra 的 NoSQL 数据库将事件存储在事件日志存储(Event Log Store)中。

如果读者想要了解更多关于该话题的细节,可以在奥莱利(O’Reilly)中查阅 Webber 的 Mini 书《 Migrating Java to the Cloud

查看英文原文: Kevin Webber on Migrating Java to the Cloud


感谢冬雨对本文的审校。

给InfoQ 中文站投稿或者参与内容翻译工作,请邮件至 editors@cn.infoq.com 。也欢迎大家通过新浪微博( @InfoQ @丁晓昀),微信(微信号: InfoQChina )关注我们。

2017-11-30 18:001690
用户头像

发布了 21 篇内容, 共 13.9 次阅读, 收获喜欢 14 次。

关注

评论

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

Java对象拷贝原理剖析及最佳实践

京东科技开发者

Java Apache 编程 对象拷贝 srping

先聊聊「堆栈」,再聊聊「逃逸分析」。Let’s Go!

王中阳Go

Go golang 逃逸分析 内存分配 11月月更

阿里技术风险与效能部负责人张瓅玶:阿里集团深度用云实践

云布道师

云计算

PCB做SET连片,转批量时发现利用率非常低,有遇到过吗?

华秋PCB

PCB PCB设计 拼板

算法基础:单链表图解及模板总结

timerring

算法 11月月更 单链表

看完这篇SpringBoot让我在阿里成功涨薪40%,感谢

钟奕礼

Java java程序员 java面试 java编程

avm 开发 APP 怎么设置字体

YonBuilder低代码开发平台

一个漏测Bug能让你想到多少?

得物技术

测试 测试框架 bug修复 漏洞检测 测试技术

SREWorks 数智服务尝鲜,你的数据准备好了吗?

阿里云大数据AI技术

大数据 运维 数据 十一月月更

OpenHarmony 3.2 Beta多媒体系列——音视频播放gstreamer

OpenHarmony开发者

OpenHarmony

「风控算法服务平台」高性能在线推理服务设计与实现

京东科技开发者

Python 数据 高性能 风控 风险控制

MatrixOne从入门到实践01——初识MatrixOne

MatrixOrigin

MatrixOrigin MatrixOne

前后端结合解决Excel海量公式计算的性能问题

葡萄城技术团队

前端 性能 Excel

第一届云原生边缘计算学术研讨会KEAW'22成功举办

科技热闻

深入浅出DDD编程

百度Geek说

架构 后端 领域驱动设计

从流程驱动到数据驱动 银行业数据平台架构的演进

酷克数据HashData

7X24 高可用保障,火山引擎边缘函数为猿辅导在线教学业务保驾护航

火山引擎边缘云

Serverless 边缘计算 在线 教育 火山引擎

直播预约|Flink + StarRocks 实时数据分析新范式

StarRocks

数据库

上海 Meetup | 一键获取 11 大云原生热门开源项目技术分享入场券

阿里巴巴云原生

阿里云 开源 容器 微服务 云原生

VoneDAO助力元宇宙生态治理,加速组织数字化转型

旺链科技

区块链 产业区块链 DAO

MASA Framework 事件总线 - 进程内事件总线

MASA技术团队

Framework MASA Framewrok MASA

创云融达基于 Curve 块存储的智慧税务场景实践

网易数帆

开源 分布式存储 Ceph curve

AR手势识别交互,让应用更加“得心应手”

HarmonyOS SDK

HMS Core

MatrixOne从入门到实践02——源码编译

MatrixOrigin

MatrixOrigin MatrixOne

低代码引擎半岁啦,来跟大家唠唠嗑...

阿里巴巴终端技术

前端 低代码

是时候考虑升级 JDK 17 了

世开 Coding

Java jdk JVM jdk17

【收藏】设备的前期管理,你重视了吗?

PreMaint

设备管理

MatrixOne从入门到实践03——部署MatrixOne

MatrixOrigin

MatrixOrigin MatrixOne

工程团队如何合理地管理数据库访问

Bytebase

DevOps 运维 dba 数据库管理工具 删库保护

分布式数据库Greenplum基本原理和使用

价投小邱

数据库 分布式数据库 greenplum

Kevin Webber:Java的云迁移_语言 & 开发_Srini Penchikala_InfoQ精选文章