the new java developers kit bag - eclipsecon.org new java... · java se when you start learning...

43
THE NEW JAVA DEVELOPERS KIT BAG

Upload: others

Post on 26-Jul-2020

6 views

Category:

Documents


0 download

TRANSCRIPT

Page 1: The new Java developers kit bag - eclipsecon.org new Java... · JAVA SE When you start learning Java you normally start with Java Standard Edition. It includes APIs to do things like:

THE NEW JAVA DEVELOPERS KIT BAG

Page 2: The new Java developers kit bag - eclipsecon.org new Java... · JAVA SE When you start learning Java you normally start with Java Standard Edition. It includes APIs to do things like:

A DEVELOPERS JOURNEY

Java SE, EE

& Spring

Architecture

Type

IDE

Web Application

ServerBuild Automation

Tools

Build ToolsTesting

Frameworks

Container

Technologies

Configuration

Management

tools

How you make your

applicationHow/where you run

your application

How you build and test

your application

Automate

everything

Page 3: The new Java developers kit bag - eclipsecon.org new Java... · JAVA SE When you start learning Java you normally start with Java Standard Edition. It includes APIs to do things like:

INTRODUCTION

• Java SE, Java EE and Spring

• Java architecture types

• Integrated Development environments “IDE’s”

• Web Application Servers

• Build Tools

• Build Automation Servers

• Testing Frameworks

• Container technologies

• Configuration management tools

Page 4: The new Java developers kit bag - eclipsecon.org new Java... · JAVA SE When you start learning Java you normally start with Java Standard Edition. It includes APIs to do things like:

JAVA EE & JAVA SE

Page 5: The new Java developers kit bag - eclipsecon.org new Java... · JAVA SE When you start learning Java you normally start with Java Standard Edition. It includes APIs to do things like:

JAVA SE

When you start learning Java you normally start with Java

Standard Edition.

It includes APIs to do things like:

• applet

• awt

• jdbc

• collections

• xml binding

• JavaFX (Merged to Java SE 8)

• Java 8 Streaming

Mainly used for stand alone applications that run locally.

Page 6: The new Java developers kit bag - eclipsecon.org new Java... · JAVA SE When you start learning Java you normally start with Java Standard Edition. It includes APIs to do things like:

JAVA EE

When you start developing applications that run on servers

and have large amounts of users then this is when Java EE is

normally used.

It includes APIs to do things like:

• servlet

• websocket

• dependency injection

• jaxrs

• persistence

• transaction

• jms

Page 7: The new Java developers kit bag - eclipsecon.org new Java... · JAVA SE When you start learning Java you normally start with Java Standard Edition. It includes APIs to do things like:

JAKARTA EE

Page 8: The new Java developers kit bag - eclipsecon.org new Java... · JAVA SE When you start learning Java you normally start with Java Standard Edition. It includes APIs to do things like:

SPRING

Page 9: The new Java developers kit bag - eclipsecon.org new Java... · JAVA SE When you start learning Java you normally start with Java Standard Edition. It includes APIs to do things like:

SPRING

Spring is a framework that helps Java programmers with

many things the main being dependency injection.

Other features:

• Core tech: dependency injection, events, resources…

• Testing: mock objects, TestContext framework…

• Data Access: transactions, DAO support, JDBC, Marshalling

XML

• Integration: remoting, JMS, JCA, JMX, email, tasks…

• Languages: Kotlin, Groovy…

Page 10: The new Java developers kit bag - eclipsecon.org new Java... · JAVA SE When you start learning Java you normally start with Java Standard Edition. It includes APIs to do things like:

JAVA ARCHITECTURE TYPESMONOLITHS & MICROSERVICES

Page 11: The new Java developers kit bag - eclipsecon.org new Java... · JAVA SE When you start learning Java you normally start with Java Standard Edition. It includes APIs to do things like:

MONOLITH

Simple to:

• Develop

• Test*

• Deploy*

• Scale*

Web Application

Server

Front-end

Booking

service

Registration

service

Database

Web Application

Server

Front-end

Booking

service

Registration

service

Page 12: The new Java developers kit bag - eclipsecon.org new Java... · JAVA SE When you start learning Java you normally start with Java Standard Edition. It includes APIs to do things like:

MONOLITH

What is wrong with the previous slide when it comes to

scaling in a cloud environment?

Page 13: The new Java developers kit bag - eclipsecon.org new Java... · JAVA SE When you start learning Java you normally start with Java Standard Edition. It includes APIs to do things like:

MICROSERVICES Database

Web Application Server

Web Application Server

Web Application Server

Front-end

Booking

service

Registration

service

Simple to:

• Deploy*

• Scale*

• Saves computing power and $$$

But

• Adds complexity to your application

Database

Page 14: The new Java developers kit bag - eclipsecon.org new Java... · JAVA SE When you start learning Java you normally start with Java Standard Edition. It includes APIs to do things like:

