分类 云计算 下的文章

云监控-腾讯云平台

本门课程正是通过对一些典型案例的剖析,帮助用户了解如何使用腾讯云监控提供的服务,在遇到故障时能够第一时间处理并快速定位故障源。同时,借助云监控,对应用进行优化,缩减运营成本。
刘永峰, 高级工程师,现负责腾讯云平台部云监控服务优化工作。

云调度-腾讯云平台

云调度系统是云平台的管理核心,协调云平台中各种资源,保证整朵云的正常工作;本课程主要介绍了云调度主要功能,及运作原理。并结合具体案例,阐述腾讯云平台内部资源调度的种类及实现。
邹辉,高级工程师,现负责协调云平台中各种资源工作。

腾讯云平台基础架构

《腾讯云平台基础架构》主要通过讲解腾讯云平台的基础架构的设计与实现,演示资源虚拟化、负载均衡等核心功能的原理,帮助第三方用户更好地理解和使用腾讯云平台资源。
主讲人:黄炳琪,高级工程师,现负责腾讯开放云平台基础组件的开发工作。

Storm实时计算平台

Twitter将Storm正式开源了,这是一个分布式的、容错的实时计算系统,它被托管在GitHub上,遵循 Eclipse Public License 1.0。Storm是由BackType开发的实时处理系统,BackType现在已在Twitter麾下。GitHub上的最新版本是Storm 0.8.0,基本是用Clojure写的。
Storm为分布式实时计算提供了一组通用原语,可被用于“流处理”之中,实时处理消息并更新数据库。这是管理队列及工作者集群的另一种方式。 Storm也可被用于“连续计算”(continuous computation),对数据流做连续查询,在计算时就将结果以流的形式输出给用户。它还可被用于“分布式RPC”,以并行的方式运行昂贵的运算。 Storm的主工程师Nathan Marz表示:
Storm可以方便地在一个计算机集群中编写与扩展复杂的实时计算,Storm之于实时处理,就好比 Hadoop之于批处理。Storm保证每个消息都会得到处理,而且它很快——在一个小集群中,每秒可以处理数以百万计的消息。更棒的是你可以使用任意编程语言来做开发。
Storm的主要特点如下:
简单的编程模型。类似于MapReduce降低了并行批处理复杂性,Storm降低了进行实时处理的复杂性。
可以使用各种编程语言。你可以在Storm之上使用各种编程语言。默认支持Clojure、Java、Ruby和Python。要增加对其他语言的支持,只需实现一个简单的Storm通信协议即可。
容错性。Storm会管理工作进程和节点的故障。
水平扩展。计算是在多个线程、进程和服务器之间并行进行的。
可靠的消息处理。Storm保证每个消息至少能得到一次完整处理。任务失败时,它会负责从消息源重试消息。
快速。系统的设计保证了消息能得到快速的处理,使用ØMQ作为其底层消息队列。
本地模式。Storm有一个“本地模式”,可以在处理过程中完全模拟Storm集群。这让你可以快速进行开发和单元测试。
Storm集群由一个主节点和多个工作节点组成。主节点运行了一个名为“Nimbus”的守护进程,用于分配代码、布置任务及故障检测。每个工作节 点都运行了一个名为“Supervisor”的守护进程,用于监听工作,开始并终止工作进程。Nimbus和Supervisor都能快速失败,而且是无 状态的,这样一来它们就变得十分健壮,两者的协调工作是由Apache ZooKeeper来完成的。
Storm的术语包括Stream、Spout、Bolt、Task、Worker、Stream Grouping和Topology。Stream是被处理的数据。Sprout是数据源。Bolt处理数据。Task是运行于Spout或Bolt中的 线程。Worker是运行这些线程的进程。Stream Grouping规定了Bolt接收什么东西作为输入数据。数据可以随机分配(术语为Shuffle),或者根据字段值分配(术语为Fields),或者 广播(术语为All),或者总是发给一个Task(术语为Global),也可以不关心该数据(术语为None),或者由自定义逻辑来决定(术语为 Direct)。Topology是由Stream Grouping连接起来的Spout和Bolt节点网络。在Storm Concepts页面里对这些术语有更详细的描述。
可以和Storm相提并论的系统有Esper、Streambase、HStreaming和Yahoo S4。其中和Storm最接近的就是S4。两者最大的区别在于Storm会保证消息得到处理。这些系统中有的拥有内建数据存储层,这是Storm所没有的,如果需要持久化,可以使用一个类似于Cassandra或Riak这样的外部数据库。
入门的最佳途径是阅读GitHub上的官方《Storm Tutorial》。 其中讨论了多种Storm概念和抽象,提供了范例代码以便你可以运行一个Storm Topology。开发过程中,可以用本地模式来运行Storm,这样就能在本地开发,在进程中测试Topology。一切就绪后,以远程模式运行 Storm,提交用于在集群中运行的Topology。
要运行Storm集群,你需要Apache Zookeeper、ØMQ、JZMQ、Java 6和Python 2.6.6。ZooKeeper用于管理集群中的不同组件,ØMQ是内部消息系统,JZMQ是ØMQ的Java Binding。有个名为storm-deploy的子项目,可以在AWS上一键部署Storm集群。关于详细的步骤,可以阅读Storm Wiki上的《Setting up a Storm cluster》
storm官网:
http://storm-project.net/
storm git:
https://github.com/nathanmarz/storm

