剖析新浪SAE及背后的云计算发展理念和经验

avatar 2021年10月23日18:00:48剖析新浪SAE及背后的云计算发展理念和经验已关闭评论 52

新浪SAE究竟是什么呢?

  从产品的概念和发展历程方面来讲,Sina App Engine简称为SAE,是新浪研发中心于2009年8月开始内部开发,并在2009年11月3日正式推出第一个Alpha版本的国内首个公有云计算平台,SAE是新浪云计算战略的核心组成部分。具有以下几个特点:

  1、SAE作为国内的公有云计算,从开发伊始借鉴吸纳Google、Amazon等国外公司的公有云计算的成功技术经验,并很快推出不同于他们的具有自身特色的云计算平台。

  2、SAE选择在国内流行最广的Web开发语言PHP作为首选的支持语言,Web开发者可以在Linux/Mac/Windows上通过SVN、SDK或者Web版在线代码编辑器进行开发、部署、调试,团队开发时还可以进行成员协作,不同的角色将对代码、项目拥有不同的权限;

  3、SAE提供了一系列分布式计算、存储服务供开发者使用,包括分布式文件存储、分布式数据库集群、分布式缓存、分布式定时服务等,这些服务将大大降低开发者的开发成本。同时又由于SAE整体架构的高可靠性和新浪的品牌保证,大大降低了开发者的运营风险。

  4、作为典型的云计算,SAE采用“所付即所用,所付仅所用”的计费理念,通过日志和统计中心精确的计算每个应用的资源消耗(包括CPU、内存、磁盘等)。

  总之,SAE就是简单高效的分布式Web服务开发、运行平台。

SAE的核心优势

  首先来讲,确定发展目标是一个平台成长的关键,SAE的基本目标用户有两种:一种是Web开发者,另一种是普通互联网上网人群。

  对于Web开发者,SAE带来的好处主要有以下四个方面:

  1、硬件成本更低,无需预先购买设备,承担更大的投入风险。

  2、开发成本更低,SAE提供许多服务供开发者使用,开发者无需重复开发,包括队列、数据库、缓存、定时、验证码、计数器,几乎覆盖了Web开发的所有领域。另外对于特定开放平台的开发者,比如新浪微博开发者,SAE已经集成了完整的OpenAPI的封装,将开发者的开发成本降到最低。值得一提的是,SAE的开发者目前已经形成了良好的交流氛围,在意见反馈中心、SAE官方群,SAE官方微群可以看到很多热情的开发者在一起共同提高。

  3、运维成本更低,在SAE上的应用无需关心硬件维护、服务监控、数据容灾等操作,SAE会通过其高可靠的架构和方便的监控页面为用户将运维成本降到最低扩展性更强,在SAE上的服务无需关心服务压力猛增时带来的扩容等操作,SAE自动支持服务扩展

  4、更加安全可靠,SAE自动提供SQL语句性能分析、前端防攻击、代码检查等功能,在SAE上的所有应用均为多机房容灾部署,比传统的部署模式更加安全可靠,并且SAE提供服务的SLA来实现对用户服务质量的承诺

  对于普通上网人群,使用SAE可以:

  使用推荐应用一键安装Web应用,普通用户无需会编码,也可以在瞬间拥有自己的团购、博客、微博、Wiki等。

SAE整体架构介绍

  SAE从架构上采用分层设计,从上往下分别为反向代理层、路由逻辑层、Web计算服务池。而从Web计算服务层延伸出SAE附属的分布式计算型服务和分布式存储型服务,具体又分成同步计算型服务、异步计算型服务、持久化存储服务、非持久化存储服务。各种服务统一向日志和统计中心汇报,参考下图:
剖析新浪SAE及背后的云计算发展理念和经验

7层反向代理层:HTTP反向代理,在最外层,负责响应用户的HTTP请求,分析请求,并转发到后端的Web服务池上,并提供负载均衡、健康检查等功能。

  服务路由层:逻辑层,负责根据请求的唯一标识,快速的映射(O(1)时间复杂度)到相应的Web服务池,并映射到相应的硬件路径。如果发现映射关系不存在或者错误,则给出相应的错误提示。该层对用户隐藏了很多具体地址信息,使开发者无需关心服务的内部实际分配情况。

  Web服务池:由一些不同特性的Web服务池组成。每个Web服务池实际是由一组Apache(PHP)组成的,这些池按照不同的SLA提供不同级别的服务。每个Web服务进程实际处理用户的HTTP请求,进程运行在HTTP服务沙盒内,同时还内嵌同样运行在SAE沙盒内的PHP解析引擎。用户的代码最终通过接口调用各种服务。

  日志和统计中心:负责对用户所使用的所有服务进行统计和资源计费,并设定的分钟配额,来判定是否有非正常的使用。分钟配额描述了资源消耗的速度,当资源消耗的速度到达一个预警阈值时,SAE通知系统会提前向用户发出一个警告,提醒用户应用在某个服务上的使用可能存在问题,需要介入关注或处理,配额系统是SAE用来保证整个平台稳定的措施之一;日志中心负责将用户所有服务的日志汇总并备份,并提供检索查询服务。

  各种分布式服务:SAE提供几乎可以覆盖Web应用开发所有方面的多种服务,用户可以通过StdLib(可以理解为SAE PHP版的STL)很方便的调用它们。
