OpenStack Cloud Application Development
eBook - ePub

OpenStack Cloud Application Development

Scott Adkins, John Belamaric, Vincent Giersch, Denys Makogon, Jason E. Robinson

Share book
  1. English
  2. ePUB (mobile friendly)
  3. Available on iOS & Android
eBook - ePub

OpenStack Cloud Application Development

Scott Adkins, John Belamaric, Vincent Giersch, Denys Makogon, Jason E. Robinson

Book details
Book preview
Table of contents
Citations

About This Book

Leverage the power of OpenStack to develop scalable applications with no vendor lock-in

OpenStack Cloud Application Development is a fast-paced, professional book for OpenStack developers, delivering comprehensive guidance without wasting time on development fundamentals. Written by experts in the OpenStack community from Infoblox, Gigaspaces, GoDaddy, and Comcast, this book shows you how to work effectively and efficiently within the OpenStack platform to develop large, scalable applications without worrying about underlying hardware. Follow along with an OpenStack build that illustrates how and where each technology comes into play, as you learn expert tips and best practices that make your product stronger. Coverage includes OpenStack service primitives, networking within the OpenStack Ecosystem, deployment of Virtualized Network Functions for Enterprises, containers, data protection, and much more.

If you need to get on board quickly, this professional book is your ideal roadmap to OpenStack development.

  • Understand all aspects of OpenStack technologies
  • Follow an example build to drill down into critical elements
  • Learn the OpenStack best practices and insider tips
  • Leverage the full capability of IaaS at a professional pace

OpenStack is supported by dozens of major technology companies, compatible with Amazon Web Services, and can be used alongside or on top of VMWare vSphere and other similar technologies. It frees developers from the confines of hardware and vendor lock-in while providing a reliable, fast, and easy platform for developing scalable cloud applications. OpenStack Cloud Application Development is an expert-led guide to getting the most out of OpenStack, designed specifically for the professional developer.

Frequently asked questions

How do I cancel my subscription?
Simply head over to the account section in settings and click on “Cancel Subscription” - it’s as simple as that. After you cancel, your membership will stay active for the remainder of the time you’ve paid for. Learn more here.
Can/how do I download books?
At the moment all of our mobile-responsive ePub books are available to download via the app. Most of our PDFs are also available to download and we're working on making the final remaining ones downloadable now. Learn more here.
What is the difference between the pricing plans?
Both plans give you full access to the library and all of Perlego’s features. The only differences are the price and subscription period: With the annual plan you’ll save around 30% compared to 12 months on the monthly plan.
What is Perlego?
We are an online textbook subscription service, where you can get access to an entire online library for less than the price of a single book per month. With over 1 million books across 1000+ topics, we’ve got you covered! Learn more here.
Do you support text-to-speech?
Look out for the read-aloud symbol on your next book to see if you can listen to it. The read-aloud tool reads text aloud for you, highlighting the text as it is being read. You can pause it, speed it up and slow it down. Learn more here.
Is OpenStack Cloud Application Development an online PDF/ePUB?
Yes, you can access OpenStack Cloud Application Development by Scott Adkins, John Belamaric, Vincent Giersch, Denys Makogon, Jason E. Robinson in PDF and/or ePUB format, as well as other popular books in Informatica & Elaborazione di dati su cloud. We have over one million books available in our catalogue for you to explore.

Information

Publisher
Wrox
Year
2015
ISBN
9781119194347

PART I
OpenStack Overview

  • CHAPTER 1: INTRODUCING OPENSTACK
  • CHAPTER 2: UNDERSTANDING THE OPENSTACK ECOSYSTEM: CORE PROJECTS
  • CHAPTER 3: UNDERSTANDING THE OPENSTACK ECOSYSTEM: ADDITIONAL PROJECTS

1
Introducing OpenStack

WHAT’S IN THIS CHAPTER?
  • Models of cloud computing
  • Relevance of cloud computing to application developers
  • Why OpenStack is a good cloud platform choice
  • How OpenStack is put together

WHAT IS CLOUD COMPUTING?

There is so much hype around cloud computing that it is often difficult to get a clear sense of what anyone means by those words. Is it just virtualization? Is it Software-as-a-Service (SaaS), such as Microsoft’s Office 365 and Salesforce.com? Or is it the ability to get a virtual machine instantly from Amazon Web Services (AWS) or Azure? And what about online storage such as Dropbox?

Types of Cloud Computing

