glassfish in production environments

41
GlassFish in Production Environments Bruno Borges Principal Product Manager Java Evangelist

Upload: bruno-borges

Post on 11-May-2015

5.108 views

Category:

Technology


0 download

DESCRIPTION

Get to know GlassFish Community, the differences between Oracle GlassFish Server, and also all the capabilities for Management, Administrative tasks, Monitoring, Tuning and Configuration for Production Environments of all your Java EE applications

TRANSCRIPT

Page 1: GlassFish in Production Environments

Copyright © 2012, Oracle and/or its affiliates. All rights reserved.1

GlassFish in Production EnvironmentsBruno BorgesPrincipal Product ManagerJava Evangelist

Page 2: GlassFish in Production Environments

Copyright © 2012, Oracle and/or its affiliates. All rights reserved.2

The following is intended to outline our general product direction. It is intended for information purposes only, and may not be incorporated into any contract. It is not a commitment to deliver any material, code, or functionality, and should not be relied upon in making purchasing decisions. The development, release, and timing of any features or functionality described for Oracle’s products remains at the sole discretion of Oracle.

Page 3: GlassFish in Production Environments

Copyright © 2012, Oracle and/or its affiliates. All rights reserved.3

OpenSourceProject

Commercial Product

GlassFish Server

ReferenceImplementation

GlassFish

Page 4: GlassFish in Production Environments

Copyright © 2012, Oracle and/or its affiliates. All rights reserved.4

GlassFish ServerReference Implementation

Page 5: GlassFish in Production Environments

Copyright © 2012, Oracle and/or its affiliates. All rights reserved.5

Java EE – And GlassFish - Journey

Java EE 7

2005-2012

Ease ofDevelopment

Lightweight

Developer Productivity & HTML5

32 specs

1998-2004

Enterprise Java Platform

Robustness

Web Services J2EE

20 specs EE 5, EE 6

28 specs

2013 - Future

Page 6: GlassFish in Production Environments

Copyright © 2012, Oracle and/or its affiliates. All rights reserved.6

Java EE 7 ThemesJava EE 7 Themes

DEVELOPER PRODUCTIVITY

MEETING ENTERPRISE DEMANDS

Java EE 7

Batch Concurrency Simplified JMS

More annotated POJOs Less boilerplate code Cohesive integrated

platform

WebSockets JSON Servlet 3.1 NIO REST

Page 7: GlassFish in Production Environments

Copyright © 2012, Oracle and/or its affiliates. All rights reserved.7

Java EE 7 Community Momentum

AC

TIV

E P

RO

JEC

TS

26

Active and transparent mailing lists

JSR

s AD

OP

TE

D

22

JUG

s

19

Adopt a JSR

PR

OM

OT

ED

BU

ILD

S89

GlassFish

YOU

187

CO

MP

AN

IES

32

EX

PE

RT

S

SP

EC

LE

AD

S

16

AC

TIV

E JS

Rs

14

Page 8: GlassFish in Production Environments

Copyright © 2012, Oracle and/or its affiliates. All rights reserved.8

GlassFish ServerOpen Source Project

Page 9: GlassFish in Production Environments

Copyright © 2012, Oracle and/or its affiliates. All rights reserved.9

GlassFish Server

Built in open source

World’s first Java EE 7 Application Server

Lightweight / modular / easy to use

Production ready

Open Source Project

Page 10: GlassFish in Production Environments

Copyright © 2012, Oracle and/or its affiliates. All rights reserved.10

The GlassFish Community

10+ million annual downloads

FishCAT - Early testing and fixes

Active user forums

Community contributions

Page 11: GlassFish in Production Environments

Copyright © 2012, Oracle and/or its affiliates. All rights reserved.11

Centralized management

Integrated GlassFish Server Provisioning Manage instance/cluster lifecycle Manage configurations Manage Java EE resources Manage application lifecycle

Page 12: GlassFish in Production Environments

Copyright © 2012, Oracle and/or its affiliates. All rights reserved.12

Flexible Administration

Web Browser

REST API

Command Line

Page 13: GlassFish in Production Environments

Copyright © 2012, Oracle and/or its affiliates. All rights reserved.13

GlassFish Server Administration Architecture

Cluster 1

DomainAdministration

Server

(DAS)

instance4

ssh /dcom /http

http

Repository

instance2

instance3

instance1

RESTJSONXML

Page 14: GlassFish in Production Environments

Copyright © 2012, Oracle and/or its affiliates. All rights reserved.14

GlassFish Server Clustering

