Azure 容器实例:Microsoft 容器创新的有力证明

本文讲的是Azure 容器实例:Microsoft 容器创新的有力证明【编者的话】本文主要介绍了 Microsoft 在容器技术浪潮中所作出的创新与努力以及所取得的成果。

与其他企业级基础设施供应商相比,面对容器技术带来的挑战,Microsoft 处于一个比较微妙的位置。Microsoft 已经在受到容器应用增长冲击的系统中取得了很多既得利益,其中包括操作系统(Windows Server),虚拟机管理程序(Hyper-V),私有云产品(Azure Stack)和 公有云(Azure)。

对于平台型公司,容器技术既是挑战又是机遇。每一个提供基础设施服务的玩家对容器化浪潮的反应不尽相同,虽然 VMware 在竞争中起步较早,但 Google、Microsoft 和 Red Hat 在拥抱新一轮的计算浪潮时反应迅速。Google 专注于容器管理,开源了 Kubernetes 容器编排引擎,并在其公有云中提供了 Kubernetes 的托管版本。Red Hat 意识到,作为传统的 PaaS,OpenShift 并未表现出强劲的势头。所以 Red Hat 做出了巨大改变,包括品牌和底层的技术栈,从而转向 Kubernetes。

微软迅速与 Docker 公司达成协议,使其成为Windows 容器的默认接口,并努力确保容器是整个堆栈不可或缺的部分,反映出其新的文化特点。 Windows 容器、Hyper-V 容器、Windows Server 2016 中集成 Docker 引擎,Azure 容器服务、Visual Studio Tools for Docker容器优化的 Windows Nano 服务器、Azure 中的嵌套虚拟化等功能都表明了 Microsoft 正在全力以赴将容器化作为一等公民。

到目前为止,微软的一项战略举措是将 Brendan Burns 纳入麾下,他是前 Google 员工,隶属于 Kubernetes 创始团队。这次招聘引起了不小的轰动,包括 Azure 的主要竞争对手 -- 构建 Google 云平台的团队。但是,由于 Brendan 与 Kubernetes 的合作,这个开源项目在社区中获得了巨大的普及,所以并未引起太多不满。包括谷歌员工在内的 Kubernetes 社区希望看到微软正式拥抱 Kubernetes。微软并没有让我们失望,在 Brendan 过渡到 Azure Compute 团队的几个月内,Redmond 在 Azure 上开放了Kubernetes。这几乎打破了 AWS 的垄断,AWS 构建了专有的容器管理平台,基于 EC2 的 亚马逊 EC2 容器服务。

Brendan 的主要可交付成果包括 Windows 与 Kubernetes 的集成,对微软用户来说这是一件极其重大的事。通过 Kubernetes 的管理,用户将能够无缝地混合和匹配 Linux 和 Windows 工作负载。这种异构环境将运行包含 Linux 和 Windows 节点的 Kubernetes 集群。但 Windows 的基础网络堆栈对此次集成增加了不小的难度,解决这个挑战的过程应该非常有趣。Brendan 除了将 Kubernetes 带到了 Azure,他也在忙于解决微软的整体容器化战略。

最新发布的 Azure 容器实例(ACI)是微软的一个重要举措,ACI 中有很多 Brendan 的印记。ACI 允许开发人员启动 “无服务容器”,而无需关心充当宿主机的虚拟机和操作系统。只需两步,开发人员就可以在 Azure 中启动一个容器。尽管有容器优化的操作系统,如 CoreOS,Atomic Hosts 和 Windows Nano Server,但在运行容器前,它们被当做虚拟机使用。

使用 ACI,开发人员在运行应用程序时无需担心 VM 或 宿主机操作系统。这是微软将 ACI 定位为“无服务容器”的主要原因。在 ACI 中无法通过 SSH 或 RDP 连接到主机。工作流程很简单 - 从 registry 中拉取一个容器,按需运行即可。