The reality is that cloud computing refers to all of these things just described and more. The National Institute of Standards and Technology (NIST) has come up with an “official” definition based upon five key components: on-demand self-service, broad network access, pooled resources, elasticity, and metered service. In general, these characteristics may be provided in several different models. These models help sort out the confusion and hype. In fact, these can be thought of as layers in a stack, with each layer being built on top of the previous one (see Figure 1.1).
Four rows; from top to bottom: software-as-a-service, platform-as-a-service, infrastructure-as-a-service, manually provisioned infrastructure. Double-headed arrows- low to high control and complexity on left; high to low business value on right.
Figure 1.1
In Figure 1.1, “Manually Provisioned Infrastructure” represents the traditional method of building your information technology infrastructure—this is not cloud computing. In this environment, physical machines are racked, connected, and configured on a one-by-one basis. This provides complete control, but requires substantial time and effort to build out, or to change when necessary. Of course, all clouds need to run on physical gear at some point, so this provides the basic foundation for everything else. One of the keys to making cloud computing successful, however, is to move the complexity out of this layer and up higher in the stack.
Infrastructure-as-a-Service (IaaS) is the most basic layer in the cloud computing stack. This is OpenStack’s primary focus, as well as the primary focus for AWS. It enables automated or self-service provisioning of compute, networking, and storage. Typically, these resources are provided as Virtual Machines (VMs), but you could also use it to spin up bare metal servers (i.e. physical hosts). This is known as “Metal-as-a-Service,” and OpenStack provides a project for managing this service as well. Alternatively, you can also spin up containers rather than VMs or bare metal servers. The essential point is that it enables the provisioning of compute instances, with (optionally) attached networking and storage.
Platform-as-a-Service (PaaS) builds on top of IaaS to enable the provisioning of applications, rather than simply the infrastructure that might be used to run the application. So, a PaaS provides core common services needed by applications, along with the machinery to configure and deploy applications to use those services. A PaaS typically will provide a complete application stack (web server, application server, database server, etc.) into which you can easily deploy your application. Heroku (https://www.heroku.com) is an example of a popular PaaS for applications built with a variety of standard frameworks, such as Ruby-on-Rails. With Heroku you can deploy your application to the Internet with a simple git push. As the application author and deployer, you don’t need to worry about configuring and deploying the different tiers, or even worry about how to scale them. If you follow the Heroku conventions, everything is handled by the PaaS.
Software-as-a-Service (SaaS) is the layer farthest from the underlying physical infrastructure. It may be built on IaaS or a PaaS, but need not be—the point is the user never really knows. This is the simplest form of cloud computing from the point of view of the user because they have no insight into the actual mechanics or systems behind the service. It’s just a service they use. Often this is provided in the form of a website, such as Salesforce.com. But you can also get lower-level services such as Database-as-a-Service, where you simply request via an API (or website) for a database with certain parameters, and are given an IP and port to connect to. As a user of the service, you don’t need to worry about how to scale that service—though you will need to pay more as your use of the service increases.
Put succinctly, IaaS provides the tools to “build” your systems from the ground up. PaaS allows you to “deploy” your applications, without needing to worry about the underlying infrastructure. SaaS allows you to “buy” your applications—you do not even need to deploy or manage them at all. This is a steady progression of decreasing control and complexity, while increasing direct business value.
While these are general models for cloud computing, in reality the distinctions between them are not always crystal clear. The relationship of SaaS to PaaS in particular can be complicated. A specific, complex Software-as-a-Service may use PaaS or even other more granular Software-as-a-Service. Even a PaaS may assemble lower-level pieces as a collection of software services. For example, most services will require an identity management (authentication, authorization, and accounting) service. This identity service is one of the key features a PaaS provides to applications. However, there is no reason that service cannot be, in turn, provided by some external SaaS! In this case, a key function of the PaaS is provided via a low-level SaaS.

Cloud Infrastructure Deployment Models

In addition to the functionality provided by a cloud, there are several different deployment models for clouds. Public clouds are the ones familiar to most developers. These cloud services are made available to the general public for a fee. The fee is generally on a usage basis, enabling organizations to utilize their operating budgets rather than their capital budgets. The customers have no need to maintain or operate the hardware or cloud infrastructure, leaving that responsibility completely to the cloud operator.
Amazon Web Services (AWS) is currently the largest public cloud and dominates the industry. Microsoft and VMware also operate public clouds, and a number of service providers do as well. Rackspace, in particular, provides an OpenStack-based public cloud, and is one of the primary contributors to the OpenStack project.
Private clouds, on the other hand, are internal to an organization. They represent the evolution of the traditional corporate data center. Only internal customers within the enterprise, and perhaps close partners, use private clouds. The corporate IT department or a contractor will purchase, setup, and maintain the hardware and software for the cloud. The cloud infrastructure may use chargeback to distribute costs among the business units, but the cloud itself is still dedicated to the single enterprise.
Organizations may operate private clouds for a number of reasons. The cost of a private cloud, if well run, may be less than utilizing the public clouds. Additionally, many i...

Table of contents