O'Reilly logo

Stay ahead with the world's most comprehensive technology and business learning platform.

With Safari, you learn the way you learn best. Get unlimited access to videos, live online training, learning paths, books, tutorials, and more.

Start Free Trial

No credit card required

Hybrid Cloud for Developers

Book Description

Develop and manage applications on the AWS and OpenStack platforms with this comprehensive learning guide.

About This Book
  • A step-by-step guide to help you develop applications on the hybrid cloud platform.
  • Acquire an in-depth understanding of the OpenStack and AWS cloud platforms.
  • Extensive source code examples for OpenStack and AWS applications.
  • Easily troubleshoot OpenStack and AWS issues.
  • Understand the best practices and security measures for the hybrid cloud platform.
Who This Book Is For

If you are an IT professional, developer, or a DevOps engineer looking to develop and manage your applications on the hybrid cloud platform, then this book is for you. Some prior knowledge of the public and private cloud will enhance your skills. Developers looking to build applications using AWS or OpenStack services will also benefit from this book.

What You Will Learn
  • Understand the hybrid cloud platform
  • Explore the AWS and OpenStack cloud platforms in depth
  • Develop AWS applications with source code examples
  • Develop OpenStack applications with source code examples
  • Troubleshoot OpenStack and AWS
  • Learn hybrid cloud best practices
  • Understand security measures on the hybrid cloud
In Detail

This book introduces you to the hybrid cloud platform, and focuses on the AWS public cloud and OpenStack private cloud platforms. It provides a deep dive into the AWS and OpenStack cloud platform services that are essential for developing hybrid cloud applications. You will learn to develop applications on AWS and OpenStack platforms with ease by leveraging various cloud services and taking advantage of PaaS.

The book provides you with the ability to leverage the flexibility of choosing a cloud platform for migrating your existing resources to the cloud, as well as developing hybrid cloud applications that can migrate virtual machine instances from AWS to OpenStack and vice versa. You will also be able to build and test cloud applications without worrying about the system that your development environment supports.

The book also provides an in-depth understanding of the best practices that are followed across the industry for developing cloud applications, as well as for adapting the hybrid cloud platform. Lastly, it also sheds light on various troubleshooting techniques for OpenStack and AWS cloud platform services that are consumed by hybrid cloud applications.

By the end of this book, you will have a deep understanding of the hybrid cloud platform and will be able to develop robust, efficient, modular, scalable, and flexible cloud applications.

Style and approach

This book follows a practical approach to become familiar with the AWS and OpenStack platform from a developer's perspective.

Downloading the example code for this book You can download the example code files for all Packt books you have purchased from your account at http://www.PacktPub.com. If you purchased this book elsewhere, you can visit http://www.PacktPub.com/support and register to have the files e-mailed directly to you.

