Cloud_panel
传统基础架构应用程序的系统架构师,云计算应用程序的设计确实是相当有挑战性的工作。体现在应用程序架构师首先要了解云计算环境和传统基础架构的差异并且充分利用云计算平台的一些特点来更好的满足用户需求。
对于刚从传统应用架构转到云计算平台的应用架构师,我觉得理解下面四点非常重要:
1.运行环境的感知能力
传统的基础架构或系统平台中的资源一般都是不能动态配置,因此应用程序在设计的时候主要考虑自身的业务逻辑的实现。应用程序本身的监控和管理都是通过其他系统管理软件等来实现。这些传统的应用程序本身对底层平台的运行情况是没有任何感知的。
在云计算环境下,应用程序的运行环境等变得不像传统环境那样可控。要提供一个可靠应用,要充分考虑到底层环境的单个节点出问题的可能性。为了
保证应用程序的可靠运行,应用需要感知底层运行环境的变化,并却根据这些变化作自适应调整,应用能够快速从错误中恢复过来,比如状态的保持,自动化数据备份和恢复等
云计算平台具有可编程的资源分配接口,因此应用程序本身的自动化部署和动态扩展都成为可能。应用可以根据基础架构平台提供的接口来感知应用程序的实际负载情况,调用相应的资源分配接口,启动更多的节点提高负载能力
2.分布式计算
目前云计算平台都是用廉价和标准的计算机硬件构成,在云平台单个计算节点的计算和存储能力相当有限,因此在云计算环境下,设计应用程序一般要考虑使用多个节点,这样在设计的时候要经可能使用并行设计的思想或采用分布计算的方式。例如采用类似MapReduce的 编程模型。使用分布式存储等.
3.松耦合和水平扩展能力
无论是功能上还是性能上云计算对应用的灵活性提出了更高的要求。这就要求应用程序在设计的时候要考虑松耦合的架构。松散耦合的设计在云计算平台可以体现为:
- 尽量采用SOA的系统架构,让应用的构建和功能上保持灵活性,比如将某些应用功能和数据存储设计成服务单元,通过标准的接口来访问。保持服务本身部署的灵活性
- 应用服务尽可能的采用无状态设计。这样有利于服务本身的迁移和水平扩展
- 采用异步消息机制来实现松耦合的架构设计。通过异步消息机制可以使得应用各个模块/服务之间通过事先定义好的接口进行异步通信,相互之间就像一个不透明的黑盒子
4.数据存储方式
在传统的应用设计中,我们一般采用关系型数据库来存储数据。但是在云计算环境下,云计算平台里每个节点本身的计算和存储能力有限,传统的关系数据库一般不支持分布式计算/存储或者支持得不够好。在云计算环境中,传统的关系数据库会面临计算/存储扩展能力的挑战。另外传统关系数据库对非结构化或者半结构化数据的管理效率不高。
NOSQL数据库在对分布式计算、存储和非结构化的支持方面比传统数据库有先天优势,
更能适应云计算环境。
Cloud_panel的更多相关文章
随机推荐
- bigtint;int;smallint;tinyint
bigint对应的是Int64 [long] int对应的是Int32 [int] smallint对应的是Int16 [short] tinyint对应的是 [byte ...
- windows 创建SSH Key
1. 安装git,从程序目录打开 "Git Bash" (百度或用这个连接http://pan.baidu.com/s/1dDJCx9n 下载) 2. 键入命令:ssh-keyge ...
- plsql programming 04 条件和顺序控制
1. 条件语句 if salary > 40000 or salary is NULL then give_bonus(employee_id, 500); end if; if conditi ...
- jsp之jstl标签
常用jstl标签 一.<%@ taglib prefix="c" uri="http://java.sun.com/jsp/jstl/core" %> ...
- python练习程序(c100经典例13)
题目: 打印出所有的“水仙花数”,所谓“水仙花数”是指一个三位数,其各位数字立方和等于该数. for i in range(100,1000): a=i/100; b=(i/10)%10; c=i%1 ...
- struts2拦截器配置;拦截器栈;配置默认拦截器;拦截方法的拦截器MethodFilterInterceptor;完成登录验证
struts2.xml 内容 <?xml version="1.0" encoding="UTF-8" ?> <!DOCTYPE struts ...
- 使用过的Linux命令
1 在vim中编辑python,由于tab是8个空格,然而python中是4个,需要替换 :%s/\t/ /g 2 tar tar -czvf topic_dt_poi.0801.0818.ta ...
- activity_main.xml与fragment_main.xml
见: http://blog.sina.com.cn/s/blog_3e28c8a50101fqvw.html http://blog.sina.com.cn/s/blog_3e28c8a50101f ...
- java web项目导入问题
由于工作问题,接触到很多其他人的项目,有时候想要直接跑起来,还是需要一定的耐力. 1:导入不进去,干脆新建项目,一个个复制进去: 2:第三方jar包不要忘记,核实jdk j2ee的版本,编译路径 ...
- Java把长整型时间转成字符串日期
数据库里存放的是timestamp格式,前端取得后是这种:1436255550710长整型时间截转换成"2015-07-07"这种格式呢? import java.io.IOExc ...