持续演进的Cloud Native (读书笔记01)

简介: 观察任何一个企业都可以从三个角度出发,这三个角度分别是技术、流程、文化,三个方面都做好才能成为伟大的企业。Cloud Native也一样,需要从架构、研发流程、团队文化三个角度来实现,三者需要相互配合,缺一不可。

Cloud Naive 定义


如果非要给Cloud Native下一个定义,那么我认为,Cloud Native是一系列架构、研发流程、团队文化的最佳实践集合,以此支撑更快的创新速度、极致的用户体验、稳定可靠的用户服务、高效的研发效率。


Cloud Native 组成


观察任何一个企业都可以从三个角度出发,这三个角度分别是技术、流程、文化,三个方面都做好才能成为伟大的企业。Cloud Native也一样,需要从架构、研发流程、团队文化三个角度来实现,三者需要相互配合,缺一不可。Cloud Native的组成,如图


1.png


从架构的角度来讲,Cloud Native是以云和微服务架构为基础构建系统的,这里的云并不一定是公有云,也可以是私有云、混合云,云包含了敏捷基础设施及公共基础服务。除此之外,还需要考虑架构的质量属性。下图为Cloud Native架构的组成


2.png


Cloud Native成熟度模型


3.jpg


Cloud Native 原则


为失败设计原则


  • 从架构的角度讲,为失败设计同样重要,因为失败是不可避免的,我们希望失败的结果是我们预料到的,是经过设计的。
  • 因为失败是不可避免的,所以设计目标是预测并解决这些故障。


不变性原则


  •  实现不变性原则的前提是,基础设施中的每个服务、组件都可以自动安装、部署,不需要人工干预。每个服务或组件在安装、部署完成后将不会发生更改,如果要更改,则丢弃老的服务或组件并部署一个新的服务或组件。替换的速度远远快于修复的速度。


标准化原则


  • 如果我们都采用相同的微服务框架,那么服务之间的调用将变得非常容易。而且,团队间发生人员流动,也不再会因为换了一种框架而需要漫长的熟悉时间。当所有的日志打印都遵循某种标准的时候,对于排除故障,日志分析将非常重要。
  • 独立自主和标准化是一对互斥的原则,独立代表的是灵活、创新,而标准则代表效率、稳定,两者需要权衡。所谓独立自主是在一定的标准下实现的


速度优先原则


  • 效率更像一种“节流”方法,而速度是接近于“开源”的一种手段。当速度和效率发生冲突时,速度优先。


简化设计原则


  • 越是基础的服务,越需要稳定,越需要简化设计、简化运维。简化设计也是Amazon和Netflix的软件设计原则。

自动化驱动原则


  • 任何重复性的工作都应该自动化,只有真正拥抱自动化的时候,才能做到持续发布,才能做到更好的用户体验。

演进式设计原则


  • 架构是持续演进的,并非一蹴而就的。单凭设计阶段很难达到理想的目标,需要不断锤炼。初级阶段应该采用尽可能简单的架构,因为初级阶段对需求、规模等都不是十分确定,可以采用快速迭代的方式进行架构演进。很多互联网公司都强调架构演
