Cover image for Cloud Application Architectures

Book description

If you're involved in planning IT infrastructure as a network or system architect, system administrator, or developer, this book will help you adapt your skills to work with these highly scalable, highly redundant infrastructure services. While analysts hotly debate the advantages and risks of cloud computing, IT staff and programmers are left to determine whether and how to put their applications into these virtualized services. Cloud Application Architectures provides answers -- and critical guidance -- on issues of cost, availability, performance, scaling, privacy, and security. With Cloud Application Architectures, you will:

  • Understand the differences between traditional deployment and cloud computing

  • Determine whether moving existing applications to the cloud makes technical and business sense

  • Analyze and compare the long-term costs of cloud services, traditional hosting, and owning dedicated servers

  • Learn how to build a transactional web application for the cloud or migrate one to it

  • Understand how the cloud helps you better prepare for disaster recovery

  • Change your perspective on application scaling

To provide realistic examples of the book's principles in action, the author delves into some of the choices and operations available on Amazon Web Services, and includes high-level summaries of several of the other services available on the market today.

Cloud Application Architectures provides best practices that apply to every available cloud service. Learn how to make the transition to the cloud and prepare your web applications to succeed.

Table of Contents

  1. Cloud Application Architectures
  2. SPECIAL OFFER: Upgrade this ebook with O’Reilly
  3. Preface
    1. Audience for This Book
    2. Organization of the Material
    3. Conventions Used in This Book
    4. Using Code Examples
    5. Safari® Books Online
    6. We’d Like Your Feedback!
    7. Acknowledgments
  4. 1. Cloud Computing
    1. The Cloud
      1. Software
      2. Hardware
        1. The advantages of a cloud infrastructure
        2. Hardware virtualization
        3. Cloud storage
    2. Cloud Application Architectures
      1. Grid Computing
      2. Transactional Computing
    3. The Value of Cloud Computing
      1. Options for an IT Infrastructure
      2. The Economics
        1. Capital costs
        2. Cost comparison
        3. The bottom line
    4. Cloud Infrastructure Models
      1. Platform As a Service Vendor
      2. Infrastructure As a Service
      3. Private Clouds
      4. All of the Above
    5. An Overview of Amazon Web Services
      1. Amazon Elastic Cloud Compute (EC2)
      2. Amazon Simple Storage Service (S3)
      3. Amazon Simple Queue Service (SQS)
      4. Amazon CloudFront
      5. Amazon SimpleDB
  5. 2. Amazon Cloud Computing
    1. Amazon S3
      1. Access to S3
        1. Web Services
        2. BitTorrent
      2. S3 in Action
    2. Amazon EC2
      1. EC2 Concepts
      2. EC2 Access
      3. Instance Setup
      4. Access to an Instance
      5. Security Groups
      6. Availability Zones
      7. Static IP Addresses
      8. Data Storage in EC2
        1. EBS volume setup
        2. Volume management
        3. Snapshots
      9. AMI Management
  6. 3. Before the Move into the Cloud
    1. Know Your Software Licenses
    2. The Shift to a Cloud Cost Model
      1. How to Approach Cost Comparisons
      2. A Sample Cloud ROI Analysis
      3. Where the Cloud Saves Money
    3. Service Levels for Cloud Applications
      1. Availability
        1. How to estimate the availability of your system
        2. What constitutes availability?
        3. Cloud service availability
        4. Amazon Web Services service levels
        5. Expected availability in the cloud
        6. Reliability
      2. Performance
        1. Clustering versus independent nodes
        2. EC2 performance constraints
    4. Security
      1. Legal, Regulatory, and Standards Implications
      2. There Is No Perimeter in the Cloud
      3. The Risk Profile for S3 and Other Cloud Storage Solutions Is Unproven
    5. Disaster Recovery
  7. 4. Ready for the Cloud
    1. Web Application Design
      1. System State and Protecting Transactions
        1. The problem with memory locks
        2. Transactional integrity through stored procedures
        3. Two alternatives to stored procedures
      2. When Servers Fail
    2. Machine Image Design
      1. Amazon Machine Image Data Security
      2. What Belongs in a Machine Image?
      3. A Sample MySQL Machine Image
      4. Amazon AMI Philosophies
    3. Privacy Design
      1. Privacy in the Cloud
        1. Managing the credit card encryption
        2. Processing a credit card transaction
        3. If the e-commerce application is compromised
        4. If the credit card processor is compromised
      2. When the Amazon Cloud Fails to Meet Your Needs
    4. Database Management
      1. Clustering or Replication?
        1. Using database clustering in the cloud
        2. Using database replication in the cloud
        3. Replication for performance
      2. Primary Key Management
        1. How to generate globally unique primary keys
        2. Support for globally unique random keys
      3. Database Backups
        1. Types of database backups
        2. Applying a backup strategy for the cloud
  8. 5. Security
    1. Data Security
      1. Data Control
        1. When the cloud provider goes down
        2. When a subpoena compels your cloud provider to turn over your data
        3. When your cloud provider fails to adequately protect their network
      2. Encrypt Everything
        1. Encrypt your network traffic
        2. Encrypt your backups
        3. Encrypt your filesystems
      3. Regulatory and Standards Compliance
    2. Network Security
      1. Firewall Rules
      2. Network Intrusion Detection
        1. The purpose of a network intrusion detection system
        2. Implementing network intrusion detection in the cloud
    3. Host Security
      1. System Hardening
      2. Antivirus Protection
      3. Host Intrusion Detection
      4. Data Segmentation
      5. Credential Management
    4. Compromise Response
  9. 6. Disaster Recovery
    1. Disaster Recovery Planning
      1. The Recovery Point Objective
      2. The Recovery Time Objective
    2. Disasters in the Cloud
      1. Backup Management
        1. Fixed data strategy
        2. Configuration data strategy
        3. Persistent data strategy (aka database backups)
        4. Backup security
      2. Geographic Redundancy
        1. Spanning availability zones
        2. Operating across regions
      3. Organizational Redundancy
    3. Disaster Management
      1. Monitoring
      2. Load Balancer Recovery
      3. Application Server Recovery
      4. Database Recovery
  10. 7. Scaling a Cloud Infrastructure
    1. Capacity Planning
      1. Expected Demand
        1. Determining your expected demand
        2. Analyzing the unexpected
      2. The Impact of Load
        1. Application architecture and database architecture revisited
        2. Points of scale
      3. The Value of Your Capacity
        1. A simple thought experiment
        2. How might the outcome have been different?
    2. Cloud Scale
      1. Tools and Monitoring Systems
        1. The procurement process in the cloud
        2. Managing proactive scaling
        3. Managing reactive scaling
        4. A recommended approach
      2. Scaling Vertically
  11. A. Amazon Web Services Reference
    1. Amazon EC2 Command-Line Reference
      1. ec2-add-group
      2. ec2-add-keypair
      3. ec2-allocate-address
      4. ec2-associate-address
      5. ec2-attach-volume
      6. ec2-authorize
      7. ec2-bundle-instance
      8. ec2-cancel-bundle-task
      9. ec2-confirm-product-instance
      10. ec2-create-snapshot
      11. ec2-create-volume
      12. ec2-delete-group
      13. ec2-delete-keypair
      14. ec2-delete-snapshot
      15. ec2-delete-volume
      16. ec2-deregister
      17. ec2-describe-addresses
      18. ec2-describe-availability-zones
      19. ec2-describe-bundle-tasks
      20. ec2-describe-group
      21. ec2-describe-image-attribute
      22. ec2-describe-images
      23. ec2-describe-instances
      24. ec2-describe-keypairs
      25. ec2-describe-regions
      26. ec2-describe-snapshots
      27. ec2-describe-volumes
      28. ec2-detach-volume
      29. ec2-disassociate-address
      30. ec2-get-console-output
      31. ec2-get-password
      32. ec2-modify-image-attribute
      33. ec2-reboot-instances
      34. ec2-release-address
      35. ec2-register
      36. ec2-reset-image-attribute
      37. ec2-revoke
      38. ec2-run-instances
      39. ec2-terminate-instances
    2. Amazon EC2 Tips
      1. Filesystem Encryption
      2. Setting Up RAID for Multiple EBS Volumes
  12. B. GoGrid
    1. Types of Clouds
    2. Cloudcenters in Detail
      1. Data Centers in the Clouds
      2. GoGrid Versus Traditional Data Centers
        1. Horizontal and vertical scaling
        2. GoGrid deployment architectures
      3. Focus on Web Applications
    3. Comparing Approaches
      1. Side-by-Side Comparison
      2. Real-Life Usage
    4. What’s Right for You?
  13. C. Rackspace
    1. Rackspace’s Cloud Services
      1. Cloud Servers
      2. Cloud Files
      3. Cloud Sites
    2. Fully Integrated, Backed by Fanatical Support
  14. Index
  15. About the Author
  16. Colophon
  17. SPECIAL OFFER: Upgrade this ebook with O’Reilly
  18. Copyright