调查:开发人员如何选择最适合的容器即服务?
云原生开发和容器的出现重新定义了软件的开发方式。但并非所有企业都拥有资源或专业知识来设置所需的基础架构以支持容器化应用。但幸运的是,云供应商提供Containers-as-a-Service来帮助开发人员充分利用云原生开发的优势。
领先的云提供商都拥有CaaS产品,比如AWS、微软的Azure和谷歌云平台,但选择合适的产品可能是一项挑战。虽然每个人都有不同的要求,但了解其他人使用的解决方案及其原因总是有益的,以帮助做出决策。
根据相关的调查研究显示,有一些因素促使开发人员选择一种CaaS而不是另一种。易用性(支持和文档),与当前基础架构的集成,以及熟悉的工具和编程语言成为了开发人员选择CaaS服务的重要因素。
虽然开发人员在采用平台时还有其他原因,但这四个因素的开发人员所占的百分比,在以上3个云提供商有着明显不同。
并非所有CaaS平台都是出于同样的原因而被选中的。选择AWS Elastic Container Service的开发人员,是看中它与其他系统集成,34%使用它的开发人员选择AWS ECS的原因;而Azure和谷歌则为29%和28%。AWS不仅拥有大量的工具和服务,AWS还拥有强大的合作伙伴网络,有自己的云服务市场,甚至发布了云地图服务。
开发人员倾向于使用Google容器引擎(GCE),因为它易于使用。45%的GCE开发人员选择它的部分原因是支持和文档,36%因为开发的简便性和速度。这种满意度是用户选择Google容器引擎的重要原因。
对于Azure的容器服务,开发人员喜欢Azure可以使用熟悉的工具和语言。由于这个原因,选择Azure的开发人员比AWS和谷歌分别多了12和7个百分点。研究表明,微软开发人员的品牌忠诚度很高,因此Azure使开发人员可以轻松地使用微软的工具进行容器开发和管理。Azure使开发人员能够使用Docker容器和Visual Studio进行开发,这些工具通过简单的命令将代码部署到Azure容器服务。他们还可以将Docker容器部署到Windows服务器。最后,与Active Directory集成,使忠诚的微软开发人员能够使用现有的身份验证策略和技术。
大多数开发人员都在寻找一个易于使用且符合当前战略和基础架构的平台,无论是集成,支持还是使用他们熟悉工具的能力。
虽然每个解决方案都有独特的优势,但调查分析还发现,许多开发人员使用的是多个领先的CaaS,有时同时使用三个。使用CaaS的开发人员中有7%使用了所有三个平台,而46%使用了两个。
同时,超过一半的后端开发人员正在实施多云策略,而非选择单一提供商。推动这一趋势的多云解决方案有许多好处。如果团队为多云环境开发,可以避免供应商锁定。这种方法迫使开发人员在不依赖供应商特定服务的情况下构建,从而降低了转换成本。多云方法还使企业能够优化其基础架构。开发人员和运维团队可以根据各种工作负载和应用的要求利用每个云的优势。更大的弹性也是一个需要考虑的关键优势。还有应对DDoS攻击也很重要,因为计算资源可能会被假请求所淹没。而且工作负载可以转移到备份云。
随着领先的供应商都在标准化Kubernetes,AWS和Azure正在推广特定于Kubenetes的CaaS产品,以更多地关注Kubernetes作为底层编排引擎。Azure实际上是将其所有用户迁移到Kubernetes服务。使用Kubernetes,标准编排引擎,跨云提供商迁移应用和容器变得更加容易。
AWS和Azure正在努力让使用容器和Kubernetes开发更方便。两家公司都提供无集群或无服务器的Kubernetes服务,例如AWS的Fargate和Azure Container Instance。这些解决方案使开发人员能够轻松部署容器,而无需担心服务器或集群。这种方法将使开发人员更容易,但额外的抽象级别也会降低灵活性并增加转换成本。
AWS开源Firecracker是支持无服务器平台Lambda和Fargate的微型虚拟机,将是另一个值得关注的有趣开发项目。这可能证明是AWS对Kubernetes的回应。