公有云环境下应用程序的自动化部署与水平扩展问题

简介:
原创作品,允许转载,转载时请务必以超链接形式标明文章  原始出处 、作者信息和本声明。否则将追究法律责任。 http://dgd2010.blog.51cto.com/1539422/1690176

先介绍了一下公有云计算环境下的一些特点,再根据这些特点探讨一下作为云计算用户而言,如何对应用程序做好自动化部署和水平扩展(弹性计算)的问题。阅读本文需要有一定的云计算知识、开发运维知识。

公有云环境的优势及其特点

公有云为企业用户或个人用户(以下统称为用户)可提供三种服务,基础服务、应用服务和运维服务。

基础服务,为用户节省了服务器、网络、存储等硬件成本以及这些硬件相关的运维成本,通过虚拟化这一核心技术能让用户通过公有云服务平台使用和管理自己硬件资源。

应用服务,为用户提供可用性和可靠性等系统级解决方案,如负载均衡、智能DNS、CDN等了;为用户的软件等应用程序提供应用级解决方案,包括文件共享、对象存储、关系型/非关系型数据库等。

运维服务,为用户提供安全防护、监控报警、虚拟机备份等功能,保证用户数据的机密和安全。

根据这些公有云的特点可以看出,用户将应用程序部署在公有云是非常方便和容易的,既能降低硬件成本和运维成本,又能利用云服务提供商提供的各种应用服务,又对用户的用户屏蔽了服务的具体细节,提升了用户体验和用户满意度(具体不一一详细列出)。

用户要做什么

用户要公有云是为用户本身或者用户的用户来提供服务的。用户有了公有云环境后,作为用户而言,要解决的问题的核心就在于如何在尽可能降低成本的情况下将用户体验和用户满意度最大化。

尽管相对于传统的计算和服务模式而言,公有云环境的是相当廉价的,但当用户的用户达到一定的数量时,几个云主机就不足以承担巨大的用户量,造成用户体验和用户满意度急剧下降,为此用户需要更合理的软件架构和服务提供方式。

关于系统架构,此处特指硬件基础架构已经由所选择的云计算环境所决定,因此暂时不做分析。

软件架构的改良包括提高单个软件或应用程序自身的可用性和可扩展性:能尽可能的选择合适的模型承载更多服务但占用更少的软硬件资源;软件或应用程序支持一定规模的水平扩展,以便于服务更多的用户。

服务提供方式,这个是说更好的部署升级方式,对用户而言产品/服务的变更升级变得更加的无缝和细腻,对开发人员和运维人员来说,要更加快速更加省力的开发、部署方式。

只有以上两者同时具备才能做好、维护好一个产品。

软件架构的改良

由于自身是运维出身,只能从系统架构和运维的角度对软件的开发上提出一些合理化的建议和要求,无非就是上面提到的提高单个软件或应用程序自身的可用性和可扩展性,这是为用户提供服务的基础,也是服务的开始。

自动化(部署、升级、变更等)

一套产品可能是由多个软件或应用程序共同完成的,而这些软件和应用程序可能用不同的语言或者工具开发的,因此对自动化部署的要求可能比较高,比如一套自动化部署工具可能不能满足由不同语言和开发工具开发出的软件和应用程序。针对操作系统的云端自动化部署提出了虚拟机模板(镜像)的概念,而针对应用程序自然也有虚拟化的相关概念,例如最近火热的docker这一应用虚拟化工具。

引入之前总结的IT架构概括,“原先传统模式是物理主机、操作系统和业务应用。当虚拟化、集群和高可用等技术发展较为成熟时,传统模式就形成了三种演变模式。第一种纵向发展(分层解耦合),典型的就是虚拟化的分层技术;第二种横向发展(单层(个体)解耦合),典型的就是无状态,无状态的特性使得横向扩展和动态伸缩变得更加容易,具有无关性(无依赖性)和无差别性(一致性);第三种就是混合发展,即纵向和横向都有,例如典型的例子就是硬件采用Cisco UCS结合VMware vSphere,然后再结合优秀的软件架构,实现高可用的业务系统。”

还是以分层为例,除了虚拟化中所提到的分层技术还应该不能忘记OSI和TCP的分层思想。毫无疑问,应用层是OSI和TCP的顶层,但应用层以上是什么还能有什么就没有一个固定的标准和模型来概括。可以将企业管理人员、最终用户、开发人员和运维人员等都容纳到应用程序之上。为了切近问题的实际,把应用层看作是各种软件和应用程序的基础(如应用层为软件和应用程序提供协议),可以把软件和应用程序拿到应用层之上,而自动化部署以开发运维的角度就可以拿到软件和应用程序之上。

应用的虚拟化可以说将应用层以上的软件和应用程序再虚拟出一层,有了应用虚拟层,所有的应用程序可以认为对自动化部署是无差别的,屏蔽了软件和应用程序的差异,所有的软件和应用程序对部署而言都是透明的,这样仅有一些简单配置的一套自动化部署工具或许就能实现部署、升级和变更的自动化。

TODO: 此处应该有图。

关于Docker

