浅谈serverless/云原生 及 IaaS PaaS SaaS Caas FaaS/BaaS 小白文理解

浅谈serverless/云原生 及 IaaS PaaS SaaS Caas FaaS/BaaS

引言

浅谈一下serverless理念,然后说说发展历史,最后细说serverless,小白文给你讲透,不用奇葩的栗子举例,就白话文让你看懂。

  • serverless(无服务器)
  • serverless真的是没有服务器吗?
    其实并不是,只是对于用户(我们对于提供商来说都是用户)来说,我们不用关注服务器,不必构建防火墙,在早期云服务器兴起之前,因为同子网服务器被入侵导致整个机房沦陷的例子数不胜数。我们不用自己去做磁盘阵列,不用去做路由网络,不用去安装系统,安装运行环境,再去部署我们的应用。

云计算和云原生

发展历史

我从阿里找了张图,这年份记录比我印象中的要准确。
发展历史

云计算

云计算属于上图中的IaaS开始,都属于云计算,我们先来分别解释上面几个名词。

下图分别是IaaS PaaS SaaS,其中蓝色框为你需要做的事,灰色框为提供商已经帮你做了的事。
在这里插入图片描述

  • 云计算
    “云”实质上就是一个网络,狭义上讲,云计算就是一种提供资源的网络,使用者可以随时获取“云”上的资源,按需求量使用,并且可以看成是无限扩展的,只要按使用量付费就可以。[百度百科]
    举几个栗子,云服务器,WAF,到之后的云数据库,分布式存储等等。
  • IaaS(Infrastructure as a Service) 基础设施即服务
    最早我们见到的都是云服务器,也就是基础设施层IaaS最常见的就是云服务器,IaaS只是一种理念,说基础设施是服务,是因为提供商卖的就是服务。我们不需要再去关注存储,网络,系统等等,我们可以按照需求量按月,按天,按小时付费,并且像阿里,腾讯等弹性云我们可以动态变更资产,比如硬盘大小,CPU,网络带宽等等。
  • PaaS(Platform as a Service) 平台即服务
    平台指的是什么呢?这里的平台是指提供给你一个运行环境,其中包含常用的中间件(比如mysql),你只需要部署你的应用代码即可,甚至提供了2级子域名,代表是google的GAE,新浪的SAE,我记得12年左右给的域名是xxx.sinaapp.com,大家用来搭建xsser.me。
    从PaaS开始,就已经算是进入云原生 Serverless了
  • SaaS(Software as a Service) 软件即服务
    提供商卖给你的就是一个完全可以运行的应用,对于非互联网公司来说,SaaS更适合他们,省去了开发,运维成本。
  • CaaS(Container as a Service) 容器即服务
    阿里的ECI(弹性容器实例)是个典型的CaaS,并且兼容SLB,ENI,VPC,NAS等等,容器方面兼容K8S和Istio。
  • FaaS(Funciton as a Service) 函数即服务 BaaS(Backend as a Servive) 后端即服务
  1. 腾讯云SCF,阿里的函数计算都是FaaS,不过这俩都是FaaS和BaaS的混合体,支持多种语言,无论哪种语言,你只需要确定在脚本文件中的handler函数即可,作用你可以理解为我们平常写的main函数,对于FaaS来说,handler函数就是处理器的入口函数,因为同样要兼顾BaaS阿里云支持上传代码包,也就是说你完全可以将flask等框架代码打包,只需要将函数入口名称对应hanlder的函数名称即可,快速部署,且按量收费,你可以轻松集成日志,指标收集等等。
  2. 有个处理函数之外,还需要选择对应的Trigger(触发器)触发器的作用如何触发这个handler函数,比如http触发器,就是HTTP请求来触发函数。当然除了HTTP还有定时触发器,消息队列触发器等等。
  3. 函数运行在容器的环境里。返回后,容器不会立即释放。只有在一段时间内(取决于系统的调度算法,通常在几分钟到几十分钟),该容器都没有收到任何请求,才会被释放。如果有持续的请求,函数可以认为是常驻的。所以如果有对mysql等等创建连接的操作,可以放在Initializer中初始化全局对象,创建一个连接池。
  4. 贴个图吧,看一下就知道多简单了。看一下

云原生

云原生是基于分布部署和统一运管的浪潮分布式云 ,以容器、微服务、DevOps等技术为基础建立的一套云技术产品体系。【百度百科】

云计算如果是以给你一台虚拟的服务器作为开始,云原生就是以给你一个容器作为开始,云计算中包含着云原生,有了云计算才有云原生。

容器化概念已经存在了很久了,从最早的docker swarm到google的kubernetes,容器化的优点越来越明显,我们只需要打包应用做成镜像,就可以在任何一个容器内运行,并且依赖的运行环境,版本都可以确保完全相同,不需要再反复的安装依赖。

云原生就是将容器集群,DevOps等等融合在了一起,你所有的东西都在云上,你不需要自己搭建k8s集群,再去装Istio,或者用上kubeoperator,并且这些容器集群同样可以弹性伸缩。

写在最后

本人是个菜鸡,一直有一颗学徒的心,如果我的理解误人子弟,请在评论告知,我会改。

评论 2
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包

打赏作者

没事干写博客玩

你的鼓励将是我创作的最大动力

¥1 ¥2 ¥4 ¥6 ¥10 ¥20
扫码支付:¥1
获取中
扫码支付

您的余额不足,请更换扫码支付或充值

打赏作者

实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值