Preparing for the Certified OpenStack Administrator Exam - Matt Dorn - E-Book

Preparing for the Certified OpenStack Administrator Exam E-Book

Matt Dorn

0,0
34,79 €

-100%
Sammeln Sie Punkte in unserem Gutscheinprogramm und kaufen Sie E-Books und Hörbücher mit bis zu 100% Rabatt.

Mehr erfahren.
Beschreibung

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:

EPUB
MOBI

Seitenzahl: 277

Veröffentlichungsjahr: 2017

Bewertungen
0,0
0
0
0
0
0
Mehr Informationen
Mehr Informationen
Legimi prüft nicht, ob Rezensionen von Nutzern stammen, die den betreffenden Titel tatsächlich gekauft oder gelesen/gehört haben. Wir entfernen aber gefälschte Rezensionen.



Preparing for the Certified OpenStack Administrator Exam
A complete guide for developers taking tests conducted by the OpenStack Foundation
Matt Dorn

BIRMINGHAM - MUMBAI

Preparing for the Certified OpenStack Administrator Exam

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

Published by Packt Publishing Ltd.
Livery Place
35 Livery Street
Birmingham
B3 2PB, UK.

ISBN 978-1-78728-841-6

www.packtpub.com

Credits

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

About the Author

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.

Special thanks to the OpenStack community for becoming an incredible testament to the power of the well-organized. Thanks to Oliver from Flaticon for the icons used in many of the images in this book.

About the Reviewer

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.

I'd like to thank Matt Dorn for providing me the opportunity to review this book and to everyone at Rackspace, NASA, and the OpenStack community for building such a great platform.

www.PacktPub.com

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.

Why subscribe?

Fully searchable across every book published by Packt

Copy and paste, print, and bookmark content

On demand and accessible via a web browser

Customer Feedback

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!

Table of Contents

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

Preface

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.

What this book covers

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!

What you need for this book

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.

Who this book is for

This book targets IT professionals, system administrators, DevOps engineers, and software developers with basic Linux command line and networking knowledge.

Conventions

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."

Warnings or important notes appear in a box like this.
Tips and tricks appear like this.

Reader feedback

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.

Customer support

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.

Downloading the color images of this book

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.

Errata

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

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.

Questions

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.

Introducing OpenStack and the Certified OpenStack Administrator Exam

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.

A brief history of the cloud

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 plight of the software developer

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.

The birth of enterprise virtualization

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.

Figure 1.1: Enterprise Virtualization (Mode 1) versus Elastic Cloud (Mode 2)

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.

Amazon - not just a place for books

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