2017年8月

了解混合云的细节,包括它是什么以及如何使用它

在过去 10 年出现的众多技术中,云计算因其快速发展而引人注目,从一个细分领域的技术而成为了全球热点。就其本身来说,云计算已经造成了许多困惑、争论和辩论,而混合了多种类型的云计算的"混合"云计算也带来了更多的不确定性。阅读下文可以了解有关混合云的一些最常见问题的答案。

什么是混合云

基本上,混合云是本地基础设施、私有云和公共云(例如,第三方云服务)的灵活和集成的组合。尽管公共云和私有云服务在混合云中是绑定在一起的,但实际上,它们是独立且分开的服务实体,而可以编排在一起服务。使用公共和私有云基础设施的选择基于以下几个因素,包括成本、负载灵活性和数据安全性。

高级的特性,如 扩展 scale-up 延伸scale-out,可以快速扩展云应用程序的基础设施,使混合云成为具有季节性或其他可变资源需求的服务的流行选择。( 扩展 scale-up 意味着在特定的 Linux 实例上增加计算资源,例如 CPU 内核和内存,而 延伸scale-out则意味着提供具有相似配置的多个实例,并将它们分布到一个集群中)。

处于混合云解决方案中心的是开源软件,如 OpenStack,它用于部署和管理虚拟机组成的大型网络。自 2010 年 10 月发布以来,OpenStack 一直在全球蓬勃发展。它的一些集成项目和工具处理核心的云计算服务,比如计算、网络、存储和身份识别,而其他数十个项目可以与 OpenStack 捆绑在一起,创建独特的、可部署的混合云解决方案。

混合云的组成部分

如下图所示,混合云由私有云、公有云注成,并通过内部网络连接,由编排系统、系统管理工具和自动化工具进行管理。

 title=

混合云模型

公共云基础设施

  • 基础设施即服务 Infrastructure as a Service (IaaS) 从一个远程数据中心提供计算资源、存储、网络、防火墙、入侵预防服务(IPS)等。可以使用图形用户界面(GUI)或命令行接口(CLI)对这些服务进行监视和管理。公共 IaaS 用户不需要购买和构建自己的基础设施,而是根据需要使用这些服务,并根据使用情况付费。
  • 平台即服务 Platform as a Service (PaaS)允许用户在其上开发、测试、管理和运行应用程序和服务器。这些包括操作系统、中间件、web 服务器、数据库等等。公共 PaaS 以模板形式为用户提供了可以轻松部署和复制的预定义服务,而不是手动实现和配置基础设施。
  • 软件即服务 Software as a Service (SaaS)通过互联网交付软件。用户可以根据订阅或许可模型或帐户级别使用这些服务,在这些服务中,他们按活跃用户计费。SaaS 软件是低成本、低维护、无痛升级的,并且降低了购买新硬件、软件或带宽以支持增长的负担。

私有云基础设施

  • 私有 IaaSPaaS 托管在孤立的数据中心中,并与公共云集成在一起,这些云可以使用远程数据中心中可用的基础设施和服务。这使私有云所有者能够在全球范围内利用公共云基础设施来扩展应用程序,并利用其计算、存储、网络等功能。
  • SaaS 是由公共云提供商完全监控、管理和控制的。SaaS 一般不会在公共云和私有云基础设施之间共享,并且仍然是通过公共云提供的服务。

云编排和自动化工具

要规划和协调私有云和公共云实例,云编排工具是必要的。该工具应该具有智能,包括简化流程和自动化重复性任务的能力。此外,集成的自动化工具负责在设置阈值时自动扩展和延伸,以及在发生任何部分损坏或宕机时执行自修复。

系统和配置管理工具

在混合云中,系统和配置工具,如 Foreman,管理着私有云和公共云数据中心提供的虚拟机的完整生命周期。这些工具使系统管理员能够轻松地控制用户、角色、部署、升级和实例,并及时地应用补丁、bug 修复和增强功能。包括Foreman 工具中的 Puppet,使管理员能够管理配置,并为所有供给的和注册的主机定义一个完整的结束状态。

混合云的特性

