zoukankan      html  css  js  c++  java
  • 云计算发展历程

    云计算模型

    云计算的模型主要有三种。每种模型代表着云计算堆栈的一个独特部分。

    AWS-Types-of-Cloud-Computing_Infrastructure-as-a-Service

    基础设施即服务 (IaaS)

    基础设施即服务有时缩写为 IaaS,包含云 IT 的基本构建块,通常提供对联网功能、计算机(虚拟或专用硬件)以及数据存储空间的访问。基础设施即服务提供最高等级的灵活性和对 IT 资源的管理控制,其机制与现今众多 IT 部门和开发人员所熟悉的现有 IT 资源最为接近。

    AWS-Types-of-Cloud-Computing_Platform-as-a-Service

    平台即服务 (PaaS):

    平台即服务消除了组织对底层基础设施(一般是硬件和操作系统)的管理需要,让您可以将更多精力放在应用程序的部署和管理上面。这有助于提高效率,因为您不用操心资源购置、容量规划、软件维护、补丁安装或与应用程序运行有关的任何无差别的繁重工作。

    AWS-Types-of-Cloud-Computing_Software-as-a-Service

    软件即服务 (SaaS)

    软件即服务提供了一种完善的产品,其运行和管理皆由服务提供商负责。人们通常所说的软件即服务指的是终端用户应用程序。使用 SaaS 产品时,服务的维护和底层基础设施的管理都不用您操心,您只需要考虑怎样使用 SaaS 软件就可以了。SaaS 的常见应用是基于 Web 的电子邮件,在这种应用场景中,您可以收发电子邮件而不用管理电子邮件产品的功能添加,也不需要维护电子邮件程序运行所在的服务器和操作系统。

    容器既服务(CaaS)

    容器既服务提供了一种完整的产品,其运行和管理皆由服务提供商负责。

    函数及服务(FaaS)

    函数既服务提供了一种完整的产品,其运行和管理皆由服务提供商负责。只需要前端用户写好逻辑调用函数,由后台来执行相应的工作如硬件部署,日志 数据库等都由内部自动调用注销,从而减少运维和后台来提升产品效率。

    后端即服务 BaaS

    后端即服务 BaaS,其实大家已经使用很久了,这里的后端,指的就是各种云产品和云服务,例如对象存储COS,消息队列CMQ,云数据库CDB、TDSQL,云缓存CRedis、CMemcached,甚至到各种以 API 形式提供的服务如万象优图 CI,视频处理 VC。这些产品或服务,用户直接开通即可使用,无需考虑部署、扩容、备份、优化、安全等各种运维工作,做到了开箱即用,无需自己去进行服务器或应用的维护和管理,因此同样也是Serverless的一部分。

    serverless到底是个什么鬼

    本篇由来


    如果你是一个程序员,你可能在最近这两年或多或少的听到过一堆莫名其妙的名词,例如CaaS、BaaS、FaaS等类似的以aaS结尾的as-a-service名词,同时也可能听到ServiceMesh、Serverless等名词,对于从事相关工作的同学可能知道每个名词都代表什么,但我相信肯定还是会有部分人听到之后是黑人问号脸,我们不具体介绍每个都是什么意思,因为这些概念也出现很早了已经,不明白的可以自行google,这里我们重点聊一下最近挺火的Serverless是个什么鬼,因为我发现我们在日常探讨过程中好像每个人对其理解不一样,也是在听完一次讨论之后有感而发,并不是在抱怨什么,只是想跟大家探讨一下到底什么是Serverless,在继续开展后续工作之前,我认为有必要再统一一下概念,不谈细节,也不扯什么性能,那都是可以优化的,不是不可逾越的障碍。


    什么是Serverless


    要说Serverless是什么,直译过来就是无服务器。根据 CNCF 的定义,Serverless 是指构建和运行不需要服务器管理的应用程序的概念。CloudFlare对其定义:
    Serverless computing is a method of providing backend services on an as-used basis. A Serverless provider allows users to write and deploy code without the hassle of worrying about the underlying infrastructure. A company that gets backend services from a serverless vendor is charged based on their computation and do not have to reserve and pay for a fixed amount of bandwidth or number of servers, as the service is auto-scaling. Note that although called serverless, physical servers are still used but developers do not need to be aware of them.

    google翻译结果:
    无服务器计算是一种按需提供后端服务的方法。无服务器提供程序允许用户编写和部署代码,而不必担心底层基础结构。从无服务器供应商处获得后端服务的公司将根据其计算费用,而不必保留和支付固定数量的带宽或服务器数量,因为该服务是自动扩展的。请注意,尽管称为无服务器,但仍使用物理服务器,但开发人员无需了解它们。


    Serverless == FaaS?


    在我们讨论Serverless的时候,经常能听到FaaS、事件触发之类的词组,但是为啥从官方的定义中丝毫没有看到这些字样呢?FaaS又和Serverless有什么关系呢?


    其实这一块业界也没有统一的定义,但是普遍认为Serverless = FaaS + BaaS,可以参考这篇这篇介绍的内容,通俗的理解一下就是无服务期计算相当于函数计算和后端即服务两种模式的组合,也是就说Serverless和FaaS不是一个概念,这个很重要,这是我们后续讨论和做事情的基础,我们不能简单的认为Serverless就是FaaS,这种理解太狭隘了。可以举个栗子来描述一下为什么这么说,例如已经被大家玩烂了的hello world,当我们写了一段hello world的代码并填写完访问规则后就可以通过FaaS平台部署,然后当我们访问指定Url后可以得到运行结果,典型的函数即服务。但是,又有谁会真正这么用呢,可以说没有任何作用,这只是个单纯的例子(在aws lambda上玩过这个例子的就敢号称使用过serverless产品),在最早的aws lambda官方推荐的使用场景里也都是和其他服务如S3搭配使用。毕竟每个业务都有自己的业务逻辑,或多或少都会涉及到一些基础组件的依赖或者第三方服务的调用(硬要抬杠的话,其实直接把依赖项都打包到一个程序里也不是不可以,但是这么做的人估计也不会用FaaS这种东西),很少或者不会有hello world这种自嗨式的场景,执行完什么记录都没有,单纯打印一下内容就返回的,除非在测试环境或者线下自己玩。而那些被使用的基础组件或服务就是BaaS。说了这么多到底是想说什么呢,其实就是想表达Serverless不等价于FaaS。

    关于Serverless许多时髦的词儿都来自FaaS。抛开部署模式,FaaS本质上是事件驱动的途径或者事件流,这就包含两层意思,一层是事件,说到事件,自然联想到各种MQ组件,用MQ来解耦事件的生产者(事件源)和消费者(服务实例或者function),以及一些相关事件类型、触发规则、通知等概念,在这一点上确实和消息中间件有很大关系;另一层是驱动,也就是说是有流量属性的,MQ里的事件要被消费肯定是要经过网络传给消费者的。看起来就是一个用消息队列来解耦生产者消费者的通用模型,根据事先配置好的触发规则拿到想要的事件,执行预先写好的函数。他的关注点在于对用户屏蔽服务器,用户只需要告诉平台触发条件及触发后的逻辑即可,极大的减轻用户的工作量,提升开发效率。

  • 相关阅读:
    windows线程消息通信和处理 PostThreadMessage和PeekMessage GetMessage
    如何:对 Windows 窗体控件进行线程安全调用(转载自msdn)
    How to: Develop a Simple Windows Forms Control(转载)
    《Effective C#》 翻译札记(转载)
    对制造者线程和使用者线程进行同步
    用户模式与内核模式(转)
    焊接技巧
    TextBox控件滚动条自动下拉(转)
    books
    CODE::BLOCKS GLUT 完整开发包
  • 原文地址:https://www.cnblogs.com/dahuige/p/15035295.html
Copyright © 2011-2022 走看看