Manage 100 instances per domain– Standalone

– Clusters (max 10 per cluster)

Dynamically resize cluster JMS Broker Clustering Load Balancing

– Commercial plugin

– AJP (mod_jk, mod_proxy)

Page 15: GlassFish in Production Environments

Copyright © 2012, Oracle and/or its affiliates. All rights reserved.15

Application Versioning

Deploy multiple versions application versions Activate any version For example:

– Roll forward and backwards between versions

– Pre-deploy application for later activation

– Enable new version at specific time of day Deploy versi

on 1

Dep

loy

vers

ion

2

Rollback

Page 16: GlassFish in Production Environments

Copyright © 2012, Oracle and/or its affiliates. All rights reserved.16

GlassFish Modularity

Starts in seconds Only loads required

modules Including

“infrastructure” features

In a nutshell

OSGi

EJB Servlet

274

JPA

JMS Broker

app1.war

CDI

CDI REST WebSocket Bean Validation

Clustering Console HTTP

app2.ear

Page 17: GlassFish in Production Environments

Copyright © 2012, Oracle and/or its affiliates. All rights reserved.17

OSGi Support

OSGi Runtime (Apache Felix)– Also runs on others

– Ships with ~275 modules

– Integrates OSGi management tools

Hybrid Java EE / OSGi Applications– Expose EJBs as OSGi Services

– Inject OSGi services into Java EE applications

Run any OSGi bundle Supports OSGi Enterprise

Page 18: GlassFish in Production Environments

Copyright © 2012, Oracle and/or its affiliates. All rights reserved.18

Extending GlassFish Server

Define a new container– System-level logic

– Implement administration commands

Expose administration capabilities– Administration Console

– Command Line

– RESTful Interface

Embeddable API Re-brand user interface

Page 19: GlassFish in Production Environments

Copyright © 2012, Oracle and/or its affiliates. All rights reserved.19

Built-in Developer Features

Ultra-fast deployment– Hot deployment

– Directory deployment

– Auto-deploy directory

Run as a single JAR java –jar glassfish.jar app1.war

Maven Plugin mvn gf:run, gf:start, gf:deploy

Page 20: GlassFish in Production Environments

Copyright © 2012, Oracle and/or its affiliates. All rights reserved.20

Active Redeploy

Maintains state across redeploys

Rapid Iterative development– Edit

– Save

– Refresh

1) Edit

2) Save

3) Refresh

Page 21: GlassFish in Production Environments

Copyright © 2012, Oracle and/or its affiliates. All rights reserved.21

NetBeans 7.3.1 + GlassFish 4.0

NetBeans bundles GlassFish Incremental compilation; auto-deploy Complete Java EE 7 support

– All Java EE 7 project types

– Maven Support

– Wizards

– Advanced Wizards Entity to REST generation Database to JSF 2.2

Page 22: GlassFish in Production Environments

Copyright © 2012, Oracle and/or its affiliates. All rights reserved.22

Oracle GlassFish ServerCommercial Product

Page 23: GlassFish in Production Environments

Copyright © 2012, Oracle and/or its affiliates. All rights reserved.23

Oracle GlassFish Server

Commercial Distribution of GlassFish Server Open Source Edition

GlassFish Server Control Java SE support 24 x 7 x 365 premium support Regular patch releases Indemnification

Java EE 6 Compliant

Page 24: GlassFish in Production Environments

Copyright © 2012, Oracle and/or its affiliates. All rights reserved.24

Oracle Enterprise Manager 12c

Features– Discovery

Applications not discovered

– OOTB Monitoring (live, historical)

– Event Monitoring

– Configuration management

– Process controle (live, schduled)

EM FMW Plugin 12.1.0.4 GlassFish Open Source and Commercial versions

GlassFish Plugin

Page 25: GlassFish in Production Environments

Copyright © 2012, Oracle and/or its affiliates. All rights reserved.25

GlassFish Server Control

Performance TunerDAS Backup & RecoveryMonitoring

Scripting Client

ActiveCache for GlassFishOracle Access

Manager IntegrationLoad Balancer

Plugin & Installer

Page 26: GlassFish in Production Environments

Copyright © 2012, Oracle and/or its affiliates. All rights reserved.26

TUNING FOR PRODUCTION ENVIRONMENTS

Page 27: GlassFish in Production Environments

Copyright © 2012, Oracle and/or its affiliates. All rights reserved.27

Quick Start and Overview

Download from glassfish.org– ZIP and native installers (Mac, Linux, Windows)

