《App后台开发运维和架构实践》

[复制链接]
online_admin aixure 发表于 2023-1-24 21:46:14 | 显示全部楼层 |阅读模式 打印 上一主题 下一主题
214607yj96dxhkxh79xg6n
售 价: ¥5¥89加入会员,免费下载
库 存:9999
销 量:12
源 址:
卖家服务:  
客 服:QQ(早10点-晚6点)
资源详情
内容简介[url=]编辑[/url][url=] 播报[/url]
《App 后台开发运维和架构实践》通过阐述移动互联网中 App 后台开发的特点,梳理了 App 后台开发中会遇到的各个技术点,给出了生产环境常用软件的实战运维经验总结,剖析了常见 App 后台技术架构设计,为读者呈现一幅包括技术选型、后台搭建、性能优化、运维实践、架构设计的 App 后台开发蓝图。
《App 后台开发运维和架构实践》的目标读者是对技术感兴趣的产品经理、刚入行的 App 后台开发人员,以及从传统软件行业转向 App 后台开发的技术人员。 [1]

编辑推荐[url=]编辑[/url][url=] 播报[/url]
软件开发老兵余晟为本书倾情作序,Bmob后端云CEO何少岳、UCloud综合研发中心高级工程师胡亚平、bilibili研发总监毛剑联合力荐。
本书将告诉读者如何用“正确的方式”使用各种已有的工具,将为读者呈现一幅包括技术选型、后台搭建、性能优化、运维实践、架构设计在内的App后台开发蓝图。

内容提要[url=]编辑[/url][url=] 播报[/url]
《App 后台开发运维和架构实践》通过阐述移动互联网中 App 后台开发的特点,梳理了 App 后台开发中会遇到的各个技术点,给出了生产环境常用软件的实战运维经验总结,剖析了常见 App 后台技术架构设计,为读者呈现一幅包括技术选型、后台搭建、性能优化、运维实践、架构设计的 App 后台开发蓝图。
《App 后台开发运维和架构实践》的目标读者是对技术感兴趣的产品经理、刚入行的 App 后台开发人员,以及从传统软件行业转向 App 后台开发的技术人员。

