
DevOps企业级项目实战
文章平均质量分 94
【干货】DevOps企业级项目实战。
该专栏将向大家介绍、讲解DevOps涉及的一些相关知识,并分享在实际项目中的经验和实施过程。通过实际项目的案例讲解方式,介绍如何在企业项目中实施DevOps以及DevOps对企业项目的应用的好处。本专栏也将涉及不同云技术及微服务技术等领域。
小涵
博客:https://blog.mylearning.top/
我的QQ:3049720393
欢迎交流!
展开
专栏收录文章
- 默认排序
- 最新发布
- 最早发布
- 最多阅读
- 最少阅读
-
【DevSecOps】使用 Semgrep 进行代码安全检查
在这个上下文中,热点是代码中可能包含安全漏洞的部分。您不是“总是”在寻找特定的问题,而是在寻找不良实践、常见错误、不安全的配置,简而言之,就是通常会发生坏事的地方。在现代社会软件项目中审查每一行代码是不可能的。因此,我们搜索一个心理或书面的关键字列表,如SSLv3MD5memcpy或。我们不确定我们会找到什么,但这些都是寻找错误的好地方。我介绍了源代码中hot spots的概念。这些是可能包含漏洞但应手动审查的位置。结果很杂乱,因此热点规则不适合 CI/CD 管道和自动警报。原创 2025-04-13 15:49:55 · 187 阅读 · 0 评论 -
后端代码审查实践要点
通过遵循此清单,您可以确保后端代码具有高质量、安全性并且易于维护。定期进行代码审查对于在开发过程的早期阶段发现问题并提高整体代码质量至关重要。原创 2025-04-09 18:58:04 · 53 阅读 · 0 评论 -
【容器】设备上没有剩余空间的错误排查处理
设备上没有剩余空间是一个相对知名的错误,可以发生在运行基于Linux的程序的环境中。如果存储位置已满,就会发生这种情况,错误表明该位置不再有空间来写入/存储更多数据。这本身并不是Azure容器应用特有的,但由于两个核心原因,这里可能会出现这个问题:镜像大小容器向容器文件系统写入大量文件(例如缓存、大文件、大量文件等)。重要的是写入本地文件系统,挂载的Azure文件卷。使用Azure文件持久化的卷将数据存储在文件共享中。写入本地容器文件系统的数据存储在主机上存储层的共享位置。原创 2025-04-01 18:38:01 · 292 阅读 · 0 评论 -
【Infra】理解代理、反向代理和负载均衡器
无论你是开发者还是仅仅对互联网的内部运作感到好奇,我们都会将这些复杂的概念分解成易于理解的部分。通过有效利用这些工具,你可以确保最佳性能,保护你的数据,并提供无缝的用户体验。他们只与你的助理沟通。它位于你餐厅内部就餐区(你的服务器)前方,并管理来自客户端(用户)的传入请求。代理服务器作为你的私人网络(你的笔记本电脑)和公共互联网之间的中间人。接待员引导你到正确的餐桌,确保你舒适地坐下。在这个场景中,你是浏览互联网的笔记本电脑,而你的个人助理就是一个。你选择的具体工具将取决于你的需求和基础设施。原创 2025-03-25 20:56:03 · 148 阅读 · 0 评论 -
【DevOps】Android App工程的QA自动化实践
在我们的项目,我们过去5年一直在编写应用代码库(20万行代码),但每当新的PR或提交合并到代码库时,我们没有进行任何验证,您只需要从其他同行那里手动获取审查。有时这会导致无法编译的代码,单元测试失败,应用启动时崩溃,内存泄漏。以前我们通常在发布前2-3天评估应用大小,在这种情况下,很难找出导致apk大小增加的提交,考虑到我们有30天的发布周期,并且有10个开发者定期在该分支上提交。,我们能够跟踪每次新提交的Apk大小,并且如果与之前的构建相比,应用大小超过了特定的阈值增加,它还会使PR无法合并。原创 2025-03-25 19:08:13 · 343 阅读 · 0 评论 -
【Dev&Ops】使用RocksDB优化服务器启动时间实战记录
在我们的搜索基础设施中,基础服务Mustang管理着SOLR索引。目前,我们针对不同的业务单位在多个分片上运行。每个分片根据数据量和针对该分片的请求量托管不同数量的副本。每个副本包含两个主要数据组件:存储在磁盘上的数据(由SOLR提供的产品相关数据)和存储在内存中的数据(针对快速变化的属性,称为NRT()数据)。在应用程序启动时,通过从中央Redis集群获取数据来构建内存中的数据结构。这些内存中的数据结构也通过Kafka管道进行更新,以保持与Redis的同步。Mustang的现有架构。原创 2025-03-23 00:15:00 · 346 阅读 · 0 评论 -
【微前端】使用微前端解决碎片化的用户界面问题实践
由于选择器是由不同的团队编写的,代码分布在不同的仓库中,发现和管理它们可能会很困难。将单体前端分解为可管理的、可独立部署的单元,提高了开发者平台用户界面的可维护性和可扩展性。与iframe不同,它提供了完全的灵活性,以我们选择的方式构建微前端之间的集成。通过微前端,模块化架构确保了组件之间的独立性,减少了在做出更改时产生副作用的风险。这确保了一个微前端的更改不会影响其他微前端。本文记录了我们如何采用微前端架构来解决现有应用程序中碎片化UI的固有问题,为更敏捷、可扩展和可维护的开发和发布环境铺平了道路。原创 2025-03-22 11:20:58 · 389 阅读 · 0 评论 -
【k8s】利用Kubernetes卷快照实现高效的备份和恢复
对于像公司这样的组织来说,数据是其核心和灵魂,确保可靠的备份和恢复对于保护数据和维护业务连续性至关重要。随着Kubernetes在公司的服务和数据库中的采用日益增多,管理动态、容器化应用程序中的持久数据为传统的备份策略带来了新的挑战。确保数据的保护和可恢复性对于可用性、灾难恢复和合规性至关重要。为了备份部署在Kubernetes上并将数据存储在持久卷中的数据库,我们探索了一些传统的备份方法,例如使用边车容器的手动转储或外部备份代理,但发现它们效率低下、复杂且非通用。原创 2025-03-21 21:07:21 · 319 阅读 · 0 评论 -
【DevOps】使用Argo和Azure Kubernetes服务实现GitOps方案
首先,什么是GitOps?它与DevOps相同吗?我很高兴你问了这个问题。让我们先回顾一下什么是DevOps:“DevOps是人员、流程和产品的结合,以实现向最终用户持续交付价值。” ~Donovan说得最好 - DevOps是几个关键因素的组合:人员、流程和产品 - 但它始于人员。开始使用DevOps涉及文化转变,这意味着它远不止是一些流行语,如敏捷持续集成持续部署自动化等。原创 2025-03-15 09:38:19 · 200 阅读 · 0 评论 -
【DevOps】使用Azure DevOps为Azure静态网站配置多阶段部署
Azure静态网站可以自动配置Azure DevOps Pipeline来构建和部署您的应用程序。这是快速启动和运行您的应用程序的好方法。对于生产应用程序,通常首先将应用程序部署到暂存环境,然后再部署到生产环境。在本文中,我们将引导您如何配置一个健壮的Azure DevOpsPipeline,该Pipeline将执行以下操作:构建应用程序、Azure Functions API和Playwright测试将应用程序部署到暂存环境自动使用Playwright测试验证暂存应用程序等待手动批准将您的应原创 2025-03-13 21:07:42 · 181 阅读 · 0 评论 -
【DevOps】Azure Kubernetes 服务 (AKS) 集群中安装ArgoCD
Argo CD 是一个声明式的 GitOps 持续交付工具,用于 Kubernetes。它允许您使用 Kubernetes 清单定义应用程序的期望状态,并自动与您的集群同步。Argo CD 还提供了一个 Web UI 和 CLI,用于监控和管理您的部署。如果检测到更改,ArgoCD 将自动更新 GitOps 工具。每个 Pod 都有一个唯一的 IP 地址,如果没有服务,则不会在集群外部公开。Base64 是一种编码和解码技术,用于将二进制数据转换为 ASCII 文本格式,反之亦然。原创 2025-03-12 20:37:03 · 193 阅读 · 0 评论 -
【DevOps】通过 Azure DevOps 部署启用私有端点的应用服务
当启用私有端点并拒绝公共流量到 Web 应用程序时,所有到这个应用的公共流量都会被切断。由于部署代理的范围有一系列的 IP 地址,它们有一个公共 IP。有一种常见的场景是,客户希望他们的应用服务部署在私有网络内部,并且不能被公共网络访问。Web 应用程序启用了私有端点,这意味着入站流量需要来自与 Web 应用程序相同子网中的私有 IP 或具有访问此应用服务权限的 IP。作为解决方案,我们可以在防火墙中允许 IP 范围列表,或者使用自托管代理进行部署。然后是新的代理,并选择你的构建机器的操作系统。原创 2025-03-12 17:17:19 · 305 阅读 · 0 评论 -
【DevOps】 基于数据驱动的Azure DevOps案例实现
他们表示希望摆脱“脚本管理业务”,并希望有一个新的系统,该系统具有基于Web的界面,非IT员工可以使用该界面将应用程序和系统部署到Azure的新旧订阅中。最后,CustomerModelComponentParms表为OptraMetaModel表中包含的脚本中的每个参数(s)提供要使用的值,允许在客户和部署之间重用模型,每个模型都有一组唯一的参数。请注意输入和输出文件的位置。为了在Web页面和ADO之间进行身份验证,使用了个人访问令牌(PAT),因为从POC的角度来看,这是配置安全的最快、最简单的途径。原创 2025-03-12 11:12:13 · 200 阅读 · 0 评论 -
为企业级AI交互系统OpenWebUI集成LDAP用户权限认证(2)
本文介绍如何OpenWebUI系统集成LDAP认证服务,及其用户权限及用户组设置。原创 2025-03-08 16:42:30 · 764 阅读 · 0 评论 -
为企业级AI交互系统OpenWebUI集成LDAP用户权限认证(1)
本文介绍如何安装启用LDAP认证服务,及其用户权限及用户组设置。原创 2025-03-08 13:52:06 · 276 阅读 · 0 评论 -
【DevOps构筑篇】用SELinux强化Docker的安全性
像Docker这样以特权运行的服务的子进程,如果不在适当的安全设置下,可能会遭受攻击者的损害。如果容器受到损害,SELinux是能够将宿主机侧的损害限制到最小程度的技术之一。禁用SELinux可能会让系统开发者操作起来更加方便,但这对攻击者来说也是一样的。攻击者可能会认为这更容易作为攻击的跳板。因此,禁用SELinux与禁用防火墙一样,是一种危险的行为。SELinux是RedHat系列默认搭载的功能。由于SELinux限制包括Docker容器在内的进程,因此可以帮助维持更高的安全性。原创 2025-02-20 15:05:17 · 636 阅读 · 0 评论 -
【DevOps工具篇】Nexus的仓库详解
这是我们的的续篇。在上部分,我们了解了是什么以及为什么它很重要。我们通过在Linux上安装Nexus完成了那一部分,我还展示了如何启动Nexus容器。在这一部分,我们将探讨Nexus中的仓库类型。原创 2025-01-08 13:00:00 · 171 阅读 · 0 评论 -
【DevOps工具篇】 成果物发布管理:Nexus及安装方法
简单来说,可以将其视为运行构建命令后得到的副产品。如果您使用过React框架,您运行过命令,然后立即得到一个构建文件夹,那就是一个成果物。它可以是任何格式,可能是zip格式,.jar格式,或其他任何格式。它只是我们在开发后得到的文件夹,可以轻松地从一台服务器传送到另一台服务器。Nexus是一个成果物管理器,这意味着它帮助我们保存、检索成果物,并在我们需要时对它们进行备份。Nexus由Sonatype。原创 2025-01-08 12:00:00 · 127 阅读 · 0 评论 -
【DevOps工具篇】 如何使用SonarQube及在Jenkins Pipeline中集成
SonarQube是一个用于提高代码质量和安全的强大工具。通过将其集成到您的开发工作流程中,您可以确保代码库保持干净、可维护和安全。无论您是在处理一个小项目还是大型企业应用程序,SonarQube都可以帮助您达到更高的代码质量标准,并在您的团队中培养持续改进的文化。原创 2025-01-07 18:08:47 · 487 阅读 · 0 评论 -
【DevOps工具篇】 SonarQube详解
SonarQube 是一个强大的工具,用于提高软件开发中的代码质量。SonarQube 是由 SonarSource 开发的开源平台,用于持续检查代码质量。它支持 30 种主要编程语言和各种插件。它充当代码检查器,分析代码以识别错误、缺陷、问题、错误、重复和安全漏洞。SonarQube 是使用 Java 编程语言开发的。可以将其视为一个数字助手,帮助程序员创建可靠和安全的软件。原创 2025-01-07 17:46:27 · 296 阅读 · 0 评论 -
【DevOps趣谈篇】如何展示你的DevOps工作成果
沟通是DevOps工程师最重要的软技能之一。公司中的DevOps任务通常对其他团队来说是不可见的。DevOps中的沟通之所以重要,不仅因为它有助于连接公司内的不同团队,而且你可以利用它向其他团队和管理层展示你的努力。让我们深入探讨一下,看看沟通技巧是如何让DevOps的隐形工作变得可见的。原创 2024-12-24 20:41:15 · 89 阅读 · 0 评论 -
【DevOps趣谈篇】可能你并不适合做DevOps
虽然成为DevOps工程师有很多好处,但也有很多缺点。在我看来,每个好处都可能变成不利因素。这取决于你是什么样的人。在本文中,我将讲述为什么有些人不应该选择DevOps作为职业的原因。选择DevOps作为你的职业,你可能会后悔的一些原因如下。原创 2024-12-23 09:45:44 · 104 阅读 · 0 评论 -
【DevOps工具篇】Jenkins的Pipeline(流水线)和Shared Library(共通库)
Jenkins 中最常用的流水线类型是单一流水线和多分支流水线。自由风格的项目很少使用。那么什么是自由风格流水线呢?自由风格是一个简单的项目,您可以配置一切,Jenkins 将构建您的项目,您可以使用任何 SCM(源代码管理)。如果您想部署什么东西,想执行什么操作。然而,大多数流水线都是基于 CI/CD 流水线项目的。它基本上在代理上运行。代理基本上是执行您所有步骤的执行器。我将向您展示一些代理以及流水线,这只适用于您 github 的单个分支。重新定位,假设您有一个产品原创 2024-12-20 15:51:30 · 382 阅读 · 0 评论 -
【DevOps工具篇】Jenkins与LDAP认证
访问控制是保护Jenkins环境免受未授权使用的主要机制。,它告诉Jenkins环境如何以及从哪里获取用户(或身份)信息。通常也被称为“认证”。配置,它告诉Jenkins环境哪些用户和/或组可以访问Jenkins的哪些部分,以及访问的程度。将Jenkins与LDAP(轻量级目录访问协议)集成对于多个原因来说都很重要,特别是在较大的组织或企业中,用户管理和访问控制至关重要。原创 2024-12-20 09:30:00 · 129 阅读 · 0 评论 -
【DevOps工具篇】Jenkins的Master-Slave Agent(主从)架构
Jenkins拥有强大的主从架构功能,可以实现分布式构建。本文我们将学习如何在Ubuntu机器上建立从节点并与Jenkins主节点集成。原创 2024-12-20 10:00:00 · 286 阅读 · 0 评论 -
【DevOps工具篇】CICD之Jenkins速通
Jenkins是一个强大且灵活的自动化服务器,可以显著提高您的软件开发工作流程。通过遵循这个全面的教程,您现在应该已经对如何安装、配置和使用Jenkins来自动化软件开发生命周期的各个阶段有了扎实的理解。无论您是在构建简单项目还是复杂应用程序,Jenkins都提供了工具和功能来帮助您轻松实现持续集成和持续交付。祝您构建愉快!原创 2024-12-20 08:00:00 · 104 阅读 · 0 评论 -
【DevOps工具篇】Gitlab Runner设置(使用Docker in docker作为Runner)
在这篇文章中,我们将使用另一种称为“Docker in Docker”的方法,在GitLab运行程序服务中注册docker执行器,以便构建、测试和部署我们的容器化项目。Docker in DockerDocker in Docker简而言之,就是你在docker容器内运行一个docker引擎(守护进程),而不是在宿主机上运行docker引擎。如果你想要在一个专用的docker引擎中管理容器,与宿主机的docker引擎隔离,并且担心访问宿主机的docker引擎可能会出现问题,那么Docker in Do原创 2024-12-18 14:32:11 · 499 阅读 · 0 评论 -
【DevOps工具篇】Gitlab Runner设置(使用Docker Executor作为Runner)
推荐超级课程:强烈建议学习本文之前,先阅读学习此篇:在本篇文章中,我们将在GitLab runner服务内注册docker executor,以便构建、测试和部署我们的容器化项目。在注册docker executor之前,我们需要在文件中进行少量更新,将宿主机上的文件挂载到GitLab runner容器中。更新后的文件应如下所示:为什么需要将docker.sock挂载到GitLab Runner中?当你在机器上安装docker时,会安装两个不同的程序:Docker服务器通过套接字(通过网络或通过文件)接原创 2024-12-19 10:30:00 · 170 阅读 · 0 评论 -
【DevOps工具篇】Gitlab Runner设置(使用服务器作为Runner)
我们通过创建仓库、添加用户、克隆和推送到我们的仓库,对GitLab服务器操作得很熟练。但是,如果我们需要构建项目或运行一些测试,我们就无法做到,因为我们没有任何GitLab Runner服务。GitLab Runner负责管理项目流水线,而GitLab服务器负责管理仓库、用户和其他配置。原创 2024-12-19 02:15:00 · 91 阅读 · 0 评论 -
【DevOps工具篇】SCM之Gitlab
GitLab被IT专家青睐,以便作为团队执行软件项目。您可以通过官方网站免费作为成员开始使用这个仓库服务,而无需在计算机上安装任何东西。如果您想在自有服务器上安装GitLab并付费,您可以借助新的社区功能再次提供远程服务器存储服务,而无需付费。GitLab为许多不同用户参与准备的项目提供无限磁盘空间和无限代码存储选项,以多种方式将编码体验提升到下一个层次。这个服务仓库在安全措施、代码审查、持续交付和错误修正方面提供最佳效率,同时也使得程序员更容易在社区内提升自己。原创 2024-12-18 12:11:23 · 303 阅读 · 0 评论 -
【DevOps工具篇】Redmine插件开发流程
本文将简单快速介绍如何进行Redmine插件的开发流程。原创 2024-12-18 11:16:44 · 297 阅读 · 0 评论 -
【DevOps工具篇】PM(Project Management)之Redmine
这篇文章介绍了开源项目管理工具 Redmine,包括其历史背景、功能特点、安全性和安装方法。Redmine 提供了多种项目管理功能,如任务跟踪、时间管理、问题跟踪、文档管理等,并支持多种插件和主题,可满足不同项目的需求。文章还详细介绍了 Redmine 的安装步骤和插件、主题的安装方法,并列举了最受欢迎的插件和主题。原创 2024-12-18 10:59:01 · 590 阅读 · 0 评论 -
【DevOps基础篇】SCM(Source Code Management)
总的来说,Git因其分布式特性和强大的分支管理功能在现代开发中更受欢迎,尤其是在开源项目中。Git Flow 和 GitHub Flow 是两种常见的基于 Git 的开发工作流程,它们为软件开发过程中的代码管理提供了一套指导原则和最佳实践。Git Flow 是由 Vincent Driessen 提出的一个扩展的 Git 工作流程,它定义了一个围绕项目发布的严格分支模型。GitHub Flow 是由 GitHub 所推广的一个简化的工作流程,它适用于持续集成和持续部署的环境。原创 2024-12-13 15:48:00 · 295 阅读 · 0 评论 -
【DevOps工具篇】Docker的DNS原理
在 Docker 上下文中,DNS 解析是指将域名转换为同一网络上运行的容器的 IP 地址的过程。Docker 会自动将每个容器的名称映射到 Docker 网络的 DNS 服务器中的 IP 地址,从而使容器能够将域名解析为正确的 IP 地址。该网络中的容器将使用指定的 DNS 服务器进行解析,而不是使用默认 Docker 守护程序的 DNS 解析器。在此图中,Docker 守护进程充当 DNS 代理,接收来自容器的 DNS 查询并将其转发到适当的 DNS 服务器进行解析。原创 2024-10-15 15:51:07 · 484 阅读 · 0 评论 -
【DevOps工具篇】使用Ansible部署Keycloak oauth2proxy 和 单点登录(SSO)设置
Ansible 是一种基础设施即代码定义语言,Keycloak 是一种 OpenID-Connect 提供者、认证代理和可以处理用户联合的工具。在本文中,我将描述如何通过 Ansible 完全基于模型创建可扩展的 Keycloak 单点登录(SSO)设置。要跟进,您需要对 Docker(compose)、Ansible、代理、Linux 和 OpenID-Connect 有基本了解。原创 2024-04-04 21:47:24 · 828 阅读 · 0 评论 -
【DevOps工具篇】Keycloak中设置与OpenLDAP认证集成
Keycloak 允许用户与 AD/LDAP 联合。本教程将引导您完成使用 OpenLDAP 服务的用户联合。了解更多信息, 请参考。Keycloak 支持多种 LDAP 服务,包括 Microsoft AD 和 OpenLDAP。本教程将在同一个 VPC 中运行一个 OpenLDAP 服务,并在此演示中使用 Keycloak 服务。原创 2024-04-04 20:08:46 · 1108 阅读 · 0 评论 -
【DevOps工具篇】Keycloak中设置LDAP认证
启用Keycloak中的LDAP身份验证后,您可以使用存储在LDAP中的用户信息实现SSO。这样,您可以轻松将原本在登录时需要引用LDAP服务器的应用程序添加到Keycloak作为SSO协作对象中。除了身份验证外,我们还尝试将存储在LDAP中的用户信息批量导入到Keycloak,或者从Keycloak向LDAP中导入用户信息。我们总结要做的三件事如下。原创 2024-04-04 20:02:19 · 1968 阅读 · 0 评论 -
【DevOps工具篇】Keycloak安装配置及脚本化
当我们执行[myrealm-keycloak-configuration.sh]脚本以启动一个全新的Keycloak实例时,它将运行并以完全自动化的方式进行设置。在所有即将发布的教程中,将应用相同的配置Keycloak的过程。与大多数关于Keycloak的其他博客/教程/文章的一个重大区别是,我们通过使用Keycloak的。虽然存在其他用于脚本化配置的替代方法,但是管理CLI在所有运行时环境中都可用,并且可以直接使用。realm,并请求一个经过身份验证的会话,该会话将用于所有进一步的调用。原创 2024-04-04 11:14:16 · 581 阅读 · 0 评论 -
【DevOps工具篇】身份验证管理及SSO登录:Keycloak
在数字时代,并确保是至关重要的。在新项目中担任的第一个任务中,我被实现。当我深入研究这篇旨在强调重要性并阐明的文章时,我意识到它在确保安全和个性化用户体验方面扮演的。在这一领域起着至关重要的作用,作为防止和其他危害的,同时促进。原创 2024-04-04 10:23:45 · 455 阅读 · 0 评论 -
【DevOps工具篇】安装 LDAP 管理 GUI PhpLdapAdmin
中有配置文件的示例。复制并创建 config.php 文件,并进行配置,这样就可以用 phpLDAPadmin 管理 LDAP 服务器了。对于 PHP5.5 以上版本,需要应用补丁。从以下网址获取补丁文件(phpldapadmin-1.2.3-php5.5.patch)。要能够远程管理 LDAP 服务器,需要进行以下设置。准备如下 LDIF 文件。需要设置使得从 Web 服务器可以访问到 phpLDAPadmin。可以从以下网址下载 phpLDAPadmin。使用 LDAP 实用工具进行配置更改。原创 2024-04-02 03:00:00 · 284 阅读 · 0 评论