传统基础架构应用程序的系统架构师,云计算应用程序的设计确实是相当有挑战性的工作。体现在应用程序架构师首先要了解云计算环境和传统基础架构的差异并且充分利用云计算平台的一些特点来更好的满足用户需求。

对于刚从传统应用架构转到云计算平台的应用架构师,我觉得理解下面四点非常重要:

1.运行环境的感知能力

传统的基础架构或系统平台中的资源一般都是不能动态配置,因此应用程序在设计的时候主要考虑自身的业务逻辑的实现。应用程序本身的监控和管理都是通过其他系统管理软件等来实现。这些传统的应用程序本身对底层平台的运行情况是没有任何感知的。

在云计算环境下,应用程序的运行环境等变得不像传统环境那样可控。要提供一个可靠应用,要充分考虑到底层环境的单个节点出问题的可能性。为了
保证应用程序的可靠运行,应用需要感知底层运行环境的变化,并却根据这些变化作自适应调整,应用能够快速从错误中恢复过来,比如状态的保持,自动化数据备份和恢复等

云计算平台具有可编程的资源分配接口,因此应用程序本身的自动化部署和动态扩展都成为可能。应用可以根据基础架构平台提供的接口来感知应用程序的实际负载情况,调用相应的资源分配接口,启动更多的节点提高负载能力

2.分布式计算

目前云计算平台都是用廉价和标准的计算机硬件构成,在云平台单个计算节点的计算和存储能力相当有限,因此在云计算环境下,设计应用程序一般要考虑使用多个节点,这样在设计的时候要经可能使用并行设计的思想或采用分布计算的方式。例如采用类似MapReduce的 编程模型。使用分布式存储等.

3.松耦合和水平扩展能力

无论是功能上还是性能上云计算对应用的灵活性提出了更高的要求。这就要求应用程序在设计的时候要考虑松耦合的架构。松散耦合的设计在云计算平台可以体现为:

  • 尽量采用SOA的系统架构,让应用的构建和功能上保持灵活性,比如将某些应用功能和数据存储设计成服务单元,通过标准的接口来访问。保持服务本身部署的灵活性
  • 应用服务尽可能的采用无状态设计。这样有利于服务本身的迁移和水平扩展
  • 采用异步消息机制来实现松耦合的架构设计。通过异步消息机制可以使得应用各个模块/服务之间通过事先定义好的接口进行异步通信,相互之间就像一个不透明的黑盒子

4.数据存储方式

在传统的应用设计中,我们一般采用关系型数据库来存储数据。但是在云计算环境下,云计算平台里每个节点本身的计算和存储能力有限,传统的关系数据库一般不支持分布式计算/存储或者支持得不够好。在云计算环境中,传统的关系数据库会面临计算/存储扩展能力的挑战。另外传统关系数据库对非结构化或者半结构化数据的管理效率不高。

NOSQL数据库在对分布式计算、存储和非结构化的支持方面比传统数据库有先天优势,
更能适应云计算环境。

Cloud_panel的更多相关文章

随机推荐

  1. ConnectionReset

    ConnectionReset The connection was reset by the remote peer. http://stackoverflow.com/questions/1434 ...

  2. Linux同步机制(二) - 条件变量,信号量,文件锁,栅栏

    1 条件变量 条件变量是一种同步机制,允许线程挂起,直到共享数据上的某些条件得到满足. 1.1 相关函数 #include <pthread.h>  pthread_cond_t cond ...

  3. delete-node-in-a-bst

    https://leetcode.com/problems/delete-node-in-a-bst/ /** * Definition for a binary tree node. * struc ...

  4. WP7 MD5加密

    WP7不支持MD5加密,在网上找了一个实现MD5加密的算法. //Copyright (c) Microsoft Corporation. All rights reserved. using Sys ...

  5. PHP的模板引擎这点事儿

    什么是模板引擎? 为什么要使用它? 为什么要assign一个变量给模板? https://dbforch.wordpress.com/2010/06/26/the-logic-behind-templ ...

  6. R语言缺失值信息处理

    mean(!is.na(mat))可以计算数据完整度(没有缺失值的) mean(!is.na(mat))>0.9,90%完整可以使用 # 缺失值的位置研究as.vector(attributes ...

  7. 瞎折腾之Mvc WebApi的使用以及跨域问题

    在公司经常会用到调用接口的情况,但是一直是用的webservice,我感觉真是太笨重了.虽然某些人感觉用的很爽.非常爽.比如说:公司在开发的时候需要对接另一组的接口,然后就只能是指定端口和ip到他的电 ...

  8. HDU 2516 (Fabonacci Nim) 取石子游戏

    这道题的结论就是,石子的个数为斐波那契数列某一项的时候,先手必败:否则,先手必胜. 结论很简单,但是证明却不是特别容易.找了好几篇博客,发现不一样的也就两篇,但是这两篇给的证明感觉证得不清不楚的,没看 ...

  9. ubuntu 12.04上安装OpenERP 7的一次记录

    登陆ssh, 先更新系统: sudo apt-get update && sudo apt-get dist-upgrade 接着再为openerp运行创建一个系统用户,用户名就叫op ...

  10. POJ 1422 Air Raid (最小路径覆盖)

    题意 给定一个有向图,在这个图上的某些点上放伞兵,可以使伞兵可以走到图上所有的点.且每个点只被一个伞兵走一次.问至少放多少伞兵. 思路 裸的最小路径覆盖. °最小路径覆盖 [路径覆盖]在一个有向图G( ...