极客视点
极客时间编辑部
极客时间编辑部
113241 人已学习
免费领取
课程目录
已完结/共 3766 讲
2020年09月 (90讲)
时长 05:33
2020年08月 (93讲)
2020年07月 (93讲)
时长 05:51
2020年06月 (90讲)
2020年05月 (93讲)
2020年04月 (90讲)
2020年03月 (92讲)
时长 04:14
2020年02月 (87讲)
2020年01月 (91讲)
时长 00:00
2019年12月 (93讲)
2019年11月 (89讲)
2019年10月 (92讲)
2019年09月 (90讲)
时长 00:00
2019年08月 (91讲)
2019年07月 (92讲)
时长 03:45
2019年06月 (90讲)
2019年05月 (99讲)
2019年04月 (114讲)
2019年03月 (122讲)
2019年02月 (102讲)
2019年01月 (104讲)
2018年12月 (98讲)
2018年11月 (105讲)
时长 01:23
2018年10月 (123讲)
时长 02:06
2018年09月 (119讲)
2018年08月 (123讲)
2018年07月 (124讲)
2018年06月 (119讲)
时长 02:11
2018年05月 (124讲)
时长 03:16
2018年04月 (120讲)
2018年03月 (124讲)
2018年02月 (112讲)
2018年01月 (124讲)
时长 02:30
时长 02:34
2017年12月 (124讲)
时长 03:09
2017年11月 (120讲)
2017年10月 (86讲)
时长 03:18
时长 03:31
时长 04:25
极客视点
15
15
1.0x
00:00/03:23
登录|注册

推荐:十二要素APP开发法(下)

讲述:丁婵大小:1.55M时长:03:23
“十二要素 APP 开发法”为构建分布式 Web APP 和微服务提供了良好的基础,不仅可以提高生产效率,还可以让开发过程变得更加顺畅。在上一篇文章中,我们介绍了该方法的前六项原则,本文继续分享其余六项原则,如下。

1. 端口绑定:通过端口绑定输出服务

你的 APP 服务应该可以通过 URL 被其他服务访问,通过这种方式,该 APP 的服务可以在需要时充当其他服务的资源。这个要素促进了 APP 的自包含的独立性,你可以使用这个概念为其他 APP 构建 REST 风格的网络接口,即 REST API。

2. 并发性:通过进程模型向外扩展

APP 中的每个进程都应该能够根据需求进行扩展、重启或自我克隆,这样做可以提高 APP 的可扩展性。
使用上面提到的方法,你可以通过将每个工作负载分配给某个类型的进程(PID)来构建能够处理不同工作负载量的 APP。

3. 善后处理:用快速启动和优雅退出,来最大化 APP 的健壮性

这个原则表明,APP 的进程应该花费更少的时间,从而实现快速启动和退出。除此之外,APP 还应该能够顺畅地处理各种故障,如今像 Docker 这样的容器非常有助于执行和实现这样的功能。例如,可以使用健壮的队列后端系统,如 RabbitMQ 来处理进程的突然死亡和关闭。在这种情况下,当客户机断开连接或关闭时,正在处理的任务将返回到队列。

4. 开发 & 生产的等价性:尽可能保持开发、展示和生产环境的相似性

参与该 APP 开发项目的团队应该使用相同的操作系统、支持服务和外部依赖项,以保证开发和生产之间环境的差异最小。这样做的一个好处是,开发阶段所需的时间会更少,这同时也印证了快速应用程序开发(RAD)的概念。通过减少开发和生产阶段之间的差异,持续部署的过程也会变得更加顺畅。

5. 日志:将日志视为事件流

你的 APP 不应该负责日志的存储和管理,它应该随着 APP 的执行相应地打印以检查 APP 的处理流程是否正确。像 Node.js 中的 Bunyan 这样的程序可以帮助我们在各种环境中检查 APP 的执行流程,这里各种环境指诸如测试和开发这样的环境。

6. 管理流程:将监管 / 管理任务作为一次性进程

最后一个因素,建议你的管理任务应该从类似生产服务器的环境中执行。管理任务可以执行数据库迁移,并从 APP 中收集分析数据,以从中获得有用的信息,这些任务通过发布的 APP 代码在 APP 上运行。
以上就是今天的内容,这些开发指南为构建分布式 Web APP 和微服务提供了良好的基础。这些方法可以帮助你在很长时间内平稳地扩展和维护你的 APP。
确认放弃笔记?
放弃后所记笔记将不保留。
新功能上线,你的历史笔记已初始化为私密笔记,是否一键批量公开?
批量公开的笔记不会为你同步至部落
公开
同步至部落
取消
完成
0/2000
荧光笔
直线
曲线
笔记
复制
AI
  • 深入了解
  • 翻译
    • 英语
    • 中文简体
    • 中文繁体
    • 法语
    • 德语
    • 日语
    • 韩语
    • 俄语
    • 西班牙语
    • 阿拉伯语
  • 解释
  • 总结
该免费文章来自《极客视点》,如需阅读全部文章,
请先领取课程
免费领取
登录 后留言

精选留言

由作者筛选后的优质留言将会公开显示,欢迎踊跃留言。
收起评论
大纲
固定大纲
1. 端口绑定:通过端口绑定输出服务
2. 并发性:通过进程模型向外扩展
3. 善后处理:用快速启动和优雅退出,来最大化 APP 的健壮性
4. 开发 & 生产的等价性:尽可能保持开发、展示和生产环境的相似性
5. 日志:将日志视为事件流
6. 管理流程:将监管 / 管理任务作为一次性进程
显示
设置
留言
收藏
53
沉浸
阅读
分享
手机端
快捷键
回顶部