传统 .net应用向微服务架构迁移的实践经验 v1.2Watermark_第1页
传统 .net应用向微服务架构迁移的实践经验 v1.2Watermark_第2页
传统 .net应用向微服务架构迁移的实践经验 v1.2Watermark_第3页
传统 .net应用向微服务架构迁移的实践经验 v1.2Watermark_第4页
传统 .net应用向微服务架构迁移的实践经验 v1.2Watermark_第5页
已阅读5页,还剩22页未读 继续免费阅读

下载本文档

版权说明:本文档由用户提供并上传,收益归属内容提供方,若内容存在侵权,请进行举报或认领

文档简介

China

.NET

Conf

2019.NET

Core

2019传统

.NET应用向微服务架构迁移的实践经验China.NETConf

2019议题123背景:项目介绍和难点分析落地:技术与管理经验分享创新:项目成果和总结China.NETConf

2019背景:X项目曾经面临的挑战项目是基于.NET构建的一套复杂的远程实验交付系统。自2011年以来,从最早的远程实验接入,到后来的的复杂实验业务场景交付,其重要性和担当的业务价值越来越大,但其技术架构发展较为缓慢,无法高质量满足当下多变的业务需求,在运行和维护中由于陈旧架构导致的问题较为突出,也不符合当前互联网化大背景下的技术架构发展方向。12

挑战一:业务需求越来越难以满足。X项目交付量从最初3500班天,X项目业务发展发展到2016年14500班天,要处理LS,AMS,NIS等多种业务。业务需求越来越复杂、差异化明显且具有多变性。相对地,X项目架构在过去四年内并未做任何升级改造,客户需求多以“打补丁”的方式满足,难以继续满足未来业务发展需求。业界技术架构变迁X项目运行维护挑战X项目架构发展情况312012年3月,

X项目二期:引入拓扑图式实验交互模式,增强整体可用性。挑战二:部分技术已经逐渐落后于行业发展。从行业趋势来讲,企业业务正面向互联网化转型,在

“高频率版本发布”、

“更加注重用户体验”等目标驱动下,企业架构更多的开始学习BAT,采用开放平台和技术,如

Linux,

Apache,

MySQL,Docker等;同时,在开发运维模式上,企业正在由传统的开发和运维分离,向开发运维一体化即DevOps转变。2挑战三:运维压力越来越大。当前架构涉及到的组件全部是自行部署和维护,平台、数据库、监控、应用配置、大数据等,对运维团队提出了较高的要求。具体表现为:底层组件无法跟随上层业务压力变化而变化,出现问题后定位过程时间长且难度高。2011201220132014201520162012年8月,X项目三期:引入执行引擎,逻辑分离,与设备管理平台对接等。X项目架构在过去四年主要是修修补补,没有实质性变化。2011年5月,原型验证阶段:引入虚拟应用交付技术。3背景:项目问题具体分析2016年8月,行云顾问组对项目进行了评估,与包括管理组、需求分析、PM、架构师、开发、测试、运维等多位同事进行了访谈,特别就不同角色对项目的痛点进行了识别,其中技术架构与流程相关问题较为突出,组织和管理方面问题也占有一定比例。分析:.NET

Framework

to

.NET

Core已有.NET代码和.NET

Core的兼容性如何哪些类型服务需要继续在.NET

Framework上运行数据库选型的考虑,依然SQL

Server还是要切换到MySQL面对新的语言、新的架构,开发人员知识转换难度设立团队的一些考虑,对需求的准确理解是“重中之重”议题123背景:项目介绍和难点分析落地:技术与管理经验分享创新:项目成果和总结China.NETCon落地:项目改造的主要方向•

最佳实践•

高度融合•