对于大多数组织来说,混合云是有意义的,因为这些关键特性:

  • 可扩展性: 在混合云中,集成的私有云和公共云实例共享每个可配置的实例的计算资源池。这意味着每个实例都可以在需要时按需扩展和延伸。
  • 快速响应: 当私有云资源超过其阈值时,混合云的弹性支持公共云中的实例快速爆发增长。当需求高峰对运行中的应用程序需要显著的动态提升负载和容量时,这是特别有价值的。(例如,电商在假日购物季期间)
  • 可靠性: 组织可以根据需要的成本、效率、安全性、带宽等来选择公共云服务提供商。在混合云中,组织还可以决定存储敏感数据的位置,以及是在私有云中扩展实例,还是通过公共基础设施跨地域进行扩展。另外,混合模型在多个站点上存储数据和配置的能力提供了对备份、灾难恢复和高可用性的支持。
  • 管理: 在非集成的云环境中,管理网络、存储、实例和/或数据可能是乏味的。与混合工具相比,传统的编排工具非常有限,因此限制了决策制定和对完整的端到端进程和任务的自动化。使用混合云和有效的管理应用程序,您可以跟踪每个组件的数量增长,并通过定期优化这些组件,使年度费用最小化。
  • 安全性: 在评估是否在云中放置应用程序和数据时,安全性和隐私是至关重要的。IT 部门必须验证所有的合规性需求和部署策略。公共云的安全性正在改善,并将继续成熟。而且,在混合云模型中,组织可以将高度敏感的信息存储在私有云中,并将其与存储在公共云中的不敏感数据集成在一起。
  • 定价: 云定价通常基于所需的基础设施和服务水平协议(SLA)的要求。在混合云模型中,用户可以在计算资源(CPU/内存)、带宽、存储、网络、公共 IP 地址等粒度上进行比较,价格要么是固定的,要么是可变的,可以按月、小时、甚至每秒钟计量。因此,用户总是可以在公共云提供商中购买最好的价位,并相应地部署实例。

混合云如今的发展

尽管对公共云服务的需求很大且不断增长,并且从本地到公共云的迁移系统,仍然是大多数大型组织关注的问题。大多数人仍然在企业数据中心和老旧系统中保留关键的应用程序和数据。他们担心在公共基础设施中面临失去控制、安全威胁、数据隐私和数据真实性。因为混合云将这些问题最小化并使收益最大化,对于大多数大型组织来说,这是最好的解决方案。

预测五年后的发展

我预计混合云模型将在全球范围内被广泛接受,而公司的“无云”政策将在短短几年内变得非常罕见。这是我想我们会看到的:

  • 由于混合云作为一种共担的责任,企业和公共云提供商之间将加强协作,以实施安全措施来遏制网络攻击、恶意软件、数据泄漏和其他威胁。
  • 实例的爆发性增长将会很快,因此客户可以自发地满足负载需求或进行自我修复。
  • 此外,编排或自动化工具(如 Ansible)将通过继承用于解决关键问题的能力来发挥重要作用。
  • 计量和“量入为出”的概念对客户来说是透明的,并且工具将使用户能够通过监控价格波动,安全地销毁现有实例,并提供新的实例以获得最佳的可用定价。

作者简介:

Amit Das 是一名 Red Hat 的工程师,他对 Linux、云计算、DevOps 等充满热情,他坚信新的创新和技术,将以一种开放的方式的让世界更加开放,可以对社会产生积极的影响,改变许多人的生活。


via: https://opensource.com/article/17/7/what-is-hybrid-cloud

作者:Amit Das 译者:LHRchina 校对:wxy

本文由 LCTT 原创编译,Linux中国 荣誉推出

snapcraft 是一个正在为其在 Linux 中的地位而奋斗的包管理系统,它为你重新设想了分发软件的方式。这套新的跨发行版的工具可以用来帮助你构建和发布 snap 软件包。接下来我们将会讲述怎么使用 CircleCI 2.0 来加速这个过程以及一些在这个过程中的可能遇到的问题。

snap 软件包是什么?snapcraft 又是什么?

snap 是用于 Linux 发行版的软件包,它们在设计的时候吸取了像 Android 这样的移动平台和物联网设备上分发软件的经验教训。snapcraft 这个名字涵盖了 snap 和用来构建它们的命令行工具、这个 snapcraft.io 网站,以及在这些技术的支撑下构建的几乎整个生态系统。

snap 软件包被设计成用来隔离并封装整个应用程序。这些概念使得 snapcraft 提高软件安全性、稳定性和可移植性的目标得以实现,其中可移植性允许单个 snap 软件包不仅可以在 Ubuntu 的多个版本中安装,而且也可以在 Debian、Fedora 和 Arch 等发行版中安装。snapcraft 网站对其的描述如下:

为每个 Linux 桌面、服务器、云端或设备打包任何应用程序,并且直接交付更新。

