You're a pretty fly for a WildFly

38
You're pretty fly You're pretty fly for a WildFly for a WildFly

description

Presentation of the new features in JEE7 and WildFly, JBoss open source applciation server.

Transcript of You're a pretty fly for a WildFly

Page 1: You're a pretty fly for a WildFly

You're pretty flyYou're pretty flyfor a WildFlyfor a WildFly

Page 2: You're a pretty fly for a WildFly

●Emmanuel Hugonnet (@ehsavoie)Emmanuel Hugonnet (@ehsavoie)● Senior software developer, Red Hat Inc.Senior software developer, Red Hat Inc.● WildFly core developerWildFly core developer● WildFly Netbeans plugin developerWildFly Netbeans plugin developer

Self EsteemSelf Esteem

Page 3: You're a pretty fly for a WildFly

Zeroturnaround.comZeroturnaround.com

Page 4: You're a pretty fly for a WildFly

If we had to pick a If we had to pick a winnerwinner, it would be , it would be JBossJBoss. The only application server in the . The only application server in the group whose score group whose score never dropped below never dropped below a 4a 4

- - zeroturnaround.comzeroturnaround.com

Page 5: You're a pretty fly for a WildFly

JBoss JBoss consistentlyconsistently performs performs very wellvery well in in each category which is why it also each category which is why it also shinesshines in the developer profiles exercisein the developer profiles exercise

- - zeroturnaround.comzeroturnaround.com

Page 6: You're a pretty fly for a WildFly
Page 7: You're a pretty fly for a WildFly

You're gonna go far, kidYou're gonna go far, kid

Understand the Understand the new featuresnew features of of WildFly 8WildFly 8 and revise some of the and revise some of the features features carry forwardcarry forward from from AS 7.x.AS 7.x.

Page 8: You're a pretty fly for a WildFly

What is WildFly 8 ?What is WildFly 8 ?● Previously called “JBoss Application Server”Previously called “JBoss Application Server”● Upstream for Red Hat JBoss Enterprise Upstream for Red Hat JBoss Enterprise

Application Platform (JBoss EAP)Application Platform (JBoss EAP)● Fast, lightweight, manageableFast, lightweight, manageable● Developer friendlyDeveloper friendly● Supports Java EE standards and beyondSupports Java EE standards and beyond● Open sourceOpen source

Page 9: You're a pretty fly for a WildFly

WildFly 8 Main FeaturesWildFly 8 Main Features● Java EE7 supportJava EE7 support● High performance web server High performance web server UndertowUndertow● Reduced port usageReduced port usage● Role Based Access ControlRole Based Access Control● AuditingAuditing● Automated patchingAutomated patching● Minimalistic "core" distributionMinimalistic "core" distribution

Page 10: You're a pretty fly for a WildFly

Java EE 7Java EE 7

Page 11: You're a pretty fly for a WildFly

Gone awayGone away

Page 12: You're a pretty fly for a WildFly

DEMODEMO

Page 13: You're a pretty fly for a WildFly

Why don't you Why don't you get a job ?get a job ?

Page 14: You're a pretty fly for a WildFly

JSONJSON

Page 15: You're a pretty fly for a WildFly

ConcurrencyConcurrency

Page 16: You're a pretty fly for a WildFly

JAX-RS 2.0JAX-RS 2.0

Page 17: You're a pretty fly for a WildFly

DEMODEMO

Page 18: You're a pretty fly for a WildFly

JMS 2.0 (JSR 343)JMS 2.0 (JSR 343)

Page 19: You're a pretty fly for a WildFly

DEMODEMO

Page 20: You're a pretty fly for a WildFly

Java Transaction API 1.2 (JSR 907)Java Transaction API 1.2 (JSR 907)

● @Transactional@Transactional Transaction boundaries on CDI managed Transaction boundaries on CDI managed beansbeans

● @TransactionScoped@TransactionScoped CDI scope for bean instances CDI scope for bean instances scoped to the active JTA transactionscoped to the active JTA transaction

Page 21: You're a pretty fly for a WildFly

CDI 1.1 (JSR 346)CDI 1.1 (JSR 346)● Automatic enablement for beans with scope annotation and Automatic enablement for beans with scope annotation and

EJBs EJBs ● ''beans.xmlbeans.xml' is optional' is optional● Bean discovery modeBean discovery mode

– allall: All types: All types– annotatedannotated: Types with bean defining annotation: Types with bean defining annotation– nonenone: Disable CDI: Disable CDI

● @Vetoed@Vetoed for programmatic disablement of classes for programmatic disablement of classes● Global ordering/priority of interceptors and decoratorsGlobal ordering/priority of interceptors and decorators

Page 22: You're a pretty fly for a WildFly

Java EE 7 IDEJava EE 7 IDE

Page 23: You're a pretty fly for a WildFly

Millions Miles AwayMillions Miles AwayUndertowUndertow● Flexible & high-performanceFlexible & high-performance● Blocking / non-blocking based on NIOBlocking / non-blocking based on NIO● Composition/handler based architectureComposition/handler based architecture● Lightweight & fully embeddableLightweight & fully embeddable● Supports Servlet 3.1 & HTTP upgradeSupports Servlet 3.1 & HTTP upgrade● mod_clustermod_cluster supported supported● http://undertow.iohttp://undertow.io

