项目复盘、扩展和应用

Posted by WZhong on Tuesday, January 21, 2020

TOC

项目复盘

  1. 目标复盘 之 Dev

    • 掌握微服务架构和前后端架构设计

      • 第二章分析了整体架构设计:在实践中,可根据实际业务需求,采用微服务架构思想,首相将业务领域划分出多个微服务,然后再设计并给出整体应用的架构;第二章中还对dubbo、spring cloud、kubernetes这些主流微服务开发框架和平台进行了全面的比对,以作出合理的技术栈选型,为进一步开发微服务打下平台和框架基础

      • 前后分离架构主要是由网关+安全框架配合实现,在第四、五章单独分析了

    • 掌握基于Spring Boot搭建微服务基础框架

      • Spring Boot是业界微服务开发的主流框架之一,但是真正开发生产级微服务之前,仍需要对Spring Boot进行一些必要的封装,以适应业务和架构需求;这些封装沉淀下来,就是一个企业的微服务基础框架,标准化和重用这个框架可大大提升后续开发微服务的效率

      • 基础框架主要包括服务开发框架、网关、安全认证框架;第三章介绍了如何在Spring Boot基础上做一些轻量级的封装,并将这些封装作为后续开发微服务应用的开发框架;第四章先介绍了微服务网关是如何演化出来的,再剖析了一个最简网关faraday的架构设计和实现;第五章介绍了安全认证架构从单块到微服务的演进历史,再剖析了微服务的安全认证框架的设计细节。完全理解第三、四、五章,就具备了开发微服务基础框架的能力

    • 进一步提升Java/Spring微服务开发技能

      • Java/Spring是软件开发的绝对主流

      • 第三章介绍了如何在Spring Boot基础上做一些封装使其成为一个微服务开发的基础框架;第六章演示了如何使用Spring提供的测试支持,对微服务进行单元、组件、集成测试等;第十一章对Spring Boot开发的微服务做了全面的剖析

    • 掌握Spring Boot微服务测试和相关实践

      • 微服务测试的一般性方法,采用分而治之的策略,先对每个微服务进行测试,测试时按照分层的方式进行隔离测试,测试过程中采用mock等技术手段隔离依赖,以简化测试;每个微服务都通过测试后,再进行整个应用的集成测试

      • 第六章对Spring微服务应用的测试方法进行了分类,案例说明单元、组件、集成测试的方法,也介绍了测试最佳实践和常用工具

    • 理解SaaS多租户应用的架构和设计

      • SaaS应用不同于一般应用,需要支持多租户和租户隔离,案例中采用的方案是:由包括数据库层、安全框架、网关层多个层次配合实现

      • 案例采用共享数据库表的逻辑隔离机制,实际企业中的SaaS项目可能需要更强的隔离性,可考虑表隔离、数据库隔离等物理隔离机制

  2. 目标复盘 之 Ops

    • 理解可运维架构理念和相关实践

      • 第八章讲述了生产就绪(Production Ready)和可运维(Ops Ready)架构理念,同时介绍了常用的微服务配置和监控相关的工具,以及一些相关实践

      • 强化Production Ready的意识,记住Production Ready的检查项,项目编码完成后到上线前,严格依照检查项进行比对检查

    • 掌握服务容器化和容器云部署相关实践

      • 手工方法部署案例微服务应用,指出这种方式的繁琐、低效、易出错

      • 引入docker和docker-compose,实现了案例应用在本地开发环境中的一键部署

      • 第九章进一步引入云原生应用的架构和理念,深度剖析了k8s云原生平台的架构的新概念和网络原理;在此基础上,展示了将案例应用一键部署到本地的k8s环境,以及部署到aliyun的k8s环境

      • 微服务和云原生相辅相成,都是未来应用架构的发展趋势;而k8s则是未来微服务和云原生应用的标配的平台

      • 可以设计云原生的微服务应用,并能够将应用快速的自动部署到k8s容器云平台

    • 理解云时代的软件工程流程和实践

      • 软件工程化一直在不断演进中,经历了传统的经典软件工程、现代的敏捷软件工程,现在随着云原生、微服务应用的兴起,来到了云时代的SaaS软件工程,相关的工程流程的技术实践一直在不断推陈出新

      • 案例应用的设计,从业务需求、架构设计、框架搭建、服务实现、服务测试、可运维架构,一直到容器云的部署,相当于经历了一个云时代的软件工程的流程,过程中给出了各个流程环节的一些业界最佳实践

      • 同时,通过全流程的案例开发过程,进一步理解DevOps研发运维一体化的视角和理念

项目扩展和应用

  1. 扩展

    • HTTPS:生产环境需要启用HTTPS

    • 测试

      • 编码规范
      • 测试覆盖率
      • 性能测试
    • CI/CD:把构建、测试、打成镜像、部署到k8s云环境自动化起来,如使用Jenkins使其自动化

    • 监控

      • Log/Trace/Metrics/Alerting:埋点需要更精细化
      • 业务指标监控:如用户注册、登录数量、下单数量等核心业务指标
      • 端用户体验监控:使用工具,如监控云服务
      • 网站分析Web Analytics:用户体验、网站使用情况做分析,如统计PV/UV
    • 帮助文档

  2. 应用

「真诚赞赏,手留余香」

WZhong

真诚赞赏,手留余香

使用微信扫描二维码完成支付