Managing and provisioning various cloud services is as complex as writing application Java code. In contrast to application code, the cloud infrastructure is highly reusable.
This workshop is a continuous review of ready-to-use templates, examples, and patterns of serverless applications on Amazon Web Services, focusing on serverless. We will use Infrastructure as Java Code: AWS Cloud Development Kit (CDK v2) for Java and use Maven repositories to quickly build and share the code.
In this workshop, I won't implement each application from scratch, rather than walk through already prepared ready-to-use examples and templates reflecting common patterns and adjust them to more specific use cases.
All changes, attendees' requests, and suggestions will be committed to a git repository in real-time.
Basic AWS and Java SE / Java EE / Jakarta EE / MicroProfile experience (I will use Java concepts to explain FaaS, HA, functions, triggers, events, containers, metrics, configuration).
After a a short introduction to AWS basics (VPC, IAM, accounts, storage and organizations), we will cover the following templates and use cases:
- Continuous deployment with AWS Cloud Development Kit (CDK) v2
- A reusable AWS ECS Fargate construct with Quarkus, Docker image creation and push
- MicroProfile (e.g. Quarkus) microservices on ECS Fargate with private DNS names with Route 53
- ECS Fargate application behind an Application Load Balancer with end to end SSL encryption and automated certificate handling
- ECS Fargate application on Quarkus accessing Aurora DB for PostgreSQL with secrets
- Scheduled / cron jobs for ECS Fargate and Lambda
- Scheduled tasks with ECS Fargate
- Serverless, continuous deployment with CodePipeline, GitHub, CDK, CodePipeline and CodeDeploy (GitOps, self-provisioned runtimes)
- Saving costs with EC 2 Spot instances for batch, build and with Fargate
- Running microservices and AWS Lambdas in isolated VPCs
- MicroProfile / AWS Lambda application accessing Aurora DB via JDBC
- Using serverless, AWS managed Kafka with MicroProfile applications
- Metrics and alerts for MicroProfile applications with CloudWatch
- Using JWT, OIDC with MicroProfile applications and AWS Cognito
- Automated provisioning of VPN and Bastion hosts for debugging
- Automated DNS and SSL certificates handling
- Native images with GraalVM on AWS
- featuring: Quarkus, Helidon, Micronaut and plain Java SE
- The agenda is based on questions from projects, conferences, workshops and is still in progress
- ...and most popular questions, topics and technologies from airhacks.tv
In this advanced workshop I will discuss and implement cloud native Java / MicroProfile applications in serverless AWS cloud. As a reference, you will get a GIT repository with all snippets and solutions, as well as prepared sample applications.
A developer laptop with pre-installed Java 11 (AWS Lambda currently only runs on Corretto 11), GIT-client, AWS CLI, and Maven 3 is required to run the examples. You can run the examples if you like, or "hack" along with me, but taking notes is perfectly viable as well.
I will use my AWS account to live deploy the applications and explain various AWS services.
I/we will spend 80% of the time in code--it also highly depends on your questions.
Feel free to contact me / register via email: workshops[-AT-] adam-bien.com