首页 | 财经 | 资源 | 理财 | 考研 | 职场 | 论文 | 资格 | 股票学院 |

股票学院: 股票入门 - 股票知识 - 股票术语 - 炒股技巧 - 选股技巧 - 跟庄技巧 - 炒股经验 - 投资策略 - K线图 - 均线 - 分时图 - 成交量 - 波浪理论 - 基本面分析 - 心理分析 - 涨停研究 - 趋势线 - 江恩理论 - MACD - KDJ - 技术指标 - 财经股票书籍在线阅读 - 金融类书籍下载 - 银行学院 - 保险学院 - 外汇学院 - 债券学院 - 股票学院 - 基金学院 - 港股学院 - 黄金学院

当前位置:蓝筹金融网 > 金融云 > 文章正文

转向微服务的八条建议

时间:2019-03-26 00:07:37来源:企业网D1Net作者:佚名

向微服务的转变代表着应用程序开发的巨变。以下是如何解开这种大转变的复杂性。

转向微服务的八条建议

如今新应用程序的开发都与交付速度有关。向敏捷环境的大规模转移已经持续了数年,这促使人们有一种轻松快速地部署软件的意识。

微服务是面向服务的体系结构(SOA)的一种变体,它将应用程序构建为松散耦合服务的集合。将应用程序拆分为更小服务的好处包括:改进了模块化,使应用程序更易于开发和测试。

“微服务增强了团队授权,减少了耦合,使各个团队能更快地进行创新,减少跨团队之间的沟通,并且有权自己做出有关架构、语言和框架的决策,”Verizon媒体集团(Verizon Media Group)工程、体育及媒体制作工程副总裁坎贝尔(EJ Campbell)说道,该集团是拥有50个在线品牌的通信公司的子公司。

坎贝尔说:“我们已经看到,随着团队采用微服务,从提交到制作的周期时间显著缩短。” “许多团队每天多次部署微服务,无需任何人工干预,依靠测试、代码审查和复杂的CI/CD(持续集成/持续交付)管道来确保变更内容的安全交付。”

该公司的“Yahoo Daily Fantasy”产品含有多个微服务,包括核心游戏服务、体育数据服务、钱包服务和一些支持内部服务。“这些服务中的每一个都有自己的持续部署管道、独立的数据存储以及负责其开发和运营的各自团队,”坎贝尔说。

使用微服务时,各个组织可能会遇到许多挑战。这些挑战包括确定多个服务之间的正确边界,克服微服务环境中团队之间共享代码的困难,以及克服变更管理的复杂性,因为各团队都是独立发布代码。

转向微服务代表着一场大变革,各个组织需要做好应对这种重大转变的准备。

“向微服务的演变就像是从马到自行车,或从自行车到汽车的过程,”Solutions By Design II (SBD)公司项目副经理Jay Bercher说道,这是一家管理咨询和技术服务公司,与联邦机构合作,协助其转向基于微服务的IT工作方式。

“当我们经历演变的多个阶段时,我们会发现有更多的东西在变化,”Bercher说。“每个变化的东西都需要一定级别的维护,对这么多方面的支持和监督不仅使解决方案更加复杂,而且还增加了相关成本。因此,我们必须仔细审查我们的决定,以确保这些决定不仅是最佳的技术决策,而且还具有成本效益。”

另一个挑战是安全性。“我们必须确定是否要在整个应用程序中实施单一验证解决方案,或者我们是否要对每个微服务都设置其自己的验证流程,”Bercher说。“这是一个必须根据具体情况做出的决定,并且是每个项目团队需要自己做出的决定。”

以下是一些建议的最佳做法,以应对挑战并在微服务环境中顺利发展。

采用领域驱动设计

Bercher说,创建微服务是为了使服务松散耦合,并应用单一责任原则。

