OpenStack Hacker养成指南
admin
2023-04-04 04:41:38
0


                                                                              

  • 希望本文能够解开你心中萦绕已久的心结,假如是死结,请移步到 https://wiki.openstack.org/wiki/Main_Page

  • 学习OpenStack其实就是学习各种Python库的过程。

  • 把OpenStack的设计原则贴在你的墙上。 https://wiki.openstack.org/wiki/BasicDesignTenets

1 OpenStack Hacker

  • 态度:开放、主动、沟通

  • 影响力:能说、能写、能分享

  • 四化:自动化、流程化、系统化、文档化

2 基础技能

Python

  • 书籍:

    • 《python参考手册》

    • 《python基础教程》

  • 教程: Codecademy

  • 挑战: Python Challenge

  • 文档: Python v2.7.3 documentation

  • 高阶:

    • The Hitchhiker's Guide to Python!

    • Python Module of the Week

Linux

  • 书籍:

    • 鸟哥的Linux私房菜

    • 《Unix环境高级编程》

    • 《UNIX系统编程》

Git

  • 书籍:

    • Pro Git

    • GotGitHub

  • 教程:

    • tryGit

    • GitImmersion

  • 进阶:

    • visual-git-guide

    • a-successful-git-branching-model

  • 最常用的git命令: Everyday GIT With 20 Commands Or So

Unittest

  • 教程: python unittest

3 OpenStack 基础

The 5-minute Overview

OpenStack is  a global collaboration of developers and cloud computing technologists  producing the ubiquitous open source cloud computing platform for public and private clouds.  The project aims to deliver solutions for all types of clouds by being  simple to implement, massively scalable, and feature rich. The  technology consists of a series of interrelated projects delivering various components for a cloud infrastructure solution. OpenStackcontrols large pools of compute, storage, and networking resources throughout  a datacenter, all managed through a dashboard that gives administrators  control while empowering their users to provision resources through a  web interface. 


OpenStack 基本概念

  • 介绍: https://www.openstack.org/software/

  • Compute管理员手册(必看):http://docs.openstack.org/trunk/openstack-compute/admin/content/ch_getting-started-with-openstack.html

  • OpenStack End User Guide(必看): http://docs.openstack.org/user-guide/content/

  • Network管理员手册:http://docs.openstack.org/folsom/openstack-network/admin/content/

  • Object Storage管理员手册:http://docs.openstack.org/folsom/openstack-object-storage/admin/content/

  • OpenStack文档:http://docs.openstack.org/

  • OpenStack词汇表:http://docs.openstack.org/glossary/content/glossary.html

  • 使用命令行管理openstack: http://docs.openstack.org/cli/quick-start/content/index.html

  • OpenStack Wiki: https://wiki.openstack.org/wiki/Main_Page

简单安装 OpenStack

环境设置

为了快速安装OpenStack,你要设置最快的apt源(或者设置yum源)和pypi源。

  • 设置apt源:http://blog.ubuntusoft.com/ubuntu-update-source.html

  • 设置pypi源:http://www.v2ex.com/t/75316

你也可以搭建自己的apt源和pypi源:

  • 搭建apt源:

    • http://blog.ef.net/2012/10/26/unbutu-release-upgrade-with-local-apt-mirror.html

    • http://www.cnblogs.com/kulin/archive/2012/08/08/2628400.html

  • 搭建pypi源:

    • https://pypi.python.org/pypi/bandersnatch

devstack 安装

  • 使用devstack安装 http://devstack.org

  • 阅读devstack.sh脚本 http://devstack.org

  • screen的使用:http://www.9usb.net/201002/linux-screen-mingling.html

devstack使用screen管理OpenStack各个服务,所以你要用screen调试OpenStack。

packstack(RHEL,CentOS) 安装

  • git仓库: https://github.com/stackforge/packstack

  • quickstart: http://openstack.redhat.com/Quickstart

