OpenStack Nova IO Weigher

在 OpenStack Kilo 版本中,Nova 新增了一个调度的砝码,叫做 IoOpsWeigher,官方特性说明这里。这个砝码让调度器会考虑宿主机的 IO 情况。但是这里的 IO 并不是宿主机真正的 IO ,而是 OpenStack 的一些 IO 密集型控制操作导致的 IO 负载。

Nova 中是这么统计 IO 情况的:计算这个主机上所有 vm_states == BUILDING 的虚拟机,以及 task_stateRESIZE_MIGRATING, REBUILDING, RESIZE_PREP, IMAGE_SNAPSHOT, IMAGE_BACKUP, UNSHELVING, RESCUING其中之一的虚拟机,这些虚拟机的个数就是当前这台主机的… 查看详细

The Docker Ecosystem

容器化是用一种可移植、可预测的发布和部署应用程序的方法。原理是将应用的各组件和依赖打包进 Container (一个标准的、隔离的、轻量级的进程环境)。现在很多团体十分关心设计分布式应用程序,它们易于部署到分布式系统中,允许系统横向扩展以及容忍主机和应用的异常。Docker,一种旨在简化和标准化在异构环境中部署应用程序的容器化平台,也推动了这种设计方法。同时,在分部署容器管理这个生态系统中,有非常多的软件被开发出来,他们有各种不同的使用场景。DigitalOcean… 查看详细

代理抓包神器 Charles

现在手机 App 大行其道,有没有什么工具可以方便的抓手机上的包呢?必须有:Charles,由于他作为 HTTP 代理服务器,理论上除了手机 App,任何基于 HTTP 的网络应用都可以用它来抓包。

免费版下载后有 30 天的试用期。如果是 Mac,会要求安装 Java 运行时环境。

mac_screen_321

软件运行起来后,会自动监听端口 8888,在手机上的网络连接里设置 HTTP 代理服务器为 ip_address:8888 即可,然后所有 HTTP 请求都会经过 Charles。另外还支持HTTPs哦。… 查看详细

SQLAlchemy Auto_commit

SQLAlchemy 是 python 实现的企业级 ORM,在 OpenStack 项目中大量使用。对于SQLAlchemy入门可以参考官方0.7文档,里面有详尽的快速入门和各个模块的说明。

本文记录生产环境中遇到的 session 问题,主要解释 auto_commit 参数的意义和使用注意事项,目的是备忘以及为他人提供参考。

众所周知,SQLAlchemy 的 Engine 对象会维护一个数据库连接池,每个 Session 会从连接池中获取一个连接和数据库交互,用完后将连接放回连接池。具体地,session… 查看详细

Count Lines of Code

还在用wc来统计代码行吗?你就 OUT了,这里有专门的工具:cloc

$ sudo apt-get install cloc

$ cloc . --exclude-dir=.venv --exclude-dir=openstack
    7987 text files.
    3320 unique files.                                          
    4800 files ignored.

http://cloc.sourceforge.net v 1.60  T=69.13 s (40.7 files/s, 10236.6 lines/s)
-------------------------------------------------------------------------------
Language                     files          blank        comment           code
-------------------------------------------------------------------------------
Python                        2405         110203         148307         368070
Javascript                     327           6042           6758
查看详细