云计算 频道

全景解读百度云平台 服务站稳后PC时代

  【IT168专稿】多数人眼中的百度是一个搜索引擎服务商,占据国内搜索份额的70%以上,是国内互联网的绝对霸主。在新的云计算和移动互联网时代,百度没有做到向在PC端那样称霸群雄,甚至在移动互联网来临没有太多的作为。不过及时的运用新技术,推出自己的云平台和各种移动应用,成为了百度的重要发力点,也是弥补百度移动战略的重要支撑。

  百度通过十多年在搜索方面的积累,目前的云平台已具备四大能力:大容量数据存储能力、高并发处理能力、统计分析能力、智能推荐与运营,这些能力将帮助开发者更好地实现大数据价值。在了解了百度云平台之后,整体的感觉是,百度更偏向应用层和开发服务方面的支持,或许百度真正意识到了只有抓住开发者的心,才能够在未来的移动和云计算领域大展宏图。本文主要介绍了百度的所有云平台战略,便于大家能够全面的了解百度如何部署云时代。

  百度BAE平台介绍

  对于大数据的规模大、类型多,价值密度低等特征,百度云平台提供的BAE(百度应用引擎)将提供高并发的处理能力,满足处理速度快的要求。
  Baidu App Engine 是百度推出的应用引擎。开发者能够方便地在这个平台上开发网络应用程序。 另外它作为平台,有能力将原本单机的lamp架构,变成分布式架构。开发者可以基于BAE平台进行php、java应用的开发、编辑、发布、调试。

  同时BAE平台也提供了大量的云服务给开发者,包括fetch url、task queue、sql、memcache,后续会有更多服务提供。在性能方面,如果开发者希望增加服务能力,可以通过申请执行单元的方式进行灵活的调整。

  BAE的一整套服务,可以让开发者摆脱繁琐的环境、服务问题,把精力专注于业务逻辑。

百度BAE平台介绍
▲BAE平台架构图

  BAE在架构上分为执行环境、管理系统和多种分布式服务。执行环境包括接入层、代码执行层及数据层。管理系统包括用户管理平台、系统管理平台、调度服务、监控服务、资源审计服务等。分布式服务包括多种基础服务和业务组件,如数据库、缓存、云存储、FetchUrl等服务。

  执行环境接入层:是一个HTTP反向代理,能够实现将应用流量分配到制定后端的功能,并能够在多个可选后端中进行负载均衡。它还具有防火墙功能。

  执行环境代码执行层:是实际运行用户代码的地方。计算资源分组管理。执行组的处理能力由它包含的执行单元个数决定。可以根据需求动态伸缩。执行组目前分为公共和私有两种,私有组中的资源为用户独享,稳定性更强。执行单元本身是一个沙盒环境,保证不用应用之间的代码、数据以及执行都不会相互影响。目前执行环境支持php和java语言(java语言目前处于邀请测试期)。

  执行环境数据层:用于存储用户的代码和一些临时数据。

  管理系统调度服务:负责控制执行环境接入层的流量分发和负载均衡策略、应用代码在数据层的分发以及代码执行层计算容量的自动伸缩。

  监控服务:将系统各个模块、执行单元的状态实时汇报给状态中心,作为调度服务决策的依据。

  资源审计服务:负责统计并控制应用对资源的访问。公共组会根据用户使用所有服务的具体使用量来进行统计和计费,如页面流量、cpu使用量、内存使用量等。私有组以对执行单元的使用时间来进行统计。

${PageNumber}

  目前百度已经推出的PCS(个人云存储服务),不仅打通了散落在不同终端上的数据,还可以在严格的授权机制控制下,让不同App的用户数据可共享,彻底的帮助开发者实现大容量数据云端存储。

  个人云存储

  个人云存储(Personal Cloud Storage, 简称PCS)是百度推出的针对个人数据的存储服务。开发者可以利用PCS的开放接口实现用户数据的存储,多端同步,分享等功能。通过使用PCS服务,开发者无需考虑用户数据的存储细节,可以在百度强大的存储服务基础上快速开发出有创意的应用。

