Why Openstack?
Openstack is a private cloud that provides security and independence in managing the infrastructure.
OpenStack is a free and open-source software platform for cloud computing, mostly deployed as infrastructure-as-a-service (IaaS), whereby virtual servers and other resources are made available to customers.
The software platform consists of interrelated components that control diverse, multi-vendor hardware pools of processing, storage, and networking resources throughout a data center. Users either manage it through a web-based dashboard, through command-line tools, or through RESTful web services.
Openstack Components
OpenStack has a modular architecture with various code names for its components.
Compute (Nova)
OpenStack Compute (Nova) is a cloud computing fabric controller, which is the main part of an IaaS system. It is designed to manage and automate pools of computer resources and can work with widely available virtualisation technologies, as well as bare metal and high-performance computing (HPC) configurations. KVM, VMware, and Xen are available choices for hypervisor technology (virtual machine monitor), together with Hyper-V and Linux container technology such as LXC.
It is written in Python and uses many external libraries such as Eventlet (for concurrent programming), Kombu (for AMQP communication), and SQLAlchemy (for database access). Compute's architecture is designed to scale horizontally on standard hardware with no proprietary hardware or software requirements and provide the ability to integrate with legacy systems and third-party technologies.
Due to its widespread integration into enterprise-level infrastructures, monitoring OpenStack performance in general, and Nova performance in particular, at scale has become an increasingly important issue. Monitoring end-to-end performance requires tracking metrics from Nova, Keystone, Neutron, Cinder, Swift and other services, in addition to monitoring RabbitMQ which is used by OpenStack services for message passing. All these services generate their own log files, which, especially in enterprise-level infrastructures, also should be monitored.
Networking (Neutron)
OpenStack Networking (Neutron) is a system for managing networks and IP addresses. OpenStack Networking ensures the network is not a bottleneck or limiting factor in a cloud deployment,[citation needed] and gives users self-service ability, even over network configurations.
OpenStack Networking provides networking models for different applications or user groups. Standard models include flat networks or VLANs that separate servers and traffic. OpenStack Networking manages IP addresses, allowing for dedicated static IP addresses or DHCP. Floating IP addresses let traffic be dynamically rerouted to any resources in the IT infrastructure, so users can redirect traffic during maintenance or in case of a failure.
Users can create their own networks, control traffic, and connect servers and devices to one or more networks. Administrators can use software-defined networking (SDN) technologies like OpenFlow to support high levels of multi-tenancy and massive scale. OpenStack networking provides an extension framework that can deploy and manage additional network services—such as intrusion detection systems (IDS), load balancing, firewalls, and virtual private networks (VPN).
Block storage (Cinder)
OpenStack Block Storage (Cinder) provides persistent block-level storage devices for use with OpenStack compute instances. The block storage system manages the creation, attaching and detaching of the block devices to servers. Block storage volumes are fully integrated into OpenStack Compute and the Dashboard allowing for cloud users to manage their own storage needs. In addition to local Linux server storage, it can use storage platforms including Ceph, CloudByte, Coraid, EMC (ScaleIO, VMAX, VNX and XtremIO), GlusterFS, Hitachi Data Systems, IBM Storage (IBM DS8000, Storwize family, SAN Volume Controller, XIV Storage System, and GPFS), Linux LIO, NetApp, Nexenta, Nimble Storage, Scality, SolidFire, HP (StoreVirtual and 3PAR StoreServ families), INFINIDAT (InfiniBox) and Pure Storage. Block storage is appropriate for performance sensitive scenarios such as database storage, expandable file systems, or providing a server with access to raw block level storage. Snapshot management provides powerful functionality for backing up data stored on block storage volumes. Snapshots can be restored or used to create a new block storage volume.
Identity (Keystone)
OpenStack Identity (Keystone) provides a central directory of users mapped to the OpenStack services they can access. It acts as a common authentication system across the cloud operating system and can integrate with existing backend directory services like LDAP. It supports multiple forms of authentication including standard username and password credentials, token-based systems and AWS-style (i.e. Amazon Web Services) logins. Additionally, the catalog provides a queryable list of all of the services deployed in an OpenStack cloud in a single registry. Users and third-party tools can programmatically determine which resources they can access.
Image (Glance)
OpenStack Image (Glance) provides discovery, registration, and delivery services for disk and server images. Stored images can be used as a template. It can also be used to store and catalog an unlimited number of backups. The Image Service can store disk and server images in a variety of back-ends, including Swift. The Image Service API provides a standard REST interface for querying information about disk images and lets clients stream the images to new servers.
Glance adds many enhancements to existing legacy infrastructures. For example, if integrated with VMware, Glance introduces advanced features to the vSphere family such as vMotion, high availability and dynamic resource scheduling (DRS). vMotion is the live migration of a running VM, from one physical server to another, without service interruption. Thus, it enables a dynamic and automated self-optimising datacenter, allowing hardware maintenance for the underperforming servers without downtimes.
Other OpenStack modules that need to interact with Images, for example Heat, must communicate with the images metadata through Glance. Also, Nova can present information about the images, and configure a variation on an image to produce an instance. However, Glance is the only module that can add, delete, share, or duplicate images.
Object storage (Swift)
OpenStack Object Storage (Swift) is a scalable redundant storage system. Objects and files are written to multiple disk drives spread throughout servers in the data center, with the OpenStack software responsible for ensuring data replication and integrity across the cluster. Storage clusters scale horizontally simply by adding new servers. Should a server or hard drive fail, OpenStack replicates its content from other active nodes to new locations in the cluster. Because OpenStack uses software logic to ensure data replication and distribution across different devices, inexpensive commodity hard drives and servers can be used.
In August 2009, Rackspace started the development of the precursor to OpenStack Object Storage, as a complete replacement for the Cloud Files product. The initial development team consisted of nine developers. SwiftStack, an object storage software company, is currently the leading developer for Swift with significant contributions from HP, Red Hat, NTT, NEC, IBM and more.
Dashboard (Horizon)
OpenStack Dashboard (Horizon) provides administrators and users with a graphical interface to access, provision, and automate deployment of cloud-based resources. The design accommodates third party products and services, such as billing, monitoring, and additional management tools. The dashboard is also brand-able for service providers and other commercial vendors who want to make use of it. The dashboard is one of several ways users can interact with OpenStack resources. Developers can automate access or build tools to manage resources using the native OpenStack API or the EC2 compatibility API.
Orchestration (Heat)
Heat is a service to orchestrate multiple composite cloud applications using templates, through both an OpenStack-native REST API and a CloudFormation-compatible Query API.
Workflow (Mistral)
Mistral is a service that manages workflows. User typically writes a workflow using workflow language based on YAML and uploads the workflow definition to Mistral via its REST API. Then user can start this workflow manually via the same API or configure a trigger to start the workflow on some event.
Telemetry (Ceilometer)
OpenStack Telemetry (Ceilometer) provides a Single Point Of Contact for billing systems, providing all the counters they need to establish customer billing, across all current and future OpenStack components. The delivery of counters is traceable and auditable, the counters must be easily extensible to support new projects, and agents doing data collections should be independent of the overall system.
Database (Trove)
Trove is a database-as-a-service provisioning relational and a non-relational database engine.
Elastic map reduce (Sahara)
Sahara is a component to easily and rapidly provision Hadoop clusters. Users will specify several parameters like the Hadoop version number, the cluster topology type, node flavor details (defining disk space, CPU and RAM settings), and others. After a user provides all of the parameters, Sahara deploys the cluster in a few minutes. Sahara also provides means to scale a preexisting Hadoop cluster by adding and removing worker nodes on demand.
Bare metal (Ironic)
Ironic is an OpenStack project that provisions bare metal machines instead of virtual machines. It was initially forked from the Nova Baremetal driver and has evolved into a separate project. It is best thought of as a bare-metal hypervisor API and a set of plugins that interact with the bare-metal hypervisors. By default, it will use PXE and IPMI in concert to provision and turn on and off machines, but Ironic supports and can be extended with vendor-specific plugins to implement additional functionality.
Messaging (Zaqar)
Zaqar is a multi-tenant cloud messaging service for Web developers. The service features a fully RESTful API, which developers can use to send messages between various components of their SaaS and mobile applications by using a variety of communication patterns. Underlying this API is an efficient messaging engine designed with scalability and security in mind. Other OpenStack components can integrate with Zaqar to surface events to end users and to communicate with guest agents that run in the "over-cloud" layer.
Shared file system (Manila)
OpenStack Shared File System (Manila) provides an open API to manage shares in a vendor agnostic framework. Standard primitives include ability to create, delete, and give/deny access to a share and can be used standalone or in a variety of different network environments. Commercial storage appliances from EMC, NetApp, HP, IBM, Oracle, Quobyte, INFINIDAT and Hitachi Data Systems are supported as well as filesystem technologies such as Red Hat GlusterFS or Ceph.
DNS (Designate)
Designate is a multi-tenant REST API for managing DNS. This component provides DNS as a Service and is compatible with many backend technologies, including PowerDNS and BIND. It doesn't provide a DNS service as such as its purpose is to interface with existing DNS servers to manage DNS zones on a per tenant basis.
Search (Searchlight)
Searchlight provides advanced and consistent search capabilities across various OpenStack cloud services. It accomplishes this by offloading user search queries from other OpenStack API servers by indexing their data into ElasticSearch. Searchlight is being integrated into Horizon and also provides a Command-line interface.
Key manager (Barbican)
Barbican is a REST API designed for the secure storage, provisioning and management of secrets. It is aimed at being useful for all environments, including large ephemeral Clouds.
Container orchestration (Magnum)
Magnum is an OpenStack API service developed by the OpenStack Containers Team making container orchestration engines such as Docker Swarm, Kubernetes, and Apache Mesos available as first class resources in OpenStack. Magnum uses Heat to orchestrate an OS image which contains Docker and Kubernetes and runs that image in either virtual machines or bare metal in a cluster configuration.
Root Cause Analysis (Vitrage)
Vitrage is the OpenStack RCA (Root Cause Analysis) service for organising, analysing and expanding OpenStack alarms & events, yielding insights regarding the root cause of problems and deducing their existence before they are directly detected.
Rule-based alarm actions (Aodh)
This alarming service enables the ability to trigger actions based on defined rules against metric or event data collected by Ceilometer or Gnocchi.
OpenStack and VMware
In the world of cloud computing and virtualisation, OpenStack and VMware are two prominent platforms that offer powerful solutions for managing and deploying virtualised environments. Both have distinct advantages, challenges, and use cases. This article delves into the usefulness, challenges, necessity, and differences of OpenStack and VMware, providing insights into how they can benefit organisations.
Usefulness of OpenStack
1. Open Source Flexibility: OpenStack is an open-source platform, which means it offers flexibility and customisation options that proprietary solutions might not provide. Organisations can modify and tailor the software to meet their specific needs.
2. Cost-Effective: Being open source, OpenStack can be a cost-effective solution for organisations looking to avoid expensive licensing fees associated with proprietary software. This can significantly reduce the total cost of ownership.
3. Scalability: OpenStack is designed to scale horizontally, making it an ideal choice for businesses that need to expand their cloud infrastructure as they grow. It supports a wide range of workloads and can handle large-scale deployments.
4. Community Support: The OpenStack community is robust and active, providing extensive documentation, forums, and third-party support. This collaborative environment can help organisations troubleshoot issues and stay updated with the latest developments.
5. Interoperability: OpenStack supports a wide range of hardware and software, promoting interoperability and avoiding vendor lock-in. This enables organisations to integrate diverse systems and technologies seamlessly.
Challenges of OpenStack
1. Complexity: OpenStack can be complex to deploy and manage, requiring specialised knowledge and expertise. Organisations may need to invest in training or hire skilled professionals to manage their OpenStack environment effectively.
2. Maintenance: Due to its open-source nature, organisations are responsible for maintaining and updating their OpenStack deployments. This can involve significant effort to ensure the system remains secure and up-to-date.
3. Performance: While OpenStack is highly scalable, achieving optimal performance can be challenging. Organisations need to carefully plan and optimise their infrastructure to avoid potential bottlenecks and ensure smooth operation.
4. Integration: Integrating OpenStack with existing systems and applications can be a challenge. Organisations may need to invest in custom development or third-party tools to achieve seamless integration.
Necessity of OpenStack
1. Customisation Needs: For organisations that require a highly customisable cloud infrastructure, OpenStack is a necessity. Its open-source nature allows for extensive modifications and tailoring to specific requirements.
2. Cost Constraints: Organisations with limited budgets may find OpenStack a necessary choice due to its cost-effective nature. Avoiding hefty licensing fees makes it accessible to a broader range of businesses.
3. Avoiding Vendor Lock-In: For companies looking to avoid dependency on a single vendor, OpenStack provides the necessary flexibility and interoperability. This promotes a more versatile and adaptable cloud strategy.
Usefulness of VMware
1. Enterprise-Grade Solutions: VMware offers enterprise-grade virtualisation and cloud solutions that are well-suited for large organisations. Its robust features and reliability make it a popular choice for mission-critical applications.
2. Ease of Use: VMware provides user-friendly interfaces and comprehensive management tools, making it easier to deploy, manage, and monitor virtualised environments. This reduces the learning curve and operational complexity.
3. High Performance: VMware is known for its high-performance virtualisation capabilities. It optimises resource usage and ensures efficient operation of virtual machines, even under heavy workloads.
4. Comprehensive Support: VMware offers extensive support services, including professional support, training, and certification programs. This ensures that organisations have access to the expertise they need to manage their environments effectively.
5. Integration: VMware integrates seamlessly with a wide range of enterprise applications and systems. Its compatibility with various software solutions ensures smooth interoperability and streamlined workflows.
Challenges of VMware
1. Cost: One of the primary challenges of VMware is its cost. Licensing fees and ongoing support costs can be significant, making it a more expensive option compared to open-source alternatives.
2. Vendor Lock-In: Using VMware often involves a degree of vendor lock-in. Organisations may find it challenging to switch to other platforms without significant effort and cost.
3. Complexity in Licensing: VMware's licensing models can be complex and may require careful planning to ensure compliance and cost-effectiveness. This complexity can be a hurdle for some organisations.
Necessity of VMware
1. Enterprise Requirements: For large enterprises with complex IT environments and mission-critical applications, VMware's enterprise-grade solutions are a necessity. Its robust features and reliability are essential for maintaining high availability and performance.
2. Support Needs: Organisations that require comprehensive support and professional services may find VMware necessary. The availability of expert support ensures that issues can be resolved quickly and efficiently.
3. High Performance Demands: Businesses with high performance and resource optimisation needs will find VMware's advanced virtualisation capabilities necessary. Its ability to manage heavy workloads efficiently is crucial for such environments.
Differences Between OpenStack and VMware
1. Licensing Model:
- OpenStack: Open source, free to use with the option for paid support from third-party vendors.
- VMware: Proprietary software with licensing fees and associated costs for support and updates.
2. Customisation:
- OpenStack: Highly customisable due to its open-source nature, allowing extensive modifications.
- VMware: Less flexible in terms of customisation, but provides robust, out-of-the-box solutions.
3. Cost:
- OpenStack: More cost-effective, especially for organisations looking to minimise licensing fees.
- VMware: Higher cost due to licensing and support fees, suitable for organisations with larger budgets.
4. Complexity:
- OpenStack: More complex to deploy and manage, requiring specialised skills and knowledge.
- VMware: Easier to use with comprehensive management tools and support services.
5. Community vs. Professional Support:
- OpenStack: Relies heavily on community support, with the option for third-party professional services.
- VMware: Offers extensive professional support and services directly from VMware.
Both OpenStack and VMware provide powerful solutions for cloud computing and virtualisation, each with its own set of advantages, challenges, and necessities. OpenStack's open-source nature offers flexibility and cost savings, making it suitable for organisations seeking customisation and avoiding vendor lock-in. On the other hand, VMware provides enterprise-grade solutions with high performance, ease of use, and comprehensive support, ideal for large organisations with complex requirements.
The choice between OpenStack and VMware depends on an organisation's specific needs, budget, and technical capabilities. By carefully considering the usefulness, challenges, and necessities of each platform, businesses can make informed decisions that align with their strategic goals and operational requirements.