Modernizing Enterprise Java
A Concise Cloud Native Guide for Developers
Paperback Engels 2021 9781098102142Samenvatting
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 long-established Java-based models and demonstrates how to bring these monolithic applications successfully into the future.
Relying on their years of experience modernizing applications, authors Markus Eisele and Natale Vinto walk you through the steps necessary to update your organization's Java applications. You'll discover how to dismantle your monolithic application and move to an up-to-date software stack that works across cloud and on-premises installations.
- Learn cloud native application basics to understand what parts of your organization's Java-based applications and platforms need to migrate and modernize
- Understand how enterprise Java specifications can help you transition projects and teams
- Build a cloud native platform that supports effective development without falling into buzzword traps
- Find a starting point for your migration projects by identifying candidates and staging them through modernization steps
- Discover how to complement a traditional enterprise Java application with components on top of containers and Kubernetes
Specificaties
Lezersrecensies
Inhoudsopgave
Preface
Conventions Used in This Book
Using Code Examples
O’Reilly Online Learning
How to Contact Us
Acknowledgments
1. Revisiting Enterprise Development
From Public to Private. Why Clouds?
What “Cloud Native” Means
Kubernetes-Native Development
Containers and Orchestration for Developers
Container-Native Runtime
Kubernetes Flavors
Managing Development Complexity
DevOps and Agility
Summary
2. The Path to Cloud Native Java
Cloud Native Workshop
Architecture
Create an Inventory Microservice with Quarkus
Create Quarkus Maven Project
Create a Domain Model
Create a RESTful Service
Run the App in Dev Mode
Create a Catalog Microservice with Spring Boot
Create a Maven Project
Create a Domain Model
Create a Data Repository
Create a RESTful Service
Create a Gateway Service with Vert.x
Create a Vert.x Maven Project
Create an API Gateway
Create a Frontend with Node.js and AngularJS
Run the Frontend
Summary
3. Travel Light on Your Pathway
Three-Tier or Distributed System
Technology Updates, Modernization, and Transformation
The 6 Rs
Divide and Containerize
Kubernetes as the New Application Server?
Define Your Target Platform
Mandatory Migration Steps and Tools
Create an Application Portfolio
Prepare for Big Things
Summary
4. A Kubernetes-Based Software Development Platform
Developers and Kubernetes
What Kubernetes Does
What Kubernetes Doesn’t Do
Infrastructure as a Code
Container Images
Dockerfile
Building Container Images
Run Containers
Registry
Deploying to Kubernetes
Pod
Service
Deployment
Kubernetes and Java
Jib
JKube
Summary
5. Beyond Lift and Shift: Working with Legacy
Managing Legacy
Assessing Applications for Migration
Assessing Functionality for Migration
Migration Approaches
Protecting Legacy (Replatform)
Build Something New (Refactor)
Challenges
Avoiding Dual-Writes
Long-Running Transactions
Removing Old Code Too Quickly
Integration Aspects
Summary
6. Building Kubernetes-Native Applications
Find the Right Balance Between Scalability and Complexity
Functional Requirements for Modern Architectures
API-Driven
Discovery
Security and Authorization
Monitoring
Tracing
Logging
CI/CD
Debugging Microservices
Port Forwarding
Quarkus Remote Development Mode
Telepresence
Summary
7. Tomorrow’s Solutions: Serverless
What Is Serverless?
Architectural Evolution
Use Cases: Data, AI, and Machine Learning
Use Cases: Edge Computing and IoT
Knative: Serverless for Kubernetes
Event-Driven Serverless Architectures
Function as a Service for Java Applications
Functions Deployment for Java Applications
Boson Function CLI (func)
Summary
Index
Rubrieken
- Advisering
- Algemeen management
- Coaching en trainen
- Communicatie en media
- Economie
- Financieel management
- Inkoop en logistiek
- Internet en social media
- IT-management / ICT
- Juridisch
- Leiderschap
- Marketing
- Mens en maatschappij
- Non-profit
- Ondernemen
- Organisatiekunde
- Personal finance
- Personeelsmanagement
- Persoonlijke effectiviteit
- Projectmanagement
- Psychologie
- Reclame en verkoop
- Strategisch management
- Verandermanagement
- Werk en loopbaan