相辅相成落地:项目改造的具体方向落地:制定技术和管理规范代码规范:•••••••微服务度量标准(业务单一性等,原则:高内聚低耦合)微服务命名规范xxxx-yyyy-zzzz代码交付•••••代码配置分离API接口规范(GETPUT

POST

DELETE...)符合服务治理要求统一返回码开发技术栈选型监控指标方式标准化暴露工具契约(容错契约、去数据中心契约、消费者驱动契约)协助自动化检查(Sonar)模式(

代理模式,聚合模式,串行模式,分支模式,服务异步日志规范:消息模式,服务共享模式)••••生成日志的位置•容错(

舱壁隔离模式(生产环境/线程池),熔断模式(程序实现),强制日志id限流模式(计数、令牌、信号量-Semaphore),失效转移模式)日志格式patten(时间、模块、异常信息类型)日志级别(WARNING,DEBUG,INFO,ERROR...)••••••架构安全性数据共享镜像规范:报表需要••••镜像命名及版本规范服务间身份认证和授权健康检查镜像描述规范md5校验要求服务间依赖(不依靠ip地址等)镜像中不存储证书落地:项目微服务改造的切入点对于X项目,微服务改造并非‘推倒重来’,而是在过去几年运营的积累上循序渐进完成。‘实验预订’被选为微服务改造的切入点。落地:.NET

core

和传统.NET

并存根据服务组件的特点和需求,灵活交付到容器或是虚拟机环境.X项目.NETCore.NETfrmwk微服务微服务11个6个落地:应用商店

-

实现代码和业务逻辑的共享应用商店提供了面向普通用户的各类业务系统(如:OA、ERP、CRM等),同时也面向IT人员提供PaaS组件、微服务组件、测试工具、数据集等。用户可以分享自己制作的应用或是组件。秒极一键部署,可以与内部结算系统对接。落地:安全增强

云资源云资源安全:以更丰富的权限控制、更智能的网络管理和多租户隔离等方式实现云资源安全。发a运维开发b测试开用户行云权限体系组角色项目A项目B资源测试部署监控代码配置用例测试部署监控代码配置用例行云权限体系:是基于用户、组、角色、资源等维度的精细化权限认证体系。环境:开发(上海)环境:测试(深圳)环境:生产(北京)China.NETCon落地:安全增强

数据数据安全:一切皆在云上,实现线上开发、线上整改、线上发布。集成代码仓库,实现一步到位集中化管理1.创建项目3.开发、整改2.自动创建并绑定代码库6.自动拉取代码仓库4.部署9.监控应用工5.自动触发厂持续集成7.自动上传镜像8.容器化部署基于组、角色、环境等维度实现的精细化权限认证,用户只能查看或操作自己权限范围内的数据镜像仓库镜像安全:统一安全扫描,检测可能存在的安全漏洞,及时防范Cloud

OS落地:安全增强

镜像在本项目建设中,通过结合开源技术实现的自研组件,实现对容器云上承载业务应用的信息安全防护。1.

定期同步安全漏洞数据漏洞特征库该技术方案主要特点有:3.

与漏洞特征比对4.

发现问题马上报警1.

主动——定期同步公网CVE漏洞数据源,确保最新漏洞及时纳入本地特征库,主动及时发现问题镜像扫描报警通知CVE数据源2.

自动——由传统的人工判别演进到系统自动判别2.

分层提取镜像数据3.

全面——只要是入库的镜像都会经过扫描,3605.根据建议修复镜像度无死角修复漏洞4.

轻量——扫描组件在业务容器之外独立运行,对镜像库容器运行中业务毫无性能影响,方案轻量且扩展性强。6.推送修复好的镜像入库并更新运行中的应用静态镜像扫描机制落地:集成增强

-

技术平台与管理类平台交互创建需求#123基于MapReduce实现X样本数据分析创建项目关联Jira

Story

#123#123新增评论张三更新了架构图,点此查看架构图更新关联Jira

Story

#123SonarCube发现代码质量问题创建缺陷#124代码质量缺陷—潜在空指针异常码提交代关联Jira

Story

#123SonarCube测试通过关闭缺陷#124代码修正关联Jira

Story

#123,

Jira

Bug#124自动化测试执行失败创建缺陷#125自动化测试未通过,查看报告测试版本发布关联Jira

Story

#123关闭缺陷#125自动化测试通过,查看报告自动化测试执行成功代码修正关联Jira

Story

#123,

Jira

Bug#125生产Sanity测试闭需求#123执行成功生产版本发布关联Jira

Story

#123关Sanity测试通过,查看报告创建缺陷#126监控发现异常,Java

Exception

XYZ监控发现异常告警关联Jira

Story

#123落地:X项目采用的DevOps和微服务支撑平台总体架构12345组件拖、拉、拽可视化设计、编排、务为创新加速的开发服务12管理云端微服组件拖、拉、拽设计网页前端和微信小程序应用架构设计器设计器动化测试代码管理云应用商店前端Web

