BingoStack

Long way to full stack!


  • 首页

  • 标签

  • 分类

  • 归档

SQLAlchemy简介及在OpenStack中的使用

发表于 2015-07-10 | 更新于: 2020-11-03 | 分类于 Python
字数统计: 959 | 阅读时长 ≈ 4

SQLAlchemy是Python编程语言下的一款开源软件,提供了SQL工具包及对象关系映射(ORM)工具。

web编程之orm

在编写web服务时,我们通常使用orm,而不是直接使用SQL与数据库进行交互。
如果使用Django等比较全面的框架,可以选择默认的ORM。但如果选择flask等轻量级框架,则需要自己选择ORM。同时,自己选择使用ORM也带来了更大的灵活性。

阅读全文 »

buildbot实战

发表于 2014-11-10 | 更新于: 2020-11-03 | 分类于 openstack
字数统计: 2.1k | 阅读时长 ≈ 8

Buildbot是一套基于python的的持续集成系统,可方便的进行自动化构建、部署、测试和发布。类似于Jenkins,但更轻量化且易于直接使用python进行扩展。Chrome社区就使用的buildbot作为其CI系统。
类似于Jenkins,buildbot在一个CI系统中扮演的更多是一个任务执行者的角色,其工作流程如下:

  • 监控代码仓库
  • 代码仓库有变化后,立即拉取代码
  • 执行build、部署、测试及发布工作
  • 反馈结果

我们对这样一个工具的一般要求为:

  • 轻量级,安装、配置简单,本身耗费资源较少
  • 高效率,较快的完成自动化任务
  • 通用性强,在不同的操作系统,甚至与不同的代码系统兼容
  • 易扩展、配置及管理,能较简单的配置自动化任务

Buildbot和Jenkins都能很好的满足我们这些要求。但相比Jenkins,buildbot更轻量级,部署配置更为简单。
Web界面也更简单美观一些。

架构

buildbot架构比较简单,主要分为三部分:

  • 版本控制层
    外部版本控制,通过插件或主动触发的方式触发buildbot执行任务。
  • 任务执行层
    master接收任务后,调度其slave执行任务,并获取到返回的结果
  • 通知层
    master获取结果后,可通过邮件、IRC等方式进行通知。

其中重要的主体是master和slave,其主要采用星形拓扑结构,一个集群中可以多个master、多个slave。master主要负责任务接收、调度并通知任务,slave负责具体的任务执行。各节点本身无状态,横向扩展性很好。

阅读全文 »

rpmbuild实战

发表于 2014-08-19 | 更新于: 2020-11-03 | 分类于 openstack
字数统计: 2k | 阅读时长 ≈ 8

在生产环境下,未确保软件版本的可靠及软件的稳定性,我们一般不使用源码安装软件。一般会根据os的不同,选择apt-get或yum安装软件。
本文主要讲解如何使用rpmbuild工具制作rpm包。并以Openstack为例,讲述了Openstack打包的过程。

RPM基础知识

本节主要分析是什么以及为什么的问题。
以及常用的rpm和yum命令。

RPM包管理是什么?

RPM全称是RedHat Package Manager,是红帽系Linux默认使用的软件管理方法。主要包括centos、fedora、rhel等Linux分支。
其格式为Linux标准(LSB),是数据库驱动的包管理解决方案。
配合软件源,在centos系操作系统下,使用yum命令(最新版本应该是逐渐向dnf过渡)可以很容易的解决软件安装时的版本依赖问题。

为什么使用RPM包管理?

RPM包管理的优点如下:

  • 易于分发,安装、卸载、升级
  • 自动依赖跟踪,结合yum自动解决依赖问题
  • 自带包验证,保证安装的正确性
  • 保存软件包安装的一致性
  • 易于保持对系统安装包的跟踪管理

基本RPM命令

我们可以直接使用rpm命令,对软件包进行一些操作。

  • 安装
    rpm –ivh <package_name>
    --nodeps忽略依赖问题,一般仅用于测试
    阅读全文 »