JAX-RS 2.0JSON-P 1.0CDI 1.2

Config 1.2Fault

Tolerance 1.0JWT1.0

HealthCheck 1.0

Metrics 1.1Open Tracing

1.0

Open API 1.0

Rest Client 1.0

Page 15: The new Java developers kit bag - eclipsecon.org new Java... · JAVA SE When you start learning Java you normally start with Java Standard Edition. It includes APIs to do things like:

INTEGRATED DEVELOPMENT ENVIRONMENTS

Page 16: The new Java developers kit bag - eclipsecon.org new Java... · JAVA SE When you start learning Java you normally start with Java Standard Edition. It includes APIs to do things like:

VISUAL STUDIO CODE

Released in 2015 by Microsoft

Easy to use interface

Supports many languages

Not as powerful as eclipse due to eclipse being around much longer

Ranked as the most used IDE

Better than a text editor but not quite as good as Eclipse in my

opinion

Page 17: The new Java developers kit bag - eclipsecon.org new Java... · JAVA SE When you start learning Java you normally start with Java Standard Edition. It includes APIs to do things like:

VISUAL STUDIO CODE

Page 18: The new Java developers kit bag - eclipsecon.org new Java... · JAVA SE When you start learning Java you normally start with Java Standard Edition. It includes APIs to do things like:

INTELIJ IDEA

Built just for Java hence the “J” but does support other languages

Has a free community edition

Not as many plugins as Eclipse or VS Code

Supports many building tools, version control and databases directly

from the IDE

Page 19: The new Java developers kit bag - eclipsecon.org new Java... · JAVA SE When you start learning Java you normally start with Java Standard Edition. It includes APIs to do things like:

INTELIJ IDEA

Page 20: The new Java developers kit bag - eclipsecon.org new Java... · JAVA SE When you start learning Java you normally start with Java Standard Edition. It includes APIs to do things like:

ECLIPSE

Came from an initial IBM contribution 16 years ago

Truly Open Source and community driven

Can be complicated to use

Supports other languages via plugins such as:

Ada, ABAP, C, C++, C#, COBOL, D, Fortran, Haskell, JavaScript, Julia, Las

so, Lua, NATURAL, Perl, PHP, Prolog, Python, R, Ruby (including Ruby on

Rails framework), Rust, Scala, Clojure, Groovy, Scheme, and Erlang

Page 21: The new Java developers kit bag - eclipsecon.org new Java... · JAVA SE When you start learning Java you normally start with Java Standard Edition. It includes APIs to do things like:

ECLIPSE

Page 22: The new Java developers kit bag - eclipsecon.org new Java... · JAVA SE When you start learning Java you normally start with Java Standard Edition. It includes APIs to do things like:

WEB APPLICATION SERVERS

Page 23: The new Java developers kit bag - eclipsecon.org new Java... · JAVA SE When you start learning Java you normally start with Java Standard Edition. It includes APIs to do things like:

OPEN LIBERTY

Just what you need server!

Perfect for the cloud and Microservices

Supports Docker

Good for developers and Enterprise deployments

Quick start-up times

Open Source – Enterprise ready!

Page 24: The new Java developers kit bag - eclipsecon.org new Java... · JAVA SE When you start learning Java you normally start with Java Standard Edition. It includes APIs to do things like:

LOADS OF ALTERNATIVES

Page 25: The new Java developers kit bag - eclipsecon.org new Java... · JAVA SE When you start learning Java you normally start with Java Standard Edition. It includes APIs to do things like:

BUILD TOOLS

Page 26: The new Java developers kit bag - eclipsecon.org new Java... · JAVA SE When you start learning Java you normally start with Java Standard Edition. It includes APIs to do things like:

MAVEN

Used to compile and deploy your Java applications

Downloads required resources such as dependencies and web

application servers.

Defined in xml

Useful testing stage

Can configure app server such as set IP address and ports

Page 27: The new Java developers kit bag - eclipsecon.org new Java... · JAVA SE When you start learning Java you normally start with Java Standard Edition. It includes APIs to do things like:

GRADLE

Goodness of Maven and Ant but uses groovy rather than xml

You can look at it like a script

Build files are verbose

Has a vibrant ecosystem

Loads of good plugins

Page 28: The new Java developers kit bag - eclipsecon.org new Java... · JAVA SE When you start learning Java you normally start with Java Standard Edition. It includes APIs to do things like:

BUILD AUTOMATION SERVERS

Page 29: The new Java developers kit bag - eclipsecon.org new Java... · JAVA SE When you start learning Java you normally start with Java Standard Edition. It includes APIs to do things like:

TRAVIS

Used as part of a pipeline

Integrates seamlessly with github

Easy to use interface

Free to use online for Open Source projects, private projects can be done

for a fee or you can be stand up on your own infrastructure (TravisPro)

1. Push to Github

2. Travis Build is triggered

3. Notification sent when build passes via email or Slack

