查看原文
其他

为什么说开源应该是云原生环境的首选?

2017-08-30 Jonathan Zhang 开源云中文社区


让我们回到20世纪90年代,专有软件占据统治地位,开源慢慢成长壮大。是什么导致了这种转变?更重要的是,当我们转向云原生环境时,可以从中学到什么?

基础设施“历史课”

首先是笔者对30年基础设施历史的梳理。


在20世纪90年代,大多数公司对Linux一无所知或带着嘲笑。你可以从很早就看到Linux好处的公司那里买到Linux产品,大部分是作为专有Unix的便宜替代品——当时部署服务器的标准方式是以Unix的专有形式或越来越多地使用Microsoft Windows NT。

这些工具的专有性质为专有软件提供了一个肥沃的生态系统。软件被包装在商店里销售。即使是开源产品也参与了包装好的游戏。你可以在货架上购买Linux,而不是从互联网免费下载。要得到软件,你得去商店或者找软件供应商。

随着LAMP堆栈(Linux、Apache、MySQL和PHP / Perl / Python)的兴起,情况发生了改变。

LAMP堆栈是一个重大的成功。它是稳定的、可扩展的,并且相对用户友好。同时,对专有解决方案的不满开始冒头。一旦客户在LAMP堆栈中尝到了开源的味道,他们对软件的期望就会改变,包括:

    不愿被供应商锁定,
    关注安全,
    希望自己修复bug,
    认识到孤立开发软件意味着创新被扼杀。

在技术方面,组织使用软件的方式也发生巨大变化。突然间,一个网站的停机时间是不能接受的。人们更加依赖扩展和自动化。在过去十年中,我们已经看到基础设施从传统的“宠物”模式转变为“牛”模式。公司处理大量数据,从而更加注重数据保留和处理速度,并将数据返回给用户。

开源拥有开放社区和来自大型公司的增加投资,为使用软件方式的变化提供了基础。系统管理员的职位描述中开始要求Linux使用技能,熟悉开源技术和方法。通过开源,管理员可以共享工具的配置。我们不再在孤岛中独配置和调优MySQL,而是创建了一个处理系统来处理基本部分,让自己可以专注于更有价值的、更有趣的工作。

开源已经无处不在,围绕它的工具也是如此。曾经对开源有抵抗情绪的公司现在不仅通过互操作项目和外联来拥抱开源,还发布自己的开源软件项目并建立相关社区。

转向云端

今天,我们生活在一个DevOps和云的世界。我们已经获得了开源运动带来的创新回报。公司内部采用开源软件开发实践的做法越来越常见,这被Tim O'Reilly称之为“inner-sourcing”。我们正在共享云平台的部署配置。像Terraform这样的工具甚至允许我们编写和分享如何部署到特定平台。

那这些平台本身呢?

在2017年5月9日的OpenStack Summit上,Edward Snowden表示,“大多数人不假思索地使用云。许多用户为了降低成本使用不属于他们的基础设施,彻底放弃了自己的数据和信息。”


现在是时候更多地思考我们对迁移或扩展到云端的反应了。

正如 Snowden所说,现在我们有可能失去对为用户和客户维护的数据的控制。如果再回头看看为什么切换到开源,除了安全之外,很大一部分是对供应商锁定以及无法推动创新甚至修复错误的担忧。

在将自己和/或公司锁定到专有平台之前,请考虑以下问题:

    我正在使用的服务是否遵守开放标准,我被锁定了吗?
    如果服务供应商停业或被竞争对手购买,我该找谁?
    供应商是否有与客户清楚和诚实得沟通关于停机时间和安全性等的历史?
    供应商是否响应错误和功能请求,即使是对较小的客户?
    供应商会不会以让我们不舒服的方式甚至不被我们允许的方式使用我们的数据?
    供应商是否有计划处理长期的、不断上升的成本增长,特别是初始成本低的情况?

如果你看了这些问题,仔细想了每一点,仍决定使用专有解决方案。没关系,很多公司一直这样做。但是,如果你像笔者一样,希望找到一个更加开放的解决方案并仍然从云中受益,你有不同的选择。


超越专有云

当你超越专有的云解决方案时,你开源的第一个选择是核心运行于开源软件的云提供商。OpenStack是行业的领导者,拥有超过100个参与组织和数以千计的贡献者。OpenStack项目已经证明,与多个基于OpenStack的云接口是可能的,而且也很容易。这些API在云公司之间是相似的,因此你不会被锁定在特定的OpenStack供应商。作为一个开源项目,你仍然可以影响基础设施的功能、bug请求和发展方向。

第二个选择是在基本级别上继续使用专有云,但是在开源容器编排系统中。无论你选择DC / OS(建立在Apache Mesos上)、Kubernetes还是Docker(群模式),这些平台都可让你将专有云系统提供的虚拟机视为独立的Linux机器,并在其之上安装自己的平台。


所有你需要的就是Linux,并且不会立即锁定到特定于云的工具或平台。关于是否使用特定的专有后端,可以根据具体情况做出决定。但是如果这样做了,一定要做好需要迁移的准备。

你也可以选择从云端完全脱离——部署自己的OpenStack云,或将容器平台移动到自己的数据中心。


做一个moonshot

总而言之,笔者想谈一谈开源项目基础设施。3月,在Southern California Linux Expo上,各种开源项目的参与者就在谈论为项目运行开源基础设施。笔者认为这些项目正在做的工作是开源基础设施的最后一步。


除了现在正在进行的基本分享之外,笔者相信公司和组织可以更好地利用基础设施的开源,并不需要放弃将其与竞争对手区分开来的“秘密武器”。


已经开源基础设施的开源项目证明了,允许多个公司和组织提交bug报告,甚至补丁和功能的价值。还可以得到兼职贡献者的帮助。客户也会因为了解你的基础架构的内部而对你更有信心。



编译:Jonathan Zhang

作者:Elizabeth K. Joseph

来源:https://opensource.com/article/17/8/open-sourcing-infrastructure


阅读推荐:

导致安全问题的5大容器错误

Linux的任督二脉:进程调度和内存管理

【9.10】K8S GeekGathering上海站报名!文末有彩蛋!

边缘计算:可能比云计算影响更大的下一波计算浪潮

容器部署的未来是什么?


投稿邮箱:openstackcn@sina.cn


您可能也对以下帖子感兴趣

文章有问题?点此查看未经处理的缓存