Hi, I’m Todd Deshane and today I’ll be talking about open source cloud computing, in particular, in the context of either creating a new online presence or expanding an existing one.
So, just to give you a bit of background on me, I am a current resident of Potsdam and I grew up in the Norwood and then Brasher Falls area. I got a Bachelors in Software Engineering in 2003, a Masters in Computer Science in 2004, and a Ph.D. in Engineering Science in 2010. I am currently doing a postdoc here at Clarkson and I am also a part-time technology evangelist for Xen.org.
I’ll start the talk today with some cloud computing background, specifically delivery and deployment models. I’ll then go into a basic methodology for either creating a new online presence or expanding an existing one. I’ll then finish with some of the challenges that I see as the most critical ones and take a look at some of the trends in terms of the adoption of cloud computing.
I think that every talk on cloud computing should have a word cloud. I promise not to mention all of these buzz words, but many of them I will at least touch on. For some people, the terminology is a steep enough hurdle that prevents them from having more practical “how does this all affect me” discussions.
There are three basic ways to deliver cloud computing to consumers. First, there is software as a service, which in current practice is the only type of cloud computing that many think of. Examples include web-based applications such as Google Docs and Facebook. Second, platform as a service is a model in which a software environment is delivered to developers so that they can run their own applications that they have created from source code themselves. Examples of this include Google App Engine, which allows users to run Python, Java, and Go (a programming language developed by Google) source code on top of the Google App Engine platform. Another example is Microsoft’s Windows Azure platform which allows users to run .NET, Java, PHP, and Ruby applications. Finally, the third type of cloud computing is called infrastructure as a service. This is the layer of the cloud that I am most familiar with and is what I will focus on during this talk. Examples include Amazon Web Services and the Rackspace Cloud. These offerings allow you to run full systems, such as Windows or Linux, in the cloud.
Infrastructure as a service is typically broken down into three deployment models: public, private, and hybrid. With the public cloud model, infrastructure is provided to the consumer by a third party such as Amazon or Rackspace. Private cloud computing, on the other hand, is infrastructure that is housed within the user’s own business or data center. Examples of this include software like VMware or Xen. Today since I am focusing on what I know the most about and practical, low-cost solutions, I am talking specifically about OpenStack and the Xen Cloud Platform as the technologies that can provide private cloud infrastructure as a service. Finally, the term hybrid cloud computing in the context of infrastructure as a service refers to a combination of the public and private models.
As I mentioned at the beginning of this talk, what I’d like to focus on is using cloud computing technology in a way that can allow someone to either create an online presence or expand an existing one. And so, what I want to do today is go through the various deployment models and discuss how you can use each of them to meet your particular needs.
I’ll start first with public infrastructure as a service. The real advantage of this type of model is that you pay for exactly the resources that you use in terms of compute resources, data storage, and inbound and outbound bandwidth, and you don’t pay for anything more or anything less. You also have the advantages of no upfront hardware cost, costs that scale as the business demands for your online assets increase, and finally, you have the opportunity to outsource your IT service costs.
As I mentioned previously, examples of public infrastructure as a service cloud computing providers include Amazon and Rackspace. Amazon Web Services includes a fairly large collection of services not all of which are infrastructure as a service, but the Elastic Compute Cloud and Simple Storage Service are the most well known and are infrastructure as a service offerings. Amazon was a pioneer in what has become modern day cloud computing and is still the market leader in the infrastructure as a service space. Rackspace Cloud, which was originally only Rackspace Cloud Sites (websites as a service), expanded to include infrastructure as a service-class offerings: Cloud Servers and Cloud Files. It is interesting to note that YouTube in its infancy was hosted by Rackspace.
So with that background, let’s start to take a look at some figures. This graph shows the monthly cost of 7 different types of servers that Rackspace offers ranging from a system with 256 MB of RAM and 10 GB hard disk to a system with around 15 GB of RAM and a 620 GB hard disk. There are two different options for servers, specifically unmanaged servers and managed servers. With unmanaged servers, you need to manage the upkeep of the servers yourself and for the managed servers, Rackspace will have a team of people to manage your servers with the standard server management tools. For the unmanaged servers, prices range from about $10 per month (for a low-end server with 256 MB of RAM) to about $700 dollars per month (for a server with 15.5 GB of RAM). For the managed servers, you add about $100 and change to those, so roughly it is $110 per month to $800 per month.
This graph is monthly storage costs at fifteen cents per GB per month. On the Y axis we have cost in dollars per month. And the on the X axis the storage requirement is varied from 1 GB to 2 TB. Both X and Y axes are log scale, so the graph is in fact a linear relationship, which implies that as you need more storage, the cost grows proportionally. This is not necessarily the case when buying your own disks.
This graph is very similar to the last one except that we are looking at monthly outbound bandwidth cost at eighteen cents per GB per month. Again, notice that the relationship is linear and so the cost increases proportionally as more bandwidth is used.
Finally, this graph is again very similar to the last except that we are looking at monthly inbound bandwidth cost at eight cents per GB per month. Again, notice that the relationship is linear and so the cost increases proportionally as more bandwidth is used.
Next, let’s take a look at private infrastructure as a service. This is the concept of running your cloud infrastructure on your own servers. Now there are many free and open source software options available, so you can have no upfront software costs. You can also likely leverage your current hardware infrastructure (hardware newer than 2005 should work well enough). You can also adjust resources with changing demand by buying new hardware or decommissioning old hardware. In the private infrastructure as a service case, you are likely to use your own IT services or perhaps hire a local IT consultant.
Two examples of private infrastructure as a service software solutions are OpenStack and the Xen Cloud Platform. OpenStack is software that is used to manage a private cloud. It has three main components: OpenStack Compute for managing a large network of virtual servers, OpenStack Object Storage for creating redundant, scalable storage using clusters of servers, and OpenStack Imaging Service for discovering, registering, and retrieving virtual machine images – it is also a key component in being able to migrate from the private to public cloud seamlessly. It is interesting to note that OpenStack Object Store is used in production by Rackspace and OpenStack Compute is used in production by NASA. Rackspace and NASA were two of the founding organizations of the OpenStack project. OpenStack is now supported by more than 60 companies and organizations – notably including Rackspace, NASA, Citrix, Cisco, and Dell. The Xen Cloud Platform (XCP) is a special hypervisor platform designed to work with the cloud and also be compatible with OpenStack. The Xen Cloud Platform was originally derived from Citrix XenServer and is a free and open source project that is built on top of the Xen hypervisor. It also includes a virtual switch called Open vSwitch, which is an important component for the migration of virtual machines from private to public clouds with respect to network connectivity. XCP also includes the Xen Management API (application programming interface), which allows for the management of server instances programmatically.
In this diagram, we see the basic architecture of OpenStack with compute nodes, object storage nodes, and an imaging service. All of these are accessed via an open application programming interface (API), which is a way for developers of third party applications to easily write free or commercial applications that do more advanced tasks. So, although OpenStack itself is able to provide a base level of functionality, having an open API allows for third parties to create things like mobile apps, web clients, and other advanced functionality that may be downloaded or purchased as needed by customers.
This is a diagram of the Xen Cloud Platform. It shows the basic idea of being able to take a physical hardware server and load small pieces of software onto it. Specifically, the Xen hypervisor is loaded and then on top of that there is a management domain that is used to manage the virtual machines (for example Windows or Linux instances). Then, we have the Xen application programming interface that allows for third party management tools to be written that manage one or more servers running XCP. XCP servers can be grouped into pools in order to more logically manage them and their functions. Having the concept of pools also allows for public cloud pools that could be created and used as needed.
Now let’s take a look at the last deployment model: hybrid infrastructure as a service. Hybrid is simply just a combination of public and private cloud computing and can be used to make use of existing infrastructure and allow for bursting (scaling) or migrating into the public cloud. Hybrid allows you to optimize your public and private cloud use by making use of existing hardware as it makes sense and outsourcing resources and IT services as it makes sense to. There are some things that you may feel are important to have running under your control, but others may make sense for you to run in a public cloud environment.
This is a diagram that depicts the hybrid cloud architecture with example public clouds available. It shows the public clouds communicating with a private enterprise cloud and how users can connect transparently to the public cloud or to your enterprise over the Internet. It also shows how resources can be moved from the enterprise to the public cloud as needed and desired.
OK, so at a conceptual level, the idea of cloud computing seems good and also in many cases cost-effective. Cloud computing is not without challenges, however. Some of the key challenges that I’d like to highlight are privacy and security, availability and performance, and open standards. Privacy and security are always a concern even in the private data center environment and there are tradeoffs in both directions. For example, there may be proprietary or confidential information that would be difficult to store in the public cloud. On the other hand, in terms of security, it may be to your benefit to let someone else deal with all of the malicious software (malware) that is so prevalent on the Internet today. Similarly, there are concerns to think about in terms of availability and performance. Some of you may have heard about the recent outage that Amazon’s cloud experienced. There was a period of several days in which a portion of their service was down and websites that relied on their cloud service were unavailable. Some companies only run in a public cloud infrastructure, since when they started up, it just made sense to do so. So companies like that were down during this outage. A further concept is the content distribution networks or content delivery networks, which provide mirrored content to geographically dispersed clients. A common example of a content distribution network is say for the Olympics. When the Olympics is streamed live over the Internet and everyone watches, if it was stored on a single server, then that one server couldn’t take the load and the Internet pipes going to that single server would be clogged. So, content distribution networks are used to mirror copies of the content to various parts of the world. When someone connects from the United States, they are directed to the local version of the server and when someone connects from China, they are directed to a local version to them. Finally, open standards are a concern since, although OpenStack is a great example of using open source and open standards to allow users to migrate from private to public clouds, there are still a lot of proprietary private cloud software vendors that don’t necessarily want to open up their APIs fully and instead seek to lock you in to their cloud software only.
This data was taken from a July 2010 cloud computing survey by Spiceworks of small and medium businesses (SMBs) with fewer than 1,000 employees. It shows some of the current statistics and trends for this demographic. 14% of small and medium businesses reported using cloud computing, a relatively small percentage. 62% are not using cloud and have no plans to. 32% are concerned that the cloud computing technology is not proven enough for their needs (a bigger percentage than privacy and security). 49% reported using private or hybrid cloud. 10% are planning on using the cloud. Finally, 38% of small businesses with between 1 and 19 employees reported using the cloud, which is a significantly higher percentage than that of the SMBs surveyed in general.
This graph was taken from a 2010 survey from GoGrid (another public infrastructure as a service cloud provider). It shows that companies are planning to use infrastructure as a service more during 2011. So the trend is again for more cloud computing.
So, I just wanted to take this opportunity to give you a sense of what I think are the up-and-coming cloud computing technologies. First, one very near-term development is Google’s Chrome OS, which has been available in open source form for quite some time now, but consumer devices will be coming available next month. The basic idea is that special laptops will be able to run Chrome OS, which is basically just a very small Linux with only Google Chrome available to the user. So the full user experience is accomplished via a web browser. This is an ideal situation for web companies like Google in that the user spends all of their time online. This can actually be a good thing for many people that simply go only on Facebook and check email and the like. Another technology that is really catching on lately is called virtual desktop infrastructure (VDI). It is technology that is also actually being researched and tested here at Clarkson for some of the lab environments. The basic idea is that a large central server serves desktop instances to low-powered client systems so that there is no need to have an operating system installed on the local client system. Another related technology is called client virtualization. With this technology, a hypervisor such as Xen is installed on the client systems and the operating systems can run on top of it. The difference between this and VDI is that local computation is supported and a sync option to a central server is possible. This allows for people who are mobile, such as those on a plane without Internet access, to still be able to do work on the local laptop with a checked out version of their desktop virtual machine. Finally, I think that desktop as a service will really be something that could take off. Desktop as a service is basically a combination of the above in that desktops would be provided by a third party using similar techniques. So, I thought this would be something that I would simply be predicting, but it turns out that Rackspace just announced this past Monday that they will be offering a hosted virtual desktop service using Citrix XenDesktop.
Finally, I would just like to give a summary of what I have covered today. I can really say that the delivery models are changing the way that people like me in the industry think about software. We also can see that, if used carefully, infrastructure as a service can be used to grow or create an online presence in a cost-effective and scalable way. This ability is not without challenges and tradeoffs, however. You really need to be careful as to which types of services are hosted in the cloud. But cloud computing is really becoming practical for many types of businesses and will likely become even more viable for many. It is worth noting that the technologies are still very new, but they are maturing quickly. It’s safe for me to say that there is an exciting future ahead for cloud computing.
Thank you. Questions?
Open Source Cloud Computing: Practical Solutions For Your Online Presence (ODP)
Open Source Cloud Computing:Practical Solutions For Your Online Presence Todd Deshane Postdoctoral Researcher at Clarkson University Technology Evangelist for Xen.org North Country Technology Symposium May 25, 2011
About MeBorn and raised in Northern New YorkGraduate of Clarkson University B.S. in Software Engineering (2003) M.S. in Computer Science (2004) Ph.D. in Engineering Science (2010)Postdoctoral researcher at ClarksonTelecommuting consultantTechnology evangelist for Xen.org 2
Delivery Models Software as a service (SaaS) Web-based applications (Google, Facebook) Platform as a service (PaaS) Software environments (Google App Engine, Microsoft Windows Azure) Infrastructure as a service (IaaS) Computing environments (Amazon Web Services, Rackspace Cloud) This presentation will focus on IaaS 5
IaaS Deployment Models Public Third party off-site service provider (Amazon Web Services, Rackspace Cloud) Private Virtualization running in your data center (OpenStack, Xen Cloud Platform) Hybrid Combination of public and private models 6
Managing Your Online Presence Use an IaaS deployment model to: Create an online presence Expand and scale to meet demand Amount of investment varies for each deployment model Public Private Hybrid 7
Public IaaS Only pay for exactly what you use (computing resources, storage, bandwidth) No upfront hardware cost Costs scale with increased demand Opportunity to outsource IT services 8
Public IaaS - Examples Amazon Web Services (AWS) Elastic Compute Cloud (EC2) Simple Storage Service (S3) Rackspace Cloud Cloud Servers Cloud Files 9
Monthly Cloud Server Cost 256 MB RAM, 15.5 GB RAM, 256 MB RAM, 15.5 GB RAM, 10 GB Disk 620 GB Disk 10 GB Disk 620 GB Disk Data from rackspace.com/cloud 10
Monthly Cloud Storage Cost 15 cents / GB / month Data from rackspace.com/cloud 11
Monthly Outbound Bandwidth Cost 18 cents / GB / month Data from rackspace.com/cloud 12
Monthly Inbound Bandwidth Cost 8 cents / GB / month Data from rackspace.com/cloud 13
Private IaaS Many free and open source software options available No software cost Leverage existing hardware infrastructure Adjust resources with changing demand In-house IT services 14
Private IaaS - Examples OpenStack OpenStack Compute OpenStack Object Storage OpenStack Imaging Service Xen Cloud Platform (XCP) Xen Hypervisor Open vSwitch Xen Management API (XAPI) 15
Hybrid IaaS Leverage existing private infrastructure while bursting and/or migrating into the public cloud Carefully mix public and private cloud resources Optimize public and private infrastructure costs Selectively outsource IT services 18
Cloud Computing Challenges Privacy and security Data stored on public servers Malware protection outsourced Availability and performance Online service outages and backups Content delivery networks or content distribution networks (CDNs) Open standards Image format compatibility 20
Future of Cloud Computing Web-based operating systems Google Chrome OS Virtual desktop infrastructure (VDI) Citrix XenDesktop, VMware View, Spice Client virtualization Citrix XenClient, Virtual Computer’s NxTop, Qubes OS Desktop as a service (DaaS) Combination of the above 23
SummaryCloud computing delivery models are changing the way we think about softwareIaaS (focused on in this talk) can be used to cost-effectively grow an online presenceNeed to balance cloud computing tradeoffsCloud computing is becoming practical for businesses to adoptThe technologies are still new, but maturingThere is an exciting future ahead! 24