



<?xml version="1.0" encoding="UTF-8"?>
<rss version="2.0"
	xmlns:content="http://purl.org/rss/1.0/modules/content/"
	xmlns:wfw="http://wellformedweb.org/CommentAPI/"
	xmlns:dc="http://purl.org/dc/elements/1.1/"
	xmlns:atom="http://www.w3.org/2005/Atom"
	xmlns:sy="http://purl.org/rss/1.0/modules/syndication/"
	xmlns:slash="http://purl.org/rss/1.0/modules/slash/"
	>

<channel>
	<title>爱说云网</title>
	<atom:link href="https://www.asyun.cn/feed" rel="self" type="application/rss+xml" />
	<link>https://www.asyun.cn</link>
	<description>云计算大数据互联网资讯平台</description>
	<lastBuildDate>Mon, 21 Mar 2016 07:44:51 +0000</lastBuildDate>
	<language>en-US</language>
		<sy:updatePeriod>hourly</sy:updatePeriod>
		<sy:updateFrequency>1</sy:updateFrequency>
	
	<item>
		<title>高可用与负载均衡的区别</title>
		<link>https://www.asyun.cn/2278.html</link>
		<comments>https://www.asyun.cn/2278.html#comments</comments>
		<pubDate>Mon, 21 Mar 2016 07:44:51 +0000</pubDate>
		<dc:creator><![CDATA[爱说云网]]></dc:creator>
				<category><![CDATA[云计算运维]]></category>

		<guid isPermaLink="false">http://www.asyun.cn/?p=2278</guid>
		<description><![CDATA[  声明：以下仅为个人的一些总结和随写，如有不对之处，还请看到的网友指出，以免误导。 （详细的配置方案请google，这里只说解决方案。） 1、熟悉几个组件 1.1、apache —— 它是Apache软件基金会的一个开放源代码的跨平台的网页服务器，属于老牌的web服务器了，支持基于Ip或者域名的虚拟主机，支持代理服务器，支持安全Socket层(SSL)等等，目前互联网主要使用它做静态资源服务器，也可以做代理服务器转发请求(如：图片链等)，结合tomcat等servlet容器处理jsp。 1.2、ngnix —— 俄罗斯人开发的一个高性能的 HTTP和反向代理服务器。由于Nginx 超越 Apache 的高性能和稳定性，使得国内使用 Nginx 作为 Web 服务器的网站也越来越多，其中包括新浪博客、新浪播客、网易新闻、腾讯网、搜狐博客等门户网站频道等，在3w以上的高并发环境下，ngnix处理能力相当于apache的10倍。 参考：apache和tomcat的性能分析和对比(http://blog.s135.com/nginx_php_v6/) 1.3、lvs —— Linux Virtual Server的简写，意即Linux虚拟服务器，是一个虚拟的服务器集群系统。由毕业于国防科技大学的章文嵩博士于1998年5月创立，可以实现LINUX平台下的简单负载均衡。了解更多，访问官网：http://zh.linuxvirtualserver.org/。 1.4、HAProxy      —— HAProxy提供高可用性、负载均衡以及基于TCP和HTTP应用的代理，支持虚拟主机，它是免费、快速并且可靠的一种解决方案。HAProxy特别适用于那些负载特大的web站点， 这些站点通常又需要会话保持或七层处理。HAProxy运行在当前的硬件上，完全可以支持数以万计的并发连接。并且它的运行模式使得它可以很简单安全的整合进您当前的架构中， 同时可以保护你的web服务器不被暴露到网络上. 1.5、keepalived —— 这里说的keepalived不是apache或者tomcat等某个组件上的属性字段，它也是一个组件，可以实现web服务器的高可用(HA high availably)。它可以检测web服务器的工作状态，如果该服务器出现故障被检测到，将其剔除服务器群中，直至正常工作后，keepalive会自动检测到并加入到服务器群里面。实现主备服务器发生故障时ip瞬时无缝交接。它是LVS集群节点健康检测的一个用户空间守护进程，也是LVS的引导故障转移模块（director failover）。Keepalived守护进程可以检查LVS池的状态。如果LVS服务器池当中的某一个服务器宕机了。keepalived会通过一 个setsockopt呼叫通知内核将这个节点从LVS拓扑图中移除。 1.6、memcached —— 它是一个高性能分布式内存对象缓存系统。当初是Danga Interactive为了LiveJournal快速发展开发的系统，用于对业务查询数据缓存，减轻数据库的负载。其守护进程(daemon)是用C写的，但是客户端支持几乎所有语言(客户端基本上有3种版本[memcache client for java;spymemcached;xMecache])，服务端和客户端通过简单的协议通信；在memcached里面缓存的数据必须序列化。 1.7、terracotta —— 是一款由美国Terracotta公司开发的著名开源Java集群平台。它在JVM与Java应用之间实现了一个专门处理集群功能的抽象层，允许用户在不改变系统代码的情况下实现java应用的集群。支持数据的持久化、session的复制以及高可用(HA)。详细参考：http://topmanopensource.iteye.com/blog/1911679 2、关键术语 2.1、负载均衡（load balance） 在互联网高速发展的时代，大数据量、高并发等是互联网网站提及最多的。如何处理高并发带来的系统性能问题，最终大家都会使用负载均衡机制。它是根据某种负载策略把请求分发到集群中的每一台服务器上，让整个服务器群来处理网站的请求。 公司比较有钱的，可以购买专门负责负载均衡的硬件（如：F5）,效果肯定会很好。对于大部分公司，会选择廉价有效的方法扩展整个系统的架构，来增加服务器的吞吐量和处理能力，以及承载能力。 2.2、集群（Cluster） 用N台服务器构成一个松耦合的多处理器系统(对外来说，他们就是一个服务器)，它们之间通过网络实现通信。让N台服务器之间相互协作，共同承载一个网站的请求压力。 2.3、高可用（HA） 在集群服务器架构中，当主服务器故障时，备份服务器能够自动接管主服务器的工作，并及时切换过去，以实现对用户的不间断服务。ps：这里我感觉它跟故障转移(failover)是一个意思，看到的网友给个解释，谢谢？ [&#8230;]]]></description>
				<content:encoded><![CDATA[<p style="margin: 0px; padding: 0px; color: #000000; font-family: Helvetica, Tahoma, Arial, sans-serif; font-size: 14px; line-height: 25.2px;"><strong><span style="font-size: 16px;">  <span style="text-decoration: underline;"><em>声明：以下仅为个人的一些总结和随写，如有不对之处，还请看到的网友指出，以免误导。 （详细的配置方案请google，这里只说解决方案。）</em></span></span></strong></p>
<p style="margin: 0px; padding: 0px; color: #000000; font-family: Helvetica, Tahoma, Arial, sans-serif; font-size: 14px; line-height: 25.2px;">
<p style="margin: 0px; padding: 0px; color: #000000; font-family: Helvetica, Tahoma, Arial, sans-serif; font-size: 14px; line-height: 25.2px;"><strong><span style="font-size: 16px;">1、熟悉几个组件</span></strong></p>
<p><strong>1.1、apache</strong><br />
—— 它是Apache软件基金会的一个开放源代码的跨平台的网页服务器，属于老牌的web服务器了，支持基于Ip或者域名的虚拟主机，支持代理服务器，支持安全Socket层(SSL)等等，目前互联网主要使用它做静态资源服务器，也可以做代理服务器转发请求(如：图片链等)，结合tomcat等servlet容器处理jsp。<br />
<strong>1.2、ngnix</strong><br />
—— 俄罗斯人开发的一个高性能的 HTTP和反向代理服务器。由于Nginx 超越 Apache 的高性能和稳定性，使得国内使用 Nginx 作为 Web 服务器的网站也越来越多，其中包括新浪博客、新浪播客、网易新闻、腾讯网、搜狐博客等门户网站频道等，在3w以上的高并发环境下，ngnix处理能力相当于apache的10倍。<br />
参考：apache和tomcat的性能分析和对比(http://blog.s135.com/nginx_php_v6/)<br />
<strong>1.3、lvs</strong><br />
—— Linux Virtual Server的简写，意即Linux虚拟服务器，是一个虚拟的服务器集群系统。由毕业于国防科技大学的章文嵩博士于1998年5月创立，可以实现LINUX平台下的简单负载均衡。了解更多，访问官网：http://zh.linuxvirtualserver.org/。</p>
<p style="margin: 0px; padding: 0px; color: #000000; font-family: Helvetica, Tahoma, Arial, sans-serif; font-size: 14px; line-height: 25.2px;"><strong>1.4、HAProxy</strong></p>
<p style="margin: 0px; padding: 0px; color: #000000; font-family: Helvetica, Tahoma, Arial, sans-serif; font-size: 14px; line-height: 25.2px;"><span style="font-family: 微软雅黑, Verdana, sans-serif, 宋体; font-size: 13px; line-height: 21.3333px;">     </span>—— <span style="font-family: 微软雅黑, Verdana, sans-serif, 宋体; font-size: 13px; line-height: 21.3333px;">HAProxy提供</span><strong style="margin: 0px; padding: 0px; font-family: 微软雅黑, Verdana, sans-serif, 宋体; font-size: 13px; line-height: 21.3333px;">高可用性</strong><span style="font-family: 微软雅黑, Verdana, sans-serif, 宋体; font-size: 13px; line-height: 21.3333px;">、</span><strong style="margin: 0px; padding: 0px; font-family: 微软雅黑, Verdana, sans-serif, 宋体; font-size: 13px; line-height: 21.3333px;">负载均衡</strong><span style="font-family: 微软雅黑, Verdana, sans-serif, 宋体; font-size: 13px; line-height: 21.3333px;">以及基于TCP和HTTP应用的代理，</span><strong style="margin: 0px; padding: 0px; font-family: 微软雅黑, Verdana, sans-serif, 宋体; font-size: 13px; line-height: 21.3333px;">支持虚拟主机</strong><span style="font-family: 微软雅黑, Verdana, sans-serif, 宋体; font-size: 13px; line-height: 21.3333px;">，它是免费、快速并且可靠的一种解决方案。HAProxy特别适用于那些负载特大的web站点， 这些站点通常又需要会话保持或七层处理。HAProxy运行在当前的硬件上，完全可以支持数以万计的并发连接。并且它的运行模式使得它可以很简单安全的整合进您当前的架构中， 同时可以保护你的web服务器不被暴露到网络上.</span><br />
<strong>1.5、keepalived</strong><br />
—— 这里说的keepalived不是apache或者tomcat等某个组件上的属性字段，它也是一个组件，可以实现web服务器的高可用(HA high availably)。它可以检测web服务器的工作状态，如果该服务器出现故障被检测到，将其剔除服务器群中，直至正常工作后，keepalive会自动检测到并加入到服务器群里面。实现主备服务器发生故障时ip瞬时无缝交接。它是LVS集群节点健康检测的一个用户空间守护进程，也是LVS的引导故障转移模块（director failover）。Keepalived守护进程可以检查LVS池的状态。如果LVS服务器池当中的某一个服务器宕机了。keepalived会通过一 个setsockopt呼叫通知内核将这个节点从LVS拓扑图中移除。<br />
<strong>1.6、memcached</strong><br />
—— 它是一个高性能分布式内存对象缓存系统。当初是Danga Interactive为了LiveJournal快速发展开发的系统，用于对业务查询数据缓存，减轻数据库的负载。其守护进程(daemon)是用C写的，但是客户端支持几乎所有语言(客户端基本上有3种版本[memcache client for java;spymemcached;xMecache])，服务端和客户端通过简单的协议通信；在memcached里面缓存的数据必须序列化。<br />
<strong>1.7、terracotta</strong><br />
—— 是一款由美国Terracotta公司开发的著名开源Java集群平台。它在JVM与Java应用之间实现了一个专门处理集群功能的抽象层，允许用户在不改变系统代码的情况下实现java应用的集群。支持数据的持久化、session的复制以及高可用(HA)。详细参考：http://topmanopensource.iteye.com/blog/1911679</p>
<p><strong><span style="font-size: 16px;">2、关键术语</span></strong><br />
<strong>2.1、负载均衡（load balance）</strong></p>
<p>在互联网高速发展的时代，大数据量、高并发等是互联网网站提及最多的。如何处理高并发带来的系统性能问题，最终大家都会使用负载均衡机制。它是根据某种负载策略把请求分发到集群中的每一台服务器上，让整个服务器群来处理网站的请求。<br />
公司比较有钱的，可以购买专门负责负载均衡的硬件（如：F5）,效果肯定会很好。对于大部分公司，会选择廉价有效的方法扩展整个系统的架构，来增加服务器的吞吐量和处理能力，以及承载能力。</p>
<p><strong>2.2、集群（Cluster）</strong></p>
<p>用N台服务器构成一个松耦合的多处理器系统(对外来说，他们就是一个服务器)，它们之间通过网络实现通信。让N台服务器之间相互协作，共同承载一个网站的请求压力。</p>
<p><strong>2.3、高可用（HA）</strong></p>
<p>在集群服务器架构中，当主服务器故障时，备份服务器能够自动接管主服务器的工作，并及时切换过去，以实现对用户的不间断服务。ps：这里我感觉它跟故障转移(failover)是一个意思，看到的网友给个解释，谢谢？</p>
<p><strong>2.4、session复制/共享</strong></p>
<p>在访问系统的会话过程中，用户登录系统后，不管访问系统的任何资源地址都不需要重复登录，这里面servlet容易保存了该用户的会话(session)。如果两个tomcat(A、B)提供集群服务时候，用户在A-tomcat上登录，接下来的请求web服务器根据策略分发到B-tomcat，因为B-tomcat没有保存用户的会话(session)信息，不知道其登录，会跳转到登录界面。<br />
这时候我们需要让B-tomcat也保存有A-tomcat的会话，我们可以使用tomcat的session复制实现或者通过其他手段让session共享。</p>
<p style="margin: 0px; padding: 0px; color: #000000; font-family: Helvetica, Tahoma, Arial, sans-serif; font-size: 14px; line-height: 25.2px;"><strong>3、常用web集群</strong></p>
<p><strong>3.1、tomcat集群方案</strong><br />
apache+tomcat；ngnix+tomcat；lvs+ngnix+tomcat；大家比较熟悉的是前两种。(lvs负责集群调度，nginx负责静态文件处理，tomcat负责动态文件处理[最优选择])。 以apache+tomcat集群为例，简单说一下：<br />
1、他们之间的通信有三种方式：ajp_proxy、mod_jk链接器、http_proxy。具体参考：http://www.ibm.com/developerworks/cn/opensource/os-lo-apache-tomcat/<br />
2、apache的分发策略有4种。权重(默认)、流量(bytraffic)、请求次数(byRequests)、繁忙程度(byBusyness根据活跃请求数的多少)<br />
3、apache支持stickysession(粘性session)，即为：访问用户访问了A-tomcat，那么他的所有请求都会转发到A-tomcat，而不会到B-tomcat。[这样的负载均衡效果不好，适用于小型网站，下面说非粘性session]<br />
4、它们之间的架构如图1：</p>
<p style="margin: 0px; padding: 0px; color: #000000; font-family: Helvetica, Tahoma, Arial, sans-serif; font-size: 14px; line-height: 25.2px;">
<img style="border: 0px;" src="http://dl2.iteye.com/upload/attachment/0096/4084/bb559448-9c44-3aef-9a6c-82c6b7d0ffe3.jpg" alt="" /></p>
<p style="margin: 0px; padding: 0px; color: #000000; font-family: Helvetica, Tahoma, Arial, sans-serif; font-size: 14px; line-height: 25.2px;"><span style="color: #ff0000;">问题1：只有一个web服务器，明显的单点故障。如果该apache出现问题，整个网站就会瘫痪。</span></p>
<p style="margin: 0px; padding: 0px; color: #000000; font-family: Helvetica, Tahoma, Arial, sans-serif; font-size: 14px; line-height: 25.2px;">
<p style="margin: 0px; padding: 0px; color: #000000; font-family: Helvetica, Tahoma, Arial, sans-serif; font-size: 14px; line-height: 25.2px;"><span style="color: #ff0000;"><strong><span style="color: #000000;">3.2、session复制</span></strong></span></p>
<p style="margin: 0px; padding: 0px; color: #000000; font-family: Helvetica, Tahoma, Arial, sans-serif; font-size: 14px; line-height: 25.2px;"><span style="color: #ff0000;"><br />
<span style="color: #000000;">  如果不采用stickysession(粘性session)，那么我们可以采用tomcat的session复制使所有节点tomcat的会话相同，tomcat使用组播技术，只要集群中一个tomcat节点的session发生改变，会广播通知所有tomcat节点发生改变。</span></p>
<p>问题2：据网友测试，当tomcat节点数达到4个以上时候，集群性能呈线性下滑；另外当用户访问量大到一定程度，会话内容随之增多，tomcat节点相互之间通信产生大量的网络消耗，产生网络阻塞，整个集群的吞吐量不能再上升。</span></p>
<p style="margin: 0px; padding: 0px; color: #000000; font-family: Helvetica, Tahoma, Arial, sans-serif; font-size: 14px; line-height: 25.2px;"><span style="color: #ff0000;"><br />
</span><strong>4、高可用(HA)和session共享(解决上面提到的两个问题)</strong></p>
<p style="margin: 0px; padding: 0px; color: #000000; font-family: Helvetica, Tahoma, Arial, sans-serif; font-size: 14px; line-height: 25.2px;">
<strong>4.1、使用lvs+keepalive实现集群高可用，达到更健壮的LB</strong><br />
我们可以做前端使用lvs来做负载均衡，根据lvs的8种调度算法(可设置)，分发请求到对应的web服务器集群上。lvs做双机热备，通过keepalived模块能够达到故障自动转移到备份服务器，不间断提供服务，结构如图2：</p>
<p style="margin: 0px; padding: 0px; color: #000000; font-family: Helvetica, Tahoma, Arial, sans-serif; font-size: 14px; line-height: 25.2px;"><img class="magplus" style="border: 0px; cursor: url('/images/magplus.gif'), pointer;" title="点击查看原始大小图片" src="http://dl2.iteye.com/upload/attachment/0096/4662/5389ba90-3091-3b3b-a149-fbf47fc6f736.jpg" alt="" width="700" height="530" /></p>
<p><em><span style="color: #ff0000;"> </span></em><span style="color: #ff0000; font-family: 'Microsoft YaHei', 微软雅黑, SimHei, tahoma, arial, helvetica, sans-serif;">说明：据查询了解，一般在WEB端使用的负载均衡比较多的是HAProxy+keepalived+nginx；数据库mysql集群使用Lvs+keepalived+mysql实现。因为HAProxy和nginx一样是工作在网络7层之上，并且前者弥补了nginx的一些缺点如session的保持，cookie的引导等，且它本身是个负责均衡软件，处理负载均衡上面必然优于nginx；lvs比较笨重，对于比较庞大的网络应用实施比较复杂，虽然它运行在网络4层之上，仅做分发没有流量产生，但是它不能做正则处理也不能也不能做动静分离，所以一般用lvs+keepalived或heatbeat做数据库层的负载均衡。</span></p>
<p style="margin: 0px; padding: 0px; color: #000000; font-family: Helvetica, Tahoma, Arial, sans-serif; font-size: 14px; line-height: 25.2px;"><a style="color: #e9650e;" href="http://www.blogjava.net/ivanwan/archive/2013/12/25/408014.html" target="_blank">LVS、HAProxy、Nginx做负载均衡的比较</a><br />
<strong>4.2、使用terracotta或者memcached使session共享</strong>
</p>
<p style="margin: 0px; padding: 0px; color: #000000; font-family: Helvetica, Tahoma, Arial, sans-serif; font-size: 14px; line-height: 25.2px;"><strong> 4.2.1、terracotta是jvm级别的session共享</strong></p>
<p style="margin: 0px; padding: 0px; color: #000000; font-family: Helvetica, Tahoma, Arial, sans-serif; font-size: 14px; line-height: 25.2px;"> 它基本原理是对于集群间共享的数据，当在一个节点发生变化的时候，Terracotta只把变化的部分发送给Terracotta服务器，然后由服务器把它转发给真正需要这个数据的节点，并且共享的数据对象不需要序列化。</p>
<p style="margin: 0px; padding: 0px; color: #000000; font-family: Helvetica, Tahoma, Arial, sans-serif; font-size: 14px; line-height: 25.2px;">
<p style="margin: 0px; padding: 0px; color: #000000; font-family: Helvetica, Tahoma, Arial, sans-serif; font-size: 14px; line-height: 25.2px;"><strong>4.2.2、通过memcached实现内存级session共享</strong></p>
<p style="margin: 0px; padding: 0px; color: #000000; font-family: Helvetica, Tahoma, Arial, sans-serif; font-size: 14px; line-height: 25.2px;">通过memcached-session-manager（msm）插件，通过tomcat上一定的配置，即可实现把session存储到memcached服务器上。注意：tomcat支持tomcat6+，并且memcached可以支持分布式内存，msm同时支持黏性session（sticky sessions）或者非黏性session（non-sticky sessions）两种模式，在memcached内存中共享的对象需要序列化。结构如图3：</p>
<p style="margin: 0px; padding: 0px; color: #000000; font-family: Helvetica, Tahoma, Arial, sans-serif; font-size: 14px; line-height: 25.2px;">
<p><img style="border: 0px;" src="http://dl2.iteye.com/upload/attachment/0096/4664/ea0fdbe1-df9d-3014-9012-1c674bfdfc5c.jpg" alt="" />
</p>
<p style="margin: 0px; padding: 0px; color: #000000; font-family: Helvetica, Tahoma, Arial, sans-serif; font-size: 14px; line-height: 25.2px;">  通过一定的配置，可以实现故障转移(只支持对非粘性session)。如：</p>
<div id="" class="dp-highlighter" style="font-family: Monaco, 'DejaVu Sans Mono', 'Bitstream Vera Sans Mono', Consolas, 'Courier New', monospace; font-size: 12px; width: 679px; overflow: auto; margin-left: 9px; padding: 1px; word-break: break-all; word-wrap: break-word; color: #000000; line-height: 25.2px;">
<div class="bar">
<div class="tools" style="padding: 3px; margin: 0px; font-weight: bold;">Xml代码  <a style="color: #e9650e; text-decoration: underline;" title="收藏这段代码"><img class="star" style="border: 0px;" src="http://aokunsang.iteye.com/images/icon_star.png" alt="收藏代码" /></a></div>
</div>
<ol class="dp-xml" style="font-size: 1em; line-height: 1.4em; margin: 0px 0px 1px; padding: 2px 0px; border: 1px solid #d1d7dc; color: #2b91af;" start="1">
<li style="font-size: 1em; margin: 0px 0px 0px 38px; padding: 0px 0px 0px 10px; border-left-width: 1px; border-left-style: solid; border-left-color: #d1d7dc; line-height: 18px; background-color: #fafafa;"><span style="color: black;"><span class="tag" style="color: #006699; font-weight: bold;">&lt;</span><span class="tag-name" style="color: #006699; font-weight: bold;">Context</span><span class="tag" style="color: #006699; font-weight: bold;">&gt;</span>    </span></li>
<li style="font-size: 1em; margin: 0px 0px 0px 38px; padding: 0px 0px 0px 10px; border-left-width: 1px; border-left-style: solid; border-left-color: #d1d7dc; line-height: 18px; background-color: #fafafa;"><span style="color: black;">      ...    </span></li>
<li style="font-size: 1em; margin: 0px 0px 0px 38px; padding: 0px 0px 0px 10px; border-left-width: 1px; border-left-style: solid; border-left-color: #d1d7dc; line-height: 18px; background-color: #fafafa;"><span style="color: black;">      <span class="tag" style="color: #006699; font-weight: bold;">&lt;</span><span class="tag-name" style="color: #006699; font-weight: bold;">Manager</span> <span class="attribute" style="color: red;">className</span>=<span class="attribute-value" style="color: blue;">"de.javakaffee.web.msm.MemcachedBackupSessionManager"</span>    </span></li>
<li style="font-size: 1em; margin: 0px 0px 0px 38px; padding: 0px 0px 0px 10px; border-left-width: 1px; border-left-style: solid; border-left-color: #d1d7dc; line-height: 18px; background-color: #fafafa;"><span style="color: black;">        <span class="attribute" style="color: red;">memcachedNodes</span>=<span class="attribute-value" style="color: blue;">"n1:host1.yourdomain.com:11211,n2:host2.yourdomain.com:11211"</span>    </span></li>
<li style="font-size: 1em; margin: 0px 0px 0px 38px; padding: 0px 0px 0px 10px; border-left-width: 1px; border-left-style: solid; border-left-color: #d1d7dc; line-height: 18px; background-color: #fafafa;"><span style="color: black;">        <span class="attribute" style="color: red;">failoverNodes</span>=<span class="attribute-value" style="color: blue;">"n1"</span>    </span></li>
<li style="font-size: 1em; margin: 0px 0px 0px 38px; padding: 0px 0px 0px 10px; border-left-width: 1px; border-left-style: solid; border-left-color: #d1d7dc; line-height: 18px; background-color: #fafafa;"><span style="color: black;">        <span class="attribute" style="color: red;">requestUriIgnorePattern</span>=<span class="attribute-value" style="color: blue;">".*\.(ico|png|gif|jpg|css|js)$"</span>    </span></li>
<li style="font-size: 1em; margin: 0px 0px 0px 38px; padding: 0px 0px 0px 10px; border-left-width: 1px; border-left-style: solid; border-left-color: #d1d7dc; line-height: 18px; background-color: #fafafa;"><span style="color: black;">        <span class="attribute" style="color: red;">transcoderFactoryClass</span>=<span class="attribute-value" style="color: blue;">"de.javakaffee.web.msm.serializer.kryo.KryoTranscoderFactory"</span>    </span></li>
<li style="font-size: 1em; margin: 0px 0px 0px 38px; padding: 0px 0px 0px 10px; border-left-width: 1px; border-left-style: solid; border-left-color: #d1d7dc; line-height: 18px; background-color: #fafafa;"><span style="color: black;">        <span class="tag" style="color: #006699; font-weight: bold;">/&gt;</span>    </span></li>
<li style="font-size: 1em; margin: 0px 0px 0px 38px; padding: 0px 0px 0px 10px; border-left-width: 1px; border-left-style: solid; border-left-color: #d1d7dc; line-height: 18px; background-color: #fafafa;"><span style="color: black;"><span class="tag" style="color: #006699; font-weight: bold;">&lt;/</span><span class="tag-name" style="color: #006699; font-weight: bold;">Context</span><span class="tag" style="color: #006699; font-weight: bold;">&gt;</span>  </span></li>
</ol>
</div>
<p style="margin: 0px; padding: 0px; color: #000000; font-family: Helvetica, Tahoma, Arial, sans-serif; font-size: 14px; line-height: 25.2px;"> 说明：failoverNodes：故障转移节点，对非粘性session不可用。属性failoverNodes="n1"的作用是告诉msm最好是把session保存在memcached "n2"节点上，只有在n2节点不可用的情况下才把session保存在n1节点。这样即使host2上的tomcat宕机，仍然可以通过host1上的tomcat访问存放在memcached "n1" 节点中的session。</p>
<p><strong>4.2.3、其他方案</strong><br />
通过cookie保存用户信息(一般是登录信息)，每一个请求到达web应用的时候，web应用从cookie中取出数据进行处理（这里尽量对cookie做加密处理）；<br />
另外一种是把用户信息的关键属性保存到数据库，这样就不需要session了。请求过来从数据库查询关键属性数据，做相应处理。<strong><em>缺点：加大了数据库的负载，使数据库成为集群的瓶颈。</em></strong></p>
<p><span style="font-weight:bold;text-shadow:0 1px 0 #ddd;">声明:</span> 本文采用 <a rel="nofollow" href="http://creativecommons.org/licenses/by-nc-sa/3.0/" title="署名-非商业性使用-相同方式共享">BY-NC-SA</a> 协议进行授权 | <a href="https://www.asyun.cn">爱说云网</a><br />转载请注明转自《<a rel="bookmark" title="高可用与负载均衡的区别" href="https://www.asyun.cn/2278.html">高可用与负载均衡的区别</a>》</p>]]></content:encoded>
			<wfw:commentRss>https://www.asyun.cn/2278.html/feed</wfw:commentRss>
		<slash:comments>0</slash:comments>
		</item>
		<item>
		<title>lamp架构师必看经典</title>
		<link>https://www.asyun.cn/2276.html</link>
		<comments>https://www.asyun.cn/2276.html#comments</comments>
		<pubDate>Thu, 07 Jan 2016 06:03:31 +0000</pubDate>
		<dc:creator><![CDATA[爱说云网]]></dc:creator>
				<category><![CDATA[云计算运维]]></category>
		<category><![CDATA[lamp]]></category>
		<category><![CDATA[架构师]]></category>
		<category><![CDATA[运维]]></category>

		<guid isPermaLink="false">http://www.asyun.cn/?p=2276</guid>
		<description><![CDATA[LVS 工作在四层，内核态，性能极高，有VIP功能，配合 keepalived 做有效的 心跳检查和负载均衡安装配置麻烦， HAProxy 工作在四层到七层，功能强大，有VIP功能，配置简单，CPU占用高 Nginx 工作在七层，应用层功能多，配置简单，无法支持VIP功能 负载均衡器测试数据 软件 每秒并发量 CPU占用 结论 LVS (DR模式) 1.6W25%性能综合比最好，配置复杂 HAProxy 2.3W 95% 转发快，CPU占用高，配置简单 Nginx2W 80% 转发没有haproxy快，CPU比haproxy占用低 机器足够并且应用重要建议独立使用LVS或HAProxy，机器不足使用 Nginx ======================================== 反向代理 1.varnish在高负载下以CPU和内存为代价,比squid 2.6提高8%,但是绝非10倍~20倍. 2.squid 3.0的性能比2.6更低.而非更高.相反,3.0是最不稳定以及性能最差的. 3.squid 2.7的性能比2.6低,但是CPU和内存占用率控制的更好. nginx+远程cache处理能力是2万次/秒；varnish在大部分本地cache命中情况下处理能力是3万次/秒； ======================================== HTTP Server Apache 2.2版本非常稳定强大 Preworker模式取消了进程创建开销，性能很高 Nginx 基于异步IO模型，性能强悍，能够支持数万并发 对小文件支持很好，性能很高 代码优美，扩展库必须编译进主程序 Lighttpd 基于异步IO模型，性能Nginx没有差别 扩展库是SO模式，比Nginx要灵活 全球使用率比以前低，安全性没有上面两个好 Web服务器静态内容测试数据 处理静态文件Apache 性能比 nginx和lighttpd要差 Nginx在处理小文件优势明显 Web服务器动态内容测试数据 [&#8230;]]]></description>
				<content:encoded><![CDATA[<p>LVS 工作在四层，内核态，性能极高，有VIP功能，配合 keepalived 做有效的 心跳检查和负载均衡安装配置麻烦， HAProxy 工作在四层到七层，功能强大，有VIP功能，配置简单，CPU占用高 Nginx 工作在七层，应用层功能多，配置简单，无法支持VIP功能 负载均衡器测试数据 软件 每秒并发量 CPU占用 结论 LVS (DR模式) 1.6W25%性能综合比最好，配置复杂 HAProxy 2.3W 95% 转发快，CPU占用高，配置简单 Nginx2W 80% 转发没有haproxy快，CPU比haproxy占用低 机器足够并且应用重要建议独立使用LVS或HAProxy，机器不足使用 Nginx ======================================== 反向代理 1.varnish在高负载下以CPU和内存为代价,比squid 2.6提高8%,但是绝非10倍~20倍. 2.squid 3.0的性能比2.6更低.而非更高.相反,3.0是最不稳定以及性能最差的. 3.squid 2.7的性能比2.6低,但是CPU和内存占用率控制的更好. nginx+远程cache处理能力是2万次/秒；varnish在大部分本地cache命中情况下处理能力是3万次/秒； ======================================== HTTP Server Apache 2.2版本非常稳定强大 Preworker模式取消了进程创建开销，性能很高 Nginx 基于异步IO模型，性能强悍，能够支持数万并发 对小文件支持很好，性能很高 代码优美，扩展库必须编译进主程序 Lighttpd 基于异步IO模型，性能Nginx没有差别 扩展库是SO模式，比Nginx要灵活 全球使用率比以前低，安全性没有上面两个好 Web服务器静态内容测试数据 处理静态文件Apache 性能比 nginx和lighttpd要差 Nginx在处理小文件优势明显 Web服务器动态内容测试数据 处理动态内容三者相差不大(测试环境差异)，主要是取决于PHP和数据库的处理性能 ========================================= PHP 版本选择 PHP 4：马上抛弃它吧，低下的性能，不完整的面向对象支持 PHP 5.2.x：成熟稳定，各种扩展都支持，性能卓越，建议使用 PHP 5.3.x：有一些包括Unicode、命名空间之类的新功能，看个人喜好 工作模式选择 Mod_php5.so：如果使用Apache的话，简单配置，可以使用本模式，挺稳定，性能不错 FastCGI模式：推荐结合 php-fpm 的 fastcgi模式，性能很高，工作稳定，而且可以跟 Apache、Nginx、Lighttpd 完美结合 其他 注意安全配置，注意 safe_mode、open_base_dir 等选项 停掉不需要使用的PHP扩展 大部分的消耗在文件引用上(include/require) SQL语句不要放在for循环里面执行，最好能用group by之类解决，或者合并写入 出了问题再profile你的PHP代码 通过auto loading 实现lazy loading 相比较运行速度，更需要注意memory limit，尤其是一些shell处理脚本 影响不大的性能优化 不要用array_key_exists，用isset来判断键值是否在数组中 如有可能，采用static静态方法 避免使用__set, __get等魔术方法 set是get 3倍速度 使用echo代替print() 使用include、require代替include_once、require_once @操作符是邪恶的 不要把count/strlen/sizeof 放到for 循环的条件语句中 …… 通过set_error_handler来捕获线上运行错误，统一收集日志、报警 通过register_shutdown_function来捕获fatal errors、记录运行时间 ============================= MySQL MyISAM与Innodb MyISAM的读性能是比Innodb强 MyISAM的索引和数据是分开的，并且索引是有压缩的 Innodb是索引和数据是紧密捆绑的，没有使用压缩从而会造成Innodb比MyISAM体积庞大不小 innodb不信任操作系统 MyISAM不支持外键 Innodb支持 MyISAM不支持事务 Innodb支持 MyISAM只支持表所 Innodb支持行锁 对数据信息的存储方式不同，MyISAM创建一张表对应3个文件，Innodb则只有一个文件.frm，数据存储在ibdata1 自己insert into tt select * from tt MyISAM：表级锁、查询快(500W)，可以count Innodb：行级锁、事务支持（隔离级别），不要count，要设置主键 重要的配置： Max_connections、Query_cache、key_buffer、sort_buffer Innodb_buffer_pool_size、 innodb_flush_log_at_trx_commit -------------------------- 恢复 不小心update一个表where写的范围不对，导致这个表没法正常用了，这个时候MyISAM的优越性就体现出来了，随便从当天拷贝的压缩包取出对应表的文件，随便放到一个数据库目录下，然后dump成sql再导回到主库，并把对应的binlog补上。如果是Innodb，恐怕不可能有这么快速度 -------------------------- 锁表 select count(*) 和order by 是最频繁的，大概能占了整个sql总语句的60%以上的操作，而这种操作Innodb其实也是会锁表的，很多人以为Innodb是行级锁，那个只是where对它主键是有效，非主键的都会锁全表的。 ------------------------- 大小 保证数据库单个实例尽量不要超过150G。 受文件系统操作限制，文件数过大需要更多文件句柄，且大目录 操作造成、压缩、备份效率低。 - 打开表占用数据库资源（table_cache） √ 建议一个库不应超过300-400个表 √ 建议一般带char字段的表不应超过500万rows.基于数字的字段为主的表不要超过1000万rows. 切分尽量多的小实例，一个机器跑7-8个实例，平常load avg不超过1-2，峰值不超过6-7为合理。 ------------------------- 主从 通过分多个主库,便于未来可扩展 通过使用replicate_do_db(table)来解决从库追主库延迟时间较长的问题由于mysql的从库只能单进程追，而通过上述方式，就能形成多进程追不同库来减少延迟，缺点是管理成本会很大。 --------------------------- 多IDC 通过多IDC提升数据库平台99.999%稳定性 --------------------------- 分表 按时间(财经) 按ID号hash分(统一通行证) 按业务项目(通用投票) 对数据进行Sharding：分表，分库 垂直切分：按照业务或产品切分 水平切分：按照数据拆分，比如mod或div ----------------------------- merge引擎 提升代码开发速度 1. 比如有些项目，需要定期存用户离线消息，可以采取程序只访问对应的merge表，然后merge表对应7个子表(比如周一到周日)。 2. 比如统计项目，可能分表策略是每个月一个表，然后要做如一季度，二季度的统计，为 了方便开发，可以采取程序只访问对应merge表，然后自由结合1234，N表作为merge表的子表。 --------------------------- 索引 正确使用索引，避免全表搜索 使用定长表,且定期做OPTIMIZE TABLE命令（注意这个命令会锁表，请在数据库访问小的时候做） 在对大表进行添加索引，一定要选择访问小的时间段做，否则会导致严重问题。 注:一般临晨2-3点时候是大部分项目访问的低谷。 索引优化，选择实验 稳妥地改进 将需要优化的相关表到测试环境 在测试环境启动一个测试daemon，关闭query cache或是使用select SQL_NO_CACHE 方式。 未优化时测试若干次查询时间，以及explain检查扫描集。 选择合适的索引试验建立。可以通过use index(xx)来强制使用。检查是否有效。 测试查询时间变化，反复试验得到最优结果 保持关注，根据情况随时改变索引设置 采取从库不同索引的模式来提升性能 比如有些项目，有很多不同的排序需求，需 要建立很多索引，但是如果都加必然导致性 能下降，所以采取不同功能使用对应索引的 从库来解决。 Oracle索引使用原则： 大表上建索引才有意义； 在where子句或是连接条件上经常引用的列上建索引； 索引层次不要超过4层； 很少或不引用的字段不宜使用索引； 逻辑性的字段，如男女，是否等不宜使用索引。 Oracle缺点分析： 建立索引，系统要占用大约是表的1.2倍的硬盘和内存空间来保存索引； 更新数据的时候，系统必须要有额外的时间来同时对索引更新，以维持数据和索引的一致性 ------------------------------------- 查询 尽量减少查询 可以缓存的就不要查数据库 部分数据可以借助比如 Shpinx解决，检索需求 要注意的查询 给需要的字段加上索引，比如需要 WHERE 或者 ORDER BY 的字段 不要LIKE ‘%key%’，不使用索引，可以 LIKE ‘key%’ 如果可以，少使用 SELECT * FROM XX，尽量查询自己需要的字段 避免使用 JOIN/GROUP BY/DISTINCK INNODB表不要count ------------------------------------- 排序 尽量使用带主键的字段做order by 的排序 尽量不要多提供页面的查找（最好只提供100页内），避免机器爬虫抓取数据，导致数据库压力负载过高。因为做order by field1 limit xxxxxx,20是非常消耗数据库资源。 ------------------------------------- 批量 通过使用insert批量的方式来提升主库的写速度，通过批量values模式都能提升主库写性能。 -------------------------------------- key-value 通过简单的key-value模式数据库来处理简单逻辑业务，如berkeley DB, LightCloud, Tokyo Tyrant ------------------------------------ NoSQL 通过Memcache来缓冲频繁update的数据库 比如通过设定阀值500次才往数据库做一次写操作，或是间隔30分钟往数据库写一次。 ------------------------------------ 硬件 SSD &gt; SAS &gt; SCSI，随机存取 内存越大越好，多核CPU ------------------------------------- 补丁 通过使用如ebay公司开发的heap补丁来解决一些如session业务比如跑一些数据总大小不会很大，但是update特别频繁的，比如用户状态值，补丁的好处是省内存。 Q4M 消息队列 MemcacheQ ------------------------------------ 监控 进程列表 mysql&gt;show processlist; profiling 该方式默认是关闭的。 可以通过以下语句查看 mysql&gt;select @@profiling; mysql&gt;set profiling=1; //打开 执行需要测试的sql 语句： mysql&gt; show profiles; 通过指定的Query_ID 来查询指定的sql语句的执行信息： mysql&gt; show profile for query 1; 测试完毕以后 ，关闭参数： mysql&gt; set profiling=0 数据库连接池 MySQL Proxy 性能不是太好，目前功能不完善 无法进行读写分离，需要自己写Lua脚本实现 SQL Relay 业内普遍反映不好用 ------------------------------ Oracle 据说 Oracle 5000个并发连接吃力 =================================================== InnoDB还是MyISAM 再谈MySQL存储引擎的选择 http://database.51cto.com/art/200905/124370.htm 邵宗文：数据库极限性能测试修正版 http://wenku.baidu.com/view/1a6ebe717fd5360cba1adbca.html Centos5.6下MySQL Proxy0.8.2的安装及测试 http://database.51cto.com/art/201203/324475.htm ===================== NoSQL Ttserver-2G(32bit) MongoDB-2.5(32bit) MongoDB 文档数据库，介于 Key-&gt;Value 数据库和关系数据库之间 无存储引擎，高写入性能，内存越大，性能越好 AutoSharding、主从 操作简单，会JavaScript就会操作MongoDB 发展中，业内有应用，百度(商业产品)、淘宝（监控中心）、视觉中国 缺点： 最大单记录 16M 比较浪费磁盘：4亿 数据 500G磁盘 Redis 可持久化的缓存服务 纯粹Key -&gt;Value结构，存储数据类型丰富：String/List/Set 可以持久化，可以主从同步 缺点： 主从同步拷贝整个镜像文件 内存大小限制了能存储最大持久化文件大小 Memcached 32位机上开辟内存不要超过2G，建议可以多开几个进程 如果没有富余的机器可以跟Web一起部署 它单个数据值长度不能超过1M 数据存储最长有效期是30天</p>
<p><span style="font-weight:bold;text-shadow:0 1px 0 #ddd;">声明:</span> 本文采用 <a rel="nofollow" href="http://creativecommons.org/licenses/by-nc-sa/3.0/" title="署名-非商业性使用-相同方式共享">BY-NC-SA</a> 协议进行授权 | <a href="https://www.asyun.cn">爱说云网</a><br />转载请注明转自《<a rel="bookmark" title="lamp架构师必看经典" href="https://www.asyun.cn/2276.html">lamp架构师必看经典</a>》</p>]]></content:encoded>
			<wfw:commentRss>https://www.asyun.cn/2276.html/feed</wfw:commentRss>
		<slash:comments>0</slash:comments>
		</item>
		<item>
		<title>存储极客 &#124; 再不拥抱Docker容器，你的存储就out了！</title>
		<link>https://www.asyun.cn/2274.html</link>
		<comments>https://www.asyun.cn/2274.html#comments</comments>
		<pubDate>Wed, 06 Jan 2016 02:12:37 +0000</pubDate>
		<dc:creator><![CDATA[爱说云网]]></dc:creator>
				<category><![CDATA[虚拟化技术]]></category>

		<guid isPermaLink="false">http://www.asyun.cn/?p=2274</guid>
		<description><![CDATA[以Docker为代表的容器，在人们眼中是平台层面的技术。与属于基础架构层面的虚拟机相比，容器看似与底层存储设备没有什么必然的联系，甚至许多情况下使用本地存储就可以了。那么Docker到底有没有企业存储方面的需求？它与传统存储阵列之间有哪些需要配合的地方呢？ 从企业存储生态系统到Docker结合点 Copy-On-Write机制的Docker存储卷，支持LVM、ZFS、BTRFS、AUFS和OverlayFS等几种供给格式。 随着每一轮新技术热潮的来袭，从事技术工作的笔者都会有一种“危机感”，毕竟包括企业级在内的IT行业更新太快，不坚持学习就很容易落伍。 从虚拟化、云计算、大数据，一直到软件定义无不如此，我们谨慎地关注着每个概念中有多少炒作的泡沫？当然也会有真正改变用户IT消费方式的变革，包括与传统基础设施，特别是服务器、存储设备的结合点；还有公共云服务、Server SAN/超融合这样的颠覆。 具体到技术和厂商，比如下图中的VMware、微软（Hyper-V和Azure）；新一轮还在发展完善中的开源虚拟化管理/云平台OpenStack；还有本文要讨论的重点——Docker容器。 现在有一种比较激进的思想，未来一切都是软件定义的，传统商业存储阵列将会慢慢失去市场。我们看到了VSAN的出现——至少目前它的应用还是有局限，而不是万能的；我们也看到搭车OpenStack/KVM而火热的Ceph开源分布式存储，但它距离成熟易用还有很大的一段距离。因此在当前，虚拟化/云计算平台一直在加强对传统外部共享存储的支持，容器也不例外。 本文中引用了一些来自戴尔的资料，但它们都具有普适性，我们接下来的话题也会围绕通用技术趋势，而不是专属于某一家具体的产品。 上图列出了存储系统与领先的技术合作伙伴间的管理整合，这些是行业内一线厂商基本都要去做的工作。大致包括以下几个方面： 虚拟化整合：VMware VAAI、VASA、VVOL，微软Hyper-V对应的API支持等，由于本文主题在这里不详细介绍了。 云平台整合：OpenStack针对块存储设备支持的Cinder driver等。 应用保护整合：生成和管理具备Oracle数据库等应用程序一致性的快照/恢复点，也包括Windows VSS、VMware虚拟机的支持。 备份软件整合：通过流行的备份软件对生成快照的数据进行保护，从而确保可恢复性，这里列出了赛门铁克（严格说现在算Veritas）和CommVault。如果是基于戴尔 SC存储快照的备份，应该还有自家的NetVault备份软件可以支持。（详见：《DellWorld2015快讯：NetVault Backup11智能备份详解》） 应用监控整合：如Foglight，是戴尔收购Quest获得的高级应用监控解决方案。我记得EMC等厂商也提供类似的软件产品 Docker容器整合：针对SAN共享块存储设备的容器卷管理系统。 Flocker拥有“无限可能”的卷管理器 目前我们看到包括EMC、戴尔SC系列在内的几家存储厂商/产品家族，都在与ClusterHQ公司的Flocker合作——一个针对Docker应用开源的容器数据卷管理器，它能够像本地存储那样对基于块的共享存储提供良好支持。 Flocker带来了灵活性和扩展性，它提供的工具能够： ●迁移数据 ●运行容器化状态的服务（例如数据库） ●可移动性 - 在集群中的任意容器上使用 ●管理Docker容器和数据卷 ●卷跟随容器在主机之间（移动） ●由控制服务提供的REST API接口 与 Flocker结合之后，存储阵列拥有“无限可能”。Flocker可以支持较高版本的CentOS和Ubuntu Linux服务器（不排除有更新增加）；可以使用的数据卷除了共享块存储之外，还有“本地”存储——我们理解后者中也包括被虚拟机视为本地存储的 Amazon EBS、OpenStack Ceph RBD和Swift中的镜像挂载，还有RackSpace云设施里类似的实现。 Flocker还可以与Linux上运行的任意数据库一起工作，这里面包括传统关系型的MySQL、PostgreSQL，也有新兴的MongoDB、Redis和RabbitMQ等。上图中并未列出Oracle，应该是因为Oracle已经有并且推荐使用自己的存储管理器ASM，直接控制到磁盘/SSD/LUN一级，Oracle一直不官方支持除自家VM之外的虚拟机环境，我们也没听说过有人在容器中使用。 共享块存储容器迁移、能否做HA？   我们来看一下使用了Flocker之后有何不同。在原生Docker环境，当一台服务器上运行的容器化有状态服务（数据库）迁移至另一台时，其数据卷会留在原地，在新的服务器上启动的容器没有任何数据。也就是说，在迁移之前需要先手动停止容器并复制数据到新的服务器才能使用。 而在使用了Flocker之后，当容器移动时数据卷与它一起移动，您的数据库（容器）能够保持其数据状态。这里大家有没有联想到VMware的vMotion呢？传统并且最实用的vMotion虚拟机迁移是需要vmdk镜像位于共享存储上的，在这里戴尔SC阵列是同样的角色，我想与Flocker合作的其他传统存储厂商也是类似情况。 最后，具体到戴尔的存储是如何与Flocker一同工作呢？如上图，我们看到SC阵列上有一个100TB的LUN 10映射到2台服务器，其中Ubuntu Docker Host 1在上面运行了一个MongoDB容器。当Flocker迁移容器时，会一并发送指令给戴尔存储插件（由存储厂商与Flocker合作开发）迁移卷到Ubuntu Docker Host 2。 这里并不需要真正的数据拷贝，简单理解应该是一个把MongoDB卷从Host 1的容器上解除注册，然后将其注册到Host [&#8230;]]]></description>
				<content:encoded><![CDATA[<p style="line-height: 24.0pt; word-break: break-all; margin: 0in 0in 15.0pt 0in;"><span lang="ZH-CN" style="font-family: 宋体; mso-bidi-font-family: 宋体; color: #5f5f5f;">以</span><span style="font-family: 'microsoft yahei',serif; color: #5f5f5f;">Docker</span><span lang="ZH-CN" style="font-family: 宋体; mso-bidi-font-family: 宋体; color: #5f5f5f;">为代表的容器，在人们眼中是平台层面的技术。与属于基础架构层面的虚拟机相比，容器看似与底层存储设备没有什么必然的联系，甚至许多情况下使用本地存储就可以了。那么</span><span style="font-family: 'microsoft yahei',serif; color: #5f5f5f;">Docker</span><span lang="ZH-CN" style="font-family: 宋体; mso-bidi-font-family: 宋体; color: #5f5f5f;">到底有没有企业存储方面的需求？它与传统存储阵列之间有哪些需要配合的地方呢？</span></p>
<p style="margin: 0in 0in 0.0001pt; line-height: 24pt; word-break: break-all; font-stretch: normal;"><strong style="font-stretch: normal;"><span lang="ZH-CN" style="font-size: 10.5pt; font-family: 宋体; color: #666666; border: none windowtext 1.0pt; mso-border-alt: none windowtext 0in; padding: 0in;">从企业存储生态系统到</span></strong><strong><span style="font-size: 10.5pt; font-family: 宋体; color: #666666; border: none windowtext 1.0pt; mso-border-alt: none windowtext 0in; padding: 0in;">Docker<span lang="ZH-CN">结合点</span></span></strong></p>
<p style="margin: 0in 0in 0.0001pt; text-align: center; line-height: 24pt; word-break: break-all; font-stretch: normal;" align="center"><b><span style="font-size: 10.5pt; font-family: 宋体; color: #666666; border: none windowtext 1.0pt; mso-border-alt: none windowtext 0in; padding: 0in; mso-no-proof: yes;"><!-- [if gte vml 1]><v:shapetype<br />
 id="_x0000_t75" coordsize="21600,21600" o:spt="75" o:preferrelative="t"<br />
 path="m@4@5l@4@11@9@11@9@5xe" filled="f" stroked="f"><br />
 <v:stroke joinstyle="miter"/><br />
 <v:formulas><br />
  <v:f eqn="if lineDrawn pixelLineWidth 0"/><br />
  <v:f eqn="sum @0 1 0"/><br />
  <v:f eqn="sum 0 0 @1"/><br />
  <v:f eqn="prod @2 1 2"/><br />
  <v:f eqn="prod @3 21600 pixelWidth"/><br />
  <v:f eqn="prod @3 21600 pixelHeight"/><br />
  <v:f eqn="sum @0 0 1"/><br />
  <v:f eqn="prod @6 1 2"/><br />
  <v:f eqn="prod @7 21600 pixelWidth"/><br />
  <v:f eqn="sum @8 21600 0"/><br />
  <v:f eqn="prod @7 21600 pixelHeight"/><br />
  <v:f eqn="sum @10 21600 0"/><br />
 </v:formulas><br />
 <v:path o:extrusionok="f" gradientshapeok="t" o:connecttype="rect"/><br />
 <o:lock v:ext="edit" aspectratio="t"/><br />
</v:shapetype><v:shape id="Picture_x0020_1" o:spid="_x0000_i1031" type="#_x0000_t75"<br />
 alt="存储极客 | 再不拥抱Docker容器，你的存储就out了！ " style='width:415.5pt;height:261.75pt;<br />
 visibility:visible;mso-wrap-style:square'><br />
 <v:imagedata src="file:///C:/Users/KENYAN~1/AppData/Local/Temp/msohtmlclip1/01/clip_image001.jpg"<br />
  o:title="存储极客 | 再不拥抱Docker容器，你的存储就out了！ "/><br />
</v:shape><![endif]--><!-- [if !vml]--><img src="file:///C:/Users/KENYAN~1/AppData/Local/Temp/msohtmlclip1/01/clip_image001.jpg" alt="存储极客 | 再不拥抱Docker容器，你的存储就out了！ " width="554" height="349" /><!--[endif]--></span></b></p>
<p style="margin: 0in 0in 0.0001pt; text-align: center; line-height: 24pt; word-break: break-all; font-stretch: normal;" align="center"><span style="font-stretch: normal;"><span style="font-family: 'microsoft yahei',serif; color: red; border: none windowtext 1.0pt; mso-border-alt: none windowtext 0in; padding: 0in;">Copy-On-Write</span><span lang="ZH-CN" style="font-family: 宋体; mso-bidi-font-family: 宋体; color: red; border: none windowtext 1.0pt; mso-border-alt: none windowtext 0in; padding: 0in;">机制的</span><span style="font-family: 'microsoft yahei',serif; color: red; border: none windowtext 1.0pt; mso-border-alt: none windowtext 0in; padding: 0in;">Docker</span><span lang="ZH-CN" style="font-family: 宋体; mso-bidi-font-family: 宋体; color: red; border: none windowtext 1.0pt; mso-border-alt: none windowtext 0in; padding: 0in;">存储卷，支持</span><span style="font-family: 'microsoft yahei',serif; color: red; border: none windowtext 1.0pt; mso-border-alt: none windowtext 0in; padding: 0in;">LVM</span><span lang="ZH-CN" style="font-family: 宋体; mso-bidi-font-family: 宋体; color: red; border: none windowtext 1.0pt; mso-border-alt: none windowtext 0in; padding: 0in;">、</span><span style="font-family: 'microsoft yahei',serif; color: red; border: none windowtext 1.0pt; mso-border-alt: none windowtext 0in; padding: 0in;">ZFS</span><span lang="ZH-CN" style="font-family: 宋体; mso-bidi-font-family: 宋体; color: red; border: none windowtext 1.0pt; mso-border-alt: none windowtext 0in; padding: 0in;">、</span><span style="font-family: 'microsoft yahei',serif; color: red; border: none windowtext 1.0pt; mso-border-alt: none windowtext 0in; padding: 0in;">BTRFS</span><span lang="ZH-CN" style="font-family: 宋体; mso-bidi-font-family: 宋体; color: red; border: none windowtext 1.0pt; mso-border-alt: none windowtext 0in; padding: 0in;">、</span><span style="font-family: 'microsoft yahei',serif; color: red; border: none windowtext 1.0pt; mso-border-alt: none windowtext 0in; padding: 0in;">AUFS</span><span lang="ZH-CN" style="font-family: 宋体; mso-bidi-font-family: 宋体; color: red; border: none windowtext 1.0pt; mso-border-alt: none windowtext 0in; padding: 0in;">和</span><span style="font-family: 'microsoft yahei',serif; color: red; border: none windowtext 1.0pt; mso-border-alt: none windowtext 0in; padding: 0in;">OverlayFS</span><span lang="ZH-CN" style="font-family: 宋体; mso-bidi-font-family: 宋体; color: red; border: none windowtext 1.0pt; mso-border-alt: none windowtext 0in; padding: 0in;">等几种供给格式。</span></span></p>
<p style="margin: 0in 0in 15pt; line-height: 24pt; word-break: break-all; font-stretch: normal;"><span lang="ZH-CN" style="font-family: 宋体; mso-bidi-font-family: 宋体; color: #5f5f5f;">随着每一轮新技术热潮的来袭，从事技术工作的笔者都会有一种</span><span style="color: #5f5f5f;">“</span><span lang="ZH-CN" style="font-family: 宋体; mso-bidi-font-family: 宋体; color: #5f5f5f;">危机感</span><span style="color: #5f5f5f;">”</span><span lang="ZH-CN" style="font-family: 宋体; mso-bidi-font-family: 宋体; color: #5f5f5f;">，毕竟包括企业级在内的</span><span style="font-family: 'microsoft yahei',serif; color: #5f5f5f;">IT</span><span lang="ZH-CN" style="font-family: 宋体; mso-bidi-font-family: 宋体; color: #5f5f5f;">行业更新太快，不坚持学习就很容易落伍。</span></p>
<p style="margin: 0in 0in 15pt; line-height: 24pt; word-break: break-all; font-stretch: normal;"><span lang="ZH-CN" style="font-family: 宋体; mso-bidi-font-family: 宋体; color: #5f5f5f;">从虚拟化、云计算、大数据，一直到软件定义无不如此，我们谨慎地关注着每个概念中有多少炒作的泡沫？当然也会有真正改变用户</span><span style="font-family: 'microsoft yahei',serif; color: #5f5f5f;">IT</span><span lang="ZH-CN" style="font-family: 宋体; mso-bidi-font-family: 宋体; color: #5f5f5f;">消费方式的变革，包括与传统基础设施，特别是服务器、存储设备的结合点；还有公共云服务、</span><span style="font-family: 'microsoft yahei',serif; color: #5f5f5f;">Server SAN/</span><span lang="ZH-CN" style="font-family: 宋体; mso-bidi-font-family: 宋体; color: #5f5f5f;">超融合这样的颠覆。</span></p>
<p style="margin: 0in 0in 15pt; line-height: 24pt; word-break: break-all; font-stretch: normal;"><span lang="ZH-CN" style="font-family: 宋体; mso-bidi-font-family: 宋体; color: #5f5f5f;">具体到技术和厂商，比如下图中的</span><span style="font-family: 'microsoft yahei',serif; color: #5f5f5f;">VMware</span><span lang="ZH-CN" style="font-family: 宋体; mso-bidi-font-family: 宋体; color: #5f5f5f;">、微软（</span><span style="font-family: 'microsoft yahei',serif; color: #5f5f5f;">Hyper-V</span><span lang="ZH-CN" style="font-family: 宋体; mso-bidi-font-family: 宋体; color: #5f5f5f;">和</span><span style="font-family: 'microsoft yahei',serif; color: #5f5f5f;">Azure</span><span lang="ZH-CN" style="font-family: 宋体; mso-bidi-font-family: 宋体; color: #5f5f5f;">）；新一轮还在发展完善中的开源虚拟化管理</span><span style="font-family: 'microsoft yahei',serif; color: #5f5f5f;">/</span><span lang="ZH-CN" style="font-family: 宋体; mso-bidi-font-family: 宋体; color: #5f5f5f;">云平台</span><span style="font-family: 'microsoft yahei',serif; color: #5f5f5f;">OpenStack</span><span lang="ZH-CN" style="font-family: 宋体; mso-bidi-font-family: 宋体; color: #5f5f5f;">；还有本文要讨论的重点</span><span style="color: #5f5f5f;">——</span><span style="font-family: 'microsoft yahei',serif; color: #5f5f5f;">Docker</span><span lang="ZH-CN" style="font-family: 宋体; mso-bidi-font-family: 宋体; color: #5f5f5f;">容器。</span></p>
<p style="margin: 0in 0in 15pt; line-height: 24pt; word-break: break-all; font-stretch: normal;"><span lang="ZH-CN" style="font-family: 宋体; mso-bidi-font-family: 宋体; color: #5f5f5f;">现</span><span lang="ZH-CN" style="font-family: 宋体; mso-bidi-font-family: 宋体; color: #5f5f5f;">在有一种比较激进的思想，未来一切都是软件定义的，传统商业存储阵列将会慢慢失去市场。我们看到了</span><span style="font-family: 'microsoft yahei',serif; color: #5f5f5f;">VSAN</span><span lang="ZH-CN" style="font-family: 宋体; mso-bidi-font-family: 宋体; color: #5f5f5f;">的出现</span><span style="color: #5f5f5f;">——</span><span lang="ZH-CN" style="font-family: 宋体; mso-bidi-font-family: 宋体; color: #5f5f5f;">至少目前它的应用还是有局限，而不是</span><span lang="ZH-CN" style="font-family: 宋体; mso-bidi-font-family: 宋体; color: #5f5f5f;">万能的；我们也看到搭车</span><span style="font-family: 'microsoft yahei',serif; color: #5f5f5f;">OpenStack/KVM</span><span lang="ZH-CN" style="font-family: 宋体; mso-bidi-font-family: 宋体; color: #5f5f5f;">而火热的</span><span style="font-family: 'microsoft yahei',serif; color: #5f5f5f;">Ceph</span><span lang="ZH-CN" style="font-family: 宋体; mso-bidi-font-family: 宋体; color: #5f5f5f;">开源分布式存储，但它距离成熟易用还有很大的一段距离。因此在当前，虚拟化</span><span style="font-family: 'microsoft yahei',serif; color: #5f5f5f;">/</span><span lang="ZH-CN" style="font-family: 宋体; mso-bidi-font-family: 宋体; color: #5f5f5f;">云计算平台一直在加强对传统外部共享存储的支持，容器也不例外。</span></p>
<p style="margin: 0in 0in 15pt; text-align: center; line-height: 24pt; word-break: break-all; font-stretch: normal;" align="center"><span style="font-family: 'microsoft yahei',serif; color: #5f5f5f; mso-no-proof: yes;"><!-- [if gte vml 1]><v:shape id="Picture_x0020_2" o:spid="_x0000_i1030"<br />
 type="#_x0000_t75" alt="存储极客 | 再不拥抱Docker容器，你的存储就out了！ " style='width:415.5pt;<br />
 height:224.25pt;visibility:visible;mso-wrap-style:square'><br />
 <v:imagedata src="file:///C:/Users/KENYAN~1/AppData/Local/Temp/msohtmlclip1/01/clip_image002.jpg"<br />
  o:title="存储极客 | 再不拥抱Docker容器，你的存储就out了！ "/><br />
</v:shape><![endif]--><!-- [if !vml]--><img src="file:///C:/Users/KENYAN~1/AppData/Local/Temp/msohtmlclip1/01/clip_image002.jpg" alt="存储极客 | 再不拥抱Docker容器，你的存储就out了！ " width="554" height="299" /><!--[endif]--></span></p>
<p style="margin: 0in 0in 0.0001pt; text-align: center; line-height: 24pt; word-break: break-all; font-stretch: normal;" align="center"><span style="font-stretch: normal;"><span lang="ZH-CN" style="font-family: 宋体; mso-bidi-font-family: 宋体; color: red; border: none windowtext 1.0pt; mso-border-alt: none windowtext 0in; padding: 0in;">本文中引用了一些来自戴尔的资料，但它们都具有普适性，我们接下来的话题也会围绕通用技术趋势，而不是专属于某一家具体的产品。</span></span></p>
<p style="margin: 0in 0in 15pt; line-height: 24pt; word-break: break-all; font-stretch: normal;"><span lang="ZH-CN" style="font-family: 宋体; mso-bidi-font-family: 宋体; color: #5f5f5f;">上图列出了存储系统与领先的技术合作伙伴间的管理整合，这些是行业内一线厂商基本都要去做的工作。大致包括以下几个方面：</span></p>
<p style="margin: 0in 0in 0.0001pt; line-height: 24pt; word-break: break-all; font-stretch: normal;"><strong style="font-stretch: normal;"><span lang="ZH-CN" style="font-size: 10.5pt; font-family: 宋体; color: #666666; border: none windowtext 1.0pt; mso-border-alt: none windowtext 0in; padding: 0in;">虚拟化整合：</span></strong><span style="font-family: 'microsoft yahei',serif; color: #5f5f5f;">VMware VAAI</span><span lang="ZH-CN" style="font-family: 宋体; mso-bidi-font-family: 宋体; color: #5f5f5f;">、</span><span style="font-family: 'microsoft yahei',serif; color: #5f5f5f;">VASA</span><span lang="ZH-CN" style="font-family: 宋体; mso-bidi-font-family: 宋体; color: #5f5f5f;">、</span><span style="font-family: 'microsoft yahei',serif; color: #5f5f5f;">VVOL</span><span lang="ZH-CN" style="font-family: 宋体; mso-bidi-font-family: 宋体; color: #5f5f5f;">，微软</span><span style="font-family: 'microsoft yahei',serif; color: #5f5f5f;">Hyper-V</span><span lang="ZH-CN" style="font-family: 宋体; mso-bidi-font-family: 宋体; color: #5f5f5f;">对应的</span><span style="font-family: 'microsoft yahei',serif; color: #5f5f5f;">API</span><span lang="ZH-CN" style="font-family: 宋体; mso-bidi-font-family: 宋体; color: #5f5f5f;">支持等，由于本文主题在这里不详细介绍了。</span></p>
<p style="margin: 0in 0in 0.0001pt; line-height: 24pt; word-break: break-all; font-stretch: normal;"><strong style="font-stretch: normal;"><span lang="ZH-CN" style="font-size: 10.5pt; font-family: 宋体; color: #666666; border: none windowtext 1.0pt; mso-border-alt: none windowtext 0in; padding: 0in;">云平台整合：</span></strong><span style="font-family: 'microsoft yahei',serif; color: #5f5f5f;">OpenStack</span><span lang="ZH-CN" style="font-family: 宋体; mso-bidi-font-family: 宋体; color: #5f5f5f;">针对块存储设备支持的</span><span style="font-family: 'microsoft yahei',serif; color: #5f5f5f;">Cinder driver</span><span lang="ZH-CN" style="font-family: 宋体; mso-bidi-font-family: 宋体; color: #5f5f5f;">等。</span></p>
<p style="margin: 0in 0in 0.0001pt; line-height: 24pt; word-break: break-all; font-stretch: normal;"><strong style="font-stretch: normal;"><span lang="ZH-CN" style="font-size: 10.5pt; font-family: 宋体; color: #666666; border: none windowtext 1.0pt; mso-border-alt: none windowtext 0in; padding: 0in;">应用保护整合：</span></strong><span lang="ZH-CN" style="font-family: 宋体; mso-bidi-font-family: 宋体; color: #5f5f5f;">生成和管理具备</span><span style="font-family: 'microsoft yahei',serif; color: #5f5f5f;">Oracle</span><span lang="ZH-CN" style="font-family: 宋体; mso-bidi-font-family: 宋体; color: #5f5f5f;">数据库等应用程序一致性的快照</span><span style="font-family: 'microsoft yahei',serif; color: #5f5f5f;">/</span><span lang="ZH-CN" style="font-family: 宋体; mso-bidi-font-family: 宋体; color: #5f5f5f;">恢复点，也包括</span><span style="font-family: 'microsoft yahei',serif; color: #5f5f5f;">Windows VSS</span><span lang="ZH-CN" style="font-family: 宋体; mso-bidi-font-family: 宋体; color: #5f5f5f;">、</span><span style="font-family: 'microsoft yahei',serif; color: #5f5f5f;">VMware</span><span lang="ZH-CN" style="font-family: 宋体; mso-bidi-font-family: 宋体; color: #5f5f5f;">虚拟机的支持。</span></p>
<p style="margin: 0in 0in 0.0001pt; line-height: 24pt; word-break: break-all; font-stretch: normal;"><strong style="font-stretch: normal;"><span lang="ZH-CN" style="font-size: 10.5pt; font-family: 宋体; color: #666666; border: none windowtext 1.0pt; mso-border-alt: none windowtext 0in; padding: 0in;">备份软件整合：</span></strong><span lang="ZH-CN" style="font-family: 宋体; mso-bidi-font-family: 宋体; color: #5f5f5f;">通</span><span lang="ZH-CN" style="font-family: 宋体; mso-bidi-font-family: 宋体; color: #5f5f5f;">过流行的备份软件对生成快照的数据进行保护，从而确保可恢复性，这里列出了赛门铁克（严格说现在算</span><span style="font-family: 'microsoft yahei',serif; color: #5f5f5f;">Veritas</span><span lang="ZH-CN" style="font-family: 宋体; mso-bidi-font-family: 宋体; color: #5f5f5f;">）和</span><span style="font-family: 'microsoft yahei',serif; color: #5f5f5f;">CommVault</span><span lang="ZH-CN" style="font-family: 宋体; mso-bidi-font-family: 宋体; color: #5f5f5f;">。如果是基于戴尔</span><span style="font-family: 'microsoft yahei',serif; color: #5f5f5f;"> SC</span><span lang="ZH-CN" style="font-family: 宋体; mso-bidi-font-family: 宋体; color: #5f5f5f;">存储快照的备份，应该还有自家的</span><span style="font-family: 'microsoft yahei',serif; color: #5f5f5f;">NetVault</span><span lang="ZH-CN" style="font-family: 宋体; mso-bidi-font-family: 宋体; color: #5f5f5f;">备份软件可以支持。（详见：《</span><span style="font-family: 'microsoft yahei',serif; color: #5f5f5f;">DellWorld2015</span><span lang="ZH-CN" style="font-family: 宋体; mso-bidi-font-family: 宋体; color: #5f5f5f;">快讯：</span><span style="font-family: 'microsoft yahei',serif; color: #5f5f5f;">NetVault Backup11</span><span lang="ZH-CN" style="font-family: 宋体; mso-bidi-font-family: 宋体; color: #5f5f5f;">智能备份详解》）</span></p>
<p style="margin: 0in 0in 0.0001pt; line-height: 24pt; word-break: break-all; font-stretch: normal;"><strong style="font-stretch: normal;"><span lang="ZH-CN" style="font-size: 10.5pt; font-family: 宋体; color: #666666; border: none windowtext 1.0pt; mso-border-alt: none windowtext 0in; padding: 0in;">应用监控整合：</span></strong><span lang="ZH-CN" style="font-family: 宋体; mso-bidi-font-family: 宋体; color: #5f5f5f;">如</span><span style="font-family: 'microsoft yahei',serif; color: #5f5f5f;">Foglight</span><span lang="ZH-CN" style="font-family: 宋体; mso-bidi-font-family: 宋体; color: #5f5f5f;">，是戴尔收购</span><span style="font-family: 'microsoft yahei',serif; color: #5f5f5f;">Quest</span><span lang="ZH-CN" style="font-family: 宋体; mso-bidi-font-family: 宋体; color: #5f5f5f;">获得的高级应用监控解决方案。我记得</span><span style="font-family: 'microsoft yahei',serif; color: #5f5f5f;">EMC</span><span lang="ZH-CN" style="font-family: 宋体; mso-bidi-font-family: 宋体; color: #5f5f5f;">等厂商也提供类似的软件产品</span></p>
<p style="margin: 0in 0in 0.0001pt; line-height: 24pt; word-break: break-all; font-stretch: normal;"><strong style="font-stretch: normal;"><span style="font-size: 10.5pt; font-family: 宋体; color: #666666; border: none windowtext 1.0pt; mso-border-alt: none windowtext 0in; padding: 0in;">Docker<span lang="ZH-CN">容器整合：</span></span></strong><span lang="ZH-CN" style="font-family: 宋体; mso-bidi-font-family: 宋体; color: #5f5f5f;">针对</span><span style="font-family: 'microsoft yahei',serif; color: #5f5f5f;">SAN</span><span lang="ZH-CN" style="font-family: 宋体; mso-bidi-font-family: 宋体; color: #5f5f5f;">共享块存储设备的容器卷管理系统。</span></p>
<p style="margin: 0in 0in 0.0001pt; line-height: 24pt; word-break: break-all; font-stretch: normal;"><strong style="font-stretch: normal;"><span style="font-size: 10.5pt; font-family: 宋体; color: #666666; border: none windowtext 1.0pt; mso-border-alt: none windowtext 0in; padding: 0in;">Flocker<span lang="ZH-CN">拥有“无限可能”的卷管理器</span></span></strong></p>
<p style="margin: 0in 0in 0.0001pt; text-align: center; line-height: 24pt; word-break: break-all; font-stretch: normal;" align="center"><b><span style="font-size: 10.5pt; font-family: 宋体; color: #666666; border: none windowtext 1.0pt; mso-border-alt: none windowtext 0in; padding: 0in; mso-no-proof: yes;"><!-- [if gte vml 1]><v:shape<br />
 id="Picture_x0020_3" o:spid="_x0000_i1029" type="#_x0000_t75" alt="存储极客 | 再不拥抱Docker容器，你的存储就out了！ "<br />
 style='width:415.5pt;height:200.25pt;visibility:visible;mso-wrap-style:square'><br />
 <v:imagedata src="file:///C:/Users/KENYAN~1/AppData/Local/Temp/msohtmlclip1/01/clip_image003.jpg"<br />
  o:title="存储极客 | 再不拥抱Docker容器，你的存储就out了！ "/><br />
</v:shape><![endif]--><!-- [if !vml]--><img src="file:///C:/Users/KENYAN~1/AppData/Local/Temp/msohtmlclip1/01/clip_image003.jpg" alt="存储极客 | 再不拥抱Docker容器，你的存储就out了！ " width="554" height="267" /><!--[endif]--></span></b></p>
<p style="margin: 0in 0in 15pt; line-height: 24pt; word-break: break-all; font-stretch: normal;"><span lang="ZH-CN" style="font-family: 宋体; mso-bidi-font-family: 宋体; color: #5f5f5f;">目前我们看到包括</span><span style="font-family: 'microsoft yahei',serif; color: #5f5f5f;">EMC</span><span lang="ZH-CN" style="font-family: 宋体; mso-bidi-font-family: 宋体; color: #5f5f5f;">、戴尔</span><span style="font-family: 'microsoft yahei',serif; color: #5f5f5f;">SC</span><span lang="ZH-CN" style="font-family: 宋体; mso-bidi-font-family: 宋体; color: #5f5f5f;">系列在内的几家存储厂商</span><span style="font-family: 'microsoft yahei',serif; color: #5f5f5f;">/</span><span lang="ZH-CN" style="font-family: 宋体; mso-bidi-font-family: 宋体; color: #5f5f5f;">产品家族，都在与</span><span style="font-family: 'microsoft yahei',serif; color: #5f5f5f;">ClusterHQ</span><span lang="ZH-CN" style="font-family: 宋体; mso-bidi-font-family: 宋体; color: #5f5f5f;">公司的</span><span style="font-family: 'microsoft yahei',serif; color: #5f5f5f;">Flocker</span><span lang="ZH-CN" style="font-family: 宋体; mso-bidi-font-family: 宋体; color: #5f5f5f;">合作</span><span style="color: #5f5f5f;">——</span><span lang="ZH-CN" style="font-family: 宋体; mso-bidi-font-family: 宋体; color: #5f5f5f;">一个针对</span><span style="font-family: 'microsoft yahei',serif; color: #5f5f5f;">Docker</span><span lang="ZH-CN" style="font-family: 宋体; mso-bidi-font-family: 宋体; color: #5f5f5f;">应用开源的容器数据卷管理器，它能够像本地存储那样对基于块的共享存储提供良好支持。</span></p>
<p style="margin: 0in 0in 15pt; text-align: center; line-height: 24pt; word-break: break-all; font-stretch: normal;" align="center"><span style="font-family: 'microsoft yahei',serif; color: #5f5f5f; mso-no-proof: yes;"><!-- [if gte vml 1]><v:shape id="Picture_x0020_4" o:spid="_x0000_i1028"<br />
 type="#_x0000_t75" alt="存储极客 | 再不拥抱Docker容器，你的存储就out了！ " style='width:415.5pt;<br />
 height:216.75pt;visibility:visible;mso-wrap-style:square'><br />
 <v:imagedata src="file:///C:/Users/KENYAN~1/AppData/Local/Temp/msohtmlclip1/01/clip_image004.png"<br />
  o:title="存储极客 | 再不拥抱Docker容器，你的存储就out了！ "/><br />
</v:shape><![endif]--><!-- [if !vml]--><img src="file:///C:/Users/KENYAN~1/AppData/Local/Temp/msohtmlclip1/01/clip_image004.png" alt="存储极客 | 再不拥抱Docker容器，你的存储就out了！ " width="554" height="289" /><!--[endif]--></span></p>
<p style="margin: 0in 0in 15pt; line-height: 24pt; word-break: break-all; font-stretch: normal;"><span style="font-family: 'microsoft yahei',serif; color: #5f5f5f;">Flocker</span><span lang="ZH-CN" style="font-family: 宋体; mso-bidi-font-family: 宋体; color: #5f5f5f;">带来了灵活性和扩展性，它提供的工具能够：</span></p>
<p style="margin: 0in 0in 15pt; line-height: 24pt; word-break: break-all; font-stretch: normal;"><span style="font-family: 'microsoft yahei',serif; color: #5f5f5f;">●</span><span lang="ZH-CN" style="font-family: 宋体; mso-bidi-font-family: 宋体; color: #5f5f5f;">迁移数据</span></p>
<p style="margin: 0in 0in 15pt; line-height: 24pt; word-break: break-all; font-stretch: normal;"><span style="font-family: 'microsoft yahei',serif; color: #5f5f5f;">●</span><span lang="ZH-CN" style="font-family: 宋体; mso-bidi-font-family: 宋体; color: #5f5f5f;">运行容器化状态的服务（例如数据库）</span></p>
<p style="margin: 0in 0in 15pt; line-height: 24pt; word-break: break-all; font-stretch: normal;"><span style="font-family: 'microsoft yahei',serif; color: #5f5f5f;">●</span><span lang="ZH-CN" style="font-family: 宋体; mso-bidi-font-family: 宋体; color: #5f5f5f;">可移动性</span><span style="font-family: 'microsoft yahei',serif; color: #5f5f5f;"> - </span><span lang="ZH-CN" style="font-family: 宋体; mso-bidi-font-family: 宋体; color: #5f5f5f;">在集群中的任意容器上使用</span></p>
<p style="margin: 0in 0in 15pt; line-height: 24pt; word-break: break-all; font-stretch: normal;"><span style="font-family: 'microsoft yahei',serif; color: #5f5f5f;">●</span><span lang="ZH-CN" style="font-family: 宋体; mso-bidi-font-family: 宋体; color: #5f5f5f;">管理</span><span style="font-family: 'microsoft yahei',serif; color: #5f5f5f;">Docker</span><span lang="ZH-CN" style="font-family: 宋体; mso-bidi-font-family: 宋体; color: #5f5f5f;">容器和数据卷</span></p>
<p style="margin: 0in 0in 15pt; line-height: 24pt; word-break: break-all; font-stretch: normal;"><span style="font-family: 'microsoft yahei',serif; color: #5f5f5f;">●</span><span lang="ZH-CN" style="font-family: 宋体; mso-bidi-font-family: 宋体; color: #5f5f5f;">卷跟随容器在主机之间（移动）</span></p>
<p style="margin: 0in 0in 15pt; line-height: 24pt; word-break: break-all; font-stretch: normal;"><span style="font-family: 'microsoft yahei',serif; color: #5f5f5f;">●</span><span lang="ZH-CN" style="font-family: 宋体; mso-bidi-font-family: 宋体; color: #5f5f5f;">由控制服务提供的</span><span style="font-family: 'microsoft yahei',serif; color: #5f5f5f;">REST API</span><span lang="ZH-CN" style="font-family: 宋体; mso-bidi-font-family: 宋体; color: #5f5f5f;">接口</span></p>
<p style="margin: 0in 0in 15pt; text-align: center; line-height: 24pt; word-break: break-all; font-stretch: normal;" align="center"><span style="font-family: 'microsoft yahei',serif; color: #5f5f5f; mso-no-proof: yes;"><!-- [if gte vml 1]><v:shape id="Picture_x0020_5" o:spid="_x0000_i1027"<br />
 type="#_x0000_t75" alt="存储极客 | 再不拥抱Docker容器，你的存储就out了！ " style='width:415.5pt;<br />
 height:234pt;visibility:visible;mso-wrap-style:square'><br />
 <v:imagedata src="file:///C:/Users/KENYAN~1/AppData/Local/Temp/msohtmlclip1/01/clip_image005.jpg"<br />
  o:title="存储极客 | 再不拥抱Docker容器，你的存储就out了！ "/><br />
</v:shape><![endif]--><!-- [if !vml]--><img src="file:///C:/Users/KENYAN~1/AppData/Local/Temp/msohtmlclip1/01/clip_image005.jpg" alt="存储极客 | 再不拥抱Docker容器，你的存储就out了！ " width="554" height="312" /><!--[endif]--></span></p>
<p style="margin: 0in 0in 15pt; line-height: 24pt; word-break: break-all; font-stretch: normal;"><span lang="ZH-CN" style="font-family: 宋体; mso-bidi-font-family: 宋体; color: #5f5f5f;">与</span><span style="font-family: 'microsoft yahei',serif; color: #5f5f5f;"> Flocker</span><span lang="ZH-CN" style="font-family: 宋体; mso-bidi-font-family: 宋体; color: #5f5f5f;">结合之后，存储阵列拥有</span><span style="color: #5f5f5f;">“</span><span lang="ZH-CN" style="font-family: 宋体; mso-bidi-font-family: 宋体; color: #5f5f5f;">无限可能</span><span style="color: #5f5f5f;">”</span><span lang="ZH-CN" style="font-family: 宋体; mso-bidi-font-family: 宋体; color: #5f5f5f;">。</span><span style="font-family: 'microsoft yahei',serif; color: #5f5f5f;">Flocker</span><span lang="ZH-CN" style="font-family: 宋体; mso-bidi-font-family: 宋体; color: #5f5f5f;">可以支持较高版本的</span><span style="font-family: 'microsoft yahei',serif; color: #5f5f5f;">CentOS</span><span lang="ZH-CN" style="font-family: 宋体; mso-bidi-font-family: 宋体; color: #5f5f5f;">和</span><span style="font-family: 'microsoft yahei',serif; color: #5f5f5f;">Ubuntu Linux</span><span lang="ZH-CN" style="font-family: 宋体; mso-bidi-font-family: 宋体; color: #5f5f5f;">服务器（不排除有更新增加）；可以使用的数据卷除了共享块存储之外，还有</span><span style="color: #5f5f5f;">“</span><span lang="ZH-CN" style="font-family: 宋体; mso-bidi-font-family: 宋体; color: #5f5f5f;">本地</span><span style="color: #5f5f5f;">”</span><span lang="ZH-CN" style="font-family: 宋体; mso-bidi-font-family: 宋体; color: #5f5f5f;">存储</span><span style="color: #5f5f5f;">——</span><span lang="ZH-CN" style="font-family: 宋体; mso-bidi-font-family: 宋体; color: #5f5f5f;">我们理解后者中也包括被虚拟机视为本地存储的</span><span style="font-family: 'microsoft yahei',serif; color: #5f5f5f;"> Amazon EBS</span><span lang="ZH-CN" style="font-family: 宋体; mso-bidi-font-family: 宋体; color: #5f5f5f;">、</span><span style="font-family: 'microsoft yahei',serif; color: #5f5f5f;">OpenStack Ceph RBD</span><span lang="ZH-CN" style="font-family: 宋体; mso-bidi-font-family: 宋体; color: #5f5f5f;">和</span><span style="font-family: 'microsoft yahei',serif; color: #5f5f5f;">Swift</span><span lang="ZH-CN" style="font-family: 宋体; mso-bidi-font-family: 宋体; color: #5f5f5f;">中的镜像挂载，还有</span><span style="font-family: 'microsoft yahei',serif; color: #5f5f5f;">RackSpace</span><span lang="ZH-CN" style="font-family: 宋体; mso-bidi-font-family: 宋体; color: #5f5f5f;">云设施里类似的实现。</span></p>
<p style="margin: 0in 0in 15pt; line-height: 24pt; word-break: break-all; font-stretch: normal;"><span style="font-family: 'microsoft yahei',serif; color: #5f5f5f;">Flocker</span><span lang="ZH-CN" style="font-family: 宋体; mso-bidi-font-family: 宋体; color: #5f5f5f;">还可以与</span><span style="font-family: 'microsoft yahei',serif; color: #5f5f5f;">Linux</span><span lang="ZH-CN" style="font-family: 宋体; mso-bidi-font-family: 宋体; color: #5f5f5f;">上运行的任意数据库一起工作，这</span><span lang="ZH-CN" style="font-family: 宋体; mso-bidi-font-family: 宋体; color: #5f5f5f;">里面包括传统关系型的</span><span style="font-family: 'microsoft yahei',serif; color: #5f5f5f;">MySQL</span><span lang="ZH-CN" style="font-family: 宋体; mso-bidi-font-family: 宋体; color: #5f5f5f;">、</span><span style="font-family: 'microsoft yahei',serif; color: #5f5f5f;">PostgreSQL</span><span lang="ZH-CN" style="font-family: 宋体; mso-bidi-font-family: 宋体; color: #5f5f5f;">，也有新兴的</span><span style="font-family: 'microsoft yahei',serif; color: #5f5f5f;">MongoDB</span><span lang="ZH-CN" style="font-family: 宋体; mso-bidi-font-family: 宋体; color: #5f5f5f;">、</span><span style="font-family: 'microsoft yahei',serif; color: #5f5f5f;">Redis</span><span lang="ZH-CN" style="font-family: 宋体; mso-bidi-font-family: 宋体; color: #5f5f5f;">和</span><span style="font-family: 'microsoft yahei',serif; color: #5f5f5f;">RabbitMQ</span><span lang="ZH-CN" style="font-family: 宋体; mso-bidi-font-family: 宋体; color: #5f5f5f;">等。上图中并未列出</span><span style="font-family: 'microsoft yahei',serif; color: #5f5f5f;">Oracle</span><span lang="ZH-CN" style="font-family: 宋体; mso-bidi-font-family: 宋体; color: #5f5f5f;">，应该</span><span lang="ZH-CN" style="font-family: 宋体; mso-bidi-font-family: 宋体; color: #5f5f5f;">是因为</span><span style="font-family: 'microsoft yahei',serif; color: #5f5f5f;">Oracle</span><span lang="ZH-CN" style="font-family: 宋体; mso-bidi-font-family: 宋体; color: #5f5f5f;">已经有并且推荐使用自己的存储管理器</span><span style="font-family: 'microsoft yahei',serif; color: #5f5f5f;">ASM</span><span lang="ZH-CN" style="font-family: 宋体; mso-bidi-font-family: 宋体; color: #5f5f5f;">，直接控制到磁盘</span><span style="font-family: 'microsoft yahei',serif; color: #5f5f5f;">/SSD/LUN</span><span lang="ZH-CN" style="font-family: 宋体; mso-bidi-font-family: 宋体; color: #5f5f5f;">一级，</span><span style="font-family: 'microsoft yahei',serif; color: #5f5f5f;">Oracle</span><span lang="ZH-CN" style="font-family: 宋体; mso-bidi-font-family: 宋体; color: #5f5f5f;">一直不官方支持除自家</span><span style="font-family: 'microsoft yahei',serif; color: #5f5f5f;">VM</span><span lang="ZH-CN" style="font-family: 宋体; mso-bidi-font-family: 宋体; color: #5f5f5f;">之外的虚拟机</span><span lang="ZH-CN" style="font-family: 宋体; mso-bidi-font-family: 宋体; color: #5f5f5f;">环境，我们也没听说过有人在容器中使用。</span></p>
<p style="margin: 0in 0in 0.0001pt; line-height: 24pt; word-break: break-all; font-stretch: normal;"><strong style="font-stretch: normal;"><span lang="ZH-CN" style="font-size: 10.5pt; font-family: 宋体; color: #666666; border: none windowtext 1.0pt; mso-border-alt: none windowtext 0in; padding: 0in;">共享块存储容器迁移、能否做</span></strong><strong><span style="font-size: 10.5pt; font-family: 宋体; color: #666666; border: none windowtext 1.0pt; mso-border-alt: none windowtext 0in; padding: 0in;">HA<span lang="ZH-CN">？</span></span></strong></p>
<p style="margin: 0in 0in 15pt; line-height: 24pt; word-break: break-all; font-stretch: normal;"><span style="font-family: 'microsoft yahei',serif; color: #5f5f5f;"> </span></p>
<p style="margin: 0in 0in 15pt; text-align: center; line-height: 24pt; word-break: break-all; font-stretch: normal;" align="center"><span style="font-family: 'microsoft yahei',serif; color: #5f5f5f; mso-no-proof: yes;"><!-- [if gte vml 1]><v:shape id="Picture_x0020_6" o:spid="_x0000_i1026"<br />
 type="#_x0000_t75" alt="存储极客 | 再不拥抱Docker容器，你的存储就out了！ " style='width:415.5pt;<br />
 height:203.25pt;visibility:visible;mso-wrap-style:square'><br />
 <v:imagedata src="file:///C:/Users/KENYAN~1/AppData/Local/Temp/msohtmlclip1/01/clip_image006.jpg"<br />
  o:title="存储极客 | 再不拥抱Docker容器，你的存储就out了！ "/><br />
</v:shape><![endif]--><!-- [if !vml]--><img src="file:///C:/Users/KENYAN~1/AppData/Local/Temp/msohtmlclip1/01/clip_image006.jpg" alt="存储极客 | 再不拥抱Docker容器，你的存储就out了！ " width="554" height="271" /><!--[endif]--></span></p>
<p style="margin: 0in 0in 15pt; line-height: 24pt; word-break: break-all; font-stretch: normal;"><span lang="ZH-CN" style="font-family: 宋体; mso-bidi-font-family: 宋体; color: #5f5f5f;">我们来看一下使用了</span><span style="font-family: 'microsoft yahei',serif; color: #5f5f5f;">Flocker</span><span lang="ZH-CN" style="font-family: 宋体; mso-bidi-font-family: 宋体; color: #5f5f5f;">之后有何不同。在原生</span><span style="font-family: 'microsoft yahei',serif; color: #5f5f5f;">Docker</span><span lang="ZH-CN" style="font-family: 宋体; mso-bidi-font-family: 宋体; color: #5f5f5f;">环境，当一台服务器上运行的容器化有状态服务（数据库）迁移至另一台时，其数据卷会留在原地，在新的服务器上启动的容器没有任何数据。也就是说，在迁移之前需要先手动停止容器并复制数据到新的服务器才能使用。</span></p>
<p style="margin: 0in 0in 15pt; line-height: 24pt; word-break: break-all; font-stretch: normal;"><span lang="ZH-CN" style="font-family: 宋体; mso-bidi-font-family: 宋体; color: #5f5f5f;">而在使用了</span><span style="font-family: 'microsoft yahei',serif; color: #5f5f5f;">Flocker</span><span lang="ZH-CN" style="font-family: 宋体; mso-bidi-font-family: 宋体; color: #5f5f5f;">之后，当容器移动时数据卷与它一起移动，您的数据库（容器）能够保持其数据状态。这里大家有没有联想到</span><span style="font-family: 'microsoft yahei',serif; color: #5f5f5f;">VMware</span><span lang="ZH-CN" style="font-family: 宋体; mso-bidi-font-family: 宋体; color: #5f5f5f;">的</span><span style="font-family: 'microsoft yahei',serif; color: #5f5f5f;">vMotion</span><span lang="ZH-CN" style="font-family: 宋体; mso-bidi-font-family: 宋体; color: #5f5f5f;">呢？传统并且最实用的</span><span style="font-family: 'microsoft yahei',serif; color: #5f5f5f;">vMotion</span><span lang="ZH-CN" style="font-family: 宋体; mso-bidi-font-family: 宋体; color: #5f5f5f;">虚拟机迁移是需要</span><span style="font-family: 'microsoft yahei',serif; color: #5f5f5f;">vmdk</span><span lang="ZH-CN" style="font-family: 宋体; mso-bidi-font-family: 宋体; color: #5f5f5f;">镜像位于共享存储上的，在这里戴尔</span><span style="font-family: 'microsoft yahei',serif; color: #5f5f5f;">SC</span><span lang="ZH-CN" style="font-family: 宋体; mso-bidi-font-family: 宋体; color: #5f5f5f;">阵列是同样的角色，我想与</span><span style="font-family: 'microsoft yahei',serif; color: #5f5f5f;">Flocker</span><span lang="ZH-CN" style="font-family: 宋体; mso-bidi-font-family: 宋体; color: #5f5f5f;">合作的其他传统存储厂商也是类似情况。</span></p>
<p style="margin: 0in 0in 15pt; text-align: center; line-height: 24pt; word-break: break-all; font-stretch: normal;" align="center"><span style="font-family: 'microsoft yahei',serif; color: #5f5f5f; mso-no-proof: yes;"><!-- [if gte vml 1]><v:shape id="Picture_x0020_7" o:spid="_x0000_i1025"<br />
 type="#_x0000_t75" alt="存储极客 | 再不拥抱Docker容器，你的存储就out了！ " style='width:415.5pt;<br />
 height:249.75pt;visibility:visible;mso-wrap-style:square'><br />
 <v:imagedata src="file:///C:/Users/KENYAN~1/AppData/Local/Temp/msohtmlclip1/01/clip_image007.png"<br />
  o:title="存储极客 | 再不拥抱Docker容器，你的存储就out了！ "/><br />
</v:shape><![endif]--><!-- [if !vml]--><img src="file:///C:/Users/KENYAN~1/AppData/Local/Temp/msohtmlclip1/01/clip_image007.png" alt="存储极客 | 再不拥抱Docker容器，你的存储就out了！ " width="554" height="333" /><!--[endif]--></span></p>
<p style="margin: 0in 0in 15pt; line-height: 24pt; word-break: break-all; font-stretch: normal;"><span lang="ZH-CN" style="font-family: 宋体; mso-bidi-font-family: 宋体; color: #5f5f5f;">最后，具体到戴尔的存储是如何与</span><span style="font-family: 'microsoft yahei',serif; color: #5f5f5f;">Flocker</span><span lang="ZH-CN" style="font-family: 宋体; mso-bidi-font-family: 宋体; color: #5f5f5f;">一同工作呢？如上图，我们看到</span><span style="font-family: 'microsoft yahei',serif; color: #5f5f5f;">SC</span><span lang="ZH-CN" style="font-family: 宋体; mso-bidi-font-family: 宋体; color: #5f5f5f;">阵列上有一个</span><span style="font-family: 'microsoft yahei',serif; color: #5f5f5f;">100TB</span><span lang="ZH-CN" style="font-family: 宋体; mso-bidi-font-family: 宋体; color: #5f5f5f;">的</span><span style="font-family: 'microsoft yahei',serif; color: #5f5f5f;">LUN 10</span><span lang="ZH-CN" style="font-family: 宋体; mso-bidi-font-family: 宋体; color: #5f5f5f;">映射到</span><span style="font-family: 'microsoft yahei',serif; color: #5f5f5f;">2</span><span lang="ZH-CN" style="font-family: 宋体; mso-bidi-font-family: 宋体; color: #5f5f5f;">台服务器，其中</span><span style="font-family: 'microsoft yahei',serif; color: #5f5f5f;">Ubuntu Docker Host 1</span><span lang="ZH-CN" style="font-family: 宋体; mso-bidi-font-family: 宋体; color: #5f5f5f;">在上面运行了一个</span><span style="font-family: 'microsoft yahei',serif; color: #5f5f5f;">MongoDB</span><span lang="ZH-CN" style="font-family: 宋体; mso-bidi-font-family: 宋体; color: #5f5f5f;">容器。当</span><span style="font-family: 'microsoft yahei',serif; color: #5f5f5f;">Flocker</span><span lang="ZH-CN" style="font-family: 宋体; mso-bidi-font-family: 宋体; color: #5f5f5f;">迁移容器时，会一并发送指令给戴尔存储插件（由存储厂商与</span><span style="font-family: 'microsoft yahei',serif; color: #5f5f5f;">Flocker</span><span lang="ZH-CN" style="font-family: 宋体; mso-bidi-font-family: 宋体; color: #5f5f5f;">合作开发）迁移卷到</span><span style="font-family: 'microsoft yahei',serif; color: #5f5f5f;">Ubuntu Docker Host 2</span><span lang="ZH-CN" style="font-family: 宋体; mso-bidi-font-family: 宋体; color: #5f5f5f;">。</span></p>
<p style="margin: 0in 0in 15pt; line-height: 24pt; word-break: break-all; font-stretch: normal;"><span lang="ZH-CN" style="font-family: 宋体; mso-bidi-font-family: 宋体; color: #5f5f5f;">这里并不需要真正的数据拷贝，简单理解应该是一个把</span><span style="font-family: 'microsoft yahei',serif; color: #5f5f5f;">MongoDB</span><span lang="ZH-CN" style="font-family: 宋体; mso-bidi-font-family: 宋体; color: #5f5f5f;">卷从</span><span style="font-family: 'microsoft yahei',serif; color: #5f5f5f;">Host 1</span><span lang="ZH-CN" style="font-family: 宋体; mso-bidi-font-family: 宋体; color: #5f5f5f;">的容器上解除注册，然后将其注册到</span><span style="font-family: 'microsoft yahei',serif; color: #5f5f5f;">Host 2</span><span lang="ZH-CN" style="font-family: 宋体; mso-bidi-font-family: 宋体; color: #5f5f5f;">上的过程。</span></p>
<p style="margin: 0in 0in 0.0001pt; line-height: 24pt; word-break: break-all; font-stretch: normal;"><span lang="ZH-CN" style="font-family: 宋体; mso-bidi-font-family: 宋体; color: #5f5f5f;">进一步思考，按照从</span><span style="font-family: 'microsoft yahei',serif; color: #5f5f5f;">vMotion</span><span lang="ZH-CN" style="font-family: 宋体; mso-bidi-font-family: 宋体; color: #5f5f5f;">到</span><span style="font-family: 'microsoft yahei',serif; color: #5f5f5f;">vSphere HA</span><span lang="ZH-CN" style="font-family: 宋体; mso-bidi-font-family: 宋体; color: #5f5f5f;">的思路，容器是否也可以在两台主机之间做高可用呢？在侦测到</span><span style="font-family: 'microsoft yahei',serif; color: #5f5f5f;">Host 1</span><span lang="ZH-CN" style="font-family: 宋体; mso-bidi-font-family: 宋体; color: #5f5f5f;">出现故障时，上面提到容器迁移的后半部分</span><span style="color: #5f5f5f;">——</span><span lang="ZH-CN" style="font-family: 宋体; mso-bidi-font-family: 宋体; color: #5f5f5f;">即在备用主机注册共享存储上的数据卷，然后启动容器这一过程，实现起来并不复杂。</span><span style="font-size: 9.0pt; font-family: 宋体; color: #666666;"><br style="font-stretch: normal;" /> </span><span lang="ZH-CN" style="font-family: 宋体; mso-bidi-font-family: 宋体; color: #5f5f5f;">我们预计，随着</span><span style="font-family: 'microsoft yahei',serif; color: #5f5f5f;">Docker</span><span lang="ZH-CN" style="font-family: 宋体; mso-bidi-font-family: 宋体; color: #5f5f5f;">应用的不断普及，企业级数据迁移、高可用需求的不断出现，主流存储厂商会陆续提供这方面的支持。</span></p>
<p>&nbsp;</p>
<p class="MsoNormal">
<p><span style="font-weight:bold;text-shadow:0 1px 0 #ddd;">声明:</span> 本文采用 <a rel="nofollow" href="http://creativecommons.org/licenses/by-nc-sa/3.0/" title="署名-非商业性使用-相同方式共享">BY-NC-SA</a> 协议进行授权 | <a href="https://www.asyun.cn">爱说云网</a><br />转载请注明转自《<a rel="bookmark" title="存储极客 | 再不拥抱Docker容器，你的存储就out了！" href="https://www.asyun.cn/2274.html">存储极客 | 再不拥抱Docker容器，你的存储就out了！</a>》</p>]]></content:encoded>
			<wfw:commentRss>https://www.asyun.cn/2274.html/feed</wfw:commentRss>
		<slash:comments>0</slash:comments>
		</item>
		<item>
		<title>实施创新驱动发展战略，推动企业发展</title>
		<link>https://www.asyun.cn/2244.html</link>
		<comments>https://www.asyun.cn/2244.html#comments</comments>
		<pubDate>Wed, 06 Jan 2016 02:03:03 +0000</pubDate>
		<dc:creator><![CDATA[爱说云网]]></dc:creator>
				<category><![CDATA[互联网资讯]]></category>

		<guid isPermaLink="false">http://www.asyun.cn/?p=2244</guid>
		<description><![CDATA[ 十八大报告指出，“要实施创新驱动发展战略”提出将“科技创新”作为“提高社会生产力和综合国力的战略支撑，必须摆在国家发展全局的核心位置”。这一点说明我国已经将创新摆到了国家发展全局的核心位置，这也是落实科学发展观的需要。但就现实来看，我国自主创新、转型升级、实现创新驱动发展的形势仍然不容乐观。从企业来看，多数处在全球产业链的中下游，企业研发能力、动力不足。针对这一问题，十八大报告提出要 “着力构建以企业为主体、市场为导向、产学研相结合的技术创新体系”，这一点强调了企业在技术创新中的主体地位，并鼓励企业要充分利用社会创新资源，促进科技人才流动和交流；要改变科技与市场脱节的情况，加快科技成果转化，让创新真正服务于经济社会发展，这样的创新才有生命力。大学和科研机构的应用研究开发更注重的是先进的技术指标，而对市场需求往往缺乏深入的了解和把握，因此无法形成就有竞争力的产品和产业。只有企业成为技术创新的主体，才能适应市场需求的快速变化，加快科技成果转化为生产力的步伐，才能打破知识产权、技术专利等新的贸易壁垒，提高企业创新能力和国家竞争力。 正是在以上政策的支持下，在国家、广东省、东莞市和松山湖产业园区相关部门的领导和支持下，遥感云服务分中心成立了。该分中心基于中科院遥感所和云计算产业创新与育成中心的技术资源，研发创新遥感云服务平台技术和产业化服务模式。通过产业前沿技术创新、集成创新和成果转移转化以及创造有核心竞争力的云计算商业服务模式，推动遥感云服务平台的研发和应用产业化，建设我国遥感云服务源头创新基地、新产业育成基地和高层次创新创业人才培养基地。在遥感分中心看来，只有走创新高端发展路线，掌握关键核心技术，才能在面临市场环境的变化时始终坚持战略先行。 然而，在当前社会氛围下，人心浮躁，急功近利，要搞创新就必须加快改善创新环境。技术能力不是外源的，而是内生的，主要取决于体制、政策等发展环境，因此要积极营造良好环境，为企业技术创新提供良好的体制机制保障。首先要加强的是法制对知识产权、创新行为的保护力度，然后要营造尊重创新、尊重知识的制度和舆论环境，形成全社会鼓励创造、尊重创新的土壤。 以遥感云服务研究中心的情况来看，遥感云服务研究中心2012年之所以能够获得“松山湖优秀创新企业”的荣誉称号，究其原因，主要是在国家、广东省、东莞市、松山湖各级部门和领导的支持鼓励下，我们才能充分利用我国产业转型的有利时期，重视科技投入，注重产业关键核心技术的研究以及创新主体地位的确立，不断加大科技投入力度。但我们不能满足于此，遥感云服务研究中心今后的工作应继续以建设国家创新型企业为主线，加快建立技术创新体系，围绕企业主体、协同创新，提高自主创新能力。只有这样，企业才能兴旺发达。 世界在不断变化，知识技术也在不断更新，只有通过不断学习才能做到与时俱进，才能掌握最新的技术和最有效的方法，才能在本职岗位上创造出新的成绩。作为党员，我们应该深入贯彻十八大精神，在工作中严格要求自己，时刻保持谦虚谨慎的工作作风，努力争创一流，积极主动思考，不断创新工作方法和提升自己的认知能力和认知范围从而应对工作中各种复杂的情况。同时，我们还要以更加饱满的热情投入到工作中去，因为饱满的热情可以激发工作的创作灵感，谦虚勤奋工作做法则是让人获取事业上成功的关键，不断保持一股强大的活力和不竭的动力，更好地为公司服务。 声明: 本文采用 BY-NC-SA 协议进行授权 &#124; 爱说云网转载请注明转自《实施创新驱动发展战略，推动企业发展》]]></description>
				<content:encoded><![CDATA[<p><span style="margin: 0px; padding: 0px; color: rgb(68, 68, 68); letter-spacing: 0.300000011920929px; text-align: justify; line-height: 2.5; font-family: SimSun; font-size: 14px;"> 十八大报告指出，“要实施创新驱动发展战略”提出将“科技创新”作为“提高社会生产力和综合国力的战略支撑，必须摆在国家发展全局的核心位置”。这一点说明我国已经将创新摆到了国家发展全局的核心位置，这也是落实科学发展观的需要。但就现实来看，我国自主创新、转型升级、实现创新驱动发展的形势仍然不容乐观。从企业来看，多数处在全球产业链的中下游，企业研发能力、动力不足。针对这一问题，十八大报告提出要 “着力构建以企业为主体、市场为导向、产学研相结合的技术创新体系”，这一点强调了企业在技术创新中的主体地位，并鼓励企业要充分利用社会创新资源，促进科技人才流动和交流；要改变科技与市场脱节的情况，加快科技成果转化，让创新真正服务于经济社会发展，这样的创新才有生命力。大学和科研机构的应用研究开发更注重的是先进的技术指标，而对市场需求往往缺乏深入的了解和把握，因此无法形成就有竞争力的产品和产业。只有企业成为技术创新的主体，才能适应市场需求的快速变化，加快科技成果转化为生产力的步伐，才能打破知识产权、技术专利等新的贸易壁垒，提高企业创新能力和国家竞争力。</span></p>
<p style="margin: 12px 0px; padding: 0px; text-indent: 2em; line-height: 22px; color: rgb(68, 68, 68); font-family: Arial, Verdana, ����; font-size: 12px; letter-spacing: 0.300000011920929px; text-align: justify;"><span style="margin: 0px; padding: 0px; line-height: 2.5; font-family: SimSun; font-size: 14px;">正是在以上政策的支持下，在国家、广东省、东莞市和松山湖产业园区相关部门的领导和支持下，遥感云服务分中心成立了。该分中心基于中科院遥感所和云计算产业创新与育成中心的技术资源，研发创新遥感云服务平台技术和产业化服务模式。</span><span style="margin: 0px; padding: 0px; line-height: 2.5; font-family: SimSun; font-size: 14px;">通过产业前沿技术创新、集成创新和成果转移转化以及创造有核心竞争力的云计算商业服务模式，</span><span style="margin: 0px; padding: 0px; line-height: 2.5; font-family: SimSun; font-size: 14px;">推动遥感云服务平台的研发和应用产业化，</span><span style="margin: 0px; padding: 0px; line-height: 2.5; font-family: SimSun; font-size: 14px;">建设我国</span><span style="margin: 0px; padding: 0px; line-height: 2.5; font-family: SimSun; font-size: 14px;">遥感云服务</span><span style="margin: 0px; padding: 0px; line-height: 2.5; font-family: SimSun; font-size: 14px;">源头创新基地、新产业育成基地和高层次创新创业人才培养基地。</span><span style="margin: 0px; padding: 0px; line-height: 2.5; font-family: SimSun; font-size: 14px;">在遥感分中心看来，只有走创新高端发展路线，掌握关键核心技术，才能在面临市场环境的变化时始终坚持战略先行。</span></p>
<p style="margin: 12px 0px; padding: 0px; text-indent: 2em; line-height: 22px; color: rgb(68, 68, 68); font-family: Arial, Verdana, ����; font-size: 12px; letter-spacing: 0.300000011920929px; text-align: justify;"><span style="margin: 0px; padding: 0px; line-height: 2.5; font-family: SimSun; font-size: 14px;">然而，在当前社会氛围下，人心浮躁，急功近利，要搞创新就必须加快改善创新环境。技术能力不是外源的，而是内生的，主要取决于体制、政策等发展环境，因此要积极营造良好环境，为企业技术创新提供良好的体制机制保障。首先要加强的是法制对知识产权、创新行为的保护力度，然后要营造尊重创新、尊重知识的制度和舆论环境，形成全社会鼓励创造、尊重创新的土壤。</span></p>
<p style="margin: 12px 0px; padding: 0px; text-indent: 2em; line-height: 22px; color: rgb(68, 68, 68); font-family: Arial, Verdana, ����; font-size: 12px; letter-spacing: 0.300000011920929px; text-align: justify;"><span style="margin: 0px; padding: 0px; line-height: 2.5; font-family: SimSun; font-size: 14px;">以遥感云服务研究中心的情况来看，遥感云服务研究中心2012年之所以能够获得“松山湖优秀创新企业”的荣誉称号，究其原因，主要是在国家、广东省、东莞市、松山湖各级部门和领导的支持鼓励下，我们才能充分利用我国产业转型的有利时期，重视科技投入，注重产业关键核心技术的研究以及创新主体地位的确立，不断加大科技投入力度。但我们不能满足于此，遥感云服务研究中心今后的工作应继续以建设国家创新型企业为主线，加快建立技术创新体系，围绕企业主体、协同创新，提高自主创新能力。只有这样，企业才能兴旺发达。</span></p>
<p><span style="font-family: SimSun; font-size: 14px; line-height: 2.5; color: rgb(68, 68, 68); letter-spacing: 0.300000011920929px; text-align: justify; text-indent: 2em;">世界在不断变化，知识技术也在不断更新，只有通过不断学习才能做到与时俱进，才能掌握最新的技术和最有效的方法，才能在本职岗位上创造出新的成绩。作为党员，我们应该深入贯彻十八大精神，在工作中严格要求自己，时刻保持谦虚谨慎的工作作风，努力争创一流，积极主动思考，不断创新工作方法和提升自己的认知能力和认知范围从而应对工作中各种复杂的情况。同时，我们还要以更加饱满的热情投入到工作中去，因为饱满的热情可以激发工作的创作灵感，谦虚勤奋工作做法则是让人获取事业上成功的关键，不断保持一股强大的活力和不竭的动力，更好地为公司服务。</span></p>
<p><span style="font-weight:bold;text-shadow:0 1px 0 #ddd;">声明:</span> 本文采用 <a rel="nofollow" href="http://creativecommons.org/licenses/by-nc-sa/3.0/" title="署名-非商业性使用-相同方式共享">BY-NC-SA</a> 协议进行授权 | <a href="https://www.asyun.cn">爱说云网</a><br />转载请注明转自《<a rel="bookmark" title="实施创新驱动发展战略，推动企业发展" href="https://www.asyun.cn/2244.html">实施创新驱动发展战略，推动企业发展</a>》</p>]]></content:encoded>
			<wfw:commentRss>https://www.asyun.cn/2244.html/feed</wfw:commentRss>
		<slash:comments>0</slash:comments>
		</item>
		<item>
		<title>大数据入侵隐私：被卖还不算，钱袋也被掏空了</title>
		<link>https://www.asyun.cn/2271.html</link>
		<comments>https://www.asyun.cn/2271.html#comments</comments>
		<pubDate>Wed, 06 Jan 2016 02:02:13 +0000</pubDate>
		<dc:creator><![CDATA[爱说云网]]></dc:creator>
				<category><![CDATA[大数据]]></category>

		<guid isPermaLink="false">http://www.asyun.cn/?p=2271</guid>
		<description><![CDATA[隐私，现代社会的一项基本价值，正在迅速退出大数据时代人们的生活。 隐私，现代社会的一项基本价值，正在迅速退出大数据时代人们的生活。 没了隐私，如何生活？然而，日复一日，我们被告知：放弃一点隐私，完全值得。因为，换来的是领先国际的科学管理和高技术创新，一种市场空前繁荣、办事越来越方便的新生活！更何况，人不干坏事心不惊，干嘛害怕与大数据为伴？ 如此看来，倒是那些执着于隐私意识的人心虚，不愿做贡献了。道理竟可以这样讲，人的尊严与自由得让位于所谓科学管理、创新和市场，这里面，一定有什么难言的隐情吧。 原来，新兴的电商资本有一种贪欲：依靠实时实地收集用户的隐私信息，由此全面掌握并准确预测消费者的行为，用于营销、开发各种产品。只不过，未经许可攫取用户的隐私，至少依照现行的法律是违法的。所以就需要一套冠冕堂皇的说辞，借用一些时髦的话语，然后才能否定，并最终让人们忘却隐私信息的初始产权；才能拿“洗过”的跟没“洗过”的数据，在交易所公开合法地买卖。今天，手机和电脑用户，谁没有被“瞄准式广告”（targeted advertising）跟踪追逐过？仿佛广告熟知了你从小到大的一切，包括早已遗忘的某一次浏览、点赞、选购或者退货记录。当然，如果你觉得烦人，可以点击“关闭”，把它当一只苍蝇赶开。但是，假若你以为这是电商收集隐私的主要用途，那就大大地小看了资本“创新”的能耐。 听说过“消费者剩余价值”（consumer surplus）吗？就是商品成交时，消费者能够，或潜意识中愿意支付的最高价和实际支付价之间的差额。差额越小，商家的利润就越高。例如，客人愿意花二十元买一样商品，定价十五元，便留下了五元消费者剩余价值。不用说，消费者要的恰好相反，希望物美价廉。淘宝网、双十一、饭店、超市，一切消费，都可以上演一场买卖之间的剩余价值拉锯战。常言道，知己知彼，百战不殆；信息，就是决定这拉锯战（学者称博弈）胜负的关键。消费者的支付意愿或价格承受力，依其生活需求、财力、心情、环境等各样因素，可有很大的差异和波动。弄清楚这些因素同商品定价、市场营销策略等的复杂关系，就能获取消费者剩余价值。基于这一认识形成的理论和实践，即以价格歧视（price discrimination）为导向的动态定价系统。其基本策略，便是同一商品以随时变动的不同价格出售给不同的买家；其着眼点不在商品的质量或成本，而是随时发现并引导、控制每一个消费者的需求和支付意愿。 价格歧视大致有三个类别。大数据之前，因为没有工具来大规模获取个人消费行为的真实数据，商家只能通过划分消费者群体，对特定群体的一般或平均需求和支付意愿做一估计，据此实施第二级和第三级价格歧视。前者即按数量定价，类似于近年流行的团购：购买量越大，单位价越低。后者则是分群体定价，例如，公园门票分外地游客和本地居民两个价。这种简单的价格歧视随处可见，但“吸金能力”有限，因为定价基于大略估算的某个平均值，而非每个消费者不断变化着的需求和支付意愿所包含的剩余价值。后者才是商家真正心仪的东西：第一级价格歧视。 隐私，现代社会的一项基本价值，正在迅速退出大数据时代人们的生活。 大数据让电商看到了曙光。大数据追踪、记录信息，描写并预测行为模式的能力，正是第一级价格歧视所必需的。大数据来到我们中间收集隐私，无声无息成就的便是这个。没错，人们照常用电脑、玩手机、交朋友、过日子，隐私却高速海量地流入了电商的数据库，无限期地保存起来，不管是收入、职业、行踪、心理、人际关系，还是消费需求、偏好、支付能力和意愿，没一件落下。接着，商家用算法处理数据，剖析用户隐私，发现他的行为模式，预测他的购买意向、每一次欲望和感情的波动。商家变得比消费者自己还要了解消费者。然后，就可以把数据分析的结果付诸使用了，如瞄准式广告的推送。而消费者对广告的每一次反应，都生成对特定商品的行为数据，这些都是大数据的素材，用以激活智能算法自我学习、自我调节的功能。这样循环往复，不断完善，大数据做出的预测就越来越精确；第一级价格歧视的条件也就成熟了！研究表明，由瞄准式广告推出的商品，其平均价格一般比传统广告要高（艾斯特夫）。更让商家激动的是，用互联网浏览行为数据甄别人群，实施第一级定价歧视，非常有效，被瞄准的消费者（如周二周四白天上网，并浏览wiki）可接受高出他人一倍的定价，而商家获利高达全部消费者剩余价值的百分之四十二（西勒）。 说到利润，商家的喜往往是消费者的忧，没法双赢。我们来看一个实例。“按使用保险”（UBI）是一款大数据汽车保险，正迅速占领多国市场。它被保险商吹得神乎其神，既能大大降低险费，又能有的放矢地改善参保人的驾驶习惯，使道路更加安全。UBI不同于传统车险的一个特点是，第一次把个人驾驶行为的“真实因果数据”（true causal data）引入了风险评估模型，据此量身定价，设置参保人的险费和保单理赔。它是这样操作的：在车上安装实时探测（telematics）装置，联网追踪驾驶行为、车况、路况和周边环境，上传至保险商的数据库。该装置的数据采集功能极强，除了时间、地点、公里数，连急刹车的次数和用力强度，急转弯的次数和弧度，是否听收音机、音量强度，是否接打电话、声调情绪如何，都一一记录。当然，常规的类聚群体变量，风险评估模型也照旧使用，如年龄、性别、婚姻状态、居住地、职业、受教育程度、健康状况、信用得分等；再加上环境变量，如区域天气、治安、路段事故发生频率等。如此，UBI的风险评估模型所用的变量参数，从传统的数十个、上百个，一下飙升到一百多万个！有了这样精密的大数据分析，保险商就可以识别并预测各种差异细微的风险。风险评估不再是类型化的平均值估算，而是十分接近参保人的真实风险，使得第一级定价歧视能够实施了。统计表明，UBI在美国上市不久，个人风险评估预测的准确度，较大数据之前提高了三倍。可以预见，随着个人驾驶行为数据的迅速积累、智能算法的自学和调节，风险评估型将进一步趋于“真实因果”，从而大大降低保险商的理赔风险，其利润的增长也可想而知了。 那么，参保人在失去隐私，被一刻不停地追踪记录之后，能得到什么好处呢？ 这个问题的答案因人而异。如果参保人被评估为低风险，他的险费很可能会下降。但只要上路，就会有风险，而UBI保险商掌握了参保人的所有风险信息，包括隐私，很容易在保单上做文章，瞄准风险设定条款，将随机风险和遗留风险尽可能多地放到参保人身上，压缩参保人的实际受保护（即理赔）范围。 但如果参保人被锁定为高风险，情形就更不妙了。既然有“真实因果数据”的记录和预测，保险商就有充分理由将他的险费和保单设定在与风险相匹配的水平上。结果险费上涨，直逼事故发生后损害赔偿的实际费用；或者，罗列排除条款，严格限制理赔条件和范围。这样，车险在事实上失去了风险集体分担的基本功能，成了损害赔偿专项费用的事先存放。可以想象，因为难以承受大幅上涨的险费和苛刻的保单条款，多数高风险驾驶人将不得不离开车险市场。 也许有人会说，即便如此，大数据保险对消费者整体和全社会仍有好处。因为知道了哪些人有高风险及不安全行为的细节，保险商就能有的放矢地提出建议，敦促他们改正。这样，总体风险就会下降，道路也就更安全了。这的确是美好的憧憬。不幸的是，保险商恐怕不会对此感兴趣。帮助高风险人士改正驾驶习惯，成本太高了，保险商还得披露自己的风险评估模型和操作细节，承担遭调查和打官司的风险。何况另有一种简单、诱人的市场策略可供选择：以第一级价格歧视，用高额险费和排除条款将高风险人士驱逐出本公司的服务范围。保险商从来就不欢迎高风险人士，总是想方设法甄别他们、剔除他们。只是过去不容易办到。现在，有了大数据技术，瞄准了歧视就只是举手之劳。而高风险人士一旦受市场排斥，无力购买保险，不能合法驾驶，生活、工作都大受影响，反弹是必然的。他们很可能豁出去，非法上路。据统计，2010年美国有百分之十二点六的驾驶人没有车险，给道路安全和社会秩序带来极大的隐患。 所以，UBI在实际运作中，并没有兑现保险商宣传允诺的众多好处，无论对参保人，还是对社会大众。难怪，美国州保险专员联席会议的2015年UBI研究报告直言不讳：从消费者和公共政策角度看，UBI 走的是一条歧路，是市场的失败。报告提醒我们，大数据是工具，效用取决于掌控者。我们不能只期待大数据的好处，而忘记了掌控它的电商同消费者和公众的利益有冲突。资本的本性是追逐利润，我们的隐私就成了他们榨取利润的利器，而经常损害我们的利益，综合表现在以下各个方面。 大数据入侵隐私：被卖还不算，钱袋也被掏空了 首先，随着用户隐私流入商品交易平台，大数据急剧扩大了市场信息的不对称。网络时代，日常消费不再是简单的货币商品交换；买方不仅要支付货币，还得交出隐私，才能成交，无论自愿与否。结果，电商可以实时追踪用户行为，攫取隐私，对消费者了如指掌。而后者面对铺天盖地的瞄准式广告，接受的只是为他定制的诱惑性信息。同时，他又被眼花缭乱的“创新”手段挟持，不得不配合商家的追踪，否则，就会遭到互联网屏蔽，被市场抛弃，而难以正常生活。更有甚者，用户还无法得知自己的哪些隐私被交易平台掌握，被谁利用，会有什么结果。常有媒体专家提醒消费者：多加小心，谨防网上暴露身份隐私，必要时，可以考虑匿名、用不同的方式上网、做假动作迷惑数据收集者。但是，大数据的追踪哪里是躲避得了的？在这虚拟同真实高度重合的时代，要在网上装扮一个人，你就得在生活中变成那人，告别自己。或者，你希望让网络世界“忘却”自己，但那是要有足够的财力和权位才能做到的。“被忘却”的权利，现在是奢侈品里的奢侈品，普通人哪敢奢望。于是，市场对大多数人越来越神秘，第一次，真的变成了一只“看不见的手”；对少数人，却是用隐私大数据编织的一张大网，捕捉的不是别的，就是消费者剩余价值。 其次，大数据的红利分配是弱肉强食的。照理说，用户交出了隐私（往往是被迫或不知情），电商才有了大数据的“食粮”和巨大收益。可是用户得到的是什么？是无数商业兼公关广告加上专家学者的鼓吹与不断重复的一个许诺：隐私数据换来“高大上”的商品和服务，投入市场造福于消费者。然而，这诺言在法律看来，并没有约束力。因此，许诺者不必受任何监督，也不用承担任何义务。即使利用隐私信息，开发新产品、新服务，赢了红利，也不会与消费者分享。甚至，可以拿用户隐私做损害用户利益的事，也无须承担法律后果。例如，商家在大数据交易中买卖隐私数据，挣了大钱，但拥有数据初始产权的消费者却一无所得（详见拙文《大数据卖的就是隐私》，《上海书评》2015年7月19日）。又如，电商盘剥消费者剩余价值，消费者在法律上没有任何救济手段，大数据的控制者成了红利的绝对占有者。而可怜的消费者就必须承受双重的侵害：交出隐私不算，钱袋还被掏空。 第三，生活必需品因为消费多，特别容易受到大数据市场营销策略的攻击，是消费者的软肋。大数据推动新的市场伦理规范，要求大家接受第一级价格歧视演绎的原则和实践，视商家利润最大化为理所当然。生活必需品就难逃厄运了。消费者个体的生活必需品需求弹性小，支付意愿刚性，大数据算法可以便利准确地用隐私数据分析预测出来，恰好是第一级价格歧视的理想靶子。这不是预言，而是现实，如Airbnb租房定价算法。医疗保险业更是首当其冲，药品价格乱象丛生。据报道，某抑制癌症呕吐的药，在美国，用保险购买三十天剂量是九百美元，而不用保险，仅需四十五美元。能这样定价，就是大数据的功劳：医药资本吃透了医保系统的“消费”意愿和支付能力，是针对新出炉的奥巴马全民医保进行利润最大化的做法。当医药业、保险业同大数据联手，利用DNA等高度隐私的信息，又能轻而易举地锁定有潜在高风险的患者，或以价格歧视等手段将他们逐出市场，或疯狂提价，榨取患者（消费者）的剩余价值。这噩梦般的医保失控的前景，在引领大数据技术的美国已经浮现；在我国，医改屡屡屈服于商业逻辑，更有青出于蓝之势。也许，天真的人们还在寄希望于市场竞争与那只“看不见的手”自动调节。但是，这念想被大数据斩断了。 这是因为，第四，隐私信息的滥用，提高了市场准入门槛，会促成垄断。自从有了大数据，囤积消费者隐私和高端算法处理已经成为许多企业参与市场竞争的前提条件。一切产品设计、定价营销都要依靠“真实因果”或实时追踪的消费者行为数据的优化。投资者也期待企业拥有这些条件。而有效的数据和算法，只有通过长时间、大规模的营运才能获得。后来者很难加入竞争，弱小的竞争者也很容易被击垮或吞并。例如车险，先行的大保险商已经甄别、留住了低风险、高利润的客户；剩下的在市场上寻找车险的，多数是高风险驾驶人，基本上没有利润潜力，甚至是赔本的买卖。UBI的迅速发展就是这市场垄断趋势的一个注脚。消费者交出了隐私，得到的却是永远瞄准着自己的商品定价。而公众的消费被大数据定价和营销手段割裂，碎片化的个体消费者的市场谈判力极低。所以才有这样恶劣的涨价：今年美国Turing制药公司给艾滋病非专利药Daraprim重新定价，猛涨五十五倍，从十三点五美元升至七百五十美元一片。它钻的是该药毒性大、处方需严格控制的空子，通过大数据限制配药，使潜在竞争者拿不到该药来测定成分和药性。而新药研发必须向联邦药品管理局（FDA）证明新药的同等药性，否则不会获批。就这样，消灭了竞争而形成垄断。对失去了隐私的患者，疯狂提价就成了宿命。尽管Turing公司后来迫于舆论压力，答应降低涨幅，但它居然能够宣布涨价五十五倍，而公众没有任何法律手段来抵制，不能不说是社会的悲哀。 第五，大数据之下，个人隐私及信用评估被少数公司垄断，公众所能选择、获得的服务就受到越来越多的限制。《金融时报》称，今年初，央行已授权八家机构试行信用评估系统，目标是到2020年建成覆盖全国的评估系统。问题是，这些巨无霸信用系统，拿什么做标准，用哪些数据，如何评分、使用，谁来评分、使用，公众即隐私交出方是完全蒙在鼓里的。一切由掌控隐私、生产大数据的电商说了算，毫无透明度。例如据报道，某智能手机厂商旗下的金融服务机构正在试验一个信用评估系统，其评估数据包括用户的财务记录、网购产品和使用该厂品牌手机的频率等。这样的信用评估，不是在鼓励或变相强迫消费者使用特定产品，是在干什么？还一举两得，排斥了竞争。 入侵隐私，是大数据的“基因”性格。我们需要大数据，但只要使用它，这性格就会发作。如果不加以节制，受侵害的就是广大消费者，遭破坏的则是平等、公正、互相关爱的社会基本准则。怎么办？对这类搅局型新技术，我们的唯一对策，大约就是严格的、民主的监督了，就像对核能和一些化工产品的安全监督。大数据不应例外。但大数据很特殊，看似无邪无害，不仅有用，还很神奇。它入侵隐私是无声息的、非暴力的；它还用海量的数据为自己营造了貌似客观、科学、公平的形象。它目标性强，在损害他人利益的同时，为掌控者谋取暴利，因而受到强势资本集团的推崇和保护。因此，我们真正要应对的不是大数据技术，而是躲在幕后的掌控者。这就需要公开辩论，加强民主监督，并立法规定数据的财产性质，即确认用户享有隐私数据的初始财产权。这应该是必须跨出的第一步。因为进入大数据时代，民主参与和知情权、财产权一样，不应是少数人的奢侈品或可有可无的消费选择，而是老百姓日常生活的必需品；是我们保护隐私、不让钱袋子被人掏空的唯一可行的一条新路。这条路能不能走通，则要看民众的觉醒、民众的发声了 声明: 本文采用 BY-NC-SA 协议进行授权 &#124; 爱说云网转载请注明转自《大数据入侵隐私：被卖还不算，钱袋也被掏空了》]]></description>
				<content:encoded><![CDATA[<p>隐私，现代社会的一项基本价值，正在迅速退出大数据时代人们的生活。<br />
隐私，现代社会的一项基本价值，正在迅速退出大数据时代人们的生活。<br />
没了隐私，如何生活？然而，日复一日，我们被告知：放弃一点隐私，完全值得。因为，换来的是领先国际的科学管理和高技术创新，一种市场空前繁荣、办事越来越方便的新生活！更何况，人不干坏事心不惊，干嘛害怕与大数据为伴？<br />
如此看来，倒是那些执着于隐私意识的人心虚，不愿做贡献了。道理竟可以这样讲，人的尊严与自由得让位于所谓科学管理、创新和市场，这里面，一定有什么难言的隐情吧。<br />
原来，新兴的电商资本有一种贪欲：依靠实时实地收集用户的隐私信息，由此全面掌握并准确预测消费者的行为，用于营销、开发各种产品。只不过，未经许可攫取用户的隐私，至少依照现行的法律是违法的。所以就需要一套冠冕堂皇的说辞，借用一些时髦的话语，然后才能否定，并最终让人们忘却隐私信息的初始产权；才能拿“洗过”的跟没“洗过”的数据，在交易所公开合法地买卖。今天，手机和电脑用户，谁没有被“瞄准式广告”（targeted advertising）跟踪追逐过？仿佛广告熟知了你从小到大的一切，包括早已遗忘的某一次浏览、点赞、选购或者退货记录。当然，如果你觉得烦人，可以点击“关闭”，把它当一只苍蝇赶开。但是，假若你以为这是电商收集隐私的主要用途，那就大大地小看了资本“创新”的能耐。<br />
听说过“消费者剩余价值”（consumer surplus）吗？就是商品成交时，消费者能够，或潜意识中愿意支付的最高价和实际支付价之间的差额。差额越小，商家的利润就越高。例如，客人愿意花二十元买一样商品，定价十五元，便留下了五元消费者剩余价值。不用说，消费者要的恰好相反，希望物美价廉。淘宝网、双十一、饭店、超市，一切消费，都可以上演一场买卖之间的剩余价值拉锯战。常言道，知己知彼，百战不殆；信息，就是决定这拉锯战（学者称博弈）胜负的关键。消费者的支付意愿或价格承受力，依其生活需求、财力、心情、环境等各样因素，可有很大的差异和波动。弄清楚这些因素同商品定价、市场营销策略等的复杂关系，就能获取消费者剩余价值。基于这一认识形成的理论和实践，即以价格歧视（price discrimination）为导向的动态定价系统。其基本策略，便是同一商品以随时变动的不同价格出售给不同的买家；其着眼点不在商品的质量或成本，而是随时发现并引导、控制每一个消费者的需求和支付意愿。<br />
价格歧视大致有三个类别。大数据之前，因为没有工具来大规模获取个人消费行为的真实数据，商家只能通过划分消费者群体，对特定群体的一般或平均需求和支付意愿做一估计，据此实施第二级和第三级价格歧视。前者即按数量定价，类似于近年流行的团购：购买量越大，单位价越低。后者则是分群体定价，例如，公园门票分外地游客和本地居民两个价。这种简单的价格歧视随处可见，但“吸金能力”有限，因为定价基于大略估算的某个平均值，而非每个消费者不断变化着的需求和支付意愿所包含的剩余价值。后者才是商家真正心仪的东西：第一级价格歧视。<br />
隐私，现代社会的一项基本价值，正在迅速退出大数据时代人们的生活。<br />
大数据让电商看到了曙光。大数据追踪、记录信息，描写并预测行为模式的能力，正是第一级价格歧视所必需的。大数据来到我们中间收集隐私，无声无息成就的便是这个。没错，人们照常用电脑、玩手机、交朋友、过日子，隐私却高速海量地流入了电商的数据库，无限期地保存起来，不管是收入、职业、行踪、心理、人际关系，还是消费需求、偏好、支付能力和意愿，没一件落下。接着，商家用算法处理数据，剖析用户隐私，发现他的行为模式，预测他的购买意向、每一次欲望和感情的波动。商家变得比消费者自己还要了解消费者。然后，就可以把数据分析的结果付诸使用了，如瞄准式广告的推送。而消费者对广告的每一次反应，都生成对特定商品的行为数据，这些都是大数据的素材，用以激活智能算法自我学习、自我调节的功能。这样循环往复，不断完善，大数据做出的预测就越来越精确；第一级价格歧视的条件也就成熟了！研究表明，由瞄准式广告推出的商品，其平均价格一般比传统广告要高（艾斯特夫）。更让商家激动的是，用互联网浏览行为数据甄别人群，实施第一级定价歧视，非常有效，被瞄准的消费者（如周二周四白天上网，并浏览wiki）可接受高出他人一倍的定价，而商家获利高达全部消费者剩余价值的百分之四十二（西勒）。<br />
说到利润，商家的喜往往是消费者的忧，没法双赢。我们来看一个实例。“按使用保险”（UBI）是一款大数据汽车保险，正迅速占领多国市场。它被保险商吹得神乎其神，既能大大降低险费，又能有的放矢地改善参保人的驾驶习惯，使道路更加安全。UBI不同于传统车险的一个特点是，第一次把个人驾驶行为的“真实因果数据”（true causal data）引入了风险评估模型，据此量身定价，设置参保人的险费和保单理赔。它是这样操作的：在车上安装实时探测（telematics）装置，联网追踪驾驶行为、车况、路况和周边环境，上传至保险商的数据库。该装置的数据采集功能极强，除了时间、地点、公里数，连急刹车的次数和用力强度，急转弯的次数和弧度，是否听收音机、音量强度，是否接打电话、声调情绪如何，都一一记录。当然，常规的类聚群体变量，风险评估模型也照旧使用，如年龄、性别、婚姻状态、居住地、职业、受教育程度、健康状况、信用得分等；再加上环境变量，如区域天气、治安、路段事故发生频率等。如此，UBI的风险评估模型所用的变量参数，从传统的数十个、上百个，一下飙升到一百多万个！有了这样精密的大数据分析，保险商就可以识别并预测各种差异细微的风险。风险评估不再是类型化的平均值估算，而是十分接近参保人的真实风险，使得第一级定价歧视能够实施了。统计表明，UBI在美国上市不久，个人风险评估预测的准确度，较大数据之前提高了三倍。可以预见，随着个人驾驶行为数据的迅速积累、智能算法的自学和调节，风险评估型将进一步趋于“真实因果”，从而大大降低保险商的理赔风险，其利润的增长也可想而知了。<br />
那么，参保人在失去隐私，被一刻不停地追踪记录之后，能得到什么好处呢？<br />
这个问题的答案因人而异。如果参保人被评估为低风险，他的险费很可能会下降。但只要上路，就会有风险，而UBI保险商掌握了参保人的所有风险信息，包括隐私，很容易在保单上做文章，瞄准风险设定条款，将随机风险和遗留风险尽可能多地放到参保人身上，压缩参保人的实际受保护（即理赔）范围。<br />
但如果参保人被锁定为高风险，情形就更不妙了。既然有“真实因果数据”的记录和预测，保险商就有充分理由将他的险费和保单设定在与风险相匹配的水平上。结果险费上涨，直逼事故发生后损害赔偿的实际费用；或者，罗列排除条款，严格限制理赔条件和范围。这样，车险在事实上失去了风险集体分担的基本功能，成了损害赔偿专项费用的事先存放。可以想象，因为难以承受大幅上涨的险费和苛刻的保单条款，多数高风险驾驶人将不得不离开车险市场。<br />
也许有人会说，即便如此，大数据保险对消费者整体和全社会仍有好处。因为知道了哪些人有高风险及不安全行为的细节，保险商就能有的放矢地提出建议，敦促他们改正。这样，总体风险就会下降，道路也就更安全了。这的确是美好的憧憬。不幸的是，保险商恐怕不会对此感兴趣。帮助高风险人士改正驾驶习惯，成本太高了，保险商还得披露自己的风险评估模型和操作细节，承担遭调查和打官司的风险。何况另有一种简单、诱人的市场策略可供选择：以第一级价格歧视，用高额险费和排除条款将高风险人士驱逐出本公司的服务范围。保险商从来就不欢迎高风险人士，总是想方设法甄别他们、剔除他们。只是过去不容易办到。现在，有了大数据技术，瞄准了歧视就只是举手之劳。而高风险人士一旦受市场排斥，无力购买保险，不能合法驾驶，生活、工作都大受影响，反弹是必然的。他们很可能豁出去，非法上路。据统计，2010年美国有百分之十二点六的驾驶人没有车险，给道路安全和社会秩序带来极大的隐患。<br />
所以，UBI在实际运作中，并没有兑现保险商宣传允诺的众多好处，无论对参保人，还是对社会大众。难怪，美国州保险专员联席会议的2015年UBI研究报告直言不讳：从消费者和公共政策角度看，UBI 走的是一条歧路，是市场的失败。报告提醒我们，大数据是工具，效用取决于掌控者。我们不能只期待大数据的好处，而忘记了掌控它的电商同消费者和公众的利益有冲突。资本的本性是追逐利润，我们的隐私就成了他们榨取利润的利器，而经常损害我们的利益，综合表现在以下各个方面。<br />
大数据入侵隐私：被卖还不算，钱袋也被掏空了<br />
首先，随着用户隐私流入商品交易平台，大数据急剧扩大了市场信息的不对称。网络时代，日常消费不再是简单的货币商品交换；买方不仅要支付货币，还得交出隐私，才能成交，无论自愿与否。结果，电商可以实时追踪用户行为，攫取隐私，对消费者了如指掌。而后者面对铺天盖地的瞄准式广告，接受的只是为他定制的诱惑性信息。同时，他又被眼花缭乱的“创新”手段挟持，不得不配合商家的追踪，否则，就会遭到互联网屏蔽，被市场抛弃，而难以正常生活。更有甚者，用户还无法得知自己的哪些隐私被交易平台掌握，被谁利用，会有什么结果。常有媒体专家提醒消费者：多加小心，谨防网上暴露身份隐私，必要时，可以考虑匿名、用不同的方式上网、做假动作迷惑数据收集者。但是，大数据的追踪哪里是躲避得了的？在这虚拟同真实高度重合的时代，要在网上装扮一个人，你就得在生活中变成那人，告别自己。或者，你希望让网络世界“忘却”自己，但那是要有足够的财力和权位才能做到的。“被忘却”的权利，现在是奢侈品里的奢侈品，普通人哪敢奢望。于是，市场对大多数人越来越神秘，第一次，真的变成了一只“看不见的手”；对少数人，却是用隐私大数据编织的一张大网，捕捉的不是别的，就是消费者剩余价值。<br />
其次，大数据的红利分配是弱肉强食的。照理说，用户交出了隐私（往往是被迫或不知情），电商才有了大数据的“食粮”和巨大收益。可是用户得到的是什么？是无数商业兼公关广告加上专家学者的鼓吹与不断重复的一个许诺：隐私数据换来“高大上”的商品和服务，投入市场造福于消费者。然而，这诺言在法律看来，并没有约束力。因此，许诺者不必受任何监督，也不用承担任何义务。即使利用隐私信息，开发新产品、新服务，赢了红利，也不会与消费者分享。甚至，可以拿用户隐私做损害用户利益的事，也无须承担法律后果。例如，商家在大数据交易中买卖隐私数据，挣了大钱，但拥有数据初始产权的消费者却一无所得（详见拙文《大数据卖的就是隐私》，《上海书评》2015年7月19日）。又如，电商盘剥消费者剩余价值，消费者在法律上没有任何救济手段，大数据的控制者成了红利的绝对占有者。而可怜的消费者就必须承受双重的侵害：交出隐私不算，钱袋还被掏空。<br />
第三，生活必需品因为消费多，特别容易受到大数据市场营销策略的攻击，是消费者的软肋。大数据推动新的市场伦理规范，要求大家接受第一级价格歧视演绎的原则和实践，视商家利润最大化为理所当然。生活必需品就难逃厄运了。消费者个体的生活必需品需求弹性小，支付意愿刚性，大数据算法可以便利准确地用隐私数据分析预测出来，恰好是第一级价格歧视的理想靶子。这不是预言，而是现实，如Airbnb租房定价算法。医疗保险业更是首当其冲，药品价格乱象丛生。据报道，某抑制癌症呕吐的药，在美国，用保险购买三十天剂量是九百美元，而不用保险，仅需四十五美元。能这样定价，就是大数据的功劳：医药资本吃透了医保系统的“消费”意愿和支付能力，是针对新出炉的奥巴马全民医保进行利润最大化的做法。当医药业、保险业同大数据联手，利用DNA等高度隐私的信息，又能轻而易举地锁定有潜在高风险的患者，或以价格歧视等手段将他们逐出市场，或疯狂提价，榨取患者（消费者）的剩余价值。这噩梦般的医保失控的前景，在引领大数据技术的美国已经浮现；在我国，医改屡屡屈服于商业逻辑，更有青出于蓝之势。也许，天真的人们还在寄希望于市场竞争与那只“看不见的手”自动调节。但是，这念想被大数据斩断了。<br />
这是因为，第四，隐私信息的滥用，提高了市场准入门槛，会促成垄断。自从有了大数据，囤积消费者隐私和高端算法处理已经成为许多企业参与市场竞争的前提条件。一切产品设计、定价营销都要依靠“真实因果”或实时追踪的消费者行为数据的优化。投资者也期待企业拥有这些条件。而有效的数据和算法，只有通过长时间、大规模的营运才能获得。后来者很难加入竞争，弱小的竞争者也很容易被击垮或吞并。例如车险，先行的大保险商已经甄别、留住了低风险、高利润的客户；剩下的在市场上寻找车险的，多数是高风险驾驶人，基本上没有利润潜力，甚至是赔本的买卖。UBI的迅速发展就是这市场垄断趋势的一个注脚。消费者交出了隐私，得到的却是永远瞄准着自己的商品定价。而公众的消费被大数据定价和营销手段割裂，碎片化的个体消费者的市场谈判力极低。所以才有这样恶劣的涨价：今年美国Turing制药公司给艾滋病非专利药Daraprim重新定价，猛涨五十五倍，从十三点五美元升至七百五十美元一片。它钻的是该药毒性大、处方需严格控制的空子，通过大数据限制配药，使潜在竞争者拿不到该药来测定成分和药性。而新药研发必须向联邦药品管理局（FDA）证明新药的同等药性，否则不会获批。就这样，消灭了竞争而形成垄断。对失去了隐私的患者，疯狂提价就成了宿命。尽管Turing公司后来迫于舆论压力，答应降低涨幅，但它居然能够宣布涨价五十五倍，而公众没有任何法律手段来抵制，不能不说是社会的悲哀。<br />
第五，大数据之下，个人隐私及信用评估被少数公司垄断，公众所能选择、获得的服务就受到越来越多的限制。《金融时报》称，今年初，央行已授权八家机构试行信用评估系统，目标是到2020年建成覆盖全国的评估系统。问题是，这些巨无霸信用系统，拿什么做标准，用哪些数据，如何评分、使用，谁来评分、使用，公众即隐私交出方是完全蒙在鼓里的。一切由掌控隐私、生产大数据的电商说了算，毫无透明度。例如据报道，某智能手机厂商旗下的金融服务机构正在试验一个信用评估系统，其评估数据包括用户的财务记录、网购产品和使用该厂品牌手机的频率等。这样的信用评估，不是在鼓励或变相强迫消费者使用特定产品，是在干什么？还一举两得，排斥了竞争。<br />
入侵隐私，是大数据的“基因”性格。我们需要大数据，但只要使用它，这性格就会发作。如果不加以节制，受侵害的就是广大消费者，遭破坏的则是平等、公正、互相关爱的社会基本准则。怎么办？对这类搅局型新技术，我们的唯一对策，大约就是严格的、民主的监督了，就像对核能和一些化工产品的安全监督。大数据不应例外。但大数据很特殊，看似无邪无害，不仅有用，还很神奇。它入侵隐私是无声息的、非暴力的；它还用海量的数据为自己营造了貌似客观、科学、公平的形象。它目标性强，在损害他人利益的同时，为掌控者谋取暴利，因而受到强势资本集团的推崇和保护。因此，我们真正要应对的不是大数据技术，而是躲在幕后的掌控者。这就需要公开辩论，加强民主监督，并立法规定数据的财产性质，即确认用户享有隐私数据的初始财产权。这应该是必须跨出的第一步。因为进入大数据时代，民主参与和知情权、财产权一样，不应是少数人的奢侈品或可有可无的消费选择，而是老百姓日常生活的必需品；是我们保护隐私、不让钱袋子被人掏空的唯一可行的一条新路。这条路能不能走通，则要看民众的觉醒、民众的发声了</p>
<p><span style="font-weight:bold;text-shadow:0 1px 0 #ddd;">声明:</span> 本文采用 <a rel="nofollow" href="http://creativecommons.org/licenses/by-nc-sa/3.0/" title="署名-非商业性使用-相同方式共享">BY-NC-SA</a> 协议进行授权 | <a href="https://www.asyun.cn">爱说云网</a><br />转载请注明转自《<a rel="bookmark" title="大数据入侵隐私：被卖还不算，钱袋也被掏空了" href="https://www.asyun.cn/2271.html">大数据入侵隐私：被卖还不算，钱袋也被掏空了</a>》</p>]]></content:encoded>
			<wfw:commentRss>https://www.asyun.cn/2271.html/feed</wfw:commentRss>
		<slash:comments>0</slash:comments>
		</item>
		<item>
		<title>为什么很多SaaS企业级产品都熬不过第一年？</title>
		<link>https://www.asyun.cn/2269.html</link>
		<comments>https://www.asyun.cn/2269.html#comments</comments>
		<pubDate>Wed, 06 Jan 2016 02:01:23 +0000</pubDate>
		<dc:creator><![CDATA[爱说云网]]></dc:creator>
				<category><![CDATA[互联网资讯]]></category>

		<guid isPermaLink="false">http://www.asyun.cn/?p=2269</guid>
		<description><![CDATA[2015年2B企业级应用软件的资本市场异常火热。包括纷享销客、销售易、今目标等一众企业级软件厂商受到各大VC的资本热捧，阿里重金打造的钉钉，也以后发制人之势席卷整个企业级SaaS市场，力图在这块价值洼地上打造另一个新“入口“。 因工作缘由，笔者与周边数位SaaS企业级应用的创始人、运营负责人有过深入接触，发现一个有趣的现象：刚起步时，蓝图远志、规划清晰，但是一路下来，却异常艰难，有些甚至熬不过第一年，就关门歇业。 细细分析下，这里或多或少与传统软件人进入互联网领域，在产品定位、功能需求把握、用户服务、盈利模式上与互联网行业“水土不服”有较大关系。且对于实践上的偏差及不可预知风险，也无法凭借过往经验进行及时调整，导致后续企业运营的异常艰辛，与预期规划渐行渐远。 对于传统企业级软件与2B互联网企业软件的典型性差异、SaaS企业级软件如何顺利实现从0到1，笔者站位于运营角度、结合亲身实践总结一二。 要做好2B企业软件市场运营，首先要搞清楚，运营与市场推广两者的区别。 传统软件行业，品牌先导。需借力于强大的品牌效应，以此获得销售寻得客户拜访的“敲门砖、“商务谈判上的“价格筹码“、拓展渠道代理商的“知名度”。因此，市场层面先发于品牌物料、PR宣传、媒体广告、行业论坛、领袖峰会等，以期树立高端、专业的品牌形象。并与销售及渠道携手共进，以取得市场的线性增长。 互联网2B企业级产品，则更看重产品本身的核心价值打造及用户口碑的塑造。依托互联网用户导向思维，为用户提供满意的产品及服务，借用户口碑传播沉淀品牌。因此，是以用户运营为主，市场品牌为辅的策略。为此，运营的工作更多的是，如何找到价值用户，如何与用户一同打造好的产品，如何基于用户真实反馈完善产品及服务体系。 不少刚转型的传统软件人或诧异，或忐忑：创业多艰险，时间、资金、人力多不宽裕。我们要问，怎么找到正确方向、做好运营布局？如何才能把有限的资金、人力用在刀刃上，并推动企业良性、快速走上正确轨道？ 与产品一同做好定位及用户画像 定位、用户画像，老生常谈，但笔者见过不少SaaS级产品在初期都会犯方向上的错误。如，大凡做SaaS级软件均怀揣平台愿景，但是一开始就奔着大平台去，是否与现今产品成熟度，寥寥用户偏差太大？互联网各垂直领域的平台，是海量用户、高频次应用聚集而成，而非纸上规划的平台。此处建议传统IT人深刻思考，做好远景战略与初期战术的平衡。 初期，产品需确立做什么，什么不能做。不少人一上来就用“拿来主义”，凭借自身在行业多年的经验和历史项目积累开始构建产品和运营，错把“经验”当用户需求，恰恰会犯“经验本位主义”的错误。为什么？传统IT企业级软件更热衷于服务于大企业，项目化经营，此模式下客户的需求，更偏向于客户领导个人意志或部门级个性化需求，不具备需求普遍性。如此逻辑做产品，估计很难抓到广大企业用户的痛点，或所谓的刚性需求。 从用户角度出发的互联网产品，则是从广大的用户端获取真实的痛点，以来指导产品发展。因此，重构用户画像，并不是招几名行业精英就能很好解决的，这也是为什么目前最具规模和用户量级的产品反而是一群非传统企业软件出身的互联网人缔造的。 运营端则需搭建好完善的数据监测体系，摸索用户渠道、搭建有效的用户反馈渠道与互动机制，抓住高价值企业用户（有痛点、有信息化诉求）。一方面构建粉丝用户群，另一方面为产品打磨、需求把握、未来服务体系搭建提供真实的数据依据。 产品核心价值、服务价值打造，目标用户数及活跃度提升应始终放在第一位。 先布局产品运营线上渠道 ，再考虑线下 SaaS企业级软件核心价值，应指向产品及产品的衍生服务是否为用户所用，因此运营先应围绕产品服务来做。一方面解决客户的使用中相关问题，并逐步提升智能化及降低服务成本。如，将服务功能植入产品本身、协同产品经理优化产品体验降使用门槛。另一方面，创新用户互动渠道，协同活动运营。以服务为导向，发掘并驱动用户运营手段，让“发烧级“用户参与至产品打造及服务体系。此处与小米的运营思路有相通之处。 是否需要大规模做线下运营？笔者建议，初期（种子用户期），如若可借力现成的渠道，且渠道用户与产品目标用户有高度一致性，在人力及推广成本可控的情况下，适当做探索且严格监测转化成本。但基于SaaS平台的本身标准化服务特性及用户定位，线上终归是运营的主要的发力方向。待线上各类运营渠道健全、用户服务体系成熟后，在启动盈利或变现模式时，可结合考量线下的拓展手段。 如何探索高效的推广渠道 初期，资金上捉襟见肘，而运营推广在业内是公认的“烧钱”环节。花钱与不花钱是时间与效率的平衡方式，我们要谈的是，如何正确的把钱花在刀刃上。 在推广运营上，2C的许多领域看似有许多成功经验借鉴，甚至许多不花钱的手段见诸于各大自媒体。但在此建议各位2B的互联网人一定要注意：2C与2B的对于用户定义的本质区别：2C用户是个人，2B用户是群体。个人决策与群体决策在严谨性（消费冲动）、时间（试用风险成本）、转化成本（单个用户）计算上均有着较大差异。 譬如，某公司老板，午餐下载某App点了一份外卖，源于其上班途中收到一张刚成立O2O企业外卖单，试试无妨。同时，朋友公司推荐某款移动办公产品，虽然免费，但是需要开展企业内部试用、开会讨论、结合自身需求货比三家，再决定是否在公司全面启用。从运营的单个转化成本来看，2C的本次推广似乎更容易，且成本低。但是若该老板让整个公司进行启用。核算下平均用户的转化成本，显然结果非常明了。 对2B企业而言如何找准价值渠道非常关键，所谓价值渠道，即产品面向的关键用户（对于启用产品，并推动用户内部全面应用该产品有着较强推动力作用的人）获取此类产品的活跃渠道。价值用户导入和持续运营，一方面可抓住核心用户群体（目标企业用户），另一方面对于摊薄平均用户成本，起着非常关键的作用。 SaaS企业级应用，应在初期做好定位、重构用户画像，打磨好产品核心应用及服务价值，辅之探索高质量推广渠道、运营模式，快速提升用户基数及活跃量，才是初期团队的工作重点。 声明: 本文采用 BY-NC-SA 协议进行授权 &#124; 爱说云网转载请注明转自《为什么很多SaaS企业级产品都熬不过第一年？》]]></description>
				<content:encoded><![CDATA[<p>2015年2B企业级应用软件的资本市场异常火热。包括纷享销客、销售易、今目标等一众企业级软件厂商受到各大VC的资本热捧，阿里重金打造的钉钉，也以后发制人之势席卷整个企业级SaaS市场，力图在这块价值洼地上打造另一个新“入口“。<br />
因工作缘由，笔者与周边数位SaaS企业级应用的创始人、运营负责人有过深入接触，发现一个有趣的现象：刚起步时，蓝图远志、规划清晰，但是一路下来，却异常艰难，有些甚至熬不过第一年，就关门歇业。<br />
细细分析下，这里或多或少与传统软件人进入互联网领域，在产品定位、功能需求把握、用户服务、盈利模式上与互联网行业“水土不服”有较大关系。且对于实践上的偏差及不可预知风险，也无法凭借过往经验进行及时调整，导致后续企业运营的异常艰辛，与预期规划渐行渐远。<br />
对于传统企业级软件与2B互联网企业软件的典型性差异、SaaS企业级软件如何顺利实现从0到1，笔者站位于运营角度、结合亲身实践总结一二。</p>
<p>要做好2B企业软件市场运营，首先要搞清楚，运营与市场推广两者的区别。<br />
传统软件行业，品牌先导。需借力于强大的品牌效应，以此获得销售寻得客户拜访的“敲门砖、“商务谈判上的“价格筹码“、拓展渠道代理商的“知名度”。因此，市场层面先发于品牌物料、PR宣传、媒体广告、行业论坛、领袖峰会等，以期树立高端、专业的品牌形象。并与销售及渠道携手共进，以取得市场的线性增长。<br />
互联网2B企业级产品，则更看重产品本身的核心价值打造及用户口碑的塑造。依托互联网用户导向思维，为用户提供满意的产品及服务，借用户口碑传播沉淀品牌。因此，是以用户运营为主，市场品牌为辅的策略。为此，运营的工作更多的是，如何找到价值用户，如何与用户一同打造好的产品，如何基于用户真实反馈完善产品及服务体系。<br />
不少刚转型的传统软件人或诧异，或忐忑：创业多艰险，时间、资金、人力多不宽裕。我们要问，怎么找到正确方向、做好运营布局？如何才能把有限的资金、人力用在刀刃上，并推动企业良性、快速走上正确轨道？<br />
与产品一同做好定位及用户画像<br />
定位、用户画像，老生常谈，但笔者见过不少SaaS级产品在初期都会犯方向上的错误。如，大凡做SaaS级软件均怀揣平台愿景，但是一开始就奔着大平台去，是否与现今产品成熟度，寥寥用户偏差太大？互联网各垂直领域的平台，是海量用户、高频次应用聚集而成，而非纸上规划的平台。此处建议传统IT人深刻思考，做好远景战略与初期战术的平衡。<br />
初期，产品需确立做什么，什么不能做。不少人一上来就用“拿来主义”，凭借自身在行业多年的经验和历史项目积累开始构建产品和运营，错把“经验”当用户需求，恰恰会犯“经验本位主义”的错误。为什么？传统IT企业级软件更热衷于服务于大企业，项目化经营，此模式下客户的需求，更偏向于客户领导个人意志或部门级个性化需求，不具备需求普遍性。如此逻辑做产品，估计很难抓到广大企业用户的痛点，或所谓的刚性需求。<br />
从用户角度出发的互联网产品，则是从广大的用户端获取真实的痛点，以来指导产品发展。因此，重构用户画像，并不是招几名行业精英就能很好解决的，这也是为什么目前最具规模和用户量级的产品反而是一群非传统企业软件出身的互联网人缔造的。<br />
运营端则需搭建好完善的数据监测体系，摸索用户渠道、搭建有效的用户反馈渠道与互动机制，抓住高价值企业用户（有痛点、有信息化诉求）。一方面构建粉丝用户群，另一方面为产品打磨、需求把握、未来服务体系搭建提供真实的数据依据。<br />
产品核心价值、服务价值打造，目标用户数及活跃度提升应始终放在第一位。<br />
先布局产品运营线上渠道 ，再考虑线下<br />
SaaS企业级软件核心价值，应指向产品及产品的衍生服务是否为用户所用，因此运营先应围绕产品服务来做。一方面解决客户的使用中相关问题，并逐步提升智能化及降低服务成本。如，将服务功能植入产品本身、协同产品经理优化产品体验降使用门槛。另一方面，创新用户互动渠道，协同活动运营。以服务为导向，发掘并驱动用户运营手段，让“发烧级“用户参与至产品打造及服务体系。此处与小米的运营思路有相通之处。<br />
是否需要大规模做线下运营？笔者建议，初期（种子用户期），如若可借力现成的渠道，且渠道用户与产品目标用户有高度一致性，在人力及推广成本可控的情况下，适当做探索且严格监测转化成本。但基于SaaS平台的本身标准化服务特性及用户定位，线上终归是运营的主要的发力方向。待线上各类运营渠道健全、用户服务体系成熟后，在启动盈利或变现模式时，可结合考量线下的拓展手段。<br />
如何探索高效的推广渠道<br />
初期，资金上捉襟见肘，而运营推广在业内是公认的“烧钱”环节。花钱与不花钱是时间与效率的平衡方式，我们要谈的是，如何正确的把钱花在刀刃上。<br />
在推广运营上，2C的许多领域看似有许多成功经验借鉴，甚至许多不花钱的手段见诸于各大自媒体。但在此建议各位2B的互联网人一定要注意：2C与2B的对于用户定义的本质区别：2C用户是个人，2B用户是群体。个人决策与群体决策在严谨性（消费冲动）、时间（试用风险成本）、转化成本（单个用户）计算上均有着较大差异。 譬如，某公司老板，午餐下载某App点了一份外卖，源于其上班途中收到一张刚成立O2O企业外卖单，试试无妨。同时，朋友公司推荐某款移动办公产品，虽然免费，但是需要开展企业内部试用、开会讨论、结合自身需求货比三家，再决定是否在公司全面启用。从运营的单个转化成本来看，2C的本次推广似乎更容易，且成本低。但是若该老板让整个公司进行启用。核算下平均用户的转化成本，显然结果非常明了。<br />
对2B企业而言如何找准价值渠道非常关键，所谓价值渠道，即产品面向的关键用户（对于启用产品，并推动用户内部全面应用该产品有着较强推动力作用的人）获取此类产品的活跃渠道。价值用户导入和持续运营，一方面可抓住核心用户群体（目标企业用户），另一方面对于摊薄平均用户成本，起着非常关键的作用。<br />
SaaS企业级应用，应在初期做好定位、重构用户画像，打磨好产品核心应用及服务价值，辅之探索高质量推广渠道、运营模式，快速提升用户基数及活跃量，才是初期团队的工作重点。</p>
<p><span style="font-weight:bold;text-shadow:0 1px 0 #ddd;">声明:</span> 本文采用 <a rel="nofollow" href="http://creativecommons.org/licenses/by-nc-sa/3.0/" title="署名-非商业性使用-相同方式共享">BY-NC-SA</a> 协议进行授权 | <a href="https://www.asyun.cn">爱说云网</a><br />转载请注明转自《<a rel="bookmark" title="为什么很多SaaS企业级产品都熬不过第一年？" href="https://www.asyun.cn/2269.html">为什么很多SaaS企业级产品都熬不过第一年？</a>》</p>]]></content:encoded>
			<wfw:commentRss>https://www.asyun.cn/2269.html/feed</wfw:commentRss>
		<slash:comments>0</slash:comments>
		</item>
		<item>
		<title>亚马逊云计算中心为何看上宁夏中卫？</title>
		<link>https://www.asyun.cn/2267.html</link>
		<comments>https://www.asyun.cn/2267.html#comments</comments>
		<pubDate>Wed, 06 Jan 2016 02:00:31 +0000</pubDate>
		<dc:creator><![CDATA[爱说云网]]></dc:creator>
				<category><![CDATA[互联网资讯]]></category>

		<guid isPermaLink="false">http://www.asyun.cn/?p=2267</guid>
		<description><![CDATA[20年前的美国凤凰城（Phoenix），还是一个沙漠小镇，如今，这个美国第六大都市已享有世界“沙漠硅谷”的美誉，利用充沛的电力与网络资源发展云计算产业，目前至少集聚了80余个云计算数据中心，苹果公司（Apple）、美国电信运营商AT&#038;T等企业的机房都坐落于此。 在中国西部的沙漠边缘，有一座城市与美国凤凰城的地形地貌、电力资源条件相似。在一望无际的黄土平原上，有着成片成片太阳能电池板，正在光伏发电。 宁夏中卫的光伏发电。文内图均来自澎湃新闻记者 杨鑫倢 宁夏中卫的光伏发电。文内图均来自澎湃新闻记者 杨鑫倢 甚至，它的气候比美国凤凰城更宜人。令当地人引以为傲的是，他们的左手边虽然是沙漠，但右手边是黄河上游。富饶的水资源令当地年平均气温8.8度，而数据中心最爱低温，自然风可以让数据中心大大降低能耗。 这就是宁夏中卫。 “我们有信心把中卫市打造成中国的凤凰城，搭建全球世界级的数据中心集群。”亚马逊云服务（AWS）全球副总裁、中国区执行董事容永康曾公开表示。 澎湃新闻了解到，AWS在中国开展业务之前，为了数据中心选址一事，亚马逊花了一年时间在全国各地考察，最终敲定将地点落在宁夏中卫。 全球电子商务巨头亚马逊，同样是全球最大的云计算厂商。后来崛起的云计算已经成为亚马逊最赚钱的部门。 据了解，宁夏已经将中卫发展云计算产业提升到战略高度，以此促进经济转型。 所谓云计算，对于个人而言，将照片、信息等文件放在云上，可以不用再购置实体硬盘，可在手机、电脑等任何设备直接获取。对企业而言，将IT系统部署到云上，可以加快运营速度，节省运维成本。比如铁路售票系统12306将查询票务部署到云上后，解决了春节期间突然涌现的大客流上网而导致的网络拥挤情况。 亚马逊中国数据中心即将投入运营 2015年12月，澎湃新闻记者从中卫市区驱车半个多小时左右，抵达位于宁夏中卫工业园的西部云计算基地。从大门口向里望去，能看到一个白色外表的一层建筑。 远远看到的亚马逊数据中心。 远远看到的亚马逊数据中心。 据介绍，这就是亚马逊AWS在中国的数据中心。目前，建筑体已完成施工，项目正在进行服务器安装调试，即将投入运营。 中卫网信办提供给投资者的数据显示，2015年，亚马逊宁夏项目首期投资15亿元，部署900个机架，安装服务器3.5万台。预计2016年将在中卫产生云服务收入10亿元，税收0.85亿元。 不过令外界诟病的是，亚马逊AWS从2013年12月宣布入华至今，已经整整两年。但是，面向企业的云服务迟迟没有商用，一直处于“有限预览”的阶段，只有小米、奇虎360、TCL、网秦、东方明珠等少量客户尝鲜。 澎湃新闻了解到，目前，亚马逊只是在中卫市区的租下了几个中国联通的机柜，开展上述“有限预览”服务，因此，AWS还没有大规模的客户数量，更难言“变现”。 不过，宁夏政府希望希望通过亚马逊的龙头效应，吸引更多的客户进入中卫。 2014年5月5日，时任宁夏回族自治区副主席的马廷礼带队赴美，与亚马逊AWS创始人Andy Jassy及5位副总裁正式会谈，签署了合作框架协议。 2014年9月20日，宁夏与亚马逊AWS正式签署合作协议。 2015年1月7日，Andy Jassy赴宁夏考察，和西部云基地公司签署建设协议，才正式动工。 中国数据中心空间布局不合理 AWS数据中心在中卫的机房不止在中卫工业园区一处，AWS还在迎水桥、宣和寺口子两个点建有机房。目前这两处机房也已基本建成。三点总占地面积923亩。 AWS选三个点建数据中心，是为了满足“新一代云计算数据中心”的需要。 “新一代云计算数据中心”，一般由三个机房区域组成集群，相互之间保持30~50公里的安全距离，之间以光纤直连，形成分散存储、互为备份和并行计算，确保云服务稳定可靠、不间断。 以AWS为模板，中国赛伯乐集团公司投资62.8亿元（包括通过美利纸业(000815)筹集的22亿元），也在上述三点建造了类似的机房，总规划占地600亩。它是目前国内首个全自然冷源数据中心，能降低二氧化碳和热空气的排放。 澎湃新闻了解到，奇虎360已经包下了其中两栋4.3万平米机房，目前正进行调测。阿里巴巴也准备租用该机房。 阿里巴巴集团CTO（首席技术官）王坚、腾讯公司IDC（互联网数据中心）平台部总监朱华、微软公司高层等都曾来到中卫考察。 据当地提供的数据，一批大单正向中卫走来：微软计划在中卫投资60亿美元建设数据中心；赛伯乐投资、创博科技承建，为IBM建设新一代云计算数据中心；恒基伟业和曙光公司合作建设云数据中心项目；中国联通计划投资14亿元，规划占地200亩，建设9300个机架的云计算数据中心，目前方案已提交集团审批；中国移动计划投资130.45亿元，规划占地200亩，建设1.77万个机架，方案已审批。 工信部电信研究院电信运营研究部主任徐志发曾指出，中国数据中心空间布局不合理，东、中、西部尚未形成优势互补的产业格局。 目前全国有40万个以上的数据中心，大部分都在东南沿海发达地区，而且规模偏小，能效水平偏高。 “一旦沿海中心城市和地区发生重大灾难，将造成重大损失；其次是东部地区气候条件、能源条件、土地成本不具备优势，数据中心运营成本居高不下，能源和成本也成为制约这些地区发展云数据中心的重要瓶颈。”徐志发说。 同时，北京已明确禁止新建和扩建数据中心项目，电价上涨也成共识。 专家指出，全国数据中心空间布局的必然趋势是：北上广以成本和服务为竞争导向，发展中型规模的EDC（企业数据中心）；大型EDC则西移至二三线城市；中小型IDC（互联网数据中心）将受到公有云技术与成本的双重打击，趋向整合。 通俗理解，如果把整个国家想象为一个电脑，那么北上广等中心城市会成为缓存，边远城市是内存和硬盘。 宁夏正在在这种背景下，在中卫建设新一代绿色云计算数据中心。 为什么是中卫 需要警惕的是，“有的政府出于宣传的考虑和政绩冲动，打着发展高科技的幌子，以此向有关部门争取财政、土地资源，盲目建设；在个别地方云计算变成了云地产，这种现象值得警惕。”中科院软件所研究员张云泉说。 国家发改委《西部地区鼓励类产业目录》指出，适合发展“大型或超大型数据中心建设及运营类产业”的地区只有宁夏、内蒙古和陕西三省区。 宁夏还是中国第一个省级内陆开放型经济试验区。中国-阿拉伯国家博览会每两年在宁夏召开。宁夏官方希望，依托中阿博览会这个垄断性平台建设云基地，充分发挥网上丝绸之路战略支点优势，面向广大阿拉伯国家输出云计算信息服务，探索以此换石油、天然气等战略储备资源的模式。 2013年，中卫市开始打造中国版“凤凰城”的计划。当年，宁夏与北京签署了合作建设宁夏中关村科技产业园的战略协议，以“前店后厂”的创新模式在中卫建设云计算基地。 没有大规模供电设施，数万个机柜的规划始终会停留在纸面上。 中卫是宁夏西电东输的重要传输通道，供电可靠程度高。此外，2014年3月，宁夏物价局发函明确云计算数据中心项目执行大工业用电价格，自建成之日起，免征1分钱的城市附加费，暂时按每千瓦时0.36元执行，处于国内最低水平。 没有光纤连接，空有优势，也无人使用。 亚马逊云计算中心为何看上宁夏中卫？ 三大运营商的光缆通道已接入中卫。 澎湃新闻在现场看到，中国电信、联通、移动三大电信运营商的通讯光缆通道已在“无人区”绵延数公里，进入中卫工业园区。 宁夏政府还在力推将西部云基地升级到光纤骨干网络，减少网络传输延时、丢包的现象。目前，电信和联通正在推进中卫4×100G的光纤网络直达北京。 “边缘城市想提升到骨干网络不是简单的事情。运营商赋予了中卫市国家网络骨干节点的地位，直连北京、上海、广州、成都、杭州等，这在三四线城市中是绝无仅有的。如此一来，机房放在中卫，性能与放在北上广深没有本质差别。”通信行业分析师徐力称。 [&#8230;]]]></description>
				<content:encoded><![CDATA[<p>20年前的美国凤凰城（Phoenix），还是一个沙漠小镇，如今，这个美国第六大都市已享有世界“沙漠硅谷”的美誉，利用充沛的电力与网络资源发展云计算产业，目前至少集聚了80余个云计算数据中心，苹果公司（Apple）、美国电信运营商AT&#038;T等企业的机房都坐落于此。</p>
<p>在中国西部的沙漠边缘，有一座城市与美国凤凰城的地形地貌、电力资源条件相似。在一望无际的黄土平原上，有着成片成片太阳能电池板，正在光伏发电。</p>
<p>宁夏中卫的光伏发电。文内图均来自澎湃新闻记者 杨鑫倢<br />
宁夏中卫的光伏发电。文内图均来自澎湃新闻记者 杨鑫倢</p>
<p>甚至，它的气候比美国凤凰城更宜人。令当地人引以为傲的是，他们的左手边虽然是沙漠，但右手边是黄河上游。富饶的水资源令当地年平均气温8.8度，而数据中心最爱低温，自然风可以让数据中心大大降低能耗。</p>
<p>这就是宁夏中卫。</p>
<p>“我们有信心把中卫市打造成中国的凤凰城，搭建全球世界级的数据中心集群。”亚马逊云服务（AWS）全球副总裁、中国区执行董事容永康曾公开表示。</p>
<p>澎湃新闻了解到，AWS在中国开展业务之前，为了数据中心选址一事，亚马逊花了一年时间在全国各地考察，最终敲定将地点落在宁夏中卫。</p>
<p>全球电子商务巨头亚马逊，同样是全球最大的云计算厂商。后来崛起的云计算已经成为亚马逊最赚钱的部门。</p>
<p>据了解，宁夏已经将中卫发展云计算产业提升到战略高度，以此促进经济转型。</p>
<p>所谓云计算，对于个人而言，将照片、信息等文件放在云上，可以不用再购置实体硬盘，可在手机、电脑等任何设备直接获取。对企业而言，将IT系统部署到云上，可以加快运营速度，节省运维成本。比如铁路售票系统12306将查询票务部署到云上后，解决了春节期间突然涌现的大客流上网而导致的网络拥挤情况。</p>
<p>亚马逊中国数据中心即将投入运营</p>
<p>2015年12月，澎湃新闻记者从中卫市区驱车半个多小时左右，抵达位于宁夏中卫工业园的西部云计算基地。从大门口向里望去，能看到一个白色外表的一层建筑。</p>
<p>远远看到的亚马逊数据中心。<br />
远远看到的亚马逊数据中心。</p>
<p>据介绍，这就是亚马逊AWS在中国的数据中心。目前，建筑体已完成施工，项目正在进行服务器安装调试，即将投入运营。</p>
<p>中卫网信办提供给投资者的数据显示，2015年，亚马逊宁夏项目首期投资15亿元，部署900个机架，安装服务器3.5万台。预计2016年将在中卫产生云服务收入10亿元，税收0.85亿元。</p>
<p>不过令外界诟病的是，亚马逊AWS从2013年12月宣布入华至今，已经整整两年。但是，面向企业的云服务迟迟没有商用，一直处于“有限预览”的阶段，只有小米、奇虎360、TCL、网秦、东方明珠等少量客户尝鲜。</p>
<p>澎湃新闻了解到，目前，亚马逊只是在中卫市区的租下了几个中国联通的机柜，开展上述“有限预览”服务，因此，AWS还没有大规模的客户数量，更难言“变现”。</p>
<p>不过，宁夏政府希望希望通过亚马逊的龙头效应，吸引更多的客户进入中卫。</p>
<p>2014年5月5日，时任宁夏回族自治区副主席的马廷礼带队赴美，与亚马逊AWS创始人Andy Jassy及5位副总裁正式会谈，签署了合作框架协议。</p>
<p>2014年9月20日，宁夏与亚马逊AWS正式签署合作协议。</p>
<p>2015年1月7日，Andy Jassy赴宁夏考察，和西部云基地公司签署建设协议，才正式动工。</p>
<p>中国数据中心空间布局不合理</p>
<p>AWS数据中心在中卫的机房不止在中卫工业园区一处，AWS还在迎水桥、宣和寺口子两个点建有机房。目前这两处机房也已基本建成。三点总占地面积923亩。</p>
<p>AWS选三个点建数据中心，是为了满足“新一代云计算数据中心”的需要。</p>
<p>“新一代云计算数据中心”，一般由三个机房区域组成集群，相互之间保持30~50公里的安全距离，之间以光纤直连，形成分散存储、互为备份和并行计算，确保云服务稳定可靠、不间断。</p>
<p>以AWS为模板，中国赛伯乐集团公司投资62.8亿元（包括通过美利纸业(000815)筹集的22亿元），也在上述三点建造了类似的机房，总规划占地600亩。它是目前国内首个全自然冷源数据中心，能降低二氧化碳和热空气的排放。</p>
<p>澎湃新闻了解到，奇虎360已经包下了其中两栋4.3万平米机房，目前正进行调测。阿里巴巴也准备租用该机房。</p>
<p>阿里巴巴集团CTO（首席技术官）王坚、腾讯公司IDC（互联网数据中心）平台部总监朱华、微软公司高层等都曾来到中卫考察。</p>
<p>据当地提供的数据，一批大单正向中卫走来：微软计划在中卫投资60亿美元建设数据中心；赛伯乐投资、创博科技承建，为IBM建设新一代云计算数据中心；恒基伟业和曙光公司合作建设云数据中心项目；中国联通计划投资14亿元，规划占地200亩，建设9300个机架的云计算数据中心，目前方案已提交集团审批；中国移动计划投资130.45亿元，规划占地200亩，建设1.77万个机架，方案已审批。</p>
<p>工信部电信研究院电信运营研究部主任徐志发曾指出，中国数据中心空间布局不合理，东、中、西部尚未形成优势互补的产业格局。</p>
<p>目前全国有40万个以上的数据中心，大部分都在东南沿海发达地区，而且规模偏小，能效水平偏高。</p>
<p>“一旦沿海中心城市和地区发生重大灾难，将造成重大损失；其次是东部地区气候条件、能源条件、土地成本不具备优势，数据中心运营成本居高不下，能源和成本也成为制约这些地区发展云数据中心的重要瓶颈。”徐志发说。</p>
<p>同时，北京已明确禁止新建和扩建数据中心项目，电价上涨也成共识。</p>
<p>专家指出，全国数据中心空间布局的必然趋势是：北上广以成本和服务为竞争导向，发展中型规模的EDC（企业数据中心）；大型EDC则西移至二三线城市；中小型IDC（互联网数据中心）将受到公有云技术与成本的双重打击，趋向整合。</p>
<p>通俗理解，如果把整个国家想象为一个电脑，那么北上广等中心城市会成为缓存，边远城市是内存和硬盘。</p>
<p>宁夏正在在这种背景下，在中卫建设新一代绿色云计算数据中心。</p>
<p>为什么是中卫</p>
<p>需要警惕的是，“有的政府出于宣传的考虑和政绩冲动，打着发展高科技的幌子，以此向有关部门争取财政、土地资源，盲目建设；在个别地方云计算变成了云地产，这种现象值得警惕。”中科院软件所研究员张云泉说。</p>
<p>国家发改委《西部地区鼓励类产业目录》指出，适合发展“大型或超大型数据中心建设及运营类产业”的地区只有宁夏、内蒙古和陕西三省区。</p>
<p>宁夏还是中国第一个省级内陆开放型经济试验区。中国-阿拉伯国家博览会每两年在宁夏召开。宁夏官方希望，依托中阿博览会这个垄断性平台建设云基地，充分发挥网上丝绸之路战略支点优势，面向广大阿拉伯国家输出云计算信息服务，探索以此换石油、天然气等战略储备资源的模式。</p>
<p>2013年，中卫市开始打造中国版“凤凰城”的计划。当年，宁夏与北京签署了合作建设宁夏中关村科技产业园的战略协议，以“前店后厂”的创新模式在中卫建设云计算基地。</p>
<p>没有大规模供电设施，数万个机柜的规划始终会停留在纸面上。</p>
<p>中卫是宁夏西电东输的重要传输通道，供电可靠程度高。此外，2014年3月，宁夏物价局发函明确云计算数据中心项目执行大工业用电价格，自建成之日起，免征1分钱的城市附加费，暂时按每千瓦时0.36元执行，处于国内最低水平。</p>
<p>没有光纤连接，空有优势，也无人使用。</p>
<p>亚马逊云计算中心为何看上宁夏中卫？</p>
<p>三大运营商的光缆通道已接入中卫。</p>
<p>澎湃新闻在现场看到，中国电信、联通、移动三大电信运营商的通讯光缆通道已在“无人区”绵延数公里，进入中卫工业园区。</p>
<p>宁夏政府还在力推将西部云基地升级到光纤骨干网络，减少网络传输延时、丢包的现象。目前，电信和联通正在推进中卫4×100G的光纤网络直达北京。</p>
<p>“边缘城市想提升到骨干网络不是简单的事情。运营商赋予了中卫市国家网络骨干节点的地位，直连北京、上海、广州、成都、杭州等，这在三四线城市中是绝无仅有的。如此一来，机房放在中卫，性能与放在北上广深没有本质差别。”通信行业分析师徐力称。</p>
<p>据了解，宁夏自治区常务副主席张超超为此专门赴北京，与中国联通董事长王晓初、中国移动董事长尚冰、原中国电信董事长常小兵会面。</p>
<p>宁夏政府对云计算的高度重视，让阿里云数据中国事业部伯清也感同身受。“阿里在宁夏部署了政务云，进度比较快。当时和阿里合作的洽谈会，自治区主席都亲自参加，推动政府项目上云。云计算是一把手工程，如果没有高层支持，基本没戏。”伯清说。</p>
<p> 在云计算数据中心领域，美国1200万服务器，而中国服务器不到300万台，这让中国玩家看到了巨大的潜在市场。</p>
<p>眼下，内蒙古和贵州也在加紧布局云计算数据中心，抢占市场。</p>
<p>“贵州的地理位置，去广州比较近，但是去北京、上海比较远。亚马逊当时正是有这方面考量，所以才选了中卫。”宁夏网信办相关人士说，宁夏自治区政府出台的《鼓励云计算产业发展的十条意见》，汇集了贵州和内蒙古的政策优惠，是集全国优势条件于一体的。</p>
<p>“政府搭台，企业唱戏。中卫的戏台已经搭好，下面要看企业家的表演了。”徐力说。</p>
<p><span style="font-weight:bold;text-shadow:0 1px 0 #ddd;">声明:</span> 本文采用 <a rel="nofollow" href="http://creativecommons.org/licenses/by-nc-sa/3.0/" title="署名-非商业性使用-相同方式共享">BY-NC-SA</a> 协议进行授权 | <a href="https://www.asyun.cn">爱说云网</a><br />转载请注明转自《<a rel="bookmark" title="亚马逊云计算中心为何看上宁夏中卫？" href="https://www.asyun.cn/2267.html">亚马逊云计算中心为何看上宁夏中卫？</a>》</p>]]></content:encoded>
			<wfw:commentRss>https://www.asyun.cn/2267.html/feed</wfw:commentRss>
		<slash:comments>0</slash:comments>
		</item>
		<item>
		<title>如何精心设计CDN架构？</title>
		<link>https://www.asyun.cn/2265.html</link>
		<comments>https://www.asyun.cn/2265.html#comments</comments>
		<pubDate>Tue, 29 Dec 2015 10:25:12 +0000</pubDate>
		<dc:creator><![CDATA[爱说云网]]></dc:creator>
				<category><![CDATA[云计算运维]]></category>
		<category><![CDATA[CDN]]></category>

		<guid isPermaLink="false">http://www.asyun.cn/?p=2265</guid>
		<description><![CDATA[国内，随着互联网的高速发展，因为各大通信公司的政策，造成了南电信北联通互通有局限性，再加上大小且质量参差不齐的运营商，在这特殊的氛围的互联互通下号称“八线合一”的机房开始崭露头角。互联网的广泛性使得网民分散在全国各地，由于全国地区的经济发展和互联网建设的不平衡，实际网民的体验往往受限于最后一公里的速度。在技术大喷井的年代，一些无聊或者有目的黑客攻击也开始涌现，无论是渗透还是DDoS攻击都非常频繁，时刻威胁着网站的安全…… 上述种种问题，作为应用服务提供商，我们要如何解决此类问题呢?归根结底就是要充分利用好CDN(Content Delivery Network，即内容分发网络)。 CDN的作用可以帮助我们解决哪些问题? 缓存代理 缓存代理类似内容提供商源数据中心的一个透明镜像，这些内容可以在边缘服务器中缓存和分发，对于普通的网络用户来讲，它通过智能DNS的筛选，用户的请求被透明地指向离他最近的省内骨干节点，最大限度的缩短用户信息的传输距离。在任何时间、地点或者不同的运营商之间(尤其在中国)，快速响应用户请求。 它是通过在网络各处放置节点服务器，所以无需更改源站的网络拓扑，而是根据智能路由和用户就近原则匹配，从而确保了内容快又稳定的传输，大大提高了用户访问网站的响应速度。 路由加速 CDN服务初衷是确保快速可靠地分发静态内容，相对于动态内容来说，由于动态内容必须长连接来操持连接和通讯，只是用户到服务商之间的链路和质量都无法控制。因此为了提供快速的网络体验，有必要事先设置一些最佳路由。如省内骨干网，双线机房，以改善用户的网络体验。在中国典型的互联互通问题上，网络游戏加速就是一些最佳实践。 安全防护 利用好了CDN网络，无论面对是渗透还是DDoS攻击，攻击的目标大都会被指向到了CDN，进而保护了用户源站。因为CDN是分布式的，所以即使遭受DDoS攻击，也具备分散性，大大减少了源站收到毁灭打击的可能性。在架构的前期，还可以通过CDN做一些前置的安全保护工作，如拦截SQL注入、XSS跨站、网站挂马、篡改等黑客攻击。 节省成本 CDN节点机房只需要在当地运营商的单线机房，或者带宽相对便宜的城市，采购成本低。由于通过CDN减轻了源站压力，节点越多，源站面对任何时间高峰时的带宽峰值会被平均拉低。从而降低了后端服务器硬件规模和带宽的采购成本。 由于源站服务器规模的减少，后期运维成本也大大减少，可谓是一举多得。 由此可见，为了能够满足全国乃至世界各地和多线路运营商的不同用户都有最好的体验，构建CDN的分布式服务其重要性不言而喻。但是，在面对如何根据自身场景去设计一个CDN架构，或者如何选择以一个适合自己CDN服务提供商，这里面也有许多问题需要考量。 我们要设计稳定高效的CDN架构需要考虑哪些因素? 存储介质 vs IO的关系 这里先简单的介绍一下SSD介质的一些考量。SSD作为采用电子存储介质进行数据存储和读取的一种技术，突破了传统机械硬盘的性能瓶颈，固态硬盘的全集成电路化、无任何机械运动部件的革命性设计，拥有极高的读取性能。 此环节，基本上不需要与传统的SATA,SAS作性能上的比较，SSD的胜出毫无悬念。而在整体方案中，只需要考虑承受的价格、容量大小(如120GB,160GB,300GB等规格)、是否能够满足设计需求这些问题。 作者建议：如果允许， 能使用SSD，就一定要考虑采用，用空间换性能，提升非常明显。 这里给几个SSD实战的小贴士： 1.选择EXT4文件系统+TRIM模式(mount -o defaults,noatime,nodiratime,barrier=0,discard),Btrfs建议少冒险 2.如果是使用三星的固态硬盘，可以尝试它贡献给开源的针对固态硬盘优化的F2FS文件系统，相当不错的选择 3.I/O Schedulers调度算法，可以使用CFQ或者Deadline算法 4.内核参数调整，SSD所在硬盘，echo 0 > /sys/block/sda/queue/rotational 随机读写 vs 顺序读写 机械硬盘的连续读写性很好，但随机读写性能很差。这是因为磁头移动至正确的磁道上需要时间，随机读写时，也就需要磁头和探针频繁的转动，而机械结构的磁头和探针的位置调整是十分费时的，这就严重影响到硬盘的寻址速度，进而影响到随机写入速度。 在存储小文件(图片)、OLTP数据库应用时，随机读写性能(IOPS)是最重要指标。由于固态硬盘没有普通硬盘的机械结构，也不存在机械硬盘的寻道问题，因此系统能够在低于1ms的时间内对任意位置存储单元完成输入/输出操作。 作者经验笔记： 1.BIOS里务必开启AHCI模式(能支持SATA热插拔和NCQ寻址方式，提速→300%，当然内核也要支持AHCI模式) 2.SSD的主控芯片相当于大脑中枢，非常重要，建议用Intel,Samsung,Marvell等知名品牌 3.SSD更适合应用在随机读写场景，因此需要认真思考什么场合应用 大文件 vs 小文件 大多数的存储系统都是针对大文件而设计的，对小文件而言，大文件的存储系统无法适应小文件的存储需求，它造成元数据管理、数据布局和I/O管理、Cache管理、网络开销等方面性能和存储效率降低。 而且，文件系统的inode是线性存储的，因此，我们遍历一个目录下的文件，需要读取的磁盘的位置是来回跳跃的。不连续的读取意味着磁盘要不断的进行寻道，那么性能自然可想而知。 作者经验笔记： 1.无论大小文件，首选EXT4文件系统，Reiserfs/Btrfs不要轻易尝试(虽然B-tree设计先进) 2.EXT4针对小文件有所改进，使用了inode预分配，这使得inode具有很好的局部性特征，同一目录文件inode尽量放在一起，加速了目录寻址与操作性能。 3.EXT4针对大文件使用了extent/delay/multi的数据块分配策略。这些策略使得大文件的数据块保持连续存储在磁盘上，数据寻址次数大大减少，显著提高I/O吞吐量。 4.XFS在大文件方面，表现得不错，可以使用。 5.SSD尽量应用在随机小文件读写的应用场景，毕竟容量宝贵，在有限的空间保存更多的文件是个明智之选。 [&#8230;]]]></description>
				<content:encoded><![CDATA[<p>国内，随着互联网的高速发展，因为各大通信公司的政策，造成了南电信北联通互通有局限性，再加上大小且质量参差不齐的运营商，在这特殊的氛围的互联互通下号称“八线合一”的机房开始崭露头角。互联网的广泛性使得网民分散在全国各地，由于全国地区的经济发展和互联网建设的不平衡，实际网民的体验往往受限于最后一公里的速度。在技术大喷井的年代，一些无聊或者有目的黑客攻击也开始涌现，无论是渗透还是DDoS攻击都非常频繁，时刻威胁着网站的安全……</p>
<p>上述种种问题，作为应用服务提供商，我们要如何解决此类问题呢?归根结底就是要充分利用好CDN(Content Delivery Network，即内容分发网络)。</p>
<p>CDN的作用可以帮助我们解决哪些问题?</p>
<p>缓存代理</p>
<p>缓存代理类似内容提供商源数据中心的一个透明镜像，这些内容可以在边缘服务器中缓存和分发，对于普通的网络用户来讲，它通过智能DNS的筛选，用户的请求被透明地指向离他最近的省内骨干节点，最大限度的缩短用户信息的传输距离。在任何时间、地点或者不同的运营商之间(尤其在中国)，快速响应用户请求。</p>
<p>它是通过在网络各处放置节点服务器，所以无需更改源站的网络拓扑，而是根据智能路由和用户就近原则匹配，从而确保了内容快又稳定的传输，大大提高了用户访问网站的响应速度。</p>
<p>路由加速</p>
<p>CDN服务初衷是确保快速可靠地分发静态内容，相对于动态内容来说，由于动态内容必须长连接来操持连接和通讯，只是用户到服务商之间的链路和质量都无法控制。因此为了提供快速的网络体验，有必要事先设置一些最佳路由。如省内骨干网，双线机房，以改善用户的网络体验。在中国典型的互联互通问题上，网络游戏加速就是一些最佳实践。</p>
<p>安全防护</p>
<p>利用好了CDN网络，无论面对是渗透还是DDoS攻击，攻击的目标大都会被指向到了CDN，进而保护了用户源站。因为CDN是分布式的，所以即使遭受DDoS攻击，也具备分散性，大大减少了源站收到毁灭打击的可能性。在架构的前期，还可以通过CDN做一些前置的安全保护工作，如拦截SQL注入、XSS跨站、网站挂马、篡改等黑客攻击。</p>
<p>节省成本</p>
<p>CDN节点机房只需要在当地运营商的单线机房，或者带宽相对便宜的城市，采购成本低。由于通过CDN减轻了源站压力，节点越多，源站面对任何时间高峰时的带宽峰值会被平均拉低。从而降低了后端服务器硬件规模和带宽的采购成本。 由于源站服务器规模的减少，后期运维成本也大大减少，可谓是一举多得。</p>
<p>由此可见，为了能够满足全国乃至世界各地和多线路运营商的不同用户都有最好的体验，构建CDN的分布式服务其重要性不言而喻。但是，在面对如何根据自身场景去设计一个CDN架构，或者如何选择以一个适合自己CDN服务提供商，这里面也有许多问题需要考量。</p>
<p>我们要设计稳定高效的CDN架构需要考虑哪些因素?</p>
<p>存储介质 vs IO的关系</p>
<p>这里先简单的介绍一下SSD介质的一些考量。SSD作为采用电子存储介质进行数据存储和读取的一种技术，突破了传统机械硬盘的性能瓶颈，固态硬盘的全集成电路化、无任何机械运动部件的革命性设计，拥有极高的读取性能。</p>
<p>此环节，基本上不需要与传统的SATA,SAS作性能上的比较，SSD的胜出毫无悬念。而在整体方案中，只需要考虑承受的价格、容量大小(如120GB,160GB,300GB等规格)、是否能够满足设计需求这些问题。</p>
<p>作者建议：如果允许， 能使用SSD，就一定要考虑采用，用空间换性能，提升非常明显。</p>
<p>这里给几个SSD实战的小贴士：</p>
<p>1.选择EXT4文件系统+TRIM模式(mount -o defaults,noatime,nodiratime,barrier=0,discard),Btrfs建议少冒险</p>
<p>2.如果是使用三星的固态硬盘，可以尝试它贡献给开源的针对固态硬盘优化的F2FS文件系统，相当不错的选择</p>
<p>3.I/O Schedulers调度算法，可以使用CFQ或者Deadline算法</p>
<p>4.内核参数调整，SSD所在硬盘，echo 0 > /sys/block/sda/queue/rotational</p>
<p>随机读写 vs 顺序读写</p>
<p>机械硬盘的连续读写性很好，但随机读写性能很差。这是因为磁头移动至正确的磁道上需要时间，随机读写时，也就需要磁头和探针频繁的转动，而机械结构的磁头和探针的位置调整是十分费时的，这就严重影响到硬盘的寻址速度，进而影响到随机写入速度。</p>
<p>在存储小文件(图片)、OLTP数据库应用时，随机读写性能(IOPS)是最重要指标。由于固态硬盘没有普通硬盘的机械结构，也不存在机械硬盘的寻道问题，因此系统能够在低于1ms的时间内对任意位置存储单元完成输入/输出操作。</p>
<p>作者经验笔记：</p>
<p>1.BIOS里务必开启AHCI模式(能支持SATA热插拔和NCQ寻址方式，提速→300%，当然内核也要支持AHCI模式)</p>
<p>2.SSD的主控芯片相当于大脑中枢，非常重要，建议用Intel,Samsung,Marvell等知名品牌</p>
<p>3.SSD更适合应用在随机读写场景，因此需要认真思考什么场合应用</p>
<p>大文件 vs 小文件</p>
<p>大多数的存储系统都是针对大文件而设计的，对小文件而言，大文件的存储系统无法适应小文件的存储需求，它造成元数据管理、数据布局和I/O管理、Cache管理、网络开销等方面性能和存储效率降低。</p>
<p>而且，文件系统的inode是线性存储的，因此，我们遍历一个目录下的文件，需要读取的磁盘的位置是来回跳跃的。不连续的读取意味着磁盘要不断的进行寻道，那么性能自然可想而知。</p>
<p>作者经验笔记：</p>
<p>1.无论大小文件，首选EXT4文件系统，Reiserfs/Btrfs不要轻易尝试(虽然B-tree设计先进)</p>
<p>2.EXT4针对小文件有所改进，使用了inode预分配，这使得inode具有很好的局部性特征，同一目录文件inode尽量放在一起，加速了目录寻址与操作性能。</p>
<p>3.EXT4针对大文件使用了extent/delay/multi的数据块分配策略。这些策略使得大文件的数据块保持连续存储在磁盘上，数据寻址次数大大减少，显著提高I/O吞吐量。</p>
<p>4.XFS在大文件方面，表现得不错，可以使用。</p>
<p>5.SSD尽量应用在随机小文件读写的应用场景，毕竟容量宝贵，在有限的空间保存更多的文件是个明智之选。</p>
<p>6.有开发实力的可以选用基于LevelDB或其它的KV存储作底层文件系统，此为后话。</p>
<p>硬件红利 vs 软件设计</p>
<p>随着时间的推移，硬件升级已经突破了摩尔定律，在硬件不断升级带来的红利下，我们从最初的双核到四核、六核、八核心&#038;超线程，从2G、4G内存到 8G、16G甚至128G内存的情况下，同样的价格所带来的硬件升级，性能提升也是非常可观的，因此，设置合适的硬件淘汰时间点也很重要，当老旧服务器超过3～5年的服役期，务必考虑做新陈代谢式的升级，充分利用好硬件潜力，保证架构设计平滑有序稳定的升级。</p>
<p>反观软件设计，相对硬件升级，可谈的话题就比较多了，举个反例：比如说 Squid软件的缺点(当然，诞生于1996年的Squid与Apache同样的古老，昔日的时代也是立下了汗马功劳，但时代进步就不能固步自封必须考虑革新)：</p>
<p>1. 无法利用多核优势，造成单核CPU压力太高;</p>
<p>2. 鸡肋的DNS进程必须要运行;</p>
<p>3. 无法利用大内存做缓存加速;</p>
<p>4. COSS设计上的先天缺陷，初始化甚至重启后重建索引慢;</p>
<p>5. 偶然机器重启，修复的效率非常漫长，慢到让人崩溃。</p>
<p>更多详情参考：</p>
<p>Varnish Cache 的架构笔记，为什么一些古老的软件正在被新的设计思想所淘汰，如Nginx替代Apache，ATS替代Squid，Postfix替代Sendmail等等。</p>
<p>建议：</p>
<p>1. 负载均衡技术应用得当，如haproxy,lvs。一方面可以互援互备，另一方面也可以方便轮流升级;</p>
<p>2. 要尝试新的软件开发思路和网络模型，如epoll,aio,内存加速，连接复用和事件驱动机制。</p>
<p>系统优化</p>
<p>1. 系统服务精简瘦身;</p>
<p>2. 文件系统性能调优;</p>
<p>3. 提高磁盘IO性能;</p>
<p>4. 优化网络性能;</p>
<p>5. 优化路由策略;</p>
<p>6. 数据库的优化;</p>
<p>……</p>
<p>这里就不展开详述了，以后有机会再介绍。</p>
<p>我们有哪些开源的软件可供选择，我们了解它们吗?</p>
<p>开源世界里能够担当反向代理及缓存的软件不少，而且各有优劣。在这里，我就不一一介绍每个软件的介绍了，大家可以自行参考相关链接了解。</p>
<p>CDN架构上要充分体现出抗攻击能力和灵活应变的原则。因此，我们将CDN节点分解成反向代理+缓存加速+攻击防御这三个不同层次的功能结构。</p>
<p>•反向代理功能(作用：路由加速，隐藏主节点，负载均衡)</p>
<p>•缓存加速功能(作用：静态推送，节省后端主节点带宽)</p>
<p>•攻击防御功能(作用：快速解析，匹配过滤恶意攻击)</p>
<p>作为一个架构师，就必须要考虑如何选型，我们从性能、功能、配置上来进行比较筛选。</p>
<p>现在，我们对这三层功能结构充分了解，在测试调优及生产线的实践检验中，我们发现：</p>
<p>•HTTP防御性能：HAProxy在应对大流量CC攻击时，做正则匹配及头部过滤时，CPU消耗只占10%~20%。其它软件均狂占CPU资源约90%以上，容易成瓶颈导致整个系统无响应。</p>
<p>•反向代理性能：单纯转发效率以内存缓存型的Varnish性能最强，ATS和Nginx次之，考虑大容量缓存因素，ATS也是个不错的选择。Nginx是专门针对C10K的产物，性能不错，配合自己编写插件，业务可塑性很强。</p>
<p>•过滤规则的可配置性：HAProxy，ATS，Squid均支持规则文件读取、ACL定制和热加载、热启动。Nginx则不支持外部文件正则匹配，略差一点，但可塑性强。</p>
<p>负载均衡</p>
<p>高可用性:LVS</p>
<p>LVS是个重量级、高效稳定的四层转发，虽然不能作七层HTTP协议的识别，但完全可以架设在七层之前，与上述的各种软件搭配使用。</p>
<p>所以，LVS的使用并不会影响网络结构，后续仍然可以想上就上，前提是要兼顾到LVS的单点故障，这个我们可以通过Keepalived/Heartbeat来实现可用性和可靠性的保证。</p>
<p>作者简介：</p>
<p>邵海杨，UPYUN(又拍云)联合创始人兼运维总监，来自杭州Linux用户组，新浪微博@海洋之心-悟空 ，资深系统运维架构师，业余撰稿人，致力于开源软件及前沿科技的研究和探索。</p>
<p>创业邦100未来领袖峰会暨2015创业邦年会：寻找下一个独角兽；与投资大咖一起发现2015年中国最佳高成长企业，与创业明星一起揭晓“三十岁以下创业新贵”。</p>
<p><span style="font-weight:bold;text-shadow:0 1px 0 #ddd;">声明:</span> 本文采用 <a rel="nofollow" href="http://creativecommons.org/licenses/by-nc-sa/3.0/" title="署名-非商业性使用-相同方式共享">BY-NC-SA</a> 协议进行授权 | <a href="https://www.asyun.cn">爱说云网</a><br />转载请注明转自《<a rel="bookmark" title="如何精心设计CDN架构？" href="https://www.asyun.cn/2265.html">如何精心设计CDN架构？</a>》</p>]]></content:encoded>
			<wfw:commentRss>https://www.asyun.cn/2265.html/feed</wfw:commentRss>
		<slash:comments>0</slash:comments>
		</item>
		<item>
		<title>Linux运维：现状、入门和未来之路</title>
		<link>https://www.asyun.cn/2261.html</link>
		<comments>https://www.asyun.cn/2261.html#comments</comments>
		<pubDate>Thu, 10 Dec 2015 15:18:03 +0000</pubDate>
		<dc:creator><![CDATA[爱说云网]]></dc:creator>
				<category><![CDATA[云计算运维]]></category>

		<guid isPermaLink="false">http://www.asyun.cn/?p=2261</guid>
		<description><![CDATA[  今天想谈谈“运维”这一行，我将从以下五个部分来和大家分析一下目前Linux这个行业的现状以及如何学好Linux、成为专业运维人员和云服务对运维的影响。 一、linux行业现状     我们知道Linux诞生于1991年，它在国外的发展是非常迅速的，即使目前国内越来越多的应用转向linux平台，但Linux在大多数人的眼中还是不太了解，甚至一个多年从事windows平台下的开发人员，可能也从未使用过。究其原因主要有以下几点：    1.入行门槛较高    由于linux是类UNIX操作系统，我们都知道UNIX是一个相对早期的操作系统，它的设计本身就不是针对普通大众的而是从事计算机的专业人员。虽然linux相对UNIX对大众已经相对友好，但仍然不是普通人能够轻松掌握的操作系统。由于很多人受Microsoft的windows操作系统影响太深，对于linux这种主要以命令行形式操作的系统非常不习惯。所以Linux这行的门槛还是较高。    另一个重要的因素是由于绝大多数的发行版中对中文的支持并不好，其实换句话说是没办法对中文的支持太好。由于Linux涉及的知识相对底层，除去GUI所能提供的中文界面，基本上我们看到的都是英文。如果你是一个Linux运维人员，你很清楚的知道，你每天打交道的linux很少能够看到中文。所以英文是学习Linux一大障碍，尤其是计算机英语与我们上学所学的英文完全是两码事。为什么这么说呢？    应试英语着重语法，考过CET-4的人都知道，几乎每一题都是变着法的考语法。而计算机英语其实是非常厚道的，计算机告诉你的一定是一个陈述句而不是作死的提示你一个反问句或者复杂的语句。比如，你在输入一个命令执行时，如果这个命令计算机没有找到，它会直接的告诉你：xxx  command is not found 它不会问你: 这个命令难道真的存在吗？这种想抽它的语句。所以计算机英语关键在于需要掌握大量的名词和术语。    2.精通难    国内目前的状况是大家都知道windows的运维相对不如Linux运维的薪资水平。所以很多想做运维和windows运维的人员都想选择Linux运维，目前也有很多的相关培训机构，网上的书籍视频层出不穷。但是真正想要深入到高级的linux运维却并非一件容易的事情，究其原因主要如下：     能力与工作成正比。“能力有多大，责任就有多大”，在运维这一行，没有人一毕业就是大神，要知道运维不同与其他行业，运维需要的不是“天赋异禀”而是“经验丰富”。运维这行要的是一个稳字，一个好的运维人员应该是一个好管家，他最好的状态是保证家里一切正常的前提下“无所事事”。没有情况就是最好的情况，但我们通常无法决定能不能出问题，所以出现问题第一时间找到解决方案并实施是一个专业运维人员所需具备的。在这种大前提下，越是有大项目经验越是能力越强，说白了越有经验越能hold住场面。而这种能力的成长与你工作的环境息息相关，如果你是一个小公司，你再怎么做可能也无法接触大集群运维，如果你在一个大公司，一个大项目就能带领你提升一个档次。想要精通难的不是学习的能力而是磨练的机会。    3.前景好    十年前所有的公司都注重网络技术，所以那个时候网络工程师大热。如今大公司的网络都早已成形，市场上的CCIE到处可见，网络技术的门槛越来越低。如今，linux行业崛起，在云计算大环境下，市场上对linux高级运维人员的需求将越来越大。这样的人才是不可批量生产的，高级运维不是你想做，想做就能做的。一个职位最怕的是从事其他职位的人可以轻松取代你，如果是这样，这个职位就不值钱。如果你是不可取的的，那么薪资自然也是不可取代的。在Linux运维的初级阶段，其实是可以取代的，Linux毕竟是一个操作系统，只是一个工具。一个经常在linux下做开发的开发人员就可以取代一个linux初级运维人员。但如果高级运维，开发人员是无法取代运维人员的。高级运维是一个非常专业职位，高级运维需要掌握相当多的知识，包括但不限于网络技术、系统编程、运维流程及思想、虚拟化、自动化运维体系构建、数据库管理，云计算平台应用，大数据等。一个运维人员需要具备有开发人员的思想，但一个开发人员是否能够掌握常年积累下来的运维流程、思想和经验体系就不是一朝一夕的事情了，所以高级linux运维绝对是目前大公司的稀缺人才。可能有人会反驳我的话说：一个高级的开发人员是更稀缺的。没错，我同意你的观点，那么我会为你分析为何我认为linux高级运维更加稀缺。    分析：一个行业从业人员是否稀缺我们要从供需的角度来看，我们首先看需求。    需求。目前国内越来越多的应用应用在linux上，某些大公司更是将整个平台从原来的windows转移到Linux上，windows运维也许你可以找一些别的人员兼做，但我相信不管你是大公司还是小公司，绝不会对Linux运维不重视。大公司不差钱，小公司压根就不懂，你不懂的东西你越想找个专业的人帮你打理。所以虽然需求基数不大，但需求意愿强烈。    供给。现在哪个大学没有开设编程课程，但是Linux相关课程却少之又少。而目前从事Linux运维的多半是半路出家，一出校门就去做Linux运维的太少，这是因为运维是一门以经验为主导以能力为辅助的行业，由于是高级Linux运维，不经过多年的锻炼达不到较高的境界。而linux高级运维人员往往随着公司的项目一同成长，而这种人往往都是公司中的关键岗位，试想一个公司的高级Linux运维掌握了公司的大量运维资料和项目经验，公司不想轻易放人，个人也不会轻易跳槽。每家公司不一样，换一家公司你要适应新的运维团队，开发新的运维工具和平台，这种风险个人也不会轻易尝试，所以高级Linux运维的人员流动性不大。    还有一个很重要的原因，一流高手不屑于做运维，确实运维是一个后勤部门，就像大家踢足球都喜欢踢前锋，很少有人喜欢当后卫，毕竟这种吃力不讨好的事情大家都不喜欢做。而且在同一水平线上开发确实比运维的工资高。然而正是因为如此，像我们这种普通人才有机会做大神不愿做的事，不用和那些学霸大神们竞争。    所以，我个人觉得，linux高级运维将是云计算大环境下的稀缺人才，注意我说的是高级。   二、学习Linux两种人    就我身边的圈子而言，大多数学习Linux的其实分为两种情况：    1.兴趣    这种情况下以学生居多，有一些是通过老师了解到linux觉得很感兴趣，然后去学习linux。由于学生时间多，大多数不会去报专门的培训班，所以以自学居多。我身边的这种例子很少有学的好的，多半会进入一个误区，去研究GUI哪种好看哪种绚丽去了。导致这种情况的原因是在学习了linux的基础知识后，很多人会进入一个瓶颈，由于没有工作实践的机会，不知道该用自己所学的知识做哪些事情。一旦我们所学的知识不知所用，那便会对所学的知识产生排斥心理，觉得没用，产生了玩GUI的误区。不过我认识的也有学的好的例子，不过这个学生是做开发的，学习linux只是因为需要在linux下开发，所以学的很快很好，但他将来会是一个优秀的后端开发人员，却不一定会做运维。    关于linux的GUI，我想啰嗦几句。GUI是一个好东西，但对于linux的初学者来说并不好。学习Linux第一要克服的一点就是摆脱windows的所长久影响的使用习惯。对于linux来说，GUI其实也是一个shell，只不过是图形化的shell，所以说不能说命令行就好，GUI就不好。如果你真的是做GUI方面的开发，那么研究GUI无可厚非，如果你只是个菜鸟，也就是玩玩壁纸，换换主题，这些东西对于学习linux毫无用处。    2.工作需要    这种情况下多半是工作中需要使用Linux系统，不得不学。有一些会选择自学，不过由于上班了大多数还是有一些经济基础，也有不少人上培训班以达到短时间的速成。这些人员入门会较快，有不少人都能够学好，并慢慢发展为一名不错的linux运维人员。 [&#8230;]]]></description>
				<content:encoded><![CDATA[<p style="color: #000000;">  今天想谈谈“运维”这一行，我将从以下五个部分来和大家分析一下目前Linux这个行业的现状以及如何学好Linux、成为专业运维人员和云服务对运维的影响。</p>
<h1 style="color: #000000;"><a style="color: #ca0000;" name="t0"></a><strong>一、linux行业现状</strong></h1>
<p style="color: #000000;">    我们知道Linux诞生于1991年，它在国外的发展是非常迅速的，即使目前国内越来越多的应用转向linux平台，但Linux在大多数人的眼中还是不太了解，甚至一个多年从事windows平台下的开发人员，可能也从未使用过。究其原因主要有以下几点：</p>
<h2 style="color: #000000;"><a style="color: #ca0000;" name="t1"></a><strong>   1.入行门槛较高</strong></h2>
<p style="color: #000000;">   由于linux是类UNIX操作系统，我们都知道UNIX是一个相对早期的操作系统，它的设计本身就不是针对普通大众的而是从事计算机的专业人员。虽然linux相对UNIX对大众已经相对友好，但仍然不是普通人能够轻松掌握的操作系统。由于很多人受Microsoft的windows操作系统影响太深，对于linux这种主要以命令行形式操作的系统非常不习惯。所以Linux这行的门槛还是较高。</p>
<p style="color: #000000;">   另一个重要的因素是由于绝大多数的发行版中对中文的支持并不好，其实换句话说是没办法对中文的支持太好。由于Linux涉及的知识相对底层，除去GUI所能提供的中文界面，基本上我们看到的都是英文。如果你是一个Linux运维人员，你很清楚的知道，你每天打交道的linux很少能够看到中文。所以英文是学习Linux一大障碍，尤其是计算机英语与我们上学所学的英文完全是两码事。为什么这么说呢？</p>
<p style="color: #000000;">   应试英语着重语法，考过CET-4的人都知道，几乎每一题都是变着法的考语法。而计算机英语其实是非常厚道的，计算机告诉你的一定是一个陈述句而不是作死的提示你一个反问句或者复杂的语句。比如，你在输入一个命令执行时，如果这个命令计算机没有找到，它会直接的告诉你：xxx  command is not found 它不会问你: 这个命令难道真的存在吗？这种想抽它的语句。所以计算机英语关键在于需要<span style="color: #ff0000;"><strong>掌握大量的名词和术语</strong></span>。</p>
<h2 style="color: #000000;"><a style="color: #ca0000;" name="t2"></a><strong>   2.精通难</strong></h2>
<p style="color: #000000;">   国内目前的状况是大家都知道windows的运维相对不如Linux运维的薪资水平。所以很多想做运维和windows运维的人员都想选择Linux运维，目前也有很多的相关培训机构，网上的书籍视频层出不穷。但是真正想要深入到高级的linux运维却并非一件容易的事情，究其原因主要如下：</p>
<p style="color: #000000;">    能力与工作成正比。“能力有多大，责任就有多大”，在运维这一行，没有人一毕业就是大神，要知道运维不同与其他行业，<span style="color: #ff0000;"><strong>运维需要的不是“天赋异禀”而是“经验丰富”</strong></span>。运维这行要的是一个稳字，一个好的运维人员应该是一个好管家，他最好的状态是保证家里一切正常的前提下“无所事事”。没有情况就是最好的情况，但我们通常无法决定能不能出问题，所以出现问题第一时间找到解决方案并实施是一个专业运维人员所需具备的。在这种大前提下，越是有大项目经验越是能力越强，说白了越有经验越能hold住场面。而这种能力的成长与你工作的环境息息相关，如果你是一个小公司，你再怎么做可能也无法接触大集群运维，如果你在一个大公司，一个大项目就能带领你提升一个档次。<span style="color: #ff0000;"><strong>想要精通难的不是学习的能力而是磨练的机会。</strong></span></p>
<h2 style="color: #000000;"><a style="color: #ca0000;" name="t3"></a><strong>   3.前景好</strong></h2>
<p style="color: #000000;">   十年前所有的公司都注重网络技术，所以那个时候网络工程师大热。如今大公司的网络都早已成形，市场上的CCIE到处可见，网络技术的门槛越来越低。如今，linux行业崛起，在云计算大环境下，市场上对linux高级运维人员的需求将越来越大。这样的人才是不可批量生产的，高级运维不是你想做，想做就能做的。<span style="color: #ff0000;"><strong>一个职位最怕的是从事其他职位的人可以轻松取代你</strong></span>，如果是这样，这个职位就不值钱。如果你是不可取的的，那么薪资自然也是不可取代的。在Linux运维的初级阶段，其实是可以取代的，Linux毕竟是一个操作系统，只是一个工具。一个经常在linux下做开发的开发人员就可以取代一个linux初级运维人员。但如果高级运维，开发人员是无法取代运维人员的。高级运维是一个非常专业职位，高级运维需要掌握相当多的知识，包括但不限于网络技术、系统编程、运维流程及思想、虚拟化、自动化运维体系构建、数据库管理，云计算平台应用，大数据等。一个运维人员需要具备有开发人员的思想，但一个开发人员是否能够掌握常年积累下来的运维流程、思想和经验体系就不是一朝一夕的事情了，所以高级linux运维绝对是目前大公司的稀缺人才。可能有人会反驳我的话说：一个高级的开发人员是更稀缺的。没错，我同意你的观点，那么我会为你分析为何我认为linux高级运维更加稀缺。</p>
<p style="color: #000000;">   分析：一个行业从业人员是否稀缺我们要从供需的角度来看，我们首先看需求。</p>
<p style="color: #000000;">   需求。目前国内越来越多的应用应用在linux上，某些大公司更是将整个平台从原来的windows转移到Linux上，windows运维也许你可以找一些别的人员兼做，但我相信不管你是大公司还是小公司，绝不会对Linux运维不重视。大公司不差钱，小公司压根就不懂，你不懂的东西你越想找个专业的人帮你打理。所以<span style="color: #ff0000;"><strong>虽然需求基数不大，但需求意愿强烈。</strong></span></p>
<p style="color: #000000;">   供给。现在哪个大学没有开设编程课程，但是Linux相关课程却少之又少。而目前从事Linux运维的多半是半路出家，一出校门就去做Linux运维的太少，这是因为运维是一门以经验为主导以能力为辅助的行业，由于是高级Linux运维，不经过多年的锻炼达不到较高的境界。而linux高级运维人员往往随着公司的项目一同成长，而这种人往往都是公司中的关键岗位，试想一个公司的高级Linux运维掌握了公司的大量运维资料和项目经验，公司不想轻易放人，个人也不会轻易跳槽。每家公司不一样，换一家公司你要适应新的运维团队，开发新的运维工具和平台，这种风险个人也不会轻易尝试，所以高级Linux运维的人员<span style="color: #ff0000;"><strong>流动性不大</strong></span>。</p>
<p style="color: #000000;">   还有一个很重要的原因，<strong>一流高手不屑于做运维</strong>，确实运维是一个后勤部门，就像大家踢足球都喜欢踢前锋，很少有人喜欢当后卫，毕竟这种吃力不讨好的事情大家都不喜欢做。而且在同一水平线上开发确实比运维的工资高。然而正是因为如此，像我们这种普通人才有机会做大神不愿做的事，不用和那些学霸大神们竞争。</p>
<p style="color: #000000;">   所以，我个人觉得，linux高级运维将是云计算大环境下的稀缺人才，注意我说的是高级。</p>
<p style="color: #000000;"><strong> </strong></p>
<h1 style="color: #000000;"><a style="color: #ca0000;" name="t4"></a><strong>二、学习Linux两种人</strong></h1>
<p style="color: #000000;">   就我身边的圈子而言，大多数学习Linux的其实分为两种情况：</p>
<h2 style="color: #000000;"><a style="color: #ca0000;" name="t5"></a><strong>   1.兴趣</strong></h2>
<p style="color: #000000;">   这种情况下以学生居多，有一些是通过老师了解到linux觉得很感兴趣，然后去学习linux。由于学生时间多，大多数不会去报专门的培训班，所以以自学居多。我身边的这种例子很少有学的好的，多半会进入一个误区，去研究GUI哪种好看哪种绚丽去了。导致这种情况的原因是在学习了linux的基础知识后，很多人会进入一个瓶颈，由于没有工作实践的机会，不知道该用自己所学的知识做哪些事情。<span style="color: #ff0000;"><strong>一旦我们所学的知识不知所用，那便会对所学的知识产生排斥心理，觉得没用</strong></span>，产生了玩GUI的误区。不过我认识的也有学的好的例子，不过这个学生是做开发的，学习linux只是因为需要在linux下开发，所以学的很快很好，但他将来会是一个优秀的后端开发人员，却不一定会做运维。</p>
<p style="color: #000000;">   关于linux的GUI，我想啰嗦几句。GUI是一个好东西，但对于linux的初学者来说并不好。学习Linux第一要克服的一点就是摆脱windows的所长久影响的使用习惯。对于linux来说，GUI其实也是一个shell，只不过是图形化的shell，所以说不能说命令行就好，GUI就不好。如果你真的是做GUI方面的开发，那么研究GUI无可厚非，如果你只是个菜鸟，也就是玩玩壁纸，换换主题，这些东西对于学习linux毫无用处。</p>
<h2 style="color: #000000;"><a style="color: #ca0000;" name="t6"></a><strong>   2.工作需要</strong></h2>
<p style="color: #000000;">   这种情况下多半是工作中需要使用Linux系统，不得不学。有一些会选择自学，不过由于上班了大多数还是有一些经济基础，也有不少人上培训班以达到短时间的速成。这些人员入门会较快，有不少人都能够学好，并慢慢发展为一名不错的linux运维人员。</p>
<p style="color: #000000;">   以上这两种情况，<strong>后者其实更容易学好linux</strong>，根本原因在于：如果是兴趣使然，学与不学不会对你的生活有很大的影响，你该上课上课，该上班上班，没有人督促你学习，没人迫使你学习。即使对Linux失去兴趣，也可以去学别的感兴趣的知识，<span style="color: #ff0000;"><strong>这其实是一个爱好问题</strong></span>。</p>
<p style="color: #000000;">   但后者不同，公司要求的，不会就没法交代，不会就没法干活。老板吩咐的任务就在那，学会了就能干活，学不会就走人，你说这种压力下你能学不会吗。我相信你加班加点不睡觉也想学会Linux，不会就没工作，没工作就没饭吃，<span style="color: #ff0000;"><strong>这是一个生存的问题</strong></span>。所以两者本质上是不同的，由于后者是由于实际工作需求来驱使学习，所以学到的东西马上就可以在实际的工作中应用，所以会觉得学到的东西很有用，那么学习就更加的有动力，当你的boss给你加工资的时候，你就会更有动力，这一切都是学习Linux带给我的财富，有什么理由不更好的学习它呢？</p>
<p style="color: #000000;"><strong> </strong></p>
<h1 style="color: #000000;"><a style="color: #ca0000;" name="t7"></a><strong>三、如何入门</strong></h1>
<p style="color: #000000;">   这其实是一个老生常谈的问题，说的简单一点：<span style="color: #ff0000;"><strong>只要功夫深铁杵磨成针</strong></span>。学习不是一朝一夕的事情，长时间的坚持才会给你汇报。但我依然想给那些想自学linux的同学一点建议：</p>
<p style="color: #000000;">   1.不管你基础多差，找一本系统的书籍从头到尾的看一遍，不管能不能看懂至少混个脸熟。如果你觉得很吃力，可以去找找网络上的视频教程。切记看视频是效率最低的学习方法但却是最容易入门的自学方法。如果看书我强力推荐《鸟哥的Linux私房菜》，很系统很详细很深入。</p>
<p style="color: #000000;">   2.不要碰GUI</p>
<p style="color: #000000;">   3.多提问多思考，自己寻找答案不要轻易求助于他人。你问的问题都不会是国家机密，百度以及google上都会有大把的资料供你学习，要知道你求教的那个大神他也是从网络上获取的这些知识，你不想有一天能成为和他一样的大神吗？</p>
<p style="color: #000000;">   4.不要担心英文，只要你坚持看英文文档，不会的单词去查字典，用不了多久你会发现看英文比看中文理解的更好。（即使你和我一样CET-4都没过^_^）</p>
<p style="color: #000000;">   5.坚持就是胜利，半途而废不如不学，想好了就走下去，否则请不要迈出第一步。</p>
<p style="color: #000000;">   6.多和别人交流讨论，帮助别人也是一件开心的事情同时也能够提升自己，也许他问的问题就可能是你下一个要遇到的问题。</p>
<p style="color: #000000;">   7.关于培训班，如果想了解RHCE证的话请移步我的另一篇博文《<a style="color: #000000;" href="http://blog.csdn.net/apache0554/article/details/7740405" target="_blank">关于红帽RHCE考试的那些事儿</a>》http://blog.csdn.net/apache0554/article/details/7740405</p>
<h1 style="color: #000000;"><a style="color: #ca0000;" name="t8"></a><strong>四、如何成为一名专业的linux高级运维人员</strong></h1>
<p style="color: #000000;">   如果你有机会和条件，请大胆的做你从未做过的项目，每一个项目都是对自身的极大提升，环境能够磨练一个人的能力和意志。有好的环境资源不要浪费，好好把握，慢慢进步。</p>
<p style="color: #000000;">   如果你暂时没有这些机会，请努力提升自己的能力，做一个有准备的人，也许机会不久后就会来临。</p>
<p style="color: #000000;">   如果你感到毫无发展的空间，尝试改变现状，安逸的环境不会使一个专业的运维人员进步。</p>
<p style="color: #000000;">   不管何时何地始终保持好的心态，细心、冷静、自信、上进、谦逊，性格决定命运，习惯影响成就。</p>
<h1 style="color: #000000;"><a style="color: #ca0000;" name="t9"></a>五、云服务对linux运维的影响</h1>
<p style="color: #000000;">         地球人都知道，未来至少十年都是云计算的黄金时期。一个事物的发展必定要弃旧迎新，尤其在互联网时代，设备与技术的更新日新月异。云服务不仅改变了中小公司的运营方式，同样对大公司也起到了冲击作用。中小公司传统情况下，一个互联网项目在开始阶段需要网络设备，服务器设备，机房设备，CDN和线路设备，线上运维人员、IDC机房运维人员等。也许一个项目还没开始赚钱，光这些乱七八糟的设备和流程就已经耗费了相当多的人力和财力，项目成本自然提高，项目压力也就越来越大。如果项目成功，自然苦尽甘来；但若项目失败这些投资也就全打了水漂，也就大大增加了开发和创业的成本。而大公司虽然不差钱，但这些机构在长年的人员流动、机构扩充的影响下也越来越臃肿。</p>
<p style="color: #000000;">   如果企业使用云服务，那么线下运维将由云服务商全程统一负责，极大的精简了一个项目开始阶段的投入。虽然多数大公司目前并不会使用公有云，转而开发自身的私用云。但本质上是一样的，都是将线下运维进行集中和整合，通过云技术提供给各个项目人员使用，达到资源的最大化合理利用。</p>
<p style="color: #000000;">   如果云服务被越来越多的企业应用，那么对传统运维的影响是非常巨大的。</p>
<h2 style="color: #000000;"><a style="color: #ca0000;" name="t10"></a>   1.运维人员精减</h2>
<p style="color: #000000;">   公司不需要为买个项目单独配置设备和人员，运维人员更多的情况下需要的是线上运维而不需要再去机房干苦力。第一批被淘汰的就是IDC线下运维人员，因为你的活已经被云服务商做了，当然大公司的IDC机房还是不可或缺的。</p>
<h2 style="color: #000000;"><a style="color: #ca0000;" name="t11"></a>   2.运维人员要求提高</h2>
<p style="color: #000000;">   由于第一个影响，运维人员虽然不需要做线下运维，但线上运维的难度将更大。首先，如果是使用Amazon aws或者Microsoft Azure这种大型公有云，对于平台的配置和使用就具有比较高的专业性。由于云服务带来的资源整合，自动化运维势必是以后高级运维的发展趋势。运维人员不仅需要掌握公有云的熟练配置，某些情况先下还需要掌握OpenStack这种私有云。配合这些云服务需要开发和管理新的自动化运维平台，这就对运维人员提出了相当高的要求。</p>
<h2 style="color: #000000;"><a style="color: #ca0000;" name="t12"></a>   3.大胆的猜想—第三方运维</h2>
<p style="color: #000000;">   就传统运维而言，没有公司会放心将涉及核心业务的运维部门交给第三方外包，但如果云服务发展到一个相当成熟的阶段，大部分的企业都采用云服务，那么对于高级运维的人员的需求将非常大。我们都知道使用云服务是没有地域限制的，就算你在一个小山沟只要有网络，你同样可以使用云服务，而线上运维同样也可以摆脱地域限制。举一个小例子：在小城市一个公司使用云服务，想要招到符合云服务要求的专业运维人员是比较困难的，因为这些人员大部分都集中在发达城市。但公司又不得不需要这些专业的人员，只能寻找线上运维。（目前其实国内已经出现了一些第三方运维团体，但只针对于小公司和个人。）一旦线上运维的需求发展到一个程度，势必会形成产业链。也许不久的将来国内会有专门做运维的公司出现，当然这只是我的个人猜想，脑洞大开而已。</p>
<h1 style="color: #000000;"><a style="color: #ca0000;" name="t13"></a>总结：<strong>只是随心的一些想法，说出来只为自娱自乐，只希望那些想做运维和已经成为运维的朋友们在这一行能够越走越好，毕竟运维目前在国内不是一个被重视的行业，走一步算一步吧。</strong></h1>
<p style="color: #000000;">PS：<strong>以上言论为个人观点，仅作参考和建议，如观点不同，请一笑而过，不必深究</strong>。</p>
<p><span style="font-weight:bold;text-shadow:0 1px 0 #ddd;">声明:</span> 本文采用 <a rel="nofollow" href="http://creativecommons.org/licenses/by-nc-sa/3.0/" title="署名-非商业性使用-相同方式共享">BY-NC-SA</a> 协议进行授权 | <a href="https://www.asyun.cn">爱说云网</a><br />转载请注明转自《<a rel="bookmark" title="Linux运维：现状、入门和未来之路" href="https://www.asyun.cn/2261.html">Linux运维：现状、入门和未来之路</a>》</p>]]></content:encoded>
			<wfw:commentRss>https://www.asyun.cn/2261.html/feed</wfw:commentRss>
		<slash:comments>0</slash:comments>
		</item>
		<item>
		<title>shell脚本中一些特殊符号</title>
		<link>https://www.asyun.cn/2258.html</link>
		<comments>https://www.asyun.cn/2258.html#comments</comments>
		<pubDate>Tue, 03 Nov 2015 06:33:08 +0000</pubDate>
		<dc:creator><![CDATA[爱说云网]]></dc:creator>
				<category><![CDATA[Linux]]></category>
		<category><![CDATA[shell]]></category>
		<category><![CDATA[shell特殊符号]]></category>

		<guid isPermaLink="false">http://www.asyun.cn/?p=2258</guid>
		<description><![CDATA[shell脚本中一些特殊符号 &#160; &#160; 在shell中常用的特殊符号罗列如下： # ;   ;; . , / \\ 'string'&#124; !   $   ${}   $? $$   $* \"string\"* **   ? : ^ $#   $@ `command`{}   [] [[]] ()   (()) &#124;&#124;   &#38;&#38; {xx,yy,zz,...}~   ~+   ~-   &#38;   \\&#60;...\\&#62;   + - %=   ==   != # 井号 (comments) 这几乎是个满场都有的符号，除了先前已经提过的\"第一行\" #!/bin/bash 井号也常出现在一行的开头，或者位于完整指令之后，这类情况表示符号后面的是注解文字，不会被执行。 # This line is comments. echo \"a [&#8230;]]]></description>
				<content:encoded><![CDATA[<h1 class="postTitle" style="color: #4b4b4b;"><a id="cb_post_title_url" class="postTitle2" style="color: #56b6e9;" href="http://www.cnblogs.com/xuxm2007/archive/2011/10/20/2218846.html">shell脚本中一些特殊符号</a></h1>
<div id="cnblogs_post_body" style="color: #4b4b4b;">
<p>&nbsp;</p>
<p>&nbsp;</p>
<table>
<tbody>
<tr>
<td style="color: #454545;">
<div id="blog_text" class="cnt">在shell中常用的特殊符号罗列如下：</p>
<p># ;   ;; . , / \\ 'string'| !   $   ${}   $? $$   $*</p>
<p>\"string\"* **   ? : ^ $#   $@ `command`{}   [] [[]] ()   (())</p>
<p>||   &amp;&amp; {xx,yy,zz,...}~   ~+   ~-   &amp;   \\&lt;...\\&gt;   + - %=   ==   !=</p>
<p><strong># 井号 (comments)</strong><br />
这几乎是个满场都有的符号，除了先前已经提过的\"第一行\"<br />
#!/bin/bash<br />
井号也常出现在一行的开头，或者位于完整指令之后，这类情况表示符号后面的是注解文字，不会被执行。<br />
# This line is comments.<br />
echo \"a = $a\" # a = 0<br />
由于这个特性，当临时不想执行某行指令时，只需在该行开头加上 # 就行了。这常用在撰写过程中。<br />
#echo \"a = $a\" # a = 0<br />
如果被用在指令中，或者引号双引号括住的话，或者在倒斜线的后面，那他就变成一般符号，不具上述的特殊<span class="t_tag">功能</span>。</p>
<p><strong>~ 帐户的 home 目录</strong><br />
算是个常见的符号，代表使用者的 home 目录：cd ~；也可以直接在符号后加上某帐户的名称：cd ~user或者当成是路径的一部份：~/bin<br />
~+ 当前的工作目录，这个符号代表当前的工作目录，她和内建指令 pwd的作用是相同的。<br />
# echo ~+/var/log<br />
~- 上次的工作目录，这个符号代表上次的工作目录。<br />
# echo ~-/etc/httpd/logs</p>
<p><strong>; 分号 (Command separator)</strong><br />
在 shell 中，担任\"连续指令\"功能的符号就是\"分号\"。譬如以下的例子：cd ~/backup ; mkdir startup ;cp ~/.* startup/.</p>
<p><strong>;; 连续分号 (Terminator)</strong><br />
专用在 case 的选项，担任 Terminator 的角色。<br />
case \"$fop\" inhelp) echo \"Usage: Command -help -version filename\";;version) echo \"version 0.1\" ;;esac</p>
<p><strong>. 逗号 (dot,就是“点”)</strong><br />
在 shell 中，使用者应该都清楚，一个 dot 代表当前目录，两个 dot 代表上层目录。<br />
CDPATH=.:~:/home:/home/web:/var:/usr/local<br />
在上行 CDPATH 的设定中，等号后的 dot 代表的就是当前目录的意思。<br />
如果档案名称以 dot 开头，该档案就属特殊档案，用 ls 指令必须加上 -a 选项才会显示。除此之外，在 regularexpression 中，一个 dot 代表匹配一个字元。</p>
<p><strong>'string' 单引号 (single quote)</strong><br />
被单引号用括住的内容，将被视为单一字串。在引号内的代表变数的$符号，没有作用，也就是说，他被视为一般符号处理，防止任何变量替换。<br />
heyyou=homeecho '$heyyou' # We get $heyyou</p>
<p><strong>\"string\" 双引号 (double quote)</strong><br />
被双引号用括住的内容，将被视为单一字串。它防止通配符扩展，但允许变量扩展。这点与单引数的处理方式不同。<br />
heyyou=homeecho \"$heyyou\" # We get home</p>
<p><strong>`command` 倒引号 (backticks)</strong><br />
在前面的单双引号，括住的是字串，但如果该字串是一列命令列，会怎样？答案是不会执行。要处理这种情况，我们得用倒单引号来做。<br />
fdv=`date +%F`echo \"Today $fdv\"<br />
在倒引号内的 date +%F 会被视为指令，执行的结果会带入 fdv 变数中。</p>
<p><strong>, 逗点 (comma，标点中的逗号)</strong><br />
这个符号常运用在运算当中当做\"区隔\"用途。如下例<br />
#!/bin/bashlet \"t1 = ((a = 5 + 3, b = 7 - 1, c = 15 / 3))\"echo \"t1= $t1, a = $a, b = $b\"</p>
<p><strong>/ 斜线 (forward slash)</strong><br />
在路径表示时，代表目录。<br />
cd /etc/rc.dcd ../..cd /<br />
通常单一的 / 代表 root 根目录的意思；在四则运算中，代表除法的符号。<br />
let \"num1 = ((a = 10 / 2, b = 25 / 5))\"</p>
<p><strong>\\ 倒斜线</strong><br />
在交互模式下的escape 字元，有几个作用；放在指令前，有取消 aliases的作用；放在特殊符号前，则该特殊符号的作用消失；放在指令的最末端，表示指令连接下一行。<br />
# type rmrm is aliased to `rm -i'# \\rm ./*.log<br />
上例，我在 rm 指令前加上 escape 字元，作用是暂时取消别名的功能，将 rm 指令还原。<br />
# bkdir=/home# echo \"Backup dir, \\$bkdir = $bkdir\"Backup dir,$bkdir = /home<br />
上例 echo 内的 \\$bkdir，escape 将 $ 变数的功能取消了，因此，会输出 $bkdir，而第二个 $bkdir则会输出变数的内容 /home。</p>
<p><strong>| 管道 (pipeline)</strong><br />
pipeline 是 UNIX <span class="t_tag">系统</span>，基础且重要的观念。连结上个指令的标准输出，做为下个指令的标准输入。<br />
who | wc -l<br />
善用这个观念，对精简 script 有相当的帮助。</p>
<p><strong>! 惊叹号(negate or reverse)</strong><br />
通常它代表反逻辑的作用，譬如条件侦测中，用 != 来代表\"不等于\"<br />
if [ \"$?\" != 0 ]thenecho \"Executes error\"exit 1fi<br />
在规则表达式中她担任 \"反逻辑\" 的角色<br />
ls a[!0-9]<br />
上例，代表显示除了a0, a1 .... a9 这几个<span class="t_tag">文件</span>的其他文件。</p>
<p><strong>: 冒号</strong><br />
在 bash 中，这是一个内建指令：\"什么事都不干\"，但返回状态值 0。<br />
:<br />
echo $? # 回应为 0<br />
: &gt; f.$$<br />
上面这一行，相当于 cat /dev/null &gt;f.$$。不仅写法简短了，而且执行效率也好上许多。<br />
有时，也会出现以下这类的用法<br />
: ${HOSTNAME?} ${USER?} ${MAIL?}<br />
这行的作用是，检查这些环境变数是否已<span class="t_tag">设置</span>，没有设置的将会以标准错误显示错误讯息。像这种检查如果使用类似 test 或 if这类的做法，基本上也可以处理，但都比不上上例的简洁与效率。</p>
<p><strong>? 问号 (wild card)</strong><br />
在文件名扩展(Filename expansion)上扮演的角色是匹配一个任意的字元，但不包含 null 字元。<br />
# ls a?a1<br />
善用她的特点，可以做比较精确的档名匹配。</p>
<p><strong>* 星号 (wild card)</strong><br />
相当常用的符号。在文件名扩展(Filename expansion)上，她用来代表任何字元，包含 null 字元。<br />
# ls a*a a1 access_log<br />
在运算时，它则代表 \"乘法\"。<br />
let \"fmult=2*3\"<br />
除了内建指令 let，还有一个关于运算的指令expr，星号在这里也担任\"乘法\"的角色。<span style="color: #ff0000;">不过在使用上得小心，他的前面必须加上escape 字元。</span></p>
<p><strong>** 次方运算</strong><br />
两个星号在运算时代表 \"次方\" 的意思。<br />
let \"sus=2**3\"echo \"sus = $sus\" # sus = 8</p>
<p><strong>$ 钱号(dollar sign)</strong><br />
<em>变量替换</em>(Variable Substitution)的代表符号。<br />
vrs=123echo \"vrs = $vrs\" # vrs = 123<br />
另外，在 Regular Expressions 里被定义为 \"行\" 的最末端 (end-of-line)。这个常用在grep、sed、awk 以及 vim(vi) 当中。</p>
<p><em>${} 变量的正规表达式</em><br />
bash 对 ${} 定义了不少用法。以下是取自线上说明的表列<br />
${parameter:-word}   ${parameter:=word}   ${parameter:?word}   ${parameter:+word}   ${parameterffset}   ${parameterffset:length}   ${!prefix*}   ${#parameter}   ${parameter#word}   ${parameter##word}   ${parameter%word}   ${parameter%%word}   ${parameter/pattern/string}   ${parameter//pattern/string}</p>
<p><em>$*<br />
</em><em>$* </em>引用script的执行引用变量，引用参数的算法与一般指令相同，指令本身为0，其后为1，然后依此类推。引用变量的代表方式如下：<br />
$0, $1, $2, $3, $4, $5, $6, $7, $8, $9, ${10}, ${11}.....<br />
个位数的，可直接使用数字，但两位数以上，则必须使用 {} 符号来括住。<br />
$* 则是代表所有引用变量的符号。使用时，得视情况加上双引号。<br />
echo \"$*\"<br />
还有一个与 $* 具有相同作用的符号，但效用与处理方式略为不同的符号。</p>
<p><em>$@</em><br />
$@ 与 $* 具有相同作用的符号，不过她们两者有一个不同点。<br />
符号 $* 将所有的引用变量视为一个整体。但符号 $@ 则仍旧保留每个引用变量的区段观念。</p>
<p><em>$#</em><br />
这也是与引用变量相关的符号，她的作用是告诉你，引用变量的总数量是多少。<br />
echo \"$#\"</p>
<p><em>$? 状态值</em> (status variable)<br />
一般来说，UNIX(linux) 系统的进程以执行系统调用exit()来结束的。这个回传值就是status值。回传给父进程，用来检查子进程的执行状态。<br />
一般指令<span class="t_tag">程序</span>倘若执行成功，其回传值为 0；失败为 1。<br />
tar cvfz dfbackup.tar.gz /home/user &gt; /dev/nullecho\"$?\"$$<br />
由于进程的ID是唯一的，所以在同一个时间，不可能有重复性的 PID。有时，script会需要产生临时文件，用来存放必要的资料。而此script亦有可能在同一时间被使用者们使用。在这种情况下，固定文件名在写法上就显的不可靠。唯有产生动态文件名，才能符合需要。符号$$或许可以符合这种需求。它代表当前shell 的 PID。<br />
echo \"$HOSTNAME, $USER, $MAIL\" &gt; ftmp.$$<br />
使用它来作为文件名的一部份，可以避免在同一时间，产生相同文件名的覆盖现象。<br />
ps: 基本上，系统会回收执行完毕的 PID，然后再次依需要分配使用。所以 script 即使临时文件是使用动态档名的写法，如果script 执行完毕后仍不加以清除，会产生其他问题。</p>
<p><strong>(   ) 指令群组 (command group)</strong><br />
用括号将一串连续指令括起来，这种用法对 shell 来说，称为指令群组。如下面的例子：(cd ~ ; vcgh=`pwd` ;echo $vcgh)，指令群组有一个特性，shell会以产生 subshell来执行这组指令。因此，在其中所定义的变数，仅作用于指令群组本身。我们来看个例子<br />
# cat ftmp-01#!/bin/basha=fsh(a=incg ; echo -e \"\\n $a \\n\")echo $a#./ftmp-01incgfsh<br />
除了上述的指令群组，括号也用在 array 变数的定义上；另外也应用在其他可能需要加上escape字元才能使用的场合，如运算式。</p>
<p><strong>(( ))</strong><br />
这组符号的作用与 let 指令相似，用在算数运算上，是 bash 的内建功能。所以，在执行效率上会比使用 let指令要好许多。<br />
#!/bin/bash(( a = 10 ))echo -e \"inital value, a = $a\\n\"(( a++))echo \"after a++, a = $a\"</p>
<p><strong>{ } 大括号 (Block of code)</strong><br />
有时候 script 当中会出现，大括号中会夹着一段或几段以\"分号\"做结尾的指令或变数设定。<br />
# cat ftmp-02#!/bin/basha=fsh{a=inbc ; echo -e \"\\n $a \\n\"}echo $a#./ftmp-02inbcinbc<br />
这种用法与上面介绍的指令群组非常相似，但有个不同点，它在当前的 shell 执行，不会产生 subshell。<br />
大括号也被运用在 \"函数\" 的功能上。广义地说，单纯只使用大括号时，作用就像是个没有指定名称的函数一般。因此，这样写 script也是相当好的一件事。尤其对输出输入的重导向上，这个做法可精简 script 的复杂度。</p>
<p>此外，大括号还有另一种用法，如下<br />
{xx,yy,zz,...}<br />
这种大括号的组合，常用在字串的组合上，来看个例子<br />
mkdir {userA,userB,userC}-{home,bin,data}<br />
我们得到 userA-home, userA-bin, userA-data, userB-home, userB-bin,userB-data, userC-home, userC-bin,userC-data，这几个目录。这组符号在适用性上相当广泛。能加以善用的话，回报是精简与效率。像下面的例子<br />
chown root /usr/{ucb/{ex,edit},lib/{ex?.?*,how_ex}}<br />
如果不是因为支援这种用法，我们得写几行重复几次呀！</p>
<p><strong>[   ] 中括号</strong><br />
常出现在流程控制中，扮演括住判断式的作用。if [ \"$?\" != 0 ]thenecho \"Executes error\"exit1fi<br />
这个符号在正则表达式中担任类似 \"范围\" 或 \"集合\" 的角色<br />
rm -r 200[1234]<br />
上例，代表<span class="t_tag">删除</span> 2001, 2002, 2003, 2004 等目录的意思。</p>
<p><strong>[[ ]]</strong><br />
这组符号与先前的 [] 符号，基本上作用相同，但她允许在其中直接使用 || 与&amp;&amp; 逻辑等符号。<br />
#!/bin/bashread akif [[ $ak &gt; 5 || $ak&lt; 9 ]]thenecho $akfi</p>
<p><strong>|| 逻辑符号</strong><br />
这个会时常看到，代表 or 逻辑的符号。</p>
<p><strong>&amp;&amp; 逻辑符号</strong><br />
这个也会常看到，代表 and 逻辑的符号。</p>
<p><strong>&amp; 后台工作</strong><br />
单一个&amp; 符号，且放在完整指令列的最后端，即表示将该指令列放入后台中工作。<br />
tar cvfz data.tar.gz data &gt; /dev/null&amp;</p>
<p><strong>\\&lt;...\\&gt; 单字边界</strong><br />
这组符号在规则表达式中，被定义为\"边界\"的意思。譬如，当我们想找寻 the 这个单字时，如果我们用<br />
grep the FileA<br />
你将会发现，像 there 这类的单字，也会被当成是匹配的单字。因为 the 正巧是 there的一部份。如果我们要必免这种情况，就得加上 \"边界\" 的符号<br />
grep '\\' FileA</p>
<p><strong>+ 加号 (plus)</strong><br />
在运算式中，她用来表示 \"加法\"。<br />
expr 1 + 2 + 3<br />
此外在规则表达式中，用来表示\"很多个\"的前面字元的意思。<br />
# grep '10\\+9' fileB109100910000910000931010009#这个符号在使用时，前面必须加上escape 字元。</p>
<p><strong>- 减号 (dash)</strong><br />
在运算式中，她用来表示 \"减法\"。<br />
expr 10 - 2<br />
此外也是系统指令的选项符号。<br />
ls -expr 10 - 2<br />
在 GNU 指令中，如果单独使用 - 符号，不加任何该加的文件名称时，代表\"标准输入\"的意思。这是 GNU指令的共通选项。譬如下例<br />
tar xpvf -<br />
这里的 - 符号，既代表从标准输入读取资料。<br />
不过，在 cd 指令中则比较特别<br />
cd -<br />
这代表变更工作目录到\"上一次\"工作目录。</p>
<p><strong>% 除法 (Modulo)</strong><br />
在运算式中，用来表示 \"除法\"。<br />
expr 10 % 2<br />
此外，也被运用在关于变量的规则表达式当中的下列<br />
${parameter%word}${parameter%%word}<br />
一个 % 表示最短的 word 匹配，两个表示最长的 word 匹配。</p>
<p><strong>= 等号 (Equals)</strong><br />
常在设定变数时看到的符号。<br />
vara=123echo \" vara = $vara\"<br />
或者像是 PATH 的设定，甚至应用在运算或判断式等此类用途上。</p>
<p><strong>== 等号 (Equals)</strong><br />
常在条件判断式中看到，代表 \"等于\" 的意思。<br />
if [ $vara == $varb ]<br />
...下略</p>
<p><strong>!= 不等于</strong><br />
常在条件判断式中看到，代表 \"不等于\" 的意思。<br />
if [ $vara != $varb ]<br />
...下略</p>
<p><strong>^</strong><br />
这个符号在规则表达式中，代表行的 \"开头\" 位置，在[]中也与\"!\"(叹号)一样表示“非”</p>
<p><strong>输出/输入重导向</strong><br />
&gt; &gt;&gt;   &lt;   &lt;&lt;   :&gt;   &amp;&gt;   2&amp;&gt;   2&lt;&gt;&gt;&amp;   &gt;&amp;2</p>
<p>文件描述符(File Descriptor)，用一个数字（通常为0-9）来表示一个文件。<br />
常用的文件描述符如下：<br />
<strong>文件描述符     名称     常用缩写 默认值</strong><br />
0        标准输入 stdin    键盘<br />
1        标准输出 stdout     屏幕<br />
2    标准错误输出   stderr     屏幕<br />
我们在简单地用&lt;或&gt;时，相当于使用 0&lt; 或 1&gt;（下面会详细介绍）。<br />
<strong>* cmd &gt; file</strong><br />
把cmd命令的输出重定向到文件file中。如果file已经存在，则清空原有文件，使用bash的noclobber选项可以防止复盖原有文件。<br />
<strong>* cmd &gt;&gt; file</strong><br />
把cmd命令的输出重定向到文件file中，如果file已经存在，则把信息加在原有文件後面。<br />
<strong>* cmd &lt; file</strong><br />
使cmd命令从file读入<br />
<strong>* cmd &lt;&lt; text</strong><br />
从命令行读取输入，直到一个与text相同的行结束。除非使用引号把输入括起来，此模式将对输入内容进行shell变量替换。如果使用&lt;&lt;- ，则会忽略接下来输入行首的tab，结束行也可以是一堆tab再加上一个与text相同的内容，可以参考後面的例子。<br />
<strong>* cmd &lt;&lt;&lt; word</strong><br />
把word（而不是文件word）和後面的换行作为输入提供给cmd。<br />
<strong>* cmd &lt;&gt; file</strong><br />
以读写模式把文件file重定向到输入，文件file不会被破坏。仅当应用程序利用了这一特性时，它才是有意义的。<br />
<strong>* cmd &gt;| file</strong><br />
功能同&gt;，但即便在设置了noclobber时也会复盖file文件，注意用的是|而非一些书中说的!，目前仅在csh中仍沿用&gt;!实现这一功能。<br />
<strong>: &gt; filename </strong>   把文件\"filename\"截断为0长度.# 如果文件不存在, 那么就创建一个0长度的文件(与'touch'的效果相同).<br />
<strong>cmd &gt;&amp;n</strong> 把输出送到文件描述符n<br />
<strong>cmd m&gt;&amp;n</strong> 把输出 到文件符m的信息重定向到文件描述符n<br />
<strong>cmd &gt;&amp;-</strong> 关闭标准输出<br />
<strong>cmd &lt;&amp;n</strong> 输入来自文件描述符n<br />
<strong>cmd m&lt;&amp;n</strong> m来自文件描述各个n<br />
<strong>cmd &lt;&amp;-</strong> 关闭标准输入<br />
<strong>cmd &lt;&amp;n-</strong> 移动输入文件描述符n而非复制它。（需要解释）<br />
<strong>cmd &gt;&amp;n- </strong>移动输出文件描述符 n而非复制它。（需要解释）<br />
<span style="color: #333399;">注意： &gt;&amp;实际上复制了文件描述符，这使得cmd &gt; file 2&gt;&amp;1与cmd 2&gt;&amp;1 &gt;file的效果不一样。</span></div>
<div><span style="color: #333399;"> </span></div>
</td>
</tr>
</tbody>
</table>
<p>&nbsp;</p>
<p><a style="color: #1a8bc8;" href="http://hi.baidu.com/hellosimple/blog/item/559483f1f1c0e95e352acc89.html">http://hi.baidu.com/hellosimple/blog/item/559483f1f1c0e95e352acc89.html</a></p>
<p>&nbsp;</p>
<p><a style="color: #1a8bc8;" href="http://blog.csdn.net/mqboss/article/details/6549176">http://blog.csdn.net/mqboss/article/details/6549176</a></p>
<p><span class="Apple-style-span"><span class="Apple-style-span">1、{} 大括号：<br />
用法一：通配符扩展<br />
</span></span>
<dl class="codebox">
<dt>代码: </dt>
<dd><code>ls my_{finger,toe}s</code></dd>
</dl>
<p><span class="Apple-style-span"><span class="Apple-style-span"><br />
这条命令相当于如下命令的组合：<br />
</span></span>
<dl class="codebox">
<dt>代码: </dt>
<dd><code>ls my_fingers my_toes<br />
mkdir {userA,userB,userC}-{home,bin,data}</code></dd>
</dl>
<p><span class="Apple-style-span"><span class="Apple-style-span"><br />
我们将得到 userA-home, userA-bin, userA-data, userB-home, userB-bin,userB-data,userC-home, userC-bin, userC-data，这几个目录<br />
用法二：可用于语句块的构造，语句之间用回车隔开。如果你想在某些使用单个语句的地方（比如在AND或OR列表中）使用多条语句，你可以把它们括在花括号{}中来构造一个语句块。<br />
</span></span>
<dl class="codebox">
<dt>代码: </dt>
<dd><code>grep -v "$cdcatnum" $strack_file &gt; $temp_file<br />
cat $temp_file &gt; $strack_file<br />
echo<br />
cat -n file1</code></dd>
</dl>
<p><span class="Apple-style-span"><span class="Apple-style-span"><br />
(注：以上大括号中的四句命令够成了一个语句块)<br />
用法三：参数扩展<br />
</span></span>
<dl class="codebox">
<dt>代码: </dt>
<dd><code>${name:-default} 使用一个默认值（一般是空值）来代替那些空的或者没有赋值的变量name；<br />
${name:=default}使用指定值来代替空的或者没有赋值的变量name；<br />
${name:?message}如果变量为空或者未赋值，那么就会显示出错误信息并中止脚本的执行同时返回退出码1。<br />
${#name} 给出name的长度<br />
${name%word} 从name的尾部开始删除与word匹配的最小部分，然后返回剩余部分<br />
${name%%word} 从name的尾部开始删除与word匹配的最长部分，然后返回剩余部分<br />
${name#word} 从name的头部开始删除与word匹配的最小部分，然后返回剩余部分<br />
${name##word} 从name的头部开始删除与word匹配的最长部分，然后返回剩余部分</code></dd>
</dl>
<p><span class="Apple-style-span"><span class="Apple-style-span"><br />
（注，name为变量名，word为要匹配的字符串）<br />
用法三在处理字符串和未知变量时，是很有用的。</p>
<p>2、[] 中括号：<br />
用法一：通配符扩展：<br />
允许匹配方括号中任何一个单个字符<br />
</span></span>
<dl class="codebox">
<dt>代码: </dt>
<dd><code>ls /[eh][to][cm]*</code></dd>
</dl>
<p><span class="Apple-style-span"><span class="Apple-style-span"><br />
相当于执行 ls /etc /home（若有/eom目录，就相当于会执行ls /etc /home /eom）<br />
注：在mkdir命令下不能扩展<br />
用法二：用于条件判断符号：<br />
[]符号可理解为指向test命令的一个软链接，所以其用法可完全参照test，将test位置替换为[便可。<br />
</span></span>
<dl class="codebox">
<dt>代码: </dt>
<dd><code>if [ "$?" != 0 ] 等价于 if test "$?" != 0<br />
then echo "Executes error"</code></dd>
</dl>
<p><span class="Apple-style-span"><span class="Apple-style-span"></p>
<p>3、`command` 反引号：<br />
`command`与$(command)的含义相同，都是返回当前执行命令的结果<br />
</span></span>
<dl class="codebox">
<dt>代码: </dt>
<dd><code>#!/bin/sh<br />
for file in $(ls f*.sh);do<br />
lpr $file<br />
done<br />
exit 0</code></dd>
</dl>
<p><span class="Apple-style-span"><span class="Apple-style-span"><br />
该例实现了扩展f*.sh给出所有匹配模式的文件的名字。</p>
<p>4、'string' 单引号 和 "string" 双引号<br />
双引号：如果想在定义的变量中加入空格，就必须使用单引号或双引号，<br />
单、双引号的区别在于双引号转义特殊字符而单引号不转义特殊字符<br />
</span></span>
<dl class="codebox">
<dt>代码: </dt>
<dd><code>$ heyyou=home<br />
$ echo '$heyyou'<br />
$ $heyyou （$没有转义）<br />
eg: $ heyyou=home<br />
$ echo "$heyyou"<br />
$ home （很明显，$转义了输出了heyyou变量的值）</code></dd>
</dl>
<p><span class="Apple-style-span"><span class="Apple-style-span"></p>
<p>5、$# 它的作用是告诉你引用变量的总数量是多少；<br />
</span></span>
<dl class="codebox">
<dt>代码: </dt>
<dd><code>$$ 它的作用是告诉你shell脚本的进程号；<br />
$* 以一个单字符串显示所有的脚本传递的参数。等价于$1 $2 $3.......；<br />
$@ 与$*基本类似（参见序号7），但在数组赋值时有些不同；<br />
$? 前一个命令的退出码；<br />
$- 显示shell使用的当前选项；<br />
$! 最后一个后台运行的进程ID号。</code></dd>
</dl>
<p><span class="Apple-style-span"><span class="Apple-style-span"></p>
<p>6、$((...))语法：对括号内的表达式求值<br />
</span></span>
<dl class="codebox">
<dt>代码: </dt>
<dd><code>#!/bin/sh<br />
x=0<br />
hile [ "$x" -ne 10 ];do<br />
echo $x<br />
x=$(($x+1))<br />
done<br />
exit 0</code></dd>
</dl>
<p><span class="Apple-style-span"><span class="Apple-style-span"></p>
<p>7、shell中几种特殊的参数变量的引用<br />
</span></span>
<dl class="codebox">
<dt>代码: </dt>
<dd><code>$1、$2、$3……${10}、${11}、${12}…… ：表示脚本传入的的各个参数，注意当需表示两位数以后的参数时数字要用花括号括起。<br />
$@ 列出所有的参数，各参数用空格隔开<br />
$*: 列出所有的参数，各参数用环境变量IFS的第一个字符隔开</code></dd>
</dl>
<p><span class="Apple-style-span"><span class="Apple-style-span"></p>
<p>8、命令列表：<br />
AND列表 statement1 &amp;&amp; statement2 &amp;&amp; statement3 &amp;&amp; …:只有在前面所有的命令都执行成功的情况下才执行后一条命令<br />
OR列表 statement1 || statement2 || statement3 || …:允许执行一系列命令直到有一条命令成功为止，其后所有命令将不再被执行<br />
#!/bin/sh<br />
</span></span>
<dl class="codebox">
<dt>代码: </dt>
<dd><code>touch file_one<br />
rm -f file_two<br />
if [ -f file_one ] &amp;&amp; echo "hello" &amp;&amp; [ -f file_two ] &amp;&amp; echo " there"<br />
then<br />
echo "in if"<br />
else<br />
echo "in else"<br />
fi<br />
exit 0</code></dd>
</dl>
<p><span class="Apple-style-span"><span class="Apple-style-span"><br />
上例的输出为：<br />
</span></span>
<dl class="codebox">
<dt>代码: </dt>
<dd><code>hello<br />
in else</code></dd>
</dl>
<p><span class="Apple-style-span"><span class="Apple-style-span"><br />
关于AND列表与OR列表，在逻辑判断中很使用，下面就举一个其最常用的例子：<br />
</span></span>
<dl class="codebox">
<dt>代码: </dt>
<dd><code>[ condition ] &amp;&amp; command for true || command for false:</code></dd>
</dl>
<p><span class="Apple-style-span"><span class="Apple-style-span"><br />
当条件为真时，执行commandfor true ,当条件为假时，执行command for false</p>
<p>9、: 冒号：内建空指令，返回值为0<br />
</span></span>
<dl class="codebox">
<dt>代码: </dt>
<dd><code>$ :<br />
$ echo $?<br />
$ 0<br />
while: (该语句结构可实现一个无限循环)</code></dd>
</dl>
<p><span class="Apple-style-span"><span class="Apple-style-span"></p>
<p>10、; 分号: 在 shell 中，担任"连续指令"功能的符号就是"分号"<br />
</span></span>
<dl class="codebox">
<dt>代码: </dt>
<dd><code>cd ~/backup ; mkdir startup ; cp ~/.* startup/.</code></dd>
</dl>
<p><span class="Apple-style-span"><span class="Apple-style-span"></p>
<p>11、# 井号：表示符号后面的是注解文字，不会被执行；<br />
</span></span>
<dl class="codebox">
<dt>代码: </dt>
<dd><code>* 匹配文件名中的任何字符，包括字符串；<br />
？ 匹配文件名中的任何单个字符。<br />
~ 代表使用者的 home 目录</code></dd>
</dl>
<p><span class="Apple-style-span"><span class="Apple-style-span"></p>
<p>12、/ 倒斜线：<br />
放在指令前，有取消 aliases（别名） 的作用；<br />
放在特殊符号前，则该特殊符号的作用消失；<br />
放在指令的最末端，表示指令连接下一行（使得回车符无效，只起换行作用）</p>
<p>13、! 感叹号：<br />
通常它代表反逻辑的作用，譬如条件侦测中，用 != 来代表"不等于"</p>
<p>14、** 次方运算：两个星号在运算时代表 "次方" 的意思<br />
</span></span>
<dl class="codebox">
<dt>代码: </dt>
<dd><code>let "sus=2**3"<br />
echo "sus = $sus"<br />
$ sus = 8 -</code></dd>
</dl>
</div>
<p><span style="font-weight:bold;text-shadow:0 1px 0 #ddd;">声明:</span> 本文采用 <a rel="nofollow" href="http://creativecommons.org/licenses/by-nc-sa/3.0/" title="署名-非商业性使用-相同方式共享">BY-NC-SA</a> 协议进行授权 | <a href="https://www.asyun.cn">爱说云网</a><br />转载请注明转自《<a rel="bookmark" title="shell脚本中一些特殊符号" href="https://www.asyun.cn/2258.html">shell脚本中一些特殊符号</a>》</p>]]></content:encoded>
			<wfw:commentRss>https://www.asyun.cn/2258.html/feed</wfw:commentRss>
		<slash:comments>0</slash:comments>
		</item>
	</channel>
</rss>