体验云存储

体验“云存储”
Dropbox据说在分享文件的时候是有每日20G流量限制的,超过会封号;
腾讯的微云,我问过客服,说是没有,分享人数,下载次数,流量控制等限制;
QQ中转站有下载次数限制
百度网盘有版权问题,可能会分享失败
各种廉价及有吸引力的 云选择日益增多。但是通过3月19号公布一个Strategy Analytics调查显示,美国市场已被大公司开发的生态系统所霸占。研究发现Apple在硬件和服务上的融合已很大限度上成为这种生态系统的标杆,在该领域占主导地位;而Dropbox、Amazon和Google紧随其后。
Strategy Analytics调查了接近2300个连接终端后得出结论:Apple的iCloud和iTunes Match服务拥有了市场上27%的用户;其它取得了两位数成绩的公司有:Dropbox 17%、Amazon Cloud Drive 15%以及Google Drive的10%;而其它的竞争对手的用户占有率都未超过4%。
研究还发现云服务采用最高的人群为年轻人,特别是在20到24岁之间的青年;其中只有Apple云服务的女性用户比男性用户来的多,而其中音乐存储的采用率最高。有90%左右的Apple、Amazon及Google云用户都使用这些服务存储他们的音乐,即使Dropbox(区别于其它Apple等公司,并没有围绕着内容生态系统)服务的用户中有45%都来自音乐储存。Strategy Analytics指出Dropbox似乎准备在这一领域大展拳脚,这得益于 12月份收购的Audiogalaxy;Audiogalaxy是个音乐流及存储公司,使Dropbox可以快速的整合像本地音乐播放器这些功能。
Ed Barton —— Strategy Analytics数字媒体总监,说道:“音乐已经成为云战争的主要战场。”他指出,Google为争取客户给安卓设备提供了2万首免费音乐备份服务。与其竞争的服务同样提供了类似的小规模免费服务,不过它们通常是根据使用的空间收费。
音乐成为 云战争主战场已有多年之久,但是Barton指出:对流视频的需求可能会促成更深层的采用。也是出于这个原因,他非常看好好莱坞支持的Ultraviolet服务,根据该公司的调查:这个服务已经占据了市场上4%的用户份额,尽管这个服务因为出错率高和界面复杂激怒过很多初期用户。
在另一个需要注意的发现中,Samsung Music Hub占据了3%的美国云存储。这个韩国电子巨头一直追求着使Apple迅速崛起的软硬件协同效应,而它们扩张的云脚步正是实现这一目标的一部分。
微软在这一榜单上的缺席无疑是惹人注意的,该公司SkyDrive云服务上的文件已超10亿。Redmond也正致力将服务整合到最普及的产品,比如Office。Strategy Analytics并没有公布对这些公司调查的详细统计数据。
虽然有些公司还在讨论采用什么类型的云服务,甚至是在考虑是否采用云服务,但是云的采用还是成为了主流。通过研究发现,美国线上用户中有45%至少使用了一种云服务。
Barton说,虽然那些“2013年是云计算一年”的论调有些言过其实,但毫无疑问的是云存储已经成为数字平台的一个关键使用策略,而在2至3年内更将随处可见。

