Reply content:
1, language advice: Learn python.
OpenStack is a pure Python project, so you have to be familiar with the syntax, debugging, and invocation of Python. Like what:
- PDB: Base use, breakpoint, call stack
- LOG: Call stack printing, function import parameter printing, bottom command printing
- Python open source frameworks, components: such as SQLAlchemy, Django
- Object-oriented: Clear abstraction, inheritance, polymorphism, composition and other concepts
- Grammar: More of a dictionary of meanings, the idea of decoupling everywhere, etc.
- Coding rules: Read PEP8.
2. Tips for Learning OpenStack quickly:
- Frame, ask Google:
- In Google image, the OpenStack image is filtered over, and the best of the picture is carefully researched to find out the roles and communication mechanisms of each component. (Google OpenStack architecture map )
- North: Go through the Official handbook and remember the functions and interfaces of each component .
- South: Figuring out the life cycle of a virtual machine
- And the underlying functions that are primarily involved, how XML files are structured, and how libvirt converge
- Different points of adaptation to KVM and Xen
- Component: Discard Devstack, manually mount OpenStack yourself to clarify the purpose of each component
- Understand the relationships and interactions of individual components--RABBITMQ, scheduler and other components/modules
- Figure out the interfaces provided by the various components, the general interface is stable, the definition is not changed (such as *_client)
- Technology:
- Find out the technical points of restful APIs, WSGI, Eventlet, etc.
- Take a look at the interesting implementations, such as L2 population.
- Industry: Look at the contribution of each component, which company has mastered which piece. Like what role Nicira/cisco in it.
3.
It 's easy to read OpenStack, but mastery is hard.
It is recommended to start at some point in a component, such as:
- The life cycle of a virtual machine
- Nova-compute calls to the underlying Libvirt
- Nova-scheduler scheduling mechanism and so on.
I hope you will persevere.
2013/6/11 Update:
Official structure diagram: / http Docs.openstack.org/trun k/openstack-compute/admin/content/conceptual-architecture.html
Look at a thing, generally have to be gradual.
- First understand its overall structure, and figure out why to use such a framework;
- Then understand the various components in the architecture, the main functions provided by the component and the interaction between the various components;
- Then go deep into a module in the component, analyze the use of the module, understand the theory involved in the module;
- The last is to look at the code in the module, analysis of the code flow, interaction, verification before the analysis, get concrete conclusions.
After four steps, you can basically impersonate the author of the corresponding software.
I wish to see you all happy holidays.
2014/3/17 Update:
Modify the answer structure to delete obsolete content. The previous summary is more detailed, after a certain understanding of Linux, Python and IaaS, you can follow the Unitedstack blog to understand the industry dynamics and best practices have cloud Blog | Unitedstack with Clouds
See what the core says: an Ideal OpenStack Developer
Here's the gossip:
Think twice about buying Chinese books related to cloud computing.
Look less at the topics on Weibo and OpenStack.
A reliable team is hard to find and cautious to dig into. Look at the new book to be published in June
"OpenStack design and implementation of cloud computing OpenStack", "Summary book review Probation"
If you have the conditions, you can try to set up an OpenStack environment and get familiar with the overall architecture.
Then learn specifically about key components such as Nova, Neutron, cinder, and more. Being able to practice is the key, there are projects that are the foundation