云计算设计模式

本文内容同样来自InfoQ这篇文档。关于云计算遵循的原则,与我之前博文里描述的Heroku 12条设计原则类似,引用如下。

过去一些年来,云计算逐渐发展起来,有人开始为云计算的设计总结可复用的模式,目前形成了不同的流派。

所有流派基本都遵循六条原则:

1. 无状态,包括无状态的镜像和无状态的实例。云上的实例是虚拟化的,很容易被搞坏,所以把需要持久化的数据和实例分离,无论是故障迁移、应用扩展还是升级都很容易。

2. 松耦合,包括地缘、平台、时间、数据格式方面的解耦。

3. 弹性。层、服务和组件都应该是有弹性的。

4. 自动化。一方面可适应频繁的扩展,另一方面也是避免人工失误导致的问题。

5. 全面的监控/日志。线上做debug很困难,需要全面依赖详细的日志。

6. Design for failure。容忍错误,快速恢复,将failure当做普通事件处理。

发表在 Common | 标签为 | 3条评论

云开发业务特点

InfoQ上有一篇访谈,其中Adron Hall谈及了云开发的业务特点,个人深表赞同,引用如下:

首先我会定义当听到“云开发人员”这个词时会想到什么。一名云开发人员就是负责这样的代码解决方案的人,解决方案是基于水平扩展的、分布式的、幂等的和异步处 理,同时具有可伸缩、高度可用和弹性存储的特点。

我说在回答这个问题时当然应完全根据这个定义。一名普通的开发人员经常是在某个传统的RDBMS数据库的基础之上构建应用,在此过程中他会使用某个框架或是其它基于此框架之上的工具,并受到垂直扩展的限制。这并不是不好的开发方式,但是对于云或其它任何可水平扩展的环境来说,以这种方式来构建应用或服务效率会非常低。一旦达 到最大物理扩展极限,开发者就完全无能为力了,因为他再也没有办法使用任何合理的方式来提升性能。

继续阅读

发表在 Common | 标签为 | 云开发业务特点已关闭评论

沙漠之行

8月底跟随公司去沙漠徒步三天,回来身心俱累,有一阵未更新内容了。徒步地点是敦煌附近的鸣沙山,三天大概走了50多公里。条件非常艰苦,烈日当头,挥汗如雨,一望无际的荒原,让人产生绝望。在徒步中,要翻越沙山、穿过戈壁、在冰冷的河里来回趟过、在铁丝网下钻来钻去。这种徒步很锻炼人的意志力,在短时的痛苦中会更主动思考长远的人生。

完成徒步后,把敦煌附近的景点走马观花逛了一遍,包括月牙泉、莫高窟、阳关、玉门关、雅丹地貌。敦煌是丝绸之路东段的最后关隘,西出阳关即到茫茫大漠。它在历史上曾经无比辉煌,类似于深圳在当今的地位。而如今只能通过这些古迹,来缅怀它远逝的繁华。

继续阅读

发表在 Common | 标签为 | 沙漠之行已关闭评论

Heroku黑客指南(十二)

日志

(一)日志类型

Heroku有三种主要类型的日志:

  • 应用日志 – 你的应用的标准输出和错误日志
  • 系统日志 – heroku自身的系统日志,包括路由日志、错误页面、dyno重启等
  • API日志 – 包含heroku应用的metadata,例如代码部署、dyno扩容等

(二)查看日志

最简单的查看日志方法是运行heroku logs命令,它展示所有近来的日志。

继续阅读

发表在 Common | 标签为 , | Heroku黑客指南(十二)已关闭评论

Openstack Icehouse安装向导

这是来自社区成员的发帖,提供了Icehouse版本两种安装方式,一种是Flat网络类型,一种是Neutron L3网络类型。读者可自行参考。

I want to share with you our new OpenStack Icehouse Installation Guide!

Unlike our previous guide, in which we considered a multi-node architecture with Neutron, this manual details how to deploy OpenStack using a flat networking model.

The new guide is availabe here:

https://github.com/ChaimaGhribi/Icehouse-Installation-Flat-Networking

Our installation guide for multi-node architecture with Neutron is availabe here:

https://github.com/ChaimaGhribi/OpenStack-Icehouse-Installation/blob/master/OpenStack-Icehouse-Installation.rst