ACI 的定价模式与无服务理念相一致。每个配置的容器实例每月收取 $ 0.0025。内存持续时间是通过容器的起止时间计算而来,RAM 的收费是 $0.0000125/G。从容器创建时起,每个 CPU 需要支付 $0.0000125 的费用。每个 ACI 实例最多可以有最大 3.5GB 的 RAM 和 4个 CPU。例如,如果每天启动一个具有 1GB RAM 和 1个CPU 的 ACI 实例5分钟,则帐单将转换为0.30美元,这是非常实惠的。

在许多方面,ACI 是微软对 AWS Lambda 的回击。虽然 Azure Function 是与 Lambda 类似的替代方案,但 Microsoft 将其作为对竞争对手的无服务产品的快速响应。Azure Function 是对 Azure WebJobs 的改进,Azure WebJobs 是为类似但不同的用例创建的服务。ACI 是一种优雅的无服务计算,因为它允许开发人员以 Docker 镜像的形式携带代码加配置。与 Lambda 不同,ACI 并不局限于一组预定义的语言和运行时。

携带自有容器

携带自有容器的理念近来深入人心。Google 通过 App Engine 灵活的环境将托管虚拟机添加到其 PaaS。Amazon 支持 AWS Beanstalk 中的单容器和多容器部署。但是 Azure 容器实例为原生容器应用带来了真正的无服务功能。开发人员可以在 Docker 容器镜像中封装从代码到配置的所有内容,并对其进行定期执行。其中包括运行配置管理脚本,备份任务,自动化构建,队列处理以及更多任务。

ACI 并不是成熟容器编排平台诸如 Docker Swarm,Mesosphere DC / OS,HashiCorp Nomad 和 Kubernetes 的替代品。如果要运行复杂的微服务应用程序,需要高级功能如持久性、服务发现、canary、自动扩容、自我修复、监控和日志记录等功能,Azure 容器服务是最好的选择。将 ACI 视为增强的、支持容器的无服务平台。与其压缩代码和上传代码片段到 AWS Lambda 或 Azure Function,你可以利用 Docker 的调试工具,上线之前在本地测试代码。

ACI 表明微软非常重视容器技术,而且它的创新速度比竞争对手要快。这项技术将成为 Azure Compute 平台的关键支柱之一。我非常确定 ACI 将在微软的 Edge 计算平台 -- Azure IoT Edge 中占有一席之地。它也将最终在 Azure Stack 中作为计算层提供服务。