目录[url=]编辑[/url][url=] 播报[/url]
推荐序 .. 3
前言 5
致谢 7
目录 8
第1 章 App 后台入门 .. 16
1.1 App 后台的功能 16
1.2 App 后台架构 . 17
1.3 App 和App 后台的通信 .. 19
1.4 App 后台和Web 后端的区别 .. 22
1.5 选择服务器 . 23
1.6 选择编程语言 24
1.7 快速入门新技术 .. 25
1.7.1 思维模式 25
1.7.2 4 种快速入门新技术的方法 .. 25
1.8 App 是怎样炼成的 .. 26
1.8.1 项目启动阶段 . 26
1.8.2 研发阶段 28
1.8.3 测试阶段 29
1.8.4 正式推出阶段 . 29
1.9 最适合App 的开发模式——敏捷开发 .. 30
1.9.1 Sprint 计划会议 . 31
1.9.2 日常开发 32
1.9.3 每日例会 33
1.9.4 测试和修复Bug 33
1.9.5 评审会议 34
1.9.6 回顾会议 34
1.9.7 及时反馈 34
1.9.8 总结.. 34
第2 章 App 后台基础技术 . 35
2.1 从App 业务逻辑中提炼API 接口 . 35
2.1.1 业务逻辑思维导图 .. 36
2.1.2 功能—业务逻辑思维导图 .. 37
2.1.3 基本功能模块关系 .. 40
2.1.4 功能模块接口UML(设计出API) 41
2.1.5 编写在线API 测试文档 42
2.1.6 设计稿标注API 45
2.2 设计API 的要点 .. 46
2.3 如何选择合适的数据库产品 . 50
2.3.1 Redis,MongoDB,MySQL 读写数据的区别 50
2.3.2 Redis,MongoDB,MySQL 查找数据的区别 50
2.3.3 Redis,MongoDB,MySQL 适用场景 51
2.4 如何选择消息队列软件 .. 52
2.4.1 为什么要用消息队列? 52
2.4.2 消息队列的工作流程 . 53
2.4.3 常见的一些消息队列产品 .. 54
2.5 使用分布式服务实现业务的复用 .. 54
2.5.1 巨无霸系统的危害 .. 55
2.5.2 远程服务的优点 56
2.5.3 远程服务的实现 56
2.6 搜索技术入门 59
2.6.1 一个简单的搜索例子 . 59
2.6.2 搜索技术的基本原理 . 60
2.6.3 常见的开源搜索软件介绍 .. 62
2.7 定时任务 .. 65
2.7.1 Linux 定时任务Crontab 65
2.7.2 在后台轻松管理各种各样的定时任务 66
第3 章 App 后台核心技术 . 68
3.1 用户验证方案 68
3.1.1 使用HTTPS 协议 . 68
3.1.2 基本的用户登录方案 . 69
3.2 App 通信安全 . 72
3.2.1 URL 签名 .. 72
3.2.2 AES 对称加密 74
3.2.3 更进一步的通信安全 . 77
3.3 短信服务 .. 78
3.3.1 App 后台发送短信简介 78
3.3.2 选择短信平台 . 78
3.3.3 建立可靠的短信服务 . 79
3.4 处理表情的一些技巧 80
3.4.1 表情在MySQL 的存储 . 80
3.4.2 当文字中夹带表情的处理 .. 80
3.4.3 Openfire 中发送表情引起连接断开的问题 .. 81
3.5 高效更新数据 82
3.5.1 内容的推拉 .. 83
3.5.2 数据增量更新策略 .. 84
3.6 图片处理 .. 90
3.7 视频处理 .. 91
3.7.1 FFmpeg 简介 .. 91
3.7.2 后台调用FFmpeg 的功能 92
3.8 获取APK 和IPA 文件里的资源 . 94
3.8.1 Android 的APK 文件 . 94
3.8.2 iOS 的IPA 文件 96
3.9 文件系统 .. 98
3.9.1 文件云存储服务 99
3.9.2 架设文件系统 . 99
3.10 ELK 日志分析平台 101
3.10.1 基本模块 .. 101
3.10.2 日志分析流程 102
3.11 Docker 构建一致的开发环境 .. 103
3.11.1 Docker 原理 103
3.11.2 搭建一致的开发环境 104
第4 章 Linux——App 后台应用最广泛的系统 .. 107
4.1 基本的系统优化 107
4.1.1 开机自启动服务优化 .. 107
4.1.2 增大文件描述符 . 109
4.2 常用的命令 .. 110
4.2.1 全面了解系统资源情况——top 110
4.2.2 显示进程状态——ps .. 115
4.2.3 查看网络相关信息——netstat .. 116
4.2.4 查看某个进程打开的所有文件——lsof .. 118
4.2.5 跟踪数据到达主机所经路由——traceroute .. 119
4.2.6 文件下载/上传工具——“ssh secure shell client”和“lrzsz” . 119
4.2.7 查看程序的依赖库——LD_DEBUG . 121
4.2.8 进程管理利器——superivisor 122
4.3 故障案例分析 . 125
第5 章 Nginx——App 后台HTTP 服务的利器 . 126
5.1 简介 . 126
5.2 基本原理 127
5.2.1 工作模型 . 127
5.2.2 进程解析 . 128
5.3 常用配置 129
5.3.1 Nginx 的全局配置 . 130
5.3.2 event 配置 .. 130
5.3.3 http 配置 .. 131
5.3.4 负载均衡配置 .. 133
5.3.5 server 虚拟主机配置 134
5.3.6 location 配置 . 134
5.3.7 HTTPS 的配置 . 135
5.3.8 下载App 的配置 136
5.3.9 生产环境中修改配置的良好习惯 136
5.4 性能统计 136
5.5 实现负载均衡的方案 . 137
5.6 用Nginx 处理业务逻辑 . 139
第6 章 MySQL——App 后台最常用的数据库 .. 140
6.1 基本架构 140
6.2 选择版本 141
6.3 配置文件详解 . 142
6.4 软件优化 144
6.4.1 正确使用MyISAM和InnoDB 存储引擎 144
6.4.2 正确使用索引 .. 145
6.4.3 避免使用select * 146
6.4.4 字段尽可能地设置为NOT NULL .. 146
6.5 硬件优化 147
6.5.1 增加物理内存 .. 147
6.5.2 增加应用缓存 .. 147
6.5.3 用固态硬盘代替机械硬盘 148
6.5.4 SSD 硬盘+SATA 硬盘混合存储方案 149
6.6 架构优化 149
6.6.1 分表 150
6.6.2 读写分离 . 151
6.6.3 分库 153
6.7 SQL 慢查询分析 156
6.8 云数据库简介 . 157
6.9 灵活的存储结构 158
6.10 故障排除案例 .. 159
第7 章 Redis——App 后台高性能的缓存系统 . 160
7.1 Redis 简介 . 160
7.2 Redis 的常用数据结构及应用场景 . 161
7.2.1 string——存储简单的数据 .. 162
7.2.2 hash——存储对象的数据 163
7.2.3 list——模拟队列操作 . 165
7.2.4 set——无序且不重复的元素集合 .. 167
7.2.5 sorted set——有序且不重复的元素集合 . 168
7.3 内存优化 170
7.3.1 监控内存使用的状况 .. 170
7.3.2 优化存储结构 .. 170
7.3.3 限制使用的最大内存 .. 172
7.3.4 设置过期时间 .. 172
7.4 集群 . 174
7.4.1 客户端分片 174
7.4.2 Twemproxy 175
7.4.3 Codis . 176
7.4.4 Redis 3.0 集群 .. 179
7.4.5 云服务器上的集群服务 . 180
7.5 持久化 . 180
7.5.1 RDB .. 181
7.5.2 AOF 182
7.6 故障排除案例 . 184
第8 章 MongoDB——App 后台新兴的数据库 .. 185
8.1 简介 . 185
8.2 核心机制解析 . 186
8.2.1 MMAP(内存文件映射) 186
8.2.2 Journal 日志 .. 187
8.3 入门 . 187
8.3.1 基本操作 . 188
8.3.2 数组操作 . 190
8.3.3 实例演示MySQL 和MongoDB 设计数据库的区别 191
8.4 高可用集群 .. 195
8.4.1 主从 195
8.4.2 副本集 .. 196
8.4.3 分片 198
8.5 LBS——地理位置查询 . 200
8.6 MongoDB 3.0 版本的改进 205
8.6.1 灵活的存储架构 . 206
8.6.2 性能提升7~10 倍 .. 206
8.6.3 存储空间最多减少80% 207
8.6.4 运维成本最多降低95% 207
第9 章 App 后台架构剖析 .. 208
9.1 聊天App 后台架构 .. 208
9.1.1 移动互联网的网络特性 . 209
9.1.2 协议 212
9.1.3 整体架构 . 218
9.2 社交App 后台架构 .. 221
9.2.1 基本表结构 222
9.2.2 推拉模式 . 223
9.2.3 数据库架构的演进 225
9.2.4 缓存架构的演进 . 229
9.3 LBS App 后台架构 . 234
9.3.1 地理坐标详解 .. 235
9.3.2 查找附近的人 .. 236
9.3.3 基于MongoDB 的LBS 后台架构演进 . 240
9.4 推送服务器后台架构 . 242
9.4.1 Android 推送 242
9.4.2 iOS 推送 .. 248
9.5 获得更多App 后台架构资料 . 252
第10 章 App 后台架构的演进 255
10.1 架构的核心要素 . 255
10.1.1 高性能 256
10.1.2 高可用 258
10.1.3 可伸缩 261
10.1.4 可扩展 262
10.1.5 安全性 262
10.2 架构选型的要点 . 262
10.2.1 用成熟稳定的开源软件 .. 263
10.2.2 尽可能使用云服务 . 264
10.3 架构的演进 268
10.3.1 单机部署 .. 269
10.3.2 分布式部署 . 275
10.3.3 服务化 277
10.4 架构的特点 279
10.4.1 每个App 的后台架构不会完全一样 .. 279
10.4.2 架构的演进是由业务驱动的 279
10.4.3 架构不是为了炫耀技术 .. 280

