为何使用Heroku
(一)简单
在所有云解决方案中,Heroku最简单。Heroku基于Unix philosophy原则构建,它意味着你只需要做一件事,并且把它做好。部署应用到Heroku,你只需将你的git repo推送到他们的服务器,应用立刻就部署好并运行了。
需要更多的功能组件,比如数据库、缓存服务器、K/V存储?没问题,你可以自己创建它们并绑定到应用。
因为Heroku够简单、够现代,你无需花费时间处理架构、高可用、部署等问题,把时间花在代码上吧。
(二)历史悠久
Heroku开始于2007年,他们是最早的云平台之一。因为云计算领域很新(亚马逊的AWS也才发起于2006年),这就意味着Heroku在这个行业已称得上元老了。
而且Heroku由Salesforce.com拥有,后者是最大的传统云企业服务公司。所以不用担心Heroku的生存问题,他们不会一夜之间跑路让你的工作努力付诸东流。
(三)流行度
Heroku在程序员间非常流行,你也许已经听说或使用过它。正因为它流行,所以在遇到问题时,更容易得到有经验的程序员帮助。而且相对来说,项目招人也更容易。
(四)多语言支持
Heroku的另一个核心优势是它支持多编程语言和web框架。它至少支持如下程序语言:
- Clojure
- Java
- Python
- Scala
- Javascript
- Ruby
- Go
- PHP
这意味着不管你使用何种技术,甚至在一个项目里使用了多种编程语言,它们的运行平台和部署方式都类似。
(五)稳定
Heroku构建在亚马逊的AWS上,AWS是世界上最大、最老、最广泛使用的云基础服务平台。AWS以速度、可用性和灵活性著称。Heroku在AWS上做了许多抽象工作,让你的业务运行更快更稳定。
(六)最佳实践
Heroku基于12 factor design原则构建,它鼓励软件开发遵循如下最佳实践:
- 应用由版本控制驱动
- 显式声明和隔离依赖
- 在环境变量里存储应用配置
- 把必要的基础设施组件当做可连接的资源
- 隔离构建和运行阶段
- 业务无状态,以便横向扩展到多实例
- 通过端口绑定的方式输出服务
- 并行方式扩展应用
- 可以快速启停服务
- 开发、测试、发布产品应尽可能简单
- 把日志作为事件流看待
- 作为一次性的过程运行管理任务
遵循这些设计原则,你的应用将更可靠、可扩展、更简洁。
Pingback引用通告: 谈谈云环境下的软件开发 | 风河博客