deb包安装

  • 使用VirtualBox安装OpenStack

  • 在Ubuntu 12.04上安装OpenStack Folsom版(FlatDHCP+Multihost)

  • Ubuntu12.04.2 OpenStack Grizzly 安装(Bridge)

 

调戏 OpenStack

  • pdb:

    • http://docs.python.org/2/library/pdb.html

    • http://blog.csdn.net/hackerain/article/details/8373597

    • http://www.ibm.com/developerworks/cn/linux/l-cn-pythondebugger/

Python基本库

WSGI

  • eventlet.wsgi: http://eventlet.net/doc/examples.html#wsgi-server

  • webob: http://webob.org/

  • pecan: http://pecanpy.org/

  • wsme: http://pythonhosted.org/WSME/

  • paste: http://pythonpaste.org/

  • routes: http://routes.readthedocs.org/en/latest/

重要的库

  • SQLAlchemy:http://www.sqlalchemy.org/

  • libvirt: http://libvirt.org/index.html

  • logging: http://docs.python.org/2/howto/logging-cookbook.html

  • greenlet: http://greenlet.readthedocs.org/en/latest/

  • eventlet: http://eventlet.net/

  • kombu: http://kombu.readthedocs.org/en/latest/

  • oslo.config: https://wiki.openstack.org/wiki/Oslo#oslo.config

  • stevedore: http://stevedore.readthedocs.org/en/latest/

TESTING

  • PythonTestingToolsTaxonomy: http://wiki.python.org/moin/PythonTestingToolsTaxonomy (all in one)

  • testtools:https://readthedocs.org/projects/testtools/

  • mox:http://code.google.com/p/pymox/wiki/MoxDocumentation

  • mock:http://www.voidspace.org.uk/python/mock/

  • tox:http://tox.readthedocs.org/en/latest/

  • fixtures:https://pypi.python.org/pypi/fixtures

  • testscenarios:https://pypi.python.org/pypi/testscenarios/

  • nose:https://nose.readthedocs.org/en/latest/

  • testrepository:https://testrepository.readthedocs.org/en/latest/MANUAL.html

OpenStack基础组件

在OpenStack中,有一个重要的项目叫做Oslo(原名是openstack-common),给OpenStack其他项目提供基础组件。

  • https://wiki.openstack.org/wiki/Oslo

RPC组件

  • RPC组件

  • http://blog.ftofficer.com/2010/03/translation-rabbitmq-python-rabbits-and-warrens/

  • http://www.rabbitmq.com/tutorials/tutorial-six-python.html

  • http://docs.openstack.org/developer/nova/devref/rpc.html

WSGI

  • http://archimedeanco.com/wsgi-tutorial/

OpenStack 代码规范

  • Python PEP8 规范: http://www.python.org/dev/peps/pep-0008/

  • OpenStack HACKING 规范: https://github.com/openstack-dev/hacking/blob/master/HACKING.rst

Python 深入学习

理解python中optparse.OptionParser类。 http://docs.python.org/library/optparse.html

理解collections.Mapping类。 http://docs.python.org/library/collections.html

分析浅拷贝,深拷贝 http://blog.csdn.net/winterttr/article/details/2590741http://longmans1985.blog.163.com/blog/static/70605475200991603624942/ http://book.51cto.com/art/200806/77233.htm

LoggerAdapter类  http://docs.python.org/howto/logging-cookbook.html#context-info中。

介绍rabbitmq http://blog.ftofficer.com/2010/03/translation-rabbitmq-python-rabbits-and-warrens/http://kombu.readthedocs.org/en/latest/introduction.html#synopsis

Python Decorators入门 http://blog.csdn.net/beckel/article/details/3585352

Python @classmethod @staticmethod的区别。http://www.libaoyin.com/2013/08/06/pyhton-staticmethod-classmethod/

五分钟理解元类(Metaclasses)http://www.cnblogs.com/coderzh/archive/2008/12/07/1349735.html

nova中用到的python知识 http://canx.me/2011/12/%E4%B8%80%E4%BA%9Bpython/

 python中类的总结 http://ipseek.blog.51cto.com/1041109/802243

