1、优点:
- 开发简单,集中式管理;
- 基本不会重复开发;
- 功能都在本地,没有分布式的管理和调用消耗 。
- 效率低:开发都在同一个项目改代码,相互等待,冲突不断;
- 维护难:代码功功能耦合在一起,新人不知道何从下手;
- 不灵活:构建时间长,任何小修改都要重构整个项目,耗时;
- 稳定性差:一个微小的问题,都可能导致整个应用挂掉;
- 扩展性不够:无法满足高并发下的业务需求 。
- 提高敏捷性:及时响应业务需求,促进企业发展;
- 提升用户体验:提升用户体验,减少用户流失;
- 降低成本:降低增加产品、客户或业务方案的成本 。
目的:有效的拆分应用,实现敏捷开发和部署 。
文章插图
关于微服务的一个形象表达:
文章插图
- X轴:运行多个负载均衡器之后的运行实例;
- Y轴:将应用进一步分解为微服务(分库);
- Z轴:大数据量时,将服务分区(分表) 。
- SOA喜欢重用,微服务喜欢重写;
- SOA喜欢水平服务,微服务喜欢垂直服务;
- SOA喜欢自上而下,微服务喜欢自下而上 。
2、优势:消除了对传统的海量持续在线服务器组件的需求,降低了开发和运维的复杂性,降低运营成本并缩短了业务系统的交付周期,使得用户能够专注在价值密度更高的业务逻辑的开发上 。
3、内容:目前业界较为公认的无服务器架构主要包括两个方面,即提供计算资源的函数服务平台 FaaS,以及提供托管云服务的后端服务 BaaS 。
函数即服务(Function as a Service):是一项基于事件驱动的函数托管计算服务 。通过函数服务,开发者只需要编写业务函数代码并设置运行的条件,无需配置和管理服务器等基础设施,函数代码运行在无状态的容器中,由事件触发且短暂易失,并完全由第三方管理,基础设施对应用开发者完全透明 。函数以弹性、高可靠的方式运行,并且按实际执行资源计费,不执行不产生费用 。
后端即服务(Backend as a Service):BaaS 覆盖了应用可能依赖的所有第三方服务,如云数据库、身份验证、对象存储等服务,开发人员通过 API 和由 BaaS 服务商提供的 SDK,能够集成所需的所有后端功能,而无需构建后端应用,更不必管理虚拟机或容器等基础设施,就能保证应用的正常运行 。
文章插图
三个less感觉很好:
- Codeless 对应的是服务开发,实现了源代码托管,你只需要关注你的代码实现,而不需要关心你的代码在哪,因为在整个开发过程中你都不会感受到代码库和代码分支的存在 。
- Applicationless 对应的是服务发布,在服务化框架下,你的服务发布不再需要申请应用,也不需要关注你的应用在哪 。
- Serverless 对应的则是服务运维,有了 Serverless 化能力,你不再需要关注你的机器资源,Servlerless 会帮你搞定机器资源的弹性扩缩容 。
架构师管理架构双赢模型
文章插图
架构结果管理
文章插图
优秀架构师必须掌握的几种架构思维架构的本质是管理复杂性,抽象、分层、分治和演化思维是我们工程师/架构师应对和管理复杂性的四种最基本武器 。
最近团队来了一些新人,有些有一定工作经验,是以高级工程师/架构师身份进来的,但我发现他们大部分人思维偏应用和细节,抽象能力弱 。所以作为团队技术培训的一部分,我整理了这篇文章,希望对他们树立正确的架构设计思维有帮助 。我认为,对思维习惯和思考能力的培养,其重要性远远大于对实际技术工具的掌握 。
推荐阅读
- 阿里资深架构师:同样是数据中台,为什么差距那么大?
- 每个架构师都知道的康威定律,你确定不来看看?
- 制茶大师博物馆开讲
- 茶老师的自我修养
- 茶老师吴语大梅禅茶桃然云水
- 茶老师吴瑜如元朱
- 听诊器的发明者雷奈克医生是哪国人 听诊器是法国医师什么于什么年发明的
- 茶艺师 绝不是简单的端茶送水
- 师父|“中国钓王”的疯狂人生
- 茶文化GAI大师还是帮派大师