Shi Hai's Blog

随遇而安

持续集成与持续交付

错误的累计性 错误越多,删除每个错误就越困难。部分原因是我们遇到了交错的错误,其中故障表现实际是多个故障叠加的结果,这使得更难找到每个故障。 这也是心理上的影响,当错误很多时,人们就没有精力去寻找和消除错误。 快速反馈 频繁部署很有价值,因为它使我们的用户能够更快地获得新功能,更快地对这些功能提供反馈,并且在开发周期中通常会变得更加协作。 这有助于打破客户和开发之间的障碍,这些障碍是成功软件...

HW机考总结

基本介绍 华为软件研发工程师的面试流程主要有:机考->技术面->综合面->HR面->发Offer。 机考:在华为整个面试环节通过率应该是最低的,可能只有50%左右的通过率; 性格测试:不是太有“个性”同学一般都能过,最近压力大的同学建议调整放松两天后再考; 技术面:这个大概率是目标部门的技术专家做的面试,一般情况下主要围绕你的实习&实践经验做的考察,也会有个...

2024云栖大会笔记

云上DevOps自动化的最佳实践 云上成本管理治理流程 成本管理和组织、业务、流程等都有关系,如果有资源的浪费,就会有降配等动作。通过资源的成本分析、成本的异常分析,反向驱动成本降低。 把企业管理和云上管理联系在一起,通过不同维度的识别就可以看到企业的不同情况,通过各个业务单元自治方式实现全企业的管理。企业可能存在多账号,通过标签进行多账号间的管理从而实现不同的策略。 通过资源使用率来管理成...

谷歌工程生产力团队(EngProd)

一、背景 谷歌早期只有少数软件工程师负责开发、测试和发布软件。但随着用户规模的增长,工程师开始专注于特定角色,从而在开发过程中实现更大的规模: 测试工程师(TE: Test Engineer):测试新产品和系统集成; 发布工程师(RE: Release Engineer):将代码发布到生产; 站点可靠性工程师(SRE: Site Reliability Engineer):24小时*7天的...

A2研发团队使用AI情况调研分析

纯摘抄性质的搬砖。。 A1 设计 Claude3 Sonnet Claude3 Sonnet通过模型可以辅助研发人员达成分析阶段的需求分析、绘制各类UML图、领域模型设计,并生成相关代码。 注:Amazon投资了Anthropic公司。 生成式 AI 技术辅助软件系统设计开发 开发 Bedrock Claude CodeCoach 本项目是使用Amazon Bedrock和Anthropi...

Golang语言-变量隐藏(shadowing)

背景介绍 :=是一个简短变量声明,通过此符号我们可以定义一个变量并进行赋值。Golang语言的一个指导设计原则就是让语法更整洁。比如:我们在if、for等语句中定义本地变量。但使用此申明有一个风险,那就是作用域范围。如果使用不当可能会导致变量屏蔽(shadowing)。 检测手段 package main func main() { x := 1 println(x) ...

libvirt架构学习

目标和术语 目标 提供一个公共且稳定的软件层,足以安全地管理节点(node)(可能是远程节点)上的域(domain)。 术语 节点(node):是一台物理机器; 虚拟机管理程序(hypervisor):是一个软件层,允许将一个节点虚拟化为多个虚拟机,且虚拟机中的配置可能与所在节点不同; 域(domain):是虚拟机管理程序提供的虚拟机上运行的操作系统实例(或容器虚拟化情况下的子系统); ...

python日志输出全局脱敏

一、背景介绍 考虑这个问题的初衷是一些token、password等可能被会被开发同学编码过程不注意输出出来,而且现在日志保存会保留一段时间,如果服务被攻击了,这些敏感信息可能就会被非法利用。为了解决这个问题,想从编程语言在对日志进行IO输出时就能默认对输出流进行一定的过滤。 Go语言:现在Go语言日志输出Log生态太多,没有顶层控制能力,所以需要结合Log生态考虑,比如:我们使用klog...

通过libvirt创建虚拟机

一、工具准备 我们可以使用云上的虚拟机来安装libvirt,如果没有云上虚拟机也可以选择安装一个virtualBox来创建桌面级的虚拟机。 1.1 安装VirtualBox VirtualBox下载地址,如有需要请自行下载和安装。 二、调用libvirt 2.1 开启硬件辅助虚拟化 虚拟化技术有很多种:软件模拟、全虚拟化(KVM、VMWare)、半虚拟化(Xen)、硬件辅助虚拟化(Intel...

在docker上运行nova-compute

测试左移需要通过和物理环境解耦的来实现,否则仅测试用例的测试左移,但没有和物理环境解耦,环境的成本开销会随着测试的持续左移而变大(可以等价理解为用物理资源换测试效率)。 openstack服务 openstack的核心服务有:keystone、nova、neutron、cinder和glance。 keystone TBD nova nova api: 接收用户的API请求,来源于用...