首页
学习
活动
专区
工具
TVP
发布
精选内容/技术社群/优惠产品,尽在小程序
立即前往

ButterCMS架构:完成数百万次调用的关键任务API

在其核心,ButterCMS提供: 一个内容编辑者的仪表盘 一个用于获取内容的JSON API 将ButterCMS集成到本地代码中的SDK ButterCMS 技术栈 ButterCMS是一个单一的Django...Django应用在配备一个Postgres数据库的Heroku上运行。...对于应用服务器,则使用Heroku的监视和自动扩展工具,来确保流量性能不会从峰值上降低(如果 Fastly停机了,需要将所有的请求都直接路由到服务器)。...通过在谷歌云上运行一个服务器和数据库实例作为快速失效备援,来防止极小可能出现的Heroku或者AWS(Heroku运行其上)中断。...总的来说,中断、路由问题和其他断续故障在统计学意义上是不常见的,但是,仍然有可能在一定的环境背景下发生。 为了消除这种固有的不可靠环境,需要帮助客户开发在失效情况下的容错应用。

1.7K60

放弃“免费套餐”,Heroku的遗产又少了一个

Heroku 使这一问题得到了极大的简化,它使开发者集中精力在构建软件上,而非在配置和运行基础设施上。在当今世界,这显然是一种有利条件,但在那时并非如此。...容器:很少有人记得它,但 Heroku 在容器还不流行的时候就已经开始运行了,使用 LXC 作为其 Cedar 栈的核心技术。...Cedar 让 Heroku 成为可以运行一切的平台——用户可以通过 Buildpack 和 Procfile 带来自己的栈,它复杂的内部状态机和路由层使得运行在其上的应用变得非常强大。...即使是最大的数据处理应用也可以部署在 10GB 或 100GB 内存的容器上,一直到最小的一次性云 grep 运行只需要几兆字节。如此快速和简单,以至于不在 Heroku 上运行简直就是疯了。...甚至在 Heroku 的“内核”中,你也可以进行交换,因此你仍然可以使用 Heroku 来构建、编排和监控你的应用,但是它们会在你自己的专用单租户服务器上运行。

