【畅言】公司应不应该禁止程序员上网?

近来V众投上大家讨论了公司应不应该禁止员工上网这个问题,这似乎是个不用讨论其傻无比的问题,但现实中在这点上却极为分裂,就我个人观感,做传统软件、外包、电信的更容易选择封杀堵截,而做互联网的则比较开放,估计现在是不只允许甚至还得帮助翻墙,要不然Google Calendar什么的没法用。

上不上网背后的两难

就像问题中讨论的,不允许上网主要应该就是两个原因,一个是信息安全;一个则是希望提高效率。所谓提高效率则是因为考虑允许上网,员工可能会更多的去访问淘宝等网站。上网的好处也比较明显,比如全面的检索各种信息,提高工作效率和视野等。

前者的担心也是一种事实,因为很多网站都曾经提到一般来讲平日的点击要远高于周末的点击,这可以从侧面说明提高效率一说并不是纯粹的空穴来风。

这似乎有点两难,那怎么样才是一种更合理的处理方式?

禁止程序员上网是极为愚蠢的

首先必须指出的是禁止程序员上网是极为愚蠢的,不管有多少理由,绝不在合理方式的备选项之中。因为它所可能带来的伤害长线来看一定会远超过它所可能带来的收益。如果非要类比的话,这很可能更像明清两代的闭关锁国与封关禁海,未必不解决具体的某个问题,但长线来看则可能成为鸦片战争这类事情的直接推动力。这也就意味着一个有长期视角的公司,无论如何不应该采取这个手段来解决信息安全以及专心工作的问题。

为避免上述结论显得过于武断,这里做一些进一步的补充。

现在的技术世界更像是一个开放系统,每个人都在其中获取与给予,每个人都需要在这样的分享过程中成长,断开与这系统的联系则等价于断开与技术潮流的联系,停止员工的知识更新。具体来讲如果一个公司一直封闭,那它可能就一直只知道要用ASP.net Webform来做Web应用,不知道有人在搞前端框架,不知道还有一种数据库类型叫NoSQL,这不很可怕么,长线来谁能承担这种后果?当年曾经有一个开窗户进苍蝇的比喻,说的也是这类情形,这时候更合适的方法是开窗打苍蝇或者上合适的纱窗,而不是把窗口关上,把自己做成一个封闭系统并闷死自己。

更不合理的是在一个强调培训的公司来做这种事情,这就更加矛盾,解决问题的同时提升自己,探索新的技术世界无疑的是最好的提升技能方式。可一旦断网,就等于断了这条高效的路径。可有人知道Linux下联网安装一个开源应用与断网安装一个应用差别有多大,很多时候这是10分钟与一周的差别。

考虑代替的解决方法

公司更应该在联网的前提下考虑解决问题的方式,而不是一有问题就立刻简单粗暴的断网。那究竟什么样的方式更理想?

安全和效率更多的是IT和管理层的责任。从信息泄露的角度看,强化IT监控比断网是更有效的方式。IT上加大投入是一次性的,而断网对工作效率的影响则是永久性的。

对于提升效率问题,则更不能断网,而是适合把它打造成一个指示器。我们需要承认工作时的上网记录,公司是有权知道和分析的,也有权根据特定规则对不合适的上网行为进行批评。甚至可以基于这个提炼来设定一个指标,不是用来批评员工如何,而是用来检测所谓的各种高级管理方法是否有效。如果采取的各种关于激励的措施确实有效,增加了员工对工作的认可程度,那访问工作不相关网站的指标是应该呈现下降趋势的,这指标其实很难得可以避免很多因为很难度量而产生的自吹自擂,自欺欺人。但这需要管理层有点担当,因为这样做相当于对公司有利,但对很多管理者没利。

衍生问题:手机该如何处理

随着时代的发展,喜欢武断禁止上网的立刻就遇到了下一个麻烦:随着智能手机的普及,如果PC被禁止了,大家就用手机么?按照之前的思路,这次要禁止手机了。但这个会比较麻烦些,禁止使用手机对个人生活伤害太大,很多公司会比较犹豫,所以事情就陷入僵局了。手机与使用公司PC上网的关键差别在于手机似乎只影响效率,只要不接入公司网络对信息安全影响会小些。所以现状是很多人在这个事情上纠结着,但想不出有效方法。其实这可以用与上面类似的方法处理,把它作为一种管理有效性的指示器,同掌握许多很牛的词相比,这是真正考验管理者能力的地方。

