SlideShare a Scribd company logo
1 of 82
DEVELOPING IN THE
CLOUD
Ryan Cuprak
Developing in the Cloud
Agenda
Continuous
Integration in Cloud
Java EE Testing
Why Develop in the Cloud?
Topics Covered Today
Version Control
Continuous
Integration
Issue
Tracking/Proces
s
Integration
Testing
Java EE
Why Develop in the Cloud?
• Processes are audited by customers (GMP)
• All code changes are tracked
• Rigorous issue life-cycle
• Dashboard for tracking development progress
• Continuous integration setup:
• Unit tests/Integration tests/system tests
• Database setup
• Automated process for testing deployment
Work Development Processes
I want this for home!
Why Develop in the Cloud?
Continuous Integration Challenges
Hardware Software
Maintenance/Sec
urity
Configuration
Networking Cost
Why Develop in the Cloud?
• Constructing a robust development environment is:
• Expensive
• Hard
• Time consuming
• Cloud services simplifies CI environment:
• Easy to setup…
• Relatively cheap…
• Low maintenance
Cloud Benefits
Developing in the Cloud
• Self-Hosted in cloud
• Create VMs and install developer tools (version control/bug
trackers/etc.)
• Manage all aspects of configuration/security
• Costs: data storage and usage
• Vendor Hosted in cloud
• Vendor provides hosted solution – fully configured/managed.
• Little maintenance or configuration
• Costs: monthly fees, storage and usage
• Hybrid
• Some tools are hosted locally (example: code repository)
Cloud Models
Why Develop in the Cloud?
• Minimize time spent configuring/managing tools.
• Scale projects as resource needs change.
• Easily support distributed development.
• Use pre-configured integrated tool stack.
• Build/test for other platforms requiring special
hardware/tools.
• iOS
• Windows mobile
• Scalability testing
• Easily create a ‘clean environment’
Benefits of Cloud Development
Developing in the Cloud
Pieces of the Puzzle
Version Control
Continuous
Integration
Issue
Management
Test
Environment(s)
Developing in the Cloud
Vendor Price (monthly)
github $0-$50
BitBucket $0-$200
Java.net Free
Sourceforge Free
Beanstalk $15-$200
CodePlex Free
Version Control
* github and bitbucket are the leading vendors.
Developing in the Cloud
Vendor Opensource Paid (monthly)
Atlassian N/A $10-$1000
CloudBees N/A $60-$200
Travis CI Free $129-$489
AppVeyor None $19-$99
Shippable Free $12-Custom
CodeShip Free $49-$1999
Semaphore Free $0-$199
drone.io Free $25-$49
Snap CI Free $0-$180
Continuous Integration Cloud Vendors
Developing in the Cloud
Vendor Monthly Price
JIRA $10-$1000
YouTrack Free-$500
BugHost $29-$159
Bontq $9-$149
FogBugz $18-$540
CloudForge $2-$10 (per user)
devZing (Bugzilla hosting) $15
Issue Trackers
Many more…
Developing in the Cloud
• Old Java standbys:
• java.net
• sourceforge.net
• Project type: open source code
• Features:
• Wikis
• Blogging
• Issue tracking
• No continuous integration support
Old Services
Developing in the Cloud
Considerations
Issue
Tracking
Continuous
Integration
Version
Control
How do these integrate?
Developing in the Cloud
• Open source or private?
• Paid or free account?
• Use integrated issue system or separate?
• Integration with tools.
• Ability to customize environment
• Operating systems
• Databases
• Test installation scripts
• Data migrations
Additional Considerations
Developing in the Cloud
• Private projects
• Ability to switch from private to public and vice versa
• Version control: git
• Continuous integration Amazon
• Projects:
• Maven/Gradle builds
• Junit/Jasmine for unit testing
• NetBeans
• IDE
• IntelliJ
• NetBeans
• SourceTree
• xCode
Requirements
Developing in the Cloud
Cloud services:
• Github – version control ($7 / month)
• Unlimited public repositories
• 5 private repositories
• Bamboo – Continuous Integration ($10 / month)
• 10 jobs / 1 agent
• Builds are executing on AWS EC2 instances.
• JIRA – issue tracking ($10 / month)
• 10 users
• Amazon Web Services
• VMs/databases
Total cost: $27 / month (excluding AWS usage).
What cloud services did I choose?
Developing in the Cloud
• Jenkins
• More popular than Bamboo.
• Easier to configure than Bamboo.
• Free
• Large pool of plugins (1000+)
• Bamboo
• Integrated with JIRA.
• Automated merging (git/mercurial)
• CI & CD pipelines
• Build agent
• Requires JIRA for cloud account
Bamboo versus Jenkins
Developing in the Cloud
Puzzle Pieces
Developing in the Cloud
Getting Started
Create github
account
Create JIRA/Bamboo
account
Create AWS Account
http://tinyurl.com/leo7rop
http://aws.amazon.com
http://github.com
Developing in the Cloud
Amazon Web Services (AWS)
Developing in the Cloud
Amazon Web Services
EC2
RDS
VPC
Developing in the Cloud
• EC2 – Elastic Cloud Computing
• VMs == AMI (Amazon Machine Image)
AWS Core Concepts – EC2 Prices Sampling
Name vCPU ECU Memory
(GiB)
Storage Hourly
Fee
t2.micro 1 Variable 1 EBS Only $0.013
t2.small 1 Variable 2 EBS Only $0.026
t2.medium 1 Variable 4 EBS Only $0.052
m3.medium 3 3.75 1 x 4 SSD $0.070
m3.large 2 6.5 7.5 1 x 32
SSD
$0.140
m3.xlarge 4 13 15 2 x 40
SSD
$0.280
m2.2xlarge 8 26 30 2 x 80 $0.560
Developing in the Cloud
• Amazon provides a large library of AMIs.
• Bamboo has pre-configured AMIs with Bamboo agent
installed.
• Instances are accessed via ssh (download keys)
• Pick data center when launching an instance.
AWS Core Concepts – EC2
Developing in the Cloud
• VPC = Virtual Private Cloud
• Complete control over virtual networking environment:
• IP address range
• Subnets
• Routing tables
• Network gateways
• VPC can be connected to a corporate data center
• AMI instances can be launched into a VPC.
• Databases to a VPC.
AWS Core Concepts - VPC
Developing in the Cloud
AWS Core Concepts – VPC Wizard
Developing in the Cloud
AWS Core Concepts – VPC Wizard
Developing in the Cloud
AWS Core Concepts – Wizard VPC
Developing in the Cloud
AWS Core Concepts – Wizard VPC
Developing in the Cloud
AWS Core Concepts – Wizard VPC
Developing in the Cloud
• Amazon RDS – Amazon Relational Database Service
• Supported databases:
• MySQL
• Oracle
• Microsoft SQL Server
• PostgreSQL
• Provisioned using SSD, IOPS Storage, Magnetic.
• Automated failover, backups, multiple-zones, mirroring
• Can attach to a VPC.
Amazon RDS
Developing in the Cloud
Amazon RDS
Developing in the Cloud
Amazon RDS
Developing in the Cloud
Amazon RDS
Developing in the Cloud
Amazon RDS
Developing in the Cloud
• After database starts-up, log into a VM.
• Run: “sudo yum postgresql” to install PostgreSQL client.
Amazon RDS
Developing in the Cloud
Term Definition
Project Provides reporting across all plans in a project.
Plan Specifies default repository, how build is triggered,
dependencies between other plans, notifications, permissions,
definition of plan variables.
Stage Processes its jobs in parallel on multiple agents. Can produce
artifacts for another stage.
Job Processes a series of one or more tasks that are run
sequentially on the same agent. Controls which tasks are
performed. Defines artifacts that the build will produce.
Task Small discrete unit of work (code checkout, execute Maven
goal, etc.). Is run sequentially within a job on a Bamboo
working directory.
Bamboo Core Concepts
Developing in the Cloud
Bamboo Concepts
Plan
Stage Stage Stage
Job
Task
Task
Job
Task
Job
Task
Task
Task
Job
Task
Job
Task
Developing in the Cloud
Bamboo
Developing in the Cloud
Bamboo
Developing in the Cloud
Bamboo – Configure Plan
Developing in the Cloud
Bamboo – Configure Plan
Developing in the Cloud
Bamboo – Configure Tasks
Developing in the Cloud
Bamboo – Plan Configuration
These environment variables are passed to the JVM.
Developing in the Cloud
Bamboo – test-persistence.xml – using environment properties
Developing in the Cloud
Testing locally /.m2/settings.xml
Developing in the Cloud
Bamboo – Configure Tasks
Developing in the Cloud
• Bamboo is central management server which
schedules/coordinates all work. With cloud, Bamboo
management server is hosted at Atlassian.
• Bamboo Agent – a service that can run build jobs.
• Elastic Agent – a remote Bamboo agent that runs on
Amazon EC2.
• Capability – feature of an agent, such as JDK installed,
version of Maven available, etc.
Bamboo Overview
Developing in the Cloud
• Bamboo builds
Bamboo - Building
Running Bamboo Agent
git pull
Run job
Build and
test
Developing in the Cloud
AMI
Developing in the Cloud
Customizing Bamboo AMI
Find Bambo AMI
Launch instance
Customize instance
Take Snapshot
Launch customized instance
Developing in the Cloud
• Plugins available for IDEs (NetBeans/IntelliJ/Eclipse)
• SourceTree integration
• Benefits of integration
• git pushes trigger issue state transitions.
JIRA Integration
Developing in the Cloud
JIRA Integration - Configuration
Developing in the Cloud
JIRA Integration – Configuration github
Developing in the Cloud
JIRA Integration – Configuration github
Developing in the Cloud
JIRA Integration – Configuration
Developing in the Cloud
JIRA Integration - NetBeans
Developing in the Cloud
Testing challenges:
• RESTful webservices
• WebSocket endpoints
• Security
• Scalability
• JavaScript code
• JavaScript code using AJAX (with server)
• Real data, bad data, etc.
Testing Java EE
Developing in the Cloud
Example Test Environment (VPC)
App Server A
App Server B
App Server C
Load Balacner
Test Client A
Test Client B
Test Client C
AWS
Developing in the Cloud
• Bamboo + AWS = full testing in the cloud.
• Create custom environments for simulating a cluster.
• Test load balancing setup.
• Stress test server under heavy load.
• Testing: unit testing, integration testing, load testing.
Java EE + Bamboo + AWS
Developing in the Cloud
• Project from JBoss.
• Unit testing in the container (GlassFish/WebLogic/etc.)
What is Arquillian?
Container
Java EE app
server
Servlet Container
Weld SE
ArquillianTest Case
Unit testing framework
(Junit/TestNG)
ShrinkWrap
Developing in the Cloud
Java EE Application - ctjava
ctcore
ctweb migrate ctadmin
Java EE 7 Application – Maven Based ctmobile
https://github.com/rcuprak/ctjava.git
Developing in the Cloud
Project Overview
• Java EE 7 web application
• GlassFish 4.1
• PostgreSQL
• Maven based build
• Arquillian unit testing
Setup
• Modularized architecture
• Data model and DAOs in ctcore
• Unit and integration testing
Java EE Application - ctjava
Developing in the Cloud
Testing ctcore - Overview
• Contains data model and DAOs.
• No EJBs
• @Dao and @DefaultDatabase are CDI Qualifiers.
Developing in the Cloud
Testing ctcore – Setup for DAO testing
Developing in the Cloud
Testing ctcore – Configuring Weld
Developing in the Cloud
Testing ctcore – Test Implementation
Developing in the Cloud
Testing ctcore – pom.xml dependencies
Dependencies:
• Weld
• EclipseLink
• PostgreSQL
Scope: Test
Developing in the Cloud
Testing ctweb – Integration Testing with EJBs
Test runs in embedded GlassFish container.
Developing in the Cloud
Testing ctweb – Integration Testing with EJBs
Developing in the Cloud
• Testing RESTful webservices and WebSockets easier
with Arquillian.
• Best practices:
• Test API first using Java
• Test using AJAX using Jasmine + Arquillian +
REST & WebSockets
Developing in the Cloud
• Java API for WebSockets (JSR-224)
• High level declarative API for WebSocket
• API similar to JavaScript WebSocket API
• Both client and server-side
• Important pieces:
• Annotations for annotated endpoints:
@ServerEndpoint, @OnOpen, @OnClose,
@OnMessage, @OnError
• Session object – used to send messages.
• RemoteEndpoint object – used to sent messages to a client
• MessageHandler – interface used by programmatic endpoints.
• Pluggable and extensible
Encoders, decoders, sub-protocols
JAX-WS WebSockets Review
Developing in the Cloud
• JAX-RS 2.0 is the REST development API for Java
• Major upgrade with Java EE 7. (JSR-339)
• Client API, Aysnc, Validation, Filters/Handlers, Interceptors, and
Content Negotiation.
• Server and client
• Integrates with JAXB and Bean Validation
• Annotation based, declarative
• @Path, @GET, @POST, @PUT, @DELETE,
• Pluggable and extensible.
JAX-RS- RS Review
Developing in the Cloud
Testing ctweb – Registration Service Test Setup
Developing in the Cloud
Testing ctweb – Registration Service Test -Java
Developing in the Cloud
Testing ctweb – Registration Service Test (Setup) - JavaScript
Developing in the Cloud
Testing ctweb – Registration Service Test - JavaScript
Developing in the Cloud
Testing ctweb – Registration Service Test (pom) - JavaScript
Developing in the Cloud
Testing ctweb – WebSockets
Developing in the Cloud
Testing ctweb – WebSockets
Developing in the Cloud
Cloud tools + Java EE = Garage Startup!
Conclusion
Q&A
Twitter: ctjava
Email: ryan.cuprak@3ds.com
Blog: http://cuprak.info
Contact