with的总结  http://effbot.org/zone/python-with-statement.htm

Pool类   http://nullege.com/codes/search/eventlet.pools.Pool

paste模块 http://pythonpaste.org/

python魔术方法 http://pycoders-weekly-chinese.readthedocs.org/en/latest/issue6/a-guide-to-pythons-magic-methods.html

Routes模块 http://routes.readthedocs.org/en/latest/index.html

yield学习

  • http://www.pythonclub.org/python-basic/yield

  • http://blog.donews.com/limodou/archive/2006/09/04/1028747.aspx

  • http://www.ibm.com/developerworks/cn/opensource/os-cn-python-yield/

  • http://www.jeffknupp.com/blog/2013/04/07/improve-your-python-yield-and-generators-explained/

4 OpenStack 整体架构

架构图

必看:

  • http://ken.pepple.info/openstack/2012/09/25/openstack-folsom-architecture/

  • http://www.solinea.com/2013/06/15/openstack-grizzly-architecture-revisited/

  • http://www.slideshare.net/mirantis/open-stack-architecture-overviewmeetup662013

工作流

Keystone Workflow

必看:

  • https://www.ibm.com/developerworks/community/blogs/e93514d3-c4f0-4aa0-8844-497f370090f5/entry/openstack_keystone_workflow_token_scoping?lang=zh

  • http://docs.openstack.org/trunk/openstack-compute/admin/content/keystone-concepts.html


Nova Workflow

必看:

  • https://www.ibm.com/developerworks/community/blogs/e93514d3-c4f0-4aa0-8844-497f370090f5/entry/openstack_nova_api?lang=en

  • http://ilearnstack.com/2013/04/26/request-flow-for-provisioning-instance-in-openstack/comment-page-1/

n

OpenStack 核心项目

对各个项目简要分析:http://www.slideshare.net/randybias/state-of-the-stack-april-2013 核心项目的分析:

  • Keystone:

    • http://docs.openstack.org/developer/keystone/

    • http://www.slideshare.net/openstackindia/openstack-keystone-identity-service

  • Glance:

    • http://docs.openstack.org/developer/glance/

  • Nova:

    • http://docs.openstack.org/developer/nova/

    • https://www.ibm.com/developerworks/community/blogs/e93514d3-c4f0-4aa0-8844-497f370090f5/entry/openstack_nova_scheduler_and_its_algorithm27?lang=en

  • Cinder:

    • http://docs.openstack.org/developer/cinder/

    • Cinder grizzly deep dive pub

  • Neutron:

    • http://docs.openstack.org/developer/neutron/

    • http://www.slideshare.net/openstackindia/openstack-quantum-16710792

    • http://www.slideshare.net/lewtucker/openstack-quantum-network-service

    • http://www.slideshare.net/openstackindia/openstack-quantum-18418306

  • Horizon:

    • http://docs.openstack.org/developer/horizon/

  • Swift:

    • http://docs.openstack.org/developer/swift/

    • http://blog.csdn.net/alex890714/article/details/7314780

    • Swift架构与实践

  • Oslo:

通用机制的分析:

  • quota: http://blog.csdn.net/hackerain/article/details/8223125

  • policy: http://blog.csdn.net/hackerain/article/details/8241691

5 OpenStack 部署/管理

OpenStack 自动化部署

Puppet:

  • https://wiki.openstack.org/wiki/Puppet-openstack

  • https://github.com/stackforge/puppet-openstack

  • https://puppetlabs.com/solutions/openstack/

Fule: Mirantis出品的部署工具,从裸机到OpenStack组件再到HA全部搞定

  • https://fuel.mirantis.com/

OpenStack 监控

  • OpenStack 监控: http://www.mirantis.com/blog/openstack-monitoring/

6 参与 OpenStack 社区

