Cloud Native Applications with Jakarta EE
US$ 19.95
The publisher has enabled DRM protection, which means that you need to use the BookFusion iOS, Android or Web app to read this eBook. This eBook cannot be used outside of the BookFusion platform.
Description
Contents
Reviews
Language
English
ISBN
9789390684892
Cover Page
Title Page
Copyright Page
Dedication Page
About the Author
About the Reviewer
Acknowledgement
Preface
Errata
Table of Contents
1. Introduction to Cloud Computing
Structure
Objectives
What is Cloud?
Pay As You Go
How does cloud work?
Major service providers for Cloud
Understanding IaaS, PaaS, SaaS, and FaaS
Traditional software development and deployment
Infrastructure as a Service
Platform as a Service
Software as a Service
Functions as a Service
Major services provided by cloud
Compute
Storage
Database
Networking
Security
Resource and cost management
Additional noteworthy services
Summary
Questions
2. Design for Cloud
Structure
Objectives
Cloud Native versus Conventional Development
From monolithic to microservices
Monolith
Service-Oriented Architecture
Microservices
Design factors to be considered for cloud
Think in terms of services
Design for failure
No single point of failure
Stay Stateless
Fail fast
Gracefully handle failure
Think scalability
Automate
Self-healing system
Manage data
Cache whenever possible
Go asynchronous
Common mistakes
Unoptimized usages
Lack of monitoring
Design not optimized for cloud
Consider containers, serverless, and off the shelf
Summary
Questions
3. Major Players in Cloud Computing
Structure
Objectives
Amazon Web Services
Compute
Storage
Databases
Other services
Microsoft’s Azure
Compute
Storage
Databases
Other services
Google Cloud
Other important players
Summary
Questions
4. Sample Application Using Jakarta EE
Structure
Objectives
What is Jakarta EE?
Creating a sample application
Creating a Jakarta EE Application
Eclipse MicroProfile
Using MicroProfile
Implementing with Spring
Deploying to the cloud
Ways to deploy on the cloud
Deploying web service with virtual machines
Summary
Questions
5. Testing Cloud-Native Applications
Structure
Objectives
Unit Testing
Integration testing
Service Testing
End-to-End System Testing
Performance Testing
Additional testing
Test-driven development
Static code analysis and code coverage
Summary
Questions
6. Continuous Integration and Continuous Delivery
Structure
Objectives
CI and CD - An Introduction
Branching strategies
Feature-based branching
Single development branch
Infrastructure as code
AWS CloudFormation
Azure ARM templates
Continuous Integration
Setting up Jenkins
Continuous Integration example
Continuous Delivery
Continuous Delivery versus Continuous Deployment
Why Continuous Delivery?
Challenges with Continuous Delivery
Continuous Delivery example
Cloud support for CI and CD
Summary
Questions
7. Securing Cloud-Based Applications
Structure
Objectives
Security in Cloud
Securing Infrastructure
Monitoring infrastructure changes
Securing resources in virtual networks
Automated deployment of resources
Additional security tools
Common threats and defence
HTTPS - Securing your APIs
Encryption
DDOS attack
Code and SQL Injections
Understanding security with an example
An E-Commerce example
Summary
Questions
8. Scalability
Structure
Objectives
Introduction to scalability
Cloud-based scalability
Compute scalability
Database scalability
Storage scalability
Design for scalability
An example implementation of a scalable application
Summary
Questions
9. Monitoring, Alerting, and Reporting
Structure
Objectives
Need for monitoring
Cloud-based monitoring, alerting, and reporting
Amazon CloudWatch
Step-by-step example of CloudWatch
Azure Monitor
Cost management in Cloud
Application Logs Management
Prometheus
Prometheus server
Pushgateway
Alert Manager
ELK Stack
Elastic Search
Logstash
Kibana
Additional tools for logs management
Summary
Questions
10. Containers
Structure
Objectives
Introduction to containers
Docker
Installing Docker
Docker commands
Docker volumes
Kubernetes
What is container orchestration?
Kubernetes architecture
Master node
Worker node
Example – Container-based application
Creating an application with Docker
Managing with Kubernetes
Summary
Questions
11. Serverless Computing
Structure
Objectives
Serverless Computing – An Introduction
Functions as a Service
Advantages of FaaS
Disadvantages of FaaS
AWS Lambda Example
Hello-World function example
AWS Lambda with API Gateway
Advanced examples for serverless computing
Summary
Questions
12. Best Practices for Developing Cloud-Native Applications
Structure
Objectives
Revisiting Cloud-Native development
Cloud-native development
12-factor application
Factor 1 – Codebase
Factor 2 – Dependencies
Factor 3 – Config
Factor 4 – Backing services
Factor 5 – Build, release, run
Factor 6 – Processes
Factor 7 – Port binding
Factor 8 – Concurrency
Factor 9 – Disposability
Factor 10 – Dev/prod parity
Factor 11 – Logs
Factor 12 – Admin processes
Common design patterns for Cloud-native applications
SAGA pattern
Choreography based SAGA
Orchestration-based SAGA
Choreography versus orchestrations
CQRS - Command Query Responsibility Segregation
Distributed tracing
Strangler pattern
Service Registry and Discovery Pattern
API Gateway Routing and Aggregator Pattern
Blue-Green deployment pattern
Sidecar pattern
Service mesh
Bulkhead pattern
Circuit breaker pattern
Summary
Questions
Index
The book hasn't received reviews yet.