在 CircleCI 2.0 上构建 snap 软件包

在 CircleCI 上使用 CircleCI 2.0 语法 来构建 snap 和在本地机器上基本相同。在本文中,我们将会讲解一个示例配置文件。如果您对 CircleCI 还不熟悉,或者想了解更多有关 2.0 的入门知识,您可以从 这里 开始。

基础配置

version: 2
jobs:
  build:
    machine: true
    working_directory: ~/project
    steps:
      - checkout
      - run:
          command: |
            sudo apt update && sudo apt install -y snapd
            sudo snap install snapcraft --edge --classic
            /snap/bin/snapcraft

这个例子使用了 machine 执行器来安装用于管理运行 snap 的可执行程序 snapd 和制作 snap 的 snapcraft 工具。

由于构建过程需要使用比较新的内核,所以我们使用了 machine 执行器而没有用 docker 执行器。在这里,Linux v4.4 已经足够满足我们的需求了。

用户空间的依赖关系

上面的例子使用了 machine 执行器,它实际上是一个内核为 Linux v4.4 的 Ubuntu 14.04 (Trusty) 虚拟机。如果 Trusty 仓库可以满足你的 project/snap 构建依赖,那就没问题。如果你的构建依赖需要其他版本,比如 Ubuntu 16.04 (Xenial),我们仍然可以在 machine 执行器中使用 Docker 来构建我们的 snap 软件包 。

version: 2
jobs:
  build:
    machine: true
    working_directory: ~/project
    steps:
      - checkout
      - run:
          command: |
            sudo apt update && sudo apt install -y snapd
            docker run -v $(pwd):$(pwd) -t ubuntu:xenial sh -c "apt update -qq && apt install snapcraft -y && cd $(pwd) && snapcraft"

这个例子中,我们再次在 machine 执行器的虚拟机中安装了 snapd,但是我们决定将 snapcraft 安装在 Ubuntu Xenial 镜像构建的 Docker 容器中,并使用它来构建我们的 snap。这样,在 snapcraft 运行的过程中就可以使用在 Ubuntu 16.04 中可用的所有 apt 包。

测试

在我们的博客文档以及互联网上已经有很多讲述如何对软件代码进行单元测试的内容。搜索你的语言或者框架和单元测试或者 CI 可以找到大量相关的信息。在 CircleCI 上构建 snap 软件包,我们最终会得到一个 .snap 的文件,这意味着除了创造它的代码外我们还可以对它进行测试。

工作流

假设我们构建的 snap 软件包是一个 webapp,我们可以通过测试套件来确保构建的 snap 可以正确的安装和运行,我们也可以试着安装它或者使用 Selenium 来测试页面加载、登录等功能正常工作。但是这里有一个问题,由于 snap 是被设计成可以在多个 Linux 发行版上运行,这就需要我们的测试套件可以在 Ubuntu 16.04、Fedora 25 和 Debian 9 等发行版中可以正常运行。这个问题我们可以通过 CircleCI 2.0 的工作流来有效地解决。

工作流是在最近的 CircleCI 2.0 测试版中加入的,它允许我们通过特定的逻辑流程来运行离散的任务。这样,使用单个任务构建完 snap 后,我们就可以开始并行的运行 snap 的发行版测试任务,每个任务对应一个不同的发行版的 Docker 镜像 (或者在将来,还会有其他可用的执行器)。

这里有一个简单的例子:

workflows:
  version: 2
  build-test-and-deploy:
    jobs:
      - build
      - acceptance_test_xenial:
          requires:
            - build
      - acceptance_test_fedora_25:
          requires:
            - build
      - acceptance_test_arch:
          requires:
            - build
      - publish:
          requires:
            - acceptance_test_xenial
            - acceptance_test_fedora_25
            - acceptance_test_arch

在这个例子中首先构建了 snap,然后在四个不同的发行版上运行验收测试。如果所有的发行版都通过测试了,那么我们就可以运行发布 job,以便在将其推送到 snap 商店之前完成剩余的 snap 任务。

留着 .snap 包

为了测试我们在工作流示例中使用的 .snap 软件包,我们需要一种在构建的时候持久保存 snap 的方法。在这里我将提供两种方法:

  1. artifact —— 在运行 build 任务的时候我们可以将 snaps 保存为一个 CircleCI 的 artifact(LCTT 译注:artifact 是 snapcraft.yaml 中的一个 Plugin-specific 关键字),然后在接下来的任务中检索它。CircleCI 工作流有自己处理共享 artifact 的方式,相关信息可以在 这里 找到。
  2. snap 商店通道 —— 当发布 snap 软件包到 snap 商店时,有多种通道可供我们选择。将 snap 的主分支发布到 edge 通道以供内部或者用户测试已经成为一种常见做法。我们可以在 build 任务中完成这些工作,然后接下来的的任务就可以从 edge 通道来安装构建好的 snap 软件包。