Page 30: The new Java developers kit bag - eclipsecon.org new Java... · JAVA SE When you start learning Java you normally start with Java Standard Edition. It includes APIs to do things like:

JENKINS

Open source automation server

Has loads of plugins to choose from

Fully compatible with git and Kuberneties

Used in Devops pipelines

Easy to use web interface

Distributed across multiple machines

Page 31: The new Java developers kit bag - eclipsecon.org new Java... · JAVA SE When you start learning Java you normally start with Java Standard Edition. It includes APIs to do things like:

TESTING FRAMEWORKS

Page 32: The new Java developers kit bag - eclipsecon.org new Java... · JAVA SE When you start learning Java you normally start with Java Standard Edition. It includes APIs to do things like:

JUNIT

Very simple and easy to use

Defacto Java Unit testing framework

Uses annotations such as @Test

Works with maven, Gradle and other build tools

Page 33: The new Java developers kit bag - eclipsecon.org new Java... · JAVA SE When you start learning Java you normally start with Java Standard Edition. It includes APIs to do things like:

ARQUILLIAN

Container-agnostic Integration testing framework

Minimises the burden of managing containers for testing purposes

Provides dependency injection

Works well along side Junit tests

Great IDE integration

Works with Maven and Gradle

Page 34: The new Java developers kit bag - eclipsecon.org new Java... · JAVA SE When you start learning Java you normally start with Java Standard Edition. It includes APIs to do things like:

CUCUMBER

Runs automated acceptance tests

Behaviour driven development style

Has it’s own language Gerkin that is non technical and human

readable.

Supports other languages such as Ruby, Scala and Groovy

It is FREE!

Page 35: The new Java developers kit bag - eclipsecon.org new Java... · JAVA SE When you start learning Java you normally start with Java Standard Edition. It includes APIs to do things like:

CONTAINER TECHNOLOGIES

Page 36: The new Java developers kit bag - eclipsecon.org new Java... · JAVA SE When you start learning Java you normally start with Java Standard Edition. It includes APIs to do things like:

DOCKER

Little history:

1979 - UnixV7

2006 – Control Groups (CGroups) CPU, memory, disk I/O, network

2008 – LXC LinuX Containers

2013 – Docker!!!

Most used container platform.

Allows the separation of files and processes on the same kernel

Think of a virtual machines but much smaller

You will find it difficult to find a cloud provider that does not support docker.

Page 37: The new Java developers kit bag - eclipsecon.org new Java... · JAVA SE When you start learning Java you normally start with Java Standard Edition. It includes APIs to do things like:

KUBERNETES

Created by Google - Open Source

Used to manage large deployments of containers

Handles scaling, self healing, load balancing and loads more

A universal way of availability and scaling

2014 – Kubernetes was born

A month later Microsoft, RedHat, IBM and Docker join the Kubernetes

community

Page 38: The new Java developers kit bag - eclipsecon.org new Java... · JAVA SE When you start learning Java you normally start with Java Standard Edition. It includes APIs to do things like:

KUBERNETES Kubernetes Cluster

Pod

Font-end

Pod

Font-end

Pod

Web App

Services

Load Balancer

Page 39: The new Java developers kit bag - eclipsecon.org new Java... · JAVA SE When you start learning Java you normally start with Java Standard Edition. It includes APIs to do things like:

HELM

Helps you manage and configure Kubernetes Applications

Helps with upgrades, definition of deployments.

Good for sharing your applications and their configurations

2016 – Helm born and Kubernetes goes mainstream

Page 40: The new Java developers kit bag - eclipsecon.org new Java... · JAVA SE When you start learning Java you normally start with Java Standard Edition. It includes APIs to do things like:

HELM CHART EXAMPLE

Chart.yamlvalues.yaml

Page 41: The new Java developers kit bag - eclipsecon.org new Java... · JAVA SE When you start learning Java you normally start with Java Standard Edition. It includes APIs to do things like:

CONFIGURATION MANAGEMENT TOOLS

Page 42: The new Java developers kit bag - eclipsecon.org new Java... · JAVA SE When you start learning Java you normally start with Java Standard Edition. It includes APIs to do things like:

CHEF, PUPPET AND ANSIBLE

Used to automation infrastructure

Help keep deployments consistent

Manages deployments for clouds and large scale infrastructure

Works on the following clouds:

Internap, IBM Cloud, Amazon EC2, Google Cloud Platform, Oracle

Cloud, Microsoft Azure and Rackspace

Page 43: The new Java developers kit bag - eclipsecon.org new Java... · JAVA SE When you start learning Java you normally start with Java Standard Edition. It includes APIs to do things like:

OVERVIEW

• The main aim of this talk was to give young professionals a little

help understanding all these technologies.

• What I have covered is a very small amount of the available

technologies and tools available to Java developers.

• Many technologies have come and gone over the years.

• Pick the tool that is right for the job!