cancel
Showing results for 
Search instead for 
Did you mean: 
cancel
Announcements

OpenStack minus Python

2057
Views
12
Helpful
6
Comments
Cisco Employee

As a developer who worked on Cisco's operating systems (IOS, IOS-XE, IOS-XR, NXOS), routing protocols, kernel programming, virtual memory, device drivers and SDN, I needed a lot of time to understand how cloud computing can be done using Python. When I read that OpenStack is a cloud “operating system”, I was not able to comprehend why Wikipedia says that OpenStack is written in Python. On the right is a screenshot from Wikipedia. So, I initially thought OpenStack does not include Linux.

I have been working on OpenStack since 2013 (Grizzly release), and after more than two years, I realize that OpenStack does include “some” Linux (I will elaborate the size of “some” later in this blog!).

To understand the role of Linux in OpenStack, I will continue this blog with a few questions and pictures. The questions and pictures are around Python and Linux. The readers of this blog can find their own answers!


Which figure below is the right way to visualize OpenStack's building blocks ? Is Figure 1 that has a big Python block correct ? Or, is Figure 2 with a big Linux block correct ? Or, should both Python and Linux be equal-sized blocks ?


Building_blocks.jpg


Who is cute ? Penguin (Linux's logo) or Python ?


Who_is_cute.jpg


According to the theory of evolution, even though Penguins (birds) evolved from Pythons (reptiles), we all know that Linux did not evolve from Python. But, did Python evolve from Linux ?


Evolution.jpg


Who is your hero in the tech industry ? Linus Torvalds (creator of Linux) or Guido van Rossum (creator of Python) ?


Who.jpg


As I think about these questions, when someone says "OpenStack minus Python", below are the concepts in OpenStack that immediately come to my mind. All of these concepts can be understood / implemented in Linux and I've listed them for OpenStack's most popular and contributed projects - Neutron, Nova, Glance, Horizon, Keystone and Cinder.


"Neutron minus Python" includes many networking concepts like Linux namespaces, layer-2 switching, VLANs (access, trunk), VXLAN, GRE, layer-3 routing, sockets, bridges, TCP, UDP, dual stack (both IPv4 and IPv6), DHCP, DNS, default routes, broadcast, multicast (IGMP, PIM), unicast, OSI model and a lot of other cool things.


"Nova minus Python" includes many virtualization concepts like hypervisors, bare-metal provisioning, PXE booting, IPMI, libvirt, qemu, KVM, virt-manager, virsh, resource isolation, nested virtualization, cgroups, vNICS, VM snapshots, VM live migration, cloud-init, paravirtualization and a lot of other cool things.


"Glance minus Python" includes many imaging concepts like disk formats (ami, ari, aki, vhd, vmdk, raw, qcow2, vdi, and iso), container formats (ami, ari, aki, bare, and ovf), virtual appliance (ova), image registry, virtual hard disk (VHD) and a lot of other cool things.


"Horizon minus Python" includes many web services / UI concepts like HTTP, REST, HTML, JSP, CSS, web templates, AJAX, AngularJS, JavaScript, web server, presentation layer, UIX, Model-View-Controller (MVC), UI components (panels, tabs, buttons, scrollbars, workflows, actions, URLs) and a lot of other cool things.


"Keystone minus Python" includes many authentication concepts like AAA, Single sign-on (SSO), Federated identity management (FIM), OpenID, cryptography, encryption algorithms (RSA, DSA, SHA, MD5, Diffie-Hellman, PGP), key exchange, key rotation, authentication token and a lot of other cool things.


"Cinder minus Python" includes many storage concepts like Fibre Channel, Fibre Channel over Ethernet (FCoE), Fibre Channel over IP (FCIP), Small Computer System Interface (SCSI), iSCSI (Internet SCSI), Storage Area Networks (SAN), SAN booting, RAID, Logical Unit Number (LUN), data replication and a lot of other cool things.


So, I think Python is the front-end of OpenStack and Linux is the backend that implements a lot of cool things. Along with Python, I think an OpenStack user / developer must try to understand, implement, scale and debug the concepts listed above as well in order to deploy the best clouds. The OpenStack community must also continue to build expertise around these concepts.


For example, it looks like Red Hat is one company that understands these concepts, develops a good Linux distribution as a trusted backend for OpenStack, and makes money from a lot of cloud deployments. Red Hat is the backend Linux distribution for CloudStack as well and makes money from CloudStack RHEL RPMs used by Java lovers too!  I really think that cloud providers must try to capitalize and profit from "OpenStack minus Python".


Do let me know your comments and also the answers for the questions in this blog!

6 Comments
Not applicable

Great writing!  Great pictures, you clearly love Linux

Not applicable

Good info about cloud computing concepts other than Python.  OS developers will dig this!

Not applicable

Linux is used as a reference for every operating system. Nice list of cloud computing concepts

Cloud computing is not all Python. True!

OpenStack is not all Linux.

Not applicable

Thanks for your comment!

I like the way you started and ended your comment with "Linux"

Not applicable

Hey Vikram,

     Nice blog. Short and funny :-) But I'm still waiting for which one is bigger (Linux or Python) on the cloud :-) Isn't python essentially a scripting language with built in error parsing that runs on top of an OS (much like PERL runs on UNIX)?

-- Suhail

Not applicable

Thanks for your comment Suhail.  Well, the readers of this blog can decide which one is bigger (Linux or Python). In any OpenStack deployment, I think Linux is slightly bigger than Python   Yes, Python is a very powerful scripting language that makes Linux reach the cloud!

CreatePlease to create content
Content for Community-Ad
August's Community Spotlight Awards