第一种方法速度更快,并且它还可以在 snap 软包上传到 snap 商店供用户甚至是测试用户使用之前对 snap 进行验收测试。第二种方法的好处是我们可以从 snap 商店安装 snap,这也是 CI 运行期间的测试项之一。

snap 商店的身份验证

snapcraft-config-generator.py 脚本可以生成商店证书并将其保存到 .snapcraft/snapcraft.cfg 中(注意:在运行公共脚本之前一定要对其进行检查)。如果觉得在你仓库中使用明文来保存这个文件不安全,你可以用 base64 编码该文件,并将其存储为一个私有环境变量,或者你也可以对文件 进行加密,并将密钥存储在一个私有环境变量中。

下面是一个示例,将商店证书放在一个加密的文件中,并在 deploy 环节中使用它将 snap 发布到 snap 商店中。

- deploy:
    name: Push to Snap Store
    command: |
      openssl aes-256-cbc -d -in .snapcraft/snapcraft.encrypted -out .snapcraft/snapcraft.cfg -k $KEY
      /snap/bin/snapcraft push *.snap

除了 deploy 任务之外,工作流示例同之前的一样, deploy 任务只有当验收测试任务通过时才会运行。

更多的信息

  • Alan Pope 在 论坛中发的帖子:“popey” 是 Canonical 的员工,他在 snapcraft 的论坛上写了这篇文章,并启发作者写了这篇博文。
  • snapcraft 网站: snapcraft 官方网站。
  • snapcraft 的 CircleCI Bug 报告:在 Launchpad 上有一个开放的 bug 报告页面,用来改善 CircleCI 对 snapcraft 的支持。同时这将使这个过程变得更简单并且更“正式”。期待您的支持。
  • 怎么使用 CircleCI 构建 Nextcloud 的 snap:这里有一篇题为 “复杂应用的持续验收测试” 的博文,它同时也影响了这篇博文。

这篇客座文章的作者是 Ricardo Feliciano —— CircleCi 的开发者传道士。如果您也有兴趣投稿,请联系 [email protected]。原始文章可以从 这里 找到。


via: https://insights.ubuntu.com/2017/06/28/build-test-and-publish-snap-packages-using-snapcraft/

译者简介:

常年混迹于 snapcraft.io,对 Ubuntu Core、snaps 和 snapcraft 有浓厚的兴趣,并致力于将这些还在快速发展的新技术通过翻译或原创的方式介绍到中文世界。有兴趣的小伙伴也可以关注译者个人的公众号: Snapcraft

作者:Ricardo Feliciano 译者:Snapcrafter 校对:wxy

本文由 LCTT 原创编译,Linux中国 荣誉推出

学习使用 R 的 twitteR 和 leaflet 包, 你就可以把任何话题的推文定位画在地图上。

 title=

当我开始学习 R ,我也需要学习如何出于研究的目的地收集推特数据并对其进行映射。尽管网上关于这个话题的信息很多,但我发觉难以理解什么与收集并映射推特数据相关。我不仅是个 R 新手,而且对各种教程中技术名词不熟悉。但尽管困难重重,我成功了!在这个教程里,我将以一种新手程序员都能看懂的方式来攻略如何收集推特数据并将至展现在地图中。

创建应用程序

如果你没有推特帐号,首先你需要 注册一个。然后,到 apps.twitter.com 创建一个允许你收集推特数据的应用程序。别担心,创建应用程序极其简单。你创建的应用程序会与推特应用程序接口(API)相连。 想象 API 是一个多功能电子个人助手。你可以使用 API 让其它程序帮你做事。这样一来,你可以接入推特 API 令其收集数据。只需确保不要请求太多,因为推特数据请求次数是有限制 的。

收集推文有两个可用的 API 。你若想做一次性的推文收集,那么使用 REST API. 若是想在特定时间内持续收集,可以用 streaming API。教程中我主要使用 REST API。

创建应用程序之后,前往 Keys and Access Tokens 标签。你需要 Consumer Key (API key)、 Consumer Secret (API secret)、 Access Token 和 Access Token Secret 才能在 R 中访问你的应用程序。