利用devstack在ubuntu上安装openstack

系统要求:ubuntu12.04 32位
安装git:

sudo apt-get install git

获取devstack脚本:

git clone https://github.com/openstack-dev/devstack.git

在当前用户目录下执行命令,否则会报没权限
进入devstack目录

cd devstack
./stack.sh

脚本执行过程需要按照提示设置几个密码,执行过程大概:
(1)下载并安装Openstack运行所需要的系统软件,大概包括一些python的组件、mysql、rabbitmq-server等
(2)下载openstack组件,包括nova 、keystone、glance、noVNC、horizon等
(3)下载并安装openstack源码所依赖的python库和框架
(4)安装openstack各组件
(5)启动各项服务
然后就是漫长到等待,需要看网络情况,经常装到一半没速度了,可以换用其他到Ubuntu 更新源。

Horizon is now available at http://172.16.95.187/
Keystone is serving at http://172.16.95.187:5000/v2.0/
Examples on using novaclient command line is in exercise.sh
The default users are: admin and demo
The password: 123456
This is your host ip: 172.16.95.187
stack.sh completed in 1961 seconds.

访问http://172.16.95.187/,输入用户名密码即可
http://devstack.org/

IaaS层实现思路

云计算,什么是云计算,它到底离我们有多远?
这些内容我已经在《云计算的定义和特征》中阐述过了,需要看的朋友可以再去翻出来看看。
这篇文章我们重点讨论IaaS
IaaS的使用者是谁?IaaS能提供怎样的服务?他们怎么利用提供的服务?
是研发人员,有了IaaS层以后,他们就不需要等待公司的流程,盼星星盼月亮似地等着审批机器。IaaS层提供资助服务,完全可以由使用者自助申请,通过云管理平台审批,而后得到想要的机器。这种是直接提供虚拟机。
还有一种场景,我的IaaS层在外面是看不到东西的,这里的IaaS层只是为内部的中间件提供一个可部署、易维护的一个环境,而用户使用的服务是中间件提供的。这种我们得到的服务是间接的,看不到摸不着的。
我们可以像想,在我的I层有一堆的PC Server ,每台PC Server上都有内存、CPU、硬盘这些重要组件。虚拟化带来的切割资源,将一个性能较好的机器,切分成相对性能较差的机器。
未完待续……

Hadoop云计算资料收集

Hadoop云计算资料收集,会陆续更新……
先说下我本人对各种资料、信息来源的看法:
1、书:有些书不错,必须得买,必须得深入的看,这种书比较少;但有些书,乍一看书目很不错,但内容多为浅尝辄止,没啥新意,看看书目就行了,作为查找资料的依据,自学的大纲,不买;垃圾书就不说了。
2、培训:任何事情都有好坏两方面,我对此的态度是不排斥,也不喜欢;好多培训课程在课程安排上还是不错的,因此在自学的时候可以参考培训学校安排的学习路线,参加不参加培训看个人基础,关键是自己知道自己应该学什么,而不是别人告诉你,你要学什么充分利用培训网站上的课程表,安排自学路线,还是不错的方法。充分利用培训学校的培训视频,找到自己需要的知识点,切记,前提一定是知道自己想要学什么;
任何东东都有两面性,取其精华去其糟粕,学好技术才是我们最终目标,看事物的时候不能一刀切!
希望资源失效的时候,大家提醒下,也好及时删除,如果有什么资源,也欢迎大家及时分享。


