云计算是什么?SaaS PaaS IaaS是什么?
云计算(Cloud Computing)
起源
- IT开始流行起来在2000年左右, 很多企业在做
数字化转型
Data Internet虽然是近些年提出的, 但早在那时, 银行/医院/学校就已经考虑将繁杂的人工需要处理的东西, 转移到服务器上处理
- Windows NT(New Technology) 后来演化成 Windows2000 基于NT架构, 有自己专门Server服务器系统, 而这个服务器系统又引入了一个全新的管理思想, 即AD
当年比尔盖茨提出的一个AD(Active Directory 活动目录)的东西, 率先引入了服务器集群管理的概念, 所有完成AD建设的服务器都将加入到同一个Domain域中, 使用统一化的身份认证和统一化的管理方案
- 虽然微软在服务器管理领域走在了前面, 但很快在另一个领域有一家做虚拟机软件的公司公司超过了他, VMware公司
- Virtual Machine 是一种软件, 运行在OS上的应用程序, 该程序又提供了一套虚拟出来的硬件平台, 能在其虚拟出来的硬件Hardware平台上运行其他OS
- VMware面向个人用户市场PC也面向企业Enterprise用户市场, 在面向企业的服务器中提供一种虚拟化Virtualization的概念
变革: 很快人们发现虚拟的服务器要比一台物理的服务器管理起来有很多优势, 更重要的是, 因为虚拟化的诞生, 让我们对计算资源的管理有了可编程性, 可编程性指的是可以靠代码去分配计算资源, 有了虚拟化后, 可以通过代码来全自动的开创出新的虚拟机来
- 面向企业的市场的几个产品线: VMware的vSphere和workstation & 微软MS的Hyper-V相对vSphere性能要高很多
- 为什么要提供这种虚拟的东西呢, 因为组建数据中心是一件非常昂贵的事情
2008年时, 只有大型的学校/机关等会组建这种数据中心, 不是每个人都做得到的, 普通开发人员要想让自己的网站上线只能借别人的服务器/虚拟机来运行自己的软件, 于是新的经济模式出现了
即建立好数据中心后, 将计算资源出租给别人, 而云计算的概念本质上就是按量计算的共有计算资源, 购买的不是一台服务器, 而是计算资源CPU RAM DISK IP...的使用权(按量计费的)用买到的计算资源运行自己的APP
发展
- 在这种虚拟出租思维的诞生下, 国外诞生了很多云计算提供商, 亚马逊Amazon的AWS(Amazon Web Server), 谷歌的GCP(Google Cloud Platform), MS微软的Azure;国内也有一些云计算的佼佼者, 包括阿里云/腾讯云
阿里云2014年时候就很火了, 搭建网站/博客成本低廉等
- 近几年晕计算又有什么变化呢, 过去云计算这个概念开上去只是把Data Center计算资源虚拟化成了虚拟机, 然后出租给了别人, 但实际上他又有不同的层级, 通常运行一个对外能够服务别人的软件从高到低需要:
层级 | 关注的内容 | 购买第三方 |
---|---|---|
C#/Java/PHP | 代码和业务逻辑 | SaaS |
Framework | 应用程序框架 | Faas |
Platform平台 | Runtime 运行时 | PaaS |
Platform平台 | OS (win linux) | PaaS |
Infrastructure基础设施 | Server(CPU RAM DISK) | IaaS |
基础条件 | 网络 机房 电力 | 采购物理机 |
若把整套基础设施Infrastructure全部自建, 则相当于回到了2000年; 随着云计算概念的诞生, 大多采用采购第三方的方式
- 自建数据中心
- 采购物理机: 把最基本的底层部分, 最基本的机房/网络/电力这些出租给别人, 而自己负责服务器硬件本身, 这种服务形式 vultr可以购买, 买到的是一台物理机, 没有任何虚拟话的元素参与
- 阿里云上买一台服务器--虚拟机, 自己则负责server以上的部分, 即OS/运行时/软件/代码/框架, 称其为
基础设施即服务 IaaS (Infrastructure as a Service)
- 在Azure或google的GCP上 能够买到一种叫做应用容器 Container 的服务, App Service / App Engine / Docker 即把自己的应用编译成二进制/ exe / dll 将这些上传到 Azure或Google的GAE Google App Engine上, 并选择好合适的运行时, 他们就会在合适的时间, 用合适的负载, 合适的计算量, 来调用你的应用, 让你的应用能运行起来, 这样就可以对外提供业务服务了, 这就是
平台即服务 PaaS (Platform as a Service)
- 应用本身也有很多层, 比如依赖了数据库, 或代码框架ASP.NET, 业务逻辑Logic, 对外服务Service, 当框架也被设计好了, 自己只需要操心最终业务逻辑 或 函数Function, 这种叫做
函数即服务Faas (Function as a Service)
的云计算 - 更多时候,我们作为开发者/用户, 什么都不想提供, 一切都购买其他人给我们做好的, 例如只要一个 SQL Server 或 一个微软邮箱Outlook服务, 这种就叫做
软件即服务 SaaS (Software as a Service)
只要交钱就完事了
未来
- 目前云计算的层级越来越高, 因为操心得越多越容易犯错误, 而由专业的人为你做出故障率是最低的, 这也是为什么今天SaaS如此流行的原因
- 现在还能买到更高层的服务, 比如买一个容器节点来运行你合适的Docker应用程序或者买一个Kubernetes集群, 在Azure上还能买到 Service Fabric计算集群, 可以一键部署上去, 不用担心应用被DDos或意外重启等, 云计算都提供好了
- 未来可能云计算会让我们开发人员关心的事情更少, 只要描述好自己的业务逻辑, 云计算提供商会为我们自动生成软件
正是由于构建软件的成本实在是太低了, 所以2014-2015涌现了大量小型互联网公司;可以说, 云计算这个概念催生了2014年-2015年那段时间内的创业潮流, 而正是由于这些互联网创业公司深入到了我们生活的方方面面, 我们对数据的收集和控制越来越有挑战性, 这也涌现了后面更多的概念, 比如: 大数据/分布式计算等;而随着大数据/分布式计算这些挑战逐渐被解决, 又涌现除了更深一层的概念 也就是AI(人工智能), 可以说云计算这个概念是
承上启下
的, 一方面他只不过是将过去的虚拟机这个概念, 变得向外出售了一部分, 一部分由真正软件实现的人去完成, 而有一部分由云计算提供商完成, 而这个概念又对之后的一些概念起到了更多的推进和辅助的作用
参考: Anduin2017
2019/11/07
- 微信
- 赶快加我聊天吧
- 博客交流群
- 海纳百川,大家来水