收集推特数据

下一步是打开 R 准备写代码。对于初学者,我推荐使用 RStudio,这是 R 的集成开发环境 (IDE) 。我发现 RStudio 在解决问题和测试代码时很实用。 R 有访问该 REST API 的包叫 twitteR

打开 RStudio 并新建 RScript。做好这些之后,你需要安装和加载 twitteR 包:

install.packages("twitteR") 
#安装 TwitteR
library (twitteR) 
#载入 TwitteR

安装并载入 twitteR 包之后,你得输入上文提及的应用程序的 API 信息:

api_key <- "" 
 #在引号内放入你的 API key 
api_secret <- "" 
 #在引号内放入你的 API secret token 
token <- "" 
 #在引号内放入你的 token
token_secret <- "" 
 #在引号内放入你的 token secret

接下来,连接推特访问 API:

setup_twitter_oauth(api_key, api_secret, token, token_secret)

我们来试试让推特搜索有关社区花园和农夫市场:

tweets <- searchTwitter("community garden OR #communitygarden OR farmers market OR #farmersmarket", n = 200, lang = "en")

这个代码意思是搜索前 200 篇 (n = 200) 英文 (lang = "en") 的推文, 包括关键词 community gardenfarmers market 或任何提及这些关键词的话题标签。

推特搜索完成之后,在数据框中保存你的结果:

tweets.df <-twListToDF(tweets)

为了用推文创建地图,你需要收集的导出为 .csv 文件:

write.csv(tweets.df, "C:\Users\YourName\Documents\ApptoMap\tweets.csv") 
 #an example of a file extension of the folder in which you want to save the .csv file.

运行前确保 R 代码已保存然后继续进行下一步。.

生成地图

现在你有了可以展示在地图上的数据。在此教程中,我们将用一个 R 包 Leaflet 做一个基本的应用程序,这是一个生成交互式地图的热门 JavaScript 库。 Leaflet 使用 magrittr 管道运算符 (%>%), 因为其语法自然,易于写代码。刚接触可能有点奇怪,但它确实降低了写代码的工作量。

为了清晰起见,在 RStudio 打开一个新的 R 脚本安装这些包:

install.packages("leaflet")
install.packages("maps") 
library(leaflet)
library(maps)

现在需要一个路径让 Leaflet 访问你的数据:

read.csv("C:\Users\YourName\Documents\ApptoMap\tweets.csv", stringsAsFactors = FALSE)

stringAsFactors = FALSE 意思是保留信息,不将它转化成 factors。 (想了解 factors,读这篇文章"stringsAsFactors: An unauthorized biography", 作者 Roger Peng)

是时候制作你的 Leaflet 地图了。我们将使用 OpenStreetMap基本地图来做你的地图:

m <- leaflet(mymap) %>% addTiles()

我们在基本地图上加个圈。对于 lnglat,输入包含推文的经纬度的列名,并在前面加个~~longitude~latitude 指向你的 .csv 文件中与列名:

m %>% addCircles(lng = ~longitude, lat = ~latitude, popup = mymap$type, weight = 8, radius = 40, color = "#fb3004", stroke = TRUE, fillOpacity = 0.8)

运行你的代码。会弹出网页浏览器并展示你的地图。这是我前面收集的推文的地图:

 title=

带定位的推文地图,使用了 Leaflet 和 OpenStreetMap CC-BY-SA

虽然你可能会对地图上的图文数量如此之小感到惊奇,通常只有 1% 的推文记录了地理编码。我收集了总数为 366 的推文,但只有 10(大概总推文的 3%)是记录了地理编码的。如果你为得到记录了地理编码的推文而困扰,改变搜索关键词看看能不能得到更好的结果。

总结

对于初学者,把以上所有碎片结合起来,从推特数据生成一个 Leaflet 地图可能很艰难。 这个教程基于我完成这个任务的经验,我希望它能让你的学习过程变得更轻松。

(题图:琼斯·贝克. CC BY-SA 4.0. 来源: Cloud, Globe. Both CC0.)


作者简介:

Dorris Scott - Dorris Scott 是佐治亚大学的地理学博士生。她的研究重心是地理信息系统(GIS)、 地理数据科学、可视化和公共卫生。她的论文是在一个 GIS 系统接口将退伍军人福利医院的传统和非传统数据结合起来,帮助病人为他们的健康状况作出更为明朗的决定。


via: https://opensource.com/article/17/6/collecting-and-mapping-twitter-data-using-r

作者:Dorris Scott 译者:XYenChi 校对:wxy

