当前位置: 首页 > 科技观察

云原生应用程序和数据需要安全

时间:2023-03-13 13:52:19 科技观察

将数据作为云原生应用程序的一部分进行管理是很困难的。对于许多企业而言,当前冠状病毒大流行的压力加剧了他们在软件开发中面临的挑战。数字化转型已从增长战略转变为生存战略。在线商务几乎在一夜之间爆炸式增长,达到只有在假期才能看到的水平。随着公司努力采用新技术或在竞争中保持领先地位,这将成为更多变革的动力。基于云原生IT的新方法将有所帮助。更敏捷、更多数据……更多问题?为了采取必要的步骤,开发人员正在研究如何利用云原生方法。但这不仅仅是将现有应用程序迁移到云端并添加更多基础设施。它需要一个围绕软件容器构建的新架构,以及所采用的编排工具如何在应用程序从构建到生产的过程中实现自动化,如何在容器之间高效地使用API,然后如何利用应用程序基础架构的动态变化来处理数据。Kubernetes现在是基于这种方法编排容器和管理应用程序的首选方式。Kubernetes可以处理设置应用程序工作负载、保持它们运行并应对规模挑战。但是,虽然Kubernetes可以编排应用程序,但它无法解决数据管理问题。应用程序创建的所有信息仍然需要管理。传统上,要成功使用像ApacheCassandra这样的数据库,用户必须了解整个软件堆栈,从操作系统开始。他们还必须确保其一致性并遵循严格的操作和部署手册。这种方法不仅需要深入了解数据库的工作原理,还需要随着时间的推移进行一些手动干预来处理缩放问题。让数据像应用程序一样易于编排使用Kubernetes管理云原生应用程序数据需要一些计划。一种方法是让每个服务的数据库实例位于Kubernetes集群之外。这使企业的数据基础架构脱离了控制平面,并为现在必须管理这两种环境的用户带来了额外的工作。而这种情况并不理想。更好的方法是将数据与应用程序组件一起物理分布,但在同一控制平面内。这保证了每个应用服务都可以高效地读写数据,企业可以将这些数据和应用作为一个整体来管理。更重要的是,这种方法应该像任何软件容器镜像一样跨多个云服务或云平台进行扩展。为了使用ApacheCassandra等数据库运行Kubernetes,企业需要在Kubernetes集群中使用CassandraOperator。这使Cassandra节点能够在现有Kubernetes集群中作为服务运行。Operator在Kubernetes和更复杂的进程(例如Cassandra)之间提供接口,以允许它们一起管理。启动和停止Cassandra集群、扩展它以及处理故障都由KubernetesOperator以Cassandra理解的方式处理。更好地参与Kubernetes环境意味着深入了解集群的状态。实际上,这意味着之前在数据库内部进行的某些操作(例如自动重试或设置八卦链接以跟踪内部集群状态)被提升到API层。然后Kubernetes可以根据整个集群的健康状况做出决策,以便可以采取任何行动,例如如果需要更多节点,可以启动这些元素来自动补偿。所有这些都可以通过可用的指标来观察。围绕数据思考状态通常情况下,Kubernetes中的容器实例是无状态的——它们根据需要创建然后删除,而不是随着时间的推移存储。存储要求被认为是暂时的。但是数据管理是不同的。对于像Cassandra这样的数据库,节点需要持久化数据,因此必须将其视为有状态服务。因此,必须使用PersistentVolumes和StatefulSets来添加这些对象,以确保数据卷在任何重启事件之间附加到同一运行节点。使用这种基于Kubernetes的自动化可以让开发人员和运维人员的生活更轻松。可以使现有服务更高效、更容易升级,同时可以添加新服务以满足客户需求。除了一起运行Kubernetes和数据库之外,还要考虑它们如何为内部开发人员提供数据库即服务或DBaaS功能。对于尚不熟悉设置和运行Kubernetes或不想花太多时间的团队,可以从云端按需提供结合了这些技术的数据库即服务(DBaaS)选项。数据库即服务(DBaaS)可以消除一些管理开销,让企业更容易专注于如何处理数据,而不是手动管理数据库实例。一种支持企业业务的数据方法迁移到云原生应用程序和数据对于希望更快实施并交付客户所需的企业来说至关重要。从开发人员的角度来看,将“全局”方法与保持系统运行所需的方法联系起来可能具有挑战性,尤其是在扩展数据库需要员工具备一定经验的情况下。以前的流程和组织孤岛可能是阻碍这些变化的主要问题,因此需要消除过渡到数据驱动业务的障碍。对于正在研究如何支持公司的团队来说,跟上客户需求和更有效地提供服务的压力是巨大的。微服务的采用无疑帮助了这个过程,因为它比原来的整体应用程序更容易分解应用程序并快速改进它。但是,这种方法的复杂性增加会使扩展服务和支持数据变得更加困难。为了使这更容易,将分布式数据库设计(例如ApacheCassandra)作为带有Kubernetes的云原生应用程序的一部分会有所帮助。同时,随着围绕Cassandra的更多数据库即服务选项的增长,它也使得采用和运行分布式数据库设计变得更加容易。