Shi Hai's Blog

随遇而安

通过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请求,来源于用...

《控制论与科学方法论》阅读随笔

序言 有不少科学家认为:与其说我们这个世界是建立在必然性之上的,倒不如说是建立在偶然性之上的,许多物理定律仅仅是大量事件统计平均的结果。 与其不断重复一句不会错的话,不如试着讲一句错话。 第一章 控制和反馈 可能性空间 世界上许多事物并不是从一开始就注定要发展成现在这个样子的,在事物发展的初期,它们往往有多种发展的可能性,由于条件或者纯粹机遇的关系,最终才沿着某一个特定的方向发展下去。 人通...

《激荡三十年》阅读随笔

1997 世界令人不在着迷 中国经济变革常常让人生发峰回路转、否极泰来的感慨。这段历史,从来不是按照人们预想中的路线一丝不苟地前行的。更多的情况是,一条又一条的岔路总是在最意外的时刻出现,它让人们的智力和承受力面临极限的挑战。 2001 入世与出局 从优秀到卓越:公司从优秀到卓越的转变,跟从事的行业是否在潮流之中没有关系,事实上,即使是一个从事传统行业的企业,即使它最初默默无闻,它也可能变得...

《xx测试之道》阅读随笔

前有《微软的软件测试之道》和《Google 软件测试之道》,后有《阿里测试之道》,都在尝试提升软件质量和交付效率。 测试的本质 提升软件系统的质量和效能,阿里主要通过三个维度的提升来改进: 缩短反射弧(时间):测试用例向“测试金字塔”的下层迁移;提高测试并发执行的能力;通过精准测试能够自动准确地剔除无关的用例;通过测试用例有效性、代码覆盖率和业务覆盖率的准确度量帮助我们更好地进行等价类分...

2023年业内测试能力调研

测试只是一个了解业界软件技术发展的切入点,当然单纯从测试维度找提升产品/服务质量/TTM的思路不一定能直接找到可以试用的方案。另外学术界可能也有一些比较超前的理论方案,后续有时间再学习&更新。 测试维度的三段式思考: 第一段:测试方法论、测试策略、分层策略; 第二段:用例设计、维护; 第三段:和各类技术/平台/工具结合的应用,如:+CID、+云原生、+DevOps、+测试环境; ...

在菊厂八年的那些人、那些事

对自己不太长的职业生涯做个简单总结,也和团队内同学做务虚交流使用。 达尔文在《进化论》中有句名言:“能够生存下来的物种,并不是那些最强壮的,也不是那些最聪明的,而是那些对变化作出快速反应的。” 尊重不确定性 是否从不确定性角度来看待事物的发生和发展是现代科学和经典决定论的重大区别之一。牛顿经典物理学认为宇宙都是设计好的,所有事物都按照一定规律运行,而上帝不会掷骰子。牛顿经典物理学实际...

spring常见注解学习总结

@SpringBootApplication 主应用程序的配置项。 @Bean 官方介绍:In Spring, the objects that form the backbone of your application and that are managed by the Spring IoC container are called beans. A bean is an object...

软件架构设计数字化

软件架构设计 历史背景 软件架构这个词在1969年第一次被提出,但在20世纪90年代才得到快速发展。 为什么需要软件架构设计? 在我个人看来,软件产品的进化本质和生物的进化没有本质区别,都是往成本最低,运行最高效的方向上演进。怎么算是成本最低,运行最高效呢?那就是职责拆分。在一般情况下,现在的软件产品会被分为:操作系统、编程语言、框架、中间件、各类软件方法论等。 那有些同学可能会有疑问,现在...

记一个python异常返回导致内存泄露问题

一、问题背景 原始问题的介绍见此issue。 import weakref class A: pass ref = None def x(): global ref cool_var = A() ref = weakref.ref(cool_var) assert ref() try: 1/0 except Excepti...