OpenStack Projects, History and Releases Overview Project history and releases overview. OpenStack is a cloud computing project to provide an infrastructure as a service (IaaS). It is free open source software released under the terms of the Apache License. The project is managed by the OpenStack Foundation, a non-profit corporate entity established in September 2012 to promote OpenStack software and its community. More than 200 companies joined the project among which are AMD, Brocade Communications Systems, Canonical, Cisco, Dell, EMC, Ericsson, Groupe Bull, HP, IBM, Inktank, Intel, NEC, Rackspace Hosting, Red Hat, SUSE Linux, VMware, and Yahoo! The technology consists of a series of interrelated projects that control pools of processing, storage, and networking resources throughout a datacenter, all managed through a dashboard that gives administrators control while empowering its users to provision resources through a web interface. The OpenStack community collaborates around a six-month, time-based release cycle with frequent development milestones. During the planning phase of each release, the community gathers for the OpenStack Design Summit to facilitate developer working sessions and assemble plans. In July 2010 Rackspace Hosting and NASA jointly launched an open-source cloud-software initiative known as OpenStack. The OpenStack project intended to help organizations which offer cloud-computing services running on standard hardware. The community’s first official release, code-named Austin, appeared four months later, with plans to release regular updates of the software every few months. The early code came from NASA’s Nebula platform as well as from Rackspace’s Cloud Files platform. In July 2011 developers of the Ubuntu Linux distribution decided to adopt OpenStack. OpenStack Releases Release Name Release Date Included Components Austin 21 October 2010 Nova, Swift Bexar 3 February 2011 Nova, Glance, Swift Cactus 15 April 2011 Nova, Glance, Swift Diablo 22 September 2011 Nova, Glance, Swift Essex 5 April 2012 Nova, Glance, Swift, Horizon, Keystone Folsom 27 September 2012 Nova, Glance, Swift, Horizon, Keystone, Quantum, Cinder Grizzly 4 April 2013 Nova, Glance, Swift, Horizon, Keystone, Quantum, Cinder Havana 17 October 2013 Nova, Glance, Swift, Horizon, Keystone, Neutron, Cinder IceHouse April 2014 Nova, Glance, Swift, Horizon, Keystone, Neutron, Cinder, (More to be added) Some OpenStack users include: PayPal / eBay NASA CERN Yahoo! Rackspace Cloud HP Public Cloud MercadoLibre.com AT&T KT (formerly Korea Telecom) Deutsche Telekom Wikimedia Labs Hostalia of Telef nica Group SUSE Cloud solution Red Hat OpenShift PaaS solution Zadara Storage Mint Services GridCentric and many more such users of OpenStack make it a true open standard innovating and driving the worlds biggest Open Cloud Standards (more on User Stories here http://goo.gl/aF4lsL). Release Cycle
Community Heartbeat
OpenStack is based on a coordinated 6-month release cycle with frequent development milestones. You can find a link to the current development release schedule here. The Release Cycle is made of four major stages. Various OpenStack releases are named as follows Various Companies Contributing to OpenStack
Various Projects under OpenStack
In a Nutshell, OpenStack... has had 64,396 commits made by 1,128 contributors representing 908,491 lines of code is mostly written in Python with an average number of source code comments has a codebase with a long source history maintained by a very large development team with increasing Y-O-Y commits took an estimated 249 years of effort (COCOMO model) starting with its first commit in May, 2010. (I have deliberatly not included last commit date since this is an active project with people working on it from all round the world).
Programming Languages used to design OpenStack
For more overview on OpenStack refer http://www.openstack.org or http://goo.gl/4q7nVI, most of the common questions and queries are covered here so as to address the massive amount of questions that may arise out of this. Core Projects Overview Let’s take a dive into some technical aspects of OpenStack, its amazing scalability and flexibility are few of its awesome features that make it a rock-solid cloud computing platform but the OpenSource Nature of it and the fact that its Community driven, it is explicitly meant to serve the OpenSource community and its demands. Being a cloud computing platform, OpenStack consists of many core and incubated projects which as a whole makes it really good as an IaaS cloud computing platform/Operating System. But the following points are the main components of OpenStack that are necessary to be present in the cloud to call it as OpenStack Cloud. Components of OpenStack OpenStack has a modular architecture with various code names for its components. OpenStack has several shared services that span the three pillars of compute, storage and networking, making it easier to implement and operate your cloud. These services - including identity, image management and a web interface - integrate the OpenStack components with each other as well as external systems to provide a unified experience for users as they interact with different cloud resources. Compute (Nova) The OpenStack cloud operating system enables enterprises and service providers to offer on-demand computing resources, by provisioning and managing large networks of virtual machines. Compute resources are accessible via APIs for developers building cloud applications and via web interfaces for administrators and users. The compute architecture is designed to scale horizontally on standard hardware, enabling the cloud economics companies have come to expect.
OpenStack Compute:Provision and manage large networks of virtual machines
OpenStack Compute (Nova) is a cloud computing fabric controller (the main part of an IaaS system). 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). Nova'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. It is designed to manage and automate pools of computer resources and can work with widely available virtualization technologies, as well as bare metal and high-performance computing (HPC) configurations. KVM and XenServer are available choices for hypervisor technology, together with Hyper-V and Linux container technology such as LXC. In addition to different hypervisors, OpenStack runs on ARM. Popular Use Cases: Service providers offering an IaaS compute platform or services higher up the stack IT departments acting as cloud service providers for business units and project teams Processing big data with tools like Hadoop Scaling compute up and down to meet demand for web resources and applications High-performance computing (HPC) environments processing diverse and intensive workloads Object Storage(Swift) In addition to traditional enterprise-class storage technology, many organizations now have a variety of storage needs with varying performance and price requirements. OpenStack has support for both Object Storage and Block Storage, with many deployment options for each depending on the use case.
OpenStack Storage: Object and Block storage for use with servers and applications
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. Object Storage is ideal for cost effective, scale-out storage. It provides a fully distributed, API-accessible storage platform that can be integrated directly into applications or used for backup, archiving and data retention. Block Storage allows block devices to be exposed and connected to compute instances for expanded storage, better performance and integration with enterprise storage platforms, such as NetApp, Nexenta and SolidFire. A few details on OpenStack’s Object Storage OpenStack provides redundant, scalable object storage using clusters of standardized servers capable of storing petabytes of data Object Storage is not a traditional file system, but rather a distributed storage system for static data such as virtual machine images, photo storage, email storage, backups and archives. Having no central "brain" or master point of control provides greater scalability, redundancy and durability. 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 lieu of more expensive equipment. 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 (VMAX and VNX), GlusterFS, IBM Storage (Storwize family, SAN Volume Controller, and XIV Storage System), Linux LIO, NetApp, Nexenta, Scality, SolidFire and HP (Store Virtual and StoreServ 3Par families). 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. A few points on OpenStack Block Storage: OpenStack 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 using simple Linux server storage, it has unified storage support for numerous storage platforms including Ceph, NetApp, Nexenta, SolidFire, and Zadara. 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. Networking(Neutron) Today's datacenter networks contain more devices than ever before servers, network equipment, storage systems and security appliances many of which are further divided into virtual machines and virtual networks. The number of IP addresses, routing configurations and security rules can quickly grow into the millions. Traditional network management techniques fall short of providing a truly scalable, automated approach to managing these next-generation networks. At the same time, users expect more control and flexibility with quicker provisioning. OpenStack Networking is a pluggable, scalable and API-driven system for managing networks and IP addresses. Like other aspects of the cloud operating system, it can be used by administrators and users to increase the value of existing datacenter assets. OpenStack Networking ensures the network will not be the bottleneck or limiting factor in a cloud deployment and gives users real self-service, even over their network configurations.
OpenStack Networking: Pluggable, scalable, API-driven network and IP management
OpenStack Networking (Neutron, formerly Quantum]) is a system for managing networks and IP addresses. Like other aspects of the cloud operating system, it can be used by administrators and users to increase the value of existing data center assets. OpenStack Networking ensures the network will not be the bottleneck or limiting factor in a cloud deployment and gives users real self-service, even over their network configurations. OpenStack Neutron provides networking models for different applications or user groups. Standard models include flat networks or VLANs for separation of servers and traffic. OpenStack Networking manages IP addresses, allowing for dedicated static IPs or DHCP. Floating IPs allow traffic to be dynamically re routed to any of your compute resources, which allows you to redirect traffic during maintenance or in the case of failure. Users can create their own networks, control traffic and connect servers and devices to one or more networks. Administrators can take advantage of software-defined networking (SDN) technology like OpenFlow to allow for high levels of multi-tenancy and massive scale. OpenStack Networking has an extension framework allowing additional network services, such as intrusion detection systems (IDS), load balancing, firewalls and virtual private networks (VPN) to be deployed and managed. Networking Capabilities OpenStack provides flexible networking models to suit the needs of different applications or user groups. Standard models include flat networks or VLANs for separation of servers and traffic. OpenStack Networking manages IP addresses, allowing for dedicated static IPs or DHCP. Floating IPs allow traffic to be dynamically rerouted to any of your compute resources, which allows you to redirect traffic during maintenance or in the case of failure. Users can create their own networks, control traffic and connect servers and devices to one or more networks. The pluggable backend architecture lets users take advantage of commodity gear or advanced networking services from supported vendors. Administrators can take advantage of software-defined networking (SDN) technology like OpenFlow to allow for high levels of multi-tenancy and massive scale. OpenStack Networking has an extension framework allowing additional network services, such as intrusion detection systems (IDS), load balancing, firewalls and virtual private networks (VPN) to be deployed and managed. Dashboard(Horizon) OpenStack Dashboard (Horizon) provides administrators and users a graphical interface to access, provision and automate cloud-based resources. The design allows for third party products and services, such as billing, monitoring and additional management tools. The dashboard is also brandable for service providers and other commercial vendors who want to make use of it. The dashboard is just one way to interact with OpenStack resources. Developers can automate access or build tools to manage their resources using the native OpenStack API or the EC2 compatibility API. Identity Service(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. 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. As an administrator, OpenStack Identity enables you to: Configure centralized policies across users and systems Create users and tenants and define permissions for compute, storage and networking resources using role-based access control (RBAC) features Integrate with an existing directory like LDAP, allowing for a single source of identity authentication across the enterprise. As a user, OpenStack Identity enables you to: Get a list of the services that you can access. Make API requests Log into the web dashboard to create resources owned by your account Image Service(Glance) OpenStack Image Service (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 OpenStack Object Storage. The Image Service API provides a standard REST interface for querying information about disk images and lets clients stream the images to new servers. The Image Service can store disk and server images in a variety of back-ends, including OpenStack Object Storage. The Image Service API provides a standard REST interface for querying information about disk images and lets clients stream the images to new servers. Capabilities of the Image Service include: Administrators can create base templates from which their users can start new compute instances Users can choose from available images, or create their own from existing servers Snapshots can also be stored in the Image Service so that virtual machines can be backed up quickly A multi-format image registry, the image service allows uploads of private and public images in a variety of formats, including: Raw Machine (kernel/ramdisk outside of image, a.k.a. AMI) VHD (Hyper-V) VDI (VirtualBox) qcow2 (Qemu/KVM) VMDK (VMWare) OVF (VMWare, others) To checkout the complete list of Core and Incubated projects under OpenStack check out OpenStack’s Launchpad Project Page here : http://goo.gl/ka4SrV Amazon Web Services compatibility OpenStack APIs are compatible with Amazon EC2 and Amazon S3 and thus client applications written for Amazon Web Services can be used with OpenStack with minimal porting effort. Governance OpenStack is governed by a non-profit foundation and its board of directors, a technical committee and a user committee. The foundation's stated mission is by providing shared resources to help achieve the OpenStack Mission by Protecting, Empowering, and Promoting OpenStack software and the community around it, including users, developers and the entire ecosystem. Though, it has little to do with the development of the software, which is managed by the technical committee - an elected group that represents the contributors to the project, and has oversight on all technical matters.