本文由 LCTT 原创编译,Linux中国 荣誉推出

2017 年 8 月 16 日,Debian 操作系统度过了它的第 24 个生日,这个由 Linux 内核所驱动的操作系统,由其创始人 Ian Murdock 发布于 1993 年的同一天。

每年的 8 月 16 日这一天,被 Debian Project 确定为 Debian 日,全世界各地的 Debian 爱好者会在这一天举办各种庆祝活动

“如果你附近有城市在举办 2017 Debian 日 ,非常欢迎你前往参加,”Laura Arjona Reina 在博文中说到,“如果没有的话,你来组织一个也很好!”

Debian GNU/Linux 是 Linux 社区里最受欢迎的 Linux 操作系统之一,也有大量的发行版衍生自此,这包括 Ubuntu 和 Linux Mint。

Debian GNU/Linux 的最新发布版本是 9.1.0 (Stretch),你可以从 Debian 官方网站下载安装镜像或者现场版镜像。这个操作系统支持十种之多的硬件架构。

我们对 Debian 的生日送上我们的良好祝福,我们已经迫不及待地想要看到即将来到的 Debian GNU/Linux 10 "Buster" 了。

生日快乐! Debian!

先分享一个好消息:今天 《麻省理工学院科技评论》 MIT Technology Review 杂志揭晓 2017 年全球青年科技创新人才榜(TR35)评选结果,阿里巴巴人工智能实验室首席科学家王刚、阿里云首席安全科学家吴翰清脱颖而出,获此殊荣。

TR 35 获奖者 吴瀚清

TR35 是一个针对 35 岁以下青年科技才俊,为找出最有可能改变世界的牛人而设立的奖项。

自 1999 年以来,该杂志每年会在全球 IT(计算机、通信、网络)和生物医药、商业等领域内,从影响力、创新力、进取力、未来潜力、沟通力五个维度进行评估,挖掘学术界和工业界的 35 位科技创新精英。

从以往的上榜者来看,说 TR 35 是预言人类进程的先知也不为过。Google 联合创始人拉里·佩奇(2002 年)和谢尔盖·布林(2002 年),Linux 之父林纳斯·托瓦兹(1999 年),Facebook创始人马克·扎克伯格(2007 年),Yahoo 创始人杨致远(1999 年),Apple 设计总监乔纳夫·伊森(1999 年)等,都曾是该奖的座上宾。如今,他们正在改变我们所处的世界,甚至影响人类进步的方向。

正因如此,TR35 的门槛极高。据统计,从 1999 年到 2016 年,共评选出 820 名 TR35,中国入选者仅 17 人。今年,阿里巴巴有两位科学家同时入选,创下中国互联网科技企业的先例。

非常荣幸,上月在北京举办的网络安全生态峰会上,我与吴翰清有过一次深入的独家专访。本文特别采用问答形式,希望还原吴翰清在技术领域的深度思考。

一、云计算终极目标:实现飞机那样的技术普惠

老王

网络攻击和渗透行为日益增多,给社会和企业带来巨大危害。但并不是每个企业都有足够的预算和技术能力来迎接安全风险的威胁。

安全服务也能像水、电、网这样的基础服务一样,可以随时购买、随时使用,而不用关心很多引擎盖下面的技术细节?

吴瀚清

我自己觉得这个问题得分成两部分来看。

首先,今天整个云端团队,或者阿里云安全团队希望成为互联网安全的一种基础设施。既然它是基础设施,它对于很多的人来说,就应该是普惠的,如同今天的水、电、网一样。在这个层面上来讲,我们希望把安全服务做的更加的透明一些,更加的无感知一些。

从技术的角度来讲,有一些问题通过弹性安全网络就有可能解决掉。

但网络安全服务其实是一个研究对抗的问题,只要是人与人之间的对抗,只要还要有坏人存在,就一定有新的安全问题会涌现出来,只是会随着技术发展不断更新。

比如,过去从 PC 走向了互联网、移动互联网,再走向 IoT,所有的安全问题也是跟随着 PC 的发展,然后到互联网,再到移动互联网的安全问题,到未来是研究 IoT 的安全问题。

另一方面,其实我觉得云计算的安全方面,或者云计算本身,它非常像飞机。比如说你要造一架飞机,用到的技术是极其复杂的,但是今天我们每个人都能够用非常便宜的价格,去享受这个航班的服务。所以我觉得这就是里面的差别。