浅谈Apache Spark的6个发光点

1. 轻量级快速处理。着眼大数据处理,速度往往被置于第一位,我们经常寻找能尽快处理我们数据的工具。Spark允许Hadoop集群中的应用程序在内存中以100倍的速度运行,即使在磁盘上运行也能快10倍。Spark通过减少磁盘IO来达到性能提升,它们将中间处理数据全部放到了内存中。

 

Spark使用了RDD(Resilient Distributed Dataset)的理念,这允许它可以透明的内存中存储数据,只在需要时才持久化到磁盘。这种做法大大的减少了数据处理过程中磁盘的读写,大幅度的降低了所需时间。

2. 易于使用,Spark支持多语言。Spark允许Java、Scala及Python,这允许开发者在自己熟悉的语言环境下进行工作。它自带了80多个高等级操作符,允许在shell中进行交互式查询。

3. 支持复杂查询。在简单的“map”及“reduce”操作之外,Spark还支持SQL查询、流式查询及复杂查询,比如开箱即用的机器学习机图算法。同时,用户可以在同一个工作流中无缝的搭配这些能力。

4. 实时的流处理。对比MapReduce只能处理离线数据,Spark支持实时的流计算。Spark依赖Spark Streaming对数据进行实时的处理,当然在YARN之后Hadoop也可以借助其他的工具进行流式计算。对于Spark Streaming,Cloudera的评价是:

 

 

  • 简单:轻量级且具备功能强大的API,Sparks Streaming允许你快速开发流应用程序。
  • 容错:不像其他的流解决方案,比如Storm,无需额外的代码和配置,Spark Streaming就可以做大量的恢复和交付工作。
  • 集成:为流处理和批处理重用了同样的代码,甚至可以将流数据保存到历史数据中。

 

5. 可以与Hadoop和已存Hadoop数据整合。Spark可以独立的运行,除了可以运行在当下的YARN集群管理之外,它还可以读取已有的任何Hadoop数据。这是个非常大的优势,它可以运行在任何Hadoop数据源上,比如HBase、HDFS等。这个特性让用户可以轻易迁移已有Hadoop应用,如果合适的话。

6. 活跃和无限壮大的社区。Spark起源于2009年,当下已有超过50个机构250个工程师贡献过代码,和去年六月相比,代码行数几乎扩大三倍,这是个令人艳羡的增长。

如果数据中心不再有空调、风扇等冷却装置会怎样?

超越微型超级计算机,移动已经从各方各面向数据中心蔓延。智能设备剧增大大增加了处理这些数据的服务器压力,着眼我们日常使用的手机应用,图片分享、信息推送、推特、邮件服务等等,这些基于大规模云端基础设施的应用程序只不过是所有后台服务器运作的冰山一角。随着物联网的快速发展,数十亿美元的设备增长(不仅仅只是用户群的增加,也包括终端设备的增加),将逐渐显现出传统的基于电脑数据中心的淘汰趋势,传统数据中心已无力招架新的发展趋势。

移动设备的发展不仅对数据中心施压,也改变其运营模式,促使现有技术改革并为创业者提供新的机会。

 

移动供应链是如何改变数据中心的

1981年IBM第一台带有两个软盘驱动的PC诞生时,没有人能够想象到,它会成为继大型机之后数据中心技术最大的变革:在那之前,数据中心都是运行在unix小型计算机中。基于PC的架构开始接管数据中心之后,其价格开始降低。PC技术的革新创建了如今的数据中心模式——即x86虚拟服务器、Linux和Windows服务器——这些设备的费用及性能如今已经标准化。

当前,移动手机行业成为了创新发明的聚集地,也为小型应用规格开创了新的篇章:像是闪存、小型CPU、网络硬盘等等。也就是说,轻量级处理器(比如ARM)和低成本低功耗的移动组件将成为下一代数据中心基础设备,数据中心将因为智能手机以及互联网而重塑。

