integrating systems integrating systems
play

INTEGRATING SYSTEMS INTEGRATING SYSTEMS IN THE AGE OF IN THE AGE - PowerPoint PPT Presentation

Sponsorslides INTEGRATING SYSTEMS INTEGRATING SYSTEMS IN THE AGE OF IN THE AGE OF QUARKUS, KNATIVE AND KAFKA CONNECT QUARKUS, KNATIVE AND KAFKA CONNECT Peter Palaga @ppalaga The original reveal.js presentation this PDF was created from is


  1. Sponsorslides INTEGRATING SYSTEMS INTEGRATING SYSTEMS IN THE AGE OF IN THE AGE OF QUARKUS, KNATIVE AND KAFKA CONNECT QUARKUS, KNATIVE AND KAFKA CONNECT Peter Palaga @ppalaga

  2. The original reveal.js presentation this PDF was created from is available online: http://ppalaga.github.io/presentations/200108-camel

  3. PETER PALAGA PETER PALAGA

  4. PETER PALAGA PETER PALAGA

  5. PETER PALAGA PETER PALAGA

  6. PETER PALAGA PETER PALAGA

  7. PETER PALAGA PETER PALAGA

  8. AGENDA AGENDA • Apache Camel intro • Camel on Quarkus • Camel on Knative/Kubernetes • Camel on Kafka Connect

  9. WHAT IS APACHE CAMEL? WHAT IS APACHE CAMEL? http://camel.apache.org/

  10. WHAT IS APACHE CAMEL? WHAT IS APACHE CAMEL? http://camel.apache.org/ Since 2007

  11. HUGE COMMUNITY HUGE COMMUNITY ~500 contributors ~3k stars on Github ~3.9k forks on Github ~1k subscribers on the Users mailing list ~9.3k questions on StackOverFlow Follow @ApacheCamel (new) on Twitter!

  12. Apache Camel is... AN INTEGRATION LIBRARY AN INTEGRATION LIBRARY Transport A Transport B Data System A System B “Route”

  13. Apache Camel is based on ENTERPRISE INTEGRATION PATTERNS (EIP) ENTERPRISE INTEGRATION PATTERNS (EIP) Content Based Router Aggergator Message Filter Resequencer Dynamic Router Content Enricher Recipient List Content Filter Splitter Normalizer https://www.enterpriseintegrationpatterns.com/

  14. Apache Camel can... INTEGRATE ANYTHING INTEGRATE ANYTHING through its ~300 COMPONENTS ~300 COMPONENTS

  15. Filetypes: • Plaintext, XML, HTML, CSV, JSON, ZIP , ... Apache Tika (MS Office, • OpenDocument, ...)

  16. Filetypes: Protocols: • Plaintext, XML, HTML, • AMQP , DNS, FTP , HTTP , CSV, JSON, ZIP , ... IRC, SSH, TCP/UDP , ... Apache Tika (MS Office, REST, GRPC, git, ... • • OpenDocument, ...) IoT: CoAP , MQTT, PubNub •

  17. Filetypes: Protocols: Public Clouds: • Plaintext, XML, HTML, • AMQP , DNS, FTP , HTTP , • AWS: S3, SQS, Kinesis, ... CSV, JSON, ZIP , ... IRC, SSH, TCP/UDP , ... • Azure: Blob, Queue, ... Apache Tika (MS Office, REST, GRPC, git, ... Google: BigQuery, PubSub • • • OpenDocument, ...) IoT: CoAP , MQTT, PubNub •

  18. Filetypes: Protocols: Public Clouds: • Plaintext, XML, HTML, • AMQP , DNS, FTP , HTTP , • AWS: S3, SQS, Kinesis, ... CSV, JSON, ZIP , ... IRC, SSH, TCP/UDP , ... • Azure: Blob, Queue, ... Apache Tika (MS Office, REST, GRPC, git, ... Google: BigQuery, PubSub • • • OpenDocument, ...) IoT: CoAP , MQTT, PubNub • Enterprise: Caches: Hazelcast, • Infinispan, Redis, ... • Cassandra, MongoDB, Kafka JDBC, SQL, JPA, CDI, EJB, • JMS, JMX, OpenTracing, OptaPlanner, Syslog,

  19. Filetypes: Protocols: Public Clouds: • Plaintext, XML, HTML, • AMQP , DNS, FTP , HTTP , • AWS: S3, SQS, Kinesis, ... CSV, JSON, ZIP , ... IRC, SSH, TCP/UDP , ... • Azure: Blob, Queue, ... Apache Tika (MS Office, REST, GRPC, git, ... Google: BigQuery, PubSub • • • OpenDocument, ...) IoT: CoAP , MQTT, PubNub • Enterprise: APIs: Caches: Hazelcast, Social: Facebook, Twitter, • • Infinispan, Redis, ... LinkedIn • Cassandra, MongoDB, • Box, Dropbox, Google Kafka Calendar/Drive/Mail/Docs JDBC, SQL, JPA, CDI, EJB, Salesforce, SAP , • • JMS, JMX, OpenTracing, ServiceNow, FHIR OptaPlanner, Syslog, • GitHub, Jira, Telegram

  20. Filetypes: Protocols: Public Clouds: • Plaintext, XML, HTML, • AMQP , DNS, FTP , HTTP , • AWS: S3, SQS, Kinesis, ... CSV, JSON, ZIP , ... IRC, SSH, TCP/UDP , ... • Azure: Blob, Queue, ... Apache Tika (MS Office, REST, GRPC, git, ... Google: BigQuery, PubSub • • • OpenDocument, ...) IoT: CoAP , MQTT, PubNub • Enterprise: APIs: Misc: Caches: Hazelcast, Social: Facebook, Twitter, Barcode • • • Infinispan, Redis, ... LinkedIn Base64, JsonPath, • • Cassandra, MongoDB, • Box, Dropbox, Google Freemarker, Groovy, Kafka Calendar/Drive/Mail/Docs Mustache, Ruby JDBC, SQL, JPA, CDI, EJB, Salesforce, SAP , Docker, etcd, Kubernetes, • • • JMS, JMX, OpenTracing, ServiceNow, FHIR OpenShift, OptaPlanner, Syslog, • GitHub, Jira, Telegram

  21. Routes defined via DOMAIN SPECIFIC LANGUAGES (DSL) DOMAIN SPECIFIC LANGUAGES (DSL) Java XML class MyCamelRouter extends RouteBuilder { <routes @Override xmlns="http://camel.apache.org/schema/sprin public void configure() throws Exception { <route id="my-route"> from("twitter-search:" <from uri="twitter-search:word1,word2"/> + "word1,word2") <log message="Got a tweet: ${body}"/> .log("Got a tweet: ${body}") <to uri="telegram:bots"/> .to("telegram:bots"); </route> } </routes> } Groovy, Scala, Kotlin, ...

  22. Apache Camel is... RUNNABLE ON RUNNABLE ON

  23. Apache Camel is... RUNNABLE ON RUNNABLE ON Standalone

  24. Apache Camel is... RUNNABLE ON RUNNABLE ON Standalone Spring Boot

  25. Apache Camel is... RUNNABLE ON RUNNABLE ON Standalone Spring Boot Knative/Kubernetes connect

  26. WHY CAMEL ON QUARKUS? WHY CAMEL ON QUARKUS? Java slow to boot and memory intensive for containers and serverless

  27. WHAT IS WHAT IS ?

  28. Supersonic, subatomic Java! An intro

  29. CAMEL QUARKUS CAMEL QUARKUS • Incubated inside Quarkus • Now https://github.com/apache/camel-quarkus • ~50 components supported as of v1.0.0-M2 • Available via code.quarkus.io

  30. CAMEL QUARKUS DEMO CAMEL QUARKUS DEMO Demo code: github.com/ppalaga/camel-quarkus-cnorris-demo

  31. CAMEL QUARKUS LINKS CAMEL QUARKUS LINKS • Project starter code.quarkus.io • User guide • Examples

  32. CAMEL ON KUBERNETES CAMEL ON KUBERNETES AND KNATIVE AND KNATIVE

  33. HOW FAST CAN YOU (RE-)DEPLOY HOW FAST CAN YOU (RE-)DEPLOY ON KUBERNETES? ON KUBERNETES?

  34. Web UI for "Citizen integrators" Fast feedback required

  35. CAMEL K DEMO CAMEL K DEMO

  36. CAMEL K INTERNALS CAMEL K INTERNALS kamel client side binary • ▪ github.com/apache/camel-k/releases • Camel K Operator

  37. WHAT IS KUBERNETES WHAT IS KUBERNETES OPERATOR? OPERATOR? • An Application Management concept • Does what a human operator would have to do Based on declarative input ▪

  38. WHAT IS KUBERNETES WHAT IS KUBERNETES OPERATOR? OPERATOR? • An Application Management concept • Does what a human operator would have to do Based on declarative input ▪ • A pattern

  39. WHAT IS KUBERNETES WHAT IS KUBERNETES OPERATOR? OPERATOR? • An Application Management concept • Does what a human operator would have to do Based on declarative input ▪ • A pattern • (Ex-)CoreOS Operator Framework

  40. A Kubernetes Operator HOW IT WORKS HOW IT WORKS

  41. A Kubernetes Operator HOW IT WORKS HOW IT WORKS A running container

  42. A Kubernetes Operator HOW IT WORKS HOW IT WORKS A running container • Monitors the cluster via Kubernetes API

  43. A Kubernetes Operator HOW IT WORKS HOW IT WORKS A running container • Monitors the cluster via Kubernetes API • Reacts: Add/remove/modify resources ▪ (pods/services/custom CRDs) Scale up/down ▪ Call endpoints of the running applications ▪

  44. A Kubernetes Operator HOW IT WORKS HOW IT WORKS A running container • Monitors the cluster via Kubernetes API • Reacts: Add/remove/modify resources ▪ (pods/services/custom CRDs) Scale up/down ▪ Call endpoints of the running applications ▪ • Implements custom logic

  45. Kubernetes CUSTOM RESOURCE CUSTOM RESOURCE DEFINITIONS (CRD) DEFINITIONS (CRD) Built-in resources CRDs • pods, services, ... • Extend the cluster model oc create , oc create , oc get , • • oc get , oc delete oc delete • Declarative input for operators

  46. CAMEL K OPERATOR CAMEL K OPERATOR routes.groovy CRDs Integration from(" twitter -search:" Integration + "word1,word2") Platform .log('Got a tweet: ${body}') .to(" telegram :bots"); Integration Kit Camel K Operator kamel Built-in Resources Image ConfigMap Deployment ~4 seconds for the simplest routes

  47. Apache Camel K IMAGE RESOLUTION (1/2) IMAGE RESOLUTION (1/2) Collect Maven dependencies based on • DSL used (Groovy, XML, Java, Kotlin, JavaScript, YAML) • Camel components used in the routes

  48. Camel K IMAGE RESOLUTION (2/2) IMAGE RESOLUTION (2/2) Based on the found dependency set • Either take an available Image (buildless deploy) ▪ Or build a new image ▪

  49. Camel K IMAGE RESOLUTION (2/2) IMAGE RESOLUTION (2/2) Based on the found dependency set • Either take an available Image (buildless deploy) ▪ Or build a new image ▪ • Route definition not a part of the image Mounted to the container as a ConfigMap ▪

  50. CAMEL ON KNATIVE CAMEL ON KNATIVE

  51. WHAT IS KNATIVE? WHAT IS KNATIVE? https://knative.dev

  52. WHAT IS KNATIVE? WHAT IS KNATIVE? • Building blocks for Serverless applications https://knative.dev

  53. WHAT IS KNATIVE? WHAT IS KNATIVE? • Building blocks for Serverless applications • CRDs and operators https://knative.dev

Recommend


More recommend