More Related Content

What's hot

Containerless in the Cloud with AWS Lambda
Containerless in the Cloud with AWS LambdaContainerless in the Cloud with AWS Lambda
Containerless in the Cloud with AWS LambdaRyan Cuprak
 
OpenNTF Domino API (ODA): Super-Charging Domino Development
OpenNTF Domino API (ODA): Super-Charging Domino DevelopmentOpenNTF Domino API (ODA): Super-Charging Domino Development
OpenNTF Domino API (ODA): Super-Charging Domino DevelopmentPaul Withers
 
Conquering AngularJS Limitations
Conquering AngularJS LimitationsConquering AngularJS Limitations
Conquering AngularJS LimitationsValeri Karpov
 
Engage 2015 - 10 Mistakes You and Every XPages Developer Make. Yes, I said YOU!
Engage 2015 - 10 Mistakes You and Every XPages Developer Make. Yes, I said YOU!Engage 2015 - 10 Mistakes You and Every XPages Developer Make. Yes, I said YOU!
Engage 2015 - 10 Mistakes You and Every XPages Developer Make. Yes, I said YOU!Serdar Basegmez
 
Continuous Integration and Deployment Best Practices on AWS
Continuous Integration and Deployment Best Practices on AWSContinuous Integration and Deployment Best Practices on AWS
Continuous Integration and Deployment Best Practices on AWSDanilo Poccia
 
IBM Think Session 8598 Domino and JavaScript Development MasterClass
IBM Think Session 8598 Domino and JavaScript Development MasterClassIBM Think Session 8598 Domino and JavaScript Development MasterClass
IBM Think Session 8598 Domino and JavaScript Development MasterClassPaul Withers
 
AWS Developer Fundamentals
AWS Developer FundamentalsAWS Developer Fundamentals
AWS Developer FundamentalsJosh Padnick
 
How to Use OWASP Security Logging
How to Use OWASP Security LoggingHow to Use OWASP Security Logging
How to Use OWASP Security LoggingMilton Smith
 
Faster Java EE Builds with Gradle
Faster Java EE Builds with GradleFaster Java EE Builds with Gradle
Faster Java EE Builds with GradleRyan Cuprak
 
Microservices on Application Container Cloud Service
Microservices on Application Container Cloud ServiceMicroservices on Application Container Cloud Service
Microservices on Application Container Cloud ServiceMaarten Smeets
 
12-factor-jruby
12-factor-jruby12-factor-jruby
12-factor-jrubyJoe Kutner
 
Scala play-framework
Scala play-frameworkScala play-framework
Scala play-frameworkAbdhesh Kumar
 
CQRS Evolved - CQRS + Akka.NET
CQRS Evolved - CQRS + Akka.NETCQRS Evolved - CQRS + Akka.NET
CQRS Evolved - CQRS + Akka.NETDavid Hoerster
 
Infrastructure as code
Infrastructure as codeInfrastructure as code
Infrastructure as codeAxel Quack
 
Java EE 8 Update
Java EE 8 UpdateJava EE 8 Update
Java EE 8 UpdateRyan Cuprak
 