pcs_introduction.jpg

  开发者能用百度个人云存储做什么

  开发者无需考虑用户存储相关的细节,把更多的精力花在业务逻辑和用户体验等方面,利用pcs接口,打通应用之间的数据,实现更加强大的功能。 例如: 1.开发功能强大的网盘 2.开放功能强大的垂直应用

  功能设计:

  大容量, 用户存储初始空间高达15G,无上限;很简单, 标准的REST API;很容易, 提供了基于不同语言的丰富SDK;很强大, 支持文件分享、搜索等功能;很安全, 采用https,支持oauth2;很稳定, 百度有在分布式存储方面的优势。

  功能描述

  自由创建文件及目录;上传单个文件,最大支持2G,大文件上传可用分片形式,单文件最大2T;获取文件meta及目录信息;提供自由灵活的tag功能;提供第三方应用可定制的分享功能;方便快捷的搜索功能;可自定义的通知提醒功能。

${PageNumber}

  发力移动互联网,推出百度云智能终端平台

  百度云智能终端平台集合了百度的各种特色应用和服务,给终端用户提供了更好的基于百度平台的各种服务。其中智能搜索主要包括:

  1、全面的框搜索:能够精准智能的识别用户的实际需求,呈现最优资源,还能够全局搜索,高效直接。

  2、智能框计算:百度针对用户搜索提炼的优质结果,您可以对天气、股价、彩票、放假、限行、航班等类型直接收藏,一目了然。

  3、语音搜索:如今信息输入方式的多元化让用户在检索信息的时候非常方便,百度的语音搜索功能有效的替代率用户输入不方便的情况,用户只需要说出搜索内容,直接进入搜索页面,智能分析语义,找到用户所想的内容。

  4、划词搜索:划词搜索不再跳转,可以做到即划即搜,即搜即看,获取信息更快捷。

  这些针对移动终端设备开发的应用和服务,充分利用了百度云技术,让搜索变得更加智能化、简单化。

  强大的云服务主要体现在以下几个方面:

  便捷的云备份:结合平台中应用进行全面的备份,无论设置、通话记录、短信、备忘、都让用户用的既舒心又安心。

  随时随地云同步:百度为用户提供了超大的云存储空间,支持本地文档、音乐、视频的同步,以及通讯录和程序进度的备份;支持Web、PC和移动等多种终端,可以有效的做到一处上传,多处同步,让你的网络信息随处收藏;自动与百度强大的云端数据库进行匹配,如有记录无需上传;更新文件只上传更新的部分,节省流量。

  安全无忧:百度云存储采用了传输加密技术,有效的防止数据窃取。端服务器集群可以有效的杜绝一切意外。

  轻松分享:通过连接的方式,轻松的将云端文件分享给好友;同时,可以多人共享云端文件夹,共同的编辑和维护;可以关注好友云端的文件夹,及时的了解好友的更新。

百度云智能终端平台
▲百度智能终端平台

${PageNumber}

  什么是云数据库

  百度云数据库为开发者提供了分布式的关系型数据库存储服务。后端采用的是业界最为广泛使用的数据库之一:mysql,并且在前端提供与mysql完全一致的使用方式,使开发者进行应用迁移的代价几乎为零;同时,百度云数据库可以支持百万级别的后端数据库集群,并且多机房自动冗余备份,自动读写分离,开发者不需要关注后端机器及数据库的稳定性、网络问题、机房灾难、单库压力等各种风险,像连接本地mysql一样使用sql服务即可。百度云数据库还为开发者提供数据隔离,不同开发者的数据会存在于不同的数据库中而不会相互影响;为开发者提供安全性检查,对于恶意攻击性访问及时发现并拒绝,避免影响正常访问app的用户,为开发者节省访问带宽。

  示意图

yun_shujuku.jpg

  图:创建应用按钮

  使用方式

  一、创建

  (1)登陆yun.baidu.com

  (2)点击“云数据库”进入数据库主界面

  (3)点击“创建数据库”即可获取一个数据库

yun_chuangjianmiyao.png

  二、使用

  通过平台phpmyadmin使用

  直接点击数据库后面的 “phpmyadmin”即可进入phpmyadmin管理界面。

  使用方法可以参考phpmyadmin官网介绍http://www.phpmyadmin.net

  在云环境应用中使用

  php应用

  (1)要在应用中使用数据库,必须先创建密钥对

yun_chuangjianmiyao.png

  图:创建云数据库

  (2)记录需要使用的数据库名称