Openstack CI持续集成测试简介

发表于 2014-06-26 | 更新于: 2020-11-03 | 分类于 openstack
字数统计: 5.7k | 阅读时长 ≈ 20

本文档主要对Openstack社区目前的CI测试环境及其中用到的各个组件进行介绍。

测试的分类及必要性

测试的分类

测试的过程没太有太严格的分类标准,从使用的角度,我们可以从以下两个角度对测试进行分类。

按照测试过程分类

软件测试大概分为单元测试、集成测试、系统测试、验收测试。以下为软件测试V型图:
软件测试V型图

  • 一般由单元测试开始,集中对每一个程序单元进行测试,检查各个程序模块是否正确地实现了规定的功能。单元测试的测试对象为独立的模块,需要由开发完成。
  • 此外,开发阶段应该还需要通过代码评审等方式,进行静态测试。
  • 集成测试把已测试过的模块组装起来,主要对与设计相关的软件体系结构的构造进行测试,目的在于检验与软件设计相关的程序结构问题。系统测试把已经经过确认的软件纳入实际运行环境中,与其它系统成份组合在一起进行测试,验证软件的完整功能是否满足需求规格并可正常运行。此两个阶段应该由测试人员执行。
  • 在软件的迭代过程中,需要不断重复测试以验证bug修改及新功能添加,这称之为回归测试。
  • 为了快速验证一个新版本,可挑选部分重要测试用例(如出错后会导致阻断其它测试用例的用例)用来验证,称之为冒烟测试(Smoke Test)或接收测试。
  • 验收测试主要由软件的实际用户在实际应用场景中执行,包含α测试和β测试。
阅读全文 »

自动化测试实践:自动化测试的思考总结

发表于 2013-09-24 | 更新于: 2020-11-03 | 分类于 Testing
字数统计: 4.7k | 阅读时长 ≈ 15

目前所在的团队一直主要负责部门产品的自动化测试方案。团队在自动化测试方面已经有了几年的探索,但直到最近才真正发挥作用大大提升了产品的测试效率,在这个过程中走了很多的弯路。
以下是我这一个阶段以来做自动化测试的思考及总结,有一些大的方向上的讨论,也有一些细节的探讨,希望给大家参考。

关于要不要做

相信还有很多人对自动化测试有疑问,或者因为种种原因不愿意引入自动化测试。以下总结了一些反对自动化测试的论点:

  • 自动化实现较难
    一般领域内都有可用的自动化测试框架,是这个领域内大家在自动化测试领域探索后的经验总结。在使用正确框架的基础上,自动化测试的实现并不复杂。
  • 自动化成本太高
    下文中将会详细解释,如果设计合理,并有正确的预期,自动化的收益远大于成本。
  • 项目规模较小,没必要做自动化测试
    以我们自动化项目的经验,越早做自动化测试,越容易实现,成功率越高。因此可以说成本越低,受益越高。
  • 会限制产品的灵活性
    需求的频繁变更确实是自动化的灾难。但一般如果需求需要频繁变更,往往预示着其它问题。
阅读全文 »

网关类产品的性能测试之四:测试工具、注意事项及经验总结

发表于 2013-04-03 | 更新于: 2020-11-03 | 分类于 Testing
字数统计: 2.5k | 阅读时长 ≈ 8

前面我们介绍了各性能指标项的测试方法。本篇主要概述测试工具、测试拓扑及经验总结。

目录

本系列分为以下四部分:

  1. 简介及性能指标介绍
  2. RFC2544四项指标测试方法
  3. 其它指标测试方法
  4. 测试工具、注意事项及经验总结

术语介绍

