深入浅出: 理解云原生基本原则


深入浅出: 理解云原生基本原则


云原生指的是一个敏捷的工程团队,遵循敏捷的研发原则,使用高度自动化的研发工具,开发基于云基础设施和服务的应用以满足快速变化的客户需求 。这些应用采用弹性,可扩展和高可用的架构 。这个工程团队通过高效的运维提供这一应用服务,并且根据线上反馈不断地对服务进行迭代改进 。
深入浅出: 理解云原生基本原则


云原生应用的特征
  • 普遍可访问(Universal Availability)–服务可在任何地方从多前端访问 。
  • 高可用性(High Availability)–基本服务随时在线 。升级扩容服务无中断 。单点失败影响范围小 。失败触发自动恢复 。
  • 高扩展性(Scalability)–服务可以随业务需要随时迅捷线性伸缩 。
  • 自动弹性伸缩(Elasticity)–服务可以随业务需要按定义自动伸缩 。
  • 可监控(Observability)–可以通过运维工具实时收集健康信息 。
  • 安全性(Security)–高度安全,可抵御常规威胁 。
  • 可迁移性(Deployable to Different Cloud Suppliers) –基础设施分离 。易于迁移到不同的云计算供应商 。
  • 快速迭代(Fast Iteration)–服务更新快速频繁 。创新速度提高 。
  • 演进式设计(Evolutionary Design)–持续改进
云原生的4大支柱
  • 团队与流程
  • 架构
  • 工具
  • 运维

深入浅出: 理解云原生基本原则


云原生的组织和流程
  • 小团队开发(2-pizza Team)
  • 全栈团队(Full Stack Team)
  • 研发与运维的结合(DevOps)-端到端的责任(End to End Ownership)
  • 去中心化(Decentralization) -下放技术决策权 。
  • 敏捷的研发流程(Agile Development)
云原生的架构
  • 云化微服务架构(Micro Service Architecture)–性能专注,系统组成部件高度解耦 。独立开发,快速部署,仿真测试,实时运维,资源独立 。系统组件化 。组件独立化 。
  • 基于云基础设施和服务(Based on Cloud Infrastructure and Services)–通过按需自获取或释放的云基础设施(计算,网络,存储)和服务 。
  • 分布式云化部署(Distributed Deployment)–服务部署在分布式的云基础设施上 。快捷全球上线 。
  • 无状态(Stateless)–请求可以由任何服务器处理 。单点失败对服务功能无影响 。
  • 无本地依赖(Localless)–依赖其它云资源,比如云存储(CloudData Service),云计算资源,基于云的缓存,消息队列等等云服务 。
  • 可水平扩展(Horizontal Scalable)–应用性能可以随调整通用性服务器数量得到线性调整 。
  • 冗余性(Fault Tolerance)–利用多点部署,负载均衡(ELB) 。单节点失败对服务无影响 。
  • 服务注册与发现(Service Registration and Discovery)
  • 自动弹性伸缩(Auto Scaling)–服务可以随业务需要按定义自动伸缩 。
  • 去中心化(Decentralization)–开放分布式系统 。独立数据存储 。
云原生的工具