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