云计算相关:
北航云计算视频教程  http://soft.buaa.edu.cn/MC/show.asp?id=534
重点推荐张荣典老师的《云计算之前生今世与未来》http://www.huijiangtan.com/pubcontent1.php


Hadoop相关:
史密斯学院关于Hadoop一些资料(英文的)   http://cs.smith.edu/classwiki/index.php/Category:Hadoop
高负载低延迟:动态算法+Hadoop+AWS+NoSQL解析 http://www.csdn.net/article/2013-01-18/2813788-analyzing-billions-of-credit-card-transa
csdn Hadoop专题:http://subject.csdn.net/hadoop/
Mapreduce相关,介绍的内容很基础和比较底层:http://www.importnew.com/?s=hadoop%E6%95%99%E7%A8%8B
如何给Hadoop集群选择硬件:http://blog.cloudera.com/blog/2013/08/how-to-select-the-right-hardware-for-your-new-hadoop-cluster/


Java:
java异常处理:http://www.importnew.com/5616.html
tomcat的配置: http://blog.lihai.me/deploy-webapp-on-tomcat.html
调度系统Quartz快速入门:http://www.importnew.com/4107.html


开源相关:
图灵社区,正在翻译的《开源软件架构》http://www.ituring.com.cn/book/1143#jtss-tsina

jenkins远程部署Deploy Plugin配置

jenkins远程部署配置
1、安装Deploy Plugin插件
This plugin takes a war/ear file and deploys that to a running remote application server at the end of a build. The implementation is based on Cargo. The list of currently supported containers include:
Tomcat 4.x/5.x/6.x/7.x
JBoss 3.x/4.x
Glassfish 2.x/3.x
远程部署不包括resin啊!
插件下载地址:http://ftp-nyc.osuosl.org/pub/jenkins/plugins/deploy/1.9/deploy.hpi
版本:1.9
插件地址:https://wiki.jenkins-ci.org/display/JENKINS/Deploy+Plugin
登录Jenkins
选择 Jenkins->系统管理->管理插件->高级 上传插件,选择deploy.hpi文件上传,上传完成后需要重新启动Jenkins
在插件管理的已安装标签下,可以看到“Deploy to container Plugin”,证明插件安装成功
2、配置job
build已经完成打war包功能,Deploy Plugin只是负责远程部署
在“构建后操作” 选择“deploy war/era to a container”
输入下面参数:
WAR/EAR files:war包路径
Context path:空白,未填,还没弄清楚用处
Container:下拉菜单,选择容器
Deploy on failure:未勾选,还没弄清楚用处
可参考下图:
远程部署配置
部署结果:
远程部署成功
部署碰到个问题:
Jenkins控制台没有报任何错误,build也是成功的,但是就是未在远端服务器看到war包,查了资料,原来war包路径错误会导致部署失败,但是不会报错(猜想:因为此时已经build完成了,不属于build的范围,所以不会改变build结果)。
解决问题参考这个网址: http://stackoverflow.com/questions/9277223/jenkins-auto-deploy-tomcat-7
I was having the same problem, and in my case the (relative) path to the WAR file was incorrect. Apparently if you don’t have it exactly correct (it needs to be relative to the workspace root) then the deploy plugin will silently fail. In my case the path was:
target/whatever.war
Once that was fixed, I ran into a different problem in that the plugin expects to connect to the manager/text version of Tomcat Manager, rather than the manager/html version that I usually configure by default. You’ll need a line in your tomcat-users.xml file like the following:
(This is in addition to the “manager-gui” role you probably already have set up.)
Once those changes were made, the build and deployment worked just fine.

环境准备-Hadoop安装过程

环境准备
1、利用vmware安装centOS6系统
2、Window开启VMware Network Adapter VMnet8
注意:虚拟机网络类型选择NAT;安装操作系统是开启网络默认启动;获取IP为DNS自动获取;虚拟机安装成功后,关闭防火墙;检查虚拟机网络和物理机网络是否能ping通;



虚拟机ping物理主机
3、安装jdk,版本大为1.6,采用sun公司的jdk而不是openjdk
参考:《Linux下安装jdk