Building Cloud Native
Applications with Helidon
Dmitry Kornilov
Senior Software Development Manager
Oracle
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,
timing, and pricing of any features or functionality described for Oracle’s products may change and remains at
the sole discretion of Oracle Corporation.
Statements in this presentation relating to Oracle’s future plans, expectations, beliefs, intentions and prospects
are “forward-looking statements” and are subject to material risks and uncertainties. A detailed discussion of
these factors and other risks that affect our business is contained in Oracle’s Securities and Exchange
Commission (SEC) filings, including our most recent reports on Form 10-K and Form 10-Q under the heading
“Risk Factors.”These filings are available on the SEC’s website or on Oracle’s website
at http://www.oracle.com/investor. All information in this presentation is current as of September 2019 and
Oracle undertakes no duty to update any statement in light of new information or future events.
Safe Harbor
Copyright © 2019 Oracle and/or its affiliates.
Dmitry Kornilov
Senior Software Development Manager
HelidonTeam
Oracle
Copyright © 2019 Oracle and/or its affiliates.
Agenda
• Helidon Introduction
• Helidon SE and Helidon MP
• Customer Story:Tele2 (Sweden)
• Q & A
Copyright © 2019 Oracle and/or its affiliates.
Copyright © 2019 Oracle and/or its affiliates.
Helidon (Χελιδόνι) = Swallow (Greek)
Copyright © 2019 Oracle and/or its affiliates.
A set of Java libraries
for developing microservices
Project Helidon
• Open
• Innovative
• Support standards
• Supported active project
Copyright © 2019 Oracle and/or its affiliates.
Open Source
• Hosted on GitHub
• https://github.com/oracle/helidon
• Apache 2.0 License
Copyright © 2019 Oracle and/or its affiliates.
Supported Active Project
• Open Source support
• Web Site with guides and tutorials: https://helidon.io
• Public Slack channel: https://helidon.slack.com
• GitHub issues tracker: https://github.com/oracle/helidon/issues
• Management has committed to commercial support of Helidon
• AnyWebLogic licensed customer is automatically supported for
Helidon use
Copyright © 2019 Oracle and/or its affiliates.
Landscape
Copyright © 2019 Oracle and/or its affiliates.
Landscape
Copyright © 2019 Oracle and/or its affiliates.
Copyright © 2019 Oracle and/or its affiliates.
• Microframework
• Tiny Footprint
• Functional style
• Reactive
• Transparent
• MicroProfile 2.2
• Small Footprint
• Declarative style
• Dependency Injection
• CDI, JAX-RS, JSON-P/B
Copyright © 2019 Oracle and/or its affiliates.
Routing routing =
Routing.builder()
.get("/hello", (req, res) ->
res.send("Hello World"))
.build();
WebServer.create(routing)
.start();
@Path("hello")
public class HelloWorld {
@GET
public String hello() {
return "Hello World";
}
}
Helidon Architecture
Copyright © 2019 Oracle and/or its affiliates.
Helidon MP
Helidon SE
Extensions
Helidon SE Components
Copyright © 2019 Oracle and/or its affiliates.
Reactive Web
Server
Config
Security Tracing
Metrics
Health Check gRPC
MP
MP
MP
MP
MP
MP
Helidon DB Client
Startup Time
Copyright © 2019 Oracle and/or its affiliates.
Information source
Lower is better
TechEmpower JSON (reqs/sec)
Copyright © 2019 Oracle and/or its affiliates.
0
50000
100000
150000
200000
250000
300000
350000
Java SE JVM
Helidon SE Micronaut DropWizard Spring
Higher is better
Data source
GraalVM
• Building native executable for Helidon SE applications
• Startup time is tens of milliseconds
• Native executable size is smaller than application + JVM
• Supported profiles:
• Local build (for the OS installed locally)
• Docker build (for Linux)
Copyright © 2019 Oracle and/or its affiliates.
MicroProfile
• Open source community specification for Enterprise Java
microservices
• Hosted at Eclipse Foundation
• Participants:
• Oracle, IBM, Red Hat, Payara,Tomitribe, Microsoft and others
• 8 releases since 2016
• https://microprofile.io
Copyright © 2019 Oracle and/or its affiliates.
Copyright © 2019 Oracle and/or its affiliates.
Helidon MP supports the latest
MicroProfile 3.0
Helidon MP Components
Copyright © 2019 Oracle and/or its affiliates.
MP Config Metrics
Health
Check
Fault
Tolerance
JWT Auth
JAX-RS CDI JSON-P / B
Open API
Open
Tracing
REST Client
SE SE
SE
JPA
gRPC
JTA
SESE SE SE
SE
Roadmap
Copyright © 2019 Oracle and/or its affiliates.
Earlier in 2019 Q3 2019
✓ Helidon 1.0
✓ GraalVM support
✓ MicroProfile 2.2
✓ JPA and JTA
✓ gRPC support
✓ MicroProfile 3.0
✓ Hibernate Support
✓ UCP Support
Q4 2019+
• Commercial support
• More GraalVM support
• HTTP Multipart
• HTTP/2
• Reactive HTTP Client
• Helidon DB Client
• Messaging / Kafka
Helidon-related Sessions on CodeOne 2019
Copyright © 2019 Oracle and/or its affiliates.
Thursday, Sep 19
09:00 AM - 09:45 AM Helidon MicroProfile: Managing Persistence with JPA
Moscone South - Room 206
Migrating a Single MonolithicApplication to Microservices
Moscone South - Room 204
12:15 PM - 01:00 PM
ThankYou
Dmitry Kornilov
Senior Software Development Manager
Oracle
Copyright © 2019 Oracle and/or its affiliates.
A Customer Experience
HELIDON.IO
Oracle Open World - 2019
• System Developer since 1993
• Java since 1998 (v 1.2)
• Certified Lead Developer - 2012
• Certified IT Architect – 2016
• Third OOW. First presenting!
• Tele2 – BSS (BAAM)
• Lead Developer / System Architect
• REST (Representational State Transfer)
• JAX-RS (JSR 311 & JSR 339) – Jersey - 4
years
• Microservices – Spring Boot – 3 years
Johan Palmer
Oracle Open World - 2019
We fearlessly liberate people to live a more connected life
THIS IS TELE2
Corporate Communications, August 2019
28
The Tele2 Group
10.3
Million
Customers
HQ
Sweden
5+1
Markets
and IoT
A Baltic Sea Challenger focused on Sweden, Estonia, Latvia and Lithuania.
Tele2 also operates in Germany and provides IoT solutions globally.
5.2
Thousands
Employees
29
OUR PURPOSE
We fearlessly liberate
people to live a more
connected life
We are becoming a truly integrated challenger with
seamlessly combined offerings to consumers and
businesses
Our core capabilities enable us to win
Responsible Challenger Most Reliable NetworkWinning People & Culture
Mobile Fixed TV
Integrity &
Security
IoT
Customer
Focus
Operational
Excellence
30
Our Award
Winning Brands
• Meetup in Stockholm in April - DiscoTech, By Oracle
• Helidon presentation for Tele2
• Documentation, community (slack channel)
• Open source, https://github.com/oracle/helidon.git
• Simple and fast (Pure java, web core by Netty)
• MicroProfile Support (JAX-RS, CDI)
• Reactive WebServer (Reactive Streams, Netty)
• Observable and Resilient (Config, Health Checks, Metrics, Tracing, …)
Why helidon.io?
Oracle Open World - 2019
• Challenge existing way of working & technologies
• Microservices implementation agnostic
• Power to the teams
• Current system environment – How will it fit?
Challenger
Oracle Open World - 2019
• Microservice architecture - Spring Boot (Embedded Tomcat, Similar to JAX-RS)
• Monitoring:
• Actuator
• Health checks, Metrics, Info, etc.
• Spring Boot Admin
• Logging - Elasticsearch, Logstash, and Kibana
• Version control: Git (GitLab)
• Project management: maven
• Continuous Integration and Delivery: Jenkins
• Deployment: VM, DockerEE, Kubernetes
 Helidon fits within the current frame