Java 8 in Anger (JavaOne)
Java 8 in Anger (JavaOne)Java 8 in Anger (JavaOne)
Java 8 in Anger (JavaOne)Trisha Gee
 
Introduction to Play Framework
Introduction to Play FrameworkIntroduction to Play Framework
Introduction to Play FrameworkWarren Zhou
 
DevOps, Continuous Integration and Deployment on AWS: Putting Money Back into...
DevOps, Continuous Integration and Deployment on AWS: Putting Money Back into...DevOps, Continuous Integration and Deployment on AWS: Putting Money Back into...
DevOps, Continuous Integration and Deployment on AWS: Putting Money Back into...Amazon Web Services
 
Application Lifecycle Management in a Serverless World
Application Lifecycle Management in a Serverless WorldApplication Lifecycle Management in a Serverless World
Application Lifecycle Management in a Serverless WorldAmazon Web Services
 

What's hot (20)

Containerless in the Cloud with AWS Lambda
Containerless in the Cloud with AWS LambdaContainerless in the Cloud with AWS Lambda
Containerless in the Cloud with AWS Lambda
 
OpenNTF Domino API (ODA): Super-Charging Domino Development
OpenNTF Domino API (ODA): Super-Charging Domino DevelopmentOpenNTF Domino API (ODA): Super-Charging Domino Development
OpenNTF Domino API (ODA): Super-Charging Domino Development
 
Conquering AngularJS Limitations
Conquering AngularJS LimitationsConquering AngularJS Limitations
Conquering AngularJS Limitations
 
Engage 2015 - 10 Mistakes You and Every XPages Developer Make. Yes, I said YOU!
Engage 2015 - 10 Mistakes You and Every XPages Developer Make. Yes, I said YOU!Engage 2015 - 10 Mistakes You and Every XPages Developer Make. Yes, I said YOU!
Engage 2015 - 10 Mistakes You and Every XPages Developer Make. Yes, I said YOU!
 
Continuous Integration and Deployment Best Practices on AWS
Continuous Integration and Deployment Best Practices on AWSContinuous Integration and Deployment Best Practices on AWS
Continuous Integration and Deployment Best Practices on AWS
 
IBM Think Session 8598 Domino and JavaScript Development MasterClass
IBM Think Session 8598 Domino and JavaScript Development MasterClassIBM Think Session 8598 Domino and JavaScript Development MasterClass
IBM Think Session 8598 Domino and JavaScript Development MasterClass
 
AWS Developer Fundamentals
AWS Developer FundamentalsAWS Developer Fundamentals
AWS Developer Fundamentals
 
How to Use OWASP Security Logging
How to Use OWASP Security LoggingHow to Use OWASP Security Logging
How to Use OWASP Security Logging
 
Faster Java EE Builds with Gradle
Faster Java EE Builds with GradleFaster Java EE Builds with Gradle
Faster Java EE Builds with Gradle
 
Microservices on Application Container Cloud Service
Microservices on Application Container Cloud ServiceMicroservices on Application Container Cloud Service
Microservices on Application Container Cloud Service
 
12-factor-jruby
12-factor-jruby12-factor-jruby
12-factor-jruby
 
Scala play-framework
Scala play-frameworkScala play-framework
Scala play-framework
 
CQRS Evolved - CQRS + Akka.NET
CQRS Evolved - CQRS + Akka.NETCQRS Evolved - CQRS + Akka.NET
CQRS Evolved - CQRS + Akka.NET
 
Infrastructure as code
Infrastructure as codeInfrastructure as code
Infrastructure as code
 
Java EE 8 Update
Java EE 8 UpdateJava EE 8 Update
Java EE 8 Update
 
Java 8 in Anger (JavaOne)
Java 8 in Anger (JavaOne)Java 8 in Anger (JavaOne)
Java 8 in Anger (JavaOne)
 
Introduction to Play Framework
Introduction to Play FrameworkIntroduction to Play Framework
Introduction to Play Framework
 
DevOps, Continuous Integration and Deployment on AWS: Putting Money Back into...
DevOps, Continuous Integration and Deployment on AWS: Putting Money Back into...DevOps, Continuous Integration and Deployment on AWS: Putting Money Back into...
DevOps, Continuous Integration and Deployment on AWS: Putting Money Back into...
 
Apache DeltaSpike the CDI toolbox
Apache DeltaSpike the CDI toolboxApache DeltaSpike the CDI toolbox
Apache DeltaSpike the CDI toolbox
 
Application Lifecycle Management in a Serverless World
Application Lifecycle Management in a Serverless WorldApplication Lifecycle Management in a Serverless World
Application Lifecycle Management in a Serverless World
 

Viewers also liked

Running your Java EE 6 applications in the Cloud
Running your Java EE 6 applications in the CloudRunning your Java EE 6 applications in the Cloud
Running your Java EE 6 applications in the CloudArun Gupta
 
JavaOne 2013: Organizing Your Local Community
JavaOne 2013: Organizing Your Local CommunityJavaOne 2013: Organizing Your Local Community
JavaOne 2013: Organizing Your Local CommunityRyan Cuprak
 
Deploying Elastic Java EE Microservices in the Cloud with Docker
Deploying Elastic Java EE Microservices in the Cloud with DockerDeploying Elastic Java EE Microservices in the Cloud with Docker
Deploying Elastic Java EE Microservices in the Cloud with DockerPayara
 
JavaEE Microservices -the Payara Way
JavaEE Microservices -the Payara WayJavaEE Microservices -the Payara Way
JavaEE Microservices -the Payara WayPayara
 
JavaFX Versus HTML5 - JavaOne 2014
JavaFX Versus HTML5 - JavaOne 2014JavaFX Versus HTML5 - JavaOne 2014
JavaFX Versus HTML5 - JavaOne 2014Ryan Cuprak
 
Accelerate Your Java Development on AWS (TLS301) | AWS re:Invent 2013
Accelerate Your Java Development on AWS (TLS301) | AWS re:Invent 2013Accelerate Your Java Development on AWS (TLS301) | AWS re:Invent 2013
Accelerate Your Java Development on AWS (TLS301) | AWS re:Invent 2013Amazon Web Services
 
Combining R With Java For Data Analysis (Devoxx UK 2015 Session)
Combining R With Java For Data Analysis (Devoxx UK 2015 Session)Combining R With Java For Data Analysis (Devoxx UK 2015 Session)
Combining R With Java For Data Analysis (Devoxx UK 2015 Session)Ryan Cuprak
 
Batching and Java EE (jdk.io)
Batching and Java EE (jdk.io)Batching and Java EE (jdk.io)
Batching and Java EE (jdk.io)Ryan Cuprak
 
When You Grow, The Cloud Grows
When You Grow, The Cloud GrowsWhen You Grow, The Cloud Grows
When You Grow, The Cloud GrowsRapidScale
 
Jms deep dive [con4864]
Jms deep dive [con4864]Jms deep dive [con4864]
Jms deep dive [con4864]Ryan Cuprak
 
Amazon Webservices for Java Developers - UCI Webinar
Amazon Webservices for Java Developers - UCI WebinarAmazon Webservices for Java Developers - UCI Webinar
Amazon Webservices for Java Developers - UCI WebinarCraig Dickson
 
Hybrid Mobile Development with Apache Cordova and Java EE 7 (JavaOne 2014)
Hybrid Mobile Development with Apache Cordova and Java EE 7 (JavaOne 2014)Hybrid Mobile Development with Apache Cordova and Java EE 7 (JavaOne 2014)
Hybrid Mobile Development with Apache Cordova and Java EE 7 (JavaOne 2014)Ryan Cuprak
 
Top 50 java ee 7 best practices [con5669]
Top 50 java ee 7 best practices [con5669]Top 50 java ee 7 best practices [con5669]
Top 50 java ee 7 best practices [con5669]Ryan Cuprak
 
50 EJB 3 Best Practices in 50 Minutes - JavaOne 2014
50 EJB 3 Best Practices in 50 Minutes - JavaOne 201450 EJB 3 Best Practices in 50 Minutes - JavaOne 2014
50 EJB 3 Best Practices in 50 Minutes - JavaOne 2014Ryan Cuprak
 
AWSome Day 2016 - Module 1: AWS Introduction and History
AWSome Day 2016 - Module 1: AWS Introduction and HistoryAWSome Day 2016 - Module 1: AWS Introduction and History
AWSome Day 2016 - Module 1: AWS Introduction and HistoryAmazon Web Services
 

