You're pretty flyYou're pretty flyfor a WildFlyfor 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
Zeroturnaround.comZeroturnaround.com
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
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
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.
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
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
Java EE 7Java EE 7
Gone awayGone away
DEMODEMO
Why don't you Why don't you get a job ?get a job ?
JSONJSON
ConcurrencyConcurrency
JAX-RS 2.0JAX-RS 2.0
DEMODEMO
JMS 2.0 (JSR 343)JMS 2.0 (JSR 343)
DEMODEMO
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
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
Java EE 7 IDEJava EE 7 IDE
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
Undertow BenchmarksUndertow Benchmarks
http://www.techempower.com/blog/2014/03/04/one-million-http-rps-without-load-balancing-is-easy/
Undertow APIUndertow API
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
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
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)
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
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
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
In the CloudIn the Cloud
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
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
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
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
Top Related