Tele2 – System Environment
Oracle Open World - 2019
• Real business case
• Make production ready
POC (Proof of Concept)/Project
Oracle Open World - 2019
• External Campaign Service sends offers by email to our customers.
• Up to one million emails sent per day.
• Visible on MyPages - tele2.com
• Visible from Customer Service application
 Shared view of customer communication.
 Simplify customer service work and shorten queue time.
Business Case
Oracle Open World - 2019
High Level Design
Oracle Open World - 2019
• Two main processes identified
• Import process
• View process (list, view)
POC / Project - Processes
Oracle Open World - 2019
Import Process Flow
Oracle Open World - 2019
Import Process Flow
Oracle Open World - 2019
External Campaign Service
Oracle Open World - 2019
campaign service
User
customerId_Id.zip
Zip
customerId_Id.pdf
customerId_Id.json
p d f
json
Disk: /../../..
Import Process Flow
Oracle Open World - 2019
document-inbound-service
Oracle Open World - 2019
• Spring Boot 2.1.7
• Apache Camel 2.24.0
• Oracle AQ (Apache ActiveMQ)
document-inbound-service
customerId_id.zip
queue
Import Process Flow
Oracle Open World - 2019
document-handler-service
Oracle Open World - 2019
• Spring Boot 2.1.7
• Apache Camel 2.24.0
• http multipart request to document-storage-service
http multipartdocument-handler-service
customerId_id.zip
queue document-storage-service
json
pdf
Extract
Import Process Flow
Oracle Open World - 2019
• Helidon SE
• Reactive Streams Java Driver
• MongoDB
document-storage-service
Oracle Open World - 2019
Reactive
Streams
Driver
document-storage-service
DB
REST
document-storage-service – REST API
Oracle Open World - 2019
Request parameter owner=“userId” required on all requests
View Process Flow
Oracle Open World - 2019
• Helidon MP
• Angular - Static content
• REST API - @Path("/api/...")
• Integrates with document-storage-service (upload, list, view, delete)
document-storage-application
Oracle Open World - 2019
DB
User
document-storage-application
API
document-storage-application
UI
document-storage-service
Helidon MP Helidon SE
• mvn archetype helidon-quickstart-mp
• pom.xml, microprofile-config.properties, Dockerfile, logging.properties, Sample endpoint
• JAX-RS – Jersey
• @Annotations
• CDI -Contexts and Dependency Injection
• multipart/form-data
• Rest client - WebTarget - javax.ws.rs.client.WebTarget
• Config - Yaml, System property -Denvironment="prod”
• Health Checks - /health
• Metrics - /metrics
• OpenApi - /openapi – yaml through @
• Static content Support – Angular
Helidon MP
Oracle Open World - 2019
• mvn archetype helidon-quickstart-se
• Pom.xml, application.yaml, Dockerfile, logging.properties , Sample endpoint
• Config - Yaml, System property -Denvironment="prod”
• Health Checks - /health
• Metrics - /metrics
• OpenApi - /openapi – implements OASModelReader
• multipart/form-data (meta & document) - org.jvnet.mimepull
• Reactive Streams
• MongoDB Reactive Streams Java Driver
Helidon SE
Oracle Open World - 2019
• Easy to get started - Documentation, archetype, …
• Easy to use (mvn, IDE)
• Great fit with our current environment. Based on known techniques.
• Jar …
• Small footprint & high performance
• 37K / 1,1 sec
• MP/SE trade off
• Take one thing at the time (MP/SE/Reactive/DB)
• Real business case
• Challenge existing way of working / technologies
Summary
Oracle Open World - 2019
THANK YOU!
Thanks Oracle & Helidon!
LinkedIn: www.linkedin.com/in/mrjohanpalmer
Twitter: @mrjohanpalmer
Email: Johan.a.palmer@tele2.com