就是说,我们要重新去发明一项技术,把它做到足够成熟是需要非常专业的人,花非常大的代价去把它做出来的。但是,最后我们要把这个非常复杂的技术,做到每个人都能够用。每个人都能够用最低的成本、最低的门槛去使用。

我觉得这个就是云计算所要追求的目标。就是要让技术变的普惠。让每个人都能够非常简单的去用非常复杂的技术。

对于普通客户,他并不需要理解一架飞机的原理,它只要能乘坐就好。

二、安全边界将会越来越模糊

老王

怎么样才能让用户,在需要时能够感知到安全,没有遇到安全问题的时候实现隐形。这个安全边界是怎么确定比较好?

吴瀚清

AWS 提出了责任共担模型,他们认为操作系统之下的都是他们来负责;操作系统之上的都是客户自己来负责的,比如客户自己写的应用,比如自己管理的一些系统,比如客户配置出现了问题,都是要客户自己来负责的。但是操作系统之下,进程本身的安全,包括底层基础设施的安全,这些都是由 AWS 来负责。他们把这个边界划在这里。

但是我觉得这个边界,也不是一成不变的,它会随着软件架构的演进而不断发生变化。

边界会越来越模糊,而且我们整个技术是在进步的,所以在我的理解里,云计算是不需要像 Windows 跟 Linux 这样的 PC 时代的操作系统的。

因为今天大量的云时代的应用,或者互联网时代的应用,实际上就是用代码直接操作数据,其实并不需要关心底层操作系统。从这个角度来讲,今天这些程序员写代码的方式将来都是需要变化的。当计算时代真正到来的时候,比如说现在 AWS 就在推 serverless 这样的一些东西,谷歌也有 GCE,类似这些东西,实际上它真正代表的是未来我们写代码操作数据的方式。

所以回到未来来看,今天你所关心的很多的软件问题,在那个时候已经不再是一个问题了。因为都被云计算公司封装到了它的责任范围之内,所以我觉得这条线、这个边界是在不断地演进的,而且它的封装是越来越完整的。

三、未来五年,安全看 IoT AI

老王

你们现在有没有考虑到三年、五年以后的安全势态会怎么样,会不会研发相应的产品和技术?

吴瀚清

我觉得未来要抓的两件事情,还是相对比较明确。

在战略思考方面,第一个就是抓 IoT。可能在整个 IoT 这方面,最根本的一个东西就是认证体系,它应该是从一个硬件芯片开始,通过证书做硬件的加密和认证,然后通过信任链的传递,在整个 IoT 里面我们就会有一个可信的计算环境。我们今天在 IoT 的安全方面,已经有一些解决方案。

另外一件,我觉得 AI 是我们这个时代接下来需要重点去抓的事情,它带来的这个变化,可能会超过我们所有人的想象,它可能会像手机出现的时候,会对这个世界带来这么大的影响和变化。所以今天如何把 AI 应用在我们安全技术本身,这个是我们今天要去思考的。

四、对网络暴力斗争到底

老王:

在安全圈子里,有没有攻击者和厂商互相勾结?

吴瀚清

从这个行业乱象来讲,今天一定存在你刚才说的这种黑与白的互相勾结,或者收取保护费的事情。

特别在我所了解的高防这个产业,实际上有一些这样的乱象的,就是攻击者和收保护费的实际上是同一波人。但是今天从其他的一些我所了解的一些厂商来说,比如说像今天的阿里,或者我们的一些友商,他们是绝对不会做这种事情。

因为对于阿里自己来说,对我们来说每一次大的攻击的挑战,实际上都是一次磨炼我们技术的机会,如果我们不去正面迎接这种挑战,我们的技术就不会进步。错过了我们技术进步的这个机会,我觉得这才是对阿里来说更大的一个损失。所以面对这种网络暴力,实际上我们更加采取的是这种绝不宽容的这种态度,一定会去斗争到底的。

五、安全和开源、闭源没有关系

老王

你对开源与安全是怎么看的?它们之间有没有必然联系?有什么样的联系?

吴瀚清

我觉得安全不安全,跟开源还是闭源没有直接的关系。但是它跟这个软件背后的这个运营方是有关系的。

比如就开源软件来讲,有很多很多的开源软件,确实对整个互联网作出了不可磨灭的贡献。但是也有很多开源软件,它的软件开发者是非常、非常缺乏安全意识的。

像 Linux 这种,它本身有一个非常好的基金会,它的开发者都是非常资深的软件工程师,本身又有非常好的安全意识和非常完善的机制。从这个角度来讲,Linux 本身的安全,我觉得是做的非常不错的,而且它也在持续的、不断推出一些新的安全功能。

