- 博客(103)
- 收藏
- 关注
原创 部署你的第一个应用到 K8s
概念作用Kind在本地用 Docker 快速启动 K8s 集群Deployment声明式地管理应用副本(Pod)Service为 Pod 提供稳定网络访问入口NodePort把服务暴露到主机端口,方便测试。
2026-02-02 22:20:08
698
原创 用 Minikube 或 Kind 在本地跑起 Kubernetes
项目MinikubeKind启动命令底层技术VM 或容器纯 Docker 容器启动速度中快资源占用高(默认 2GB 内存)低(按需)适合场景学习完整 K8s 功能CI/CD、快速测试、开发者日常插件支持丰富(Ingress、Metrics Server 等)有限(需手动配置)想全面体验 K8s?→Minikube想快速迭代、写 YAML 测试?→Kind。
2026-01-21 22:34:21
621
原创 Kubernetes 核心对象详解:Pod、Deployment、Service
对象角色关键词Pod最小运行单元“装容器的盒子”DeploymentPod 管理器“自愈、扩缩容、滚动更新”Service网络入口“固定地址、负载均衡”记住这个流程写代码 → 打包镜像 → 用 Deployment 启动 Pod → 用 Service 暴露服务。
2026-01-18 14:31:58
1018
原创 为什么需要 Kubernetes
Docker 让应用可移植,Kubernetes 让应用可运维。当你只有几个容器时,Docker 足够;但当你的系统变成由成百上千个微服务组成的复杂生态时,Kubernetes 就不再是“可选项”,而是“必需品”。可靠性(自愈)弹性(扩缩容)协作(服务发现)交付效率(滚动更新)
2026-01-15 22:40:28
1010
原创 用 Docker 部署你的第一个微服务
步骤命令/文件1. 写服务代码app.js2. 写构建规则Dockerfile3. 构建镜像4. 运行容器5. 访问接口微服务的核心思想每个功能独立部署、独立运行、通过 API 通信。而 Docker,正是实现这一目标的最佳工具。
2026-01-11 22:09:16
952
原创 配置中心:如何批量管理服务
配置中心存储所有微服务的配置提供统一 API 供服务拉取或监听变更支持多环境、多版本、权限控制配置不是代码的一部分,而是系统的“运行参数”集中管理,才能高效运维动态生效,才是真正的敏捷配置中心 = 微服务的“遥控器”。它让你在不碰代码、不重启服务的情况下,远程调控整个系统的运行状态。
2026-01-05 22:37:45
1069
原创 分布式追踪:一次请求穿越多个服务,怎么查问题
分布式追踪是一种技术,用来记录一个请求在多个服务之间的完整调用链路。请求经过了哪些服务?每个环节花了多长时间?哪一步失败了?耗时最长的是哪个服务?就像给每一次请求贴上一个“唯一身份证号”,不管它走到哪,都能被追踪到。分布式追踪 = 微服务的“行车记录仪”或“GPS 定位”。它让原本“看不见”的请求变得可观测、可分析、可优化。没有追踪的日志,就像没有地图的旅行一次请求的完整路径,比单个服务的日志更重要发现问题的速度,决定了系统的可用性高度。
2026-01-03 16:40:52
1055
原创 熔断与降级:别让一个故障拖垮整个系统
就像家里的空气开关当你同时开空调、电热水器、电磁炉,电流过大时,空气开关会自动跳闸,切断电源,防止电线起火。这就是“熔断”的思想!就像手机没电了关闭后台应用降低屏幕亮度禁用非必要功能虽然体验差了点,但能撑到你找到充电器,这就是“降级”熔断是“止损”,降级是“求生”。它们不是为了让你的系统永远不出错,而是为了在出错时不崩溃、不雪崩、不误伤用户。不要让一个服务的失败,影响整个调用链宁可返回简单信息,也不要让用户等死系统的高可用,不在于不出问题,而在于出问题时还能用。
2025-12-17 22:25:07
896
原创 服务发现:微服务是怎么找到彼此的
服务发现注册自己:“我上线了,我是用户服务,我在 X.X.X.X:3000”发现别人:“我要找订单服务,它在哪?整个过程自动化,无需手动配置 IP服务发现 = 微服务的“通讯录 + 导航仪”。它让服务之间摆脱对 IP 的依赖,实现动态、弹性、高可用的通信。服务启动 → 自动注册服务调用 → 先查注册中心服务下线 → 自动从列表移除有了它,你的微服务才能真正“活”起来,自由伸缩,灵活协作。
2025-12-14 14:11:17
809
原创 API 网关:微服务的大门卫
API 网关是所有客户端访问微服务的唯一入口。它不提供业务功能,而是负责转发请求、安全管理、监控流量客户端 → [API 网关] → 用户服务↓订单服务↓商品服务API 网关不是“功能服务”,而是“治理中枢”。它让微服务架构更安全、更整洁、更易维护。
2025-12-08 22:41:29
442
原创 微服务入门:如何把大系统拆成小服务
服务拆开了,怎么通信?通过 API(接口)用户下单时,订单服务要调用用户服务获取用户信息支付成功后,支付服务要通知订单服务更新状态画功能图:摸清系统结构按业务拆分:一个服务一个职责定义 API:明确服务如何通信独立部署:用 Docker 容器化每个服务联调测试:用 Docker Compose 本地运行微服务不是一蹴而就的,而是从小处着手,逐步演进的过程。
2025-11-30 22:05:08
553
原创 改个按钮颜色,全系统重启?单体架构的痛你经历过吗
单体架构用户管理订单系统支付功能商品展示后台管理全部写在一个项目里,打成一个包(比如.jar.war、可执行文件),部署在一个服务器上开发简单、部署方便耦合度高、难维护、难扩展、部署风险大单体架构:结构简单,适合小服务,系统越大,越要避免“一锅炖”
2025-11-14 22:45:43
544
原创 Docker 监控与日志:如何排查容器问题
容器出问题不可怕,关键是知道怎么查。docker ps—— 看状态—— 看日志(最重要!—— 看细节—— 看资源—— 进去调试掌握它们,你就能快速定位 90% 的容器问题,不再“一脸懵”
2025-11-09 21:49:24
890
原创 Docker 安全:如何安全地运行容器
安全地运行 Docker 容器并不是一蹴而就的事,而是需要从用户权限、镜像选择、资源配置到敏感信息管理等多方面共同把关。通过遵循这些最佳实践,你不仅能大幅降低安全风险,还能让应用更稳定、更易于维护。
2025-11-07 21:38:01
659
原创 Docker 数据持久化:如何保存容器中的数据
方式是否持久是否推荐适用场景容器内部存储❌❌临时数据数据卷(Volumes)✅✅✅✅生产环境、数据库绑定挂载(Bind Mounts)✅✅开发环境、配置共享数据持久化不是可选项,而是使用 Docker 的基本功。只有掌握了它,你才能真正安全地运行数据库、文件服务等有状态应用。
2025-11-03 21:54:59
700
1
原创 容器之间怎么通信?Docker 网络全解析
Docker 推荐使用自定义桥接网络(Custom Bridge Network),它能解决默认网络的所有问题创建自定义网络启动容器并加入网络。
2025-10-31 23:00:17
704
原创 将镜像推送到 Docker Hub 或私有仓库
镜像仓库(Registry)是用来存储和分发 Docker 镜像的服务类型举例适用场景公共仓库Docker Hub开源项目、个人学习私有仓库阿里云 ACR、腾讯云 TCR、Harbor企业内部、敏感项目Docker 镜像的“GitHub”步骤命令登录仓库打标签docker tag <源镜像> <目标镜像>推送镜像docker push <镜像名>推送镜像不是可选项,而是现代开发的标配。它让镜像可共享、可复用、可自动化,是 CI/CD 和 Kubernetes 部署的基础。
2025-10-25 22:38:34
854
原创 了解Docker的多阶段构建(Multi-stage Build)
多阶段构建允许你在一个Dockerfile中定义多个构建阶段,每个阶段可以基于不同的基础镜像。在第一阶段:使用“胖镜像”完成编译、打包在第二阶段:使用“瘦镜像”只复制必要的产物(如可执行文件、静态文件)最终镜像只包含运行所需的内容,不包含构建工具和中间文件。传统方式多阶段构建一个镜像搞定所有分阶段,各司其职镜像臃肿镜像精简安全性低安全性高多阶段构建是编写高质量 Dockerfile 的必备技能,尤其适合生产环境。
2025-10-22 21:58:28
1077
原创 Docker 构建慢?可能是你忘了 .dockerignore
是一个文本文件“在构建镜像时,请忽略这些文件和目录。它的作用和.gitignore非常相似,但它是为服务的关键点虽小,但作用巨大它能显著提升构建速度、减少镜像体积、增强安全性它是专业 Docker 使用的“标配”一句话记住它:.dockerignore 让 Docker 只看到它该看到的文件。
2025-10-20 22:16:51
789
原创 如何用 Docker Compose 管理多个容器
是一个用于定义和运行多容器 Docker 应用的工具。你只需要写一个所有容器自动启动、联网、配置完成传统方式多条docker run命令一个手动管理网络和卷自动创建和连接容易出错、难维护配置即代码,易于共享和版本控制Docker Compose 是管理多容器应用的必备工具,尤其适合本地开发、测试和微服务架构。
2025-10-18 18:57:20
804
原创 docker build 命令全解析:你真的会构建镜像吗
不只是一个命令,它是一个包含上下文、分层、缓存、优化策略的完整流程。构建出高效、安全、轻量的镜像在 CI/CD 中实现快速、稳定的交付真正理解 Docker 的工作原理。
2025-10-15 22:28:40
961
原创 Node.js 和 Java 项目怎么写 Dockerfile
项目类型关键点Node.js先复制,用npm ci,忽略Java先构建 JAR,Docker 只 COPY 并运行,使用 JRE 镜像无论你是前端、后端还是全栈开发者,掌握为不同语言项目编写 Dockerfile 的能力,是迈向自动化交付和云原生的关键一步。
2025-10-12 21:30:48
728
1
原创 Docker 容器 -- 编写你的第一个 Dockerfile
Dockerfile 是一个文本文件,里面包含了一组指令,告诉 Docker 如何一步步构建一个镜像。“制作镜像的步骤说明书”基于哪个基础镜像?要复制哪些文件?安装什么依赖?启动时运行什么命令?什么是 Dockerfile如何编写基本指令如何构建和运行自定义镜像Dockerfile 是自动化交付的第一步,也是 CI/CD 流水线的核心。
2025-10-09 22:11:47
626
原创 Docker 三剑客:镜像、容器、仓库
概念类比作用镜像(Image)软件安装包 / 蓝图包含应用和依赖,用于创建容器容器(Container)正在运行的程序镜像的实例,应用实际运行的地方仓库(Registry)应用商店 / GitHub存储和分发镜像仓库 → 镜像 → 容器。
2025-10-06 22:01:52
1066
原创 什么是容器?它比虚拟机强在哪?
容器是一种轻量级的、可移植的软件打包技术,它把应用程序及其所有依赖(代码、库、配置等)打包在一起,形成一个独立的运行单元。最常见的容器技术是Docker核心特点轻量:只打包应用和依赖,不包含操作系统。快速启动:秒级启动,不像虚拟机要等几分钟。一致性:在开发、测试、生产环境运行结果一致。资源利用率高:多个容器共享主机操作系统,节省内存和 CPU虚拟机是另一种常见的虚拟化技术。它通过Hypervisor(虚拟化层)在一台物理服务器上模拟出多台“虚拟”的计算机。
2025-10-04 21:32:10
893
原创 云原生之CNCF 是什么
CNCF 不是一个公司,也不是一个软件,而是一个推动云原生发展的“引擎”。它通过托管开源项目、制定标准、建设社区,让 Kubernetes、Prometheus 等技术得以快速发展和广泛应用。无论你是开发者、运维、架构师,还是技术决策者,了解 CNCF,就是了解云原生世界的运行规则。
2025-09-27 22:10:08
1062
原创 云原生核心四件套:容器、微服务、K8s、CI/CD
技术解决的核心问题容器环境不一致、依赖冲突微服务单体应用臃肿、迭代慢K8s容器太多,手动管理太难CI/CD发布慢、容易出错它们共同构成了现代软件交付的基础设施更快地响应需求更稳定地运行服务更高效地利用资源容器、微服务、K8s、CI/CD 不是高不可攀的技术,而是现代软件开发的标准工具链。
2025-09-24 21:44:12
744
原创 云原生 vs 传统部署
传统部署,是过去几十年软件运行的主要方式。一台服务器跑一个应用(比如:Web 服务器 + 数据库装在同一台机器)手动安装、配置、启动应用是“大块头”单体架构(所有功能写在一起)升级要停机维护扩容靠“堆硬件”(CPU 不够?换更贵的服务器)问题后果扩容慢流量暴增时系统崩溃发布难改一个按钮要停机半小时故障影响大一个功能出错,整个系统瘫痪环境不一致“在我电脑上好好的”资源浪费大部分时间服务器空跑简单说,传统部署,灵活度低,效率瓶颈明显云原生,是为云计算时代量身打造的。
2025-09-21 19:38:08
662
原创 为什么现在都在谈“云原生”
官方定义(来自 CNCF)云原生技术使组织能够在公有云、私有云和混合云等现代动态环境中,构建和运行可扩展的应用程序。核心包括:容器、微服务、CI/CD、服务网格、声明式 API、不可变基础设施等云原生 = 为云而生的“新物种”传统应用:像一栋砖混结构的房子,盖好后很难扩建,坏了要整体维修。云原生应用:像一辆由乐高积木拼成的智能车,每个部件独立,坏了换一块,堵车时自动拆成几辆小车绕行。云原生的本质,是用一套全新的方式构建和运行软件特性说明弹性伸缩流量大时自动扩容,小时自动缩容高可用。
2025-09-18 22:45:01
506
原创 Pytest 常见问题及其解决方案
Pytest 是一个强大且灵活的测试框架,但初学者在使用过程中难免会遇到各种问题。希望通过这篇文章,你能更好地应对常见的挑战,写出更高效、更稳定的测试代码。测试不是负担,而是保障。写好测试不仅能提高代码质量,还能让你在面对变更时更加从容自信。
2025-09-10 21:28:11
842
原创 Pytest 测试怎么写才不坑:7个高效技巧分享
写测试不是负担,而是给代码买保险。而写“好”的测试,就是让这份保险便宜、可靠、易理赔。易读的测试(别人一看就懂)易改的测试(需求变了也能快速调整)稳定的测试(不轻易失败,失败就有意义)
2025-08-29 22:12:50
944
原创 Pytest 接入CI/CD:实现代码一提交就自动测试
CI(Continuous Integration)持续集成:开发人员频繁地将代码合并到主分支,每次提交都自动运行测试。CD(Continuous Delivery/Deployment)持续交付/部署:在 CI 通过后,自动打包、发布或部署到环境。把 Pytest 接入 CI/CD,是提升项目质量和开发效率的关键一步。它不仅能帮你避免低级错误,还能让团队更有信心地发布代码。
2025-08-25 22:04:22
1180
原创 Pytest 插件怎么写:从0开发一个你自己的插件
写 Pytest 插件并不难!它本质上就是“在正确的时间,执行你想做的事”通过本文的实战,你已经掌握了编写插件的核心方法。无论是统计耗时、生成报告、还是集成监控系统,都可以通过插件实现。
2025-08-21 22:08:58
1048
原创 Pytest + coverage.py:轻松搞定代码覆盖率
你的测试用例执行了多少比例的源代码。语句覆盖率(Line Coverage):多少行代码被执行了分支覆盖率(Branch Coverage):if/else 等分支是否都被测试到函数覆盖率(Function Coverage):多少函数被调用了100% 覆盖率 ≠ 没有 bug,但低覆盖率一定意味着风险!+ Pytest 是提升测试质量的黄金组合。它不仅能帮你发现遗漏的代码,还能让团队对测试进度有清晰的认知。
2025-08-17 21:15:18
961
原创 Pytest 插件使用指南:让你的测试更高效
Pytest 插件是一些可以扩展 Pytest 功能的模块,它们可以修改 Pytest 的行为、添加新命令行参数、提供新的 fixture、生成报告等。Pytest 本身就是一个核心框架,其大部分功能都通过插件来实现。Pytest 插件系统是其强大生态的基石。通过合理使用插件,你可以轻松实现测试报告生成、覆盖率统计、并行执行等功能,极大提升测试效率和质量。对于新手来说,从几个常用插件入手,逐步深入,是掌握 Pytest 的一条捷径。
2025-08-15 21:17:55
1014
原创 Pytest 全流程解析:执行机制与报告生成实战指南
通过本文的学习,你应该已经掌握了以下内容:✅ Pytest 的基本执行流程与机制✅ 如何运行测试、查看结果、调试失败用例✅ 如何生成 HTML、JUnit XML、Allure 等多种格式的测试报告✅ 如何结合插件提升测试效率与可视化能力✅ 使用 Pytest 的最佳实践与注意事项掌握 Pytest 的执行流程和报告生成机制,不仅能帮助你更好地理解和调试测试用例,还能为自动化测试、持续集成打下坚实基础。
2025-08-11 22:09:43
1257
原创 Pytest 提升测试效率:你必须知道的 pytest.ini 技巧
pytest.ini是 Pytest 的配置文件之一(还有 pyproject.toml、setup.cfg 等),用于集中管理 Pytest 的运行行为。它通常放在项目根目录下,Pytest 在启动时会自动读取该文件中的配置。说明:虽然文件名是.ini,但它使用的是类 INI 格式,并非传统意义上的 Windows INI 文件。pytest.ini是 Pytest 项目中不可或缺的一部分。它不仅能帮你简化命令行操作,还能提升团队协作效率和测试可维护性。对于新手来说,掌握pytest.ini。
2025-08-09 11:43:45
6091
原创 Pytest Markers 使用指南:轻松对测试用例分类管理
标记(Marker)是 Pytest 提供的一种机制,用于给测试用例添加元数据(metadata),比如“这是一个冒烟测试”、“这个用例依赖网络”等。你可以通过标记来筛选执行特定的测试用例,也可以结合插件实现更高级的功能。上面的和就是标记。Pytest 的标记系统是组织和管理测试用例的强大工具。通过合理使用标记,你可以实现对测试用例的灵活分类、精准执行和高效维护。对于新手来说,从几个常用标记(如smokeslow)开始,逐步构建自己的标记体系,是提升测试效率的有效方式。
2025-08-06 22:06:32
838
原创 Pytest 参数化进阶:掌握 parametrize 的多种用法
本文深入介绍Pytest参数化测试@pytest.mark.parametrize的高级用法,包括:嵌套参数化实现多维度组合测试、自定义测试ID增强可读性、结合skip/xfail处理特殊用例、类级别参数化、从外部文件加载测试数据以及与fixture结合使用等技巧。文章通过代码示例展示了每种用法的具体实现,并总结了参数化测试的最佳实践,帮助开发者编写更高效、清晰的自动化测试代码。这些技巧能显著提升测试覆盖率和可维护性,是Pytest测试框架中提高测试效率的利器。
2025-07-27 20:27:56
1298
空空如也
空空如也
TA创建的收藏夹 TA关注的收藏夹
TA关注的人
RSS订阅