一、简介 Java虚拟机(JVM,Java Virtual Machine)是一种虚拟计算机,它提供了一个运行环境,使得编译后的Java程序可以在几乎所有的计算机平台上执行,而无需针对每个平台进行单独的编译。以下是JVM的一些关键概念和特点: 平台独立性 : JVM的核心价值在于它实现了“一次编写,到处运行”的理念。Java源代码被编译成字节码(Bytecode),这是一种中间语言,由JVM解释并在本地平台上执行。这意味着相同的字节码可以在不同的操作系统和硬件架构上运行,只要存在对应的JVM实现。 字节码与JVM : Java编译器将Java源代码编译成字节码,字节码是一种低级别的指令集,由JVM解释或即时编译(JIT)成机器码执行。字节码的使用保证了程序的安全性和可移植性。 内存管理 : JVM管理着应用程序的内存分配和垃圾回收。它分为几个主要的内存区域,包括: 堆(Heap) :用于存储对象实例和数组。 方法区(Method Area) :存储类信息、常量、静态变量、即时编译器编译后的代码缓存。 栈(Stack) :线程私有的,用于存储局部变量、操作数栈、动态链接和方法出口.... Java虚拟机--简介 JVM
一、简介 1.1 定义 DevOps 是一种文化和哲学,它强调软件开发 (Dev) 和 IT 运维 (Ops) 之间的紧密协作与整合,目的是提高软件产品的交付速度和质量。DevOps 的核心理念在于打破传统软件开发过程中开发团队和运维团队之间的壁垒,通过自动化和持续改进的方法来缩短从开发到部署的时间,并确保整个流程的高效率和可靠性。 DevOps 的关键实践包括: 持续集成 (CI) :开发人员频繁地将代码提交到共享的存储库,自动化构建和测试确保每次提交的质量。 持续交付 (CD) :软件可以随时被部署到生产环境,自动化测试和部署管道保证了软件的可部署性。 持续部署 (CD) :自动将所有更改部署到生产环境,无需人工干预。 基础设施即代码 (IaC) :使用代码来定义和管理基础设施,确保一致性、可重复性和可审计性。 监控和日志记录 :实时监控系统性能和健康状况,收集数据以便分析和改进。 自动化 :自动化所有可以自动化的任务,减少人为错误和加快部署速度。 文化 :鼓励开放沟通、协作和共同承担责任,促进团队之间的信任和透明度。 反馈循环 :快速收集用户反馈并将其纳入开发流程,以快速响应市场.... 有更新! DevOps学习笔记 DevOps
一、简介 SonarQube官网 SonarQube是一个用于持续检查代码质量的静态代码分析平台。它提供了自动化的代码审查工具,帮助开发团队持续监测和改进代码的质量。SonarQube可以检测并报告多种代码质量问题,包括: 重复代码 (Duplication):找出代码中的重复部分,减少维护成本。 潜在的bug (Bugs):识别可能导致运行时错误或逻辑问题的代码模式。 代码规范 (Code Smells):检查不符合最佳实践或编码标准的代码结构。 安全性漏洞 (Security Hotspots):标识可能的安全风险点,如SQL注入或跨站脚本攻击。 缺少或过度的注释 :确保代码有适当的文档化。 设计问题 (Design):分析代码架构和设计模式,避免不良设计如“意大利面条代码”。 测试覆盖率 (Test Coverage):测量单元测试对代码的覆盖程度。 SonarQube支持多种编程语言,如Java、Python、C#、JavaScript、PHP等,并且可以集成到持续集成(CI)和持续部署(CD)流程中,确保每次代码提交都经过质量检查。 SonarQube由SonarSource.... 有更新! docker compose安装SonarQube+SonarScanner centos
一、简介 K8S简介参考官网即可 Kubernetes 文档 | Kubernetes (p2hp.com) 二、环境搭建 准备两台2核4GB虚拟机 2.1 KuboardSpray 使用Kuboard安装K8S,官方文档见使用 KuboardSpray 安装kubernetes_v1.23.1 | Kuboard 版本说明,选择安装k8s-1.19版本,因为1.20版本弃用了docker 2.2 检查环境 2.2.1 检查操作系统版本兼容 # 在 master 节点和 worker 节点都要执行 cat /etc/redhat-release 2.2.2 检查hostname # 此处 hostname 的输出将会是该机器在 Kubernetes 集群中的节点名字 # 不能使用 localhost 作为节点的名字 hostname 设置一下两台服务器的hostname 一台设置为slave3 一台设置为slave4 # 分别在两台服务器执行 hostnamectl set-hostname k8sMaster echo "127.0.0.1 $(hostname)" >&g.... 有更新! Kubernetes的安装和基础操作 DevOps
vi /etc/docker/daemon.json { "registry-mirrors": [ "https://registry.cn-hangzhou.aliyuncs.com", "https://docker.m.daocloud.io", "https://huecker.io", "https://dockerhub.timeweb.cloud", "https://noohub.ru" ] } systemctl daemon-reload systemctl restart docker 有更新! docker hub无法访问处理方法 程序人生
一、定义 1.1 简介 Jenkins 流水线(Pipeline)是一种用于实现持续集成(CI)和持续交付(CD)的工具,它允许用户以代码的形式定义整个软件构建、测试和部署的过程。流水线使用一种特定的脚本语言(Groovy)来编写,这种脚本直接在 Jenkins 服务器上运行,允许高度的定制化和灵活性。 Jenkins 流水线有两种类型: 声明式流水线(Declarative Pipeline) : 这是最常用的流水线类型,它以 YAML 样式的语法来编写,使得流水线的结构和配置更加清晰易读。在声明式流水线中,你主要描述你想要什么结果,而 Jenkins 负责如何达到那个结果。声明式流水线的语法较为简洁,易于理解。 脚本式流水线(Scripted Pipeline) : 这种类型的流水线使用 Groovy 语言编写,提供了更高的灵活性和控制力,因为你可以访问完整的 Groovy 语言功能。脚本式流水线适用于需要更复杂逻辑的情况,但同时也可能更难维护和理解。 流水线可以存储在源代码仓库中(如 Git、SVN 等),这样就实现了流水线的版本控制,这也是持续交付实践中的一个重要组成部分。这种.... jenkins流水线操作 jenkins