Viewers also liked (15)

Running your Java EE 6 applications in the Cloud
Running your Java EE 6 applications in the CloudRunning your Java EE 6 applications in the Cloud
Running your Java EE 6 applications in the Cloud
 
JavaOne 2013: Organizing Your Local Community
JavaOne 2013: Organizing Your Local CommunityJavaOne 2013: Organizing Your Local Community
JavaOne 2013: Organizing Your Local Community
 
Deploying Elastic Java EE Microservices in the Cloud with Docker
Deploying Elastic Java EE Microservices in the Cloud with DockerDeploying Elastic Java EE Microservices in the Cloud with Docker
Deploying Elastic Java EE Microservices in the Cloud with Docker
 
JavaEE Microservices -the Payara Way
JavaEE Microservices -the Payara WayJavaEE Microservices -the Payara Way
JavaEE Microservices -the Payara Way
 
JavaFX Versus HTML5 - JavaOne 2014
JavaFX Versus HTML5 - JavaOne 2014JavaFX Versus HTML5 - JavaOne 2014
JavaFX Versus HTML5 - JavaOne 2014
 
Accelerate Your Java Development on AWS (TLS301) | AWS re:Invent 2013
Accelerate Your Java Development on AWS (TLS301) | AWS re:Invent 2013Accelerate Your Java Development on AWS (TLS301) | AWS re:Invent 2013
Accelerate Your Java Development on AWS (TLS301) | AWS re:Invent 2013
 
Combining R With Java For Data Analysis (Devoxx UK 2015 Session)
Combining R With Java For Data Analysis (Devoxx UK 2015 Session)Combining R With Java For Data Analysis (Devoxx UK 2015 Session)
Combining R With Java For Data Analysis (Devoxx UK 2015 Session)
 
Batching and Java EE (jdk.io)
Batching and Java EE (jdk.io)Batching and Java EE (jdk.io)
Batching and Java EE (jdk.io)
 
When You Grow, The Cloud Grows
When You Grow, The Cloud GrowsWhen You Grow, The Cloud Grows
When You Grow, The Cloud Grows
 
Jms deep dive [con4864]
Jms deep dive [con4864]Jms deep dive [con4864]
Jms deep dive [con4864]
 
Amazon Webservices for Java Developers - UCI Webinar
Amazon Webservices for Java Developers - UCI WebinarAmazon Webservices for Java Developers - UCI Webinar
Amazon Webservices for Java Developers - UCI Webinar
 
Hybrid Mobile Development with Apache Cordova and Java EE 7 (JavaOne 2014)
Hybrid Mobile Development with Apache Cordova and Java EE 7 (JavaOne 2014)Hybrid Mobile Development with Apache Cordova and Java EE 7 (JavaOne 2014)
Hybrid Mobile Development with Apache Cordova and Java EE 7 (JavaOne 2014)
 
Top 50 java ee 7 best practices [con5669]
Top 50 java ee 7 best practices [con5669]Top 50 java ee 7 best practices [con5669]
Top 50 java ee 7 best practices [con5669]
 
50 EJB 3 Best Practices in 50 Minutes - JavaOne 2014
50 EJB 3 Best Practices in 50 Minutes - JavaOne 201450 EJB 3 Best Practices in 50 Minutes - JavaOne 2014
50 EJB 3 Best Practices in 50 Minutes - JavaOne 2014
 
AWSome Day 2016 - Module 1: AWS Introduction and History
AWSome Day 2016 - Module 1: AWS Introduction and HistoryAWSome Day 2016 - Module 1: AWS Introduction and History
AWSome Day 2016 - Module 1: AWS Introduction and History
 

Similar to Developing in the Cloud

Getting Started with Serverless Architectures
Getting Started with Serverless ArchitecturesGetting Started with Serverless Architectures
Getting Started with Serverless ArchitecturesAmazon Web Services
 
AWS Webcast - Build Agile Applications in AWS Cloud for Government
AWS Webcast - Build Agile Applications in AWS Cloud for GovernmentAWS Webcast - Build Agile Applications in AWS Cloud for Government
AWS Webcast - Build Agile Applications in AWS Cloud for GovernmentAmazon Web Services
 
AWS Webcast - Build Agile Applications in AWS Cloud for Government
AWS Webcast - Build Agile Applications in AWS Cloud for GovernmentAWS Webcast - Build Agile Applications in AWS Cloud for Government
AWS Webcast - Build Agile Applications in AWS Cloud for GovernmentAmazon Web Services
 
Devops continuousintegration and deployment onaws puttingmoneybackintoyourmis...
Devops continuousintegration and deployment onaws puttingmoneybackintoyourmis...Devops continuousintegration and deployment onaws puttingmoneybackintoyourmis...
Devops continuousintegration and deployment onaws puttingmoneybackintoyourmis...Emerson Eduardo Rodrigues Von Staffen
 
Managing Your Application Lifecycle on AWS: Continuous Integration and Deploy...
Managing Your Application Lifecycle on AWS: Continuous Integration and Deploy...Managing Your Application Lifecycle on AWS: Continuous Integration and Deploy...
Managing Your Application Lifecycle on AWS: Continuous Integration and Deploy...Amazon Web Services
 
Velocity NYC 2016 - Containers @ Netflix
Velocity NYC 2016 - Containers @ NetflixVelocity NYC 2016 - Containers @ Netflix
Velocity NYC 2016 - Containers @ Netflixaspyker
 
Announcing AWS CodeBuild - January 2017 Online Teck Talks
Announcing AWS CodeBuild - January 2017 Online Teck TalksAnnouncing AWS CodeBuild - January 2017 Online Teck Talks
Announcing AWS CodeBuild - January 2017 Online Teck TalksAmazon Web Services
 
AWS re:Invent 2016: Development Workflow with Docker and Amazon ECS (CON302)
AWS re:Invent 2016: Development Workflow with Docker and Amazon ECS (CON302)AWS re:Invent 2016: Development Workflow with Docker and Amazon ECS (CON302)
AWS re:Invent 2016: Development Workflow with Docker and Amazon ECS (CON302)Amazon Web Services
 
Aws-What You Need to Know_Simon Elisha
Aws-What You Need to Know_Simon ElishaAws-What You Need to Know_Simon Elisha
Aws-What You Need to Know_Simon ElishaHelen Rogers
 
Azure Serverless Toolbox
Azure Serverless ToolboxAzure Serverless Toolbox
Azure Serverless ToolboxJohan Eriksson
 
Integrating Security into DevOps and CI / CD Environments - Pop-up Loft TLV 2017
Integrating Security into DevOps and CI / CD Environments - Pop-up Loft TLV 2017Integrating Security into DevOps and CI / CD Environments - Pop-up Loft TLV 2017
Integrating Security into DevOps and CI / CD Environments - Pop-up Loft TLV 2017Amazon Web Services
 
SRV312 DevOps on AWS: Building Systems to Deliver Faster
SRV312 DevOps on AWS: Building Systems to Deliver FasterSRV312 DevOps on AWS: Building Systems to Deliver Faster
SRV312 DevOps on AWS: Building Systems to Deliver FasterAmazon Web Services
 
CI/CD on AWS: Deploy Everything All the Time | AWS Public Sector Summit 2016
CI/CD on AWS: Deploy Everything All the Time | AWS Public Sector Summit 2016CI/CD on AWS: Deploy Everything All the Time | AWS Public Sector Summit 2016
CI/CD on AWS: Deploy Everything All the Time | AWS Public Sector Summit 2016Amazon Web Services
 
Continuous Deployment with Amazon Web Services
Continuous Deployment with Amazon Web ServicesContinuous Deployment with Amazon Web Services
Continuous Deployment with Amazon Web ServicesJulien SIMON
 
Amazon ECS at Coursera: A unified execution framework while defending against...
Amazon ECS at Coursera: A unified execution framework while defending against...Amazon ECS at Coursera: A unified execution framework while defending against...
Amazon ECS at Coursera: A unified execution framework while defending against...Brennan Saeta
 
(CMP406) Amazon ECS at Coursera: A general-purpose microservice
(CMP406) Amazon ECS at Coursera: A general-purpose microservice(CMP406) Amazon ECS at Coursera: A general-purpose microservice
(CMP406) Amazon ECS at Coursera: A general-purpose microserviceAmazon Web Services
 
Infrastructure as Code
Infrastructure as CodeInfrastructure as Code
Infrastructure as CodeRobert Greiner
 