文章中会涉及到一些术语,现总结如下,供参考。

  • 性能测试,对产品负载压力承受能力的测试。
  • RFC,互联网及软件等的一些标准,基本的互联网通信协议都有在RFC文件内详细说明。
  • 网关类产品,部署作为网关的设备及软件。
  • IDS,入侵检测系统
  • IPS,入侵防御系统
  • UTM,对防火墙、IDS、IPS三个的综合,可以比较全面的进行管理。但是UTM通过一台物理设备集成大量功能,导致了应对大量数据的时候效率会下降,同时存在设备损坏导致全面崩溃的可能。
  • NGFW,下一代防火墙,安全设备类产品未来的发展方向。
  • 被测设备,devices under test,测试设备。

性能测试工具

对于网关类产品,一般要求的性能值比较高,因此测试一般使用专用的硬件设备。
常用硬件设备有IAXA等。
常用的测试软件有:

  • iperf
  • Jmeter使用Java编写,主要用于软件的性能测试,但也可扩展用于网络性能测试。机器配置足够的情况下,流量可打到上百M。
  • tomahawk是一个回放数据包的工具,也可完成部分性能测试。
  • 而软件的性能测试常用的LoadRunner,一般难以用于网络的性能测试。
阅读全文 »

网关类产品的性能测试之三:其它指标测试方法

发表于 2013-03-22 | 更新于: 2020-11-03 | 分类于 Testing
字数统计: 2.6k | 阅读时长 ≈ 9

本篇主要介绍除RFC2544四项指标外的其它指标的测试方法。其中的性能测试项主要来源于RFC3511中的定义,并根据实际需求,更新或舍弃了部分指标项。

目录

本系列分为以下四部分:

  1. 简介及性能指标介绍
  2. RFC2544四项指标测试方法
  3. 其它指标测试方法 - 本篇
  4. 测试工具、注意事项及经验总结

术语介绍

文章中会涉及到一些术语,现总结如下,供参考。

  • 性能测试,对产品负载压力承受能力的测试。
  • RFC,互联网及软件等的一些标准,基本的互联网通信协议都有在RFC文件内详细说明。
  • 网关类产品,部署作为网关的设备及软件。
  • IDS,入侵检测系统
  • IPS,入侵防御系统
  • UTM,对防火墙、IDS、IPS三个的综合,可以比较全面的进行管理。但是UTM通过一台物理设备集成大量功能,导致了应对大量数据的时候效率会下降,同时存在设备损坏导致全面崩溃的可能。
  • NGFW,下一代防火墙,安全设备类产品未来的发展方向。
  • 被测设备,devices under test,测试设备。

其它性能指标测试方法

以下主要包括CPS、TPS、HTTP吞吐、TCP最大连接数及其它性能指标的测试方法。

阅读全文 »

网关类产品的性能测试之二:RFC2544四项指标测试方法

发表于 2013-03-12 | 更新于: 2020-11-03 | 分类于 Testing
字数统计: 4.1k | 阅读时长 ≈ 13

前面我们介绍了各性能指标项的含义,下面我们针对各性能指标项是如何测试的进行详细描述。
对于每家评测机构、客户和安全厂商,同一个性能指标在测试方法上可能有所区别。建议在测试之前首先了解客户的需求,了解客户的性能关注点在哪里,并根据实际的需求适当的调整测试方法。虽然RFC2544文档和RFC3511文档描述了相关的测试方法,但这样的测试方法并不一定能满足客户的需求,而且RFC 文档中对测试细节并没有太详细的描述。下面以我在实际测试中积累的经验和向业界学习到的知识,描述我理解的性能测试方法。

目录

本系列分为以下四部分:

  1. 简介及性能指标介绍
  2. RFC2544四项指标测试方法 - 本篇
  3. 其它指标测试方法
  4. 测试工具、注意事项及经验总结

术语介绍

