最新发布《数智时代的AI人才粮仓模型解读白皮书(2024版)》,立即领取! 了解详情
写点什么

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:001267
用户头像

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

关注

评论

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

[教你做小游戏] 只用几行原生JS,写一个函数,播放音效、播放BGM、切换BGM

HullQin

CSS JavaScript html 前端 9月月更

阿里顶配版 Spring 全家桶高级笔记+300道硬核面试题,跪着啃完了

钟奕礼

Java 编程 程序员 架构 java面试

DPDK技术学习路线总结,虚拟化专家之路

C++后台开发

后台开发 DPDK VPP OvS DPDK开发

线上问题如何复盘

老张

线上故障 问题复盘

远程TS全栈学习+远程全职工作+远程高质量外包=3R教室

pincman

node.js typescript react.js 远程工作 nestjs

Java进阶(三)Java安全通信:HTTPS与SSL应用配置

No Silver Bullet

https SSL证书 9月月更

软件复杂性的来源与应对

源字节1号

软件开发 前端开发 后端开发 小程序开发

费时3个月啃烂了这份Redis技术笔记,我成功上岸进了字节

收到请回复

redis 架构 语言 & 开发 Java core redis 底层原理

腾讯T4整合Spring+Spring MVC+MyBatis+Redis实现

退休的汤姆

Java 程序员 面经 Java工程师 秋招

一名中年码农转型成远程工作及远程全栈教学创业者的故事

pincman

node.js typescript react.js 远程工作 nestjs

中小企业集成AI人工智能的窘境

felix

人工智能 中小企业 开放应用模型

设计模式的艺术 第十二章装饰设计模式练习(开发一个数据加密模块,可以对字符串进行加密。最简单的加密算法通过对字母移位来实现,同时提供了稍复杂的逆向输出加密和更高级的求模加密。用户先用最简单的算法加密,如果觉得不够,可以使用其他算法进行二次加密和三次加密)

代廉洁

设计模式的艺术

leetcode 21. Merge Two Sorted Lists 合并两个有序链表(简单)

okokabcd

LeetCode 数据结构与算法

数据治理的内核:元数据管理

Taylor

数据治理 数字化 元数据 元数据管理 元数据管理平台

《游戏机图鉴》:发展、继承、崩溃、复兴,游戏机的前世今生

图灵社区

科普 游戏机

上车上车,快速搞懂Redis 过期策略和内存淘汰策略

知识浅谈

redis 过期策略 9月月更

SpringCloud 配置中心(Nacos)的简单使用

nacos SpringCloud 配置中心 9月月更

易观之星 | “2022年度用户推荐数字应用”投票通道开启

易观分析

易观

分享一套自己制作的Nestjs实战教程

pincman

node.js typescript nestjs

Java工程师丨面试必会进程线程问答

陈橘又青

Java 面试 9月月更

C++后台开发学习路线(已多人拿下腾讯后台开发)

C++后台开发

后台开发 后端开发 C++后台开发 C++开发 腾讯后台开发

易观千帆 | 2022年7月宁波市手机银行应用活跃人数榜单

易观分析

手机银行 宁波

iview提供的控件tree

zxhtom

9月月更

Java进阶(二)文件读操作

No Silver Bullet

Java 9月月更 文件读操作

云原生(三十四) | Kubernetes篇之平台存储系统实战

Lansonli

云原生 9月月更

中国智能网联汽车信息安全分析2022案例征集

易观分析

汽车 案例征集 智联网

程序人生 | 编程的上帝视角应该怎么去找

小明Java问道之路

程序人生 编程思维 如何学习 9月月更 计算机思维

分布式技术难学?谷歌大神首发纯手撸ZK+Dubbo笔记,网友看完直呼NB

收到请回复

Java zookeeper 架构 分布式 语言 & 开发

发布仅1小时Github破万赞!这份LeetCode算法刷题手册真是离谱

了不起的程序猿

Java 程序员 LeetCode 数据结构算法

设计模式的艺术 第十一章组合设计模式练习(开发一个界面控件库。界面控件分为两大类:一类是单元控件,例如按钮、文本框等;另一类是容器控件,例如窗体、中间面板等。试用组合模式设计该界面控件库)

代廉洁

设计模式的艺术

什么是 SAP Business Function

Jerry Wang

SAP abap Netweaver 业务流程驱动 9月月更

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