CI/CD on AWS Deploy Everything All the Time
CI/CD on AWS Deploy Everything All the TimeCI/CD on AWS Deploy Everything All the Time
CI/CD on AWS Deploy Everything All the TimeAmazon Web Services
 

Similar to Developing in the Cloud (20)

Getting Started with Serverless Architectures
Getting Started with Serverless ArchitecturesGetting Started with Serverless Architectures
Getting Started with Serverless Architectures
 
AWS Webcast - Build Agile Applications in AWS Cloud for Government
AWS Webcast - Build Agile Applications in AWS Cloud for GovernmentAWS Webcast - Build Agile Applications in AWS Cloud for Government
AWS Webcast - Build Agile Applications in AWS Cloud for Government
 
AWS Webcast - Build Agile Applications in AWS Cloud for Government
AWS Webcast - Build Agile Applications in AWS Cloud for GovernmentAWS Webcast - Build Agile Applications in AWS Cloud for Government
AWS Webcast - Build Agile Applications in AWS Cloud for Government
 
Devops continuousintegration and deployment onaws puttingmoneybackintoyourmis...
Devops continuousintegration and deployment onaws puttingmoneybackintoyourmis...Devops continuousintegration and deployment onaws puttingmoneybackintoyourmis...
Devops continuousintegration and deployment onaws puttingmoneybackintoyourmis...
 
Managing Your Application Lifecycle on AWS: Continuous Integration and Deploy...
Managing Your Application Lifecycle on AWS: Continuous Integration and Deploy...Managing Your Application Lifecycle on AWS: Continuous Integration and Deploy...
Managing Your Application Lifecycle on AWS: Continuous Integration and Deploy...
 
Velocity NYC 2016 - Containers @ Netflix
Velocity NYC 2016 - Containers @ NetflixVelocity NYC 2016 - Containers @ Netflix
Velocity NYC 2016 - Containers @ Netflix
 
IaaS azure_vs_amazon
IaaS azure_vs_amazonIaaS azure_vs_amazon
IaaS azure_vs_amazon
 
AWS Code Services
AWS Code ServicesAWS Code Services
AWS Code Services
 
Announcing AWS CodeBuild - January 2017 Online Teck Talks
Announcing AWS CodeBuild - January 2017 Online Teck TalksAnnouncing AWS CodeBuild - January 2017 Online Teck Talks
Announcing AWS CodeBuild - January 2017 Online Teck Talks
 
AWS re:Invent 2016: Development Workflow with Docker and Amazon ECS (CON302)
AWS re:Invent 2016: Development Workflow with Docker and Amazon ECS (CON302)AWS re:Invent 2016: Development Workflow with Docker and Amazon ECS (CON302)
AWS re:Invent 2016: Development Workflow with Docker and Amazon ECS (CON302)
 
Aws-What You Need to Know_Simon Elisha
Aws-What You Need to Know_Simon ElishaAws-What You Need to Know_Simon Elisha
Aws-What You Need to Know_Simon Elisha
 
Azure Serverless Toolbox
Azure Serverless ToolboxAzure Serverless Toolbox
Azure Serverless Toolbox
 
Integrating Security into DevOps and CI / CD Environments - Pop-up Loft TLV 2017
Integrating Security into DevOps and CI / CD Environments - Pop-up Loft TLV 2017Integrating Security into DevOps and CI / CD Environments - Pop-up Loft TLV 2017
Integrating Security into DevOps and CI / CD Environments - Pop-up Loft TLV 2017
 
SRV312 DevOps on AWS: Building Systems to Deliver Faster
SRV312 DevOps on AWS: Building Systems to Deliver FasterSRV312 DevOps on AWS: Building Systems to Deliver Faster
SRV312 DevOps on AWS: Building Systems to Deliver Faster
 
CI/CD on AWS: Deploy Everything All the Time | AWS Public Sector Summit 2016
CI/CD on AWS: Deploy Everything All the Time | AWS Public Sector Summit 2016CI/CD on AWS: Deploy Everything All the Time | AWS Public Sector Summit 2016
CI/CD on AWS: Deploy Everything All the Time | AWS Public Sector Summit 2016
 
Continuous Deployment with Amazon Web Services
Continuous Deployment with Amazon Web ServicesContinuous Deployment with Amazon Web Services
Continuous Deployment with Amazon Web Services
 
Amazon ECS at Coursera: A unified execution framework while defending against...
Amazon ECS at Coursera: A unified execution framework while defending against...Amazon ECS at Coursera: A unified execution framework while defending against...
Amazon ECS at Coursera: A unified execution framework while defending against...
 
(CMP406) Amazon ECS at Coursera: A general-purpose microservice
(CMP406) Amazon ECS at Coursera: A general-purpose microservice(CMP406) Amazon ECS at Coursera: A general-purpose microservice
(CMP406) Amazon ECS at Coursera: A general-purpose microservice
 
Infrastructure as Code
Infrastructure as CodeInfrastructure as Code
Infrastructure as Code
 
CI/CD on AWS Deploy Everything All the Time
CI/CD on AWS Deploy Everything All the TimeCI/CD on AWS Deploy Everything All the Time
CI/CD on AWS Deploy Everything All the Time
 

More from Ryan Cuprak

Jakarta EE Test Strategies (2022)
Jakarta EE Test Strategies (2022)Jakarta EE Test Strategies (2022)
Jakarta EE Test Strategies (2022)Ryan Cuprak
 
DIY Home Weather Station (Devoxx Poland 2023)
DIY Home Weather Station (Devoxx Poland 2023)DIY Home Weather Station (Devoxx Poland 2023)
DIY Home Weather Station (Devoxx Poland 2023)Ryan Cuprak
 
Polygot Java EE on the GraalVM
Polygot Java EE on the GraalVMPolygot Java EE on the GraalVM
Polygot Java EE on the GraalVMRyan Cuprak
 
Exploring Java Heap Dumps (Oracle Code One 2018)
Exploring Java Heap Dumps (Oracle Code One 2018)Exploring Java Heap Dumps (Oracle Code One 2018)
Exploring Java Heap Dumps (Oracle Code One 2018)Ryan Cuprak
 
Faster Java EE Builds with Gradle
Faster Java EE Builds with GradleFaster Java EE Builds with Gradle
Faster Java EE Builds with GradleRyan Cuprak
 

More from Ryan Cuprak (6)

Jakarta EE Test Strategies (2022)
Jakarta EE Test Strategies (2022)Jakarta EE Test Strategies (2022)
Jakarta EE Test Strategies (2022)
 
DIY Home Weather Station (Devoxx Poland 2023)
DIY Home Weather Station (Devoxx Poland 2023)DIY Home Weather Station (Devoxx Poland 2023)
DIY Home Weather Station (Devoxx Poland 2023)
 
Polygot Java EE on the GraalVM
Polygot Java EE on the GraalVMPolygot Java EE on the GraalVM
Polygot Java EE on the GraalVM
 
Exploring Java Heap Dumps (Oracle Code One 2018)
Exploring Java Heap Dumps (Oracle Code One 2018)Exploring Java Heap Dumps (Oracle Code One 2018)
Exploring Java Heap Dumps (Oracle Code One 2018)
 
Faster Java EE Builds with Gradle
Faster Java EE Builds with GradleFaster Java EE Builds with Gradle
Faster Java EE Builds with Gradle
 
Java EE 8
Java EE 8Java EE 8
Java EE 8
 

Recently uploaded

%+27788225528 love spells in Huntington Beach Psychic Readings, Attraction sp...
%+27788225528 love spells in Huntington Beach Psychic Readings, Attraction sp...%+27788225528 love spells in Huntington Beach Psychic Readings, Attraction sp...
%+27788225528 love spells in Huntington Beach Psychic Readings, Attraction sp...masabamasaba
 
%in tembisa+277-882-255-28 abortion pills for sale in tembisa
%in tembisa+277-882-255-28 abortion pills for sale in tembisa%in tembisa+277-882-255-28 abortion pills for sale in tembisa
%in tembisa+277-882-255-28 abortion pills for sale in tembisamasabamasaba
 
WSO2CON2024 - It's time to go Platformless
WSO2CON2024 - It's time to go PlatformlessWSO2CON2024 - It's time to go Platformless
WSO2CON2024 - It's time to go PlatformlessWSO2
 
What Goes Wrong with Language Definitions and How to Improve the Situation
What Goes Wrong with Language Definitions and How to Improve the SituationWhat Goes Wrong with Language Definitions and How to Improve the Situation
What Goes Wrong with Language Definitions and How to Improve the SituationJuha-Pekka Tolvanen
 