精彩节摘[url=]编辑[/url][url=] 播报[/url]
推荐序
十八般兵器入门
软件开发工具的成长速度远远超过开发人员的成长速度,这是现实。
每个月,甚至每天,我们都可以见到新的类库、框架、工具、语言。它们或者极大地降低了开发的成本,或者极大地提升了开发的效率。
随之而来的问题就是,如何让开发人员妥善地运用好这些工具?
曾经有好几个做开发的同事跟我说:“写软件谁不会?从网上找些开源的类和项目来改改就是了”。目前也确实充斥着这种“改改就是”的工作思维。介绍某个类库和项目如何安装和调用的文章俯拾皆是。
但是每种工具究竟有什么优缺点?适合用来解决什么问题?需要以怎样的方式来解决问题?因此还需要做怎样的权衡?这样的问题基本没有人考虑,但是,它们又很重要。
这有点像练武。斧钺钩叉、刀枪剑戟,制造手艺日渐精良;可是习武的人心里没有分寸,该劈的时候提了枪,该刺的时候抡了斧…… 耍几下花把式还算足够,真正打起来哪能取胜?
我在面试新人中经常提的问题是:NoSQL 分为哪几种类型?每种类型的典型代表和应用场景是什么?要知道,用过MongoDB 和Redis 的人比比皆是,但回答不上这几个问题的也大有人在。这样的候选人,我是决计不敢要的。稍加不注意,他们就可能用Redis 存文档,用MongoDB 做复杂运算,甚至“大胆”用Redis 来替换数据库以解决性能瓶颈——噢,你说起“事务”,Redis 也是有“事务”的呀。
对这样的人,你真让他们去研究MongoDB 或者Redis,让他们去通读一本专著,似乎有点划不来,他们自己也没有那么多耐心。所以我常想,有没有一本“薄而广”的书,专注于开拓大家的眼界,并教导大家用“正确的方式”来使用各种已有的工具。如今我们虽然有海量的框架和类库,有突飞猛进的云服务,但是只要没有掌握“正确的应用方式”,就无法保证“把事情做对”,就只能开发出某几个方面明显不及格的产品。
所以当我看到曾健生编著的《App 后台开发运维和架构实践》时,不由得眼前一亮。这正是一本“薄而广”的书,它绝不像《打狗棍法》或者《辟邪剑法》,不负责地教你把某门特别的武功练到极致,而更像《十八般兵器入门》,告诉你刀枪剑戟各适合什么场景,使用时有什么注意事项。典型的例子如关于Redis 的部分,它讲的不是Redis 如何安装,如何调用,而是结合发送短信、社交关系计算等典型应用场景讲解Redis 的使用方式,并介绍在Redis 提供内建集群之前,市面上的各种集群的方案和优劣。这样虽然只有一章的篇幅,但为普通开发人员提供的价值绝对要比两三本Redis 专著都要大,而且读起来更有效率。
古代练武的人,未必人人都要做武林高手,许多人只是把十八般兵器都耍熟,就已经足够防贼、保平安,受益匪浅了。同样的道理,对今天的App 后台开发人员来说,把基本的点都踩到、踩准,把系统拎到及格线以上,避免明显的缺憾,对大多数场景来说,已经是意义重大了。
余晟
软件开发老兵,微信公众号“余晟以为”

