云计算交付模型知多少 - IaaS、PaaS、SaaS
对于互联网公司而言,迁移到云是一个明智的决定。它减少了总的成本支出,同时最大限度地提高了工作效率和生产率,本文将指出迁移到云或者建设私有云优缺点以及边界在哪里?
1、什么是云计算
云计算(cloud computing)是分布式计算的一种,指的是通过网络“云”将巨大的数据计算处理程序分解成无数个小程序,然后,通过多部服务器组成的系统进行处理和分析这些小程序得到结果并返回给用户。
本地通常是提前把软件基础架构部署在用户计算机上,所有资源使用者自己访问和管理; 相对于本地服务,云有以下特征:
-
按需服务-需要时使用;
-
网络访问-通过网络作为传输媒介,云提供商负责维护其基础架构;
-
资源共享-多个资源集中在一起,供多个客户端使用;
-
可伸缩性-资源具有弹性能力,最大程度节省和提高资源利用率,具有平台无关性、存储无限扩展等优势。
2、公有云的缺点在哪里?
-
云是公共资源,每秒都有数以百万的用户访问,云服务提供商可能遭受攻击,从而窃取用户信息,从而云在一定程度上存在安全问题。
-
数据存储在第三方机器,可能会出现第三方查看和修改用户隐私数据问题。
-
更多的控制权不在于自己,而在于云提供商,云出现问题,只能等待第三方回应。
云本身又分为公有云、私有云、混合云等,以上说的几点都是公有云的特点,很多企业不信任公有云平台,特别是国内很多企业要求对技术做到自主可控,结合本身的业务增长速度,需要搭建自己的私有云平台。那么要完成私有云平台搭建,需要完成什么工作呢?如图(a)
(a)
3、搭建企业级云平台需要完成哪些工作?
3.1、IaaS 基础架构即服务
IaaS 基础架构即服务,该服务提供了计算机体系架构和基础服务,提供了所有云计算资源供我们直接访问使用,比如数据存储、虚拟化服务、服务器和网络等。
使用对象:企业管理员。
优点:云提供了基础架构和服务、增强了可扩展性、动态按需扩展。
缺点:集群规模增大后会出现安全问题和网络服务延迟。
3.2、PaaS 平台即服务
PaaS 主要是提供开发环境/平台,编程语言、操作系统、web 服务器和数据库构成,用户可在其中构建、编译、运行程序无需担心其基础架构。当今面对互联网业务量和用户量剧增,PaaS 是企业需要着重建设的部分。很多企业都以 Kubernetes 为基础建设容器云平台。常见的公有云有有阿里云,腾讯云、亚马逊云等。
使用对象:开发人员。
优点:快速开发部署、弹性扩容、持续交付。
缺点:开发人员仅限于使用PaaS提供的语言和工具,如果前期使用裸金属服务器部署,后期迁移到云,可能会有一定难度和适应期。
3.3、SaaS 软件即服务
按需使用软件、按需付费。跟购买程序无关,该服务运行在云端,是平台无关的,无需在 PC 上安装软件。云端运行该服务一个或多个实例供多个最终用户使用,云计算大大降低企业软件运行成本。比如网盘、网上冲浪服务等。
使用对象:用户。
优点:可以通过任何平台访问、无需关心在什么网络环境。非常适合协同办公。
缺点:云服务是面对所有用户,比如:浏览器兼容性可能导致不能使用某些服务。
3.4、PaaS VS IaaS
在云平台建设过程中 PaaS 和 IaaS 边界在哪里呢?很多企业在建设过程中,可能会把这两个混为一谈,其实有一定的界限。
-
IaaS 主要是对裸金属机器进行资源分配、操作系统安装、服务器启动、网络配置等。
-
PaaS 主要是对计算资源进行逻辑管理,与应用有关资源分配和调度,主要是最大程度上服务于上层应用,如图(b)。
(b)
4、云平台真的适合你吗?
建设之前,需要大量的时间去整理、评估组件的各种可行性分析。说到这里,很多人可能会知难而退;是的,坦率的说,云平台其实不适合大多数的团队,如果你在一个 15 - 20 人的小团队里,它会带给你大量痛苦,而好处却微乎其微。
4.1、以建设容器云平台举个例子
目前 A 公司的系统全部运行在裸金属 3 台服务器或者 5 个虚拟机上,考虑到硬件资源无法灵活调度,目前考虑迁移到Kubernetes上。
首先需要申请更多的机器,迁移总要有一个过渡阶段,前期裸金属服务器上要运行一份服务,Kubernetes容器化平台还要有一份服务,此外还需要考虑依赖的底层服务;
其次需要开发人员的学习适应和一定的人力投入,开发人员需要在了解大量概念之后才能使用,Node、Pod、Container、Service、Deployment......各种资源对象,如图(c)可以看出 Kubernetes 是一个庞大的系统,操作和使用都是非常的复杂,它包含 58w 行 go 代码,如果我们想要服务更好的工作,研究其运行机制,一定是必不可少的。 ( c )
最后落地,需要考虑数据的迁移、遗留系统的迁移,因为 Kubernetes 本身是一个集群,不得不考虑分布式存储管理、配置管理...... 如果自己系统本身不适应集群部署,那么不能发挥云的作用,不得不考虑把服务拆分成分布式微服务程序,这种程序很难编写,编写过程需要考虑分布式事务等很多问题,其次调试和日志排查问题也会增加复杂度,于是你在云平台的漩涡里不能自拔..........
上面说了这么多 Kubernetes 使用问题,是不是说它就一无是处了,当然不是。比如说当前服务客户是金融业务,7*24 小时不能宕机,且有上万用户使用,这就需要考虑到服务的扩展性和升级可靠性了,这正是Kubernetes 最擅长的事情了。
4.2、容器云平台真的有必要吗?
对于任何技术,在使用之前都要持保留态度,别人说好,那是适合,换做是你,可能就是另外一种场景了,要学会洞察技术的本质,就像搭建企业级云平台一样,在搭建之前要考虑为什么要建设企业级云平台?可以从三个方面去考量建设的意义是什么?
业务系统越来越多,各个系统之间存在大量的数据交互和接口调用,规划的还有大量的系统需要建设,出现问题时总是修修补补,无法从全局、系统的角度去规划分析问题。 资源管理层面上,有多个机房和数据中心,里面可能存在部分僵尸服务,无法做到有效监控、动态调度底层计算资源共享,更无法做到峰谷互补伸缩自如。 需求上要求快速交付、持续运行并且已经存在或者未来可预知的大量用户和海量数据。
5、总结
随着互联网的发展和网络带宽的增加,企业应利用云计算的优势,减少了总的成本支出,同时最大限度地提高了效率和生产率,从长远来看,对于大型互联网公司而言,迁移到云是一个明智的决定。
低调大师中文资讯倾力打造互联网数据资讯、行业资源、电子商务、移动互联网、网络营销平台。
持续更新报道IT业界、互联网、市场资讯、驱动更新,是最及时权威的产业资讯及硬件资讯报道平台。
转载内容版权归作者及来源网站所有,本站原创内容转载请注明来源。
- 上一篇
阿里巴巴如何改善开发人员在 K8s 上的体验?
作者:邓洪超 阿里巴巴应用交付专家 前言 通过 K8s,用户能够自定义基础设施,可以平行的替换或改造平台的已有功能,而非只能局限在平台提供的能力之上构建。但正是这样的“白盒化”体验,正在为越来越多的研发和运维带来“太复杂”的困扰。 从 Kubernetes 到“以应用为中心”的美好未来之间,全世界的 PaaS 工程师其实都在期待一项全新的技术能够弥补这之间的鸿沟。阿里云原生应用平台团队的做法是,通过为应用“建模”的方式来解决这个问题,这也正是 Open Application Model (OAM)开源项目得以创建的重要目的。 阿里巴巴的容器化之旅 阿里巴巴的容器化之旅始于 2013 年。在 Docker 诞生之前,阿里巴巴基于 lxc 的容器引擎研发了容器技术 T4,用于在裸机上部署和管理应用程序。 2017 年, 阿里巴巴内部孵化了类似于 K8s 的容器编排引擎 Sigma作为资源统一层,用于管理内部机器池,平均利用率达到40%。 2018 年,Sigma 重新设计并迁移成兼容 K8s API,阿里巴巴重新编写了自定义控制器和调度算法,并向暴露声明式 API 给用户试用。 2019...
- 下一篇
如何通过 OIDC 协议实现单点登录?
什么是单点登录 我们通过一个例子来说明,假设有一所大学,内部有两个系统,一个是邮箱系统,一个是课表查询系统。现在想实现这样的效果:在邮箱系统中登录一遍,然后此时进入课表系统的网站,无需再次登录,课表网站系统直接跳转到个人课表页面,反之亦然。比较专业的定义如下: 单点登录(Single Sign On),简称为 SSO,是目前比较流行的企业业务整合的解决方案之一。 SSO 的定义是在多个应用系统中,用户只需要登录一次就可以访问所有相互信任的应用系统。 为什么要实现单点登录 单点登录的意义在于能够在不同的系统中统一账号、统一登录。用户不必在每个系统中都进行注册、登录,只需要使用一个统一的账号,登录一次,就可以访问所有系统。 通过 OIDC 协议实现单点登录 创建自己的用户目录 用户目录这个词很贴切,你的系统的总用户表就像一本书一样,书的封皮上写着“所有用户”四个字。打开第一页,就是目录,里面列满了用户的名字,翻到对应的页码就能看到这个人的邮箱,手机号,生日信息等等。无论你开发多少个应用,要确保你有一份这些应用所有用户信息的 truth source。所有的注册、认证、注销都要到你的用户目录...
相关文章
文章评论
共有0条评论来说两句吧...
文章二维码
点击排行
-
Docker使用Oracle官方镜像安装(12C,18C,19C)
- Springboot2将连接池hikari替换为druid,体验最强大的数据库连接池
- CentOS8编译安装MySQL8.0.19
- Docker快速安装Oracle11G,搭建oracle11g学习环境
- SpringBoot2配置默认Tomcat设置,开启更多高级功能
- MySQL8.0.19开启GTID主从同步CentOS8
- CentOS7,8上快速安装Gitea,搭建Git服务器
- Jdk安装(Linux,MacOS,Windows),包含三大操作系统的最全安装
- SpringBoot2编写第一个Controller,响应你的http请求并返回结果
推荐阅读
最新文章
- Springboot2将连接池hikari替换为druid,体验最强大的数据库连接池
- CentOS8,CentOS7,CentOS6编译安装Redis5.0.7
- MySQL8.0.19开启GTID主从同步CentOS8
- Docker快速安装Oracle11G,搭建oracle11g学习环境
- SpringBoot2整合Redis,开启缓存,提高访问速度
- Windows10,CentOS7,CentOS8安装Nodejs环境
- CentOS7编译安装Cmake3.16.3,解决mysql等软件编译问题
- SpringBoot2编写第一个Controller,响应你的http请求并返回结果
- SpringBoot2更换Tomcat为Jetty,小型站点的福音
- CentOS7设置SWAP分区,小内存服务器的救世主