Hope this will be helpful !
Your questions and suggestions are welcome 🙂

发表在 Common | 标签为 , | 一条评论

Heroku黑客指南(十一)

定时任务

(一)Scheduler插件

大部分web应用要求在后台运行定时任务。heroku有个 scheduler 插件来支持定时任务。

安装scheduler插件很简单,执行如下命令:

$ heroku addons:add scheduler:standard

下一步是运行heroku addons:open scheduler命令,它打开web浏览器并导航到scheduler面板,在这里你可以增加新的任务,指定任务的运行时间间歇,甚至手工强制执行任务。当前的scheduler面板看起来如下:

继续阅读

发表在 Common | 标签为 , | Heroku黑客指南(十一)已关闭评论

Heroku黑客指南(十)

memcached缓存

(一)为什么要缓存

用户在访问网站时,取决于你应用的设计,通常会触发至少一次数据库查询。对大部分web应用来说,查询数据库是请求处理过程中最慢的部分。虽然数据库可以非常快,但是复杂的数据查询可能很慢,并且消耗了大量的资源。这导致用户访问网站缓慢。

幸运的是,大部分数据库查询其实不需要发生。假如你花时间分析下应用代码,会发现有多少数据库查询其实返回的是静态数据,或接近于静态的数据?是否可以通过简单的K/V存储系统来避免复杂的关系型数据库查询?这就是缓存的意义所在。

继续阅读

发表在 Common | 标签为 , | Heroku黑客指南(十)已关闭评论

Heroku黑客指南(九)

Postgresql数据库

(九)备份数据库

数据库备份当然很重要,不过执行并不容易。为了简化执行,heroku专门创造了一个数据库备份插件:pgbackups addon。目前所有的pgbackups插件计划都是免费的,也就是说可以免费备份你的数据库。

比如,我们打算使用最高的备份计划:auto-month,它包含如下内容:

  • 每天晚上自动备份DATABASE_URL(默认数据库)
  • 保留7个日备份
  • 保留5个周备份
  • 保留10个年备份

首先安装该插件:

继续阅读

发表在 Common | 标签为 , | Heroku黑客指南(九)已关闭评论

Heroku黑客指南(八)

Postgresql数据库

(五)创建只读从库

创建只读的从库可以实现数据库读写分离。heroku有个试验性的follow功能,使得创建从库很简单。

假如你的应用当前有一个数据库,HEROKU_POSTGRESQL_GREEN,为了创建它的只读从库,可以使用–follow选项来执行创建命令:

$ heroku addons:add heroku-postgresql:ronin --follow HEROKU_POSTGRESQL_GREEN
Adding heroku-postgresql:ronin to myproject... done, v7 ($200/mo)
Attached as HEROKU_POSTGRESQL_AMBER
Follower will become available for read-only queries when up-to-date
Use ‘heroku pg:wait‘ to track status
Use ‘heroku addons:docs heroku-postgresql:ronin‘ to view documentation

新创建的数据库,HEROKU_POSTGRESQL_AMBER,将自动跟它的主库,HEROKU_POSTGRESQL_GREEN,保持数据同步。

使用follow功能,你可以创建任意多的只读从库。

请注意:主从复制关系并不是实时同步的。主库上写入的数据,可能需要几秒才能在从库上同步完成。

继续阅读

发表在 Common | 标签为 , | Heroku黑客指南(八)已关闭评论

Heroku黑客指南(七)

Postgresql数据库

(一)为何使用Heroku Postgresql?

Heroku上运行的最老最流行的插件是Postgresql数据库。在如下场景你可能需要用到它:

  • 你的应用需要一个关系型数据库
  • 你不想关注宕机时间和数据丢失(因为heroku完全管理它们)
  • 你需要随时扩展Postgresql数据库,包括:

– 创建从库
– 创建数据库快照以供测试
– 升级或降级数据库容量,以适应应用规模的变化
– 秒级支付,付你所需

  • 你需要随时备份和恢复数据库到任何地方,不被服务商所限制
  • 你不是heroku的用户,但仍想使用heroku的Postgresql数据库

NB地方在于,Heroku是世界上最大的Postgresql服务提供商,专注于安全和性能。

继续阅读

发表在 Common | 标签为 , | Heroku黑客指南(七)已关闭评论