OBJECTIVES
At the end of this course, the student should be able to
• Explain the 12 factor methodology and the concepts of cloud native development
• Design serverless applications
• Understand and tackle the challenges of distributed scale applications
• Build Java applications for deployment in the cloud
AUDIENCE
Developers, Designers and Solution Architects.
DURATION
3 days
Outline for Fundamentals of Cloud Native Java Development Training
Chapter 1. The 12 Factor application
- Introduction to the 12 Factor Methodology
- Overview of the 12 Factors
Chapter 2. Introduction to cloud
- NIST Cloud Definition
- IaaS, PaaS and SaaS
- Drivers an Benefits of Cloud Computing
- Monolith vs. Modular Applicationse. Containerization and Microservices
Chapter 3. Cloud Native
- What is Cloud Native?
- Cloud Native Delivery Model
- Strengths and Weaknesses of Cloud Native Applications
- Examples of Cloud Native Application Services
- Lab – Exploring PaaS Services in AWS
Chapter 4. Security in the Cloud
- Shared responsibility Model
- Securing the Cloud Account
- Securing Applications by Design
- Lab - Managing Account Security in AWS
Chapter 5. Server-less Application Design
- What is Server-less Architecture?
- Event Triggered Computing
- Examples of Server-less Application Services
- Lab – Exploring Server-less Features of AWS
Chapter 6. Storing Data in Cloud native Applications
- Web-scale Application Storage
- Storing Relational Data
- Storing Non-Relational Data
- Caching and Content Delivery
- Lab – Storing Data in AWS
Chapter 7. Scaling Distributed Web-scale Applications
- Making and Application Scalable
- Building Disposable Services
- Horizontal vs. Vertical Scaling
- De-coupling Servicese.
- Utilizing Load-Balancers
- Utilizing Queues
- Auto-scaling
- Microservice Identification and Design Patterns
- Building Microservices in the Cloudi. Lab – Scaling Services in AWS
Chapter 8. Challenges of Distributed Web-scale Applications
- Network Latency
- Eventual Consistency
- Database Scaling and Sharding
- Multi-regional Application Deployment
- Lab – Multi-regional Services in AWS
Chapter 9. Managing the Cloud via the API
- Introduction to Cloud Management via API
- AWS SDK for Java
- Overview of the Services Available for Java Developers
- Lab - Configuring Your Environment to Work with AWS
- Lab - Connecting to AWS
Chapter 10. Testing Cloud Applications
- Traditional Monolith Testing
- Testing Modular Applications
- Isolated Testingd
- Transient Testing
Chapter 11. Building Applications Java application in the Cloud
- Migrating Monolith Applications to the Cloud
- Building Modular Applications in the Cloud
- Deploy a Simple Web Front-end Java App in the AWS
- Making Your Application Highly Available
- Lab – Deploying an Application and Making it Highly Available
Chapter 12. Deploying Back-end Services
- Deploy a Back-end Service with a Relational Database
- Deploy a Queue for the Back-end Service
- Scaling the Back-end
- Lab – Deploying a Back-end Service with an SQL DB
Chapter 13. De-coupling the Data
- Adding Blob Storage for Images
- Utilizing Content Delivery
- Utilizing NoSQL
- Implementing Caching
- Lab – Utilizing Blob Storage for Static Files
- Lab – Utilizing NoSQL
- Lab – Improving Performance with Caching