DevOps:软件架构师行动指南DevOps:软件架构师行动指南2.3 独特的云特性对DevOps的影响

简介:

2.3 独特的云特性对DevOps的影响


云影响DevOps的3个独特特性是简单地创建和切换环境的能力;轻松创建虚拟机的能力,以及数据库的管理。我们首先讨论环境。

2.3.1 环境

在我们的上下文中,环境是足够执行软件系统的一组计算资源,包括所有支持软件、数据集、网络通信,以及执行软件系统所需定义的外部实体。

这个定义的关键点是:除了明确定义的外部实体外,环境是自包含的。一个环境通常独立于其他环境。在第5章中,我们会看到一些环境,例如开发、集成、用户测试,以及生产环境。在第12章的案例研究中,环境的生命周期是其部署流水线的一部分。在开发、测试和部署过程的各阶段有多个环境并不是云独有的特性,但简单地创建和迁移环境的能力是云独有的特性——像克隆新实例一样容易。通过使环境之间没有可修改的共享资源来实现一个环境与另一个环境的隔离。只读资源,例如各种订阅源,可以共享而不会带来问题。因为环境与外部世界的通信只通过已定义的外部实体,所以这些实体能够通过URL访问,因此可以单独管理。写或修改这些外部实体的状态应该只在生产环境中进行,并为所有其他环境创建独立的外部实体(例如,仿制品或测试克隆)。

将环境可视化的一种方法是将其看作一个竖井。图2-5展示了两个不同环境(测试环境和生产环境)的两个变体。每一个包含了同一个系统稍有差异的版本。两个负载均衡器(负责它们各自的环境)有不同的IP地址。如图2-5a所示,测试可以通过分流到生产环境的输入流并将副本发送到测试环境来实现。这种情况下,重要的是测试数据库与生产数据库隔离。图2-5b给出了一个替代方案。这种情况下,将实际生产消息的某个子集发送到测试环境来执行现场测试。我们在第6章讨论金丝雀测试以及其他现场测试方法。环境之间的移动能够用一个脚本来实现,在使用脚本之前要测试其正确性。我们将在第6章看看其他在测试和生产环境之间移动的技术。

 

图2-5 a)使用实际数据测试;b)使用一个用户子集进行现场测试[标注法:架构]

将生产轻松地从一个环境切换到另一个环境的结果是使业务连续性的实现变得更容易。业务连续性意味着当主数据中心发生灾难时业务能够继续运作。在第11章,我们将看到管理多数据中心的案例,但此刻并没有要求将两个环境放在同一个数据中心。如果目标是从一个环境迅速切换到备份环境,就需要同步两个数据库。

2.3.2 轻松创建虚拟机

由于分配新虚拟机过于容易,所以用户管理云方面的一些问题就浮现出来。虚拟机需要打最新的补丁,就像物理机一样,还需要付费。没有打补丁的机器会成为安全风险。而且,在公有云中,用户要付费使用虚拟机。我们听闻过一个发生在主要美国大学的事件,有个学生出去过暑假,但没有清理自己分配的资源,结果回来发现一个$80 000的账单。

术语虚拟机蔓延用来描述管理过多虚拟机的复杂性。类似地,拥有太多虚拟机镜像的挑战称为镜像蔓延。有工具(如Janitor Monkey)可以扫描账户并确定分配了哪些机器以及它们最近的使用情况。当利用云即平台时,必不可少的活动之一就是为机器的分配和虚拟机镜像归档开发并执行一个策略。

2.3.3 数据考量

云的经济效益伴随NoSQL数据库系统一同到来。许多系统利用多个不同的数据库系统,既有关系数据库也有NoSQL。此外,大量数据为了不同的商务智能或运营目的从各种渠道汇聚在一起。如同云中的计算资源能够通过扩展增加,存储资源也能够增加。我们先探讨Hadoop分布式文件系统,它为一个集群内的应用提供存储。Hadoop 分布式文件系统为许多NoSQL数据库系统提供文件系统。然后,我们探讨与分布式文件系统相关的运维注意事项。

1. Hadoop分布式文件系统

Hadoop分布式文件系统提供了一个共享的存储资源池。应用通过Java、C或其他流行语言实现的一个常规文件系统接口来访问Hadoop分布式文件系统。可用的命令包括open(打开)、create(创建)、read(读)、write(写)、close(关闭)和append(追加)。由于多个应用共享Hadoop分布式文件系统提供的存储,所以一个管理器控制文件名的命名空间并在应用程序想写新块时分配空间。该管理器还提供信息以便应用程序能够直接访问特定的块。Hadoop分布式文件系统还有一个存储节点池。

Hadoop分布式文件系统中,这个管理器称为NameNode,存储池的每个元素称为DataNode。Hadoop分布式文件系统还分配了一个NameNode用于热备份。每个DataNode是一个单独的物理机或虚拟机。限制应用程序写固定大小的块——通常是64MB。当应用程序要向文件写一个新块时,它联系NameNode并请求存储该块的DataNode。每块将复制多次,通常是3次。NameNode用一个DataNode列表响应写请求,并得到可写块,之后应用程序把块写入每一个DataNode中。

Hadoop分布式文件系统的许多特性都是用来防范单个DataNode的故障并提高Hadoop分布式文件系统的性能。就我们的目的而言,关键要素是Hadoop分布式文件系统提供了一个在应用程序之间共享的存储池。

