设计整合微服务以减少风险

设计微服务减少项目风险,需要重构不必要的代码和产品复杂性
81720229AMET
运动: 领先科学QQQ
人贴注玻璃

联邦IT

TetraFederalITGroup设计精锐集中微服务环绕业务能力,因此不设计或搭建不必要的特征或功能,降低项目风险,需要重构不必要的代码和全产品复杂性

搭建定义微服务

跳入实施程序前,团队努力理解所有服务全景并理解服务交互方式以避免特征爬虫和不必要特征不符合业务需求Tetra技术工程师设计微服务时,开始将每项服务分解为商业能力并让利害相关方协作处理事件事件暴动使项目执行人和域专家能够描述整个产品或系统所发生事件这使企业和技术人员都能够完全控制问题空间并使用易理解描述而非技术术语设计产品服务

使用Postit注解,团队策略整理事件 粗略排序如何发生事件自成一体并自描述而不考虑实施细节做此演练时绘制因果性图以探索事件发生时和顺序所有事件记录后,团队再探索上下文中出错之处帮助识别缺失事件 这是一种强大的技术 探索边界条件和假设

下一步是文档用户人数、命令和汇总团队现在可以看到全系统或产品如何工作满足所有需求大全图这种方法帮助设计微服务,因为每个事件或小事件都可以为微服务清晰定义技术利益攸关方和非技术利益攸关方都可用事件暴动,全系统事件描述消除利益攸关方参与设计过程的障碍,因为技术实施细节不讨论这种方法对现有系统或新应用效果良好

设计指南搭建微服务

团队一旦定义并组织所有服务后,可专注于每项微服务技术细节提供下列指南帮助建立微服务

REST应用编程接口
每种微服务需要有一个发送和消耗数据机制并与其他服务整合为确保顺畅整合,建议向API显示适当的功能响应数据和格式

高效管理流量
微服务需要处理千千万万次从其他服务请求时,无法处理负载,无法满足其他服务需求推荐使用通讯服务像rabitMQ或Redis处理交通载荷

维护单个状态
服务需要维护状态时,服务可定义数据库需求满足需求数据库不应跨微服务共享,因为这有违脱钩原则。数据库表变换微服务可能对另一服务产生消极影响

使用容器部署
微服务安装容器 只需要单工具,像Docker或OpenShift等容器化工具 部署整个系统或产品

整合进DevsecOps管道
每种微服务应维护自己的独立搭建并融入总DevsecOpsCI/CD管道这使得很容易对单个服务自动测试并按需隔离和修复错误或错误