首页
学习
活动
专区
圈层
工具
发布

开源驱动12 factor现代化项目

极具影响力的12 factor应用方法论并未涵盖许多近期的技术创新。Heroku 正在领导一项社区主导的努力,以使其保持最新。...12 factor方法论首次出现时,基于Web的应用程序和Amazon Web Services仍处于起步阶段。从那时起发生了很多变化,但12 factor方法论在很大程度上保持不变。...现在是将其现代化并使其与我们今天使用技术的方式保持一致的时候了,因此12 factor方法论已开源。 在深入探讨12 factor方法论开源的目的和影响之前,我将首先介绍其背后的原则。...如何应用:无状态代码是基于 Web 的应用程序的基本原则。进程唯一应该做的是执行处理逻辑。应避免进程之间的副作用;进程不应影响应用程序的整体状态或应用程序中另一个进程的状态。...Factor 10:开发/生产环境一致性 含义:保持开发、登台和生产环境尽可能相似,以促进持续部署并减少开发和生产之间的差距。

38010

十二要素App方法论

12-Factor为构建如下的SaaS 应用提供了方法论: 使用标准化流程自动配置,从而使新的开发者花费最少的学习成本加入这个项目。 和操作系统之间尽可能的划清界限,在各个系统中提供最大的可移植性。...适合部署在现代的云计算平台,从而在服务器和系统管理方面节省资源。 将开发环境和生产环境的差异降至最低,并使用持续交付实施敏捷开发。 可以在工具、架构和开发流程不发生明显变化的前提下实现扩展。...背景 本文的贡献者参与过数以百计的应用程序的开发和部署,并通过Heroku[1]平台间接见证了数十万应用程序的开发,运作以及扩展的过程。...本文综合了我们关于 SaaS 应用几乎所有的经验和智慧,是开发此类应用的理想实践标准,并特别关注于应用程序如何保持良性成长,开发者之间如何进行有效的代码协作,以及如何避免软件污染[2]。...配置 在环境中存储配置 IV. 后端服务 把后端服务当作附加资源 V. 构建,发布,运行 严格分离构建和运行 VI. 进程 以一个或多个无状态进程运行应用 VII.

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

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

    新的Paas产品已经在容器编排和管理方面留下了好印象,并且吸引了新一代IT操作者的注意。...容器集群抽象层在相对无知的IaaS和传统的非常自以为是的PaaS之间摇晃出一个新的可替代的基础设施自动化,但企业会咬饵上钩吗?...平台即服务(PaaS)产品,比如Heroku、Red Hat OpenShift和Cloud Foundry,长期地使用容器,或者sub-OS工作量划分——作为表面下的执行单元,因为容器在保持各自工作量分隔时还能顾及细粒度的基础设施共享...随着容器朝PaaS在云端之外的产品用途发展时,他们越来越被部署在服务器架构的集群中,该架构被大量编排以使容器的部署以及变坏的容器删除和再生自动化。...他是Swisscom云平台开发的主管,该公司是总部位于伯恩的PaaS供应商,最近开始支持Docker。 “容器技术是什么对我来讲毫无区别,”Hochstrassershuo说。

    1.4K50

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

    Heroku 的工程负责人 Jason Warner 说:“我相信 Heroku 是在 2014 年到 2017 年之间最具革命性的产品,对 Web 开发产业的推动作用非常大。...正是围绕“以应用为中心”这样先进的理念,使得 Heroku 从一开始便拥有了至今看来都非常诱人的功能:用户无需关心应用背后的基础设施是什么,Heroku 负责维护背后的一切。...除此之外,这家公司还做了许多了不起的工作。 外包运维:长期以来,很难在互联网上部署软件。后来,PHP 问世,它的语法简练,部署过程简单,赢得了整个世界,但是也存在许多缺陷。...Cedar 让 Heroku 成为可以运行一切的平台——用户可以通过 Buildpack 和 Procfile 带来自己的栈,它复杂的内部状态机和路由层使得运行在其上的应用变得非常强大。...像平台 API、动态状态机和路由器这样的核心组件,都将作为 Heroku 应用运行,并获得所有 DX 的人体工程学和健壮性。这种充满乐观和雄心勃勃的愿景被称为“自托管的奇点”。

    6.3K50

    HTTP API 设计指南HTTP API 设计指南

    我们的目标是保持一致性,专注业务逻辑同时避免过度设计。我们一直试图找出一种良好的、一致的、显而易见的 API 设计方法,而并不是所谓的"最终/理想模式"。...保持简单的规则让我们能更关注在一些更大的更困难的问题上。 请求和响应将解决一个特定的资源或集合。...强制头信息 Accept 中提供版本号 制定版本并在版本之间平缓过渡对于设计和维护一套API是个巨大的挑战。所以,最好在设计之初就使用一些方法来预防可能会遇到的问题。...这种方式保持了特定资源的统一性。 行为(Actions) 好的末尾不需要为资源指定特殊的行为,但在特殊情况下,为某些资源指定行为却是必要的。...好的响应应该使用如下的状态码: 200: GET请求成功,及DELETE或PATCH同步请求完成,或者PUT同步更新一个已存在的资源 201: POST 同步请求完成,或者PUT同步创建一个新的资源

    2.8K31

    部署一个Sinatra应用程序到Heroku

    Heroku是一个云应用程序平台,专门用于解决服务器管理问题。您只需构建您的应用程序,通过Git将其推送到Heroku,然后放松一下。那么当提到部署一个Sinatra应用程序呢?...我们只需要一个文件来解释我们如何让我们的应用程序运行: 在config.ru你需要以下内容: require '....可以在这里学习如何做到这一点 当在命令行中时,需要将您的密钥连接到Heroku,以便在Heroku的计算机之间进行安全通信: heroku keys:add 系统会要求您添加您创建Heroku帐户的凭据...然后,假设你已经提交了最新的更新,你可以这样做: git push heroku master 你会看到Heroku收到推送,压缩文件,安装所需的Ruby gems,运气好的话,你将可以部署你的应用程序...现在你需要做的就是继续开发你的应用程序,提交和Git推送到Heroku进行部署。

    3.5K60

    2011年04月21日 Go生态洞察:Go在Heroku的实践

    2011年04月21日 Go生态洞察:Go在Heroku的实践 摘要 喵!猫头虎博主又带来了新鲜的技术分享。今天,我们要聊聊Go语言在Heroku平台的实践经历。...从构建分布式系统到简化部署流程,Go语言展现了其在云平台上的强大能力。现在,跟随我的爪步,让我们深入了解Go如何在Heroku上大展身手,以及它为我们未来的项目铺平了道路。...例如,websocket包,一旦我们有了一个工作中的数据存储,就需要一种简单的方法来内省它并可视化活动。利用websocket包,Keith可以在回家的火车上添加web查看器,而无需外部依赖。...表格:Doozer关键技术点总结 特性 说明 Paxos协议 用于在不可靠的网络节点中解决共识问题 Goroutines 为Paxos过程提供并发实现 Channels 用于Goroutines之间的消息传递...的设计哲学相匹配 总结 通过Go语言,我们在Heroku平台上实现了Doozer,不仅解决了分布式系统的关键问题,还享受了Go所带来的并发编程、标准库的便利以及部署的简化。

    23710

    【译】助你成功搭建云应用的12条方法

    你是否想了解应用程序在云端的最佳应用体验?那么,你最好使用12-Factor App,将你的程序部署为Saas(Software-as-a-Service译:软件即服务)的云应用。...这十二条是由Heroku这一个云提供商发布的一个通用的解决方案,大多数他们的客户决定放出这些解决方案作为一种方法论。这十二条特性旨在解决与云中运行的应用程序相关的问题。...构建、发布、运行 — 12-Factor App在构建、发布和运行阶段之间使用严格隔离。每个发行版都应该有唯一的发行ID,发行版应该支持回滚。 进程 — 将应用程序作为一个或多个无状态进程执行。...12-Factor App的进程应该是无状态和无共享的。 端口绑定 — 通过端口绑定提供服务,一个符合这十二条特性的是完全自包含的。 并发性 — 通过过程模型扩展。...开发环境与线上环境等价 - 保持开发,分期,生产尽可能相似,12-Factor App是为了保持持续的开发和生产之间的差距小规模部署。

    88490

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

    下面来修改settings.py,以让我们能够在本地看到错误消息,但部署到服务器后不显示任何 错误消息: settings.py --snip-- # Heroku设置 if os.getcwd...2处显示的状态表明我们在仓库的分支master上工作,当前没有任何未提交的修改。推送到Heroku之前,必须检查状态并看到刚才所说的消息。...在本地查看错误页面 在将项目推送到Heroku之前,如果你要在本地查看错误页面是什么样的,首先需要在本地设 置中设置Debug=False,以禁止显示默认的Django调试页面。...(在settings.py 中用于Heroku部署的部分中,确保DEBUG依然被设置为False)。...为部署这里所做的修改,再次提交,并将项目推送到Heroku。 20.2.18 继续开发 将项目“学习笔记”推送到服务器后,你可能想进一步开发它或开发要部署的其他项目。

    1.2K10

    如何将 github 上的代码一键部署到服务器?

    在 Github 上看到一些不错的仓库,想要贡献代码怎么办? 在 Github 上看到一些有用的网站,想部署到自己的服务器怎么办? 。。。 我想很多人都碰到过这个问题。...如果要贡献代码,之前我的做法通常是将代码克隆到本地,然后在本地的编辑器中修改并提交 pr。...比如 https://heroku.com/deploy?a=1&b=2&c=3 。这种方式对于少量数据是足够的,那如何数据量很大呢?...你可以通过右键在新的「无痕模式」中打开来验证。你会发现右键在新的无痕模式中打开是无法正常部署的。 这有什么用呢? 一键部署意味着部署的门槛更低,不仅是技巧上的,而且是成本上的。...更多资料 heroku-button[1] cloudbase 一键部署[2] [1] heroku-button:https://devcenter.heroku.com/articles/heroku-button

    12.8K31

    容器是未来吗?

    对业界当前的发展道路非常激动,这使得一切都变得简单和更可靠,它代表未来,It’s the future! Cool. 我正在使用Rails建立一个简单的CRUD应用,我准备部署到Heroku....这是老的方式了,Heroku已经死了,不会再有用户使用它了,你现在需要使用Docker,它代表未来? 噢,好明白,那它是什么东东?...你可以在CoreOS上运行你的容器. 那那又是什么东东? -它是一个非常酷的主机OS(Host OS),你能在其上使用Docker,甚至你都不需要Docker, 直接使用rkt. Rocket?...-是的, 你必须有能运行你容器的东西,这样你可以在亚马逊EC2实例中设置,你将CoreOS放于其中,然后运行Docker后台, 然后你就能部署Docker image到其中了....这(部署)属于容器哪个部分? -这就是你所有做的,你将你的应用写成一个Dockerfile, 将它们转换成本地image, 然后你能将它推送到任何Docker主机. 嗯,很像Heroku?

    3.3K40

    助你成功搭建云应用的12条方法

    你是否想了解应用程序在云端的最佳应用体验?那么,你最好使用12-Factor App,将你的程序部署为Saas(Software-as-a-Service译:软件即服务)的云应用。...这十二条是由Heroku这一个云提供商发布的一个通用的解决方案,大多数他们的客户决定放出这些解决方案作为一种方法论。这十二条特性旨在解决与云中运行的应用程序相关的问题。...构建、发布、运行 — 12-Factor App在构建、发布和运行阶段之间使用严格隔离。每个发行版都应该有唯一的发行ID,发行版应该支持回滚。 进程 — 将应用程序作为一个或多个无状态进程执行。...12-Factor App的进程应该是无状态和无共享的。 端口绑定 — 通过端口绑定提供服务,一个符合这十二条特性的是完全自包含的。 并发性 — 通过过程模型扩展。...开发环境与线上环境等价 - 保持开发,分期,生产尽可能相似,12-Factor App是为了保持持续的开发和生产之间的差距小规模部署。

    1.1K100

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

    Wade Wegner:Salesforce DX为Salesforce应用在整个生命周期内的开发、部署和升级定义了一套全新的方法,将Force.com和Heroku开发者体验中的精华汇聚一处,可实现源代码驱动的代码开发...您能否介绍一下这个服务,以及该服务在Salesforce内部和外部的使用方法?...每个部署可在Heroku Dashboard中应用的Activity选项卡下看到当前发布和上一次提交之间的差异,这样开发者就无需猜测应用中到底包含了哪些代码。...Heroku Flow已经可以与Jenkins等第三方测试工具集成,但Heroku CI提供了一种全新的备选方案,可补充或取代对代码运行自动化测试的主要方法。...应用程序从自举到最终部署需要经历哪些步骤,用到哪些技术? Wegner:设计Salesforce DX的过程中,我们的基本原则之一在于让团队能够灵活定义最适合自己的方法。

    2.1K30

    聊聊规模化容器

    其中包括无状态网络应用和有状态数据服务,如 Cassandra 和 Kafka。我们从用 Chef 管理的虚拟机中运行的应用程序迁移过来,因此这一过渡要求对开发流程进行很多更改。...在主要应用中,我们提取了一小部分,并通过更适合的技术栈快速启动新服务。这样就可以快速迭代和实验。举例来说,我们可以用 Python 中的神经网络无缝替换 R 中的贝叶斯方法训练的模型。...布莱恩·希克森:当构建在主分支中通过时,我们使用 Heroku 不断地部署应用程序。...为了尝试新的方法,他们尝尝鼓足勇气做出改变,包括在我们的内部“黑客日”进行概念验证演示,以探索和衡量其他人的兴趣。他们关注 AWS 的公告,Kubernetes 的公告,以及关于新选项的技术新闻来源。...劳伦·伯纳耶:从控制平面上的可扩展性问题到低层的运行时问题和网络问题,我们都遇到过许多令人吃惊的挑战。总体而言,在采用容器方面最大的成功在于,它允许我们使用通用抽象在多个云供应商之间进行扩展和部署。

    1.1K20

    The Twelve-Factor App

    12-Factor 为构建如下的 SaaS 应用提供了方法论: 使用标准化流程自动配置,从而使新的开发者花费最少的学习成本加入这个项目。...和操作系统之间尽可能的划清界限,在各个系统中提供最大的可移植性。 适合部署在现代的云计算平台,从而在服务器和系统管理方面节省资源。...背景 本文的贡献者参与过数以百计的应用程序的开发和部署,并通过 Heroku 平台间接见证了数十万应用程序的开发,运作以及扩展的过程。...本文综合了我们关于 SaaS 应用几乎所有的经验和智慧,是开发此类应用的理想实践标准,并特别关注于应用程序如何保持良性成长,开发者之间如何进行有效的代码协作,以及如何 避免软件污染 。...任何 SaaS 应用的开发人员。部署和管理此类应用的运维工程师。 12-factors I. 基准代码 一份基准代码,多份部署。 II. 依赖 显式声明依赖关系。 III. 配置 在环境中存储配置。

    69530

    探索全栈开发:积累更多全栈开发经验的一天

    探索全栈开发:积累更多全栈开发经验的一天大家好!我是Echo_Wish,今天想和大家分享一下我是如何一步步积累全栈开发经验的。...应用,我学习了React的基本使用,包括组件、状态管理和事件处理。...五、部署与运维:让应用上线最后一步是将应用部署到服务器上,让用户可以访问。我选择了Heroku作为部署平台,因为它简洁易用,并且集成了许多有用的工具。...部署步骤:安装Heroku CLI:下载并安装Heroku CLI工具。创建Heroku应用:在命令行中运行heroku create,创建一个新的Heroku应用。...推送代码到Heroku:在命令行中运行git push heroku main,将代码推送到Heroku服务器。访问应用:在浏览器中访问Heroku提供的URL,查看应用是否正常运行。

    75710

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

    在4处,我们执行了命令git status,输出表明当前位于分支master中,而工作目录是干净 (clean)的。每当你要将项目推送到Heroku时,都希望看到这样的状态。...编写本书 时,Heroku允许免费部署在24小时内最多可以有18小时处于活动状态。项目的活动时间超过这个 限制后,将显示标准的服务器错误页面,稍后我们将设置这个错误页面。...然而,你看不到 你在本地部署中输入的任何数据,因为它们没有复制到在线服务器。一种通常的做法是不将本地 数据复制到在线部署中,因为本地数据通常是测试数据。...20.2.14 改进 Heroku 部署 在本节中,我们将通过创建超级用户来改进部署,就像在本地一样。...注意 你使用Heroku提供的免费服务来部署项目时,如果项目在指定的时间内未收到请求或过 于活跃,Heroku将让项目进入休眠状态。

    1.4K10

    从Heroku看好雨云帮

    从寻找合适的技术人才到搭建基础设施,从选择正确的软件管理方法到长时间枯燥而复杂的测试、发布、部署、反馈……传统的应用开发行到此时,能否成功交付仍然是未知数。...在海外众多云服务平台中,创立于2007年的Heroku(www.heroku.com)受到了众多企业、创业者和开发者的推崇。...Heroku如此受欢迎,优秀的技术服务让它成为众多颠覆性创业公司的选择,但遗憾的是,由于网络因素及本地化业务需要等客观条件,Heroku在国内的使用体验一直欠佳,难以发挥出应有的价值,导致本土企业、创业者和开发者过去在应用开发上...,往往只能望“云”兴叹,不得不费力走很多弯路以保持在市场上的竞争力。...但好雨想做的,并不是将云帮打造成Heroku的翻版,而是结合最前沿、最实用的云计算技术,在完美替代Heroku的同时,为应用开发提供更好的使用体验。

    1.5K40
    领券