IDE自634页上编写代码在网以业务为中心定义和执行自动化测试方案务治理和全面支持DevOps方法论基于Docker容器技术采用K8S管理容器多集群和多云

Windows,

Linux应用交付

统一管理服安全保护容器的PaaS平台一键快速部署企业56应用到任意云端基于Docker,K8S构建的PaaS私有云落地:X项目物理部署架构落地:管理和团队同样重要!议题123背景:项目介绍和难点分析落地:技术与管理经验分享创新:项目成果和总结创新1:所见即所得

可视化“拖、拉、拽”式的业务架构编排把组件拖入画布并连线即可完成微服务架构设计高效性:微服务之间的连模块共享、重用大大提高创新效率接团队高效协作支持组件嵌套灵活性:拖动多语言、多技术栈的模块灵活组装、对接,满足多变业务需求经济性:避免相似模块的重复开发投入可视性:设计“蓝图”一目了然,可数据化归档,新成员快速开始简洁性:简洁、直观的方式搭建应用程序来自应用商店的组件China.NETConf

2019创新2:云端IDE

随时随地、安全地编写代码安全性:开发环境和代码都在云端,数字资产不落地确保信息安全高效性:

随时、随地打开网页即进入熟悉的编程环境,配置、工作区保持原样

支持传统IDE的各种交互功能,如关键字高亮、自动完成,API选择等等

可对开发者行为模式进行数据分析进而提升效率灵活性:

对终端设备要求极低,支持各种终端类型

支持权限控制下的远程编程

支持各种主流开发语言

对外包团队的灵活支持简洁性:

打开浏览器即可开发,无需配置复杂环境

架构设计、编写代码无缝对接

编码完成后即可发布到任意云端创新3:多云和跨云调度

以模块为粒度,应用和基础设施完全解耦商品浏览购物结算统一界面操作,无需切换部署环境。将不同业务模块部署到多个云环境。网关网关将应用的不同部分部署不同云,把购物车和数据库服务部署在企业的私有云,把商品浏览服务部署在公有云。两个服务之间通过CloudOS提供的跨云服务机制连接。专线或VPN调度器支持应用跨云迁移,在不中断服务的情况下,通过“小步推进,逐步替换”的方式,把应用迁移到不同云端。应用部署和调度控制器创新4:模块化分享和复用,让代码和业务逻辑也成为数字化资产。众多内部开发团队大量外部软件供应商众多内部开发团队大量外部软件供应商有效协作缺少有效项目分解把工业界成熟的“模块化”技术引入到软件开发中来,让不同的开发团队以“搭积木”方式构建应用。这些“软件模块”又可以在企业内部或是与兄弟单位间实现复用,避免重复开发、提高创新效率。模块化构建项目统一标准,无缝对接组件分享、复用互不兼容,集成困难相似功能点重复开发提高创新效率“模块化”也是应用程序充分享受多云部署收益的重要先决条件。应用软件越来越复杂维护难度越来越高应用软件灵活扩展运维越来越自动化快速响应业务业务需求无法快速满足成果:项目的可量化成果和收益主体开发语言.netcore

温馨提示

  • 1. 本站所有资源如无特殊说明,都需要本地电脑安装OFFICE2007和PDF阅读器。图纸软件为CAD,CAXA,PROE,UG,SolidWorks等.压缩文件请下载最新的WinRAR软件解压。
  • 2. 本站的文档不包含任何第三方提供的附件图纸等,如果需要附件,请联系上传者。文件的所有权益归上传用户所有。
  • 3. 本站RAR压缩包中若带图纸,网页内容里面会有图纸预览,若没有图纸预览就没有图纸。
  • 4. 未经权益所有人同意不得将文件中的内容挪作商业或盈利用途。
  • 5. 人人文库网仅提供信息存储空间,仅对用户上传内容的表现方式做保护处理,对用户上传分享的文档内容本身不做任何修改或编辑,并不能对任何下载内容负责。
  • 6. 下载文件中如有侵权或不适当内容,请与我们联系,我们立即纠正。
  • 7. 本站不保证下载资源的准确性、安全性和完整性, 同时也不承担用户因使用这些下载资源对自己和他人造成任何形式的伤害或损失。

评论

0/150

提交评论