Building Cloud-Native Applications with Helidon

  • 1.
    Building Cloud Native Applicationswith Helidon Dmitry Kornilov Senior Software Development Manager Oracle
  • 2.
    The following isintended 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, timing, and pricing of any features or functionality described for Oracle’s products may change and remains at the sole discretion of Oracle Corporation. Statements in this presentation relating to Oracle’s future plans, expectations, beliefs, intentions and prospects are “forward-looking statements” and are subject to material risks and uncertainties. A detailed discussion of these factors and other risks that affect our business is contained in Oracle’s Securities and Exchange Commission (SEC) filings, including our most recent reports on Form 10-K and Form 10-Q under the heading “Risk Factors.”These filings are available on the SEC’s website or on Oracle’s website at http://www.oracle.com/investor. All information in this presentation is current as of September 2019 and Oracle undertakes no duty to update any statement in light of new information or future events. Safe Harbor Copyright © 2019 Oracle and/or its affiliates.
  • 3.
    Dmitry Kornilov Senior SoftwareDevelopment Manager HelidonTeam Oracle Copyright © 2019 Oracle and/or its affiliates.
  • 4.
    Agenda • Helidon Introduction •Helidon SE and Helidon MP • Customer Story:Tele2 (Sweden) • Q & A Copyright © 2019 Oracle and/or its affiliates.
  • 5.
    Copyright © 2019Oracle and/or its affiliates. Helidon (Χελιδόνι) = Swallow (Greek)
  • 6.
    Copyright © 2019Oracle and/or its affiliates. A set of Java libraries for developing microservices
  • 7.
    Project Helidon • Open •Innovative • Support standards • Supported active project Copyright © 2019 Oracle and/or its affiliates.
  • 8.
    Open Source • Hostedon GitHub • https://github.com/oracle/helidon • Apache 2.0 License Copyright © 2019 Oracle and/or its affiliates.
  • 9.
    Supported Active Project •Open Source support • Web Site with guides and tutorials: https://helidon.io • Public Slack channel: https://helidon.slack.com • GitHub issues tracker: https://github.com/oracle/helidon/issues • Management has committed to commercial support of Helidon • AnyWebLogic licensed customer is automatically supported for Helidon use Copyright © 2019 Oracle and/or its affiliates.
  • 10.
    Landscape Copyright © 2019Oracle and/or its affiliates.
  • 11.
    Landscape Copyright © 2019Oracle and/or its affiliates.
  • 12.
    Copyright © 2019Oracle and/or its affiliates. • Microframework • Tiny Footprint • Functional style • Reactive • Transparent • MicroProfile 2.2 • Small Footprint • Declarative style • Dependency Injection • CDI, JAX-RS, JSON-P/B
  • 13.
    Copyright © 2019Oracle and/or its affiliates. Routing routing = Routing.builder() .get("/hello", (req, res) -> res.send("Hello World")) .build(); WebServer.create(routing) .start(); @Path("hello") public class HelloWorld { @GET public String hello() { return "Hello World"; } }
  • 14.
    Helidon Architecture Copyright ©2019 Oracle and/or its affiliates. Helidon MP Helidon SE Extensions
  • 15.
    Helidon SE Components Copyright© 2019 Oracle and/or its affiliates. Reactive Web Server Config Security Tracing Metrics Health Check gRPC MP MP MP MP MP MP Helidon DB Client
  • 16.
    Startup Time Copyright ©2019 Oracle and/or its affiliates. Information source Lower is better
  • 17.
    TechEmpower JSON (reqs/sec) Copyright© 2019 Oracle and/or its affiliates. 0 50000 100000 150000 200000 250000 300000 350000 Java SE JVM Helidon SE Micronaut DropWizard Spring Higher is better Data source
  • 18.
    GraalVM • Building nativeexecutable for Helidon SE applications • Startup time is tens of milliseconds • Native executable size is smaller than application + JVM • Supported profiles: • Local build (for the OS installed locally) • Docker build (for Linux) Copyright © 2019 Oracle and/or its affiliates.
  • 19.
    MicroProfile • Open sourcecommunity specification for Enterprise Java microservices • Hosted at Eclipse Foundation • Participants: • Oracle, IBM, Red Hat, Payara,Tomitribe, Microsoft and others • 8 releases since 2016 • https://microprofile.io Copyright © 2019 Oracle and/or its affiliates.
  • 20.
    Copyright © 2019Oracle and/or its affiliates. Helidon MP supports the latest MicroProfile 3.0
  • 21.
    Helidon MP Components Copyright© 2019 Oracle and/or its affiliates. MP Config Metrics Health Check Fault Tolerance JWT Auth JAX-RS CDI JSON-P / B Open API Open Tracing REST Client SE SE SE JPA gRPC JTA SESE SE SE SE
  • 22.
    Roadmap Copyright © 2019Oracle and/or its affiliates. Earlier in 2019 Q3 2019 ✓ Helidon 1.0 ✓ GraalVM support ✓ MicroProfile 2.2 ✓ JPA and JTA ✓ gRPC support ✓ MicroProfile 3.0 ✓ Hibernate Support ✓ UCP Support Q4 2019+ • Commercial support • More GraalVM support • HTTP Multipart • HTTP/2 • Reactive HTTP Client • Helidon DB Client • Messaging / Kafka
  • 23.
    Helidon-related Sessions onCodeOne 2019 Copyright © 2019 Oracle and/or its affiliates. Thursday, Sep 19 09:00 AM - 09:45 AM Helidon MicroProfile: Managing Persistence with JPA Moscone South - Room 206 Migrating a Single MonolithicApplication to Microservices Moscone South - Room 204 12:15 PM - 01:00 PM
  • 24.
    ThankYou Dmitry Kornilov Senior SoftwareDevelopment Manager Oracle Copyright © 2019 Oracle and/or its affiliates.
  • 25.
  • 26.
    • System Developersince 1993 • Java since 1998 (v 1.2) • Certified Lead Developer - 2012 • Certified IT Architect – 2016 • Third OOW. First presenting! • Tele2 – BSS (BAAM) • Lead Developer / System Architect • REST (Representational State Transfer) • JAX-RS (JSR 311 & JSR 339) – Jersey - 4 years • Microservices – Spring Boot – 3 years Johan Palmer Oracle Open World - 2019
  • 27.
    We fearlessly liberatepeople to live a more connected life THIS IS TELE2 Corporate Communications, August 2019
  • 28.
    28 The Tele2 Group 10.3 Million Customers HQ Sweden 5+1 Markets andIoT A Baltic Sea Challenger focused on Sweden, Estonia, Latvia and Lithuania. Tele2 also operates in Germany and provides IoT solutions globally. 5.2 Thousands Employees
  • 29.
    29 OUR PURPOSE We fearlesslyliberate people to live a more connected life We are becoming a truly integrated challenger with seamlessly combined offerings to consumers and businesses Our core capabilities enable us to win Responsible Challenger Most Reliable NetworkWinning People & Culture Mobile Fixed TV Integrity & Security IoT Customer Focus Operational Excellence
  • 30.
  • 31.
    • Meetup inStockholm in April - DiscoTech, By Oracle • Helidon presentation for Tele2 • Documentation, community (slack channel) • Open source, https://github.com/oracle/helidon.git • Simple and fast (Pure java, web core by Netty) • MicroProfile Support (JAX-RS, CDI) • Reactive WebServer (Reactive Streams, Netty) • Observable and Resilient (Config, Health Checks, Metrics, Tracing, …) Why helidon.io? Oracle Open World - 2019
  • 32.
    • Challenge existingway of working & technologies • Microservices implementation agnostic • Power to the teams • Current system environment – How will it fit? Challenger Oracle Open World - 2019
  • 33.
    • Microservice architecture- Spring Boot (Embedded Tomcat, Similar to JAX-RS) • Monitoring: • Actuator • Health checks, Metrics, Info, etc. • Spring Boot Admin • Logging - Elasticsearch, Logstash, and Kibana • Version control: Git (GitLab) • Project management: maven • Continuous Integration and Delivery: Jenkins • Deployment: VM, DockerEE, Kubernetes  Helidon fits within the current frame Tele2 – System Environment Oracle Open World - 2019
  • 34.
    • Real businesscase • Make production ready POC (Proof of Concept)/Project Oracle Open World - 2019
  • 35.
    • External CampaignService sends offers by email to our customers. • Up to one million emails sent per day. • Visible on MyPages - tele2.com • Visible from Customer Service application  Shared view of customer communication.  Simplify customer service work and shorten queue time. Business Case Oracle Open World - 2019
  • 36.
    High Level Design OracleOpen World - 2019
  • 37.
    • Two mainprocesses identified • Import process • View process (list, view) POC / Project - Processes Oracle Open World - 2019
  • 38.
    Import Process Flow OracleOpen World - 2019
  • 39.
    Import Process Flow OracleOpen World - 2019
  • 40.
    External Campaign Service OracleOpen World - 2019 campaign service User customerId_Id.zip Zip customerId_Id.pdf customerId_Id.json p d f json Disk: /../../..
  • 41.
    Import Process Flow OracleOpen World - 2019
  • 42.
    document-inbound-service Oracle Open World- 2019 • Spring Boot 2.1.7 • Apache Camel 2.24.0 • Oracle AQ (Apache ActiveMQ) document-inbound-service customerId_id.zip queue
  • 43.
    Import Process Flow OracleOpen World - 2019
  • 44.
    document-handler-service Oracle Open World- 2019 • Spring Boot 2.1.7 • Apache Camel 2.24.0 • http multipart request to document-storage-service http multipartdocument-handler-service customerId_id.zip queue document-storage-service json pdf Extract
  • 45.
    Import Process Flow OracleOpen World - 2019
  • 46.
    • Helidon SE •Reactive Streams Java Driver • MongoDB document-storage-service Oracle Open World - 2019 Reactive Streams Driver document-storage-service DB REST
  • 47.
    document-storage-service – RESTAPI Oracle Open World - 2019 Request parameter owner=“userId” required on all requests
  • 48.
    View Process Flow OracleOpen World - 2019
  • 49.
    • Helidon MP •Angular - Static content • REST API - @Path("/api/...") • Integrates with document-storage-service (upload, list, view, delete) document-storage-application Oracle Open World - 2019 DB User document-storage-application API document-storage-application UI document-storage-service Helidon MP Helidon SE
  • 50.
    • mvn archetypehelidon-quickstart-mp • pom.xml, microprofile-config.properties, Dockerfile, logging.properties, Sample endpoint • JAX-RS – Jersey • @Annotations • CDI -Contexts and Dependency Injection • multipart/form-data • Rest client - WebTarget - javax.ws.rs.client.WebTarget • Config - Yaml, System property -Denvironment="prod” • Health Checks - /health • Metrics - /metrics • OpenApi - /openapi – yaml through @ • Static content Support – Angular Helidon MP Oracle Open World - 2019
  • 51.
    • mvn archetypehelidon-quickstart-se • Pom.xml, application.yaml, Dockerfile, logging.properties , Sample endpoint • Config - Yaml, System property -Denvironment="prod” • Health Checks - /health • Metrics - /metrics • OpenApi - /openapi – implements OASModelReader • multipart/form-data (meta & document) - org.jvnet.mimepull • Reactive Streams • MongoDB Reactive Streams Java Driver Helidon SE Oracle Open World - 2019
  • 52.
    • Easy toget started - Documentation, archetype, … • Easy to use (mvn, IDE) • Great fit with our current environment. Based on known techniques. • Jar … • Small footprint & high performance • 37K / 1,1 sec • MP/SE trade off • Take one thing at the time (MP/SE/Reactive/DB) • Real business case • Challenge existing way of working / technologies Summary Oracle Open World - 2019
  • 53.
    THANK YOU! Thanks Oracle& Helidon! LinkedIn: www.linkedin.com/in/mrjohanpalmer Twitter: @mrjohanpalmer Email: Johan.a.palmer@tele2.com