%in Soweto+277-882-255-28 abortion pills for sale in soweto
%in Soweto+277-882-255-28 abortion pills for sale in soweto%in Soweto+277-882-255-28 abortion pills for sale in soweto
%in Soweto+277-882-255-28 abortion pills for sale in sowetomasabamasaba
 
WSO2CON 2024 - Building the API First Enterprise – Running an API Program, fr...
WSO2CON 2024 - Building the API First Enterprise – Running an API Program, fr...WSO2CON 2024 - Building the API First Enterprise – Running an API Program, fr...
WSO2CON 2024 - Building the API First Enterprise – Running an API Program, fr...WSO2
 
Artyushina_Guest lecture_YorkU CS May 2024.pptx
Artyushina_Guest lecture_YorkU CS May 2024.pptxArtyushina_Guest lecture_YorkU CS May 2024.pptx
Artyushina_Guest lecture_YorkU CS May 2024.pptxAnnaArtyushina1
 
WSO2Con2024 - From Code To Cloud: Fast Track Your Cloud Native Journey with C...
WSO2Con2024 - From Code To Cloud: Fast Track Your Cloud Native Journey with C...WSO2Con2024 - From Code To Cloud: Fast Track Your Cloud Native Journey with C...
WSO2Con2024 - From Code To Cloud: Fast Track Your Cloud Native Journey with C...WSO2
 
W01_panagenda_Navigating-the-Future-with-The-Hitchhikers-Guide-to-Notes-and-D...
W01_panagenda_Navigating-the-Future-with-The-Hitchhikers-Guide-to-Notes-and-D...W01_panagenda_Navigating-the-Future-with-The-Hitchhikers-Guide-to-Notes-and-D...
W01_panagenda_Navigating-the-Future-with-The-Hitchhikers-Guide-to-Notes-and-D...panagenda
 
%+27788225528 love spells in Colorado Springs Psychic Readings, Attraction sp...
%+27788225528 love spells in Colorado Springs Psychic Readings, Attraction sp...%+27788225528 love spells in Colorado Springs Psychic Readings, Attraction sp...
%+27788225528 love spells in Colorado Springs Psychic Readings, Attraction sp...masabamasaba
 
The title is not connected to what is inside
The title is not connected to what is insideThe title is not connected to what is inside
The title is not connected to what is insideshinachiaurasa2
 
Crypto Cloud Review - How To Earn Up To $500 Per DAY Of Bitcoin 100% On AutoP...
Crypto Cloud Review - How To Earn Up To $500 Per DAY Of Bitcoin 100% On AutoP...Crypto Cloud Review - How To Earn Up To $500 Per DAY Of Bitcoin 100% On AutoP...
Crypto Cloud Review - How To Earn Up To $500 Per DAY Of Bitcoin 100% On AutoP...SelfMade bd
 
%in Benoni+277-882-255-28 abortion pills for sale in Benoni
%in Benoni+277-882-255-28 abortion pills for sale in Benoni%in Benoni+277-882-255-28 abortion pills for sale in Benoni
%in Benoni+277-882-255-28 abortion pills for sale in Benonimasabamasaba
 
%in Bahrain+277-882-255-28 abortion pills for sale in Bahrain
%in Bahrain+277-882-255-28 abortion pills for sale in Bahrain%in Bahrain+277-882-255-28 abortion pills for sale in Bahrain
%in Bahrain+277-882-255-28 abortion pills for sale in Bahrainmasabamasaba
 
Payment Gateway Testing Simplified_ A Step-by-Step Guide for Beginners.pdf
Payment Gateway Testing Simplified_ A Step-by-Step Guide for Beginners.pdfPayment Gateway Testing Simplified_ A Step-by-Step Guide for Beginners.pdf
Payment Gateway Testing Simplified_ A Step-by-Step Guide for Beginners.pdfkalichargn70th171
 
8257 interfacing 2 in microprocessor for btech students
8257 interfacing 2 in microprocessor for btech students8257 interfacing 2 in microprocessor for btech students
8257 interfacing 2 in microprocessor for btech studentsHimanshiGarg82
 
Shapes for Sharing between Graph Data Spaces - and Epistemic Querying of RDF-...
Shapes for Sharing between Graph Data Spaces - and Epistemic Querying of RDF-...Shapes for Sharing between Graph Data Spaces - and Epistemic Querying of RDF-...
Shapes for Sharing between Graph Data Spaces - and Epistemic Querying of RDF-...Steffen Staab
 
%in Hazyview+277-882-255-28 abortion pills for sale in Hazyview
%in Hazyview+277-882-255-28 abortion pills for sale in Hazyview%in Hazyview+277-882-255-28 abortion pills for sale in Hazyview
%in Hazyview+277-882-255-28 abortion pills for sale in Hazyviewmasabamasaba
 
%+27788225528 love spells in Boston Psychic Readings, Attraction spells,Bring...
%+27788225528 love spells in Boston Psychic Readings, Attraction spells,Bring...%+27788225528 love spells in Boston Psychic Readings, Attraction spells,Bring...
%+27788225528 love spells in Boston Psychic Readings, Attraction spells,Bring...masabamasaba
 

Recently uploaded (20)

%+27788225528 love spells in Huntington Beach Psychic Readings, Attraction sp...
%+27788225528 love spells in Huntington Beach Psychic Readings, Attraction sp...%+27788225528 love spells in Huntington Beach Psychic Readings, Attraction sp...
%+27788225528 love spells in Huntington Beach Psychic Readings, Attraction sp...
 
%in tembisa+277-882-255-28 abortion pills for sale in tembisa
%in tembisa+277-882-255-28 abortion pills for sale in tembisa%in tembisa+277-882-255-28 abortion pills for sale in tembisa
%in tembisa+277-882-255-28 abortion pills for sale in tembisa
 
WSO2CON2024 - It's time to go Platformless
WSO2CON2024 - It's time to go PlatformlessWSO2CON2024 - It's time to go Platformless
WSO2CON2024 - It's time to go Platformless
 
What Goes Wrong with Language Definitions and How to Improve the Situation
What Goes Wrong with Language Definitions and How to Improve the SituationWhat Goes Wrong with Language Definitions and How to Improve the Situation
What Goes Wrong with Language Definitions and How to Improve the Situation
 
%in Soweto+277-882-255-28 abortion pills for sale in soweto
%in Soweto+277-882-255-28 abortion pills for sale in soweto%in Soweto+277-882-255-28 abortion pills for sale in soweto
%in Soweto+277-882-255-28 abortion pills for sale in soweto
 
WSO2CON 2024 - Building the API First Enterprise – Running an API Program, fr...
WSO2CON 2024 - Building the API First Enterprise – Running an API Program, fr...WSO2CON 2024 - Building the API First Enterprise – Running an API Program, fr...
WSO2CON 2024 - Building the API First Enterprise – Running an API Program, fr...
 
Artyushina_Guest lecture_YorkU CS May 2024.pptx
Artyushina_Guest lecture_YorkU CS May 2024.pptxArtyushina_Guest lecture_YorkU CS May 2024.pptx
Artyushina_Guest lecture_YorkU CS May 2024.pptx
 
WSO2Con2024 - From Code To Cloud: Fast Track Your Cloud Native Journey with C...
WSO2Con2024 - From Code To Cloud: Fast Track Your Cloud Native Journey with C...WSO2Con2024 - From Code To Cloud: Fast Track Your Cloud Native Journey with C...
WSO2Con2024 - From Code To Cloud: Fast Track Your Cloud Native Journey with C...
 
W01_panagenda_Navigating-the-Future-with-The-Hitchhikers-Guide-to-Notes-and-D...
W01_panagenda_Navigating-the-Future-with-The-Hitchhikers-Guide-to-Notes-and-D...W01_panagenda_Navigating-the-Future-with-The-Hitchhikers-Guide-to-Notes-and-D...
W01_panagenda_Navigating-the-Future-with-The-Hitchhikers-Guide-to-Notes-and-D...
 
%+27788225528 love spells in Colorado Springs Psychic Readings, Attraction sp...
%+27788225528 love spells in Colorado Springs Psychic Readings, Attraction sp...%+27788225528 love spells in Colorado Springs Psychic Readings, Attraction sp...
%+27788225528 love spells in Colorado Springs Psychic Readings, Attraction sp...
 
The title is not connected to what is inside
The title is not connected to what is insideThe title is not connected to what is inside
The title is not connected to what is inside
 
