云架构是指构建云所需的所有组件和功能如何连接起来,以便交付供应用运行的在线平台。云被视为平台即服务(Pass),因为云提供商为用户提供了平台以及底层IT基础架构。
与传统的服务器相比,云平台可以将物理资源虚拟化为虚拟机资源池,灵活调用软硬件资源,实现对用户的按需访问。而且在运行过程中根据用户并发量的不同,实时迁移虚拟机资源,一方面保证提供高质量的服务,另一方面最小化资源成本,提高CPU,内存等利用率
以云计算为主导的技术路线,从IT系统建设的指导思想、方法论、研发管理过程来做出规划,从而形成与之相匹配的,技术组件、资源配置、系统设计模式,人员组织安排、开发部署方式、等一整套的技术组件和管理模式和软件架构的组合;通过最大限度的发挥云计算的优势,让应用程序的研发人员能够聚焦到实现业务逻辑上,而不是管理IT资源上,将资源模块化,进行资源解耦
微服务是一种分布式系统架构,是一种思想,是一种设计原则。
核心有两点:1,大的单体要拆小;2,拆小的微服务之间相互协同
将单体应用拆分为更小的组件或模块,这个组件或模块就是微服务。微服务拆分是纵向的,就是从底层的IT基础设施,到数据库,到应用中间件,到软件程序部署包,都能做到完全独立,可以对其进行单独的需求分析,设计、开发、打包、部署等,做到全部独立。实现各个微服务之间彻底松耦合,同时各个微服务之间又能够通过轻量级的Http Rest接口进行交互和协同。
DevOps(Development Operations),简单来说就是,自动化编译,打包,测试,然后部署。其核心是持续的集成和交付。利用一系列方法,组件,技术手段,通过对应的过程管理,对软件工程实现持续集成和持续部署的思想和方法论。核心内容是实现软件和IT基础设施的对接,自动部署,动态扩容(Pass, Docker);实现不同环境的自动迁移,满足高频的版本发布节奏(持续集成)
两个核心:Docker容器 + Kurbernates 的容器资源调度和编排。Docker是一个Laas资源层的组件,是基于虚拟机之上的更轻量化的资源隔离单元,虚拟机是独享一个操作系统,容器是架在操作系统之上的,多个容器可以共享一个操作系统,容器本身的体积会比虚拟机小很多。容器本身的创建销毁和调度的速度比虚拟机更快。
Kubernetes,简称 k8s,是一个开源的 Linux 容器自动化运维平台,它消除了容器化应用程序在部署、伸缩时涉及到的许多手动操作。换句话说,你可以将多台主机组合成集群来运行 Linux 容器,而 Kubernetes 可以帮助你简单高效地管理那些集群。
Kurbernates 优势: 使用 Kubernetes 的主要优势在于它提供了在物理机或虚拟机集群上调度和运行容器的平台。更宽泛地说,它能帮你在生产环境中实现可以依赖的基于容器的基础设施。而且,由于 Kubernetes 本质上就是运维任务的自动化平台,你可以执行一些其它应用程序平台或管理系统支持的操作,只不过操作对象变成了容器。
Kurbernates 作用:
docker 在 Kubernetes 中的角色: Docker 技术依然执行它原本的任务。当 kubernetes 把 pod 调度到节点上,节点上的 kubelet 会指示 docker 启动特定的容器。接着,kubelet 会通过 docker 持续地收集容器的信息,然后提交到主节点上。Docker 如往常一样拉取容器镜像、启动或停止容器。不同点仅仅在于这是由自动化系统控制而非管理员在每个节点上手动操作的。
服务网格下的微服务治理,去中性化的微服务治理仍然要有一个中心化的管控节点,其中实际的控制流和接口消息访问的消息流本身实现了分离。控制流,只管理服务的注册和发现,实际的接口调用和服务访问是不经过控制节点的。即使控制中心节点宕机,也不影响接口服务调用。
ServerLess的核心思路就是,用户不需要去关注底层的IT基础设施和资源,可以将更多的精力放在自己的业务逻辑上。
ServerLess的核心内容共就是后端即服务(BASS)和函数即服务(FAAS),达到的目标是,后端服务能力完整以后,前端的应用开发足够简单。
特性:弹性伸缩,按量付费的提点。
任何一个应用,我们部署到生产环境,形成一个容器实例以后,这个容器实例本身不需要再做任何的变化,是不可变的。如果业务需求发生了变更,我们需要基于容器镜像,重新生成一个容器实例,同时把旧的容器实例销毁掉即可。
对于生产环境,对软件的修改,都不是直接去操作命令,而是先写好yaml文件后纳入到配置管理,集中做管理。这样在出问题的时候,可以快速进行追溯和定位,方便进行回滚操作。
Docker是基于Go语言进行开发实现,一个开源的应用容器引擎。采用Linux内核的cgroup,namespace,以及AUFS类的Union FS等技术,对进程进行封装隔离,也可以实现虚拟化,隔离的进程独立于宿主和其他的隔离进程,因此也称其为容器。另外,容器自身对系统资源的额外需求也十分有限,远远低于传统虚拟机。很多时候,直接将容器当作应用本身也没有任何问题
虚拟机(VM)是一种创建于物理硬件系统(位于外部或内部)、充当虚拟计算机系统的虚拟环境
服务整合是使用虚拟机的首要原因。部署到裸机时,大多数操作系统和应用部署都只会使用少量的物理资源。通过虚拟化服务器,我们可以在每个物理服务器上设置大量虚拟服务器,从而提高硬件利用率。