5.1K40
  • 您找到你想要的搜索结果了吗?
    是的
    没有找到

    2020年部署Web应用的4种方式

    它是一个自动化的CI/CD软件,在主代理体系结构上工作。那么什么是主/代理呢?嗯,代理只是软件的一种花哨说法,它安装在一台机器上,用于协调[和绑定]不同的构建。...可以使用的其他一些工具是物理服务器,甚至是运行在Kubernetes上的临时容器。 优点: 它是高度可定制的。 它非常灵活,因为它有超过1.5K的插件。...因此,每次更新时都会得到一个新映像,因此除非缓存,否则不会从以前的管道保存任何数据。然而,即使缓存,数据也会在7天后丢失。...因此,当托管在这个平台上时,可以轻松地完成针对多个运行时/数据存储的库测试,而无需承担本地安装它们的负担。 优点: Travis是一个易于设置的平台。向项目中添加一些基本的构建指令,提交代码……瞧!...基本上,大多数幕后的编码工作已经为您完成了,因此您可以直接从git存储库部署代码。 所有关于设置云服务器、web服务器和类似繁琐任务的担忧都不需要您操心。

    2.9K20

    让小型企业提高 20 倍效率的统一技术栈

    代码越简单、抽象程度越低,似乎 Bug 也会越少。 我们尽可能减少库的使用,必要时我们会使用简单而又经过充分测试的库,而且还要能够同时在服务器、移动端和 Web 上运行。...需要理解并学习如何使用和审核的依赖关系也更少。缺点是库的更新会相互阻塞,我们需要在一项任务的单个库上投入大量的精力。 我们尽可能在产品之间共享代码。...每个代码库都有很好的内部测试覆盖,因为我们的内部测试人员只需要测试很少的几个代码库。即使是不好理解的代码路径中的 Bug 也极有可能在内部被发现,原因有两个。...例如,一个使用 iOS 支票存款的团队成员会在 Android 用户发现之前发现因重构而遭到破坏的权限。这是我们在自动化测试基础上做的工作。...技术栈第 2 部分:纯 JavaScript API Node/Hapi:单个服务器运行所有储蓄、支票、贷款、捐款代码。 Heroku:为了尽可能减少 DevOps 耗费的时间。

    1.6K20

    什么是容器、微服务与服务网格?

    等)以及类似于Heroku的工作流程:你可以将代码推送到平台,平台将构建容器镜像,并部署这些容器镜像。...在本地运行时,页面会立即加载,但在dotCloud上运行时,需要几秒钟,因为每个TCP连接(以及随后的SQL请求)都需要几十毫秒才能完成。在这种特定的情况下,使用持久连接起了作用。...逻辑流仍然是客户端-->网格-->服务,但是现在网格在本地运行,而不是在远程节点上运行,因此客户端-->网格连接是本地连接,因此速度非常快(微秒而不是毫秒)。...其中一些服务接受来自其他服务的请求,而其中一些服务是后台工作应用,它们将连接到其他服务,但不能自己接收连接。无论哪种方式,每个服务都需要知道它需要连接到的地址的端点。...现在,当一个后端需要移动到另一台机器上,或按比例放大或缩小,而不是更新它的所有消费者,我们只需要更新所有这些本地代理;我们不再需要重新启动消费者。

    1.4K30

    关于“Python”的核心知识点整理大全62

    有鉴于此,我们可以信心满满,深信项目部署到Heroku后,行为将与它在 本地系统上的完全相同。当你在自己的系统上开发并维护各种项目时,这将是一个巨大的优点。...处,我们使用了函数getcwd(),它获取当前的工作目录(当前运行的文件所在的目录)。...这个if测试确保仅当项目被部署到Heroku时,才运行这个代码 块。这种结构让我们能够将同一个设置文件用于本地开发环境和在线服务器。...这些代码在本地 也适用,因此无需将其放在if代码块内。...注意 gunicorn不能在Windows系统上运行,因此如果你使用的是Windows系统,请跳过这一步。 但这不会影响你将项目部署到Heroku。.

    16610

    容器是未来吗?

    这是老的方式了,Heroku已经死了,不会再有用户使用它了,你现在需要使用Docker,它代表未来? 噢,好明白,那它是什么东东?...好吧,我有点糊涂了,让我梳理一下,有一个东西像虚拟化,称为容器,那么我能在Heroku上用它吗? -是l, Heroku已经支持docker, 但是我告诉你: Heroku已经死了....你可以在CoreOS上运行你的容器. 那那又是什么东东? -它是一个非常酷的主机OS(Host OS),你能在其上使用Docker,甚至你都不需要Docker, 直接使用rkt. Rocket?...-这就是你所有做的,你将你的应用写成一个Dockerfile, 将它们转换成本地image, 然后你能将它推送到任何Docker主机. 嗯,很像Heroku? -不, 不是Heroku....放入一个RESTful API在其上. 这样你的其他服务可以使用这个API, 并优雅地处理失败等事情,把它放入容器,然后持续递交。 OK, 现在我已经有一打没有受管理的服务,怎么办?

    2.7K40

    三周学会小程序第三讲:服务端搭建和免费部署

    代码准备 和上一讲《三周学会小程序第二讲:客户端代码准备和基础功能讲解》一样,我们先克隆小编为大家准备的源码库,然后对源码进行讲解。...我做了一个简单的封装,为了避免写重复的代码,我把头部和底部封装到了 layout.html 在 index.html 和 error.html 直接引用这个布局,替换它的 body。...这样一来你就掌握了项目和本地部署的技能,那么微信小程序需要访问远端的地址才能工作,怎么部署到远端呢?...3,输入如下命令,当然后面的 jiuask 应该是你的名称: heroku git:remote -a jiuask 这个步骤就是在添加一个 Heroku 的 Git 仓库,当你提交代码到 Heroku...这样你就拥有一个自己免费的服务器了,以后怎么部署呢?每次 commit 代码以后,运行 4 步骤的部署就可以更新成功了。

    2K10

    Salesforce大刀阔斧变革开发者体验

    Wegner:在开发Salesforce DX的过程中,我们在持续完善Salesforce环境中通过源代码控制机制对源代码和元数据的运用,借此帮助开发者实现真正意义上源代码驱动的开发方式。...每次提交后该临时应用可自动更新,这样审核者无需猜测代码的具体作用,就可在浏览器中亲自尝试所做变更。PR的合并会破坏审核用应用,在配合PipeLines使用时,可以自动将代码推进至准备阶段。...CLI还可以简化DevOps的Salesforce使用体验。用户可以在构建自动化脚本时使用CLI,通过源代码创建环境,并运行所有测试。...Scratch org使得开发者可以使用本地源代码进行开发并运行全部的测试,更有信心地将代码提交至VCS。...在将更新提交至VCS之后,无论提交的是使用Heroku Pipelines,或使用Jenkins、TeamCity等第三方工具开发的Salesforce解决方案,开发者均可使用标准化的Web钩子发起构建自动化和持续集成

    1.8K30

    开发事半功倍,25款最好用的自动化软件部署工具|附下载地址

    Chef可以管理跨服务器的基础设施,服务器基础结构被视为软件代码,而Chef能进行部署更新、管理测试管理版本等工作,通过将基础设施转变为灵活可读可版本可测试的代码,使用Chef能够管理任意数量的服务器。...主要特点: 无需安装或维护开发人员使用UI或YAML构建Configs快速建立在专用硬件和SSD驱动器上多分支的构建工作人员和社区支持现收现付价格 地址:https://www.appveyor.com...主要特点: 完全自定义的构建环境可定制的自定义仪表板与AWS、Heroku、谷歌云以及其他的集成使用SSH或本地构建进行调试 地址:https://circleci.com/ 11 Travis CI...Codenvy是一个在防火墙后面运行的开发人员工作区,可以将软件部署到数据中心或任何云。团队可以开发可移植Docker运行时的代码。...DeployBot是一个自动化的软件部署应用程序,它将代码从GIT仓库部署到任何地方。部署可以自动或手动触发,在部署过程中,可以使用预定义的或完全自定义的Docker容器在服务器上执行或编译代码。

    10K110

    主流 PaaS 平台架构:谷歌GAE、AEB、Cloud Foundry、Heroku

    2)Version 在 AEB 中,Version 代表一个 Web 应用的特定代码版本,它指向了亚马逊简单的存储服务上的一个对象,一般包含了可部署代码,比如 Java 的 war 包。...在亚马逊云边界的最外端有一个功能强大的DNS 服务器,它会接收用户的域名查询工作,并将后端配置在负载均衡上的正常的服务 IP 返回给用户,在这里它提供了安全可靠的路由功能。...针对部署工作,它定义了一套 REST API,底层基于 Ruby 命令行工具来与版本控制器交互,在这个平台上你可以使用 CVS、Subversion、Git 等各种版本的控制器,而不是仅限其一。...Heroku 打破了日志输出的传统观点,我们一般认为日志是非常重要、不可缺失的,日志以文件的形式存放在本地磁盘中,并且有开头、结尾,重视日志文件中每一行内容在时间排序上的关联性。...Heroku 就为这些后端服务的访问定义了一套 add-ons API,从而实现了代码与某个固定服务的解耦。在 Heroku 上最流行的后端服务是 PostgreSQL 数据库。

    6.5K20

    必备的DevOps工具链大盘点

    SCM 工具示例 Git Git 是一个分布式版本控制系统,用于在软件开发期间跟踪源代码的变更。它是为协调程序员之间的工作而设计的,但它也可用于跟踪文件的变更。...构建 Web、桌面和移动应用程序,并将其部署到云端或本地。 通过管道自动化构建和部署,减少在具体细节上花费的时间,把更多的时间花在创造性的事情上。...它运行在 Unix 家族系统上,可以配置 Unix 家族系统和 Windows。它可以使用自己的声明性语言来描述系统配置。...调度器使用谓词和优先级来定义 Pod 应该运行在哪些节点上。我们可以使用新的调度器策略配置覆盖这些默认值。...Prometheus 服务器的核心原理是抓取——也就是说,调用各个节点暴露出来的指标端点。它定期收集这些指标并将它们存储在本地。 Zipkin Zipkin 是一个分布式跟踪系统。

    2.4K30

    PaaS产品经由容器技术焕发新生

    平台即服务(PaaS)产品,比如Heroku、Red Hat OpenShift和Cloud Foundry,长期地使用容器,或者sub-OS工作量划分——作为表面下的执行单元,因为容器在保持各自工作量分隔时还能顾及细粒度的基础设施共享...尽管仍然还有更新的PaaS产品的用例,但是最近的容器化狂热跟容器如何划分工作量无关,而跟它们如何被大规模的管理有关。...但是“Docker被广泛采用……并且正标准化的放宽市场,使得市场驱动在它之上的附加价值。”...“这有很多代码变化,因此你仍然处于一个阶段——你必须接受和改进有时API破坏性的改变,” Amadeus的Fauser说,“这是我们通常很难从Red Hat之类的伙伴处看到的,因为这些伙伴通常高度关注稳定性...这并非意味着Heroku彻底改变,尽管如此,引入新的container编排架构来建造和运行PaaS比以往更切实可行。

    1.3K50

    ngrok 是什么,我们为什么要使用它?

    在 AWS、Azure、Heroku、阿里云、腾讯云本地 Kubernetes 集群、树莓派甚至笔记本电脑上运行您的应用程序。有了ngrok,一切工作都是一样的。...开发和测试 Webhook测试:在本地机器上运行ngrok,以获取直接在您正在开发的应用程序中接收Webhook的URL。满足快速开发的需求。...本地预览:在没有服务器的时候向客户演示在本地机器上运行的网站,而无需部署到远程服务站点。 移动后端测试:针对正在本地机器上开发的后端测试您的移动应用程序,尤其适合小程序开发的需求场景。...设备上的API:在您的设备上作为服务运行ngrok,为其本地API创建安全URL,使您的云服务能够控制和管理它们。...首先: 这意味着您可以在任何地方运行服务——任何云,如AWS或Azure,任何应用程序平台,如Heroku,本地数据中心,家中的树莓派,甚至在笔记本电脑上。

    1.7K10

    Heroku将12 factor应用迁移到开源。下一步是什么?

    Salesforce 的 Gail Frederick 在《The New Stack Makers》的这一集中表示,Heroku 迁移该项目的原因是为了获得更新帮助,该项目是一种构建可移植、弹性应用程序的方法...该公司创建了这种方法来帮助开发人员在本地开发应用程序,“将其跨云提供商进行可移植打包,然后使其能够弹性运行,并使其成为令人愉悦的构建体验,”Heroku 的首席技术官在《The New Stack Makers...Heroku 创始人于 2011 年撰写了 12 factor,13 年后,虽然这些要素启发了一代云开发人员,但也有一些方面已经过时,而这些正是我们在开源发布后希望更新的方面,”她在本集(在 KubeCon...Heroku 记录的“12 factor”是基于该公司观察到的客户在构建应用程序时常犯的错误。但十多年在科技领域是一段很长的时间。Frederick 描述了该方法论中需要更新的一些领域。...“我认为,只有在我们结合了包括边缘、[物联网]、无服务器,甚至包括你不会认为是云原生的重量级分布式系统在内的应用程序开发用例时,我们的工作才足以更新12 factor。”

    5610

    竞赛比完,代码、模型怎么处理?Kaggle大神:别删,这都是宝藏

    更新代码后,在整个存储库上运行 mypy: mypy . 如果 mypy 出现问题,修复它们。 步骤 6:预提交钩子(hook) 一直手动运行 flake8、black 和 mypy 会觉得厌倦。...如果人们看不出该存储库的用途以及它所解决的问题,大家就不会使用它,你所做的所有工作都不会对他人产生积极影响。...将所有重要代码都放进这个文件夹,但不要把 helper 图像、Readme、notebook 或 test 放进去。手动操作这一步骤并更新所有的 import 会很累。...> 如果你在 PyPI 上查看包的页面,你就会看到它使用你存储库中的 Readme 文件来陈述项目。...步骤 3:添加 requirements.txt 文件 步骤 4:在 herokuapp 上注册 步骤 5:执行以下代码: heroku login heroku create git push heroku

    59220

    竞赛比完,代码、模型怎么处理?Kaggle大神:别删,这都是宝藏

    更新代码后,在整个存储库上运行 mypy: mypy . 如果 mypy 出现问题,修复它们。 步骤 6:预提交钩子(hook) 一直手动运行 flake8、black 和 mypy 会觉得厌倦。...如果人们看不出该存储库的用途以及它所解决的问题,大家就不会使用它,你所做的所有工作都不会对他人产生积极影响。...将所有重要代码都放进这个文件夹,但不要把 helper 图像、Readme、notebook 或 test 放进去。手动操作这一步骤并更新所有的 import 会很累。...> 如果你在 PyPI 上查看包的页面,你就会看到它使用你存储库中的 Readme 文件来陈述项目。...步骤 3:添加 requirements.txt 文件 步骤 4:在 herokuapp 上注册 步骤 5:执行以下代码: heroku login heroku create git push heroku

    54550

    Salesforce的PaaS平台Heroku简介

    2011年9月15日,Heroku和Facebook(脸谱)介绍Heroku上运营的脸谱网。...该平台采用了Ruby on Rails 的网络开发框架,客户只需在本地计算机设置一个Ruby Gem(Ruby语言的程序包管理器)就可在Heroku云中部署和运行应用程序。...客户可以直接从浏览器中访问和编辑自己的代码,也可以添加相关语言的插件。Heroku平台在程序开发上可让你得到与本地计算机相同,甚至更好的体验。 Heroku是Rails应用最简单的部署平台。...只是简单的把代码放进去,然后启动、运行,没人会做不到这些。Heroku会处理一切,从版本控制到 自动伸缩的协作(基于Amazon的EC2之上)。...Matz是一位专业的程序员,他在日本的开源公司 Netlab工作。他也是日本最为著名的开放源码传播者之一。

    7.3K20

    在Heroku中部署一个Sinatra应用程序

    首先你需要在Heroku上有一个账户(注册是免费的) 如果你对你的程序在本地环境的运行情况感到满意(即你已经完成了应用程序的开发,并且其在本地运行没有问题),接下来要做的是确保你有以下文件: Gemfile...我们只是需要一个文件来配置我们应用程序的运行方式: 在config.ru中你需要以下代码: require '....通过下面的操作将你的密钥连接到Heroku,这会用于与你在Heroku的计算机之间进行安全通信: heroku keys:add 系统会要求你添加你所创建的Heroku帐户的凭据。...创建Heroku应用程序 回到命令行上输入以下指令: heroku create nameofapp 在此我们用nameofapp来指代你应用的名字,那么Heroku会为你的应用将创建这样的网址:nameofapp.herokuapp.com...(请你记住这一点) 然后,假设你已经完成了最新的更新,你可以这样做来使用git推送: git push heroku master 然后Heroku会收到git推送和压缩文件,并安装所需的Ruby gem

    2.6K60
    领券