三年半前,Deepak Singh是Amazon Web Services(AWS)弹性计算云(EC2)的首席产品经理,客户要求他提供启用Docker容器的功能。
尽管可以像在其他任何类型的软件上一样在EC2上运行Docker,但Singh和AWS显然需要更广泛的服务。这项更广泛的服务是Amazon EC2容器服务(ECS),Singh现在将其监督为总经理。
Singh告诉eWEEK: “人们意识到,尽管他们可以在EC2实例上运行Docker,但他们希望在不同团队和业务部门之间运行多个容器应用程序。”
ECS提供了大规模管理,运行和部署容器应用程序所需的自动化服务。Singh说,ECS还为现有的AWS用户提供了熟悉的界面,为容器提供了一种集成方法,以使用Amazon提供的更广泛的云服务。
多年来,ECS已经发展到包括容器应用程序级别的身份和访问管理(IAM)和应用程序负载平衡功能。整个AWS平台会定期添加功能,Singh指出,他的工作是将容器观点带给产品开发团队。因此,当宣布新的AWS功能时,可以理解最终用户客户将在ECS的容器内运行这些功能。
码头工人
Docker Inc.还与AWS建立了合作关系,从而使Docker for AWS以及商业上受支持的Docker Enterprise Edition(EE)产品平台成为可能。
Singh解释说,Docker EE和Docker for AWS提供了Docker Inc如何运行容器的完整堆栈视图。相比之下,ECS提供的是AWS观点,其风格和API与AWS的管理方法一致。
辛格说:“我们与Docker Inc等公司合作,提供他们想要提供的一切。”
Singh补充说,该模型使现有的已经在本地运行Docker EE的Docker客户也可以在AWS中使用相同的Docker方法运行。
ECS服务可以使用任何Linux发行版,但要求组织使用AWS代理,这是用Go编写的一小段代码。Singh指出,预先配置的Go代码已经可以使用许多领先的Linux发行版。
从Docker引擎的角度看,Singh说ECS只是运行“香草”上游上游开源Docker映像。
容器编排
如今,容器编排是一个强大的技术领域,在市场上有多种选择,包括Docker Swarm,Apache Mesos和Kubernetes开放源代码。EC2使用它自己的方法来进行容器编排。
辛格说:“我们采取的方法是提供处理容器编排的方式。” “但是我们始终会倾听客户的意见,因此,如果您要运行Kubernetes,则可以运行自己的Kubernetes,也可以使用来自AWS合作伙伴(如CoreOS Tectonic)的Kubernetes。”
安全
安全是容器市场中的另一个热门话题,AWS在安全最佳实践方面也有自己的观点。
容器可以在裸机上运行,也可以直接在主机操作系统上运行,但这不是AWS提供的。相反,ECS方法是容器必须在虚拟机(VM)内部运行,以提供隔离和控制层。
辛格说:“我们信任的隔离边界是虚拟机。” “我们的客户想要更多,因此我们增加了在容器级别执行基于角色的访问控制的功能。”
更进一步,AWS正在网络侧扩展功能,以在容器级别启用云安全组。借助该功能,AWS用户将能够在容器级别过滤流量。
辛格说:“因此,您可以有两个运行在同一主机上的容器,并且可以为每个容器附加不同的网络接口,并具有各自的策略。” “我们基本上将虚拟私有云(VPC)网络功能的某些功能引入了容器。”
辛格指出,虽然已经有许多组织决定跳槽到容器,但仍有许多其他组织仍在努力弄清如何在其应用程序中使用容器。他补充说,帮助组织了解如何迁移到容器是一个持续的话题。
辛格说:“组织现在也开始运行需要符合PCI-DSS或HIPAA要求的工作负载,我们正在努力为这些客户提供支持。