PaaS服务之路漫谈(一)
此文已由作者尧飘海授权网易云社区发布。
欢迎访问网易云社区,了解更多网易技术产品运营经验。
PaaS服务之路漫谈(一)
1983年,SUN公司提出的网络即计算的理念;2006年亚马逊(Amazon)推出弹性计算云(Elastic Compute Cloud;EC2)服务,云计算可以认为包括以下几个层次的服务:基础设施即服务(IaaS),平台即服务(PaaS)和软件即服务(SaaS)。
公司目前也在云计算等各层次里进行了较长的时间的投入和研发并应用在公司内外的各产品中,云计算相关的技术也得到了较好的论证。本文主要对PaaS进行相关的探讨。
PaaS(Platform-as-a-Service:平台即服务),较早期把服务器平台作为一种服务提供的商业模式,随着云计算时代的发展和成熟逐渐把部署环境、测试环境、甚至开发环境也当着一种服务来进行提供,并最终以SaaS的模式提交给用户。
PaaS也可以看成是SaaS模式的一种应用。SaaS的概念的提出非常早,根据相关文献和参考,理论上出现的时间在1998年或更早些,最早出现在欧美等发达国家。但最初的思想和现在发展的结果有相当大的不同,不再是单纯应用的服务提供了。
PaaS服务类似于IaaS也可以分为公有云PaaS平台和企业级PaaS平台。最早从事公有云的PaaS平台,如Google App Engine和Amazon Beanstalk,但是这二种类型的应用到国内都发展不是很好,特别是在国内GAE被墙,更是使用得其在国内基本上属于昙花一现,从后来Google的IaaS的转变路线也可以大概看到其发展也不是很好,很多只是当做试验的玩具而已,一方面是由于安全问题采用的沙箱机制使得开发人员施展能力受到相当大的限制,另一方面整个生态圈没有成熟,导致其他的云基础服务跟随不上,比如自动化的路由,负载均衡等技术。
在2007年左右,大规模的互联网的应用的快速成长和虚拟化技术的发展,PaaS服务加快了SaaS的发展,众多国内外厂商推出了自己的PaaS服务平台,国外包括 AMAZON, Google, SALEFORCES, CF等十大服务商,国内也最早的也包括SAE,BAE到后面的阿里云等。
PaaS服务开始的时间到今年也有8年左右的时间了,中国的抗日战争打了八年也结束了,尽管在国外有不少看似蛮红火的服务商,但是从国内从实际使用效果和真正推广的应用的情况来看,发展的不是特别理想,没有达到之前概念的预期发展。究竟其原因可能是多方面的,有技术方面的限制,也有产品化或开发人员对新概念接收度等非技术的原因。
近二年来,国内外又出新一批的PaaS服务创业公司,主要人员大部分是从第一批做PaaS服务平台的人员出来的创业的,比如DOTCLOUD,DEIS,国内的NICESCALE等公司,这些公司能不能很好的发展,现在还不好说,至少从目前的发展趋势来看,进入的门槛越来截低了,这些或许是得益于容器和虚拟化技术的发展。
我们公司目前也在致力这方面的探索和建设,从各服务的创业公司如春笋般新起和发展,大部分还是聚集在小型应用的基础上,对于中大型的应用,包括在一些大公司也只是刚刚开始着手构建,终究原因从技术方面来看大概有以下几种原因:
容器技术确定能带来些好处,但是这种好处对于相对成熟稳定保守的公司来说还不足以能够撼动其短处,使其能快速转头换向全力投入其怀抱。
技术储备,或者说跟风也好,追潮流也行,特别是小公司,由于成本较低,因此先试试水,看看是不是真的有红利或者做点什么,至少也得追上技术的发展趋势。
实际的痛处,就是那些真正接受过凤凰涅盘,想浴火重生的人,比如开发人员,测试人员和运维人员,在经过版本不一致,库依赖不同,环境不一致等带来的低效或依赖的人,希望能把精力放在解决各自专业的问题。
分久必合,合久必分:业务从小规模的起步到后来的大规模发展,应用的开发,测试和部署越来越复杂,依赖的服务越来越发多,最后变成相互抱怨,因此架构的演变也会随着这个趋势来发展。
OS
整个计算的行业的发展也经过不同的发展,从最早有代表性的人月神话的作者所带领的IBM的大型系统的开发到单机系统,再到虚拟机及容器技术成熟,无一不是从之前的一个很大的一块细分成小小的一块。
CGI
WEB技术的应用发展也有精力的相似,在Web应用程序开发的早期,大部分应用程序通常使用Common Gateway Interface(CGI)建立,包括前几年的QQ里面的很多系统还是采用C类语言实现的CGI-BIN来完成,每个请求采用一个进程来处理,当时的Apache服务也是整个最流行的网络服务器之一。
ASP和JSP
CGI技术带来的维护和性能的问题后来变得越来越严重,所有的代码都是混在一起的,甚至HTML的输出也是在业务代码里面嵌入的,业务上的扩展变成十分艰难。因此,WEB程序开发中的下一个阶段中衍生了“server pages”技术,比如ASP和JSP等语言,它们很好的实现应用程序逻辑代码与视图代码被很好的分离,加上设计模式得以快速演变,各层分工的越来越明细,职责也越来越明确。
MVC
因此在较短的时间内发展成了Model-View-Controller(MVC)的开发模式,包括现在大部分的中小型应用还是按采这样模式来开发,Controller层主要负责各业务的路由,调用相关的实现方法,通过MODEL的业务数据作为输入,最后产出View的输出,用来显示相关的视图,在这种模式下,业务数据、应用程序、视图逻辑被很好的分离。
SOA
目前在大部分应用中还会把Controller再进一步的细分成服务层或数据操作层。各服务之间的调用可以通过RPC或REST的风格进行调用,实现类似的SOA的服务架构,各服务层只需要通过相关的接口,相互间是松散和解耦,即实现了数据依赖与交互,又消除了代码库共享的依赖性。
从公司内各产品的发展趋势来看,各种不同的产品在不同的规模和阶段采用不同的架构模式来组组织和运行,但是随着应用的访问量的快速发展,产品正在朝着合久必分的趋势来发展,逐步形成了服务化的架构思想;本文第二部分将继续分析产品的不同架构模式:整块架构和服务化架构。
为了避免本文的裹脚布又长又臭,分第二篇再阐述,你懂的~,有兴趣请点击下面的连接。
网易 云计算基础服务 深度整合了 IaaS 、 PaaS 及容器技术,提供弹性计算、 DevOps 工具链及微服务基础设施等服务,帮助企业解决 IT 、架构及运维等问题,使企业更聚焦于业务,是新一代的云计算平台, 点击可免费试用 。
相关文章:
【推荐】 Kylin存储和查询的分片问题
PaaS服务之路漫谈(一)的更多相关文章
- PaaS服务之路漫谈(三)
此文已由作者尧飘海授权网易云社区发布. 欢迎访问网易云社区,了解更多网易技术产品运营经验. Monolithic架构在产品访问量很大的情况下,有可能常会导致整个产品迭代或升级过程不能按预期进行,或者上 ...
- PaaS服务之路漫谈(二)
此文已由作者尧飘海授权网易云社区发布. 欢迎访问网易云社区,了解更多网易技术产品运营经验. 天下大势,分久必合,合久必分,社会历史的发展方向总有着惊人的相似.把这种规律应用到软件应用架构的发展方向上, ...
- Azure PaaS服务密钥的安全性
Azure PaaS服务,比如存储,Redis缓存,服务总线,IoT中心等等,一般通过密钥来认证客户端,也就是说只有提供正确密钥的客户端才能访问和使用对应的Azure PaaS服务,所以这个密钥是很重 ...
- 使用 dotnet core 和 Azure PaaS服务进行devOps开发(Web API 实例)
作者:陈希章 发表于 2017年12月19日 引子 这一篇文章将用一个完整的实例,给大家介绍如何基于dotnet core(微软.NET的最新版本,支持跨平台,跨设备的应用开发,详情请参考 https ...
- MOT上海站 | 卓越研发之路:微服务之路
微服务架构在带来灵活性.扩展性.可用性等优点的同时,其复杂性也给架构师们带来了很大的挑战.当你面对这些挑战一筹莫展时,不妨来参加由msup和微软联合推出的MOT线下沙龙活动吧,我们将给您答疑解惑. M ...
- .NET Core微服务之路:文章系列和内容索引汇总 (v0.52)
微服务架构,对于从事JAVA架构的童鞋来说,早已不是什么新鲜的事儿,他们有鼎鼎大名的Spring Cloud这样的全家桶框架支撑,包含微服务核心组件如 1. Eureka:实现服务注册与发现. 2. ...
- NET Core微服务之路:实战SkyWalking+Exceptionless体验生产环境下的追踪系统
前言 当一个APM或一个日志中心实际部署在生产环境中时,是有点力不从心的. 比如如下场景分析的问题: 从APM上说,知道某个节点出现异常,或延迟过过高,却不能及时知道日志反馈情况,总不可能去相应的节点 ...
- devOps开发(Web API 实例)dotnet core 和 Azure PaaS服务
使用 dotnet core 和 Azure PaaS服务进行devOps开发(Web API 实例) 作者:陈希章 发表于 2017年12月19日 引子 这一篇文章将用一个完整的实例,给大家介绍如何 ...
- NET Core微服务之路:实战SkyWalking+Exceptionless体验生产下追踪系统
原文:NET Core微服务之路:实战SkyWalking+Exceptionless体验生产下追踪系统 前言 当一个APM或一个日志中心实际部署在生产环境中时,是有点力不从心的. 比如如下场景分析的 ...
随机推荐
- HDFS文件操作(命令行)
HDFS是一种分布式文件系统,为MapReduce这种框架下的海量数据分布式处理而设计. Hadoop之HDFS文件操作常有两种方式,一种是命令行方式,即Hadoop提供了一套与Linux文件命令类似 ...
- python 爬poj.org的题目
主要是正则表达式不熟练,基础知识不扎实,函数也不怎么会用,下次再深入了解这3个函数吧. 主要是一个翻页的功能,其实,就是通过一个url替换一下数字,然后得到一个新的url,再找这个新的链接的信息. # ...
- web的攻击技术
简单的http协议本身并不存在安全性问题,因此技术本身几乎不会成为攻击的对象,应用http协议的服务器和客户端,以及运行在服务器端web应用等资源才是攻击目标,那么怎么攻击,来源于哪里呢 web应用攻 ...
- 0x40二分法
二分模板一共有两个,分别适用于不同情况.算法思路:假设目标值在闭区间[l, r]中, 每次将区间长度缩小一半,当l = r时,我们就找到了目标值. 版本1 在单调递增序列a中查找>=x的数中最小 ...
- 1.Netty入门
Netty入门 1.Netty介绍 (1)百度百科介绍: Netty是由JBOSS提供的一个java开源框架.Netty提供异步的.事件驱动的网络应用程序框架和工具,用以快速开发高性能.高可靠性的网络 ...
- 永久免费开源的卫星地形图地图下载工具更新Somap2.13版本功能更新 更新时间2019年2月22日13:59:05
一.下载地址 最新版本下载地址:SoMap2.13点击此处下载 二.系统自主开发特色功能展示 1.上百种地图随意下载 高德.百度.arcgis.谷歌.bing.海图.腾讯.Openstreet.天地 ...
- Webpack4 学习笔记五 图片解析、输出的文件划分目录
前言 此内容是个人学习笔记,以便日后翻阅.非教程,如有错误还请指出 webpack打包图片和划分文件路径 使用图片的方式 通过 new Image() 在 css中设置 background-imag ...
- 文件权限管理命令chmod,chown与文本搜索命令grep
1.复制/etc/skel目录为/home/tuser1,要求/home/tuser1及其内部文件的属组和其它用户均没有任何访问权限. [root@bogon home]# cp -r /etc/sk ...
- redis操作帮助类
RedisHelper.java import redis.clients.jedis.*; import java.util.*; public class RedisHelper { privat ...
- 精读《12 个评估 JS 库你需要关心的事》
1 引言 作者给出了从 12 个角度全面分析 JS 库的可用性,分别是: 特性. 稳定性. 性能. 包生态. 社区. 学习曲线. 文档. 工具. 发展历史. 团队. 兼容性. 趋势. 下面总结一下作者 ...