1. Capital One使用Kubernetes
加速业务决策过程
Capital One是美国十大零售银行之一,每天需要处理数百万交易,并且需要进行针对欺诈检测,信用审计及其他方面的大数据决策。
软件工程高级总监John Swift领导的云团队使用Kubernetes配置平台云,支持技术团队的开发工作。根据Capital One软件工程高级总监John Swift和首席软件工程师Keith Gasser的分享,使用Kubernetes带来的优势主要包括以下三个方面:
强大的生态和一致性部署: “我们希望以一致的方式在同一生态系统中提供工具,而不是每个工具都需要自己的定制部署”,首席软件工程师Keith Gasser说。“Kubernetes使我们能够将所有需要的工具组合在一起”。
支撑快速开发和迭代: Capital One的快速决策程序要求能够非常灵活的应对市场中的威胁——能够快速添加和推送规则,检测新的行为模式,检测账户异常和交易流程等。使用Kubernetes后,开发团队可以在两周内完成基本的应用决策程序,之前往往需要一季度。
节省大量资源: “如果没有Kubernetes,那么在底层云服务上,我们的成本肯定会增加三倍,这还不包括部署和维护人员等所需的成本”。
正如Keith Gasser说的那样,Kubernetes是一个生产力倍增器。Kubernetes优化了开发过程的方方面面,节约成本,简化部署,提供完善的生态,使开发者可以更专注于单纯的开发工作。John Swift表示:"使用Kubernetes对我们具有非常重要的战略意义”。
2.谷歌开源Java镜像构建工具Jib
容器的出现让Java开发人员可以实现"编写一次,到处运行"的工作流程,但是要对Java应用程序容器化并非易事: 你必须编写Dockerfile,以root身份运行Docker进程,等待构建完成,将镜像推入镜像库。但是并不是每一个Java开发人员都是容器专家,Java开发人员可能会更喜欢只需要构建一个Jar包的工作方式。
为了应对这一挑战,谷歌开源了一个Java容器化工具Jib,有了这个工具,Java开发人员可以使用他们熟悉的Java工具构建镜像。Jib可以负责处理将应用程序打包成镜像并上传到镜像库的所有步骤。无需编写Dockerfile,甚至不需要安装Docker,而且可以集成到Maven和Gradle中。
Docker 构建流程:
Jib构建流程:
Jib通过以下方式优化Java容器的构建过程:
简单——Jib使用Java开发,并作为Maven或Gradle的一部分运行。你不需要编写Dockerfile或运行Docker守护进程,甚至无需创建包含所有依赖的大JAR包。
快速——Jib利用镜像分层和注册表缓存来实现快速、增量的构建。它读取你的构建配置,将你的应用程序组织到不同的层(依赖项、资源、类)中,并只重新构建和推送发生变更的层。
可重现——Jib支持根据Maven和Gradle的构建元数据进行声明式的容器镜像构建,因此,只要输入保持不变,就可以通过配置重复创建相同的镜像。
Jib项目地址:
https://github.com/GoogleContainerTools/jib
3.容器的使用量开始超过DevOps
一项调查发现,使用容器的组织数量将在未来几个月内超过采用DevOps流程的组织数量。
CFF(Cloud Foundry Foundation)对601位IT决策者进行调查,发现32%的受访者采用了容器并且正在使用DevOps流程。但是计划在未来12个月内采用或评估容器的受访者占25%,而有17%的受访者计划有采用或评估DevOps流程的计划。总体来说,调查发现接下来的两年内72%的受访者计划或者已经在使用容器,而对于DevOps,这一数字是66%。
广泛使用容器的组织数为18%,另外有40%的组织已经在一定范围内部署了容器,另外有40%的受访者表示他们仍处在初级阶段。
总体来说,调查发现现在IT企业更愿意采用更广泛的应用程序开发平台。超过1/3的受访者表示使用了PaaS,容器和无服务器技术的组合。更重要的是,47%的人表示他们目前正在使用PaaS环境,而30%的人表示他们正在评估,而28%的人表示他们已经广泛部署了PaaS环境。
CFF首席技术官Chip Childers表示,很明显大多数组织不再只是试图将现有的本地应用程序“提升并转移”到云中。Childers表示,只有当企业构建新应用程序或以针对云平台优化的方式对现有应用程序进行现代化时,才能充分实现云技术的优势。
目前还不清楚多少企业会依赖PaaS环境,而不是新兴的容器即服务(CaaS)环境。PaaS环境正在迅速吸收各种容器技术,如Kubernetes。对于Cloud Foundry,Childers指出已经有一个SUSE发行版,它可以将Cloud Foundry部署在Kubernetes之上。
无论选择何种路径,很明显,应用程序开发正以前所未有的速度进行,这个速度远快于几年前人们的预期。
4.谷歌GKE
(Google Kubernetes Engine)
宣布GPU加速功能GA
谷歌宣布GKE上的GPU已经GA(General Availability,生产级可用)。结合最近发布的1.10版本GKE,现在用户可以在GKE上部署机器学习应用,并且使用GPU强大的处理能力。
谷歌为GKE提供了几款GPU——快速版的NVIDIA Tesla V100、Tesla P100和入门级的Tesla K80。这些GPU都可以作为可抢占式GPU使用,使用户能够以较低的成本使用GKE的GPU。
此外,根据公告博文描述,GKE为这些GPU提供了一些独特的功能:
节点池允许用户已存在的集群按需使用GPU。
当pod需要使用GPU的时候,集群会自动创建GPU节点,并将pod调度上去。当没有pod需要使用GPU时,会自动删除GPU节点。
GKE通过taint和toleration策略保证只有需要使用GPU的pod才会被调度到GPU节点,防止其他pod被调度到GPU节点上。
允许管理员限制多个用户和团队共享的大集群中每个namespace的资源消耗。
此外,谷歌还支持通过控制台观察GPU性能。