也许还有其他应用虚拟化方案,但docker可以被认为与软件和应用程序靠的最近的虚拟化提供工具。

借助docker可以实现在单一操作系统中同时快速部署多个隔离的应用,尽管这些应用可能需要持有不同的访问端口。

题外话:如果能有什么方法实现docker容器内部与宿主主机进行无端口无socket式的通信方法,也许会更让人觉得不可思议或是更不可理喻吧。

tag:差异化的自动化部署,IT架构总结,公有云计算优势和特点,应用虚拟化,docker自动化部署

--end--

本文出自 “通信,我的最爱” 博客,请务必保留此出处http://dgd2010.blog.51cto.com/1539422/1690176

目录
相关文章
|
1天前
|
数据采集 Java 开发工具
一文2500字从0到1教你搭建Android自动化python+appium环境
一文2500字从0到1教你搭建Android自动化python+appium环境
一文2500字从0到1教你搭建Android自动化python+appium环境
|
2天前
|
敏捷开发 Java 测试技术
探索自动化测试在持续集成环境中的关键作用
【5月更文挑战第16天】 在现代软件开发的快节奏中,持续集成(CI)已成为确保产品质量和加快交付速度的重要实践。本文深入探讨自动化测试作为持续集成不可或缺一环的核心价值,揭示其在保障软件项目高效、稳定推进中的作用。我们将分析自动化测试如何与CI流程协同工作,提升测试覆盖率,降低错误率,并讨论实现策略及面临的挑战。通过案例研究和最佳实践的分享,旨在为读者提供实施高效自动化测试策略的洞见。
|
2天前
|
传感器 安全
BOSHIDA AC/DC电源模块在工业自动化领域的应用探析
BOSHIDA AC/DC电源模块在工业自动化领域的应用探析
BOSHIDA AC/DC电源模块在工业自动化领域的应用探析
|
4天前
|
存储 边缘计算 安全
探索边缘计算在工业自动化中的应用
【5月更文挑战第14天】本文探讨了边缘计算在工业自动化中的应用,包括实时数据分析、预测性维护、协同制造及安全隐私保护。边缘计算通过在数据源头处理信息,实现更快响应和低延迟,促进生产效率提升、稳定性增强及安全性改善。随着技术发展,边缘计算将在工业自动化领域扮演更重要角色,推动制造业数字化转型。
|
4天前
|
传感器 监控 安全
传感器在机械自动化中的应用有哪些?
传感器在机械自动化中的应用有哪些?
19 2
|
4天前
|
JSON 监控 调度
局域网管理软件的自动化任务调度:Python 中的 APScheduler 库的应用
使用 Python 的 APScheduler 库可简化局域网管理中的自动化任务调度。APScheduler 是一个轻量级定时任务调度库,支持多种触发方式如间隔、时间、日期和 Cron 表达式。示例代码展示了如何创建每 10 秒执行一次的定时任务。在局域网管理场景中,可以利用 APScheduler 定期监控设备状态,当设备离线时自动提交数据到网站,提升管理效率。
30 0
|
4天前
|
Java 测试技术 持续交付
自动化测试框架选型与实战:深入探索与应用
【5月更文挑战第8天】本文探讨了自动化测试框架的选型与实战应用,强调了其在软件质量保障中的重要性。选型原则包括考虑项目需求、技术栈、可扩展性和可维护性,以及社区支持和文档。介绍了Selenium、Appium、JUnit和Pytest等常用框架,并概述了实战应用的步骤,包括明确需求、搭建环境、编写测试用例、执行测试、分析结果、维护代码和持续集成。合理选型与实践能提升测试效率,保障项目成功。
|
4天前
|
JSON 前端开发 JavaScript
快照测试在前端自动化测试中的应用
在前端自动化测试中,快照测试常用于检验组件渲染与布局。
|
4天前
|
敏捷开发 监控 jenkins
探索自动化测试在持续集成环境中的关键作用
【5月更文挑战第6天】 在快速迭代的软件开发周期中,持续集成(CI)已经成为确保代码质量和加速交付的重要实践。本文将深入探讨自动化测试作为持续集成不可或缺的组成部分,它如何通过减少人为错误、提高测试覆盖率和加快反馈周期来强化软件开发流程。通过对现代自动化测试工具的评估以及真实案例的分析,我们揭示了自动化测试在提升软件可靠性和效率方面的核心价值,并提出了实现高效自动化测试策略的最佳实践。
|
4天前
|
敏捷开发 数据管理 测试技术
探索自动化测试在持续集成环境中的优化策略
【5月更文挑战第6天】 本文旨在深入剖析自动化测试在持续集成(CI)环境中所面临的挑战,并提出一系列创新的优化策略。通过对现代软件开发过程中自动化测试角色的分析,我们揭示了在快速迭代和部署的背景下,如何通过改进测试框架、选择合适的测试工具、以及实施数据驱动测试等手段来提高测试效率和准确性。文章不仅聚焦于技术层面的解决方案,还探讨了团队协作和流程管理对提升自动化测试效能的重要性。

热门文章

最新文章