华为云开发者沙龙-深圳站 演讲嘉宾:刘云华
为什么需要微服务
AI最终还是要结合我们实际应用,目前各行各业数字化转型越来越快,最终数字转型的目的就是应用,华为近几年在微服务方面也有了突飞猛进的进步。比如devops,华为手机的浏览器、一些APP都是通过它来做的。
业务变革和创新
下图是与过去相比业务的变革,左边是一些APP的迅速普及,让大部分人不再需要出门带现金,一部手机就可以:右边图是一些节日活动等营销措施带来的利润增长,在这些现象的背后,引发了两种启示,第一个是传统业务数字化、云化已是不可逆的趋势,比如让大家再重新回到传统的现金交易,大家会特别不适应,无法再适应新时代要求;第二个是流量不可预知性已经成为常态,我们无法确定什么时候浏览人数会达到上限,这就对我们的系统提出了新的要求,需要我们将服务器基于云端进行。
应用架构的变迁
因为业务变化的诉求,带来了应用架构的变迁,从架构发展至今大概可以分为三代,第一代是单体架构,出现在20年以前,那个时候软件没有那么多,需求也比较单一,只需要一个单体架构就可以;到第二代是SOA架构,随着业务需求增多,企业可能需要SOA的这种架构,实现业务服务化,通过ESB进行系统集成,把业务集成在一起;到现在随着互联网的全面发展,有了微服务架构,提供各场景的应用架构。
微服务带来的好处和挑战
微服务架构使服务模块的边界更清晰,支持独立部署,允许技术多样性,有了微服务可以混合使用多种编程语言、开发框架和数据存储技术。在带来好处的同时也相应的提出了一些挑战。微服务架构其实也是分布式架构的一种,提高了开发者门槛,编程难度更大,对于分布式系统来说保持一致性更难,其次是增加了运维复杂性,需要一个成熟的运维团队来管理大量需要频繁部署的服务。
华为云微服务解决方案
华为云为解决上面的挑战,提出了“咨询+框架+平台+工具+生态”的解决方案。如下图,首先我们创建微服务是需要一个框架的,我们把一个应用拆分成几个微服务之后,微服务之间的发现、调用、负载均衡以及容错容断,这些能力是分布式基础的能力,不可能让开发者们都去接触,这些需要集成在框架中。华为云将多年的自己开发框架拿出来供企业使用,还有一些国外其他的一些框架,除此还有一种比较火的istio,它是非侵入式的。微服务开发完后我们还需要一个平台来做生命周期管理、微服务管理、治理、运维或环境管理等等。除了平台以外,我们还需要一些工具,包括设计开发、构建、部署、测试、发布上线和监控运维将整个过程串起来。后面呢我们也提供了微服务咨询,为什么会提供这样的一个服务呢?我们通过和各行各业的客户交流过程中发现,仅仅是提供工具给他们解决问题是远远不够的,他们需要微服务的一个整体的转型,微服务其实除了框架、工具,还涉及到流程和人的能力,而这些转型仅仅靠工具是搞不定的,这就需要经验的传承,所以华为云还推出了咨询服务。在咨询服务里,提供了各种专家系统比如微服务的拆分系统,微服务管理等等。通过这些来更好地帮助企业做微服务的分析、管理等等。接下来我们让我们分开详细的来谈一谈。
微服务框架
华为云微服务框架提供了ServiceComb、Spring Cloud和Service Mesh多种解决方案,降低成本。
微服务生命周期管理
将它拆成两部分,开发和运维,开发包括创建、编码、编译、构建、部署、测试、发布等等,运维包括部署、日志、告警、诊断、治理等等。
微服务DevOps
基于servicestage流水线实现应用全流程“自助式”开发、集成、验证与上线。分为‘α‘、’β‘、’γ‘三部分。开发人员首先会需要一个本地开发环境,这个环境叫做“α“环境,开发完以后我们需要做一个集成,这个时候叫做’β‘环境,再向前推就到了’γ环境‘,和生态环境类似的一个主网环境,经过这个之后就到了生态环境,对于一些重大的、复杂的变更,我们还需要一个维度环境,这样才能保证我们应用的正常开发。
微服务治理
适用于电商、游戏、教育等有明显波峰波谷场景的应用,可以实现分布式系统细粒度治理和高可用保障。
场景模拟
场景一:我们是一家新成立的创业公司,急需推出一款新的应用,这款应用采用微服务架构设计,当前微服务划分已经完成,需要立即开始编码。接下来就需要创建这样的一个微服务。我们来演示下如何用华为云平台来创建这样的一个服务。登录华为云官网在产品里找到应用插件的第一个微服务应用平台点开,如下图:
跳转成功后,点击立即使用,进入微服务云应用平台,在持续交付里找到工程,点击创建,创建基于模板的。然后选择开发语言(华为云提供了7种流行的可供选择的语言),框架,和部署系统,然后配置信息。配置信息包括工程名称和代码来源(代码托管在哪里如github、devcloud等),这里以GitHub为例,第一次配置需要关联组织和仓库名称。然后部署集群,实例个数,消耗资源、访问方式等等。配置结束后点击部署,这样就配置好了。
操作比较简单,但是背后做的事情比较复杂。部署成功后,他还会自动生成一个构建任务以及生成了一个流水线。我们在创建的工程页面点击源码地址他就会跳转到我们GitHub界面。我们可以看到它自动创建了src文件、Dockerfile和pom。接下来开发者只需要将代码下载到本地做相关业务的开发。
回到华为界面,点击部署,我们可以看到相关流程的工作日志。
在发布界面我们可以看到整个微服务的流水线。在这里面我们可以看到代码刷新,以及流水线的构建部署,自动化的串接在一起。流水线部署成功后,我们回到应用平台界面,在应用管理的列表里可以看到应用的名称、部署系统、类型、状态等等。点开后我们可以看到监控信息等等,如下图。
微服务创建好后,我们可以在基础服务里面有个servicestage engine点开,在控制台里的服务目录里的服务列表里面看到,点开后可以看到他的详细信息。整个开发环境的创建不超过几分钟就完成了。
场景二:应用上线后业务稳步增长,开发团队也在扩展,不断有新的同事加入,他们需要搭建自己的开发环境。具体步骤和场景一类似,具体不同的是第一步,在创建工程界面选择已有仓库创建,后面的流程是一样的。
场景三:WEB应用上云,公司需要扩张市场,收购了以音乐wab需要将它迁移到云上。在华为云上操作也是非常简单的,在微服务云平台页面,找到应用列表,点击创建,选择web应用。它的部署配置比较简单,这里就不做演示。
场景四:随着应用的不断丰富,需要一个平台来整合多个技术栈。它的部署与上图相似,在上图中选择servicecomb或spring cloud里面提供了多个选择。
场景五:微服务治理,通过华为云服务可以解决负载均衡、熔断、降级等问题。
天气预报系统
下图是开发的天气预报系统,可以查看世界上任何城市的天气状况,在右边可以看到该城市的温度、风向等等。
在服务治理里可以看到该系统的拓扑结构,里面包括吞吐量、时延、运行是否正常,系统趋势图等等。下面有治理的能力,这里提供了两个版本0.2和0.3,刷新天气预报系统会看到增加了紫外线检测功能。降级是指把不需要的微服务关掉,这里将未来五天检测功能关掉,做个降级策略,点确定即可。刷新列表会发现未来五天的就没有了。如果想让指定城市显示紫外线功能,到微服务基本信息发布规则里,做一个自定义规则即可。华为云也提供了限流服务,选择指定服务,在右边进行限流。在华为云平台进行这些操作显得非常简单,但如果脱离华为云就比较复杂。
- 点赞
- 收藏
- 关注作者
评论(0)