Diese Präsentation wurde erfolgreich gemeldet.
Wir verwenden Ihre LinkedIn Profilangaben und Informationen zu Ihren Aktivitäten, um Anzeigen zu personalisieren und Ihnen relevantere Inhalte anzuzeigen. Sie können Ihre Anzeigeneinstellungen jederzeit ändern.

A first look at Open Liberty

A beginner's guide to Open Liberty (https://openliberty.io/) covering history, getting started, configuration, capabilities, java ee, microprofile, docker, microservices and cloud.

  • Loggen Sie sich ein, um Kommentare anzuzeigen.

A first look at Open Liberty

  1. 1. 1 A first look
  2. 2. 2 Agenda • History • Introduction • Server Configuration • Server Features • Right-sizings • Microservices • Summary + Demos
  3. 3. 33 History
  4. 4. 4 “Developer Feedback”
  5. 5. 5 “Developer Feedback” Quotes Evil EPIC FAIL! Exception generator Would never choose it myself Dangerous for your mental health Abandon all hope ye who enter webfear!! Websfear is mostly a generator of frustration and consulting fees
  6. 6. 6 “Developer Feedback” Quotes Evil EPIC FAIL! Exception generator Would never choose it myself Dangerous for your mental health Abandon all hope ye who enter webfear!! Websfear is mostly a generator of frustration and consulting fees
  7. 7. 7 Goals • Efficient • Simple to use • Consistency • Just enough Application Server • Very good for virtualized environments • End of migration • Agile Ready
  8. 8. 88 Introduction getting started
  9. 9. 9 openliberty.io
  10. 10. 10 Getting Started • Simple steps to getting started Download from openliberty.io unzip openliberty-<version>.zip cd wlp bin/server create bin/server start (or run)
  11. 11. 11 Fast & Small Startup 0 1 2 3 4 5 6 7 8 9 Liberty 16.0.0.4 Tomcat 9 M11 WildFly 10.1 TomEE Plus 1.7.4 Startup Time 0 50 100 150 200 250 300 Liberty 16.0.0.4 Tomcat 9 M11 WildFly 10.1 TomEE Plus 1.7.4 Footprint Lower is better
  12. 12. 1212 Demo 1 bin/server create, run/start, stop
  13. 13. 1313 Server configuration simple minimal config, perfect for DevOps
  14. 14. 14 Simple Config <server> <featureManager> <feature>microProfile-1.2</feature> </featureManager> <webApplication location=“myweb.war” contextRoot=“/” /> </server> server.xml -Xmx1g -Dsystem.prop=value jvm.options WLP_OUTPUT_DIR=/usr/wlp-out/ server.env
  15. 15. 15 Composing Config <server> <httpEndpoint id=“defaultHttpEndpoint” host=“${host}” httpPort=“${http}” httpsPort=“${https}”/> </server> configDropins/defaults/common-http.xml <server> <include location="https://myHost/ports.xml”/> <variable name=“host” value=“${my.host}”/> <variable name=“http” value=“${my.host.http}”/> <variable name=“https” value=“${my.host.https}”/> </server> configDropins/overrides/ports.xml
  16. 16. 1616 Demo 2 templatizing config (http port) - factor 3
  17. 17. 1717 Server features the best things come in small packages
  18. 18. 18 Java EE’s got a lot of stuff https://www.slideshare.net/delabassee/java-ee-8-february-2017-update https://medium.com/@alextheedom/java-ee-past-present-future-8bf25df7b6a3
  19. 19. 19 Eclipse MicroProfile : Microservice innovation • Vendor-neutral programming model, designed in the open, for Java microservices • Provide core capabilities for building fault tolerant, scalable, microservices • Increasing the rate and pace of innovation beyond Java EE Standardizing microservices in enterprise Java via the MicroProfile community Config Fault Tolerance Health Check Health Metrics JWT Open Tracing externalize configuration to improve portability build robust behavior to cope with unexpected failures ensure services are running and meeting SLAs understand the interactions between services while running interoperable service authentication and authorization resolve problems in complex distributed systems Invite your developers to join the MicroProfile community and influence the future: http://microprofile.io/
  20. 20. 20 Open Liberty features MicroProfile WebProfile 7 Java EE 7 Java EE 8 (WIP) non-API cdi-1.2 servlet-3.1 jaxws-2.2 servlet-4.0 restConnector-2.0 jsonp-1.0 beanValidation-1.1 jms-2.0 jaxrs-2.1 passwordUtilities-1.0 jaxrs-2.0 cdi-1.2 jca-1.7 jsonb-1.0 federatedRepository-1.0 mpConfig-1.1 jpa-2.1 jaspic-1.1 jsonp-1.1 ldapRegistry-3.0 mpFaultTolerance-1.0 el-3.0 jacc-1.5 javaMail-1.6 monitor-1.0 mpHealth-1.0 jaxrs-2.0 concurrent-1.0 jsf-2.3 bells-1.0 mpMetrics-1.0 managedBeans-1.0 ejb-3.2 appSecurity-2.0 mpJwt-1.0 websocket-1.1 batch-1.0 transportSecurity-1.0 jsonp-1.0 j2eeManagement-1.1 servlet-3.1 javaMail-1.5 jsp-2.3 jsf-2.2 ejbLite-3.2
  21. 21. 2121 Right-sizing use what you choose
  22. 22. 22 Fit-for-purpose server • Get only what you choose • Transitive dependencies automatically included • Minimal footprint • Quick start/shutdown <feature>microProfile-1.0</feature> Kernel appmgrjaxrs-2.0 cdi-1.2jsonp-1.0
  23. 23. 23 Fit-for-purpose server • Server picks up changes dynamically (no restart) • Great for rapid development • Integration with maven and gradle build tools <feature>microProfile-1.2</feature> Kernel appmgrjaxrs-2.0 cdi-1.2jsonp-1.0 mpConfig-1.1 mpMetrics-1.0mpFaultTolerance-1.0 mpHealth-1.0mpJWT-1.0
  24. 24. 24 Package it up • A number of packaging options available, including • Everything: o bin/server package –archive=myServer.zip • Just what you need: o bin/server package --archive=myServer.zip --include=minify • A runnable jar: o bin/server package --archive=myServer.jar --include=minify,runnable
  25. 25. 2525 Demo 3 develop and package a minimal runnable REST service
  26. 26. 2626 Robust Cloud Native Microservices right-size + MicroProfile + Docker
  27. 27. 27 Containerize • Docker provides consistent deployment units in a polyglot world • Package your server + app in docker images (make war not jar - lighter- weight, more caching) • Externalize your configuration Docker server ubuntu java frameworks/libs app.war Jar server ubuntu java frameworks app libs FROM openliberty/open-liberty COPY /wlp/usr/servers/demo4Server /config/ Dockerfile
  28. 28. 28 Cloud Foundry app and config liberty buildpack cf push Deploy to your favorite Container Service FROM open-liberty docker image Kubernetes Pod kubernetes deployment Pod Pod Pod Pod IBM Cloud Private IBM Cloud AWS Azure BYO Kube …
  29. 29. 2929 Demo 4 a Docker microservice
  30. 30. 30 Summary • Simple to get started • Small footprint, fast to start & stop • Simple templatizable configuration perfect for DevOps & Cloud Native • Customizable packaging & Docker support for right-size microservices • Full Java EE and MicroProfile for robust microservices
  31. 31. 31 Useful links • https://openliberty.io/ • https://github.com/openliberty/open-liberty • http://groups.io/g/openliberty • https://stackoverflow.com/questions/tagged/open-liberty • http://www.eclipse.org/openj9/ • https://developer.ibm.com/microservice-builder/
  32. 32. 3232 Thank You!

×