Book Image

Hands-On Cloud Development with WildFly

By : Tomasz Adamski
Book Image

Hands-On Cloud Development with WildFly

By: Tomasz Adamski

Overview of this book

The book starts by introducing you to WildFly Swarm—a tool that allows you to create runnable microservices from Java EE components. You’ll learn the basics of Swarm operation—creating microservices containing only the parts of enterprise runtime needed in a specific case. Later, you’ll learn how to configure and test those services. In order to deploy our services in the cloud, we’ll use OpenShift. You’ll get to know basic information on its architecture, features, and relationship to Docker and Kubernetes. Later, you’ll learn how to deploy and configure your services to run in the OpenShift cloud. In the last part of the book, you’ll see how to make your application production-ready. You’ll find out how to configure continuous integration for your services using Jenkins, make your application resistant to network failures using Hystrix, and how to secure them using Keycloak. By the end of the book, you’ll have a functional example application and will have practical knowledge of Java EE cloud development that can be used as a reference in your other projects.
Table of Contents (14 chapters)

What this book covers

Chapter 1, Java EE and Modern Architectural Methodologies, gives users an overview of the current state of Java EE and its relevance to modern architectural methodologies, that is, microservices and cloud computing. We will introduce the tools that will be used throughout the book and the application that we will be developing.

Chapter 2, Getting Familiar with WildFly Swarm, covers WildFly and how it relates to Java EE and its main features. We will introduce WildFly Swarm—WildFly's side project—describe its purpose, and show how it can be used to develop microservices.

Chapter 3, Right-Sizing Your Services, focuses on what Swarm does to create your services with only those dependencies that are necessary for them. You will learn in greater detail what a fraction is, how Swarm detects which fractions should be used, and how you can modify the fraction discovery behavior.

Chapter 4, Tuning the Configuration of Your Services, helps you to learn how to configure your Swarm services. We will show you practical examples of different configuration tools that are available and how you can use them to steer the behavior of your applications.

Chapter 5, Testing Your Services with Arquillian, teaches you how to test your microservices. This chapter will introduce Arquillian, the testing framework that will be used, and present the purpose of the project and its main features. Later, you will learn how to develop, write, and configure tests for your services based on practical examples.

Chapter 6, Deploying Applications on the Cloud with OpenShift, discusses how to deploy those services to the cloud, and this chapter uses OpenShift to achieve that.

Chapter 7, Configuring Storage for Your Applications, starts by helping you learn the theoretical basis of OpenShift storage configuration. Later, we will show you how to deploy a database in the cloud and configure your cloud applications to use it.

Chapter 8, Scaling and Connecting Your Services, looks in greater detail at the process of deploying, scaling, and connecting your applications running in an OpenShift environment.

Chapter 9, Configuring Continuous Integration Using Jenkins, teaches you how to integrate the pet store application with Jenkins, a Continuous Integration server. We will introduce CI concepts and show how they can be implemented using Jenkins.

Chapter 10, Providing Security Using Keycloak, deals with the basics of distributed, token-based security. We will introduce Keycloak, an authentication server, that can be used to secure distributed cloud applications. As a practical example, we will secure part of the API of the Petstore application.

Chapter 11, Adding Resilience Using Hystrix, discusses how to deal with network failures, which are inevitable in a distributed environment. In order to do that, we will introduce the circuit breaker architectural pattern and cover when it should be used and what are its benefits. We will look at its Netflix implementation, Hystrix. We will cover how it is implemented and how it can be used.

Chapter 12, Future Direction, describes briefly what the future of Java EE development is likely to look such as, the plans for evolving the platform and how concepts provided by applications described in the book may be standardized in the future. We will also take a look at MicroProfile and Jakarta EE, describe their purpose, and emphasize how they can help you to move the platform forward at a faster pace.