文章中会涉及到一些术语,现总结如下,供参考。

  • 性能测试,对产品负载压力承受能力的测试。
  • RFC,互联网及软件等的一些标准,基本的互联网通信协议都有在RFC文件内详细说明。
  • 网关类产品,部署作为网关的设备及软件。
  • IDS,入侵检测系统
  • IPS,入侵防御系统
  • UTM,对防火墙、IDS、IPS三个的综合,可以比较全面的进行管理。但是UTM通过一台物理设备集成大量功能,导致了应对大量数据的时候效率会下降,同时存在设备损坏导致全面崩溃的可能。
  • NGFW,下一代防火墙,安全设备类产品未来的发展方向。
  • 被测设备,devices under test,测试设备。

RFC2544四项值测试方法

RFC2544文档对四项值的定义和测试方法描述还是比较全面的,但在细节上没有过多的描述。下面我将描述一下实际测试中总结的RFC2544四项值的性能测试方法。

阅读全文 »

网关类产品的性能测试之一:简介及性能指标介绍

发表于 2013-03-02 | 更新于: 2020-11-03 | 分类于 Testing
字数统计: 3.1k | 阅读时长 ≈ 10

本文所指的网关类产品,是指实际拓扑中会被部署作为网关的产品,典型的如路由器/交换机、防火墙、IDS/IPS、UTM、NGFW等。
但是性能测试中很多种类,对于大多数产品其实是相通的,因此对其它产品的性能测试也有参考价值。
文章主要面向的对象为性能测试及性能调优人员,同时对选购产品的潜在客户有指导意义。

背景

对于网关类产品性能和稳定性是前提。如今各种NGFW、应用防火墙等概念不断涌现,各大厂商反复在功能的丰富性上做文章,但所有这些只能算作锦上添花,只有产品的性能与稳定性才是真正的根基。对于任何网络环境,如果网关的吞吐小于实际需要的带宽值,必将是一场灾难。而更多的功能导致数据包经过的路径更长,对性能带来了更严峻的挑战。同时,稳定性和性能往往是相关的,且性能测试更标准。
因此客户评价网关产品的优劣,除了产品所支持功能以外,更关注的指标就是性能。另外,现在市场上大部分的网络安全类产品或者网关类产品在功能和协议的支持上,同质化较为严重,客户在选取时,性能指标就成为衡量的一个很重的指标项。
产品的性能指标不仅客户非常关注,设备厂商在向市场发布产品时,性能指标也会做为重点进行宣传,正面PK。由此可见性能指标对于网关类产品的重要性。

目录

此系列文章将介绍业界较为常用的性能指标及测试方法。因篇幅较长,为竭尽所能说的更清楚明白,将本系列分为以下四部分:

  1. 简介及性能指标介绍 - 本篇
  2. RFC2544四项指标测试方法
  3. 其它指标测试方法
  4. 测试工具、注意事项及经验总结
阅读全文 »

Linux下cURL使用教程之十四:libcurl编程

发表于 2012-09-05 | 更新于: 2020-11-03 | 分类于 curl
字数统计: 378 | 阅读时长 ≈ 1

在Linux下cURL使用教程之十三:curl vs wget中我们谈到,curl是基于libcurl库实现的。
而libcurl库是开源免费跨平台的,可用于多种语言。
有时候linux的功能不足以满足我们的要求,或者是需要在特殊环境下实现某些功能(比如在PHP服务器上完成抓取),这时候就需要用到libcurl编程。

官方提供了一些demo代码,大家下载查看。
本篇文章我们只谈谈各种语言下的使用,及一些参考。

C/C++

C/C++语言下使用libcurl有些繁琐,但功能很强大、稳定高效。而且尤其C下本身开源库相比其它语言较少,因此libcurl库使用较多。
参考:
http://curl.haxx.se/libcurl/c/libcurl-tutorial.html
http://curl.haxx.se/libcurl/c/

PHP

PHP的libcurl库使用较多。

阅读全文 »

1234
bingostack

bingostack

软件工程师的自我修养

34 日志
14 分类
55 标签
© 2021 bingostack | Site words total count: 62.1k
由 Hexo 强力驱动
|
主题 — NexT.Mist v5.1.4