原文链接:Azure Container Instances: Proof Microsoft Is Innovating with Containers(翻译:李加庆

原文发布时间为:2017-09-13

本文作者:李加庆

原文标题:Azure 容器实例:Microsoft 容器创新的有力证明

时间: 2024-09-12 10:26:23

Azure 容器实例:Microsoft 容器创新的有力证明的相关文章

云监控最佳实践之-容器实例热力图

背景: 从某个客户那里收到信息, 他们正在做一个容器服务上所有实例的各种指标的热力图.希望能够整体展示所有容器实例的负载情况. 随着上云不断深入,越来越多的企业级用户选择将服务直接部署在容器服务里,容器实例越来越多,用户期望能够有一个大图显示所有容器实例的热力负载情况.便于随时掌握全局情况. 所以这个需求不是个例,恰好,云监控的dashboard和容器服务监控两者结合可以满足这个需求场景. 具体步骤如下: 使用云账号登录云监控控制台: https://cms.console.aliyun.com

C++中 set,multiset,map,multimap 关联容器实例教程

测试环境:windows 7 vs2010 内部元素有序排列,新元素插入的位置取决于它的值,查找速度快. 除了各容器都有的函数外,还支持以下成员函数: find: 查找等于某个值的元素(x小于y和y小于x同时不成立即为相等)lower_bound: 查找某个下界upper_bound: 查找某个上界equal_range: 同时查找上界和下界count:计算等于某个值的元素个数(x小于y和y小于x同时不成立即为相等)insert: 用以插入一个元素或一个区间 在学习关联容器之前,我们先要学习pa

STL之vector,数组线性容器array,list容器,算法find,find_if,bind1st,仿函数

 1.STL(Standard Template Library,是用泛型技术来设计完成的实例)的概念与组成 Iterator(迭代器) Container(容器) Algorithm(算法) Adaptors(配接器)   STL的六大组件分别是: 容器(Container) 算法(Algorithm) 迭代器(Iterator) 仿函数(Function object) 适配器(Adapter) 空间配置器(allocator):只能分配内存等   2.容器与算法 案例如下: #incl

web容器和Ejb容器的区别?

问题描述 web容器和Ejb容器的区别有那些呢?? 解决方案 解决方案二:"两个是不同的容器,也就是说管理的对象不一样.有很多产品同时提供两个容器的服务,比如weblogic,websphere..."EJB容器使用了在用户间共享的实例池.这个池只用于无状态bean和实体bean,有状态bean需要维护状态,因而不能在用户之间转换.Web容器实际上是一个Java运行时(Runtime),提供了JavaServletAPI的一个实现,并且简化了JSP网页.Web容器负责初始化,调用以及管

stl-STL的适配器容器的底层容器如何选择?

问题描述 STL的适配器容器的底层容器如何选择? 比如说实现一个stack结构 它的默认底层容器是deque,但是我们也可以选择用list 和vector, 1 那么需要在什么情况下选择list和vector做底层容器时,效率优于deque? 2 stack,queue,priority_queue,在使用时如选择底层容器? 解决方案 STL容器适配器STL 之容器适配器C++ STL 容器适配器 解决方案二: effective stl上面基本有很详细的说明 说到底是,明白实现原理,看情况选择

基于纯Java代码的Spring容器和Web容器零配置的思考和实现(3) - 使用配置

经过<基于纯Java代码的Spring容器和Web容器零配置的思考和实现(1) - 数据源与事务管理>和<基于纯Java代码的Spring容器和Web容器零配置的思考和实现(2) - 静态资源.视图和消息器>两篇博文的介绍,我们已经配置好了Spring所需的基本配置.在这边博文中,我们将介绍怎么使用这些配置到实际项目中,并将web.xml文件替换为一个Java类. 我们使用Java代码来配置Spring,目的就是使我们的这些配置能够复用,对于这些配置的复用,我们采用继承和引入来实现

在同一个JVM环境中,同时启动嵌入式 EJB容器和ACC容器。

问题描述 如何使嵌入式EJB容器和ACC容器在同一JVM环境中启动,并使得ACC容器中的组件可以访问EJB容器中的组件?要求使用glassflshembeddedcontainer和glassfishacccontainer.请给出相应代码.问题具体内容可参见:http://www.coderanch.com/t/550236/EJB-JEE/java/develop-standalone-swing-application-ejb谢谢!

在Azure中部署Kubernetes容器集群

在这个快速入门教程中,我们使用 Azure CLI 创建一个 Kubernetes 集群,然后在集群上部署运行由 Web 前端和 Redis 实例组成的多容器应用程序.一旦部署完成,应用程序可以通过互联网访问. 示例应用截图 这个快速入门教程假设你已经基本了解了 Kubernetes 的概念,有关 Kubernetes 的详细信息,请参阅 Kubernetes 文档. 如果您没有 Azure 账号,请在开始之前创建一个免费帐户. 登录 Azure 云控制台 Azure 云控制台是一个免费的 Ba

深入理解Tomcat系列之五:Context容器和Wrapper容器

前言 Context容器是一个Web项目的代表,主要管理Servlet实例,在Tomcat中Servlet实例是以Wrapper出现的,现在问题是如何才能通过Context容器找到具体的Servlet呢?在解决这个问题之前,Context容器需要先启动,启动的过程就是加载个类资源文件以及打开子容器以及Pipeline管道的过程.启动Context容器后,就可以处理具体的请求了,具体是通过Request对象,从代码清单4-3的Wrapper wrapper = request.getWrapper