“尽管有各种开发方式和方法,但领域驱动设计和微服务似乎是完美组合,”Bercher说。 SBD公司的团队使用领域驱动设计,这是一种构建应用程序的主题方法,可创建一种高效的开发模式,消除大多数团队的相互依赖性。

“在我们的工作中,领域与微服务的相关性基本上是一对一的,”Bercher说。“因此,每个开发团队都负责一个领域,同时也负责开发相应的微服务。这就建立了明确的责任划分,从而限制了并行开发工作中可能出现的冗余。”

建立代码库指南

坎贝尔说,在微服务环境下,团队之间共享代码要困难得多。

“不像在一个整体架构中,公共代码只是一个方法调用,而微服务架构的通用性必须分解到独立的服务中,或者代码必须打包到一个共享库中,”坎贝尔说。

使用这些库通常很慢,并且进行更改需要在库所有者和多个服务之间进行协调。“因此,对于公共库和上线产品的要求,各个组织应采用一套强有力的指导方针,这非常重要,”坎贝尔说。

不要在微服务之间共享数据库

“在构建我们的解耦合服务时,我们允许我们的开发团队构建自己的数据库,为我们的(后端系统)提供数据,这可限制对其他开发团队的依赖性,”Bercher说。

“我们的开发团队将他们书写的内容推送到后端,供其他人使用,然后我们的数据团队会管理这些信息,”Bercher说。“这延续了即插即用的概念。如果您需要更换某一服务,只需将其取出并插入新服务即可。这就像更换灯泡,只是稍微复杂一点。”

由于微服务在设计上是模块化的,因此开发过程主要是即插即用,从而可以非常轻松地解决可能出现的任何问题。

“因为代码不会在整个平台上传播,我们可以快速将问题隔离到一个特定的源,然后在微服务中对其跟踪,”Bercher说。“通过允许对每个微服务进行零碎的更新和升级,可以轻松更新应用程序。你能想象一次升级一个系统而不进行大规模替换吗?仅这一概念就彻底改变了系统开发。”

SBD公司在美国各地设有开发团队,可以增强微服务的优势。位于南卡罗来纳州查尔斯顿的团队成员具有更高的开发独立性,因为他们正在开发自己的微服务,并可将其加入解决方案中。

解决安全问题

与IT相关的任何其他事情一样,微服务也有自己的安全问题。

企业应该在软件开发生命周期的早期就要频繁地查找已知的漏洞,电子商务、支付和营销服务提供商数字湖公司(Digital River)的首席信息官瑞恩•道格拉斯(Ryan Douglas)说。

道格拉斯说:“对于我们在快节奏环境中工作的任何IT团队来说,一个重要信条是识别和修复本地解决方案以及第三方软件的漏洞。”“这对维护安全至关重要。对软件生态系统采取全局方法,了解它如何协同工作以及潜在问题区域所在,这是至关重要的。”

道格拉斯说,使用微服务时,软件补丁部署更容易测试。“而且这不仅适用于自己开发的代码,”他说。“IT工程师可以在自己开发软件的同时测试第三方软件的漏洞。一旦发现漏洞,可以比以前的单一代码结构更快地部署修复程序。”

避免出现复杂情况

DXC Technology公司是在CSC公司和惠普企业部门合并后成立的一家IT服务提供商,该公司的应用服务首席技术官JP Morgenthal说,复杂情况在大型微服务部署中很容易发生。

相关阅读

焦点图文

关于我们 | 广告服务 | 商务合作 | 网站地图

版权所有 Copyright(C)2018-2020 苏州骐云跃网络科技有限公司,未经授权禁止复制或建立镜像,否则将依法追究法律责任!
声明:我们不做任何形式的代客理财及投资指导,凡是以蓝筹金融网名义做股票推荐的行为均属违法!
广告商的言论与行为均与蓝筹金融网无关!股市有风险,投资需谨慎。
苏公网安备 32050502000166号
苏ICP备14018528号
商务合作:联系我们

蓝筹金融网版权所有