Table of Contents

  1. Title Page
  2. Copyright and Credits
    1. Hybrid Cloud for Developers
  3. Dedication
  4. Packt Upsell
    1. Why subscribe?
    2. PacktPub.com
  5. Contributors
    1. About the author
    2. About the reviewers
    3. Packt is searching for authors like you
  6. Preface
    1. Who this book is for
    2. What this book covers
    3. To get the most out of this book
      1. Download the example code files
      2. Download the color images
      3. Code in action
      4. Conventions used
    4. Get in touch
      1. Reviews
  7. Introducing Hybrid Clouds
    1. Understanding hybrid clouds
      1. What is cloud computing?
        1. Software as a Service
        2. Platform as a Service
        3. Infrastructure as a Service
      2. Characteristics of a cloud
      3. Types of cloud
        1. Private cloud
        2. Public cloud
      4. Technologies used by cloud providers
    2. Introducing hybrid cloud
      1. Hybrid cloud architecture
      2. Hybrid cloud using OpenStack and AWS/Azure/GCP
      3. What qualifies as a hybrid cloud?
      4. Cloud bursting in a hybrid cloud
      5. Advantages of using hybrid cloud
        1. Cost savings
        2. Flexibility
        3. Speed
        4. Portability
        5. Security
      6. Factors to consider before moving to a hybrid cloud 
      7. Understanding DevOps methodology
        1. Collaboration
        2. Automation
        3. Continuous integration
        4. Continuous testing
    3. Summary
  8. Exploring AWS Cloud
    1. Introducing AWS Cloud 
      1. Amazon Web Service features
      2. Creating an AWS account
      3. Amazon EC2
        1. AMI
        2. EC2 instance types
        3. EC2 instance IP addressing
        4. EC2 instance security groups
        5. Launching an EC2 instance from the web console
      4. Amazon EBS
        1. Creating an AWS EBS volume
        2. Snapshot of EBS volumes
      5. Amazon S3
        1. S3 bucket properties
        2. Creating an S3 bucket using the AWS console
        3. Uploading/downloading files to and from an S3 bucket
          1. Using the AWS command-line interface
          2. Using HTTP GET method or wget
          3. Using AWS S3 API
          4. Using the AWS console
      6. Amazon VPC
        1. Creating an AWS VPC
        2. VPC configurations
          1. Scenario 1 – VPC with public subnet only
          2. Scenario 2 – VPC with public and private subnet
          3. Scenario 3 – VPC with public and private subnet and VPN connectivity
          4. Scenario 4 – VPC with private subnet only and VPN connectivity
        3. VPC peering
    2. Summary
  9. Exploring OpenStack Private Cloud
    1. Introducing OpenStack
      1. OpenStack architecture 
      2. Installing OpenStack 
      3. NOVA – OpenStack Compute Service
      4. Neutron – OpenStack Networking Service
        1. Tenant networks
        2. Provider networks
      5. Glance – OpenStack Imaging Service
      6. Cinder – OpenStack Block Storage Service
      7. Keystone – OpenStack Identity Service
      8. Horizon – OpenStack Dashboard Service
      9. Heat – OpenStack Orchestration Service
      10. Ironic – OpenStack bare metal provisioning
      11. OpenStack workflow – launching a new virtual machine
    2. Summary
  10. Developing AWS Cloud Applications
    1. Technical requirements
    2. AWS – Software Development Kit (SDK)
    3. Setting up an AWS development environment on Visual Studio
    4. Setting up a Unix development environment for Python
    5. Developing Amazon S3 applications – Windows
      1. Creating an S3 bucket
      2. Listing S3 buckets
      3. Uploading files to the S3 bucket
      4. Downloading files from the S3 bucket
      5. Listing files in an S3 bucket
      6. Deleting a file in an  S3 bucket
    6. Developing AWS S3 applications – Unix 
      1. Creating a bucket
      2. Uploading files to S3
      3. Listing S3 buckets
      4. Downloading files from the S3 bucket
      5. Deleting objects/files from a bucket
      6. Deleting a bucket
    7. Developing Amazon EC2 applications – Windows
      1. Launching an EC2 instance
      2. Checking the state of your EC2 instance
      3. Connecting to the instance
      4. Terminating the EC2 instance
    8. Developing Amazon EC2 applications – Unix
      1. Launching an EC2 instance in Python
      2. Listing EC2 instances in Python
      3. Terminating an EC2 instance in Python
    9. Developing Amazon RDS applications – Windows 
      1. DB Instance and instance classes
      2. Creating an RDS instance
      3. Listing the RDS database instances
      4. Connecting to the database instance
      5. Deleting the RDS database instance
    10. Developing Amazon RDS applications – Unix
      1. Creating an RDS instance
      2. Listing the database instances
      3. Connecting to the database instance
      4. Deleting the RDS database instance
    11. Developing Amazon SNS applications – Windows
      1. Creating a topic
      2. Subscribing to a topic
      3. Publishing messages
      4. Deleting the topic
    12. Developing Amazon SNS applications – Unix
      1. Creating a topic
      2. Subscribing to a topic
      3. Publishing a message 
      4. Deleting a topic
    13. Developing Amazon SQS applications – Windows 
      1. Creating an SQS queue
      2. Listing the available queues
      3. Sending a message to the queue
      4. Receiving a message from the queue
      5. Deleting a message from the queue
    14. Developing Amazon SQS applications – Unix
      1. Creating an SQS queue
      2. Sending a message to the queue
      3. Receiving a message from the queue
      4. Deleting messages from the queue
    15. Amazon CloudFormation service
      1. How CloudFormation works
      2. A CloudFormation template
      3. Executing the CloudFormation template
    16. Summary
  11. Developing OpenStack Applications
    1. Technical requirements
    2. Introduction to OpenStack SDK
      1. Go
      2. Java
      3. JavaScript
      4. .NET
      5. PHP
      6. Ruby
      7. C
      8. C++
      9. Perl
      10. Python
    3. Creating an application development environment for OpenStack
    4. Writing your first OpenStack application
    5. Developing OpenStack image service applications 
      1. Listing images
      2. Downloading a VM image 
      3. Uploading an image
      4. Deleting the image
    6. Developing OpenStack compute applications
      1. Listing nova networks
      2. Creating an SSH key-pair
      3. Launching a VM
      4. Starting a VM
      5. Stopping a VM
      6. Rebooting a VM
      7. Pausing a VM
      8. Unpausing a VM
      9. Creating an image from a VM
      10. IP address
        1. Adding a fixed IP address
        2. Removing a fixed IP address
        3. Adding a floating IP address
        4. Removing a floating IP address
      11. Security groups
        1. Adding a security group to a VM
        2. Removing a security group from a VM
        3. Listing security groups
      12. Flavors
        1. Listing flavors
        2. Creating a flavor
        3. Deleting a flavor
    7. Developing OpenStack networking applications
      1. Networks
        1. Creating a network/subnet
        2. Listing networks
        3. Listing subnets
        4. Listing ports
        5. Listing routers
        6. Listing network agents
        7. Deleting a network
      2. Creating a security group
    8. Developing OpenStack Identity Service applications
      1.  User management
        1. Creating a user 
        2. Deleting a user 
        3. Updating a user
        4. Finding  a user 
      2. Roles
        1. Creating a role
        2. Updating a role
        3. Deleting a role
      3. Projects
        1. Creating a project
        2. Updating a project
        3. Deleting a project
    9. Developing block storage applications
      1. Volumes
        1. Creating a volume
        2. Deleting a volume
      2. Volume snapshots
        1. Creating a snapshot
        2. Deleting  a snapshot
    10. Developing HEAT orchestration templates
    11. Summary 
  12. Cloud Migration
    1. Choosing the right cloud provider
    2. Setting up a hybrid cloud environment
    3. Cloud migration
      1. Application migration strategies
        1. Rehosting 
        2. Replatforming
        3. Repurchasing
        4. Refactoring 
        5. Retiring 
      2. AWS migration tools
        1. AWS Migration Hub
        2. AWS Application Discovery Service
        3. AWS Server Migration Service
        4. AWS Database Migration Service
        5. AWS S3 Transfer Acceleration
        6. AWS Snowball 
        7. AWS Snowmobile
        8. AWS Direct Connect
        9. AWS Kinesis Firehouse
      3. Migrating a VM to AWS
      4. Migrating from AWS to OpenStack
    4. Benefits of cloud migration
    5. Risks of cloud migration
    6. Cost benefits of cloud migration
    7. Summary 
  13. Hybrid Cloud Best Practices
    1. Hybrid cloud strategy best practices
      1. Pluggable architecture 
      2. AWS root account 
      3. Security group rules
      4. Data backup
      5. High availability 
      6. Cloud monitoring
      7. Cloud automation
      8. Cloud orchestration
      9. Co-locating data and application tiers
      10. Scaling 
        1. Vertical scaling 
        2. Horizontal scaling   
      11. Legacy applications
      12. Resource utilization and costs
      13. Centralized cloud management
      14. Designing for failure
        1. Caching
        2. Retry operation
        3. Limiting requests
        4. Error reporting
      15. Application decoupling
      16. Continuous delivery and integration
      17. Deploying the application at multiple locations
      18. Developing the application locally or in the cloud
    2. Summary
  14. Monitoring and Troubleshooting Hybrid Cloud
    1. Troubleshooting OpenStack
      1. Linux troubleshooting and monitoring tools
      2. Troubleshooting the OpenStack Identity service
        1. Authentication issues
        2. Keystone service issues 
        3. Keystone database issues 
      3. Troubleshooting the OpenStack Image service
        1. Glance service issues
        2. Glance database issues
      4. Troubleshooting the Networking service
        1. IP address allocation to the VM 
        2. Unable to ping to VM
        3. VM cannot reach the external network
      5. Troubleshooting the Compute service
        1. Database issues 
        2. Instance issues 
        3. Volume issues
      6. Troubleshooting the Block Storage service
        1. Common issues
      7. Troubleshooting the Object Storage service
        1. Swift authentication
      8. Troubleshooting the Orchestration service
        1. Service errors
        2. Stack errors
    2. Troubleshooting AWS
      1. AWS Direct Connect
      2. EC2 instance issues
        1. Instance connection issues
        2. Empty console output
        3. SSH key issues
      3. EBS volume issues 
        1. Volume stuck in Attaching state
        2. Volume in Error state
        3. Volume snapshot in Pending state
      4. S3 object store issues 
    3. Troubleshooting OpenVPN issues
      1. OpenVPN log files
        1. VPN connection issues
        2. Authentication issues
      2. Starting and stopping OpenVPN
    4. Summary
  15. Hybrid Cloud Security
    1. Hybrid cloud security threats 
      1. Lack of encryption
        1. User symmetric key encryption
        2. Encrypting data before uploading to the cloud
        3. Protecting data at rest and in transit with a cloud access security broker  
        4. Using a reliable VPN connection
        5. Using SSH
        6. Key management
      2. Lack of compliance
      3. Lack of data backup and replication 
      4. Unsecure application APIs
      5. Denial of service attacks
      6. Data leaks
    2. Virtualization software security
    3. Virtual machine security
    4. Patch management
    5. Intrusion detection and prevention
    6. Identity access management
    7. Developing secure applications
      1. Data manipulation
      2. Coding practices
      3. User input validation
      4. Security testing
    8. Summary 
  16. Other Books You May Enjoy
    1. Leave a review - let other readers know what you think