前言[url=]编辑[/url][url=] 播报[/url]
笔者在2012 年从开发电子商务网站转向了开发App 后台,当时在一家做社交App 的创业公司里工作,笔者和搭档都没有任何从事移动互联网开发的经验,不清楚App 后台怎么架构,只能摸着石头过河,那时网络上只有一些零散的资料,当遇到问题时只能不断地摸索和思考,来找到解决问题的方法。
在从事开发App 后台接近4 年的时间中,笔者参与了两款社交App 的开发,现在就职于bmob,从事云后台服务的研发工作,慢慢地对App 后台的架构有了一些体会。
从2013 年年底开始,笔者把工作笔记发表在CSDN 博客专栏“App 后端技术架构”,陆陆续续收到了很多网友的反馈,后来在QQ 里面接触了很多刚刚从事开发App 后台的开发者、找技术合伙人的创业者,在聊天的过程中,发现很多基本的问题被不停地问,例如:
队列有什么用?
Redis 的应用场景有哪些?
怎么保证通信的安全性?
看着对未来无限向往的同行也在重复着本人当初经历过的迷茫,也在纠结着这些技术问题,在网络上,没找到一本系统讲述App 后台架构的书籍,能搜索到的不是“高大尚”公司的解决方案,就是针对一个技术点很详细的讲解。
于是在网友的鼓励下,笔者决定把本人所掌握的开发App 后台的知识系统地讲解一次(当时计划是写30 篇左右的文章),笔者利用业余的时间陆陆续续地写成文章发表在CSDN博客专栏“App 后端技术架构”,这也是本书前3 章的初稿。
后来在博文视点的付睿编辑帮助下,笔者有机会把自身所学习的知识再系统地整理一次,以书籍的形式展现给各位读者,希望本书能够帮助更多的刚进入App 后台开发的朋友们,以及对App 后台技术感兴趣的产品经理和Android、iOS 开发者。App 后台开发运维和架构实践
因为本书的读者定位主要是App 后台的初学者,因此笔者尽量以图文并茂的方式给读者介绍App 后台各方面的技术。
笔者一向推崇的架构原则是,“尽量使用成熟可靠的云服务和开源软件,自身只专注于业务逻辑”,对于某项具体的技术必须掌握下面两点。
技术的应用场景。
技术的基本原理。
掌握上面两点后就能对这项技术有了基本的了解,在此基础上技术选型的优先级如下。
云服务。
开源软件。
自主研发。
通过上面的措施能在最大程度上减轻技术人员的额外研发负担,让自身的精力更加专注于业务。
至于某项技术的其他方面,例如怎么部署、开源软件的深度剖析等,笔者并不打算在本书中做深入的阐述,读者如果感兴趣可自行深入学习。笔者希望在本书中能给读者描绘一个App后台开发的蓝图。
本书主要分为4 部分。
第1~3 章:App 后台常用技术的讲解。
第4~8 章:App 后台常用软件的运维和相关原理。
第9 章:4 种类型App 的后台架构。
第10 章:App 后台架构的知识。

温馨提示:
1、如果下载地址失效,请尽快反馈给我们,我们尽快修复。点此反馈>>
2、全站资源高清无密,课程百分百高清,完整,原画,包含所有的视频+素材+课件+源码,官方同步体验!每天更新,成为vip后可免费下载本站IT课程。点此办理会员>>
3、有任何问题,请咨询QQ:87887023
4、支持7*24小时自助购买,购买后自动发货,链接永久有效,自动更新
回复

使用道具 举报

您需要登录后才可以回帖 登录 | 注册

本版积分规则

专注资源整合与知识分享
客服QQ

87887023

周一至周日9:00-23:00

反馈建议

点此进行反馈 kfs 在线QQ咨询
ftqrcode

扫描二维码关注我们

label_sm_90020

Powered by 优百课栈 X3.4© 2019-2025