yun_shujukumingcheng.png

  这里选取WBxduSiUccUSWSwuySym

  (3)至此,就可以在PHP应用里使用数据库了,使用方法与使用mysql基本一致,唯一不同的是,在连接到数据库后,需要立即执行select_db操作选中需要使用的数据库;

  (注:无法在一次连接中切换数据库,比如上面的WBxduSiUccUSWSwuySym,JqEoAMROhmgQiiZVaPRx;将我们连接到WBxduSiUccUSWSwuySym时,无法通过select_db或发送Use命令切换到JqEoAMROhmgQiiZVaPRx)。

  下面分别展示用php连接数据库的方法

<?php
/*从平台获取查询要连接的数据库名称*/
$dbname
= 'WBxduSiUccUSWSwuySym';

/*从环境变量里取出数据库连接需要的参数*/
$host
= getenv('HTTP_BAE_ENV_ADDR_SQL_IP');
$port = getenv('HTTP_BAE_ENV_ADDR_SQL_PORT');
$user = getenv('HTTP_BAE_ENV_AK');
$pwd = getenv('HTTP_BAE_ENV_SK');

/*接着调用mysql_connect()连接服务器*/
$link
= @mysql_connect("{$host}:{$port}",$user,$pwd,true);
if(!$link) {
    die(
"Connect Server Failed: " . mysql_error($link));
}
/*连接成功后立即调用mysql_select_db()选中需要连接的数据库*/
if(!mysql_select_db($dbname,$link)) {
    die(
"Select Database Failed: " . mysql_error($link));
}

/*至此连接已完全建立,就可对当前数据库进行相应的操作了*/
/*!!!注意,无法再通过本次连接调用mysql_select_db来切换到其它数据库了!!!*/
/* 需要再连接其它数据库,请再使用mysql_connect+mysql_select_db启动另一个连接*/

/**
* 接下来就可以使用其它标准php mysql函数操作进行数据库操作
*/

/*显示关闭连接,非必须*/
mysql_close($link);
?
><?php
/*从平台获取查询要连接的数据库名称*/
$dbname
= 'WBxduSiUccUSWSwuySym';

/*从环境变量里取出数据库连接需要的参数*/
$host
= getenv('HTTP_BAE_ENV_ADDR_SQL_IP');
$port = getenv('HTTP_BAE_ENV_ADDR_SQL_PORT');
$user = getenv('HTTP_BAE_ENV_AK');
$pwd = getenv('HTTP_BAE_ENV_SK');

/*创建mysqli对象,直接在创建时指定连接信息,也可创建对象后再connect*/
$link
= @new mysqli($host, $user, $pwd, $dbname, $port);
if($link->connect_errno) {
    die(
"Connect Server Failed: " . $link->connect_error);
}

/*已在建立连接时指定dbname,无须再select_db*/

/**
* 接下来就可以使用其它标准php mysql函数操作进行数据库操作
*/

/*显示关闭连接,非必须*/
$link
->close();
?
>

 

  java 应用

<%
    
String host = request.getHeader("BAE_ENV_ADDR_SQL_IP");
    
String port = request.getHeader("BAE_ENV_ADDR_SQL_PORT");
    
String username = request.getHeader("BAE_ENV_AK");
    
String password = request.getHeader("BAE_ENV_SK");
    
String driverName = "com.mysql.jdbc.Driver";
    
String dbUrl = "jdbc:mysql://";
    
String serverName = host + ":" + port + "/";
    
String databaseName = "mCMiaZybhmnkeuAMtBSq";
    
String connName = dbUrl + serverName + databaseName;
    
String sql = "select * from mxs_test_table";

    Connection connection
= null;
    Statement stmt
= null;
    ResultSet rs
= null;
    try {
        Class.forName(driverName);
        connection
= DriverManager.getConnection(connName, username,
                password);
        stmt
= connection.createStatement();
        rs
= stmt.executeQuery(sql);
        
String id = "", name = "", pwd = "";
        
while (rs.next()) {
            id
= rs.getString("id");
            name
= rs.getString("uname");
            pwd
= rs.getString("pwd");
        }
    } catch (ClassNotFoundException ex) {
        
// 异常处理逻辑
    } catch (SQLException e) {
        
// 异常处理逻辑

    } finally {
        try {
            
if (connection != null) {
                connection.close();
            }
            } catch (SQLException e) {

        }
    }
%
>
  

  分钟配额

  为了防止恶意攻击,云数据库采用分钟配额来限制数据库的访问,超配额的数据库将会被封禁5分钟

  请求数:200000个/分钟

  CPU时间:400秒/分钟

  流入带宽:300M/分钟

  流出带宽:600M/分钟

  连接数限制

  每个数据库并发连接数限制为10

  容量限制

  每个数据库容量限制为5G

