While containers, microservices, and distributed systems dominate discussions in the tech world, the majority of applications in use today still run monolithic architectures that follow traditional development processes. This practical book helps developers examine these long established models and demonstrates how to bring monolithic applications successfully into the future.

Relying on their years of modernization experience, authors Markus Eisele and Natale Vinto walk you through the steps necessary to update your application. You'll discover how to dismantle your monolithic application and move to an up-to-date software stack that works across clouds and on-premises installations.

  • Learn the basics of cloud native applications and assess what you need to migrate and modernize
  • Understand how enterprise Java specifications can help you transition projects and teams
  • Build a cloud native development platform that supports effective development without falling into buzzword traps
  • Find a starting point for your migration projects by identifying and applying the correct steps for first module extractions
  • Learn the necessary pieces to complement a traditional enterprise Java application with components on top of containers and Kubernetes

Table of Contents

  1. 1. Revisiting Enterprise Development
    1. From public to private. Why clouds?
    2. What “Cloud Native” means
    3. Kubernetes-Native Development
    4. Containers and Orchestration for Developers
    5. Managing Development complexity
    6. DevOps and Agility
    7. Summary
  2. 2. The Path to Cloud Native Java
    1. Cloud Native Workshop
    2. Architecture
    3. Create an Inventory Microservice with Quarkus
    4. Create Quarkus Maven project
    5. Create a Domain Model
    6. Create a RESTful Service
    7. Run the app in Dev Mode
    8. Create a Catalog Microservice with Spring Boot
    9. Create a Maven Project
    10. Create Domain Model
    11. Create a Data Repository
    12. Create a RESTful Service
    13. Create a Gateway Service with Vert.x
    14. Create Vert.x Maven project
    15. Create an API Gateway
    16. Create a Frontend with NodeJS and AngularJS
    17. Run the Frontend
    18. Summary
  3. 3. Travel light on your pathway
    1. 3-tier or distributed system
    2. Technology updates, Modernization, and Transformation
    3. The 6 R’s
    4. Divide and containerize
    5. Kubernetes as the new application server?
    6. Define your target platform
    7. Mandatory migration steps and tools
    8. Create an application portfolio
    9. Prepare for big things
    10. Summary
  4. 4. A Kubernetes based Software Development Platform
    1. Developers and Kubernetes
    2. What Kubernetes does
    3. What Kubernetes doesn’t
    4. Infrastructure as a Code
    5. Container images
    6. Dockerfile
    7. Building Container images
    8. Run Containers
    9. Registry
    10. Deploying to Kubernetes
    11. Pod
    12. Service
    13. Deployment
    14. Kubernetes and Java
    15. Jib
    16. JKube
    17. Summary
  5. Index