Code Monkey home page Code Monkey logo

java-on-aws's Introduction

Java on AWS Immersion Day

Java on AWS

This project contains the supporting code for the Java on AWS Immersion Day. You can find the instructions for the hands-on lab here.

Overview

In this workshop you will learn how to build cloud-native Java applications, best practices and performance optimizations techniques. You will also learn how to migrate your existing Java application to container services such as AWS AppRunner, Amazon ECS and Amazon EKS or how to to run them as Serverless AWS Lambda functions. Below you can find an overview of the components and services involved.

Java on AWS

Modules and paths

The workshop is structured in multiple independent modules that can be chosen in any kind of order - with a few exceptions that mention a prerequisite of another module. While you can feel free to chose the path to your own preferences, we prepared three example paths through this workshop based on your experience:

Java on AWS

Containerize and run locally (30 minutes)

  • Build a container image locally using Docker.
  • Run and test your Java application container locally and optimize your Dockerfile with a multi-stage build.
  • Push container images to Amazon Elastic Container Registry (ECR).

Deploy a container image to AWS App Runner (30 minutes)

  • Deploy your Java application in the cloud.
  • Use the AWS Console for the deployment.
  • Test your Java app running on AWS App Runner.

Deploy a container image to Amazon ECS (30 minutes)

  • Deploy your Java application in the cloud with more infrastructure control.
  • Use the AWS Console for the deployment.
  • Test your Java app running on Amazon ECS.

Deploy a container image to Amazon EKS (60 minutes)

  • Create a Kubernetes Cluster on AWS using the AWS CLI
  • Deploy and test the Java application with Amazon EKS.

Optimize Containers (30 minutes)

  • Optimize your Dockerfile, build your own optimized JVM or go native with GraalVM

Deploy to AWS Lambda (60 minutes)

  • Migrate your existing Java application to run on AWS Lambda
  • Leverage AWS Lambda SnapStart to drastically reduce Cold-Starts
  • Build a new event driven AWS Lambda function in plain Java.

ARM64 with AWS Graviton (30 minutes)

  • AWS Graviton processors are designed by AWS to deliver the best price performance for your cloud workloads.
  • Understand how to build multi-arch images and leverage AWS Graviton on different compute platforms.

Observability (60+ minutes)

  • Leverage native AWS services for logging, metrics & tracing.
  • Setting up AWS Distro for OpenTelemetry Collector.
  • Use manual and automatic instrumentation

CI/CD/Gitops (60+ minutes)

  • Push you source code to AWS CodeCommit.
  • Create a Continuous Integration (CI) pipeline with AWS CodePipeline, AWS CodeCommit and AWS CodeBuild.
  • Leverage CodeDeploy for automatically updating your Amazon ECS Service
  • User a GitOps approach with Flux to deploy to Amazon EKS
  • Automatically build multi-arch container images (x86 + arm)

Modern development workflow (20 minutes)

  • Leverage the power of Generative AI on AWS
  • Use Amazon CodeWhisperer in your development workflow.

Security

See CONTRIBUTING for more information.

License

This library is licensed under the MIT-0 License. See the LICENSE file.

java-on-aws's People

Contributors

dependabot[bot] avatar ybezsonov avatar deki avatar smoell avatar maschnetwork avatar machafer avatar yagrxu avatar amazon-auto avatar

Recommend Projects

  • React photo React

    A declarative, efficient, and flexible JavaScript library for building user interfaces.

  • Vue.js photo Vue.js

    ๐Ÿ–– Vue.js is a progressive, incrementally-adoptable JavaScript framework for building UI on the web.

  • Typescript photo Typescript

    TypeScript is a superset of JavaScript that compiles to clean JavaScript output.

  • TensorFlow photo TensorFlow

    An Open Source Machine Learning Framework for Everyone

  • Django photo Django

    The Web framework for perfectionists with deadlines.

  • D3 photo D3

    Bring data to life with SVG, Canvas and HTML. ๐Ÿ“Š๐Ÿ“ˆ๐ŸŽ‰

Recommend Topics

  • javascript

    JavaScript (JS) is a lightweight interpreted programming language with first-class functions.

  • web

    Some thing interesting about web. New door for the world.

  • server

    A server is a program made to process requests and deliver data to clients.

  • Machine learning

    Machine learning is a way of modeling and interpreting data that allows a piece of software to respond intelligently.

  • Game

    Some thing interesting about game, make everyone happy.

Recommend Org

  • Facebook photo Facebook

    We are working to build community through open source technology. NB: members must have two-factor auth.

  • Microsoft photo Microsoft

    Open source projects and samples from Microsoft.

  • Google photo Google

    Google โค๏ธ Open Source for everyone.

  • D3 photo D3

    Data-Driven Documents codes.