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

【译】十二因子应用(四)

IV 后端服务 将后端服务视为可拔插的资源 后端服务是一种在应用在网络上正常运行时消费的任意一种服务。...数据库这种后端服务传统上与应用运行时部署一起呗同样的系统管理员管理。除了这些本地管理的服务,应用也会有一些被第三方管理的服务。...12因子应用的代码对待这些本地和第三方服务来说没有差别。应用端,都是可拔插的资源,通过URL或其他配置好的定位/鉴权服务。...如MySQL是一个资源,两个MySQL数据库(在应用层做sharding)就是两个独立的资源。12因子应用将这些数据库看做可拔插资源,在部署时是松耦合的。 资源可以按意愿在部署时进行拔插。...如,如果应用的数据库由于硬件问题出现故障,应用管理员可以快速从一个最近的备份中进行恢复。当前的生产库可以被卸载,新数据库被挂载上 – 不需要代码变动。

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

    现代“十二要素应用”与Docker

    十二要素应用”为开发SaaS应用提供了方法上的指导,而Docker能够提供打包依赖,解耦后端服务等特性,使得两者非常吻合。这篇文章介绍了Docker特性怎样满足了开发“十二要素应用”的对应要点。...Docker非常适合开发“十二要素应用”。 “十二要素应用”为构建SaaS应用提供了方法论,是由知名PaaS云计算平台Heroku的创始人Adam Wiggins提出的。请参考这篇文章。...这篇文章简单地介绍了Docker是怎样满足“十二要素应用”的核心要点的。它解释了用Docker开发一个典型的“Rails/Postgres/Redis/web/worker”所应用的技术。...通过这些方法,你可以声明你的应用需要Postgres 9.4和Redis 3.0服务,让你的应用通过主机名和端口号与他们建立连接。 VI....一个简单的“dicker-compose up”命令可以提供一个完整的Linux开发环境,并且能够轻易地将“十二要素应用”移植到生产机器。

    1.4K40

    现代“十二要素应用”与 Kubernetes

    十二要素应用”为开发SaaS应用提供了方法上的指导,而Docker能够提供打包依赖,解耦后端服务等特性,使得两者非常吻合。这篇文章介绍了Docker特性怎样满足了开发“十二要素应用”的对应要点。...“十二要素应用”为构建SaaS应用提供了方法论,是由知名PaaS云计算平台Heroku的创始人Adam Wiggins提出的。...在应用中,一个组件依赖指定的中间件服务和业务服务,在传统的软件部署方式中,应用启动、停止都要依照特定的顺序完成。...当采用 Kubernetes 等容器编排技术在分布式环境下部署应用时,一方面不同组件之间并行启动无法保证其启动顺序,另一方面在应用运行时,其所依赖的服务实现有可能发生失败和迁移,我们利用Kubernetes...首先在Pod中有三类容器 infra container: 这就是著名的pause容器 init container: 初始化容器 通常用于应用的初始化准备,只有等所有的初始化容器正常执行完毕之后,才会启动应用容器

    82640

    NVIDIA Tesla K80选购注意事项

    2014年年底,NVIDIA 再为加速运算平台增添最新旗舰级产品,宣布推出全新 Tesla K80 GPU 加速器,专为机器学习、资料分析、科学和高效能运算 (HPC) 等广泛应用而设,提供多 2...全新 Tesla K80 GPU 加速器是 Tesla 加速运算系列的旗舰级产品,特别针对大型科学探索和深入分析的顶尖运算平台,结合最快的 GPU 加速器、 CUDA 平行运算以及完整的软件开发者、...效能方面, Tesla K80 GPU 加速器可透过一卡 GPU 提供双倍传输量,内置 24GB GDDR5 存储器,每颗 GPU 有 12GB 存储器,比上代 Tesla K40 GPU 提供多两倍存储器处理更大的资料集分析...Tesla K80 内建 4,992 CUDA 平行运算核心,可比仅用 CPU 运算提升高达 10 倍应用加速效能,加上采用动态 NVIDIA GPU Boost 技术,可根据个别应用灵活提升 GPU...如果您是使用工作站,就只能考虑选购Tesla K40C或者Tesla K20C。 2. Tesla K80是GPU核的,因此您在编程的过程中要当作2颗GPU来使用。

    13K100

    指针算法及模板应用

    指针算法 指针算法的常见情况: 指针在两个数组上(例如归并排序等等) 指针在一个数组上 常见通用代码模板 for(i = 0, j =0; i < n; i++ ) {...while(j < i && check(i,j))j++; //再加上每道题目的具体逻辑 } 指针的核心思想是优化。...基本思路:采用指针算法 首先i和j在同一起点位置,然后j进行扫描。 j停在空格分界的位置上,输出两位置之间的字符串 把指针i移动在j上。...模板应用 #include #include using namespace std; int main() { char str[1000];...有了单调这一层性质,就可以采用指针这种单调队列的思想优化。因为可以使j在i遍历的时候仍然记录上次的位置。 具体条件的应用; 开辟一个动态数组来记录每个值出现多少次。例如原来需要判断的数组为a[n]。

    58660

    Nginx:加速Web应用的利器

    现在越来越多的应用都离不开Web应用,尤其是随着云计算和容器化技术的发展,Web应用的重要性更加凸显。但同时,Web应用的性能问题也越来越成为企业关注的焦点。...一、负载均衡和高可用 负载均衡是Web应用中非常重要的一个环节,特别是对于高并发和大流量的应用,如何分发请求,工作负载均衡,需要用到负载均衡技术。...二、静态资源加速 Web应用中的静态资源包括图片、CSS文件、JS文件等,这些文件对于服务器的负载比较大。Nginx可以将这些静态文件缓存到内存中,提高访问速度。...反向代理可以提高Web应用的安全性,因为通过Nginx的屏蔽,可以直接拒绝一些恶意的请求,抵御部分的攻击,保障Web应用的安全性。...总之,Nginx的应用场景非常广泛,对于Web应用的优化、安全性的提升有着非常重要的作用。

    35930

    FPGA Xilinx Zynq 系列(十二应用和机会 之 应用概述

    今天给大侠带来FPGA Xilinx Zynq 系列第十二篇,本篇内容目录简介如下: 5. 应用和机会 (“ 拿它能做什么?”)...应用和机会(拿它能做什么?) Zynq 的应用领域和那些基于 FPGA 和某些处理器的芯片的是差不多的,因此可以先来看一下一般的应用产品和系统的基本状况。...高性能计算 (HPC) “ 高性能计算 ” 这个大帽子术语下面覆盖了需要快速处理大数据集的各种应用,这些应用往往可以通过专用硬件处理来加速 [44]。...在其他的例子中,最有价值的可能是由于 Zynq 的基于标准和以 IP为中心的设计流所实现的投放市场时间的加速、功耗的降低或是处理器和逻辑资源之间的低延迟链接。...每个例子中,Zynq 对于任意一个应用都将表现出其特别的适合性。 ? 第十二篇到此结束,下一篇将带来第十三篇,应用和机会(“ 拿它做什么?”) 之 通信:软件定义无线电等相关内容。

    1.4K20

    构建应用服务的十二条准则

    构建一个稳健易扩展的应用服务一直是我们不断追求的事情。...Codebase 基准代码应该与应用项目之间保持一一对应的关系。 ? 同一个应用,即使针对不同的环境需要分别部署,也应该来源于同一份基准代码。...对于多个应用如果存在需要共享的代码,则应该将其拆分为独立的类库,然后使用依赖管理策略去加载它们。 2. Dependencies 显示声明依赖关系。应用必须有一个依赖清单,确切地声明所有依赖项。...判断一个应用是否正确地将配置排除在代码之外,一个简单的方法是看该应用的基准代码是否可以立即开源,而不用担心会暴露任何敏感信息。 一种解决方法是使用配置文件,但不把它们纳入版本控制系统。...Processes 应用的进程必须无状态且无共享,需要持久化的数据应该存储在诸如数据库之中。

    53130

    持续交付:云原生应用的“十二要素”

    独立系统的架构原则 “独立系统的架构原则”(https://isa-principles.org/)与“十二要素应用”密切相关,但前者更注重架构方面。...可处置性 :通过快速启动和优雅关闭保证最大的稳定性 对于习惯于创建传统的、长期运行的 Java 应用程序的开发人员而言,这可能需要转变观念,因为大部分应用程序的配置和初始化,都是在 JVM 或者应用程序启动过程中预先加载的...但是现代化的、容器化的应用程序会使用更多的即时(JIT)配置,确保应用程序在关闭期间尽最大努力清理资源和状态。...十二要素应用的各项原则,说明了在设计系统时,不仅要了解背后的部署方式,还要积极地利用它。接下来,我们要介绍与此密切相关的一个话题 — 机械同情心。...开发人员不应该对这些部署结构的变化感到惊讶,因为新技术自然会带来一些变化(例如,升级应用程序的 JVM 版本、在容器中部署 Java 应用程序,以及在云计算平台上运行 Java 应用程序)。

    1.3K40

    技术阅读摘要-1.十二要素应用原则

    概览 十二要素应用原则(The Twelve-Factor App) 在如今的微服务领域非常流行,相信大家或多或少有所耳闻,但了解其中细节的并不多。...Codebase 基准代码 - 一份基准代码,多份部署 示例:一个应用程序的代码,放在一个Git仓库里。 分支算不算一个仓库呢? 这点常有不同的理解。...痛点:在分布式的环境下,保证多个机器上运行的应用程序源代码一致,提升排查问题的效率。 2....Processes 进程 - 以一个或多个无状态进程运行应用 示例:程序的内存中不保存具体业务相关的数据,而应该保存在共享存储上。 痛点:程序有状态是横向扩容的一大阻碍。...于是,研发组长决定把关键的数据都放在Redis集群中(6.进程),保证应用的无状态化。 数据不丢了,但程序崩溃后恢复很慢,发现花大量的时间在加载初始数据上。

    52420

    构建云原生应用十二要素原则(下)

    前文 (构建云原生应用十二要素原则上)已经介绍前六条要素,本文接着介绍剩下的6个要素。...端口绑定:通过端口绑定提供服务 12要素应用是完整的自包含的应用,如一个Web应用不需要在运行环境中注入Web服务器而直接可以运行。...本质上,12要素原则主张使用水平扩展的方式对应用进行扩展,而非传统的垂直扩展。 水平扩展:增加应用运行的实例数 垂直扩展:扩充应用运行的硬件资源,如CPU、内存等。...微服务的情况下,通过微服务容器化,应用可以实现按需水平扩展。 易处置性:通过快速启动和优雅关闭来最大化健壮性 12要素应用的进程应该可以随时被启动和停止。当进程被启动或停止时,不应当影响应用的状态。...日志为运行中的应用提供了可见性。 12要素应用原则强调日志产生与日志处理分离。应用中在被写为标准输出,执行环境负责日志的收集、存储、整理与归档。 微服务架构中,可观测性是基本要求。

    49510

    构建云原生应用十二要素原则(上)

    也就是说,同一个应用的多个部署环境应该使用一个代码库。 同时,多个应用共享一个代码库的情况也应当避免。这种情况下,应该把其它应用调整为主应用的动态链接库(shared libraries)。...各微服务使用独立的代码库将有助于简化应用的CI/CD流程。 另外,不建议在不同的应用之间共享代码。...这将直接违反12要素应用原则。 建议将这些配置项保存到环境变量中。 12要素应用原则严格分离代码和配置。同一个应用无论部署在哪里,代码都必须是相同的。 微服务的情况下,配置独立于应用之外。...后端服务:把后端服务作为附属资源 后端服务是指当前应用正常操作时通过网络所用到的服务或应用,如数据库,消息中间件、或者当前应用与之通信的其它外部系统。...进程:通过一个或多个无状态进程运行应用 应用在执行环境中作为进程来运行。一个应用可能有一个或多个实例或进程。 根据12要素应用原则,应用不应该在内存中存储任何数据,应用中的数据应当保存在持久存储中。

    76420
    领券