1. language advice: learn python well.
OpenStack is a pure python project, so you must be familiar with python syntax, debugging, and calling. For example:
2. Suggestions for quick learning about OpenStack:
- Pdb: Basic usage, breakpoint, call stack
- Log: Call stack printing, function input parameter printing, and underlying command printing
- Involved python open-source frameworks and components: such as SQLAlchemy, Django
- Object-oriented: clear concepts such as abstraction, inheritance, polymorphism, and combination
- Encoding Rules: read PEP8.
- Framework, ask google:
- In google image, you can screen OpenStack images and take the best picture for careful research to find out the roles and communication mechanisms of each component. (Google openstack architecture)
- Northbound: repeat the official manual and remember eachComponents.
- Southbound: clarify the virtual machine lifecycle
- The underlying functions, how to construct xml files, and how to connect libvirt
- Differences between KVM and XEN
- Components: abandon devstack and manually create an OpenStack to clarify the purpose of each component.
- Understand the relationship and interaction methods of each component-components/modules such as RabbitMQ and scheduler
- Find out the interfaces provided by each component. Generally, the interfaces are stable and will not change after they are defined (for example, * _ client)
- Find out RESTful api, wsgi, eventlet, and other technical points
- Take a look at interesting implementations, such as L2 population.
- Industry: look at the contribution of each component, which company has mastered which one. For example, what role does nicira/cisco play in it.
It is easy to understand OpenStack, but it is difficult to be proficient.
We recommend that you start from a certain point of a component, for example:
- Virtual machine lifecycle
- Call of nova-compute to underlying libvirt
- Scheduling mechanism of nova-scheduler and so on
I hope you can persevere.
Official architecture: http://docs.openstack.org/trunk/openstack-compute/admin/content/conceptual-architecture.html
Reading one thing usually requires gradual development.
- First, understand its overall architecture and find out why it should be used;
- Then, you can understand the components in the architecture, the main functions provided by the components, and the interaction between the components;
- Then, go deep into a module in the component, analyze the purpose of the module, and understand the theory involved in the module;
- The last step is to look at the code in the module, analyze the code flow, interaction trend, verify the previous analysis, and draw a specific conclusion.
After completing the four steps, you can basically counterfeit the author of the corresponding software.
I wish you a happy holiday.
Modify the answer structure and delete outdated content. After having some knowledge of Linux, Python, and IaaS, you can follow the UnitedStack blog to learn about the dynamics and best practices of this industry. cloud blog | UnitedStack has cloud
See what Core says: An Ideal OpenStack Developer
The following is Gossip:
Think twice about purchasing Chinese books related to cloud computing.
Let's look at the topics related to OpenStack on Weibo.
Reliable teams are hard to find and exercise caution when entering the trap. Reading the new book to be released in June
OpenStack Design and implementation of cloud computing OpenStack [abstract: a Review]
If there are conditions, you can try to build an OpenStack environment to familiarize yourself with the overall architecture.
Then, you can learn from key components such as nova, neutron, and cinder. Internships are the key, and projects are the foundation.