2.运维注意事项

与Hadoop分布式文件系统这样的共享文件系统相关的运维注意事项是双重的。

1)谁管理Hadoop分布式文件系统的安装?Hadoop分布式文件系统既可以是多个应用程序之间共享的一个系统,也可以只是一个应用程序的实例化。在单一应用程序的情况下,其管理职责将落在该应用程序的开发团队身上。在共享的情况下,系统的管理必须指派给组织内的某处。

2)存储在Hadoop分布式文件系统内的数据是如何防范灾难的?Hadoop分布式文件系统本身会在多个DataNode上备份数据,但数据中心的一般故障可能造成Hadoop分布式文件系统无法访问或者Hadoop分布式文件系统管理的数据被损坏或丢失。对于那些部分业务依赖于Hadoop分布式文件系统的持续执行并访问存储在Hadoop分布式文件系统中的数据的业务来说,业务连续性成为一个必须解决的问题。

相关文章
|
3月前
|
Kubernetes 持续交付 Docker
探索DevOps实践:利用Docker与Kubernetes实现微服务架构的自动化部署
【10月更文挑战第18天】探索DevOps实践:利用Docker与Kubernetes实现微服务架构的自动化部署
122 2
|
4月前
|
运维 Cloud Native Devops
云原生架构的崛起与实践云原生架构是一种通过容器化、微服务和DevOps等技术手段,帮助应用系统实现敏捷部署、弹性扩展和高效运维的技术理念。本文将探讨云原生的概念、核心技术以及其在企业中的应用实践,揭示云原生如何成为现代软件开发和运营的主流方式。##
云原生架构是现代IT领域的一场革命,它依托于容器化、微服务和DevOps等核心技术,旨在解决传统架构在应对复杂业务需求时的不足。通过采用云原生方法,企业可以实现敏捷部署、弹性扩展和高效运维,从而大幅提升开发效率和系统可靠性。本文详细阐述了云原生的核心概念、主要技术和实际应用案例,并探讨了企业在实施云原生过程中的挑战与解决方案。无论是正在转型的传统企业,还是寻求创新的互联网企业,云原生都提供了一条实现高效能、高灵活性和高可靠性的技术路径。 ##
248 3
|
6月前
|
缓存 Devops 微服务
微服务01好处,随着代码越多耦合度越多,升级维护困难,微服务技术栈,异步通信技术,缓存技术,DevOps技术,搜索技术,单体架构,分布式架构将业务功能进行拆分,部署时费劲,集连失败如何解决
微服务01好处,随着代码越多耦合度越多,升级维护困难,微服务技术栈,异步通信技术,缓存技术,DevOps技术,搜索技术,单体架构,分布式架构将业务功能进行拆分,部署时费劲,集连失败如何解决
|
8月前
|
监控 Devops API
构建高效微服务架构:API网关的作用与实践构建高效稳定的云基础设施:DevOps与容器化技术融合实践
【5月更文挑战第28天】 在当今的软件开发领域,微服务架构因其灵活性、可扩展性和容错能力而备受推崇。本文将深入探讨API网关在构建微服务系统中的关键角色,包括它如何促进系统的高可用性、安全性和性能监控。我们将剖析API网关的核心组件,并借助具体实例展示如何实现一个高效的API网关来服务于复杂的微服务环境。 【5月更文挑战第28天】 随着企业数字化转型的深入,传统的IT运维模式已难以满足快速迭代和持续交付的需求。本文聚焦于如何通过融合DevOps理念与容器化技术来构建一个高效、稳定且可扩展的云基础设施。我们将探讨持续集成/持续部署(CI/CD)流程的优化、基于微服务架构的容器化部署以及自动化监
|
8月前
|
运维 监控 Devops
构建高效稳定的云基础设施:DevOps与自动化运维的融合构建高效微服务架构的最佳实践
【5月更文挑战第28天】 在数字化转型的浪潮中,企业对于云基础设施的依赖日益增加。为了应对不断变化的市场需求和提供不间断的服务,传统的IT运维模式已不再适应现代业务的发展。本文将探讨如何通过结合DevOps理念和自动化工具,实现云基础设施的高效稳定运营。我们将分析自动化运维在提升效率、降低成本以及增强系统稳定性方面的关键作用,并展示实践案例以验证其效果。
|
运维 Kubernetes Devops
基于k8s的devOps自动化运维平台架构设计(中英文版本)
基于k8s的devOps自动化运维平台架构设计(中英文版本)
|
运维 Cloud Native 安全
带你读《云原生架构白皮书2022新版》——DevOps(上)
带你读《云原生架构白皮书2022新版》——DevOps(上)
559 11
|
存储 运维 Kubernetes
带你读《云原生架构白皮书2022新版》——DevOps(下)
带你读《云原生架构白皮书2022新版》——DevOps(下)
275 10
|
弹性计算 运维 Kubernetes
带你读《云原生架构白皮书2022新版》——运维提效 60%,视野数科 SAE+Jenkins 打造云原生 DevOps
带你读《云原生架构白皮书2022新版》——运维提效 60%,视野数科 SAE+Jenkins 打造云原生 DevOps
236 6
|
运维 架构师 Devops
开发者、架构师、技术管理者DevOps技能学习篇
云效为开发者、架构师、项目管理者、技术管理者提供了系列学习资料和视频课程,帮助企业落地scrum、devops和bizdevops。
531 1