The document profiles Nemanja Kostic, a Serbian solution architect with over 20 years of experience designing and implementing commercial software solutions. It highlights his expertise in AWS cloud architectures, serverless services, microservices, and Domain Driven Design. The document also provides an overview of Java development resources on AWS, including services for running, developing, and integrating Java applications with AWS. It demonstrates examples like AWS Elastic Beanstalk, AWS Lambda, AWS CDK, and Amazon CodeGuru.
2. NEMANJA KOSTIC
1978 - Serbia
English / German / Serbian
MSc Computer Science
Faculty of Electrical Engineering,
University of Belgrade
20+ years of professional experience in
designing and implementing commercial
software solutions. Passionate technologist
interested in AWS Cloud Architectures,
Serverless DevOps, Microservices, Domain
Driven Design and Event-Based Systems.
SOLUTION ARCHITECTURE
AWS cloud architectures / serverless
services / microservices architectures /
Domain Driven Design
ENTERPRISE ARCHITECTURE
TOGAF domains: Application
Architecture and Infrastructure
Architecture
PROGRAMMING
Java / Python / Node.js / Typescript /
React Native / JAMstack
AWS CONSULTANT
AWS Solution Architect
ex-AWS (4 years as Senior Solution Architect)
9 x AWS certified
20+ years of IT experience
Focus on Serverless, DevOps, Microservices
https://nemanjakostic.ch
https://linkedin.com/in/nemanjakostic
https://twitter.com/koletinja
www.1way2cloud.com
3. Webinars in Serbian:
• Ep.1 - Getting Started on AWS
https://bit.ly/2OqFnyi
• Ep.2 - Data Storage on AWS
https://bit.ly/2qWBpA3
• Ep.3 - Planning Migrations to AWS
https://bit.ly/2rBESEq
• Ep.4 - Containers on AWS
https://bit.ly/2YgfEtM
• Ep.5 - Securing your application with Amazon
Cognito and authentication at the Edge
-- don’t have the link
5. Users
Web
Load Balancer
Application
Load Balancer
Web
server 1
Web
server 2
Web
server 3
Web
server 4
DB
App
server 1
App
server 2
App
server 3
App
server 4
Sample Java Web Application Architecture mapped to AWS
External
Application
Load Balancer
EC2 instance
Amazon
RDS
Internal
Application
Load Balancer
EC2 instance EC2 instance EC2 instance
Web
server 1
Web
server 2
Web
server 3
Web
server 4
App
server 1
App
server 2
App
server 3
App
server 4
EC2 instance EC2 instance EC2 instance EC2 instance
region
virtual private cloud
AWS cloud
AWS
DMS + SCT
(live migrations)
AWS SMS
(VMware/HyperV
to AMI)
6. Users
Web
Load Balancer
Application
Load Balancer
Web
server 1
Web
server 2
Web
server 3
Web
server 4
DB
App
server 1
App
server 2
App
server 3
App
server 4
Sample Java Web Application Architecture mapped to
serverless AWS services
region
AWS cloud
7. AWS & Java
Amazon Corretto
(v16, v15, v11, v8)
No-cost, production-ready distribution of the Open Java
Development Kit (OpenJDK). Corretto is certified as
compatible with the Java SE standard and is used
internally at Amazon for many production services.
James Gosling
Distinguished Engineer @AWS
12. AWS services that can run Java apps
AWS Elastic Beanstalk
AWS Lambda
( + Lambda Power Tools, https://github.com/awslabs/aws-lambda-powertools-java)
Amazon EC2
Amazon EKS
Amazon ECS
13. AWS services that support development in Java
Amazon CodeGuru
AWS SDK for Java
AWS IoT Device SDK for Java
AWS Toolkit for Eclipse
AWS Toolkit for IntelliJ
AWS CodeArtifact
AWS CDK
14. AWS integration with popular Java frameworks
Micronaut
Quarkus
Deploy a Micronaut application to AWS Lambda Java 11 Runtime
Deploy Quarkus to AWS Lambda Java 11 Runtime
https://guides.micronaut.io/mn-application-aws-lambda-java11/guide/index.html
https://quarkus.io/guides/amazon-lambda
15. End-to-end Java development in AWS
Setup IDE
Create AWS
Environment
Write Java
code
Test
Review
Code
execution
AWS Elastic Beanstalk
AWS Lambda
Amazon EC2 Amazon EKS
Amazon ECS
16. AWS Cloud9
• Cloud-based integrated development environment (IDE)
• Let’s you write, run, and debug your code with just a
browser
• Share your environment with your team to pair program in
real time
• Direct terminal access to AWS
• Provides great serverless experience: enables local
testing and preconfigures the development environment
with all SDKs, libraries, and plugins
18. AWS CDK
• Open-source framework to define cloud infrastructure in
TypeScript/JS/Python/Java/C#
• Provides library of higher-level resource types (“construct”
classes) that haveAWS best practices built in by default,
packaged as npm modules
• Provisions resources with CloudFormation
• Supports all CloudFormation resource types
https://awslabs.github.io/aws-cdk
21. AWS Elastic Beanstalk
• Preconfigured infrastructure:
• Single-instance (dev, low cost)
• Load-balanced, Auto Scaling (production)
• Web and worker tiers
• Elastic Beanstalk provisions necessary
infrastructure resources, such as the
load balancer, Auto Scaling group,
security groups, database (optional), etc.
• Provides a unique domain name for your
application
(e.g., yourapp.elasticbeanstalk.com)
22. AWS Elastic Beanstalk
Your code
Host
Operating system
Language interpreter
Application server
HTTP server
24. Amazon CodeGuru
• CodeGuru leverages machine learning models and best practices informed by
years of experience and data from Amazon.com and AWS to find wide ranging
issues in source code such as use of un-sanitized inputs, inappropriate handling
of sensitive data, thread safety issues, and deviation from AWS best practices.
• CodeGuru includes:
Automated code reviews with intelligent recommendations that even junior
staff can follow
Code reviews seamlessly integrate with pull request workflow or performed
anytime on-demand
Detection and optimization of the most expensive line of code
Immediate identification of application inefficiencies running in a production