相关文章
|
3天前
|
人工智能 搜索推荐 物联网
Android系统版本演进与未来展望####
本文深入探讨了Android操作系统从诞生至今的发展历程,详细阐述了其关键版本迭代带来的创新特性、用户体验提升及对全球移动生态系统的影响。通过对Android历史版本的回顾与分析,本文旨在揭示其成功背后的驱动力,并展望未来Android可能的发展趋势与面临的挑战,为读者呈现一个既全面又具深度的技术视角。 ####
|
4天前
|
人工智能 Cloud Native 安全
从云原生到 AI 原生,谈谈我经历的网关发展历程和趋势
本文整理自阿里云智能集团资深技术专家,云原生产品线中间件负责人谢吉宝(唐三)在云栖大会的精彩分享。讲师深入浅出的分享了软件架构演进过程中,网关所扮演的各类角色,AI 应用的流量新特征对软件架构和网关所提出的新诉求,以及基于阿里自身实践所带来的开源贡献和商业能力。
|
10天前
|
Kubernetes Cloud Native Ubuntu
庆祝 .NET 9 正式版发布与 Dapr 从 CNCF 毕业:构建高效云原生应用的最佳实践
2024年11月13日,.NET 9 正式版发布,Dapr 从 CNCF 毕业,标志着云原生技术的成熟。本文介绍如何使用 .NET 9 Aspire、Dapr 1.14.4、Kubernetes 1.31.0/Containerd 1.7.14、Ubuntu Server 24.04 LTS 和 Podman 5.3.0-rc3 构建高效、可靠的云原生应用。涵盖环境准备、应用开发、Dapr 集成、容器化和 Kubernetes 部署等内容。
35 5
|
2月前
|
Kubernetes Cloud Native Java
探索未来编程新纪元:Quarkus带你秒建高性能Kubernetes原生Java应用,云原生时代的技术狂欢!
Quarkus 是专为 Kubernetes 设计的全栈云原生 Java 框架,凭借其轻量级、快速启动及高效执行特性,在 Java 社区脱颖而出。通过编译时优化与原生镜像支持,Quarkus 提升了应用性能,同时保持了 Java 的熟悉度与灵活性。本文将指导你从创建项目、编写 REST 控制器到构建与部署 Kubernetes 原生镜像的全过程,让你快速上手 Quarkus,体验高效开发与部署的乐趣。
39 0
|
Cloud Native
带你读《云原生架构白皮书2022新版》——ACNA(Alibaba Cloud Native Architecting)架构设计方法
带你读《云原生架构白皮书2022新版》——ACNA(Alibaba Cloud Native Architecting)架构设计方法
319 11
|
存储 关系型数据库 数据库
分布式系统开发实战:CloudNative架构,Cloud Native成功案例分析
有非常多的公司在使用Cloud Native,这些公司包括国外知名企业如Amazon、Netflix等,也包括国内的知名企业淘宝。本节介绍这些企业如何从小企业转变成为Cloud Native的实践者?
|
移动开发 Dart 前端开发
字节跳动技术整理:一文秒懂Flutter跨平台演进及架构
一、移动跨平台技术演进 1. 引言 移动互联网发展十余年,伴随着 Android、iOS 等智能手机的不断普及,移动端已逐步取代 PC 端,成为兵家必争之地。正所谓“得移动端者得天下”,移动端已成为互联网领域最大的流量分发入口,一大批互联网公司正是在这大趋势下崛起。
字节跳动技术整理:一文秒懂Flutter跨平台演进及架构
|
消息中间件 缓存 算法
持续演进的Cloud Native (读书笔记03)
可靠性公式:A=MTBF /(MTBF+MTTR)。其中,MTBF的全称是Mean Time Between Failure,即平均无故障工作时间,指上一次故障恢复后开始正常运行到这次故障的时间平均值。MTTR的全称是Mean Time ToRepair,即平均故障修复时间,是指从出现故障到完全恢复的这段时间。
持续演进的Cloud Native (读书笔记03)
|
存储 缓存 网络协议
持续演进的Cloud Native (读书笔记02)
微服务架构并不是什么技术创新,而是开发过程发展到一定阶段对技术架构的要求,是在实践中不断摸索而来的。
持续演进的Cloud Native (读书笔记02)
|
消息中间件 缓存 监控
持续演进的Cloud Native (读书笔记04)
横向扩展(scale out)也叫水平扩展,指用更多的节点支撑更大量的请求。例如如果1台机器支撑10 000TPS,那么两台机器是否能支撑20 000TPS? 纵向扩展(scale up)也叫垂直扩展,扩展一个点的能力支撑更大的请求,它通常通过提升硬件实现,例如把磁盘升级为SSD。