“Let’s go”
计算、存储、网络
集群管理、服务发现、容器编排
云原生
松耦合的微服务:通过轻量级协议(例如HTTP)进行通信。
无状态且可规模化部署:将状态存储在数据库或其它外部实体中。无论是集群内还是跨集群的实例都可以访问并同事处理请求。
故障的容忍性和弹性:应用程序跨多个物理数据中心部署,自由启动、关闭和迁移
云计算
基础架构即服务(Infrastructure as a Service, 即IaaS)
基础架构只负责到基础架构层面,它是对计算、网络和存储资源的抽象,并提供这些基础资源的访问和监控服务。 类似虚拟机的概念(无os),如何使用该虚拟机由用户自己负责。
平台即服务(Platform as a Service, 即PaaS)
除提供基本的基础架构服务外,云平台会依据应用部署的目标环境分配存储,构建应用接入网络。应用接入网络解决应用如何访问的问题, 通常包含负载均衡配置、域名服务配置等。 针对每个实例,除了安装操作系统,还提供了一些辅助应用部署和运行的软件。通常PaaS平台会为特定应用类型如Tomcat、nodejs等提供中间件, 应用启动配置脚本和应用分发代理。 PaaS解决问题的目标是面向应用的,一旦通过PaaS创建应用实例,则网络拓扑已经搭建完毕,中间件和文件分发系统已经构建在操作系统中, 用户只需要部署代码即可访问应用。
PaaS平台更贴近端到端管理应用的场景,但也有明显缺陷: (l)通常虚拟机只包含操作系统和中间件,不包含应用代码,因此虚拟机的(Provision)和代码部署(DePloy)分属于不同环节。而这两个功能都不是基础云平自带功能,因此企业需要依据自己的现实业务需求重新构建。 (2)基于虚拟机的文件分发没有统一的解决方案,应用包上传至文件服务器,再序分发代理拉取,也需要自主开发。 (3)需要单独构建日常运维所需要的功能,比如监控、故障转移、扩容缩容等,虚拟机的构建和代码的部署分离使得整个过程变得臃肿而缓慢。 (4)PaaS尝试在个庞大的基础云平台基础上再构建一个庞大的应用管理系统,之间有明显边界,这使得PdaS的维护成本很高。
软件即服务(Software as a Service, 即SaaS)
又称云应用服务。该模式下,软件已经部署完毕。云用户是软件用户,无需管理软件本身。 弊端是:云服务商提供的软件一般只做通用功能,而公司需求的软件有无数的定制化要求,选择SaaS意味着放弃了个性化要求。
声明式系统 和 命令式系统
命令式系统通常基于同步交互
声明式系统通常基于异步交互,最终一致性
TypeMeta
定义我是什么
Group
Kind
Version
MetaData
定义我是谁