SAE和虚拟主机的区别

  提到云平台,新浪很自然的想到和以往虚拟化技术的区别。两者的主要区别表现在以下几个方面:

  1、传统服务托管面向的是硬件软件设备,使用者得到的也是设备的使用权;而SAE面向的服务,使用者得到的是服务的使用权。

  2、传统服务托管不面向开发者,开发者无法在其上享受到开发的乐趣;而SAE的一个重要用户就是web developer,开发者可以在其上通过在线调试、日志分析、协作共享等功能进行web开发。

  3、传统服务托管不提供分布式系统解决方案;而SAE提供的完整的分布式web服务的解决方案,其中不仅仅包括分布式数据库、分布式文件系统,更包括分布式定时器系统、网页抓取服务、图像处理服务等。

  4、传统服务托管不解决域名问题,用户往往烦恼于域名申请;而SAE的用户将自动得到在sinaapp下的二级域名,同时SAE还支持域名cname。

  5、传统服务托管无法保证SLA(Service Level Agreement),硬件故障的成本基本由使用者承担;而SAE保证用户的SLA,用户的web服务自动享有高冗余的前端服务器、享有自动负载均衡系统、服务自动扩展、服务自动收缩等功能。

  6、传统的服务托管采用预付费的方式,费用固定且和实际使用情况无直接关系;而SAE采用预充值方式,“所付即所用,所付仅所用”,web服务的一切损耗均提供报表查询和账单汇总,让用户一目了然。如果你注册SAE后通过实名认证,如果你前一天流量用完,第二天将会送你1000云豆,就是相当于4G的流量,大概能支持5万PV,这些都是免费的。

新浪为什么要做SAE?

  Sina App Engine项目始于2009年8月,目标为云计算时代的分布式web服务提供一整套解决方案。开发SAE主要是出于对内、对外两方面考虑:

  对内:新浪很早以前就开始了关于私有云的开发和实践,所以为了进一步提高公司资源的利用率,更加提高web开发的效率,降低web运营的成本,决定了新浪要开发SAE。

  对外:亚马逊、Google都是国外的成功的提供公有云计算服务的公司,SAE也想借助云计算这样一个趋势,为国内广大用户提供云计算的分布式web服务的开发、运行平台。

新浪的paas服务支持

整个云计算各个层面的增长趋势,saas在前面增长非常高,新浪看到整个的趋势里面,saas和paas的占比越来越高。整个IT效率提升是第一需求,并不是所有的企业,都有非常强的能力,可以自己建设,自己运维,自己管理。就导致IT企业在选择我用什么样的设施基础架构的时候,会考虑怎么样最高效。首先saas是最好的解决方案,它基本上不需要运维,对于IT的管理者来说是很高效的解决方案。paas的集成度也非常高,可以降低很多的开发投入和资源。

新浪的应用越来越向移动转型,企业越来越向移动转型,随着现在整个行业的变化,信息的快速交换,智能终端、移动终端的出现,都要向移动转型,这方面就需要一个平台。同时企业内部的IT系统,也是一样的。在企业内部,随着企业的移动办公,企业内部的IT系统,也需要优化,需要向移动转型,这些都是作为paas和saas更加适应的解决方案。

这个趋势从国内来看,越来越多的企业、创业团队,开始考虑使用云计算服务。下面是工信部的调查。在2014年新浪发现云计算水平有所提升,国内的企业对云计算开始接受。新浪SAE的业务量,和收入来看,最近两年,都得到了显著的提升,说明大家越来越认可。

新浪整个的SAE是国内最早的公有云计算平台,发布于2009年11月发布,在2011年的11月份,新浪开放了java的平台的运营环境,在2013年6月份开始,开始研发企业级技术解决方案。在今年新浪SAE已经开始小范围的进行内测了。

SAE目前有35万的用户,为什么新浪的用户这么多?一方面是新浪的口碑,一方面新浪认为它是非常高效,非常能够帮助开发者节省资源的。基于paas本身的软件, 一个开发者在使用新浪SAE的时候,完全不需要付费,一个开发者在申请一个SAE的环境的时候,他在开发测试、调试的过程中,是不需要付任何的费用。新浪是按需付费的门槛。

很多的开发者其实在平台上需要做大量的调研的工作,需要做大量的初期的开发工作。新浪现在的流量,是每天超过10亿。最上面是业界最有名的paas平台,新浪在后面。整个的SAEpaas平台,是属于底层的。

像Mysqlrdc,kvdb 、tripps和storger.新浪的应用不是上面的API,所有的都新浪自己来做,是不可能实现的,新浪本身是一个开放的平台,第三方的开放商业,能够丰富整个平台的服务,和平台的功能,能够让真正的云计算的用户,他们能够高效的低成本的使用,建立他们APP的应用。