回到闭源软件这一边,比如微软本身就建立了非常好的一个应急响应机制,它本身建立了非常大的安全团队来做安全这个事情。从这个角度来讲,微软的安全也做的不错。

在我看来,更重要的应该去关注应急响应,这应该是整个安全机制里面最重要的一些事情。甚至我觉得,应该占到整个安全工作的 50%。另外 50% 的工作就是检测,所以安全实际上就是做两件事情,就是检测和响应。

所以在这里面我们做的很多工作,都可以看成应急响应的一部分。比如说你发现问题之后,你去做这个漏洞的修补,以及定期检查之后做的加固。包括通知机制,实际上都是应急响应需要去做的。应急响应不仅仅是解决具体某一个漏洞的问题,它还包括一系列的问题,包括安全的分析,以及产品能力本身的提升,比如说这次响应没有做好,下一次你的产品是不是有更强的能力来提升?

同时这还涉及到一个对外舆情的问题。这种应急响应是不是会带来恐慌?比如说有一些安全问题,完全是炒作漏洞,很多客户就会引发恐慌,这时候你能不能通过技术分析出来拨乱反正?所以有很多这样的问题,综合起来就会变成一个体系。

我们觉得今天可能更多的东西,应该是从实践中来的。所以几乎阿里云每周都在进行安全响应,每周都在响应两到三次。所以就会把我们的一套非常高效的流程给逼出来。

在未来我们也希望在这一块能够帮到更多的企业,我们在应急响应这块,也希望能够推出更多的产品和服务。

六、坚持产品的使命是最根本的东西

老王

你是阿里云的初创成员之一,也是阿里云安全团队初创成员。是否可以分享一下如何规划团队的技术和发展?

吴瀚清

阿里本身也是一家使命驱动的公司。所以这两点,造成我们的做事方式实际上还是有迹可循的。

今天在所有的战略思考和所有的坚持上面,我们的使命一直是建设互联网安全的基础设施。

从这个角度来讲,我们会做很多、很多的东西。我们现在的产品,不管这个产品的形态如何发生变化,可能会经历一些阶段性的失败,但是我们的产品,最终它要去的那个地方,是始终没有动摇过的。

像我们的高防产品,我们第一天就打出一个使命,就是我们要消灭互联网的 DDoS,这是我们和其他所有做高防产品厂商的区别。他们都是希望 DDoS 存在的,因为这个能带来业务收入。

但是我们今天不在乎靠这个反 DDoS 产品赚钱,虽然今天我们的主要收入确实来自这个产品。这是一个现状,但是未来我们要去的地方-------我们是希望消灭整个互联网的 DDoS 的。我也觉得,只有真正到了那一天,我们对这个互联网和对这个社会的贡献的价值足够大,才会有足够大的商业空间诞生出来。我觉得这是我对整个商业的一个理解。

所以我觉得,今天在整个使命愿景的坚持上面,是我们最根本的东西,今天经历的所有的波折,实际上都是可以根据时间随着来调整的。

七、给年轻从业者的建议

老王

现在有很多年轻人想从事安全服务行业。作为一个资深的网络安全专家,有什么建议?

吴瀚清

我觉得主要是三件事情。第一件就是多看一些书;第二件是多去见一些真正优秀的人;第三件是多经历一些事情。

回到安全服务这个行业,我觉得除了多看书之外,动手能力是最重要的。我觉得这个对于所有从事计算机产业的年轻人,都是非常重要的一个建议。就是动手远比从书本上看东西要重要------当然看书也很重要。

再就是能够多接触一些行业里面真正优秀的顶尖人物,我觉得这是需要他自己不断去找机会去拓展的。

安全这个行业,我觉得跟其他产业不太一样的地方,就是在于今天我们是在里面有一个对抗存在,涉及到正义与邪恶的,我希望未来的年轻人不要走上邪路,要站在正义的这一方,真正成为光明的守护者,去保护我们人民财产的安全。

采访后记

对吴瀚清的采访就到这里,从和吴瀚清的交谈中,我能体会到真正纯粹的技术专家的赤子之心,也能感受到吴瀚清和他的团队对安全的热爱和社会责任感,其所一直践行的,或许就是他的“道”吧。

采访者:老王,Linux 中国开源社区的创始人,曾任职亚信旗下的玛赛系统安全公司的华东区技术总监,中国电信系统集成公司网络安全事业部高级专家。