Crypto Cloud Review - How To Earn Up To $500 Per DAY Of Bitcoin 100% On AutoP...
Crypto Cloud Review - How To Earn Up To $500 Per DAY Of Bitcoin 100% On AutoP...Crypto Cloud Review - How To Earn Up To $500 Per DAY Of Bitcoin 100% On AutoP...
Crypto Cloud Review - How To Earn Up To $500 Per DAY Of Bitcoin 100% On AutoP...
 
%in Benoni+277-882-255-28 abortion pills for sale in Benoni
%in Benoni+277-882-255-28 abortion pills for sale in Benoni%in Benoni+277-882-255-28 abortion pills for sale in Benoni
%in Benoni+277-882-255-28 abortion pills for sale in Benoni
 
%in Bahrain+277-882-255-28 abortion pills for sale in Bahrain
%in Bahrain+277-882-255-28 abortion pills for sale in Bahrain%in Bahrain+277-882-255-28 abortion pills for sale in Bahrain
%in Bahrain+277-882-255-28 abortion pills for sale in Bahrain
 
Abortion Pill Prices Tembisa [(+27832195400*)] 🏥 Women's Abortion Clinic in T...
Abortion Pill Prices Tembisa [(+27832195400*)] 🏥 Women's Abortion Clinic in T...Abortion Pill Prices Tembisa [(+27832195400*)] 🏥 Women's Abortion Clinic in T...
Abortion Pill Prices Tembisa [(+27832195400*)] 🏥 Women's Abortion Clinic in T...
 
Payment Gateway Testing Simplified_ A Step-by-Step Guide for Beginners.pdf
Payment Gateway Testing Simplified_ A Step-by-Step Guide for Beginners.pdfPayment Gateway Testing Simplified_ A Step-by-Step Guide for Beginners.pdf
Payment Gateway Testing Simplified_ A Step-by-Step Guide for Beginners.pdf
 
8257 interfacing 2 in microprocessor for btech students
8257 interfacing 2 in microprocessor for btech students8257 interfacing 2 in microprocessor for btech students
8257 interfacing 2 in microprocessor for btech students
 
Shapes for Sharing between Graph Data Spaces - and Epistemic Querying of RDF-...
Shapes for Sharing between Graph Data Spaces - and Epistemic Querying of RDF-...Shapes for Sharing between Graph Data Spaces - and Epistemic Querying of RDF-...
Shapes for Sharing between Graph Data Spaces - and Epistemic Querying of RDF-...
 
%in Hazyview+277-882-255-28 abortion pills for sale in Hazyview
%in Hazyview+277-882-255-28 abortion pills for sale in Hazyview%in Hazyview+277-882-255-28 abortion pills for sale in Hazyview
%in Hazyview+277-882-255-28 abortion pills for sale in Hazyview
 
%+27788225528 love spells in Boston Psychic Readings, Attraction spells,Bring...
%+27788225528 love spells in Boston Psychic Readings, Attraction spells,Bring...%+27788225528 love spells in Boston Psychic Readings, Attraction spells,Bring...
%+27788225528 love spells in Boston Psychic Readings, Attraction spells,Bring...
 