都在这里:https://wiki.openstack.org/wiki/Main_Page

  • 山头: https://review.openstack.org/#/admin/groups

  • 向社区提交Patch:https://wiki.openstack.org/wiki/How_To_Contribute

  • gerrit的使用:https://wiki.openstack.org/wiki/Gerrit_Workflow

  • Review别人的Patch:https://review.openstack.org

  • 参与IRC Meeting:

    • https://wiki.openstack.org/wiki/Meetings

    • https://wiki.openstack.org/wiki/Mailing_Lists

    • https://wiki.openstack.org/wiki/People

  • 参与邮件列表讨论:https://wiki.openstack.org/wiki/Mailing_Lists

  • 跟踪OpenStack项目的发展:

    • http://www.openstack.org/blog/

    • http://planet.openstack.org/

    • https://wiki.openstack.org/wiki/Special:RecentChanges

    • http://github.com/openstack

    • https://github.com/stackforge/ (You will like it)

    • https://github.com/openstack-dev/

    • https://github.com/openstack-infra

  • 学习CI:http://ci.openstack.org/

7 OpenStack 二次开发

  • 开发Nova的扩展API:

    • https://www.ibm.com/developerworks/community/blogs/e93514d3-c4f0-4aa0-8844-497f370090f5/entry/openstack_nova_api?lang=zh

    • https://wiki.openstack.org/wiki/WritingRequestExtensions

    • http://stephanfr.com/2013/04/07/creating-an-openstack-keystone-helloworld-extension/

    • http://www.cnblogs.com/willier/archive/2013/05/22/3092961.html

  • 开发Cinder的driver:

    • 新的driver必须满足 Minimum Features,参考同类型的driver,依葫芦画瓢。

8 OpenStack 生态圈

  • OpenStack幕后的公司:http://www.chenshake.com/behind-the-openstack-company

  • State of The Stack:http://www.slideshare.net/randybias/state-of-the-stack-april-2013 (一针见血)

  • OpenStack贡献排行榜:http://stackalytics.com/

  • OpenStack实践分享:http://www.mirantis.com/blog/ (mirantis是目前最成功的OpenStack系统集成商)


相关内容

热门资讯

特朗普下令不打了,美国的“余粮... 可以说戛然而止,快得让很多人都无法适应。前两周,每一天美国都要打击伊朗一通。就在7月24日白宫会议前...
穆杰塔巴最新表态:支持黎真主党 △伊朗最高领袖穆杰塔巴·哈梅内伊(资料图)当地时间7月26日晚,伊朗最高领袖穆杰塔巴·哈梅内伊对黎巴...
美军瘫痪一艘驶向伊朗的油轮,特... 美国总统特朗普虽下令暂停打击伊朗,但美军仍在执行对霍尔木兹海峡的封锁任务。针对美军瘫痪一艘驶向伊朗油...
“小牌大耍”的底气到底是哪里来... 澎湃首席评论员 李平这两天,“艺人李权哲乘高铁占座事件”在网上引发热议,该艺人参加的活动主办方曾发布...
越南籍船舶南海遇险沉没,中方已... 据凤凰卫视报道,一艘越南船舶7月24日夜间在越南庆和以东220海里附近遇险沉没,船上共62名越南籍人...
李权哲占座、蒙面、装死:娱乐圈... 你买了一张高铁一等座的票,找到自己的位置,18A。有人坐着。你拿出手机看了眼购票记录——没错,18A...
杭州景区咖啡店闯入1条幼蛇,仅... 夏天气温高、湿度大,蛇类活动进入高峰期,千万别被“小蛇无害”的刻板印象骗了!有些幼蛇看着迷你可爱,实...
AI开源公开信签署企业增至50... IT之家 7 月 26 日消息,英伟达、微软、IBM、Meta 等 25 家美国科技企业本周(7 月...
南阳快手短视频代运营企业的服务... 在短视频平台快速发展的背景下,企业通过快手等渠道进行内容运营已成为常见的市场动作。对于希望借助短视频...
普通人该如何跟上科技发展的步伐 这个被称作科技的词汇, 听起来既有宏大之感, 又颇为遥远, 好似仅仅归属于在实验室里专心致志钻研的科...