diff --git a/source/images/6_features.png b/source/images/6_features.png index 347d096be5..bf0ce0b36c 100644 Binary files a/source/images/6_features.png and b/source/images/6_features.png differ diff --git a/source/images/new_overview_integrators.png b/source/images/new_overview_integrators.png index fc6ff0402e..88c5898433 100644 Binary files a/source/images/new_overview_integrators.png and b/source/images/new_overview_integrators.png differ diff --git a/source/overview/cloud_architecture_and_design/cloud_architecture_design.rst b/source/overview/cloud_architecture_and_design/cloud_architecture_design.rst index e4fd431381..968d8b680b 100644 --- a/source/overview/cloud_architecture_and_design/cloud_architecture_design.rst +++ b/source/overview/cloud_architecture_and_design/cloud_architecture_design.rst @@ -4,55 +4,61 @@ Cloud Architecture Design =========================== -In order to get familiar with OpenNebula, or if you want to try an Edge, Hybrid or Multi-cloud deployment, we strongly recommend you start with the :ref:`Quick Start guide `. In the Quick Start, you will learn how to install a single OpenNebula Front-end, deploy on-demand Edge Clusters on remote cloud providers, as well as the basic usage and operation of your cloud. This trial of a real cloud deployment will help you create a plan with the features, performance, scalability, and high availability characteristics in order to get the most out of an OpenNebula Cloud. +To start learning about OpenNebula, or if you want to quickly try an Edge, Hybrid or Multi-cloud deployment, we strongly recommend you start with the :ref:`Quick Start Guide `. In the Quick Start, you can: + + * :ref:`Install an OpenNebula Front-end ` + * Deploy on-demand :ref:`Edge Clusters ` on remote cloud providers + * Deploy :ref:`Virtual Machines ` and :ref:`Kubernetes clusters ` + +As you follow the tutorials you will learn the basic usage and operation of your cloud. This trial of a real cloud deployment can help you to plan for the most suitable features for performance, scalability, to get the most out of your OpenNebula cloud. + +The sections below describe the high-level steps to design and deploy an OpenNebula cloud. Step 1. Install the Front-end ================================================= -The first step is the installation of OpenNebula in the cloud Front-end. This :ref:`installation process ` based on operating system packages for the most widely used Linux distributions is the same for any underlying hypervisor or deployment model. +The first step is the installation of the OpenNebula Front-end. The :ref:`installation process ` is based on operating system packages for the most widely-used Linux distributions, and is the same for any underlying hypervisor or deployment model. -Don't forget to read the section about :ref:`Large-scale Deployment ` if you're planning a system with a very large number of hypervisors. The general recommendation is to have no more than 2,500 servers and 10,000 VMs managed by a single instance. Better performance and higher scalability can be achieved with specific tuning of other components like the DB. In any case, to grow the size of your cloud beyond these limits, you can horizontally scale your cloud by adding new OpenNebula zones within a federated deployment. The largest OpenNebula deployment consists of 16 data centers and 300,000 cores. +If you are planning for a system with a very large number of hypervisors, don’t forget to read the :ref:`Large-scale Deployment ` section. The general recommendation is that each OpenNebula instance handle up to 2500 servers and 10,000 VMs. Better performance and higher scalability can be achieved by tuning other components, such as the DB. In any case, to grow the size of your cloud beyond these limits, you can horizontally scale the cloud by adding new OpenNebula zones within a federated deployment. The largest OpenNebula deployment consists of 16 data centers and 300,000 cores. -Optionally you can set up a :ref:`high available cluster ` for OpenNebula to reduce downtime of core OpenNebula services, and :ref:`configure a MySQL/MariaDB backend ` as an alternative to the default Sqlite Back-end if you are planning a large-scale infrastructure. +To reduce downtime of core OpenNebula services, you can optionally set up a :ref:`High-availability cluster `. If planning for a large-scale infrastructure, you can :ref:`configure a MySQL/MariaDB backend ` as an alternative to the default SQLite backend. -Although a single OpenNebula Front-end can manage multiple clusters geographically distributed in several data centers and cloud providers, a multi-zone deployment with :ref:`datacenter federation ` functionality can be chosen when data centers are in different administrative domains or when the connectivity across data centers does not meet latency and bandwidth requirements. Multiple OpenNebula zones can be configured as a federation, and in this case they will share the same user accounts, groups, and permissions across data centers. +A single OpenNebula Front-end can manage multiple clusters geographically distributed across several data centers and cloud providers. However, you can choose a multi-zone deployment with :ref:`data center federation ` if data centers belong to different administrative domains or if connectivity between them does not meet latency and bandwidth requirements. Multiple OpenNebula zones can be configured as a federation, where they will share the same user accounts, groups, and permissions across data centers. -Besides connecting your cloud to the public :ref:`OpenNebula Marketplace and other third-party Marketplaces like Docker Hub and Linux Containers `, you can build your own :ref:`private marketplace ` to provide your users with an easy way of privately publishing, downloading and sharing your own custom Appliances. +Besides connecting your cloud to the public :ref:`OpenNebula Marketplace and other third-party Marketplaces `, you can build your own :ref:`private marketplace ` to provide your users with an easy way of privately publishing, downloading and sharing your own custom Appliances. Step 2. Deploy Edge Clusters ================================================= -OpenNebula brings its own :ref:`Edge Cluster configuration that is based on solid open source storage and networking technologies `, and is a much simpler approach than those of customized cloud architectures made of more complex, general-purpose and separate infrastructure components. :ref:`OpenNebula automates the deployment of Edge Clusters on-demand on virtual or bare-metal resources both on-premises and on your choice of public cloud or edge provider`. +OpenNebula brings its own :ref:`Edge Cluster configuration ` that is based on solid open-source storage and networking technologies, and is a much simpler approach than those of customized cloud architectures made of more complex, general-purpose and separate infrastructure components. OpenNebula :ref:`automates the deployment of Edge Clusters ` on-demand, on virtual or bare-metal resources both on-premises and on your choice of public cloud or edge provider. -Step 3. Set up Customized Clusters On-premises +Step 3. Set Up Customized Clusters On-premises ================================================= -OpenNebula is certified to work on top of multiple combinations of hypervisors, storage and networking technologies. In this model, you need to install and configure the underlying cloud infrastructure software components first and then install OpenNebula to build the cloud. The clusters can be deployed on-premises or on your choice of bare-metal cloud or hosting provider. If you are interested in designing and deploying an OpenNebula cloud on top of VMware vCenter, please refer to our :ref:`VMWare Cloud Reference Architecture `. If you are interested in an OpenNebula cloud fully based on open source platforms and technologies, please refer to our :ref:`Open Cloud Reference Architecture `. These guides have been created from the collective information and experiences of hundreds of users and cloud client engagements. Besides the main logical components and interrelationships, these guides document software products, configurations, and requirements of infrastructure platforms recommended for a smooth OpenNebula installation. +OpenNebula is certified to work on top of multiple combinations of hypervisors, storage and networking technologies. In this model, you need to first install and configure the underlying cloud infrastructure software components, then install OpenNebula to build the cloud. Clusters can be deployed on-premises or on your choice of bare-metal cloud or hosting provider. If you are interested in an OpenNebula cloud fully based on open source platforms and technologies, please refer to our :ref:`Open Cloud Reference Architecture `. The reference architecture and the guide have been created from the collective information and experiences of hundreds of users and cloud client engagements. Besides the main logical components and interrelationships, these guide documents software products, configurations, and requirements of infrastructure platforms recommended for a smooth OpenNebula installation. -3.1.Choose Your Hypervisor +3.1. Choose Your Hypervisor -------------------------------------------------- -The first step in building a customized cluster is to decide on the hypervisor that you will use in your cloud infrastructure. The main OpenNebula distribution provides full support for the two most widely used hypervisors, KVM and VMware (through vCenter), LXC system containers, and Firecracker lightweight virtualization at different levels of functionality. +The first step in building a customized cluster is to decide on the hypervisor that you will use in your cloud infrastructure. The main OpenNebula distribution provides full support KVM, one of the most efficient and widely-used hypervisors, as well as LXC system containers. -- **Virtualization and Cloud Management on KVM**. Many companies use OpenNebula to manage data center virtualization, consolidate servers, and integrate existing IT assets for computing, storage, and networking. In this deployment model, OpenNebula directly integrates with KVM and has complete control over virtual and physical resources, providing advanced features for capacity management, resource optimization, high availability and business continuity. Some of these deployments additionally use OpenNebula’s **Cloud Management and Provisioning** features when they want to federate data centers, implement cloud bursting, or offer self-service portals for end-users. +- **Virtualization and Cloud Management on KVM**. Many companies use OpenNebula to manage data center virtualization, consolidate servers, and integrate existing IT assets for computing, storage, and networking. In this deployment model, OpenNebula directly integrates with KVM and complete controls virtual and physical resources, providing advanced features for capacity management, resource optimization, high availability and business continuity. Some of these deployments additionally use OpenNebula’s **Cloud Management and Provisioning** features when they want to federate data centers, implement cloud bursting, or offer self-service portals for end-users. -- **Containerization with LXC**. Containers are the next step towards virtualization. They have a minimal memory footprint and skip the compute intensive and sometimes unacceptable performance degradation inherent to hardware emulation. You can have a very high density of containers per virtualization node and run workloads close to bare-metal metrics. LXC focuses on system containers unlike similar technologies like Docker, which focuses on application containers. +- **Containerization with LXC**. Containers are the next step towards virtualization. They have a minimal memory footprint and skip the compute-intensive and sometimes unacceptable performance degradation inherent to hardware emulation. You can have a very high density of containers per virtualization node and run workloads close to bare-metal metrics. LXC focuses on system containers unlike similar technologies such as Docker, which focuses on application containers. -After having installed the cloud with one hypervisor, you may add other hypervisors. You can deploy heterogeneous multi-hypervisor environments managed by a single OpenNebula instance. An advantage of using OpenNebula on VMware is the strategic path to openness as companies move beyond virtualization toward a private cloud. OpenNebula can leverage existing VMware infrastructure, protecting IT investments, and at the same time gradually integrate other open source hypervisors, therefore avoiding future vendor lock-in and strengthening the negotiating position of the company. +OpenNebula allows you to deploy heterogeneous multi-hypervisor environments managed by a single OpenNebula instance, so after after having installed the cloud with one hypervisor, you can add another. The ability to gradually integrate other open source hypervisors helps to protect existing IT investments and facilitate evaluation and testing, at the same time avoiding vendor lock-in by using open-source components. |OpenNebula Hypervisors| -3.2. Install the Virtualization hosts +3.2. Install the Virtualization Hosts ------------------------------------------------- -Now you are ready to **add the virtualization nodes**. The OpenNebula packages bring support for :ref:`KVM ` and :ref:`LXC` nodes. In the case of vCenter, a host represents a vCenter cluster with all its ESX hosts. You can add different hypervisors to the same OpenNebula instance. +After selecting the hypervisor(s) for your cloud, you are ready to **add the virtualization nodes**. The OpenNebula packages bring support for :ref:`KVM ` and :ref:`LXC ` nodes. As mentioned earlier, you can add different hypervisors to the same OpenNebula instance. 3.3. Integrate with Data Center Infrastructure ------------------------------------------------------------ -Now you should have an OpenNebula cloud up and running with at least one virtualization node. The next step is to configure OpenNebula to work with your infrastructure. When using the vCenter driver, no additional configurations are needed. - -However, OpenNebula directly manages the hypervisor, networking and storage platforms, and you may need additional configuration: +Now you should have an OpenNebula cloud up and running with at least one virtualization node. The next step is to configure OpenNebula to work with your infrastructure. OpenNebula directly manages the hypervisor, networking and storage platforms, and you may need additional configuration: - **Networking setup** with :ref:`802.1Q VLANs `, :ref:`Open vSwitch ` or :ref:`VXLAN `. @@ -60,12 +66,12 @@ However, OpenNebula directly manages the hypervisor, networking and storage plat - **Host setup** with the configuration options for the :ref:`KVM hosts `, :ref:`LXC hosts `, :ref:`Monitoring subsystem `, :ref:`Virtual Machine HA ` or :ref:`PCI Passthrough `. -- **Authenticagtion setup**, OpenNebula comes by default with an internal **user/password authentication system**, but it can use an external Authentication driver like :ref:`ssh `, :ref:`x509 `, :ref:`ldap ` or :ref:`Active Directory `. +- **Authentication setup**, OpenNebula includes by default an internal **user/password authentication system**, but it can also use an external authentication driver such as :ref:`SSH `, :ref:`x509 `, :ref:`LDAP ` or :ref:`Active Directory `. 3.4. Configure Cloud Services -------------------------------------------------- -OpenNebula operates coordinating a set of specialized daemons and services to provide specific functions. You can get an in-depth overview of the main OpenNebula components, their configuration files, start and stop procedures as well as logging facilities in :ref:`the OpenNebula Services Guide `. +OpenNebula runs a set of specialized, coordinated daemons and services to provide specific functions. For an in-depth overview of the main OpenNebula components, their configuration files, start/stop procedures and logging facilities please refer to the :ref:`the OpenNebula Services Guide `. Step 4. Operate your Cloud =============================================== @@ -73,39 +79,39 @@ Step 4. Operate your Cloud 4.1. Define a Provisioning Model -------------------------------------------------- -Before configuring multi-tenancy and defining the provisioning model of your cloud, we recommend you go through this introduction to the :ref:`OpenNebula provisioning model `. In a small installation with a few Hosts, you can skip this guide and use OpenNebula without giving much thought to infrastructure partitioning and provisioning. But for medium and large deployments you will probably want to provide some level of isolation and structure. +Before configuring multi-tenancy and defining the provisioning model of your cloud, we recommend you consult the introduction to the :ref:`OpenNebula Provisioning Model `. In a small installation with a few Hosts, you can skip this guide and use OpenNebula without giving much thought to infrastructure partitioning and provisioning. However, for medium and large deployments you will probably want to provide some level of isolation and structure. -OpenNebula helps you to define a provisioning model with two concepts: +OpenNebula helps you to define a provisioning model based on two concepts: -- **Users and Groups.** OpenNebula features advanced multi-tenancy with powerful :ref:`users and groups management `, an :ref:`Access Control List ` mechanism allowing different role management with fine-grain permission granting over any resource. The :ref:`resource quota management ` subsystem lets you track and limit computing, storage and networking utilization. +- **Users and Groups.** OpenNebula features advanced multi-tenancy with powerful :ref:`user and groups management `, implemented through an :ref:`Access Control List ` mechanism that allows for differential role management based on fine-grained permissions that can be applied over any resource. The :ref:`resource quota management ` subsystem lets you track and limit the use of computing, storage and networking resources. -- **Virtual Data Centers** :ref:`VDCs ` let you assign one or more user groups to a pool of physical resources. Virtual Data Centers (VDCs) allow the creation of *logical* pools of resources (which could belong to different clusters and zones) and allocate them to user groups. +- **Virtual Data Centers** or :ref:`VDCs ` allow you to assign one or more user groups to a pool of physical resources. You can also create *logical* pools of resources—which may physically belong to different clusters and zones—and allocate them to user groups. -Finally, with the :ref:`accounting ` and :ref:`showback ` modules you can visualize and report resource usage data periodically, and eventually, allow its integration with chargeback and billing platforms. +Finally, the :ref:`accounting ` and :ref:`showback ` modules allow you to visualize and report resource usage data, produce usage reports, and integrate with chargeback and billing platforms. 4.2. Manage Virtual Resources -------------------------------------------------- -Now everything is ready for operation. OpenNebula provides full control to manage virtual resources. +Now everything is ready for operation. OpenNebula provides you with full control to manage virtual resources. -- **Virtual machine image management** that allows you to store :ref:`disk images in catalogs ` (termed datastores), that can then be used to define VMs or shared with other users. The images can be OS installations, persistent datasets or empty data blocks that are created within the datastore. +- **Virtual machine image management** that allows you to store disk images in :ref:`catalogs ` (termed datastores), that can then be used to define VMs, or be shared with other users. The images may be OS installations, persistent datasets or empty data blocks that are created within the datastore. -- **Virtual network management** of :ref:`Virtual networks ` that can be organized in network catalogs and provide means to interconnect virtual machines. This kind of resource can be defined as IPv4, IPv6, or mixed networks, and can be used to achieve full isolation between virtual networks. Networks can be easily interconnected by using :ref:`virtual routers ` and KVM, LXC and Firecracker users can also dynamically configure :ref:`security groups ` +- **Virtual network management** allows you to organize :ref:`Virtual networks ` in catalogs, as well as to provide means to interconnect virtual machines. This type of resource may be defined as IPv4, IPv6, or mixed networks, and may be used to achieve full isolation between virtual networks. Networks can be easily interconnected by :ref:`virtual routers `, and may be hardened by dynamic configuration of :ref:`security groups ` -- **Virtual machine template management** with a :ref:`template catalog ` system that allows the registering of :ref:`virtual machine ` definitions in the system, to be instantiated later as Virtual Machine instances. +- **Virtual machine template management** implements a :ref:`template catalog ` that allows you to register :ref:`virtual machine ` definitions to be instantiated later as Virtual Machines. -- **Virtual machine instance management** with a number of operations that can be performed to control the lifecycle of the :ref:`virtual machine instances `, such as migration (live and cold), stop, resume, cancel, power-off,... or :ref:`backup `. +- **Virtual machine instance management** includes a number of operations to control the life cycle of :ref:`virtual machine instances `, such as migration (live and cold), stop, resume, cancel, power-off or :ref:`backup `. -- :ref:`OneFlow ` allows **multi-VM application and auto-scaling** to :ref:`define, execute and manage multi-tiered elastic applications `, or services composed of interconnected Virtual Machines with deployment dependencies between them and :ref:`auto-scaling rules `. +- :ref:`OneFlow ` implements **multi-VM application and auto-scaling** to :ref:`define, execute and manage multi-tiered elastic applications `, or services composed of interconnected Virtual Machines with deployment dependencies between them, using :ref:`auto-scaling rules `. - **Application insight** with :ref:`OneGate ` allows Virtual Machine guests to pull and push VM information from OpenNebula. Users and administrators can use it to gather metrics, detect problems in their applications, and trigger OneFlow elasticity rules from inside the VM. -Several reference guides are provided for more information about definition files, templates, and the CLI. +Reference guides are provided with more information about definition files, templates, and the CLI. 4.3. Add contents to your Cloud -------------------------------------------------- -You have multiple options when adding Applications to your cloud, from using your existing disk images to download them from public Marketplaces. Please refer to the :ref:`Creating Images section of the Image Guide `. +OpenNebula offers multiple options for adding Applications to your cloud, from using your existing disk images to downloading them from public or private Marketplaces. For information on creating new applications, see the :ref:`Creating Images ` section. Step 5. Integrate with other Components =============================================== @@ -114,20 +120,22 @@ This step is optional and only for integrators and builders. Because no two clouds are the same, OpenNebula provides many different interfaces that can be used to interact with the functionality offered to manage physical and virtual resources. -- **Modular and extensible architecture** with :ref:`customizable plug-ins ` for integration with any third-party data center infrastructure platform for :ref:`storage `, :ref:`monitoring `, :ref:`networking `, :ref:`authentication `, :ref:`virtualization ` and :ref:`market `. +- A **Modular and extensible architecture** with :ref:`customizable plug-ins ` for integration with any third-party data center infrastructure platform for :ref:`storage `, :ref:`monitoring `, :ref:`networking `, :ref:`authentication `, :ref:`virtualization ` and :ref:`market `. -- **Rich API set** that offers all the functionality of OpenNebula components, with bindings for :ref:`ruby ` and :ref:`java ` and :ref:`XML-RPC API `. These APIs will ease the integration of your cloud with higher level tools such as billing, self-service portals... +- A **Rich API set** that offers all the functionality of OpenNebula components, with bindings for :ref:`Ruby ` and :ref:`Java ` as well as the :ref:`XML-RPC API `. These APIs will ease the integration of your cloud with higher-level tools such as chargeback, billing or self-service platforms. -- **OneFlow API** to create, control and monitor :ref:`multi-tier applications or services composed of interconnected Virtual Machines `. +- The **OneFlow API** to create, control and monitor :ref:`multi-tier applications or services ` composed of interconnected Virtual Machines. -- **Ruby Sunstone custom routes and tabs** to extend the :ref:`ruby sunstone web UI interface `. - -- **Hook Manager** to :ref:`trigger administration scripts upon resource state changes or API calls `. +- A **Hook Manager** to :ref:`trigger administration scripts ` upon resource state changes or API calls. |OpenNebula Cloud Architecture| +.. 08_Cloud Architecture Design sans VMware + .. |OpenNebula Hypervisors| image:: /images/6_features.png :width: 70% +.. 07_Cloud Architecture Design 2 + .. |OpenNebula Cloud Architecture| image:: /images/new_overview_integrators.png :width: 70% diff --git a/source/overview/opennebula_concepts/opennebula_overview.rst b/source/overview/opennebula_concepts/opennebula_overview.rst index 2109d01ea5..361e8ec13c 100644 --- a/source/overview/opennebula_concepts/opennebula_overview.rst +++ b/source/overview/opennebula_concepts/opennebula_overview.rst @@ -32,7 +32,7 @@ OpenNebula is designed for simplicity and flexibility, to help organizations ada Virtualized Applications ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ -OpenNebula manages workloads based on KVM, LXC system containers. It can manage both single VMs and complex mult-tier services composed of several VMs that require sophisticated elasticity rules and dynamic adaptability. In OpenNebula, VM-based applications are created from images and templates. Users can modify templates or create new ones; they can be shared by the cloud administrator using a private corporate marketplace. Pre-defined, fully-functional templates are also available in the OpenNebula Marketplace, which allows users to easily download and deploy VMs, virtual appliances and full-featured multi-VM services. +OpenNebula manages workloads based on KVM, LXC system containers. It can manage both single VMs and complex multi-tier services composed of several VMs that require sophisticated elasticity rules and dynamic adaptability. In OpenNebula, VM-based applications are created from images and templates. Users can modify templates or create new ones; they can be shared by the cloud administrator using a private corporate marketplace. Pre-defined, fully-functional templates are also available in the OpenNebula Marketplace, which allows users to easily download and deploy VMs, virtual appliances and full-featured multi-VM services. OpenNebula’s management model provides multi-tenancy by design, offering different user interfaces depending on users’ roles within an organization, or the level of required expertise or functionality. @@ -167,7 +167,16 @@ Next Steps **Building an evaluation environment** -We strongly recommend you evaluate OpenNebula by following our :ref:`Quick Start Guide `. The Guide will walk you through a set of tutorials that start at :ref:`installing an OpenNebula Front-end `, continue with :ref:`deploying an Edge Cluster on AWS `, then a :ref:`WordPress appliance ` and finally a :ref:`Kubernetes cluster `, all using the Sunstone web UI. This is the quickest way to familiarize yourself with OpenNebula since most tutorials take under ten minutes to complete. +To evaluate OpenNebula, we strongly recommend that you follow our :ref:`Quick Start Guide `. The Guide will walk you through a series of tutorials to progressively build infrastructure. All tutorials use the Sunstone UI, and most take under ten minutes to complete. + +Following the Guide, you can quickly and easily: + + * :ref:`Install an OpenNebula Front-end `, then use that Front-end to + * :ref:`Deploy an Edge Cluster `, where you will + * :ref:`Deploy a Virtual Machine `, and finally + * :ref:`Deploy a Kubernetes cluster `. + +The Quick Start Guide is by far the fastest way to familiarize yourself with OpenNebula. **Setting up a production environment** @@ -175,7 +184,6 @@ If you are interested in building a production environment, then :ref:`Cloud Arc Remember that if you need our support at any time, or access to our professional services or to the **Enterprise Edition**, you can always `contact us `__. - .. |image1| image:: /images/overview_key-features.png :width: 70%