微服务架构搭建,什么是微服务架构
微服务架构搭建,什么是微服务架构详细介绍
本文目录一览:
- 1、
- 2、
什么是微服务架构
微服务架构,作为云中部署应用与服务的一种创新技术,正逐渐成为行业关注的焦点。众多讨论围绕着如何利用容器或其他技术以实现微服务的最佳实践展开,而红帽公司则着重强调了API在微服务架构中的核心地位。
微服务架构允许各个服务在“独立的程序环境中”自如运行,它们之间通过“高效轻量级的通信设备和HTTP型API”进行无缝连接与交互。这一特点的关键在于每个微服务能够在其专属的程序空间中独立运行,这一特性使得服务能够被有效地公开并融入微服务架构中,与传统的在现有系统中分布API的方式形成鲜明对比。
在服务公开的过程中,微服务架构展现出强大的灵活性。众多服务都可以被内部独立进程所限定和掌控,这为系统的管理带来了极大的便利。当需要为任何服务增加特定功能时,无需对整个系统进行大规模的改动,仅需在相应的服务中进行局部调整即可。这种精细化的操作方式确保了只对特定服务进行功能增强,而不会对整体进程造成任何影响,从而实现了系统的高效运行和持续进化。
微服务改造—架构设计
关于为何构建微服务架构的系统设计以及如何构建的疑问,诸多文章已经进行了详尽的阐述。我本人也有一篇文章涉及此话题,若有兴趣的同学可以一探究竟。而本文的主旨,则是介绍在进行微服务改造之初,如何确立一个理想的目标架构。这一目标架构如同航标,指引着我们后续的所有改造动作,确保微服务改造的实施方向正确。
本文的素材来源于我司微服务改造目标架构的生成过程,这段经历既具有挑战性又令人印象深刻。虽然写成文章后可能看起来有些像是流水账,但我希望在微服务改造完成后再回看这篇文章时,能发现最初的架构设计已完美落地,那将是一种无比的满足感。
本次讨论会的参与者包括了技术部门的架构组和各业务能力开发组的核心成员,同时我们还邀请了华为的软件专家进行现场指导。参会人员中,既有对公司现状了如指掌的架构师,也有经验丰富的一线开发人员。每个人心中都怀揣着对美好愿景的期待,大家的思维在此碰撞、融合,汲取各自的优秀方案,最终形成了一个相对完善的目标架构。
微服务改造并非一蹴而就的简单任务。从其他公司的改造历程来看,类似规模的系统改造往往需要两年的时间。因此,为了确保整个微服务改造过程能够有序进行,我们需要一个切实可行的规划。我们的计划如下:这一计划看似稳妥,经过微服务的改造后,我们的业务系统结构将更加合理,相互之间的耦合度将降低,业务边界将更加明确,依赖关系将形成一个清晰的树形结构。
我们公司作为一家第三方支付企业,业务系统范围及内部架构构成对于公众而言并不陌生。在发展初期,由于业务驱动,我们建设了众多系统,其中不乏独立建设的情形。这导致系统建设有时显得臃肿,系统之间存在大量的不合理调用,调用关系图看起来十分混乱。同时,功能重复建设的问题也屡见不鲜,造成了资源的浪费。
目前架构中已有部分系统完成了重构,但这些重构工作往往是独立进行的,缺乏统一的规范。在技术选型和设计上,各系统团队一般会选择他们较为熟悉且认为较为稳妥的框架进行开发。在架构设计上也是各有千秋,有的系统采用了微服务设计模式,有的则选择了SOA架构,甚至有的只是进行了前后端分离设计。
尽管我们在系统建设初期有一定的规划,但业务的快速发展使得我们有时不得不迁就业务需求而忽视了一贯的设计原则。其结果就是无论是已重构还是新建的系统都可能存在业务边界不清晰、功能重复开发、整体零散的问题。因此我们要采取一种新思维进行解决——基于微服务架构的设计思想来指导我们的系统改造工作。
我们将从以下几个方面着手:首先剥离基础服务以形成统一的服务能力;其次完善各种支撑系统的高性能、高可用基础设施;最后使业务系统能够更加专注于业务逻辑的实现。同时我们还将利用领域驱动设计的思想来明确各系统的业务边界。经过这样的规划和设计后我们相信能够实现系统架构的完美升级。
微服务架构为我们提供了方向性的指导并提出了几个重要的设计原则如:服务尽可能小、可独立部署、自动化部署和运维等。然而由于理解上的差异和公司现状的多样性每个公司在实施时都会有自己的特色和侧重点。在我司的讨论中我们针对如何具体实施微服务架构有了更深入的探讨尤其是业务边界划分方面存在的两个关键点——纵向分层后的边界划分和横向边界管理我们做了进一步的阐述与决策总结为下面几个方面:
针对标准的充值等基本功能我们将保证其在产品设计时即为“共享化”使其能为各类业务需求提供高效统一的服务支持而对于特定的特别定制需求比如特别设计的支付佣金接口则可在确保技术可行性基础上在产品层内直接实现与更底层的能力融合达到使用要求——此为分层之后的纵向边界问题所做决策的核心思路。
而对于那些通用但影响业务高层次操作的公共服务例如统一流水号和session管理这些应作为底层设施由专业团队负责维护开发并进行抽象化管理并保障各业务系统无障碍地调用避免其带来频繁且低效的技术交互提高业务运转效率——这是解决横向边界管理的重要方式之一同时避免潜在的性能瓶颈等系列问题也是有效进行产品优化的手段之一通过采用这样方法我司的微服务架构设计才得以逐步完善和优化最终形成了一套符合我司特色的目标架构设计图并在后续的改造中坚定实施推进从而在稳健的发展道路上稳步迈向业务的不断增长和客户需求的快速响应上做准备因此这也从另一面展示了为何企业整体架構在市场多元化变革趋势中存在生存竞争的本质基础更是决策力的最佳展现实现了向专业标准化作业流高质的变革为目标顺利开启下阶段的改进创新做好了扎实的前期准备接下来也将在此过程中对所有设计理念不断推敲