34,79 €
This book provides you with a specific strategy to pass the OpenStack Foundation’s first professional certification: the Certified OpenStack Administrator. In a recent survey, 78% of respondents said the OpenStack skills shortage had deterred them from adopting OpenStack. Consider this an opportunity to increase employer and customer confidence by proving you have the skills required to administrate real-world OpenStack clouds.
You will begin your journey by getting well-versed with the OpenStack environment, understanding the benefits of taking the exam, and installing an included OpenStack All-in-One Virtual Appliance to work through objectives covered throughout the book. After exploring the basics of the individual services, you will be introduced to strategies to accomplish the exam objectives relevant to Keystone, Glance, Nova, Neutron, Cinder, Swift, Heat, and troubleshooting.
Finally, you’ll benefit from the special tips section and a practice exam to put your knowledge to the test. By the end of the journey, you will be ready to become a Certified OpenStack Administrator!
Das E-Book können Sie in Legimi-Apps oder einer beliebigen App lesen, die das folgende Format unterstützen:
Seitenzahl: 277
Veröffentlichungsjahr: 2017
BIRMINGHAM - MUMBAI
Copyright © 2017 Packt Publishing
All rights reserved. No part of this book may be reproduced, stored in a retrieval system, or transmitted in any form or by any means, without the prior written permission of the publisher, except in the case of brief quotations embedded in critical articles or reviews.
Every effort has been made in the preparation of this book to ensure the accuracy of the information presented. However, the information contained in this book is sold without warranty, either express or implied. Neither the author, nor Packt Publishing, and its dealers and distributors will be held liable for any damages caused or alleged to be caused directly or indirectly by this book.
Packt Publishing has endeavored to provide trademark information about all of the companies and products mentioned in this book by the appropriate use of capitals. However, Packt Publishing cannot guarantee the accuracy of this information.
First published: August 2017
Production reference: 1220817
ISBN 978-1-78728-841-6
www.packtpub.com
Author
Matt Dorn
Copy Editor
Stuti Srivastava
Reviewer
James Denton
Project Coordinator
Virginia Dias
Commissioning Editor
Kartikey Pandey
Proofreader
Safis Editing
Acquisition Editor
Prateek Bharadwaj
Indexer
Aishwarya Gangawane
Content Development Editor
Sharon Raj
Graphics
Kirk D'Penha
Technical Editor
Mohit Hassija
Production Coordinator
Aparna Bhagat
Matt Dorn is a senior technical instructor who has previously served in IT leadershiproles and has helped hundreds of teams around the world build private clouds withOpenStack. He understands that many feel a great deal of intimidation when approachingopen source projects and is fanatical about providing an easy-to-understand learning paththat makes OpenStack accessible and fun.
James Denton has more than 17 years of experience in systems administration and networking and has been deploying, operating, and maintaining OpenStack clouds since late 2012. He is a principal architect at Rackspace, and prior to joining the Rackspace Private Cloud team, he spent 5 years as an enterprise network security engineer. James has a bachelor's degree of business administration and management with a focus on computer information systems from Texas State University in San Marcos, Texas. He is the author of Learning OpenStack Networking by Packt, first and second editions, as well as OpenStack Networking Essentials by Packt, and can be found on Twitter at @jimmdenton.
For support files and downloads related to your book, please visit www.PacktPub.com. Did you know that Packt offers eBook versions of every book published, with PDF and ePub files available? You can upgrade to the eBook version at www.PacktPub.com and as a print book customer, you are entitled to a discount on the eBook copy. Get in touch with us at [email protected] for more details. At www.PacktPub.com, you can also read a collection of free technical articles, sign up for a range of free newsletters and receive exclusive discounts and offers on Packt books and eBooks.
https://www.packtpub.com/mapt
Get the most in-demand software skills with Mapt. Mapt gives you full access to all Packt books and video courses, as well as industry-leading tools to help you plan your personal development and advance your career.
Fully searchable across every book published by Packt
Copy and paste, print, and bookmark content
On demand and accessible via a web browser
Thanks for purchasing this Packt book. At Packt, quality is at the heart of our editorial process. To help us improve, please leave us an honest review on this book's Amazon page at https://www.amazon.com/dp/1787288412.
If you'd like to join our team of regular reviewers, you can email us at [email protected]. We award our regular reviewers with free eBooks and videos in exchange for their valuable feedback. Help us be relentless in improving our products!
Preface
What this book covers
What you need for this book
Who this book is for
Conventions
Reader feedback
Customer support
Downloading the color images of this book
Errata
Piracy
Questions
Introducing OpenStack and the Certified OpenStack Administrator Exam
A brief history of the cloud
The plight of the software developer
The birth of enterprise virtualization
Amazon - not just a place for books
Amazon gripes
NASA and Rackspace open source the cloud!
About OpenStack
The OpenStack Foundation
The four opens
OpenStack types
OpenStack jobs
Application developer - developing on OpenStack
OpenStack administrator/operator - administrating the cloud
OpenStack engineer/infrastructure engineer - doing the DevOps thing
OpenStack product developer - simplifying OpenStack deployment/management
Upstream OpenStack developer - making OpenStack better!
OpenStack services overview
Keystone - identity service
Glance - image service
Nova - compute service
Neutron - networking service
Cinder - block storage service
Swift - object storage service
Heat - orchestration service
OpenStack services in action
Interacting with OpenStack
The OpenStack clients
Service-based clients - traditional clients
Python-openstackclient - the unified client
OpenStack daemon communication
OpenStack API communication
About the Certified OpenStack Administrator exam
Benefits of passing the exam
If you pass...
Seven steps to becoming a Certified OpenStack Administrator
Step 1 - study!
Step 2 - purchase
Step 3 - COA portal page
Step 4 - hardware compatibility check
Step 5 - identification
Step 6 - schedule the exam
Step 7 - take the exam!
About the exam environment
The exam objectives
Getting to know OpenStack (3%) - Chapter 1
Keystone: identity management (12%) - Chapter 3
Glance: image management (10%) - Chapter 4
Nova: compute (15%) - Chapter 5
Neutron: networking (16%) - Chapter 6
Cinder: block storage (10%) - Chapter 7
Swift: object storage (10%) - Chapter 8
Heat: orchestration (8%) - Chapter 9
Horizon: dashboard (3%) - Chapters 3 through 9
Troubleshooting (13%) - Chapter 10
Summary
Setting up Your Practice Exam Environment
About VirtualBox
Open Virtual Appliance (OVA)
A traditional OpenStack cloud
The all-in-one Newton environment
Minimum hardware requirements
Downloading and installing VirtualBox
Configuring VirtualBox networking
Mac/Linux
Windows
Confirming a host-only network IP address
Importing the appliance
SSH into the appliance
Mac/Linux
Windows
Verifying OpenStack service connectivity with the CLI
Verifying OpenStack connectivity with the Horizon dashboard
Summary
Keystone Identity Service
About Keystone
Authentication or authorization?
Keystone architecture
Keystone concepts
Keystone in your virtual appliance
Authentication in action
Project scope via the dashboard
The admin life
The Identity panel
Keystone and the OpenStack CLI
Project scope via CLI
Service-based clients versus OpenStack client
Exam objectives
Exam objective - adjusting quotas
Horizon dashboard
CLI
Exam objective - managing users
Horizon dashboard
CLI
Exam objective - creating domains, projects, groups, and roles
CLI
Exam objective - managing the service catalog - services and endpoints
Horizon dashboard
CLI
Summary
Glance Image Service
What is a cloud image?
Building cloud images
Image file formats
Glance architecture
Glance on the Horizon dashboard
Glance image properties versus Glance metadata definitions
Exam objectives
Exam objective - creating Glance images
Horizon dashboard
CLI
Exam objective - downloading images
CLI
Exam objective - sharing images with specific projects
CLI
Exam objective - setting Glance image properties and metadata definitions
Horizon dashboard
CLI
Summary
Nova Compute Service
Nova - the compute orchestrator
Nova architecture
Hypervisor types
Exam objectives
Exam objective - managing key pairs
Horizon dashboard
CLI
Exam objective - managing flavors
Horizon dashboard
CLI
Exam objective - launching instances
Horizon dashboard
CLI
Exam objective - getting access to your instance
Horizon dashboard
CLI
Exam objective - creating instance snapshots
Horizon dashboard
CLI
Exam objective - managing instance actions
Horizon dashboard
CLI
Summary
Neutron Networking Service
About Neutron
Neutron architecture
LinuxBridge plugin
Neutron concepts
Exam objectives
Exam objective - managing tenant networks
Horizon dashboard
CLI
Exam objective - managing tenant subnets
Horizon dashboard
CLI
Exam objective - managing security groups and rules
Horizon dashboard
CLI
Exam objective - managing routers - east/west traffic
Horizon dashboard
CLI
Exam objective - manage provider networks
Horizon dashboard
CLI
Exam objective - manage provider subnets
Horizon dashboard
CLI
Exam objective - managing routers - north/south traffic
Horizon dashboard
CLI
Exam objective - managing floating IPs
Horizon dashboard
Bonus exercise
CLI
Before proceeding...
Summary
Cinder Block-Storage Service
About Cinder
Cinder architecture
Cinder behind the scenes
Cinder backend software and hardware drivers
Cinder concepts
Exam objectives
Exam objective - managing Cinder volumes
Horizon dashboard
CLI
Horizon dashboard
CLI
Exam objective - managing Cinder snapshots
Horizon dashboard
CLI
Exam objective - managing Cinder backups
Horizon dashboard
CLI
Note
Summary
Swift Object-Storage Service
About Swift
Swift architecture
Swift concepts
Exam objectives
Exam objective - managing containers and objects
Horizon dashboard
CLI
Exam objective: managing container ACLs
CLI
Exam objective: settings objects to expire
CLI
Summary
Heat Orchestration Service
About Heat
Heat architecture
Heat templates
Heat resources
Backward compatibility with AWS
Exam objectives
Exam objective - managing stacks
Horizon dashboard
CLI
Exam objective - updating stacks
Horizon dashboard
CLI
Summary
Troubleshooting
Debugging the CLI
Managing OpenStack daemons
Using the APIs to check the component status
Important OpenStack service directories
Exam objective - analyzing log files
Managing MySQL
Summary
Final Tips and Tricks
Project scope
Time management
CLI help
External monitors
Issues during the exam
Diving deeper into OpenStack
Summary
Practice Exam
Before you begin...
Instructions
Question 1
Question 2
Question 3
Question 4
Question 5
Question 6
Question 7
Question 8
Question 9
Question 10
Question 11
Question 12
Question 13
Question 14
Question 15
Question 16
Question 17
Question 18
Question 19
Question 20
Question 21
Question 22
Question 23
Question 24
Question 25
Question 26
Question 27
Question 28
Question 29
Question 30
Question 31
Question 32
Question 33
Question 34
Question 35
Preparing for the Certified OpenStack Administrator Exam provides you with a specific strategy to pass the OpenStack Foundation’s first professional certification: the Certified OpenStack Administrator. In a recent survey, 78 percent of respondents said the shortage of OpenStack skills had deterred them from adopting an OpenStack cloud. Consider this an opportunity to increase employer and customer confidence by proving you have the skills required to administrate real-world OpenStack clouds.
Chapter 1, Introducing OpenStack and the Certified OpenStack Administrator Exam, takes you through a journey of the history of cloud computing and provides an introduction to OpenStack. You'll also learn about the exam and explore the seven steps to becoming an official Certified OpenStack Administrator.
Chapter 2, Setting Up Your Practice Exam Environment, provides instructions on setting up the virtual appliance included with this book. The appliance gives you a working OpenStack environment that can easily be deployed on your laptop or desktop and is great for working through exam objectives.
Chapter 3, Keystone Identity Service, introduces Keystone and all Keystone-related exam objectives, including creating and modifying domains, groups, projects, users, roles, services, endpoints, and quotas.
Chapter 4, Glance Image Service, defines cloud images and Glance exam objectives, including uploading and downloading cloud images, sharing images with specific projects, and utilizing metadata definitions.
Chapter 5, Nova Compute Service, explores Nova compute and covers exam objectives, including launching Nova instances, getting console access to booted instances, defining flavors, managing key pairs, and creating instance snapshots.
Chapter 6, Neutron Networking Service, dives into the world of OpenStack networking by providing an overview of Neutron and covers exam objectives including managing tenant and provider networks, subnets, security groups, routers, and floating IPs.
Chapter 7, Cinder Block-Storage Service, explains Cinder persistent block storage and exam objectives including creating volumes, attach/detaching volumes, volume snapshots, and creating volume types.
Chapter 8, Swift Object-Storage Service, discusses the birth of AWS S3, Swift object storage, and exam objectives, including setting Access Control Lists (ACLs) on containers and setting objectives to expire at specific times.
Chapter 9, Heat Orchestration Service, explains OpenStack Heat and exam objectives including creating and updating stacks.
Chapter 10, Troubleshooting, shows you how to perform debugging on the OpenStack CLI, manage OpenStack daemons, analyze OpenStack log files, and perform basic operations on an OpenStack database.
Chapter 11, Final Tips and Tricks, gives you some useful tips and tricks to keep in mind before taking the COA exam.
Chapter 12, Practice Exam, is a mock COA exam that you can use to put your OpenStack skills to test!
Please download all materials from the official book repository at https://github.com/PacktPublishing/Preparing-for-the-Certified-OpenStack-Administrator-Exam. The repository also contains an OpenStack virtual appliance that can be imported into VirtualBox to perform all exam objective exercises.
This book targets IT professionals, system administrators, DevOps engineers, and software developers with basic Linux command line and networking knowledge.
In this book, you will find a number of text styles that distinguish between different kinds of information. Here are some examples of these styles and an explanation of their meaning.
Code words in text, database table names, Linux programs, folder names, filenames, file extensions, pathnames, dummy URLs, user input, and Twitter handles are shown as follows: "You can fulfill majority of the exam objectives withpython-openstackclient."
A block of code is set as follows:
export OS_AUTH_URL=http://192.168.56.56:5000/v3export OS_REGION_NAME=RegionOneexport OS_PROJECT_DOMAIN_NAME=defaultexport OS_USER_DOMAIN_NAME=defaultexport OS_USERNAME=adminexport OS_PASSWORD=adminexport OS_PROJECT_NAME=logisticsexport OS_TENANT_NAME=logistics
Any command-line input or output is written as follows:
$ openstack help
New terms and important words are shown in bold. Words that you see on the screen, for example, in menus or dialog boxes, appear in the text like this: "From the VirtualBox menu bar, selectPreferences."
Feedback from our readers is always welcome. Let us know what you think about this book-what you liked or disliked. Reader feedback is important for us as it helps us develop titles that you will really get the most out of.
To send us general feedback, simply e-mail [email protected], and mention the book's title in the subject of your message.
If there is a topic that you have expertise in and you are interested in either writing or contributing to a book, see our author guide at www.packtpub.com/authors.
Now that you are the proud owner of a Packt book, we have a number of things to help you to get the most from your purchase.
We also provide you with a PDF file that has color images of the screenshots/diagrams used in this book. The color images will help you better understand the changes in the output. You can download this file from https://www.packtpub.com/sites/default/files/downloads/PreparingfortheCertifiedOpenStackAdministratorExam_ColorImages.pdf.
Although we have taken every care to ensure the accuracy of our content, mistakes do happen. If you find a mistake in one of our books-maybe a mistake in the text or the code-we would be grateful if you could report this to us. By doing so, you can save other readers from frustration and help us improve subsequent versions of this book. If you find any errata, please report them by visiting http://www.packtpub.com/submit-errata, selecting your book, clicking on the Errata Submission Form link, and entering the details of your errata. Once your errata are verified, your submission will be accepted and the errata will be uploaded to our website or added to any list of existing errata under the Errata section of that title.
To view the previously submitted errata, go to https://www.packtpub.com/books/content/support and enter the name of the book in the search field. The required information will appear under the Errata section.
Piracy of copyrighted material on the Internet is an ongoing problem across all media. At Packt, we take the protection of our copyright and licenses very seriously. If you come across any illegal copies of our works in any form on the Internet, please provide us with the location address or website name immediately so that we can pursue a remedy.
Please contact us at [email protected] with a link to the suspected pirated material.
We appreciate your help in protecting our authors and our ability to bring you valuable content.
If you have a problem with any aspect of this book, you can contact us at [email protected], and we will do our best to address the problem.
The snippet above is from a web page. It appears unremarkable upon first glance. It contains no graphics, sound, JavaScript, or CSS. A plain, stark white background, some simple text, and a few hyperlinks.
The page existed as a single HTML file, hosted on a 25 MHz NeXTcube workstation. The machine boasted 8 MB of memory and a 17-inch monochrome monitor. The 1-foot-on-all-sides metal cube-shaped system sat on the floor of a small office, the colorful NeXT logo affixed near its metal power button.
This computer was not hosted in a data center, but in a small office at the European Organization for Nuclear Research, a.k.a. CERN. Straddling the French-Swiss border. CERN's expansive campus is currently home to the Large Hadron Collider, the world's largest particle accelerator. But in 1991, something much larger than the collider lurked in Tim Berners-Lee's Building 31 office.
This web page was the first Hello World of the internet. The birthplace of modern communication. And although in 1991 it would have been unlikely to find anyone with internet access (let alone a computer that could support it), it's difficult to believe how far we've come. Little did Berners-Lee know that a fundamental shift in human communication would rapidly evolve over the next 25 years.
Today's business environment moves faster than ever. Online companies such as Amazon, Netflix, and Uber have completely changed the way the world does business. To stay competitive, enterprises must be able to provide desktop and mobile applications that deliver cutting-edge, secure, and self-service capabilities directly to the customer. Although we need skillful software developers to provide these applications, it's extremely difficult to be agile in corporate environments with overly bureaucratic IT policies and outdated software.
OpenStack is the answer to this lack of agility. It is an open source cloud operating system that has revolutionized computing and provides true power to developers.The Certified OpenStack Administrator Exam is your opportunity to learn the skills required to operate OpenStack clouds, and like Berner-Lee's first website, spark a transformation—one that will facilitate the development, deployment, and management of today's most critical applications.
In this chapter, we will cover the following topics:
A brief history of the cloud
An overview of OpenStack
The Certified OpenStack Administrator exam
Seven steps to becoming a Certified OpenStack Administrator
After this chapter, you will be ready to set up your very own OpenStack testing environment and begin working through the objectives covered in the following chapters.
It's impossible to go anywhere these days without hearing about cloud computing. If you currently work in the technology world, I'm sure you've been at a gathering with family or friends when someone finally asks you, "so... what IS the cloud?" Even to the most technically savvy, it is a difficult question to answer. "Cloud" is often used as a buzzword, describing computing or storage infrastructure that can be accessed by many users from any location. To provide the right context, let's take a moment to dive into a brief history of the cloud. If you've heard this story before, feel free to skip ahead!
The application. Whether we are swiping through colorful icons on our smartphone home screens or logging on to our laptop's operating system, the app is everywhere. In fact, the term is used so frequently that it's difficult to give app a proper definition.
So, rather than attempt to define what apps are, we can surely define what they do: solve problems. Apps can provide solutions to some of our most critical business headaches, saving and making money for organizations (and individuals). But more importantly, they often present users with unrealized needs. Think about how many people consider Twitter, Facebook, and LinkedIn on their smartphone to be a necessity to their daily lives.
We typically call the minds behind applications software developers.But life for the software developer wasn't so easy 20 years ago. A developer would hack away on their home or office desktop, perfecting and testing their code into the late hours of the night. When the time for them to share their work with the world, they would need a physical computing device with CPU, disk, and memory. The computer would likely require internet access so it could reach a greater population. And in order to make that happen, a software developer would typically rely on a group of system engineers to call up a hardware vendor and get this machine shipped to the office or data center.
After going through the grueling process of getting the machine unboxed, racked, stacked, and wired up, system engineers would then need to configure the operating system, install the necessary programs and frameworks, and ensure the software developer could connect to the machine from their desktop.Consider some of the technical practices at this time: high availability and fault tolerance, although widely discussed, were not commonly enforced.
Once the servers were ready to go, the software developer would share their masterpiece, placing it on the provided infrastructure. As users accessed the application, all would be great... until the app was no longer accessible. Suddenly, the software developer's phone would ring in the middle of the night. System engineers would struggle to fix hardware failures, thus bringing down the application and facing many angry end users. This required trips to the data center—which itself neededdisaster recovery plans in case of a fire, flood, or storm. And how about if the application had a spike of major success? If tons of users rushed to type the URL into their browsers and navigate to the site, resources on existing hardware could be overloaded. The system engineers would need to purchase and install additional servers, firewalls, and load balancers to provide more resources for the additional traffic. All of these potential hazards could be a headache for everyone involved—especially a software developer whose focus should stay on the application itself.
November 10, 2003: A group of IT executives in dresses, business suits, and blazers stood around a boardroom, watching a screen projecting a video clip of Terminator II: Judgement Day. "Are you ready?" said one of the men standing at a podium. On the bottom right of the screen, a small box of a few Microsoft Windows control panels displayed icons representing running servers.
These servers were virtual machines, and the video clip the room was watching was being played from a file server on one of these virtual machines. Suddenly, the host clicked on a few context menus on the virtual machine and a progress bar appeared. The video continued to play as the T-1000 Advanced Prototype morphed from liquid metal into human form, chasing John Connor in a burning police car. The room exploded with hoots, hollers, and cheers—and it wasn't because of the Terminator. This was a demo of a technology called VMotion, which would revolutionize the IT operations world for years to come.
Although virtualization had been around out since the 1960s, VMware can certainly be credited for bringing it to the masses in their official release of VMware VirtualCenter featuring VMotion. VMotion allowed system engineers to convert their existing physical machines to hypervisors, enabling the running of virtual machines. It also kept those virtual machines up by live-migrating them to another hypervisor in the event of an underlying hardware problem. This was done by transferring the virtual machine's active memory and execution state over the network.
Software developers and system engineers alike were overjoyed with the technology, knowing they would now sleep quite well while their application hummed along regardless of hardware headaches. The software developers continued to develop their incredible applications, but their development methodology remained the same. They were still developing their application as if they were on traditional physical machines!
Gartner, the information technology research and advisor company, has labeled this type of environment Mode 1, otherwise known as enterprise virtualization. In fact, enterprise virtualization still exists today and is the most adopted type of the cloud by enterprises around the world. See Figure 1.1.
Here are some common characteristics of the enterprise virtualization cloud:
GUI-emphasized
: When one creates a new virtual machine in this model, they typically do so via a
Graphical User Interface
(
GUI
). This may be something like vSphere Web Client or Hyper-V Manager. Command-line tools may exist but are less popular with a majority of its operators.
Expensive hardware
: Enterprises that buy into enterprise cloud also buy into expensive blade servers, SANs, network/fabric switches, component redundancy, and high-cost, boutique super microcomputers—specialized hardware with a high price tag.
Vertical scaling
: If your application begins getting more traffic, the ability to scale will be necessary. In the enterprise virtualization world, this means assigning more resources to virtual machines powering the application. When one scales up or vertically, they go about this by adding more CPU, RAM, or disk space to the individual virtual machines. This is the opposite philosophy to scaling horizontally.
Proprietary
: The infrastructure code in this model is closed source. This includes software such as
VMware VCenter
powered by Microsoft Windows Server. If a bug is discovered while working with the software, it must be filed with the vendor. Because one monolithic organization controls access to the code, bug fixes can take weeks or months to be patched.
Traditional
software
development
: In an Enterprise Virtualization cloud, the software developer continues to develop the applications in the same manner they developed applications on physical machines. This is sometimes referred to as the
monolithic
approach. Although the web server or database may reside on different virtual machines, the application's functions are combined into a single program from a single platform. This differs drastically from the cloudy development approach explained in the next section.
In March of 2006, Michael Arrington—founder of Silicon Valley news blog TechCrunch—had an exciting announcement:
Amazon Web Service is launching a new web service tonight called S3 – which stands for “Simple Storage Service”. It is a storage service backend for developers that offers “a highly scalable, reliable, and low-latency data storage infrastructure at very low costs… This is game changing.”
Arrington was right. At this time, Amazon Web Services had yet to release the catalog of services we all know today. Simple Storage Service (S3) provided users with the ability to create an account, enter their credit card number, and have access to upload files to AWS's hosted infrastructure within seconds. One benefit stood out above all: unlimited storage space.
At the time, hosting companies offered virtual private servers (VPS), allowing one to rent a server and use it for backup or file storage. The problems with these solutions was the space limitation on a particular server, not to mention the responsibility of the customer to maintain the health and security of the operating system. While a VPS may have charged users with monthly or yearly flat rates, S3 billed the user for what they used, much like a household electricity bill. The software developer now had the power to avoid the purchase of additional physical servers and storage arrays.
In 2006, there was one surprise left from AWS. On August 25, 2006, Jeff Bar, Chief Evangelist at AWS, announced the launch of Elastic Compute Cloud (EC2):
"Amazon EC2 gives you access to a virtual computing environment. Your applications run on a "virtual CPU", the equivalent of a 1.7 GHz Xeon processor, 1.75 GB of RAM, 160 GB of local disk and 250 Mb/second of network bandwidth. You pay just 10 cents per clock hour (billed to your Amazon Web Services account), and you can get as many virtual CPUs as you need."
This post was the shot heard 'round the IT operations world. Not only could the software developer have access to unlimited storage space with S3, but create as many virtual machines as they wanted. A college student in their dorm now had access to the data centers, bandwidth, and computing power of large-scale enterprises. It was the competitive advantage they needed. This truly provided power to developers. They would quickly scale their application during times of success (with a few clicks of a button) and quickly handle failure elegantly if anything went wrong.
Gartner labeled this type of cloud Mode 2, otherwise known as elastic cloud. See Figure 1.1.
Here are some common characteristics of the elastic cloud:
API emphasized
: Both AWS S3 and EC2 offered
Simple Object Access Protocol
(
SOAP
) and
Representational State Transfer
(
REST
) APIs at the time of launch. The power of the API is the ability for a developer to easily incorporate these web services into their web application software logic. Visualize a website allowing users to upload and share photos. The developers creating the web application could make API calls to S3 whenever a user uploads or downloads a photo, thus ensuring all the users' uploaded photos were stored in AWS's S3 infrastructure. Although the SOAP API was deprecated by AWS in December 2015, the much more elegant REST API allows browsers to easily communicate with GET, PUT, POST, HEAD, and DELETE methods over the protocol that powers the web: HTTP.
Standard hardware
: Werner Vogels, Vice President and CTO of Amazon, once said
everything fails all the time
. The inevitability of hardware failures means that redundancy and high availability are going to be a fundamental part of the application running on top of the underlying hardware. If hardware fails, it shouldn't be a problem because the developer has ensured that their application follows the cloudy development style (see final bullet point).
Horizontal scaling
: When one needs more computing power, they rarely bother with resizing existing instances. They instead choose the unlimited nature of elastic cloud by creating more virtual machines and do work in parallel. This is also known as scaling horizontally.
Open source
: Although AWS's overall design and infrastructure are considered proprietary information, the release of its core services sparked a revolution in the tech startup world. Startups with a little cash and a few tech-savvy individuals could use and deploy open source tools, adopt a continuous deployment model, and focus on delivering minimum viable products to customers.
Cloudy development