Developing in the Cloud

  • 2. Developing in the Cloud Agenda Continuous Integration in Cloud Java EE Testing
  • 3. Why Develop in the Cloud? Topics Covered Today Version Control Continuous Integration Issue Tracking/Proces s Integration Testing Java EE
  • 4. Why Develop in the Cloud? • Processes are audited by customers (GMP) • All code changes are tracked • Rigorous issue life-cycle • Dashboard for tracking development progress • Continuous integration setup: • Unit tests/Integration tests/system tests • Database setup • Automated process for testing deployment Work Development Processes I want this for home!
  • 5. Why Develop in the Cloud? Continuous Integration Challenges Hardware Software Maintenance/Sec urity Configuration Networking Cost
  • 6. Why Develop in the Cloud? • Constructing a robust development environment is: • Expensive • Hard • Time consuming • Cloud services simplifies CI environment: • Easy to setup… • Relatively cheap… • Low maintenance Cloud Benefits
  • 7. Developing in the Cloud • Self-Hosted in cloud • Create VMs and install developer tools (version control/bug trackers/etc.) • Manage all aspects of configuration/security • Costs: data storage and usage • Vendor Hosted in cloud • Vendor provides hosted solution – fully configured/managed. • Little maintenance or configuration • Costs: monthly fees, storage and usage • Hybrid • Some tools are hosted locally (example: code repository) Cloud Models
  • 8. Why Develop in the Cloud? • Minimize time spent configuring/managing tools. • Scale projects as resource needs change. • Easily support distributed development. • Use pre-configured integrated tool stack. • Build/test for other platforms requiring special hardware/tools. • iOS • Windows mobile • Scalability testing • Easily create a ‘clean environment’ Benefits of Cloud Development
  • 9. Developing in the Cloud Pieces of the Puzzle Version Control Continuous Integration Issue Management Test Environment(s)
  • 10. Developing in the Cloud Vendor Price (monthly) github $0-$50 BitBucket $0-$200 Java.net Free Sourceforge Free Beanstalk $15-$200 CodePlex Free Version Control * github and bitbucket are the leading vendors.
  • 11. Developing in the Cloud Vendor Opensource Paid (monthly) Atlassian N/A $10-$1000 CloudBees N/A $60-$200 Travis CI Free $129-$489 AppVeyor None $19-$99 Shippable Free $12-Custom CodeShip Free $49-$1999 Semaphore Free $0-$199 drone.io Free $25-$49 Snap CI Free $0-$180 Continuous Integration Cloud Vendors
  • 12. Developing in the Cloud Vendor Monthly Price JIRA $10-$1000 YouTrack Free-$500 BugHost $29-$159 Bontq $9-$149 FogBugz $18-$540 CloudForge $2-$10 (per user) devZing (Bugzilla hosting) $15 Issue Trackers Many more…
  • 13. Developing in the Cloud • Old Java standbys: • java.net • sourceforge.net • Project type: open source code • Features: • Wikis • Blogging • Issue tracking • No continuous integration support Old Services
  • 14. Developing in the Cloud Considerations Issue Tracking Continuous Integration Version Control How do these integrate?
  • 15. Developing in the Cloud • Open source or private? • Paid or free account? • Use integrated issue system or separate? • Integration with tools. • Ability to customize environment • Operating systems • Databases • Test installation scripts • Data migrations Additional Considerations
  • 16. Developing in the Cloud • Private projects • Ability to switch from private to public and vice versa • Version control: git • Continuous integration Amazon • Projects: • Maven/Gradle builds • Junit/Jasmine for unit testing • NetBeans • IDE • IntelliJ • NetBeans • SourceTree • xCode Requirements
  • 17. Developing in the Cloud Cloud services: • Github – version control ($7 / month) • Unlimited public repositories • 5 private repositories • Bamboo – Continuous Integration ($10 / month) • 10 jobs / 1 agent • Builds are executing on AWS EC2 instances. • JIRA – issue tracking ($10 / month) • 10 users • Amazon Web Services • VMs/databases Total cost: $27 / month (excluding AWS usage). What cloud services did I choose?
  • 18. Developing in the Cloud • Jenkins • More popular than Bamboo. • Easier to configure than Bamboo. • Free • Large pool of plugins (1000+) • Bamboo • Integrated with JIRA. • Automated merging (git/mercurial) • CI & CD pipelines • Build agent • Requires JIRA for cloud account Bamboo versus Jenkins
  • 19. Developing in the Cloud Puzzle Pieces
  • 20. Developing in the Cloud Getting Started Create github account Create JIRA/Bamboo account Create AWS Account http://tinyurl.com/leo7rop http://aws.amazon.com http://github.com
  • 21. Developing in the Cloud Amazon Web Services (AWS)
  • 22. Developing in the Cloud Amazon Web Services EC2 RDS VPC
  • 23. Developing in the Cloud • EC2 – Elastic Cloud Computing • VMs == AMI (Amazon Machine Image) AWS Core Concepts – EC2 Prices Sampling Name vCPU ECU Memory (GiB) Storage Hourly Fee t2.micro 1 Variable 1 EBS Only $0.013 t2.small 1 Variable 2 EBS Only $0.026 t2.medium 1 Variable 4 EBS Only $0.052 m3.medium 3 3.75 1 x 4 SSD $0.070 m3.large 2 6.5 7.5 1 x 32 SSD $0.140 m3.xlarge 4 13 15 2 x 40 SSD $0.280 m2.2xlarge 8 26 30 2 x 80 $0.560
  • 24. Developing in the Cloud • Amazon provides a large library of AMIs. • Bamboo has pre-configured AMIs with Bamboo agent installed. • Instances are accessed via ssh (download keys) • Pick data center when launching an instance. AWS Core Concepts – EC2
  • 25. Developing in the Cloud • VPC = Virtual Private Cloud • Complete control over virtual networking environment: • IP address range • Subnets • Routing tables • Network gateways • VPC can be connected to a corporate data center • AMI instances can be launched into a VPC. • Databases to a VPC. AWS Core Concepts - VPC
  • 26. Developing in the Cloud AWS Core Concepts – VPC Wizard
  • 27. Developing in the Cloud AWS Core Concepts – VPC Wizard
  • 28. Developing in the Cloud AWS Core Concepts – Wizard VPC
  • 29. Developing in the Cloud AWS Core Concepts – Wizard VPC
  • 30. Developing in the Cloud AWS Core Concepts – Wizard VPC
  • 31. Developing in the Cloud • Amazon RDS – Amazon Relational Database Service • Supported databases: • MySQL • Oracle • Microsoft SQL Server • PostgreSQL • Provisioned using SSD, IOPS Storage, Magnetic. • Automated failover, backups, multiple-zones, mirroring • Can attach to a VPC. Amazon RDS
  • 32. Developing in the Cloud Amazon RDS
  • 33. Developing in the Cloud Amazon RDS
  • 34. Developing in the Cloud Amazon RDS
  • 35. Developing in the Cloud Amazon RDS
  • 36. Developing in the Cloud • After database starts-up, log into a VM. • Run: “sudo yum postgresql” to install PostgreSQL client. Amazon RDS
  • 37. Developing in the Cloud Term Definition Project Provides reporting across all plans in a project. Plan Specifies default repository, how build is triggered, dependencies between other plans, notifications, permissions, definition of plan variables. Stage Processes its jobs in parallel on multiple agents. Can produce artifacts for another stage. Job Processes a series of one or more tasks that are run sequentially on the same agent. Controls which tasks are performed. Defines artifacts that the build will produce. Task Small discrete unit of work (code checkout, execute Maven goal, etc.). Is run sequentially within a job on a Bamboo working directory. Bamboo Core Concepts
  • 38. Developing in the Cloud Bamboo Concepts Plan Stage Stage Stage Job Task Task Job Task Job Task Task Task Job Task Job Task
  • 39. Developing in the Cloud Bamboo
  • 40. Developing in the Cloud Bamboo
  • 41. Developing in the Cloud Bamboo – Configure Plan
  • 42. Developing in the Cloud Bamboo – Configure Plan
  • 43. Developing in the Cloud Bamboo – Configure Tasks
  • 44. Developing in the Cloud Bamboo – Plan Configuration These environment variables are passed to the JVM.
  • 45. Developing in the Cloud Bamboo – test-persistence.xml – using environment properties
  • 46. Developing in the Cloud Testing locally /.m2/settings.xml
  • 47. Developing in the Cloud Bamboo – Configure Tasks
  • 48. Developing in the Cloud • Bamboo is central management server which schedules/coordinates all work. With cloud, Bamboo management server is hosted at Atlassian. • Bamboo Agent – a service that can run build jobs. • Elastic Agent – a remote Bamboo agent that runs on Amazon EC2. • Capability – feature of an agent, such as JDK installed, version of Maven available, etc. Bamboo Overview
  • 49. Developing in the Cloud • Bamboo builds Bamboo - Building Running Bamboo Agent git pull Run job Build and test
  • 50. Developing in the Cloud AMI
  • 51. Developing in the Cloud Customizing Bamboo AMI Find Bambo AMI Launch instance Customize instance Take Snapshot Launch customized instance
  • 52. Developing in the Cloud • Plugins available for IDEs (NetBeans/IntelliJ/Eclipse) • SourceTree integration • Benefits of integration • git pushes trigger issue state transitions. JIRA Integration
  • 53. Developing in the Cloud JIRA Integration - Configuration
  • 54. Developing in the Cloud JIRA Integration – Configuration github
  • 55. Developing in the Cloud JIRA Integration – Configuration github
  • 56. Developing in the Cloud JIRA Integration – Configuration
  • 57. Developing in the Cloud JIRA Integration - NetBeans
  • 58. Developing in the Cloud Testing challenges: • RESTful webservices • WebSocket endpoints • Security • Scalability • JavaScript code • JavaScript code using AJAX (with server) • Real data, bad data, etc. Testing Java EE
  • 59. Developing in the Cloud Example Test Environment (VPC) App Server A App Server B App Server C Load Balacner Test Client A Test Client B Test Client C AWS
  • 60. Developing in the Cloud • Bamboo + AWS = full testing in the cloud. • Create custom environments for simulating a cluster. • Test load balancing setup. • Stress test server under heavy load. • Testing: unit testing, integration testing, load testing. Java EE + Bamboo + AWS
  • 61. Developing in the Cloud • Project from JBoss. • Unit testing in the container (GlassFish/WebLogic/etc.) What is Arquillian? Container Java EE app server Servlet Container Weld SE ArquillianTest Case Unit testing framework (Junit/TestNG) ShrinkWrap
  • 62. Developing in the Cloud Java EE Application - ctjava ctcore ctweb migrate ctadmin Java EE 7 Application – Maven Based ctmobile https://github.com/rcuprak/ctjava.git
  • 63. Developing in the Cloud Project Overview • Java EE 7 web application • GlassFish 4.1 • PostgreSQL • Maven based build • Arquillian unit testing Setup • Modularized architecture • Data model and DAOs in ctcore • Unit and integration testing Java EE Application - ctjava
  • 64. Developing in the Cloud Testing ctcore - Overview • Contains data model and DAOs. • No EJBs • @Dao and @DefaultDatabase are CDI Qualifiers.
  • 65. Developing in the Cloud Testing ctcore – Setup for DAO testing
  • 66. Developing in the Cloud Testing ctcore – Configuring Weld
  • 67. Developing in the Cloud Testing ctcore – Test Implementation
  • 68. Developing in the Cloud Testing ctcore – pom.xml dependencies Dependencies: • Weld • EclipseLink • PostgreSQL Scope: Test
  • 69. Developing in the Cloud Testing ctweb – Integration Testing with EJBs Test runs in embedded GlassFish container.
  • 70. Developing in the Cloud Testing ctweb – Integration Testing with EJBs
  • 71. Developing in the Cloud • Testing RESTful webservices and WebSockets easier with Arquillian. • Best practices: • Test API first using Java • Test using AJAX using Jasmine + Arquillian + REST & WebSockets
  • 72. Developing in the Cloud • Java API for WebSockets (JSR-224) • High level declarative API for WebSocket • API similar to JavaScript WebSocket API • Both client and server-side • Important pieces: • Annotations for annotated endpoints: @ServerEndpoint, @OnOpen, @OnClose, @OnMessage, @OnError • Session object – used to send messages. • RemoteEndpoint object – used to sent messages to a client • MessageHandler – interface used by programmatic endpoints. • Pluggable and extensible Encoders, decoders, sub-protocols JAX-WS WebSockets Review
  • 73. Developing in the Cloud • JAX-RS 2.0 is the REST development API for Java • Major upgrade with Java EE 7. (JSR-339) • Client API, Aysnc, Validation, Filters/Handlers, Interceptors, and Content Negotiation. • Server and client • Integrates with JAXB and Bean Validation • Annotation based, declarative • @Path, @GET, @POST, @PUT, @DELETE, • Pluggable and extensible. JAX-RS- RS Review
  • 74. Developing in the Cloud Testing ctweb – Registration Service Test Setup
  • 75. Developing in the Cloud Testing ctweb – Registration Service Test -Java
  • 76. Developing in the Cloud Testing ctweb – Registration Service Test (Setup) - JavaScript
  • 77. Developing in the Cloud Testing ctweb – Registration Service Test - JavaScript
  • 78. Developing in the Cloud Testing ctweb – Registration Service Test (pom) - JavaScript
  • 79. Developing in the Cloud Testing ctweb – WebSockets
  • 80. Developing in the Cloud Testing ctweb – WebSockets
  • 81. Developing in the Cloud Cloud tools + Java EE = Garage Startup! Conclusion

Editor's Notes

  1. So what cloud hosting services did I choose?