2011/11/23:Heroku推出DBaaS数据库即服务 Heroku Postgres供使用 SQL 数据库的开发人员使用....业内人士有给出了更多的答案: 相对于 500 强,中小企业的在线应用更适合 Rails 。他们的预算,时间,团队都更受限制。而 Rails 很适合快速开发,反复迭代。在小圈子的密集交往中赢得倾慕?...更是她的拿手好戏。 如果 Heroku 对 Rails 在企业中的境遇心有不甘的话,携手 Salesforce 再合适不过了。 1 Salesforce 拥有大量已经接受云应用的中小企业客户。...该平台采用了Ruby on Rails 的网络开发框架,客户只需在本地计算机设置一个Ruby Gem(Ruby语言的程序包管理器)就可在Heroku云中部署和运行应用程序。...客户可以直接从浏览器中访问和编辑自己的代码,也可以添加相关语言的插件。Heroku平台在程序开发上可让你得到与本地计算机相同,甚至更好的体验。 Heroku是Rails应用最简单的部署平台。
当我在Heroku上部署了一个小的生产应用时,我第一次克服了对JVM的“恐惧”。这款应用每天只需要完成一项任务。...快进到2016年 我在2016年11月尝试从头开始构建Rails应用。这是我几个月来第一次在我的机器上尝试Ruby编程。...对于Node和Ruby,你还需要在系统上使用一个C编译器,光这个编译器就已经是数百兆字节。更糟糕的是,生产环境中你可能还得需要一个编译器!...不需要将应用程序部署到大型应用程序服务器中,你可以很容易地在JAR文件中打包一个性能良好的HTTP服务器。Node的人会这样做,Ruby的人会这么做,但不知何故,JAR文件无法独立于自己的工作?...我敢肯定,macOS的内存压缩肯定提供了不少帮助,因为这些JVM进程中的大部分都应该将所有相同的字节加载到内存中。 ? ? 但是,如果你在10个月前告诉我我将会这么做,我就会嘲笑你。
当然,你也会收获一些实践知识,那就是如何通过部署 Ansible 和 Docker 来为 Rails 应用搭建一个完整的服务器环境。 也许有人会问:你怎么不去用 Heroku?...:2.8 Ansible 会查看这个文件,并且通知 Docker 加载正确的镜像,然后在容器中启动。...我的应用包括一个 Dockerfile,它详细指定了 Ruby Docker 镜像的信息,这里面的步骤能够保证把正确的 Ruby 版本加载到镜像中。...这个例子中的 Ruby Docker 镜像会加载 PATH 配置,这个配置能确保镜像加载正确的 Ruby 版本。 接下来,删除 git 历史,Docker 容器不需要它们。...Docker 容器内运行 Rails 应用 没有本地 Docker 镜像,从零开始部署一个中级规模的 Rails 应用大概需要100个 gems,进行100次整体测试,在使用2个核心实例和2GB内存的情况下
虽然有些 Ruby 项目不使用 Rails,但大部分生产中运行的 Ruby 代码都是基于 Rails 开发的。...我个人主要使用 Ruby 编写代码,但很少涉及 Rails(因为我不太喜欢它),不过我是个例外。在 Ruby 开发中,几乎总是采用 “用 Rails 进行 Web 开发” 的方式。...然而,这也导致在 Rails 中性能成为一个问题,甚至比在 Ruby 中更加突出。 因此,“堆栈” 指的是 “使用数据库的 Ruby on Rails”。...[5] 具有讽刺意味的是,在这种非 http、非 rails 的环境中,性能问题变得不那么明确了,然而在这些情况下,人们通常会因为 ruby 的性能问题而将其作为选项。...这也是 Ruby 很少在 Rails(和 / 或 Web)之外使用的原因之一。 [7] 令人惊讶的是,从内存中的 SQLite 中查找比从数据库中查找要慢。
构建复杂的 Rails 应用 Strikingly 服务端代码主要是基于 Ruby on Rails 开发的。...我们除了生产环境之外,还有多个沙盒环境供线上测试使用。为了保证测试的有效性,这些沙盒环境都要做到尽量跟生产环境一致。...对于一个运维工程师来说,手动创建完成并测试通过一个沙盒环境往往需要2~3天的时间,并且无法完全保证这个沙盒环境和生产环境的一致性。...再次,生产环境和沙盒环境的当前状态非常不透明,即使使用文档记录了环境创建的操作步骤和当前的状态,也很难保证文档和环境之间一直保持同步。...这套工具帮助我们实现了两个重要的目标: 任何一个工程师都能够简单地使用这套工具来部署/回滚,而不需要了解任何底层的实现细节 可以高效地复制一套新的生产/沙盒环境而不需要太多的手动操作 第二点在我们准备在
本教程将帮助您部署Ruby 在 Rails应用程序中的生产环境,使用PostgreSQL作为数据库,在Ubuntu 14.04上使用Unicorn和Nginx。...随意替换突出显示的“appname”与其他东西: rails new appname -d postgresql 然后切换到应用程序目录: cd appname 我们花一点时间来创建将会在Rails应用程序的生产环境使用的...安装rbenv-vars插件 在部署生产Rails应用程序之前,应使用环境变量设置生产密钥和数据库密码。...管理环境变量的一种简单方法是使用rbenv-vars插件,我们可以使用它来在运行时将密码和机密加载到我们的应用程序中。...您已使用Nginx和Unicorn部署了Ruby在Rails应用程序的生产环境。 如果您希望改进生产Rails应用程序部署,您应该查看我们的如何使用Capistrano自动部署的教程系列。
和操作系统之间尽可能的划清界限,在各个系统中提供最大的可移植性。 适合部署在现代的云计算平台,从而在服务器和系统管理方面节省资源。 将开发环境和生产环境的差异降至最低,并使用持续交付实施敏捷开发。...这一做法会统一应用到生产和开发环境。 例如, Ruby 的 Bundler 使用 Gemfile 作为依赖项声明清单,使用 bundle exec 来进行依赖隔离。...配置 在环境中存储配置 通常,应用的 配置 在不同 部署 (预发布、生产环境、开发环境等等)间会有很大差异。...Beanstalkd, Redis 缓存 Ruby/Rails ActiveSupport::Cache Memory, filesystem, Memcached 开发人员有时会觉得在本地环境中使用轻量的后端服务具有很强的吸引力...,而那些更重量级的健壮的后端服务应该使用在生产环境。
本篇文章是使用 Mastodon 搭建个人信息平台的第二篇内容,我将聊聊在容器环境中搭建 Mastodon 后的一些应用调整和问题修复。...这篇文章或许同样是你能够找到的为数不多的关于如何在容器环境中搭建和优化 Mastodon 服务的内容。...Mastodon 开启 ES 全文搜索 加载字体资源报错的问题 在应用控制台中,我们会看到一条刺眼的报错。...但是在使用的过程中,不出意外,会遇到下面两个警告和错误提示,而导致页面无法显示图片。...其中一个问题的解决方案和上文中解决“加载字体资源报错”相同,需要调整 content_security_policy.rb 中的规则来解决问题。
Ruby 虽然仍然是 Engine Yard 和 Heroku 等产品的核心,以及 Discourse、Homebrew 和 Vagrant 等项目背后的语言,但你知道吗?...Redmonk 近日针对 Ruby 的发展做了一些总结,在其最近的排名中,Ruby 位居第八,落后于 JavaScript、Python 和 PHP 等语言,但领先于 C、Swift 和 Go 。...尽管排名不低,但第八名其实是 Ruby 在 redmonk 排名中排名最差的一次。...在文章中,Redmonk 对几种语言在 Stack Overflow 上的提问数量上进行了统计,比如Ruby 与 Python : Ruby 与 Javascript: Ruby、Rails 以及...Node.js: 不难发现,Ruby 的热度在不断下降,好在速度很慢,该语言在未来几年仍然能保持其主流地位。
假设您认为本地的应用程序没有问题了,接下来要做的是确保您有下边这些文件: Gemfile config.ru 我在上面的帖子中描述的Gemfile包含在应用程序中使用的所有Ruby gems的引用: source...所以我将在稍后的帖子中讨论其他知识。像记录生产环境和开发环境的集群。和Heroku不支持Sqlite。 Sinatra是一个构建应用程序的工具,但Heroku不是。...下面您可以在这里学习怎么生成SSH密钥 当您在命令行环境下,您需要将您的密钥添加到Heroku,以便于在您的电脑和Heroku的计算机之间安全地进行通信: heroku keys:add 系统会要求您添加您创建...然后,假设你已经提交了最新的更新,你可以这样做: git push heroku master 你会看到Heroku收到推送请求,压缩文件,安装所需的Ruby gem,然后,没有问题的话,部署你的应用程序...现在你需要做的就是继续开发你的应用程序,提交,然后使用Git推送到Heroku进行部署。
在这篇教程中,我们将介绍如何组装多层部署安装来托管基于Rails的Ruby Web应用程序。对于这种安排,我们将使用在Nginx后台运行的功能强大,灵活且非常成功的Unicorn应用服务器。...这种真实的部署设置与使用单一开发服务器有很大不同,后者设计用于测试目的,因为由于缺乏功能和特性,它们无法在实际网站流量的负载下工作。...准备部署服务器 在本节中,我们将执行以下步骤: 更新操作系统 获取必要的基本部署工具 安装Ruby,Rails和库 安装应用程序(即Unicorn)和HTTP服务器(Nginx) 更新和准备操作系统 运行以下命令以更新...要安装它们,请运行以下命令: yum install -y curl-devel nano sqlite-devel libyaml-devel 设置Ruby环境和Rails 我们将使用Ruby Version...准备Rails应用程序以进行部署 注意:在本节中,我们将使用一个非常简单的Ruby On Rails应用程序作为示例。对于应用程序的实际部署,您应该上传代码库并确保安装所有依赖项(即bundle)。
一种有效的方法是首先关注并修改保留时间,以便在减少存储的同时又不丢失有用的信息 第三点需要注意的是,如果你使用多个环境(例如开发、测试、预生产和生产),那么请确保为监控配置提供标签,以便明确数据来自哪个特定环境...email-payment指标用于计算发送的付款电子邮件的数量 8.2.5 外部模式 如果你不能控制代码库,无法在代码中插入监控或测量内容,或者可能无法更改或更新旧应用程序,那么该怎么办?...应用程序例子:https://github.com/turnbullpress/mwp-rails 首先需要使用基于Ruby的客户端添加对Prometheus的支持(https://github.com...以加载metrics库,有几种方法可以做到这一点,但我最喜欢使用添加初始化程序的方式 代码清单:为metrics库创建初始化程序 touch config/initializers/lib.rb 然后在程序中添加对...惧器将一些HTTP服务器指标添加到通过Rack中间件收集的端点 代码清单:Rails的/metrics端点 ? 使用指标 现在应用程序已生成指标,我们可以在Prometheus中使用它们。
本指南介绍如何在 Ubuntu 14.04 上使用Unicorn和 nginx 在服务器上部署Rails应用程序。.../configure make sudo make install 安装并创建 Rails 应用程序 使用gem( Ruby 的包管理框架)在服务器上安装Rails : sudo gem install...shared/log 注意 请注意,我们仍然在 Rails 应用程序目录中。.../unicorn.rb -E development -D 要在生产环境中启动 Unicorn: sudo unicorn -c config/unicorn.rb -E production -D 注意...虽然提供这些是希望它们有用,但请注意,我们无法保证外部托管材料的准确性或及时性。 Ruby on Rails
rvm是一个命令行工具,可以提供一个便捷的多版本ruby环境的管理和切换。...rvm list 卸载一个已安装版本 rvm remove 1.9.2 gemset的使用 rvm不仅可以提供一个多ruby版本共存的环境,...比如你有两个项目,一个是rails 2.3 一个是 rails 3. gemset可以帮你便捷的建立两套gem开发环境,并且方便的切换。...在这个文件里可以很简单的加一个命令: rvm use 1.9.3@rails313 然后无论你当前ruby设置是什么,cd到这个项目的时候,rvm会帮你加载 ruby 1.9.3...Ruby中的遍历指定目录的文件方法 http://www.linuxidc.com/Linux/2015-01/111525.htm Ubuntu下搭建Ruby On Rails http:
为了安全起见我一般习惯不使用密码登录服务器而是使用 SSH 的方式。所以第一步就是配置好服务器 SSH 证书并下载私钥并将其发到 .ssh 文件夹下,并修改私钥权限以防权限太大而无法登录。...软件环境配置 首先需要安装的就是 Ruby、Rails ,过程并没有太多的难度,具体说明可以参考 RubyChina。...另外需要通过配置生产环境的 secret_key_base,命令如下: $ RAILS_ENV=production rake secret 然后将生成的随机字符串拷贝到 config/secrets.yml...中,当然你也可以将其作为 Shell 的环境变量。...重启Nginx使修改生效: $ sudo service nginx restart 现在你的应用的生产环境已经可以通过你的服务器的公共IP地址或者FQDN访问了。
本教程将帮助您部署Ruby on Rails应用程序的生产环境,使用PostgreSQL作为数据库,在Ubuntu 14.04上使用Puma和Nginx。...安装rbenv-vars插件 在部署生产Rails应用程序之前,应使用环境变量设置生产密钥和数据库密码。...管理环境变量的一种简单方法是使用rbenv-vars插件,我们可以使用它来在运行时将密码和机密加载到我们的应用程序中。...restart puma-manager 现在你的Rails应用程序的生产环境在Puma下运行,它正在监听shared/sockets/puma.sock套接字。...您已使用Nginx和Puma部署了Ruby on Rails应用程序的生产环境。 更多Ubuntu教程请前往腾讯云+社区学习更多知识。
首先你需要在Heroku上有一个账户(注册是免费的) 如果你对你的程序在本地环境的运行情况感到满意(即你已经完成了应用程序的开发,并且其在本地运行没有问题),接下来要做的是确保你有以下文件: Gemfile...config.ru 其中Gemfile包含对应用程序中使用的所有Ruby gem的引用: gem 'sinatra' gem 'rdiscount' gem 'data_mapper' gem 'dm-migrations...我将在之后的帖子中讨论这一部分。请留意生产和开发的环境,Heroku不支持Sqlite。...我们只是需要一个文件来配置我们应用程序的运行方式: 在config.ru中你需要以下代码: require '....(请你记住这一点) 然后,假设你已经完成了最新的更新,你可以这样做来使用git推送: git push heroku master 然后Heroku会收到git推送和压缩文件,并安装所需的Ruby gem
Docker镜像和容器为操作系统提供了保证,使得开发环境和生产环境可以有效地保持一致。 这篇文章简单地介绍了Docker是怎样满足“十二要素应用”的核心要点的。...配置—在环境中储存配置 Docker容器非常依赖Linux的环境变量进行配置。 docker-compose.yml有一个环境变量的哈希表,你可以通过它显示的定义容器的环境变量。...‘docker run myapp CMD’可以在与你的网络进程一致的环境中运行任意命令。...foreman让所有工具在本地同时运行起来,以及一个独立的基于Linux的构建服务负责将应用打包到生产环境。...一个简单的“dicker-compose up”命令可以提供一个完整的Linux开发环境,并且能够轻易地将“十二要素应用”移植到生产机器。
Cloud Foundry Cloud Foundry 是由 VMware 贡献的一个开源 PaaS 项目,它是一个基于Ruby on Rails 的由多个相对独立的子系统通过消息机制组成的分布式系统...,支持多种框架、语言、运行时环境、云平台及应用服务,使开发人员能够在几秒内进行应用程序的部署和扩展。...它是一个开源项目,没有专门的公有云环境可供使用,不像 GAE、AWS 的 PaaS 只需要关注应用代码, Cloud Foundry 需要企业的 IT 人员在自己的 IDC 或公有 IaaS 上构建一个私有...Heroku 作为最初的云平台之一,支持 Ruby、Java、Node.js、Scala、Clojure、Python 等多种编程语言。...Heroku 打破了日志输出的传统观点,我们一般认为日志是非常重要、不可缺失的,日志以文件的形式存放在本地磁盘中,并且有开头、结尾,重视日志文件中每一行内容在时间排序上的关联性。
---- 本文只针对在 Ubuntu 环境下的开发进行设置,因为 Discourse 是基于 Ruby 开发的,Ruby 的开发环境在 Ubuntu 下设置最为简便,所以 Discourse 的生产环境运行也是是官方建议在...本文章假设你还没有在 Ubuntu 环境中安装 Ruby/Rails/Postgres/Redis 环境,让我们开始开发环境的配置吧!...测试环境 有关在 Ubuntu 低于 20.04版本上安装 Discourse 测试环境 根据我们进行测试的经验来看,Ubuntu 22 的版本中可能有无法编译和包找不到的情况,我们还只在 20.04...安装 Discourse 依赖 作为一般的用户,可以在控制台中运行下面的命令: this script 。上面的命令将会帮助你在本地的开发环境中快速设置 Rails。...上图显示的是在 Ubuntu 中安装的界面,整个软件安装的过程还是比较耗时的,可能需要5 分钟以上,与你使用的系统有关。
领取专属 10元无门槛券
手把手带您无忧上云