Linux 与 Docker:运行配置、日志和持久化|课前预习
这一页只有问题,没有答案。先去真实业务里看一眼,再带着技术上想不通的地方来上课。写下自己的初步判断和依据,不必提前学会全部新知识;不确定的地方留到课堂用代码验证。
第一部分|业务观察:系统换代之后,以前的单子还要接着能用
先去这几个地方看看
具体怎么看(照着做)
- 打开有赞店铺后台的订单管理手册,顺着一笔单子从生成到完结走一遍,把过程中会留下哪些信息列出来,注明文章标题和链接。
- 从这些信息里挑出“必须长期留着、随时能查、事后要复核”的几类,写明它们各自的业务用途,以及用的人是客服、运营还是财务。
- 再翻 Mall4j 的发行版记录,只看两条相邻更新对外说明了什么变化、有没有提醒使用者先做哪件事。读不懂的技术名词直接跳过,不用去判断环境和部署细节;只阅读,不安装 Java 技术栈。两处看完,合成一句业务要求:换成新版之后,以前的单子还查得到、还对得上、还能继续往下处理。
只看你自己账号能看到的页面,看到提交订单那一步就停。不用真的买、真的付款,也别去动商家的真订单。截图只留相关字段,把账号、电话、地址、订单号这些个人信息盖掉。
要记下这几点
一张“换代之后必须保留的业务数据”表:数据项—业务用途—谁在用—出处;最后补一句你从这轮观察里提炼出的业务要求。
记录时写清六项:平台或资料标题、链接或 App 页面路径、观察日期、实际看到的内容、自己的判断、还要验证什么。可以附一张去掉个人信息的截图,不附也行。进不去的时候就去读上面那份官方说明,注明“这条是看官方文档得到的”;还是没有依据的,就写“没观察到/待验证”,下次再补,别编。
业务上要的结果是:换了新版,历史订单照样能查、照样能接着处理,客户的账不乱。至于这套系统跑在什么上面、数据放在哪儿,属于今天课堂的技术部分;容器和数据留不留得住,只在自己的隔离实验环境里验证。
业务上先想这几个问题
下面几个问题,是帮你把刚才看到的业务现象,转成业务上明确的要求。你自己的判断和推测请单独标注,别当成平台真发生过的事。
- 为什么“我电脑能运行”不足以交付给企业使用?
- 如何向运营证明更新应用后昨天的订单还在?
这一段只负责把业务说清楚。 上面这些都是业务上真实存在的要求;至于怎么用技术把它们做出来,是下面第二部分「技术预习」和今天课堂要解决的事。
第二部分|技术相关:带着问题寻找解决办法
回看一下上次课你自己的项目和运行记录,先找出跟今天的业务场景有关的输入、处理和输出。下面这些词只是帮你认出课上要解决的问题,不用课前背下来。
技术上先想这几个问题
- Dockerfile(镜像构建文件)与启动时配置分别承担什么?
- 容器里的 localhost 为什么连不到宿主机 MySQL?
- 容器 running 为什么不能证明应用可用?
- 重启和重建怎样验证数据持久化?
写下你的预测、你的理由,还有一个到现在还没想明白的地方。装好环境的同学可以直接用现有代码验证;环境还没弄好的,先在纸上预测一下,不用为了预习专门去装不熟悉的依赖。
上课时要带上这些
- 一份真实、能追到来源的业务观察记录,把“看到的事实”“我的推断”“还没验证的”分开写。
- 一份技术问题的初步判断;动手跑过的,把输入和原始结果一起附上。
- 上完课后对着解答改一改你的判断,写清是哪一步验证让你改了想法。
你写下的业务和技术问题,会在课上对应的知识点里解答,并配合演示核对;按课堂同名机制小节回看,不重复抄写一份标准答案。
带着本人代码补三条预测
本节只给问题,不提供标准答案。
- import 一个模块时为什么可能意外写文件?
- 同一命令在另一终端缺配置,先检查代码还是进程环境?
- 日志显示导出完成能否证明 MySQL 已写入?