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

Migrating Java to the Cloud

Book Description

Estimates vary but the message is clear: cloud spending worldwide is soaring, and much of the demand is coming from companies looking to migrate existing systems. Transforming a monolithic legacy application into a cloud native system is no small feat, but with this in-depth report, your organization will learn ways to migrate classical Java applications to newly provisioned cloud infrastructure without requiring a significant rewrite.

Authors Kevin Webber and Jason Goodwin cover proven steps and techniques that enable your company to take advantage of cloud infrastructure’s power and flexibility. You’ll explore three pillars of successful cloud adoption—infrastructure refresh, application modernization and migration, and security modernization—and learn how to treat the cloud as an unlimited pool of resources that brings both scale and resilience to your system.

This report covers:

  • Cloud native requirements: critical traits applications must possess before they’re deployed to cloud infrastructure
  • Modernizing heritage applications: proven techniques and tools for refactoring existing legacy Java applications to real-time, event-driven, cloud-native systems
  • Getting cloud-native deployments right: best practices for deploying enterprise services to public, private, and hybrid clouds, and for meeting common organizational challenges along the way
  • Cloud security: methods for shoring up the least-secure channels in enterprise systems—from social engineering to known vulnerabilities—before deployment to cloud infrastructure

Table of Contents

  1. Preface
    1. Conventions Used in This Book
    2. O’Reilly Safari
    3. How to Contact Us
    4. Acknowledgments
  2. 1. An Introduction to Cloud Systems
    1. Cloud Adoption
    2. What Is Cloud Native?
      1. Container Packaged
      2. Dynamically Managed
      3. Microservices Oriented
    3. Cloud Infrastructure
      1. VMs on Hypervisors
      2. Container Management
      3. Going Hybrid
      4. Serverless
  3. 2. Cloud Native Requirements
    1. Infrastructure Requirements
      1. Automation Requirements
      2. Managing Components at Runtime
      3. Framework Requirements
    2. Architecture Requirements
  4. 3. Modernizing Heritage Applications
    1. Event Storming and Domain-Driven Design
      1. Event Storming
      2. Domain-Driven Design
    2. Refactoring Legacy Applications
    3. The API Gateway Pattern
      1. Implementing an API Gateway with Play
      2. Creating the API
    4. Isolating State with Akka
      1. Event Sourcing
      2. Separate Read Models with CQRS
    5. Leveraging Advanced Akka for Cloud Infrastructure
      1. Akka Persistence
      2. Akka Cluster
    6. Integration with Datastores
      1. Traditional RDBMS: Amazon RDS or Google Cloud SQL
      2. NewSQL
      3. NoSQL
  5. 4. Getting Cloud-Native Deployments Right
    1. Organizational Challenges
    2. Deployment Pipeline
      1. Infrastructure Automation
    3. Configuration in the Environment
    4. Artifacts from Continuous Integration
      1. Logs
    5. Autoscaling
    6. Scaling Down
    7. Service Discovery
      1. Service Registry
      2. DNS or Load Balancers
      3. Cluster/Gossip
    8. Cloud-Ready Active-Passive
    9. Failing Fast
    10. Split Brains and Islands
    11. Putting It All Together with DC/OS
  6. 5. Cloud Security
    1. Lines of Defense
    2. Applying Updates Quickly
    3. Strong Passwords
      1. Hashes
      2. Salts
      3. Peppers
      4. Password Stretching
      5. Assume Breach
    4. Preventing the Confused Deputy
  7. 6. Conclusion