In this workshop we will develop set of minimalistic micro services with plain Java SE, MicroProfile,Jakarta EE, PostgreSQL and Web Component-based SPA.
On our journey through the various options we will consider the offerings from the "cheapest" to the most suitable, most productive, most convenient AWS service.
I will also discuss the impact of local Java CPU and memory optimizations on the operational AWS costs as well as the observability, complexity, productivity, availability, performance, security and maintainability.
We are going to consider virtual machines, containers, kubernetes, serverless services, (serverless) databases, lambda functions and various "higher level" AWS services.
Java EE / Jakarta EE / MicroProfile knowledge (I will use Java EE concepts to explain deployments, containers, metrics, configuration).
- private vs. public clouds
- the killer use cases for private clouds
- the killer use cases for public clouds
- costs, productivity, maintainability trade-offs
- modernization, refactorings and "lift-and-shift"
- how to start / AWS organizations
- network / vpc survival guide
- private and public networks and routing, NAT gateways and internet gateways
- CI/CD pipelines with AWS CodeBuild, CodeDeploy and CodePipeline
- logging and debugging with CloudWatch
- notifications with Amazon Simple Notification Service (SNS)
- using API gateways in the clouds
- saving money with EC2 ARM CPUs / running Java on ARM
- saving money with spot instances
- various approaches to microservice configuration
- security and encryption in the cloud
- authentication and authorization in the clouds
- on-premise, colocation vs. public cloud deployment
- load balancing in the clouds
- optimizing for deployment speed, performance, startup-time and RAM
- Java deployments to: Lightsail,Beanstalk, ECS / Fargate, EKS, AWS Lambda
- Using recent AWS services like e.g. AWS App Runner
- Monitoring with CloudTrail (...)
- Authentication and Authorization with Cognito
- encryption and certificate management
- running apache kafka in the clouds
- running popular databases in the clouds
- Hosting static assets (SPAs, PWAs) on S3
- Using S3, RDS, Aurora, DynamoDB (...) as persistence layer
- interacting with AWS services from Java
- Infrastructure as Code (IaC) with CloudFormation, aws CLI, opensource AWS tools and Terraform
- Using Java Cloud Development Kit (CDK) for infrastructure provisioning
- CloudFormation vs. Terraform
- TBD (agenda is going to be expanded with current services, airhacks.tv questions etc.)
- if time allows: chaos engineering, HA, resiliency, testing
- ...and most popular questions, topics and technologies from airhacks.tv
In this advanced workshop I would like to demonstrate use cases to run cloud native Java / Jakarta EE / MicroProfile applications in public 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 16(+), GIT-client 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 60% 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