${PageNumber}

  百度云消息服务(BCMS)

  Baidu Cloud Message Service(以下简称BCMS)是百度于2011年7月最新设计研发,并于2011年底推出的国内首个消息服务平台。BCMS为百度云计算平台上的所有应用提供高效,可靠,安全,便捷的消息服务。广大应用开发者可以使用BCMS在他们应用的分布式组件上自由的传递数据,并结合百度云计算平台的其它服务,创造出更有特色的精品应用。

bcms_work_style.png

  功能设计:

  支持千万级别queue;实现单模式、多模式队列;支持多种消息获取方式;

  订阅推送

  主动抓取

  消息方式多样化

  SMS 短信消息,发送到指定的手机;Email 邮件消息,发送到指定的邮箱;普通消息,主动抓取,订阅推送到指定的URL地址。

  统一权限管理

  功能描述:

  随意创建队列,BCMS可以同时支持千万级的队列消息服务;根据您的应用需要,灵活选择队列类型,支持单模式队列和多模式队列;随意发布消息,并且一次可以发布多条,单条消息最大可以支持到256K;  随意查询消息,并且一次可以查询多条,每个队列最多可以查询到30天内的所有消息;随意订阅队列,队列中有新消息到来时,将会自动推送到订阅时指定的URL地址;灵活的队列控制机制,您可以随时删除队列、暂停队列、恢复队列;队列访问安全控制;灵活的队列授权机制

  为什么使用消息服务

  容量:系统支持千万级别的队列

  稳定性:多机房部署保证在极端情况下可访问

  易用性:restful风格api,php sdk可以极大提升开发效率,管理平台允许您通过网站对队列进行统一的可视化管理

  扩展性:开发者可以根据实际需求动态的创建队列及消息的获取方式

${PageNumber}

  什么是虚拟机服务

  虚拟机服务是由百度推出并对外提供的IaaS(Infrastructure as a Service)公有云平台。它利用虚拟化技术将物理服务器的划分为大小不同的资源单位。根据用户业务实际用途和需求,提供稳定、安全的虚拟机服务。 虚拟机服务的功能

  1、提供多种配置的虚拟机服务。虚拟机被分为四类配置:标准型、均衡型、加强型、内存型,对于每一类配置均提供Linux与Windows操作系统的不同版本组合,供用户选择;

  2、支持SSH,Web Console,Web VNC等多种灵活的访问方式;

  3、监察违规信息,运维服务。用户遇到虚拟机故障时,也可申请专业运维人员协助处理; 资源配额 配额是指用户申请并分配到的虚拟资源总量,其中包括CPU核数、存储空间和内存大小;在资源配额允许的范围内,用户可以创建多个不同套餐的虚拟机。

  虚拟机服务目前处于内测状态,仅向少量百度应用重点合作方开放。

${PageNumber}

  百度云平台提供的服务大致分为以下几个方面:

百度云平台的提供的四大服务
▲百度开发者中心

  开发支持:百度云平台以API的方式,为广大开发者提供PCS(个人云存储)、地图API、百度账号 (Open ID)、云输入法、部署开发、BAE(百度应用引擎)、云开发工具包、MTC(移动测试中心)等开发服务。使后者能够在一个可信赖的平台上开发应用,并拥 有和百度产品一样的安全性、稳定性、可靠性和高性能。

  运营支持:推出国内知名的全覆盖数据统计解决方案——百度统计。从PC到移动,从网站到APP,在网站统计的基础上,向开发者全平台的统计分析服务,帮助广大的开发者更好的进行市场预知和精细化运营。

  渠道推广:移动搜索结果、PC搜索结果、App垂直搜索频道及其对应客户端,百度云智能操作系统内置的应用商店。

  商业变现:百度通过搜索推广合作、网盟推广合作、鸿媒体推广合作等多种模式,在PC和移动两端,为广大的开发者提供了业界最具竞争力的互联网流量变现服务,帮助合作伙伴挖掘流量的推广价值。

  百度开发者中心的“四大引擎”,也就是四大服务体系是环环相扣,相互影响相互促进的。任何一个环节没有实施好,对广大开发者的帮助和支持就会大打折扣。因此百度推出了百度开发者中心,确保通过一站式和整体解决方案的模式,保证四大体系的正常运转、良性促进,从而帮助广大的开发者解决各种困难。

1
相关文章