Saturday, October 26, 2013

OpenStack


What is OpenStack?

OpenStack is an open and scalable operating system for building public and private clouds. In July 2010 Rackspace Hosting and NASA jointly launched an open-source cloud-software initiative known as OpenStack. Later on many more organizations lend their support for the Open Stack initiative. The complete list of organizations can be found here http://www.openstack.org/foundation/companies/

Wikipedia: 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.

Components of OpenStack:

1) 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. 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.
AMQP (Advanced Message Queuing Protocol) is the messaging technology chosen by the OpenStack cloud. The AMQP broker, either RabbitMQ or Qpid, sits between any two Nova components and allows them to communicate in a loosely coupled fashion. More precisely, Nova components (the compute fabric of OpenStack) use Remote Procedure Calls to communicate to one another.

2) Storage (Swift\Cinder): OpenStack has support for both Object Storage and Block Storage.

Object Storage(Swift) is ideal for cost effective, scale-out storage. OpenStack provides redundant, scalable object storage using clusters of standardized servers capable of storing petabytes of data. 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.

Block Storage(Cinder) allows block devices to be exposed and connected to compute instances for expanded storage, better performance and integration with enterprise storage platforms. 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.

3) Networking (Neutron): 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. Users can create their own networks, control traffic and connect servers and devices to one or more networks. 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.

4) Dashboard (Horizon): The dashboard is an extensible web app that allows cloud administrators and users to control their compute, storage and networking resources. As a cloud administrator, the dashboard provides an overall view of the size and state of your cloud. You can create users and projects, assign users to projects and set limits on the resources for those projects. Developers can automate access or build tools to manage their resources using the native OpenStack API or the EC2 compatibility API.

5) Shared Services (Keystone\Glance): OpenStack shared services 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.

OpenStack Identity Service(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 logins.

As an administrator, OpenStack Identity enables you to:

a) Configure centralized policies across users and systems.
b) Create users and tenants and define permissions for compute, storage and networking resources using role-based access control (RBAC) features.
c) 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:

a) Get a list of the services that you can access.
b) Make API requests or log into the web dashboard to create resources owned by your account.

OpenStack Image Service(Glance) provides discovery, registration and delivery services for disk and server images. The ability to copy or snapshot a server image and immediately store it away is a powerful capability of the OpenStack cloud operating system. Stored images can be used as a template to get new servers up and running quickly.

A multi-format image registry, the image service allows uploads of private and public images in a variety of formats, including:

a) Raw
b) Machine (kernel/ramdisk outside of image, a.k.a. AMI)
c) VHD (Hyper-V)
d) VDI (VirtualBox)
e) qcow2 (Qemu/KVM)
f) VMDK (VMWare)
g) OVF (VMWare, others)

Saturday, October 5, 2013

Power of Linux Operating System

Recently i came across the news that French police is shifting from normal Desktop PC's to Linux. You can read more about the same here http://www.wired.com/wiredenterprise/2013/09/gendarmerie_linux/

The question that comes to the mind is that when will our (Indian) educational institutes, government agencies & private companies will show the same trend. Are we undermining the power of open source? 

If you believe me yes we are indeed doing the same. We are more inclined towards Microsoft Windows based PC's and the reason for that, up till few years back was the ease of use. With the advent of desktop based Linux operating systems like Ubuntu raring ringtail things are changing quickly. We all have heard of Google and uses their search engine on daily basis (I wonder who uses bing lol). Ever heard of Goobuntu? It's an modified version of Ubuntu that employees at Google use in their day to day work. 

The list of Linux adopters are increasing on daily basis and the list does includes most prominent names like NASA, CERN & IBM. You can find the entire list here http://en.wikipedia.org/wiki/List_of_Linux_adopters

Supercomputers around the world use Linux. You can read more at http://www.zdnet.com/20-great-years-of-linux-and-supercomputers-7000018681/

Most of the reputed educational institutions around the world uses Linux. Universities like MIT, Stanford and many others across the globe are in fact using Linux day in & out. Prestigious universities have realized the power of open source products and are using those to educate the future engineers. Educational institutes in Kerala have adopted the Linux OS in the year 2006.

Linux is used by the defense sector around the world because of its features like security & reliability. Best example is National Security Agency (NSA) which originally created Linux.

Almost 90% of the mobiles & tablets are using Linux based operating system i.e Android. All the above facts clearly indicates the dominance of Linux over any other OS.