SaaS 软件即服务-- 用户通过网络客户端访问
CRM客户关系管理,电子邮件,虚拟桌面,统一通信,在线游戏
PaaS平台即服务-- 软件业务运行的环境
数据库,开发工具,web服务器,软件运行环境
IaaS基础架构即服务-- 用户直接访问底层的计算资源、存储资源和网络资源
虚拟机,服务器,存储空间,网络带宽,安全防护
1. openstack 中heat是通过那个进程去调用openstack 其他component相应的api去创建相应的resource的?
2. 为什么要引入nova conductor, nova conductor 为什么接管了nova api RPC调用nova scheduler 的任务?
更高的安全性
在 OpenStack 的早期版本中,nova-compute 可以直接访问数据库,但这样存在非常大的安全隐患。
因为 nova-compute 这个服务是部署在计算节点上的,为了能够访问控制节点上的数据库,
就必须在计算节点的 /etc/nova/nova.conf 中配置访问数据库的连接信息,比如
试想任意一个计算节点被黑客入侵,都会导致部署在控制节点上的数据库面临极大风险。
为了解决这个问题,从 G 版本开始,Nova 引入了一个新服务 nova-conductor,
将 nova-compute 访问数据库的全部操作都放到 nova-conductor 中,
而且 nova-conductor 是部署在控制节点上的。 这样就避免了 nova-compute 直接访问数据库,
增加了系统的安全性。
更好的伸缩性
nova-conductor 将 nova-compute 与数据库解耦之后还带来另一个好处:
提高了 nova 的伸缩性。
nova-compute 与 conductor 是通过消息中间件交互的。
这种松散的架构允许配置多个 nova-conductor 实例。
在一个大规模的 OpenStack 部署环境里,
管理员可以通过增加 nova-conductor 的数量来应对日益增长的计算节点对数据库的访问。
3. Python 写冒泡排序
a=[10,6,2,3,1,5,4,7,9,8]
for i in range(len(a)):
for j in range(i):
if a[j]>a[j+1]:
a[j],a[j+1]=a[j+1],a[j]
print(a)
4. python中 xrange 和range的区别
xrange 用法与 range 完全相同,所不同的是生成的不是一个list对象,而是一个生成器。
xrange则不会直接生成一个list,而是每次调用返回其中的一个值:
5. python decorator的用法
6. python 中yield的用法
'''yield生成斐波那契'''
def fab(max):
n, a, b = 0, 0, 1
while n < max:
yield b
# print b
a, b = b, a + b
n = n + 1
for i in fab(10):
print i
7 openstack中多线程 协程
8. socket write什么情况下会受到 EAGAIN 和EWOULDBLOCK
9. 简述openstack中 nova boot 一个vm所需的过程
Openstack得到函数名本身作为了一个命令, 但为了区分命令和一般函数的区别,
在每个命令函数前加一个do_, 也就是说所有的命令都是命令加上一个do_,那么
很明显,nova boot,对应的处理函数就是do_boot.
nova boot创建VM的流程大致为:
1. novaclient发送HTTP请求到nova-api(这里内部细节包括keystone对用户的验证及用户从keystone获取token和endpoints等信息,具体参考《keystone WSGI流程》)。
2. nova-api通过rpc调用到nova-conductor。
3. nova-conductor调用rpc进入nova-scheduler进行compute节点的选择,nova-scheduler将compute节点选择的信息的返回给nova-conductor。
4.最后nova-conductor执行rpc调用到nova-compute到选择的compute创建VM。
10. openstack 中trove 是干什么用的
对Sql/Nosql数据库做统一的抽象
11. 容器相关
12. openstack 中取得虚拟机状态的函数是?
13. openstack 中nova compute boot虚拟机用到的函数