Page 24: You're a pretty fly for a WildFly

Undertow BenchmarksUndertow Benchmarks

http://www.techempower.com/blog/2014/03/04/one-million-http-rps-without-load-balancing-is-easy/

Page 25: You're a pretty fly for a WildFly

Undertow APIUndertow API

Page 26: You're a pretty fly for a WildFly

Port ReductionPort Reduction● HTTP UpgradeHTTP Upgrade to reduce the number of ports in the to reduce the number of ports in the

default installation to just twodefault installation to just two– 80808080 for applications with JNDI, EJB & JMS multiplexed for applications with JNDI, EJB & JMS multiplexed– 99909990 for management, for both HTTP/JSON & Native API for management, for both HTTP/JSON & Native API

● Only overhead is the initial HTTP Upgrade Only overhead is the initial HTTP Upgrade request/responserequest/response

Page 27: You're a pretty fly for a WildFly

RBACRBAC● Pre-defined administrative and privileged RolesPre-defined administrative and privileged Roles

– Monitor, Operator, Maintainer, Deployer, Administrator, Auditor, Monitor, Operator, Maintainer, Deployer, Administrator, Auditor, Super UserSuper User

● Roles is a set of PermissionsRoles is a set of Permissions● Permissions specify which Actions (lookup, read, write) Permissions specify which Actions (lookup, read, write)

are allowed on resourcesare allowed on resources● Users or Groups are defined in RolesUsers or Groups are defined in Roles

Page 28: You're a pretty fly for a WildFly

Administrative Audit LoggingAdministrative Audit Logging

● Logging of connection/authentication eventsLogging of connection/authentication events● Logging of management operationsLogging of management operations● Log message as JSON recordsLog message as JSON records● Audit logging handlersAudit logging handlers

– Local fileLocal file– Syslog (UDP / TCP / TLS)Syslog (UDP / TCP / TLS)

Page 29: You're a pretty fly for a WildFly

She's got issuesShe's got issuesAutomated patchingAutomated patching

● Allows libraries and configuration Allows libraries and configuration updates in an installationupdates in an installation

● Patches are zip bundles with updates and metadataPatches are zip bundles with updates and metadata● Multiple one-off patches can be applied; invalidated by Multiple one-off patches can be applied; invalidated by

the next point/CP releasethe next point/CP release● Rollbacks are possibleRollbacks are possible

Page 30: You're a pretty fly for a WildFly

Minimalistic "core" distributionMinimalistic "core" distribution● 15 MB download15 MB download● Rich management layerRich management layer● Fully concurrent service container with advanced Fully concurrent service container with advanced

capabilitiescapabilities● Modular class loading which enables multi-tenancy of Modular class loading which enables multi-tenancy of

applicationsapplications● Pluggable hot deployment layerPluggable hot deployment layer● Built-in lightweight web serverBuilt-in lightweight web server

Page 31: You're a pretty fly for a WildFly

Ixnay on the HombreIxnay on the Hombre

● Improved JDK8 compatibilityImproved JDK8 compatibility● Per-deployment security permissionsPer-deployment security permissions● RESTEasy 3RESTEasy 3● Hibernate searchHibernate search● New public clustering APINew public clustering API● Pruned: CMP, JAX-RPC, JSR 88Pruned: CMP, JAX-RPC, JSR 88

Page 32: You're a pretty fly for a WildFly

In the CloudIn the Cloud

Page 33: You're a pretty fly for a WildFly

The conspiracy of The conspiracy of Jboss AS 7Jboss AS 7

● Standalone and Managed DomainStandalone and Managed Domain● Centralized AdministrationCentralized Administration

– Command Line Interface (jboss-cli)Command Line Interface (jboss-cli)– Admin ConsoleAdmin Console– Configuration filesConfiguration files

Page 34: You're a pretty fly for a WildFly

The kids aren't allrightThe kids aren't allrightDomainDomain● StandaloneStandalone: single independent instance: single independent instance● Managed domainManaged domain: manage multiple WildFly instances : manage multiple WildFly instances

from a single control pointfrom a single control point– Host controllerHost controller– Domain controllerDomain controller– Server groupServer group– ServerServer

Page 35: You're a pretty fly for a WildFly
Page 36: You're a pretty fly for a WildFly

Command Line InterfaceCommand Line Interface

● jboss-cli.shjboss-cli.sh||batbat● Connects to standalone instance or Domain controllerConnects to standalone instance or Domain controller● Interactive mode: *nix-style shellInteractive mode: *nix-style shell

– Contextual command and resource-tab completionContextual command and resource-tab completion

● Non-interactive mode: commands in filesNon-interactive mode: commands in files● High-level compound operationsHigh-level compound operations● Persistent changesPersistent changes

Page 37: You're a pretty fly for a WildFly

Admin ConsoleAdmin Console

● SimpleSimple● FastFast● LightweightLightweight● Avoids XML configurationAvoids XML configuration● Single instance and domainsSingle instance and domains● Mostly configuration, basic monitoringMostly configuration, basic monitoring

– Not a Red Hat JBoss Operations Network replacement Not a Red Hat JBoss Operations Network replacement

Page 38: You're a pretty fly for a WildFly