with 3scale and openshift wednesday may 8th, 2019 learning ... · built-in data transformation...
TRANSCRIPT
Learning to use the Camel Rest DSL with 3scale and OpenShiftWorkshop for getting started with Apache Camel
Wednesday May 8th, 2019
Mary CochranApplication Development Solution Architect
Dusty HumphriesSenior Cloud Solutions Architect
Claus IbsenSenior Principal Software Engineer
Session Overview● What is Camel?● What is the Camel Rest DSL?● What is OpenShift?● What is 3Scale?● Hands on Lab
What is Camel?
System Integration
Apache Camel
is an
Integration Framework
based on
Enterprise Integration Patterns
Integration Framework
Enterprise Integration Patterns
Enterprise Integration Patterns
Camel Routes
from("file:data/inbox") .to("jms:queue:order");
<route> <from uri="file:data/inbox"/> <to uri="jms:queue:order"/></route>
Java DSL
XML DSL
Camel Routes with Splitter
Camel Routes with Splitter
from("file:inbox")
Camel Routes with Splitter
from("file:inbox") .split(body().tokenize("\n"))
Camel Routes with Splitter
from("file:inbox") .split(body().tokenize("\n")) .marshal(customToXml) Custom data
transformation
Camel Routes with Splitter
from("file:inbox") .split(body().tokenize("\n")) .marshal(customToXml) .to("activemq:line"); Custom data
transformation
Camel Architecture
Camel runs everywhere
Application Servers
Linux Containers
Runs on popular Java Runtimes
Camel connects everything
Enterprise Systems
● File● FTP● JMS● AMQP● JDBC● SQL● TCP/UDP● Mail● HDFS● JPA● MongoDB● Kafka● ...
Public Cloud
● AWS○ S3○ SQS○ Kinesis○ ...
● Google○ BigQuery○ PubSub
● Azure○ Blob○ Queue
● Box● Dropbox● Facebook● Linkedin● Salesforce● SAP● ServiceNowIoT
● CoAP● MQTT● PubNub
SaaS
300+ Componentsahc ahc-ws amqp apns as2 asn1 asterisk atmos atmosphere-websocket atom atomix avro aws aws-xray azure bam barcode base64
beanio beanstalk bean-validator bindy blueprint bonita boon box braintree cache caffeine cassandraql castor cdi chronicle chunk cmis cm-sms coap cometd consul context corda core-osgi core-xml couchbase couchdb crypto crypto-cms csv cxf cxf-transport
digitalocean disruptor dns docker dozer drill dropbox eclipse ehcache ejb elasticsearch elasticsearch5 elasticsearch-rest elsql etcd eventadmin exec facebook fastjson fhir flatpack flink fop freemarker ftp ganglia geocoder git github google-bigquery google-calendar
google-drive google-mail google-pubsub google-sheets gora grape groovy groovy-dsl grpc gson guava-eventbus guice hawtdb hazelcast hbase hdfs hdfs2 headersmap hessian hipchat hl7 http http4 http-common hystrix ibatis ical iec60870 ignite infinispan
influxdb ipfs irc ironmq jackson jacksonxml jasypt javaspace jaxb jbpm jcache jclouds jcr jdbc jetty jetty9 jetty-common jgroups jibx jing jira jms jmx johnzon jolt josql jpa jsch jsonpath json-validator jt400 juel jxpath kafka kestrel krati kubernetes kura ldap ldif leveldb linkedin lra lucene lumberjack lzf mail master metrics micrometer milo mina mina2 mllp mongodb mongodb3 mongodb-gridfs mqtt
msv mustache mvel mybatis nagios nats netty netty4 netty4-http netty-http nsq ognl olingo2 olingo4 openshift openstack opentracing optaplanner paho paxlogging pdf pgevent printer protobuf pubnub quartz quartz2 quickfix rabbitmq reactive-streams reactor restlet
rest-swagger ribbon rmi routebox rss ruby rx rxjava2 salesforce sap-netweaver saxon scala schematron scr script service servicenow servlet servletlistener shiro sip sjms sjms2 slack smpp snakeyaml snmp soap solr spark spark-rest splunk spring spring-batch spring-boot spring-cloud spring-cloud-consul spring-cloud-netflix spring-cloud-zookeeper spring-integration spring-javaconfig
spring-ldap spring-redis spring-security spring-ws sql ssh stax stomp stream stringtemplate swagger swagger-java syslog tagsoup tarfile telegram test test-blueprint test-cdi testcontainers testcontainers-spring test-karaf testng test-spring thrift tika twilio twitter
undertow univocity-parsers urlrewrite velocity vertx weather web3j websocket wordpress xchange xmlbeans xmljson xmlrpc xmlsecurity xmpp xstream yammer yql zendesk zipfile zipkin zookeeper zookeeper-master
+
++
++
+
++
+=
25
PATTERN BASED INTEGRATION
200+ COMPONENTS
Batch, messaging, web services, cloud,
APIs, and more ...
BUILT-IN DATATRANSFORMATION
JSON, XML, HL7, YAML, SOAP, Java,
CSV, and more ...
INTUITIVEROUTING
Develop integrations quickly
in Java or XML.
ENTERPRISE INTEGRATION
PATTERNS
Build integrations using enterprise best
practices.
Create, connect,and compose APIs
with ease.
NATIVE REST SUPPORT
Apache Camel, a powerful pattern-based integration engine with a comprehensiveset of connectors and data formats to tackle any integration problem.
What is Camel Rest DSL?
Create, connect,and compose APIs
with ease.
NATIVE REST SUPPORT
Rest DSLServer
● Hosting RESTful APIs● Declared using Rest DSL● API Swagger Docs
Tooling
● Swagger Doc →Rest DSL generator
Client
● Invoke remote APIs
Rest DSL Server● Uses REST verbs
○ GET○ POST○ PUT
● URI templating○ GET /order/{id}○ PUT /order
● Swagger API Docs○ Description○ Data Types○ ...
● Configuration○ Camel Component○ Context-Path○ Port○ CORS○ ...
Rest DSL Hello World Example
Rest DSL Hello World Example
What is OpenShift?
General Distribution
OpenShift - ENTERPRISE KUBERNETES
Automated Operations
Kubernetes
Red Hat Enterprise Linux or Red Hat Enterprise Linux CoreOS
Application Services
CaaS PaaSBest IT Ops Experience Best Developer Experience
Cluster Services
Developer Services
Middleware, Service Mesh, Functions, ISV Metrics, Chargeback, Registry, Logging Dev Tools, Automated Builds, CI/CD, IDE
OpenShift - Features
MyService
Monitoring
Tracing
API
Discovery
Invocation
Resilience
Pipeline
Authentication
Logging Elasticity
What is 3Scale?
36
Control
● Security● Key management● Rate limiting● Policy enforcement● App and user
management● Provisioning
Flexibility
● Distributed● Multi-department● Multi-environment● Highly scalable● Powerful APIs● Webhooks
Visibility
● Analytics● App tracking● User tracking ● Traffic alerts● Developer
support
RED HAT 3SCALE API MANAGEMENT
37
RED HAT 3SCALE API MANAGEMENT
Admin Portal
● Dashboard● Developer /
Application / Key Management
● CMS● Analytics● Billing
API Consumers
(App Developers)Authorize & Report Traffic
Developer Apps
Developer Portal
● API Provider Branded ● API Description● Signup● ActiveDocs (OAS)
API BackendAPI Gateway
API Manager
API Provider
(Line Of Business / Product Manager,
Developers, Writers, Ops)
API Request Authorized API Request
38
3SCALE API MANAGEMENT
RBDMS
SAP
NoSQL
WS
REST
JMS
+ more
FUSE on Openshift
Red Hat Fuse
Service API
Red Hat Fuse
Service API
Red Hat Fuse
Service API
Developers
Partners
Mobile App
Affiliates
Internal Projects
+ more
API MANAGEMENT
Access control and security
API contracts and rate limits
Analytics and reporting
Developer portal and docs
Billing and payments
Help us build better experiences.Visit the User Experience Design team in the Feedback Zone.
Ecosystem ExpoExhibit Hall A
Red Hat Managed Integration (Solution Explorer)Dashboard usability study and navigation card sort.
Contact NameTiffany Nolan
The Lab
High Level Lab Steps● Login to Your Env● Create a Camel Route and Deploy to OpenShift● Add Swagger Docs● Manage With 3Scale● Extra Credit: Add Docs to 3Scale
The Labhttps://tinyurl.com/y6hertd7
HELPFUL LINKS
https://docs.openshift.com/online/getting_started/beyond_the_basics.html#getting-started-beyond-the-basics
https://access.redhat.com/documentation/en-us/red_hat_3scale/2.1/html/quickstart/quickstart
Book Signing Tomorrow● Book Signing
Thursday May 9th1:30pm - 2:30pm
Red Hat Dev Zone
https://www.manning.com/books/camel-in-action-second-edition
FINAL TASK:FILL IN EVALUATION FORM IN RED HAT SUMMIT APP, DO IT NOW!Fill in: Learning to use the Camel Rest DSL with 3scale and OpenShiftMary CochranApplication Development Solution Architect
Dusty HumphriesSenior Cloud Solutions Architect
Claus IbsenSenior Principal Software Engineer
THANK YOUplus.google.com/+RedHat
linkedin.com/company/red-hat
youtube.com/user/RedHatVideos
facebook.com/redhatinc
twitter.com/RedHat