企业可以将容器与微服务相结合,使他们能够创建一个更加一致和轻量级的开发框架,这是云计算的绝佳选择。容器和微服务是两种可以在云计算中实现更高效率的前沿技术。虽然它们不需要组合使用,但一起使用时它们可以提供额外的好处。容器:借助容器,开发人员可以通过创建虚拟“沙箱”来编写、管理和操作软件代码,从而更快更好地工作。优点是它可以在不影响服务器或虚拟机(VM)上运行的其他应用程序和系统的情况下完成。容器可以提高效率、降低成本,甚至提高安全性。这些易于打包的轻量级组件可以与同一虚拟机中的其他组件一起运行。容器带来的巨大灵活性推动了快速采用,导致对容器技术的依赖程度越来越高。容器已经成为虚拟机的替代品。研究公司Forrester指出,58%的开发人员计划在明年使用容器或正在计划使用容器。同时,研究公司451Research的一份报告显示,应用程序容器市场将从2016年的7.62亿美元增长到2020年的27亿美元。微服务:容器的主要吸引力在于微服务。这些软件组件(可能包括代码、运行时、系统工具、系统库和设置作为独特而谨慎的过程)引入了更加模块化和高级的开发框架。通常通过工具栏或菜单提供的微服务允许组织部署软件并更快、更持续地进行更改。此功能对于使用DevOps和其他敏捷方法的组织尤为重要。微服务起源于Web服务。通过将代码组件组合成功能应用程序,组织可以使用这些预先设计的小型应用程序进行软件开发。这使企业能够更快地推出产品并更动态地进行更改。请记住,虽然微服务不需要容器,但它们可以从中受益匪浅。带有微服务的容器允许组织创建更加一致和轻量级的云开发框架。以下是关于使用容器和微服务的五个关键事实和事实:(1)复杂性可能成为问题解决方案的累积(在本例中是跨多个容器的微系统),这会产生新问题,有时甚至是棘手的问题。虽然这两种工具(尤其是组合使用时)可以简化和加速开发,但它们也带来了新的、有时是棘手的挑战。微服务的数量及其与容器的所有交集转化为一个不断变化的环境。这可能会迫使组织处理过多的粒度,如果使用过多或映射不正确,则会引入延迟。它还可能增加测试要求。一些组件是开源的,而另一些则由商业公司提供,这会使事情变得更加复杂。最终,整体框架中的差距会影响可扩展性、可靠性和许多其他因素。成功的关键是建立一个战略和一个强大的框架来支持微服务和容器。这需要经验丰富的开发人员对关键团队成员进行全面培训,以便他们能够领导主动行动并充分利用工具和系统。(2)组织需要新流程持续交付(CD)和持续集成(CI)框架是大多数企业关注的焦点。这些方法可以开启卓越的业务创新。它们特别适合当今的敏捷和DevOps开发框架,这些框架有助于快速、增量和持续部署应用程序和更新。容器和微服务在很大程度上支持这种方法。但是,有一个问题:如果没有适当的工作流程,组织就很难从持续交付(CD)和持续集成(CI)以及最终的容器和微服务中获得最大价值。在没有建立基础和框架的情况下发布这些工具会增加复杂性并破坏进展。因此,对于开发和运维团队来说,重点关注两个关键问题:构建知识库:在拥抱微服务和容器之前,业务和开发团队必须对持续交付(CD)和持续集成(CI)概念有透彻的理解和方法。必须建立协作的基础:组织必须为合作伙伴开发一个框架,以便以最高效和最有效的方式集成容器和微服务。(3)监控很关键由于依赖容器和微服务的开发环境可能变得相当复杂并且涉及大量工具和组件,因此监控是成功计划的核心。此外,代码监控必须发生在容器内部。重要的是要关注几个关键问题:了解所需监控的范围和性质。监控不足会导致开发团队感到沮丧和不知所措。一个问题是微服务在容器和组件之间可能有很大差异。这意味着必须在整个容器和微服务集合中部署监控。对传统监控的了解是有限的。传统的监测方法(即使用仪器)不一定有效。容器受益于具有尽可能少的依赖性的小型、隔离的进程。监控工具必须解决容器和微服务的独特挑战。识别缺陷、错误和生产问题发生的位置并采取措施纠正它们涉及更复杂和细致的方法。监控容器和微服务可能包括各种工具,包括应用程序性能监控、代码分析、直接错误跟踪、集中式日志记录以及围绕应用程序和组件的指标。快速无缝地解决问题。当开发团队可以确定问题存在的位置时,可以快速回滚或打补丁。这可能涉及删除或更改可能难以在容器中发现和填充的微服务。(4)编排是成功的关键容器和微服务的集合不会自动解决组织的DevOps或敏捷性挑战。这些系统和组件需要有效协调。Orchestration基本上以智能方式对容器进行集群,是这个难题的关键部分。它使可伸缩性易于管理。容器编排平台Kubernetes是开源的,适用于大多数工具和平台。它满足了自动化和扩展的需求。许多潜在的解决方案都包含Kubernetes,包括开源Docker,它可以更有效地管理单个图像实例。解决方案还可以结合AWS、GoogleCloud和MicrosoftAzure等云计算公司的商业服务,用于解决更复杂的分布式应用程序。这些服务完成了几项关键任务。最重要的是,它们可以:将大量微服务连接在一起。自动化一系列任务和流程。管理服务的扩展。通过在更广泛的环境(包括混合云部署)中部署容器和微服务,实现更高级别的敏捷性。(5)安全不能是事后的想法容器和微服务引入了一些重要的安全优势,特别是通过沙盒隔离代码和应用程??序,但它们也产生了新的漏洞。最大的风险之一是易受特定威胁影响的特定库和微服务。因此,使用容器和微服务的组织应该:采用专门的工具来管理容器安全,包括处理图像扫描、图像管理和维护可信注册表的解决方案。组织还受益于应用程序安全软件来解决代码的动态和静态扫描,以及处理基于策略的执行任务的软件。使用在外围保护容器的操作系统或软件。这种方法很重要,因为它可以防止主机内核脱离容器并保护容器之间的连接。使用容器编排作为安全的关键要素。这包括将哪些容器部署到哪些主机、主机容量、如何发现和连接容器、如何管理容器健康以及开发人员自助服务集成到环境中的程度。了解如何为容器和微服务安全配置网络,包括是否可以对流量进行分段以隔离单个集群中的不同用户、团队、应用程序和环境。这可能需要更高级的SDN工具来解决识别IP地址和集群的复杂性。同样,组织必须解决存储问题,包括容器的静止方式和位置。正确解决这些问题并对容器和微服务采用系统方法的组织将处于有利地位,使他们的开发工作与当今数字业务框架的机遇和挑战保持一致。
