Professional Documents
Culture Documents
Beginning Cloud Native Development with MicroProfile, Jakarta EE, and Kubernetes 1st Edition Tarun Telang full chapter instant download
Beginning Cloud Native Development with MicroProfile, Jakarta EE, and Kubernetes 1st Edition Tarun Telang full chapter instant download
https://ebookmass.com/product/pro-jakarta-ee-10-open-source-
enterprise-java-based-cloud-native-applications-development-
peter-spath/
https://ebookmass.com/product/beginning-helidon-building-cloud-
native-microservices-and-applications-1st-edition-dmitry-
kornilov-2/
https://ebookmass.com/product/beginning-helidon-building-cloud-
native-microservices-and-applications-1st-edition-dmitry-
kornilov/
Software Development with Go: Cloud-Native Programming
using Golang with Linux and Docker 1st Edition Nanik
Tolaram
https://ebookmass.com/product/software-development-with-go-cloud-
native-programming-using-golang-with-linux-and-docker-1st-
edition-nanik-tolaram/
https://ebookmass.com/product/practical-debugging-at-scale-cloud-
native-debugging-in-kubernetes-and-production-1st-edition-shai-
almog/
https://ebookmass.com/product/beginning-ejb-3-java-ee-7-edition-
jonathan-wetherbee/
https://ebookmass.com/product/practical-spring-cloud-function-
developing-cloud-native-functions-for-multi-cloud-and-hybrid-
cloud-environments-1st-edition-banu-parasuraman-2/
https://ebookmass.com/product/practical-spring-cloud-function-
developing-cloud-native-functions-for-multi-cloud-and-hybrid-
cloud-environments-1st-edition-banu-parasuraman/
Tarun Telang
This work is subject to copyright. All rights are solely and exclusively
licensed by the Publisher, whether the whole or part of the material is
concerned, specifically the rights of translation, reprinting, reuse of
illustrations, recitation, broadcasting, reproduction on microfilms or in
any other physical way, and transmission or information storage and
retrieval, electronic adaptation, computer software, or by similar or
dissimilar methodology now known or hereafter developed.
The publisher, the authors, and the editors are safe to assume that the
advice and information in this book are believed to be true and accurate
at the date of publication. Neither the publisher nor the authors or the
editors give a warranty, expressed or implied, with respect to the
material contained herein or for any errors or omissions that may have
been made. The publisher remains neutral with regard to jurisdictional
claims in published maps and institutional affiliations.
Conventions
Throughout the book, I use a consistent style for presenting Java code,
SQL, command-line text, and results. When pieces of code, SQL,
reserved words, or code fragments are presented in the text, they are
presented in fixed-width Courier font, such as this (working) example:
Note The sources for this book may change over time, in order to
incorporate the most up-to-date features in Jakarta EE, MicroProfile,
and the Kubernetes platform. If you find any issues in the sources,
please submit them via the book’s GitHub repo and the code will be
adjusted accordingly.
Any source code or other supplementary material referenced by the
author in this book is available to readers on GitHub
(https://github.com/Apress). For more detailed information, please
visit http://www.apress.com/source-code.
Acknowledgments
I would like to thank my wife, Nikita, and son, Vihan, for their patience
and love throughout the process of writing this book. I am indebted to
all my mentors and friends who encouraged me to keep on growing
during every phase of my professional career.
I’d like to thank my parents for pushing me in the right direction
with technology and always supporting me every step of the way, even
when I decided to do something completely different than they
expected. It’s also important to note that without them, I probably
wouldn’t have become a developer and had such a great career. Lastly,
thanks again go out to my wife (and soulmate), Nikita. It’s an incredible
feeling to be with someone who keeps you motivated and challenges
you, not only professionally but personally.
Thank you for always being there for me!
I’d like to send a special thanks to Pramit Das and Massimo Nardone
(technical reviewers), for their impeccable work on this book. I also
greatly appreciate Steve Anglin, Mark Powers, and everyone at Apress
Media (apress.com) for their support in getting this book published.
Last, but not least, I would like to thank you, the reader, for taking
the time to read this book. I hope that it will help you in your journey of
becoming a better Jakarta EE developer.
Table of Contents
Chapter 1:Introduction to Cloud Computing
Introduction to Cloud Computing
Examples of Cloud Computing
Benefits of Cloud Computing
Essential Characteristics of Cloud Computing
Types of Cloud Computing Based on Deployment Models
Public Cloud
Community Cloud
Private Cloud
Hybrid Cloud
Service Models of Cloud Computing
Software as a Service (SaaS)
Platform as a Service (PaaS)
Infrastructure as a Service (IaaS)
The Role of Java in Cloud Computing
The Evolution of Cloud Computing
Summary
Chapter 2:Cloud-Native Application Development
What Is Cloud-Native?
Characteristics of Cloud-Native Applications
Examples of Cloud-Native Applications
Benefits of Cloud-Native Applications
Drawbacks of Using Cloud-Native Applications
Cloud-Native Applications vs.Traditional Applications
Cloud-Native Application Development
Managed Services for Java-Based Applications
Examples of Cloud-Native Application Development
Cloud-Native Application Development Is the Future
Phases of Cloud-Native Application Development
Summary
Chapter 3:Setting Up Your Development Environment
Prerequisites
Hardware Requirements
Installing Java Development Kit (JDK)
Using Maven
Installing Maven
Git
Installing Git
Creating a GitHub Account
Creating a GitHub Repository
Pushing Code to a GitHub Repository
Using Docker
Benefits of Using Docker
Installing Docker
Docker Hub
Using Kubernetes
Installing Kubernetes
Configuring Docker for Kubernetes
Creating a Kubernetes Cluster
Using Zipkin
Installing Zipkin
Integrated Development Environments (IDE)
Summary
Chapter 4:Building RESTful Web Services
REST:An Architectural Style for Building Web Services
Introduction to Open Liberty Runtime
Key Features of the Open Liberty Application Server
Downloading and Installing Open Liberty
Starting the Open Liberty Server
Printing a List of Features on the Open Liberty Server
Creating a Server Instance
Stopping the Open Liberty Server
Configuring the Server
Creating a RESTful Web Service in Open Liberty
Creating a RESTful API
Summary
Chapter 5:Microservices Architecture
Vertical Scaling
Horizontal Scaling
Vertical vs.Horizontal Scaling
History of Service-Based Architecture
Types of Service-Based Architectures
Service-Oriented Architecture (SOA)
What Is a Web Service?
What Is SOAP?
What Is REST?
REST vs.SOAP
The Monolithic Architecture
Evolution of the Microservices Architecture
Benefits of Microservices Architectures
Drawbacks of Microservices Architectures
Design Considerations
Using Microservices in Cloud-Native Applications
Cloud-Native Twelve-Factor Applications
What Is a Virtual Machine?
What Are Containers?
What Are Container-Based Applications?
What Are Serverless Applications?
Where Is Serverless Computing Used?
Benefits of Serverless Computing
Drawbacks of Serverless Computing
Popular Serverless Platforms
Main Components of a Serverless Computing Platform
Serverless Applications vs.Containers
Microservice Deployment Patterns
Key Considerations
Microservices Deployment Strategies and Patterns
Microservices Management
Summary
Chapter 6:The Eclipse MicroProfile Framework
What Is the Eclipse MicroProfile Framework?
Layers of Functionality in MicroProfile
Popular Implementations of the Eclipse MicroProfile
Framework
MicroProfile Config
The MicroProfile Health Check Specification
The MicroProfile Fault Tolerance Component
Key Features of the Fault Tolerance Component
Fault Tolerance API
Summary
Chapter 7:MicroProfile Framework – Part 2
The MicroProfile Metrics Specification
Types of Metrics
Metrics Components
Metrics Annotations
Maven Dependency
Tracking Response Time Using @Timed
Tracking the Number of Invocations
Tracking Memory Usage
MetricRegistry
Creating Custom Metrics
Using Open Tracing
Distributed Tracing
How Does It Work?
Using the Jakarta RESTful Web Service
Using the MicroProfile OpenAPI Specification
OpenAPI
Capabilities of the MicroProfile OpenAPI Specification
Generating OpenAPI Documents
Using the MicroProfile OpenAPI in Your Project
MicroProfile OpenAPI Annotations
Summary
Chapter 8:MicroProfile JSON Web Tokens and Jakarta Security
Security Best Practices for Microservices
What Is a JSON Web Token (JWT)?
Use Cases for JSON Web Tokens
Authentication
Authorization
Session Information
Claims-Based Identity
Information Exchange
Federation
Creating and Signing a JWT
Testing the Application
Verifying and Validating a JWT
Using JWT in a Microservice Environment
Securing a RESTful Application
Securing a REST Resource
The @RolesAllowed Annotation
The @Claim Annotation
The @HeaderParam Annotation
Configuring a JWK Set or PEM-Encoded Public Key
Public Key Cryptography Standards #8 in PEM Format
JSON Web Key (JWK)
JSON Web Key Set (JWKS)
The Jakarta EE Security Specification
Securing a Servlet Using Jakarta Security
The MicroProfile REST Client
The @RegisterClient Annotation
Configuring Your REST Client
REST Client Interface
Documenting RESTful APIs Using MicroProfile OpenAPI
What Is the OpenAPI Specification?
What Is MicroProfile OpenAPI?
Summary
Chapter 9:Containerizing Microservices Using Kubernetes
What Are Containers?
Why Use Containers?
What Is Container Orchestration?
The Benefits of Using Container Orchestration
Understanding Kubernetes Terminology
The Key Features of Kubernetes
Using Kubernetes
Using Docker Containers
Running a MicroProfile Application in Docker
Pushing the Docker Image to Docker Hub
Scaling Your Deployment
Summary
Appendix A:Introduction to Maven
Appendix B:Creating an Open Liberty Project Using Maven
Another random document with
no related content on Scribd:
protests against Pitt’s inclusion in the Cabinet, 105;
his death, 110.
Rodney, Lord, his victory over De Grasse, 106.
Rohilla War, the, 225, 232, 238.
Rokeby, Lord. See Robinson, Morris.
Rolle, Lord, 401, 568.
“Rolliad,” the, 263, 276, 280, 289, 401.
Romilly, Sir Samuel, quoted, 101, 107, 433.
Roode, Count de, his mission to London, 413, 514.
Rose, George, his friendship with Pitt, 139, 286;
Secretary to the Treasury, 157, 194, 259, 285, 286, 406, 407,
578 n., 579.
Rossbach, Battle of, 382.
Rousseau, Jean Jacques, his “Contrat Social,” 2, 7, 26, 61, 322,
323, 537, 539, 540;
on British elections, 27;
story of the peasant and, 538, 539.
Royal Marriage Act (1772), 395.
Russell, Lord John, 466.
Russia, alliance with Austria, 299;
proposals for a British alliance, 315;
war with Turkey, 375, 487, 488, 490, 502, 505, 506, 590, 591;
joined by Austria, 384, 385, 491;
alliance with Poland, 485, 486;
failure of the harvest (1787), 486;
British policy towards her, 489, 605;
war with Sweden, 491, 493, 494, 502;
aided by Denmark, 501, 502;
financial corruption in, 505;
makes peace with Sweden, 532;
state of, in 1790, 591;
British ultimatum to, 609, 610;
successes against the Turks, 625;
peace with Turkey, 626;
alliance with Sweden 628 629
alliance with Sweden, 628, 629.
See Catharine II.
Rutland, Duke of, his friendship with Pitt, 56–8, 74;
Lord Privy Seal, 156;
Lord Lieutenant of Ireland, 156, 207, 208, 246, 247, 249–52,
337;
letters of Pitt to, 168, 201, 209, 257, 260, 265, 318.
Ryder, Dudley (afterwards Earl of Harrowby), 267, 269, 270,
586.