推荐:十二要素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
- 深入了解
- 翻译
- 解释
- 总结
该免费文章来自《极客视点》,如需阅读全部文章,
请先领取课程
请先领取课程
免费领取
© 版权归极客邦科技所有,未经许可不得传播售卖。 页面已增加防盗追踪,如有侵权极客邦将依法追究其法律责任。
登录 后留言
精选留言
由作者筛选后的优质留言将会公开显示,欢迎踊跃留言。
收起评论