`
zeallf
  • 浏览: 32066 次
  • 性别: Icon_minigender_1
  • 来自: 上海
社区版块
存档分类
最新评论

学习 HeroKu 的架构设计(转)

 
阅读更多
作者: Fenng | 可以转载, 但必须以超链接形式标明文章原始出处和作者信息及版权声明
网址: http://www.dbanotes.net/arch/heroku_architecture.html

这几天给我印象比较深的是 HeroKu ,提供 Ruby 快速部署环境并提供托管能力,他们的架构图做得十分漂亮,一幅图胜过千言万语,要是对 Web 架构感兴趣,都别问架构师了,看看 HeroKu 的架构估计就明白个差不多了
概览图
好的架构图是画出来的,好的架构未必是设计出来的,最后架构好不好,还要看持续的改进能力。



HTTP 反向代理
使用 Nginx , 这一层只进行 HTTP-level 的处理。Nginx 现在是不二选择。



HTTP Cache
对于静态内容,使用 Varnish 进行缓存。如果你在 Squid 和 Varnish 之间作选择,这里已经投了一票。



路由网(Routing Mesh)
用 Erlang 实现的架构组件,路由寻址,用以提升可用性和扩展性。



动态网格(Dyno Grid)
用户部署的代码运行在这里,可以简单看成是应用服务器集群环境,只是粒度更小一点而已。

对于 Dyno Grid 的进一步信息:

服务器操作系统是 Debian ;Ruby VM 是 MRI ,开源,C 写的;App Server 用的 Thin,他们说 Thin 比 Mongrel 更精炼;Rack,应用服务器接口;Rack 中间件,可选组件;框架,任何 Rack 兼容的都成;最后是客户托管的代码。
数据库
PostgreSQL,也可以采用远程数据库。



Memory Cache
Memcached ,居家旅行架构必备。

这几张图看下来,多少算是对 Ruby 环境有了一些感性认识。可以进一步查看 HeroKu 提供的文档,包含了一些代码实现上的准则。
部署是基于 Git 的。不知道大家有没有注意到 Git 在最近一年来的爆发? 超过 SVN 或许不是不可能的。
国内热炒"云计算"的,跟人家学学吧,与其整天帮着客户开发定制软件,还不如给客户提供一些弹性应用托管环境,起码看起来靠谱一些。
HeroKu ,不读 Hero-Ku, 读作 Her-oh-koo, 挺有趣
分享到:
评论

相关推荐

    python162基于深度学习的聊天机器人设计.rar

    【Python基于深度学习的聊天机器人设计】 在当前的AI领域,聊天机器人已经成为了热门话题,尤其是在毕业设计和课程设计中,它们提供了丰富的实践机会。本项目"python162基于深度学习的聊天机器人设计"是一个完整的...

    Python-honeyku基于Heroku的web蜜罐可用于创建和监控模拟HTTP端点

    REST(Representational State Transfer)是一种架构风格,用于设计网络应用程序,尤其是Web服务。RESTful API遵循这一风格,通过HTTP协议提供资源操作,通常包括GET、POST、PUT、DELETE等方法。 Heroku是云平台即...

    Bot:机器人使用heroku,247!

    4. **聊天机器人**:由于提及“博特”,应用可能是设计用来与用户进行交互的聊天机器人,可能利用了NLP(自然语言处理)和ML(机器学习)库,如Dialogflow或wit.ai,来理解和回应用户的输入。 5. **GitHub工作流程*...

    三十种IT技术架构师知识汇总图-3.rar

    这个压缩包中的文件详细介绍了这些领域的知识框架,通过学习,架构师可以系统地掌握各技术的全貌,更好地应对各种项目挑战。同时,了解并掌握这些技术,对于提升个人技能、拓宽职业发展道路至关重要。

    PlantCatalogueDemo:使用PostgreSQL,Express,React,NodeJS和Heroku的RESTful API演示[Heroku上托管的PERN堆栈]

    5. Heroku部署:了解Heroku的工作原理,学习如何使用git进行版本控制和Heroku命令行工具进行部署。 五、挑战与优化 1. 性能优化:使用缓存策略减少不必要的数据库查询,优化数据库索引提升查询速度。 2. 安全性考虑...

    flask-heroku-test

    **Flask-Heroku-Test** 是一个基于Python的项目示例,展示了如何将Flask应用部署到Heroku云平台上。...通过学习这个例子,可以提升在实际项目中的部署技能,更好地理解Web应用生命周期管理、云平台操作以及微服务架构。

    传智播客毕业设计资料和代码.rar

    1. **Web应用架构**:网上书城系统可能基于MVC(Model-View-Controller)架构,这是一种广泛应用于Web开发的设计模式,能够有效地分离业务逻辑、数据模型和用户界面。 2. **前端技术**:项目原型可能涉及到HTML、...

    Heroku-Spring-Gradle_Example:这是一个Heroku Spring Gradle示例

    Heroku-Spring-Gradle_Example 是一个专为在Heroku平台上部署Spring Boot应用而设计的项目模板。这个示例项目展示了如何利用Gradle构建工具将一个Java Spring应用程序有效地部署到Heroku云服务上。首先,我们需要...

    heroku-graph-csv

    "heroku-graph-csv"项目看起来是一个在Heroku平台上运行的应用程序,用于处理和展示CSV(逗号分隔值)数据。CSV文件是一种常见的数据...同时,对于那些想要学习如何在云端部署应用的人来说,Heroku是一个很好的起点。

    rails-sites:Rails和Heroku网站

    4. **应用开发**:根据需求,使用Rails的MVC架构设计和编写业务逻辑、视图和路由。 5. **添加Gemfile依赖**:可能需要添加额外的gem,如`pg`以支持Heroku上的PostgreSQL,`rails_12factor`帮助Heroku处理生产环境...

    毕业设计笔记系统后端.zip

    它不仅适用于实际的毕业设计和课程设计项目,也可以作为学习编程和理解Web应用架构的实践材料。 在这样一个笔记系统后端的开发中,我们可能会涉及以下关键知识点: 1. **Web框架**:通常,这类项目会使用诸如...

    e-commerce-heroku

    【标题】"e-commerce-heroku...总的来说,"e-commerce-heroku"项目是一个综合性的学习资源,涵盖了从Web开发基础到部署实战的多个方面,对于想要提升自己在电子商务领域和Heroku平台开发技能的开发者来说,非常有价值。

    Sladket:准备在Heroku上部署的php应用程序

    Sladket可能采用了MVC(Model-View-Controller)架构模式,这是一种常见的Web应用程序设计模式,用于分离业务逻辑、数据处理和用户界面。理解这一架构对于维护和扩展代码至关重要。 3. **Heroku部署**: - **...

    云计算技术与架构前瞻

    PaaS层则为企业提供了开发、测试和部署应用程序的平台,如Google Cloud Platform和Salesforce的Heroku。至于SaaS,诸如办公自动化、CRM、ERP等各类软件服务已经成为许多企业的首选。 在技术与架构发展趋势方面,...

    毕业设计:基于Python的博客系统的设计与实现.zip

    学生通常在毕业设计中需要完成一个实际项目,展示他们在学习期间积累的理论知识和实践技能。源码的提供有助于其他学习者理解和研究如何构建类似的应用,或者作为自己的项目起点。 【标签】:“毕业设计 python 系统...

    heroku-flask

    总结起来,“heroku-flask”项目涵盖了Python Flask应用开发和部署到Heroku的全过程,这对于学习Web开发和云服务的初学者来说是一个宝贵的实践案例。通过这个项目,你可以了解到从编写基本的Flask应用,到管理依赖,...

    djangoku-ebook:在heroku上部署Django项目的电子书指南

    在本指南中,读者将学习到如何利用Django的强大功能来构建复杂的Web应用,并了解如何将这些应用部署到Heroku这个流行的云平台。 Heroku是一个基于云的平台即服务(PaaS),允许开发者轻松地托管和管理他们的应用...

    基于爬虫的减速器数据系统设计,毕业设计项目的后端部分,使用python爬虫、Django框架.zip

    该项目是一个基于爬虫技术的...以上就是关于“基于爬虫的减速器数据系统设计”项目的关键知识点,它综合运用了Python爬虫、Web开发、数据处理、图像处理和推荐算法等多个领域的技术,对于学习和提升IT技能非常有益。

    ML-model-deployment-trail:通过在heroku上部署来测试Web API

    Web API(Web Application Programming Interface)是一种允许不同应用之间交换数据和服务的方式,通常以RESTful架构设计。在机器学习领域,Web API经常用于提供模型预测服务,使得用户无需直接访问或理解复杂的模型...

    基于JavaScript MySQL实现船舶和船员信息管理系统【优质毕业设计、课程设计项目】.zip

    项目可能还包括了详细的文档,解释了系统的架构设计、功能模块、数据库设计以及实现细节,这对于理解和维护项目至关重要。同时,为了确保系统能完美运行,可能还提供了测试用例和调试方法。 总的来说,这个项目涵盖...

Global site tag (gtag.js) - Google Analytics