【锁定直播】字节、华为云、阿里云等技术专家讨论如何将大模型接入 AIOps 解决实际问题,戳>>> 了解详情
写点什么

构建和部署微服务的模式

  • 2014-08-20
  • 本文字数:1164 字

    阅读完需:约 4 分钟

微服务管理意味着要看管大量相互通信的小型系统并提供自动配置功能,此外基础设施自动化也是极其重要的, James Lewis 在做技术与实践分享的时候声称这些有助于他管理日益增长的运维复杂度,而这些复杂度就是由于微服务架构造成的。

在ThoughtWorks 工作的咨询师James 对微服务的起源进行了描述,他认为这是对我们目前用于构建应用的方式的一种回应。一直以来,我们都是在构建那种庞大的而且难以修改、测试和管理的单片应用,这种应用从根本上来说就像是一个由像意大利面条那样乱作一团的代码所构成的大泥球 big balls of mud )。解决方案就是将原来的单片应用构建为更小的事物,并通过某些方式让它们相互之间能够进行通讯。

对于 James 而言,微服务意味着先选择一套大型的应用程序,然后识别出限界上下文 bounded contexts )及其内部的业务功能,并对它们进行分割,重要的是要将数据一起进行分割,也就是说要采用应用数据库而非集成数据库。为了理解业务领域的内容,关键的一点就是要在一开始就采用上下文图 context map )这个工具,James 引用了他的同事 lan Cartwright 的一段话:

业务和架构应该是同构的。业务人员应该能够通过查看架构的总体示意图来了解其反映的业务内容,同样,作为技术人员,我们应该能够通过浏览业务来领会其展现的架构内容。

微服务架构的一个很重要的方面就是规模,James 认为单一职责模式(SRP)( Single Responsibility Pattern )是一种很好的衡量标准。一个服务应该只有一个进行改动的原因,这在实践中意味着它应该是小型的并且足够专注,进而能够从概念上进行理解和把握。

James 认为微服务的一个核心概念就是能够对每个服务进行独立部署和扩展的可能性;一个服务可以被部署为多个实例,而不同的服务也可以托管在同一台服务器上。James 强调,在构建和部署分布式系统的时候,对自动化配置的关注是至关重要的,每个服务或者应用都必须自动地进行构建、部署和扩展。微服务的许多复杂性都来自于集成过程,但是我们可以应用一些模式来进行应对,还可以参考《持续交付》一书中关于构建过程的模式。

Chef Puppet 这样的工具有助于实现机器的自动化配置,大量的服务会引入一定的复杂度,使用这些工具来进行基础设施自动化也是控制这些复杂度的重要方式。Phoenix 基础架构模式描述了一种我们利用基础架构自动化来再造所有的基础架构的方式,比如我们应该能够将电脑的信息都清除,然后运行一个脚本来重新构建它及其所有的依赖。

James 所提到的微服务大会定于十一月份下旬在伦敦举办。

查看原文地址: http://www.infoq.com/news/2014/07/building-deploying-microservices


感谢赵震一对本文的审校。

给InfoQ 中文站投稿或者参与内容翻译工作,请邮件至 editors@cn.infoq.com 。也欢迎大家通过新浪微博( @InfoQ )或者腾讯微博( @InfoQ )关注我们,并与我们的编辑和其他读者朋友交流。

2014-08-20 04:122720

评论

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

专注B2B跨境支付的背后,XTransfer的风控基础设施是如何炼成的?

XTransfer技术

深圳云堡垒机厂商哪家好?很贵吗?咨询电话多少?

行云管家

云计算 网络安全 堡垒机 云堡垒机

TiDB 在长银五八消费金融核心系统适配经验分享

TiDB 社区干货传送门

安装 & 部署 OLAP 场景实践

资源池以及资源池化是什么意思?

行云管家

资源池 IT运维 资源池化

如何用低成本方案解决室内超大场景下机器人定位与导航难题?

优必选科技

机器人 定位 导航

什么是真正的 HTAP ?(二)挑战篇

StoneDB

MySQL OLAP OLTP HTAP StoneDB

APP常用跨端技术栈深入分析

京东科技开发者

flutter H5 Weex ReactNative

单点登录的三种方式

Authing

云原生 SaaS SSO 单点登录 Authing

2022可信云权威评估公布:天翼云获十项认证、五项最佳实践

Geek_2d6073

极狐(GitLab)与原森科技达成战略合作,共筑FinDevOps业财融合解决方案

科技热闻

[ Kitex 源码解读 ] 服务注册

baiyutang

Go 微服务架构 kitex CloudWeGo

NFT是什么?如何开发NFT系统?

开源直播系统源码

数字藏品软件开发 数字藏品系统软件开发 数字藏品交易平台开发

性能大规模专项评测双通过,数牍Tusita步入隐私大数据计算时代

Jessica@数牍

隐私计算性能 数牍科技 可信隐私计算评测

黄东旭:TiDB的优势是什么?

TiDB 社区干货传送门

人物访谈

TiDB 在多点数字化零售场景下的应用

TiDB 社区干货传送门

实践案例 社区活动 TUG 话题探讨

万物根生,共创新时代:华为亮相第五届数字中国建设峰会

Geek_2d6073

涅槃重生!字节大牛力荐大型分布式手册,凤凰架构让你浴火成神

冉然学Java

Java 华为 开源 网络协议 #Github

研发需求拆分的全流程详解 | 敏捷实践

LigaAI

开发者 研发管理 需求管理 需求分析 LigaAI

一文理解分布式开发中的服务治理

博文视点Broadview

数字电路基础篇

贾献华

7月月更

腾讯5G创新中心成立,布局无人港口、智慧矿山、电竞赛事等重点方向

科技热闻

iOS中@class和#import

NewBoy

ios 前端 移动端 iOS 知识体系 7月月更

转转微服务框架的连接管理

转转技术团队

微服务 RPC 服务治理

Ticmp - 更快的让应用从 MySQL 迁移到 TiDB

TiDB 社区干货传送门

性能测评

MRS +Apache Zeppelin,让数据分析更便捷

华为云开发者联盟

大数据 开源 后端

参与开源社区还有证书拿?

胡说云原生

开源 证书

国内首台商用人形双足机器人发展史

优必选科技

机器人

万物皆可柯里化的 Ramda.js

掘金安东尼

前端 函数式编程 7月月更

TiKV主要内存结构和OOM排查总结

TiDB 社区干货传送门

故障排查/诊断

TiCDC 架构和数据同步链路解析

TiDB 社区干货传送门

数据库架构设计 6.x 实践

TiDB之rawkv升级之路v5.0.4-->v6.1.0

TiDB 社区干货传送门

迁移 版本升级 集群管理

构建和部署微服务的模式_SOA_Jan Stenberg_InfoQ精选文章