– Download Size Smallest at 37Mb for English Web Profile Biggest at 114Mb for Multilingual Full Profile

Install (requires JDK 7)

– Execute native installer or uncompress ZIP file

Run– $ cd glassfish4

– $ ./bin/asadmin start-domain

Download, Install, Run

Page 28: GlassFish in Production Environments

Copyright © 2012, Oracle and/or its affiliates. All rights reserved.28

Page 29: GlassFish in Production Environments

Copyright © 2012, Oracle and/or its affiliates. All rights reserved.29

Default configurations

GlassFish comes by default best configured for development environments

– Default security configurations OTOH come pre-configured

– A default GF domain does not enables remote access for admin

Best for hot deployment Great for integrating and using from within IDEs

Development purpose

Page 30: GlassFish in Production Environments

Copyright © 2012, Oracle and/or its affiliates. All rights reserved.30

Basic stuff: JVM options

A production domain will need more memory, and other fine tuned options

– Edit <java-config> inside domain.xml manually, or

– Edit through Admin CLI or Web UI

JVM Options

-Xms and -Xmx to same value (at least 2GB)

-XX:MaxPermSize and -XX:MinPermSize to same value (at least 256mb)

More memory for production environments

Page 31: GlassFish in Production Environments

Copyright © 2012, Oracle and/or its affiliates. All rights reserved.31

Garbage Collector and Heaps

There are several options, but G1 is available for a while and you should consider it. Analyse, compare, and decide

Enable -verboce:gc Enable -XX:+PrintGCDetails Inform -Xloggc:/tmp/my_glassfish_vm_gc.log Make sure devs can’t freeze your VM by enabling

– XX:+DisableExplicitGC

Enable heap dump for when you get OOME

Analyse and consider G1 from HotSpot 7

Page 32: GlassFish in Production Environments

Copyright © 2012, Oracle and/or its affiliates. All rights reserved.32

Disabling Developer Features

Disable auto-deploy and dynamic application reload Disable JSP check for modified date Enable cache of characters in Strings

– Edit domain1/config/default-web.xml

– genStrAsCharArray=true

– ** this might bring encoding issues

Because this is a production environment

Page 33: GlassFish in Production Environments

Copyright © 2012, Oracle and/or its affiliates. All rights reserved.33

Request and Acceptor Threads

Define Acceptor Threads to a number similar to the number of Cores in your CPU

Increase the number of threads for the HTTP Listener, to as much as your CPU can handle simultaneously

Set min and max threads pool size to same value

Handling more than <several> users at the same time

Page 34: GlassFish in Production Environments

Copyright © 2012, Oracle and/or its affiliates. All rights reserved.34

LOGGING

Always disable:

Unnecessary logging

Page 35: GlassFish in Production Environments

Copyright © 2012, Oracle and/or its affiliates. All rights reserved.35

Monitor, tune, monitor, tune

Always monitor

Keep tuning

Tools– jmap / jps, jstat, jconsole

Page 36: GlassFish in Production Environments

Copyright © 2012, Oracle and/or its affiliates. All rights reserved.36

CUSTOMERSTORIES

Page 37: GlassFish in Production Environments

Copyright © 2012, Oracle and/or its affiliates. All rights reserved.37

Customers using GlassFish in Production

Jelastic was the first cloud to provide GlassFish 4.0 with Java EE 7 Pense Imóveis, real estate buyer/seller network Guia da Semana, enterteinment/schedule website Parleys.com CloudBees first to ofer Java EE 7 (Using GlassFish)

Besides Jelastic

Page 38: GlassFish in Production Environments

Copyright © 2012, Oracle and/or its affiliates. All rights reserved.38

ROADMAP

Page 39: GlassFish in Production Environments

Copyright © 2012, Oracle and/or its affiliates. All rights reserved.39

GlassFish Server 4.x

2013 2014

GlassFish Server 4.0• Java EE 7• Open Source Edition• Clustering (early access)

GlassFish Server 4.0.1• Bug Fixes

GlassFish Server 4.1• Clustering• Improve modularization• GlassFish Server Control• Oracle GlassFish Server• Bug fixes

Major

Minor

Page 40: GlassFish in Production Environments

Copyright © 2012, Oracle and/or its affiliates. All rights reserved.40

Future of Java EE

JCACHEStateManagementConfiguration

HTML5 ++Cloud / PaaS

JSONBinding

Java EE 8and Beyond

NoSQL

Page 41: GlassFish in Production Environments

Copyright © 2012, Oracle and/or its affiliates. All rights reserved.41