当前位置: 首页 > news >正文

Heroku的12条准则

I. Codebase

One codebase tracked in revision control, many deploys

要有代码仓库,多版本控制,如使用git来管理代码仓库。

II. Dependencies

Explicitly declare and isolate dependencies

明确声明依赖,隔离依赖。强依赖往往会导致连锁反应,当被依赖方崩了之后,当前服务应该能熔断并走降级流程。

III. Config

Store config in the environment

代码和配置分离有很多好处,因为代码从开发、测试、构建、部署是很长的一条链路,开发成本高,而纯配置只需要改一下就好,几乎没什么成本。

IV. Backing services

Treat backing services as attached resources

将支持的服务视为附加资源,不知所云。

V. Build, release, run

Strictly separate build and run stages

严格分离构建、部署阶段,分开的好处是假如出错了,能快速发现错误出现在哪一步,再说,它们构建和部署类比编译和运行,是天然分离的两个步骤。

VI. Processes

Execute the app as one or more stateless processes

尽可能无状态,因为无状态服务不存在线程安全问题,无状态的服务更加简单、不易出错。而有状态的服务,要考虑线程安全问题,还容易出错。

VII. Port binding

Export services via port binding

将服务与端口绑定。

VIII. Concurrency

Scale out via the process model

并发而不是顺序执行,能有效挖掘多核CPU的性能,能系统增大吞吐量,提高QPS。

IX. Disposability

Maximize robustness with fast startup and graceful shutdown

通过快速启动和优雅关闭最大化鲁棒性,优雅关闭资源(如数据库连接,网络连接等)很好理解,快速启动是什么意思?

X. Dev/prod parity

Keep development, staging, and production as similar as possible

使开发、分期和生产尽可能相似,其实就是要保持开发环境和生产环境尽量一致。

XI. Logs

Treat logs as event streams

重视日志,一方面便于排查问题,一方面能作为统计数据。

XII. Admin processes

Run admin/management tasks as one-off processes

将管理/管理任务作为一次性流程运行,应该是管理配置类任务只执行一次,类似static代码块。

http://www.lryc.cn/news/19095.html

相关文章:

  • Qt图片定时滚动
  • 深度学习引言
  • ESP32 WIFI使用介绍
  • JavaEE简单实例——MyBatis的一对一映射的嵌套查询的简单介绍和基础配置
  • 详解指针(进阶版)(1)
  • 【OJ】盐荒子孙
  • Java数据结构 —— 手写线性结构(稀疏数组、栈、队列、链表)
  • docker部署gitlab过程中遇到的一些问题记录
  • 数组的定义与使用
  • SAP ABAP用程序删除开发KEY
  • 安卓设备TF卡概率性无法识别问题
  • linux安装nodejs和微信小程序自动化部署操作
  • JavaScript高级 Proxy Reflect
  • Eth-trunk :LACP模式链路聚合实战
  • 【第二章 - 线性表之顺序表】- 数据结构(八千字详解)
  • 【史上最全面esp32教程】RGB彩灯篇
  • 大规模 IoT 边缘容器集群管理的几种架构-5-总结
  • 逆风翻盘拿下感知实习offer,机会总是留给有准备的人
  • SpringBoot整合阿里云OSS文件上传、下载、查看、删除
  • 对话数字化经营新模式:第2届22客户节(22Day)年猪宴圆满结束!
  • 数据结构——第二章 线性表(5)——双向循环链表
  • 4面美团软件测试工程师,却忽略了这一点,直接让我前功尽弃
  • robot remote server用这个server去远程获取ip
  • 【WSL】Windows 上安装并启动
  • SAFe(Scaled Agile Framework)学习笔记
  • Redis 集群搭建
  • 【Unity VR开发】结合VRTK4.0:创建物理按钮
  • 【软件测试】web自动化测试如何开展合适?自动化测试用例如何设计?资深测试的总结......
  • ARouter::Compiler The user has configuration the module name, it was
  • Jmeter(GUI模式)详细教程