但所有这一切看起来似乎是违反常规的, 因为越多数据中心计算肯定意味着更大的CPU ,而这有可能导致其电力和冷却能力达到极限。虽然摩尔定律证实了我们能够拥有很强大的计算能力,但世界各地的数据、应用程序和计算资源的规模也都在倍增。数据中心内在的所有事物都在巨变,我们不能只依靠大型硬件来支撑移动行业革新。

当然,我们这里讨论的数据中心重大变革并不只简单体现在设备大小上,更多体现在移动产业链中支持商用组件的网络和存储设备优化上,体现在那些专有系统的硬件设备性能上。

 

想象一下,一堆超便宜,像手机一样的机器,它们之间都由超级复杂的软件互连,彻底替代这些远程控制冰箱大小的机器盒子,这将是怎样的一幅画面。

 

你见过一个带风扇或者冷却装置的移动电话吗?肯定没见过,因为移动设备在设计时就做好了适应巨大温差的准备,做好了转变电力和温差的相关优化功能。因此基于移动设备的数据中心,电力和温控成本将大幅降低,使用的电量将越来越少,占用的CPU也有可能变小;新的数据中心会因为使用移动供应链体系的底层硬件设备而更加高效且便宜。

当然,集合更小型终端设备并不意味着牺牲企业级的性能或处理器速度。Facebook,Google和Twitter等大规模的应用程序服务企业已经开始应用基于移动基础设施的数据中心。这也意味着数据中心架构不再受制于华尔街,像Google和Facebook这种使用商用硬件设备实现关键业务、每天服务数十亿用户的企业,为什么要复制银行业的传统运营架构?

值得关注的是:当Google和Facebook这种规模的数据中心变得更易于个人操作时将会发生什么?

 

基于移动设备的数据中心为初创企业提供了巨大机会

移动设备不仅仅改变了数据中心的构成,也构建了新一代企业的发展形态。重点不在于初创企业如何挑战Intel这类大型传统企业(不过这也有可能发生),而在于初创企业如何利用不同类别的硬件,如ARM处理器、闪存和网络硬盘,创建支持大软件的系统,并以此避免传统运营商在硬件设备及本地安装中获取丰厚利润。

基于数据中心体系结构从硬件到软件的这一转变,我们不再需要购买大量的服务资源,即可访问计算机网络堆栈中的所有业务层(比如访问Actifio,Coho Data,Cumulus Networks, Mesosphere等,这些只是我们投资组合里的例子)。

这并不意味所有的产品都要部署在云端,但意味着所有产品都将以服务的形式存在。由于很多移动端应用程序作为服务交付于云端,很多情况下,企业将不知不觉的转型云端基础设施。应用于基础设施的SaaS模式意味着企业可在部门级别使用相关工具,即它们可以在没有IT部门协助的前提下使用。企业可以在购买产品之前在云端试用,而不再需要花费长时间的概念验证和昂贵的beta测试;用户可以拥有及时更新,而不再需要为了新产品产品发布等待一年之久。

所有这些新的应用模式减少了产品生产周期,也同时意味着传统技术的落后,这一现象在全新的SaaS销售及客户服务模式、收入确认模式、工程、开发等领域犹为显著。为了跟上时代的脚步,企业们将不得不适应下一代云基础设施。

而对于初创企业来说,移动产业链的硬件组合、开源模块构建、SaaS模式,意味着整个计算机产业运营模式终于可以开始再造了。

在此之前,初创企业不得不适应传统的计算机—网络—数据库的运营模式,及其每一层的API。如果市场主导者不想初创公司使用相关产品,只需将相关APIs使用权限设置为“对不起,不支持”,初创公司就玩完了。

如今,初创公司不会再遇到这样尴尬的场景,新的运营模式可为每一层基础设施提供解决方案……企业不再需要必须成为其中一部分,可以摆脱现有的传统堆栈方式。而且在这些新的平台上创建新的应用程序及业务将为这些初创公司获得全新的利益,这是一个前所未有的新机遇。