新浪有22种各类服务,包括短信、地理信息服务、邮件服务、推送服务、人工智能服务、安全检查服务、搜索服务。来自360、高德、有道,对服务商的选择非常的严格。新浪不会非常关心你的API,都会找到平台的本身,新浪如果要承担起给用户提供最好服务的同时,必须是可靠可用的。

这部分是说新浪针对大数据方面的趋势,新浪也在去年年底推出了superQuery的功能。用简单的方法就是让所有的SAE的用户,可以实时的对SAE应用的请求、日志、行为做分析,同时可以把他们一些特定的数据,传到这个平台上来,帮助他们做定向的分析。

在企业帮助移动化转型方面,新浪提供了APP工厂,包括这个应用快速的生成。新浪也提供了BaaS,可以把很多远端的服务,可以解决计算能力不足的问题。也会对接一些更丰富的API服务,帮助这些开发者顺利的向移动转型。

针对开发本身,新浪非常的强调平台使用的易用性,新浪推出了手机的掌上SAE,方便用户随时随地掌握应用运行情况,分析应用的数据。在下面新浪还推出了能够在手机上直接的续费,避免出现异常的状况,这时候都可以进行快速的恢复,这是移动版SAE主要的考虑。

在安全的方面,就像这次可信云更大的一方面讲的,新浪在SAE本身做了很多的工作。这是一个简单的考虑,最下一层是SAE的平台层,这一层主要是做一些基础性。新浪整个的SAE是DDOS的服务方案,在外面会有一些安全的扫描和安全的检测,新浪也会提供第三方的安全检查,避免出现重大的安全性的事故。在平台之上新浪会分两层,一个是帐户的安全,一个是应用的安全。用户在写操作的时候,新浪会要求他输入第二层的密码,这个密码可能会跟手机绑定。再它之上新浪有管理安全,管理安全新浪是想在开发者来讲,在管理的时候,开发者会引进不同的开发人员,对开发人员进行控制,有一套比较负责的项目权限对应人的安全机制。

新浪对于整个计算资源的消费,是有一个很清晰的审核和进入机制。而且新浪对于整个的消费,对于性能,对于云计算的资源,能够有一个运算管理的机制。一旦用户出现特殊的情况,比如说出现泄露,或者是代码本身的质量。

一个是数据安全,一个是代码的安全,数据的安全,对整个的用户数据,有个很好的保护机制,保证这个数据不会出现重大的丢失的问题。另外一方面,新浪对数据的使用,有一个安全的考核机制。

代码安全,新浪提供了代码的加密机制。新浪会提供自己研发的解决方案,可以进行隔离。

对于现在很多的企业和行业,很多的企业是需要私有云的解决方案,新浪也希望在企业内部使用的更加方便。从去年开始研发,在今年也推出了私有云的MAE,明天会着重的介绍。MAE介绍了SAE成熟的经验和解决方案。另外它是一键部署的,非常方便企业使用。

在可信云项目中,新浪新浪去年8月份开始就全程的参与,参与了整个可信云的制定讨论,而且作为国内最大的paas服务商,新浪提供了很多的意见和帮助。在整个的上面各项中,新浪很顺利的通过了,这个项目本身,对新浪的平台而言,也是非常好的提升和挑战。

像持久性、迁移性、另外一方面也让新浪自身去提升新浪的服务质量。在整个的过程中,云引擎,运输局库、云存储,这三项新浪一次性的通过,新浪目前为政府部门、银行、大学、报社提供了服务。

这方面可以提升新浪的服务质量,这是一个严格的服务的要求,另外新浪会更加的遵守新浪的服务承诺,新浪希望让整个的行业服务更加标准,让用户更放心。

对于行业而言,我觉得做可信云,更多的是真正让国内的云服务企业有一个标准,让他们真正的重视他们这个所谓的服务质量和他们之间的关系,让他们真正的按照一个要求去实现。对于想使用,或者是愿意使用的云计算的行业用户而言,他们有一个选择的标准,他们能够看哪些标准是真正的符合标准,是站在行业标准之内的,新浪可以进行考量,而不是像以前瞎做。未来新浪希望给政府,给企业提供更多的云服务。

从新浪整个SAE未来的考虑,是两个方面。对外是走一些细分的垂直行业,因为从整个互联网来看,十年前大家对门户是这个类型,近两年垂直门户迅速的崛起,而且垂直门户的影响力、市值来看,不亚于传统的门户。只有做细分,做垂直的,才有可能真正的贴近用户的需求,才能让用户认可。所以新浪也在努力的探讨,也去调研,去尝试一些垂直行业。媒体和自媒体本身面临着转型,随着整个建设,整个用户接触信息的渠道,随着整个信息交换的频度,面临很大的转折。在其中新浪是有机会的。另外在社交、游戏、电商,包括传统的企业,和线上、线下企业沟通的结合,都需要IT的变革。再教育上更是这样的,金融云本身一方面是改变金融自身的变革,另一方面金融需要跟互联网快速的结合,能够推向市场。

文章来源于互联网:剖析新浪SAE及背后的云计算发展理念和经验

avatar