Architecture from requirements
Demand analysis
Most of the software architecture comes from the demand, can say, what kind of demand, there will be what kind of architecture, although different times, different people to achieve, may not exactly the same. But overall, the architecture won't be too far off.
Now what if you need to implement a software that is like OpenStack?
First, let's take a look at the simplest requirements summarized in the previous chapter.
- Management of physical servers
- Selection of servers
- Virtual machine creation, power-on, shutdown, suspend, pause, adjust, migrate and other operations
Management of physical servers
To manage a physical server, at a minimum, the following conditions must be met
- To have a server for management
- Each server can have at least network communication with the management service
- Management Server has the ability to perform some operations management on the service
Through the above analysis, communication requires at least one communication protocol, but in order to meet more requirements, you can consider supporting a variety of protocols, remote management requires remote Call function.
Selection of servers
Similarly, to select a service based on the different configurations of the customer, you need to meet at least the following conditions
- Be able to get the status information of the server, such as the number of CPUs available, intrinsic size, hard disk size, etc.
- You need to save the status information of the server as the input information when selecting
- Need some rule of choice
The above requirements, at least the database to save data, and the agreement has the same problem, now the database is many, you can consider supporting a variety of databases.
Virtual machine creation, power-on, shutdown, suspend, pause, adjust, migrate and other operations
In the previous chapter, it has been emphasized that OpenStack is just a management platform, it is not to implement virtual functions, and to create a virtual machine, at least the CPU, memory, hardware three kinds of software, and the virtual itself is to provide services exist, and now most of the services are based on network services, So the network is also a necessary hardware. So the overall demand is probably as follows
- Various virtualization Technology Support management, the current mainstream virtualization technology is as follows:
- BareMetal
- Docker
- Hyper-V
- kernel-based Virtual Machine (KVM)
- Linux Containers (LXC)
- Quick Emulator (QEMU)
- User Mode Linux (UML)
- VMware VSphere
- Xen
- HDD Support
- Network support
- Mirroring support
Stealth requirements
- External interface, can be managed only by external operation
- User management, different users need to have different permissions
To this end, some of the most basic needs have come out. Show all the nodes in the diagram as follows:
Nova's implementation
In front of us from the point of view of demand, our own analysis of the need to meet the basic needs, what kind of implementation. So will the real implementation of Nova be the same as ours?
Openstack Nova (ii)--Architecture (i)