Microservices are independent, encapsulated entities that produce meaningful results and business functionality in tentative collaboration. Events and pub/sub are great for allowing such decoupled interaction. Using Apache Kafka as robust, distributed, real-time, high volume event bus, this session demonstrates how microservices implemented in Java, Node, Python and SQL collaborate unknowingly. The microservices respond to social (media) events - courtesy of IFTTT - and publish results to multiple channels. The event bus operates across cloud services and on premises platforms: both the bus and the microservices can run anywhere.
Getting Started, Low Hanging Fruit: Our First Experiences with Oracle Managem...Lucas Jellema
This presentation provides an overview of how we got started at AMIS with Oracle Management Cloud and how we could achieve great value at our customers' complex environments. The presentation shows how the first small steps can easily be taken in the form of a pilot or even a trial from a local laptop. Several lessons learned are shared. This presentation was given during the Oracle Friday Cloud Update event at May 12th at Oracle The Netherlands in Utrecht.
An introduction into Node as a programming platform. This presentation introduces Node - its history, its architecture, the eco system of npm modules and tools and its place in the enterprise IT architecture and infrastructure. The Express framework is introduced, some core modules, the notion of asynchronous operations and the use of module async and of the ES6 Promises. Server Sent Events are introduced for a server to client push application. The interaction with MongoDB is demonstrated. The presentation contains many code samples. Note that the presentation is associated with sources and workshop materials in GitHub: https://github.com/lucasjellema/nodejs-introduction-workshop-may2017 .
Event Bus as Backbone for Decoupled Microservice Choreography (JFall 2017)Lucas Jellema
Microservices are independent, encapsulated entities that produce meaningful results and business functionality in tentative collaboration. Events and pub/sub are great for allowing such decoupled interaction. Using Apache Kafka as robust, distributed, real-time, high volume event bus, this session demonstrates how microservices packaged with Docker and implemented in Java, Node, Python and SQL collaborate unknowingly. The microservices respond to social (media) events - courtesy of IFTTT - and publish results to multiple channels. The event bus operates across cloud services and on premises platforms such as Kubernetes: both the bus and the microservices can run anywhere. A microservices platform is discussed with generic capabilities.
Outline: presentation summary
- intro microservices objectives, focus on decoupled collaboration
- demo four mservices in different technologies (Node, Java, ...) ; no direct dependencies; show the code (running on its own), show the packing into a container and the step of running the containers on a container management platform, using both Kubernetes and a Container Cloud Service (later on this will further the point of collaborating between microservices that are widely separated)
- discuss generic capabilities of a microservices platform (facilities required in many microservices that should be available as microservice - such as cache, log, authenticate (and compare with Java EE application server)
- demo a microservice providing a generic cache functionality (based on MongoDB)
- outline the desired choreography (a four step workflow that requires participation from various microservices); briefly discuss routing slips and the Saga pattern
- discuss use of events and need of event bus
- intro Kafka
- demo pub and sub from each mservice to Kafka
- link IFTTT to Kafka (for demo: use ngrok to expose local Kafka to IFTTT cloud)
- demo end-to-end Social event=>IFTTT=>Kafka=>choreographed mservices=> final result
- demo: extend one of the microservices: change the code, package a new container image version and update the running version in the container platform; demonstrate that new workflows leverage the new version
- demo: move a microservice from on premises to cloud - showing that the decoupled nature of the mservices mean that this move does not have any impact
- demo: show a change in the logic of the routing slip; none of the mservices require any change for a changed workflow choreography to be executed
- discuss cloud deployment of event bus + mservices
Modern DevOps across Technologies on premises and clouds with Oracle Manageme...Lucas Jellema
DevOps team are responsible for well performing applications in every aspect, through the entire life cycle and across the stack, including platform and infrastructure, on premises and all cloud environments. Keeping watch on current and predicted behavior of all running components is not an easy challenge.
The challenge is growing with multi tier architectures and IT landscapes distributed across technology stacks, locations and clouds. Oracle Management Cloud provides advanced capabilities to do application, platform and infrastructure monitoring and root cause log analysis. This session introduces OMC and tells about real live experiences with OMC for managing demanding non functional requirements in very hybrid environments. The objective discussed is to quickly spot problems – ideally before they occur – find the cause and a solution and apply the latter. The session demonstrates what OMC can do for Oracle Fusion Middleware and Database, both on premises and in the public cloud.
The Art of Intelligence – A Practical Introduction Machine Learning for Orac...Lucas Jellema
Our technology has gotten smart and fast enough to make predictions and come up with recommendations in near real time. Machine Learning is the art of deriving models from our Big Data collections – harvesting historic patterns and trends – and applying those models to new data in order to rapidly and adequately respond to that data. This presentation will explain and demonstrate in simple, straightforward terms and using easy to understand practical examples what Machine Learning really is and how it can be useful in our world of applications, integrations and databases. Hadoop and Spark, real time and streaming analytics, Watson and Cloud Datalab, Jupyter Notebooks, Oracle Machine Learning CS and the Citizen Data Scientists will all make their appearance, as will SQL.
The Oracle Application Container Cloud as the Microservices Platform (APAC OU...Lucas Jellema
Microservices are independent, encapsulated entities that produce meaningful results and business functionality in tentative collaboration. Microservices need a platform to run on and to provide generic capabilities such as data caching, an event bus, access to RDBMS and File System. This platform should handle scaling and fail over of the microservices.
The Application Container Cloud runs and automatically scales applications built in various technologies such as Node, Java, PHP and Python, it provides caching and access to an event bus and database in the cloud. This session demonstrates how multiple microservices are deployed to and run on ACC, using these capabilities.
Handson Oracle Management Cloud with Application Performance Monitoring and L...Lucas Jellema
This presentation gives an overview of the steps in the workshop labs for Oracle Management Cloud APM and Log Analytics. The labs themselves and all sources are found at GitHub: https://github.com/lucasjellema/APM-Demo-App-WorldView .
WebLogic 12.2 introduces new multitenancy features including:
- Improved high density deployment features through microcontainers and partitions that allow for increased isolation between tenant applications and resources.
- Enhanced multitenancy capabilities including live partition migration to move running partitions between clusters with zero downtime.
- Continuous availability features such as automated data center setup and failover, cross-domain transaction recovery, and multitenant live partition migration.
Getting Started, Low Hanging Fruit: Our First Experiences with Oracle Managem...Lucas Jellema
This presentation provides an overview of how we got started at AMIS with Oracle Management Cloud and how we could achieve great value at our customers' complex environments. The presentation shows how the first small steps can easily be taken in the form of a pilot or even a trial from a local laptop. Several lessons learned are shared. This presentation was given during the Oracle Friday Cloud Update event at May 12th at Oracle The Netherlands in Utrecht.
An introduction into Node as a programming platform. This presentation introduces Node - its history, its architecture, the eco system of npm modules and tools and its place in the enterprise IT architecture and infrastructure. The Express framework is introduced, some core modules, the notion of asynchronous operations and the use of module async and of the ES6 Promises. Server Sent Events are introduced for a server to client push application. The interaction with MongoDB is demonstrated. The presentation contains many code samples. Note that the presentation is associated with sources and workshop materials in GitHub: https://github.com/lucasjellema/nodejs-introduction-workshop-may2017 .
Event Bus as Backbone for Decoupled Microservice Choreography (JFall 2017)Lucas Jellema
Microservices are independent, encapsulated entities that produce meaningful results and business functionality in tentative collaboration. Events and pub/sub are great for allowing such decoupled interaction. Using Apache Kafka as robust, distributed, real-time, high volume event bus, this session demonstrates how microservices packaged with Docker and implemented in Java, Node, Python and SQL collaborate unknowingly. The microservices respond to social (media) events - courtesy of IFTTT - and publish results to multiple channels. The event bus operates across cloud services and on premises platforms such as Kubernetes: both the bus and the microservices can run anywhere. A microservices platform is discussed with generic capabilities.
Outline: presentation summary
- intro microservices objectives, focus on decoupled collaboration
- demo four mservices in different technologies (Node, Java, ...) ; no direct dependencies; show the code (running on its own), show the packing into a container and the step of running the containers on a container management platform, using both Kubernetes and a Container Cloud Service (later on this will further the point of collaborating between microservices that are widely separated)
- discuss generic capabilities of a microservices platform (facilities required in many microservices that should be available as microservice - such as cache, log, authenticate (and compare with Java EE application server)
- demo a microservice providing a generic cache functionality (based on MongoDB)
- outline the desired choreography (a four step workflow that requires participation from various microservices); briefly discuss routing slips and the Saga pattern
- discuss use of events and need of event bus
- intro Kafka
- demo pub and sub from each mservice to Kafka
- link IFTTT to Kafka (for demo: use ngrok to expose local Kafka to IFTTT cloud)
- demo end-to-end Social event=>IFTTT=>Kafka=>choreographed mservices=> final result
- demo: extend one of the microservices: change the code, package a new container image version and update the running version in the container platform; demonstrate that new workflows leverage the new version
- demo: move a microservice from on premises to cloud - showing that the decoupled nature of the mservices mean that this move does not have any impact
- demo: show a change in the logic of the routing slip; none of the mservices require any change for a changed workflow choreography to be executed
- discuss cloud deployment of event bus + mservices
Modern DevOps across Technologies on premises and clouds with Oracle Manageme...Lucas Jellema
DevOps team are responsible for well performing applications in every aspect, through the entire life cycle and across the stack, including platform and infrastructure, on premises and all cloud environments. Keeping watch on current and predicted behavior of all running components is not an easy challenge.
The challenge is growing with multi tier architectures and IT landscapes distributed across technology stacks, locations and clouds. Oracle Management Cloud provides advanced capabilities to do application, platform and infrastructure monitoring and root cause log analysis. This session introduces OMC and tells about real live experiences with OMC for managing demanding non functional requirements in very hybrid environments. The objective discussed is to quickly spot problems – ideally before they occur – find the cause and a solution and apply the latter. The session demonstrates what OMC can do for Oracle Fusion Middleware and Database, both on premises and in the public cloud.
The Art of Intelligence – A Practical Introduction Machine Learning for Orac...Lucas Jellema
Our technology has gotten smart and fast enough to make predictions and come up with recommendations in near real time. Machine Learning is the art of deriving models from our Big Data collections – harvesting historic patterns and trends – and applying those models to new data in order to rapidly and adequately respond to that data. This presentation will explain and demonstrate in simple, straightforward terms and using easy to understand practical examples what Machine Learning really is and how it can be useful in our world of applications, integrations and databases. Hadoop and Spark, real time and streaming analytics, Watson and Cloud Datalab, Jupyter Notebooks, Oracle Machine Learning CS and the Citizen Data Scientists will all make their appearance, as will SQL.
The Oracle Application Container Cloud as the Microservices Platform (APAC OU...Lucas Jellema
Microservices are independent, encapsulated entities that produce meaningful results and business functionality in tentative collaboration. Microservices need a platform to run on and to provide generic capabilities such as data caching, an event bus, access to RDBMS and File System. This platform should handle scaling and fail over of the microservices.
The Application Container Cloud runs and automatically scales applications built in various technologies such as Node, Java, PHP and Python, it provides caching and access to an event bus and database in the cloud. This session demonstrates how multiple microservices are deployed to and run on ACC, using these capabilities.
Handson Oracle Management Cloud with Application Performance Monitoring and L...Lucas Jellema
This presentation gives an overview of the steps in the workshop labs for Oracle Management Cloud APM and Log Analytics. The labs themselves and all sources are found at GitHub: https://github.com/lucasjellema/APM-Demo-App-WorldView .
WebLogic 12.2 introduces new multitenancy features including:
- Improved high density deployment features through microcontainers and partitions that allow for increased isolation between tenant applications and resources.
- Enhanced multitenancy capabilities including live partition migration to move running partitions between clusters with zero downtime.
- Continuous availability features such as automated data center setup and failover, cross-domain transaction recovery, and multitenant live partition migration.
What is the Oracle PaaS Cloud for Developers (Oracle Cloud Day, The Netherlan...Lucas Jellema
The promise of the cloud is substantial. Oracle's public cloud promise goes beyond the generic promise. This presentation describes the promise of the Oracle Public Cloud specifically for developers. It describes the current state of the PaaS Platform, the actual and coming services and what they could mean to a developer. From same platform, different location (DBaaS, JCS) to cloud native stack (ICS, MCS) and services for Citizen Developers, the presentation touches upon virtually all services relevant to developers. The presentation concludes with first the steps enterprises can start taking to move to the cloud and second the steps individual developers could and perhaps should take in order to conquer the clouds.
Overview of Oracle Product Portfolio (focus on Platform) - April, 2017Lucas Jellema
This presentation gives an overview of major steps in the history of the product portfolio of Oracle Corporation. It discuss in some detail the features, editions and options available with Oracle Database and introduces the components in Fusion Middleware. Cloud is touched upon - but not discussed in depth.
This document provides an overview of REST APIs and discusses why REST is commonly preferred over SOAP. It describes various REST API description languages (ADLs) like Swagger, RAML, and WADL and compares their support in Oracle products. It also provides examples of describing a sample Norwegian dataset API in RAML and implementing REST support in SOA Suite, including creating WADLs from other ADLs or using the REST adapter. The document concludes with discussing REST support in Java EE and Oracle PaaS products.
Review Oracle OpenWorld 2015 - Overview, Main themes, Announcements and FutureLucas Jellema
This presentation (part of the year AMIS Oracle OpenWorld Review session) discusses the main themes for this year's conference and introduces the all encompassing cloud strategy. It highlights some major changes at Oracle Corporation. It lists the major announcements, the hot terminology and the product roadmaps.
WSO2Con USA 2017: Scalable Real-time Complex Event Processing at UberWSO2
The Marketplace data team at Uber has built a scalable complex event processing platform to solve many challenging real-time data needs for various Uber products. This platform has been in production for more than a year and supports over 100 real-time data use cases with a team of 3. In this talk, we will share the detail of the design and our experience, and how we employ Siddhi, Kafka and Samza at scale.
Systems on the edge - your stepping stones into Oracle Public PaaS Cloud - AM...Lucas Jellema
Adoption of the cloud will not start with the core enterprise applications. There are several ways to start the adoption. One is to move in from training environments through development and test to production. Another takes the importance of applications into consideration, starting with secondary, supporting systems. The approach discussed in this session is to start with edge systems that are already in the DMZ, on the fringes of an enterprises, where they engage in interaction with the outside world.
Systems on the edge of an enterprise have special challenges regarding availability, scalability, security and external interactions with systems or people. This applies for example to external portals, B2B interactions, workflows that involve external actors, mobile APIs and integrations with SaaS instances. These systems are obvious candidates to move to a public cloud - and handle these special requirements on the PaaS platform. This session discusses and demonstrates a number of Oracle PaaS Cloud Services, their mutual interaction and how they can be leveraged to move these systems over the edge and into the cloud: Java Cloud Service, Integration Cloud Service, Process Cloud Service, IoT CS, Mobile Cloud Service, SOA Suite Cloud Service and Message Cloud Service. We will go over a number of scenarios for moving edge systems from on premises to the public cloud. Essential in this discussion is of course the integration from the edge system in the Oracle Public Cloud to the on premises backend systems.
What is Kafka & why is it Important? (UKOUG Tech17, Birmingham, UK - December...Lucas Jellema
Fast data arrives in real time and potentially high volume. Rapid processing, filtering and aggregation is required to ensure timely reaction and actual information in user interfaces. Doing so is a challenge, make this happen in a scalable and reliable fashion is even more interesting. This session introduces Apache Kafka as the scalable event bus that takes care of the events as they flow in and Kafka Streams and KSQL for the streaming analytics. Both Java and Node applications are demonstrated that interact with Kafka and leverage Server Sent Events and WebSocket channels to update the Web UI in real time. User activity performed by the audience in the Web UI is processed by the Kafka powered back end and results in live updates on all clients.
This presentation includes a demonstration of remote database synchronization through Twitter.
Find out why hosting service providers choose Jelastic for their cloud business and what technologies they offer to the users based on this PaaS and CaaS solution.
Michel Schildmeijer gave a keynote at the Oracle Middleware Summit on January 9th, 2019. He discussed the history and evolution of Oracle Fusion Middleware from traditional middleware to more modern, cloud-native approaches. He outlined Oracle's focus on containers, Kubernetes, and microservices and how WebLogic and other FMW products are adapting to these trends, including new options like Helidon for developing microservices. Schildmeijer concluded that WebLogic will still be foundational but the focus is shifting to hybrid cloud-native solutions.
Integrating Alfresco @ Scale (via event-driven micro-services)J V
Alfresco DevCon 2018 (Lisbon) - https://devcon.alfresco.com/
Alfresco provides a rich set of options for integrating third-party systems with services across the Digital Business Platform. We will deep-dive into the architecture of the new Alfresco Integration Services framework – a set of event-driven micro-services that can be easily deployed & scaled.
https://www.youtube.com/watch?v=TyB-t7wsDEE
AMIS Beyond the Horizon - High density deployments using weblogic multitenancyJaap Poot
This document provides an overview of Weblogic multitenancy including key concepts, components, isolation, consolidation benefits, portability for DevOps, and the Java Cloud Service. It discusses how multitenancy allows optimal use of resources by consolidating applications into partitions within a single Weblogic domain rather than separate domains. Isolation is achieved through mechanisms like dedicated JNDI trees and pluggable databases. Portability is enabled by exporting and importing partitions between environments. The Java Cloud Service supports Weblogic multitenancy with minimal Enterprise edition features.
Extreme performance with Oracle SOA Suite 12.2, Coherence and Exalogic can be achieved by configuring the platform to take advantage of the Exalogic infrastructure and optimizing SOA Suite and Coherence settings. Key aspects include using Coherence caching to minimize database transactions, configuring optimal WebLogic and JDBC settings for InfiniBand networking, and tuning SOA Suite dehydration and caching properties. This provides significant performance gains over a traditional architecture.
This document provides an overview of a presentation given at CamelOne 2013 in Boston on June 10-11, 2013 about the internals of Apache ActiveMQ. The presentation covered the major subcomponents of ActiveMQ including transports, the broker core, persistence adapters, and networking brokers. It provided details on architecture, configuration, and implementation of these different aspects of ActiveMQ.
The document discusses strategies for transitioning from monolithic architectures to microservice architectures. It outlines some of the challenges with maintaining large monolithic applications and reasons for modernizing, such as handling more data and needing faster changes. It then covers microservice design principles and best practices, including service decomposition, distributed systems strategies, and reactive design. Finally it introduces Lagom as a framework for building reactive microservices on the JVM and outlines its key components and development environment.
Introduction into Docker Containers, the Oracle Platform and the Oracle (Nati...Lucas Jellema
Containers are increasingly popular to package, ship and run applications or microservices with their completely configured runtime environment including platform components such as application server and data store.Continuous Delivery and automated DevOps hinge on containers. Docker Containers are widely used and Oracle has long been involved in the Docker community.This session introduces the Docker Container images published by Oracle for flagship products such as Database, WebLogic, Linux and Java and demonstrates how these can be used in environment provisioning, automated delivery pipelines and microservices architectures. The session shows how containers are built, shipped and run based on these images and shows the Oracle Container Cloud, as well as Wercker Cloud (for automated build and delivery pipelines) and Oracle Cloud Engine - the managed Kubernetes cloud service..
This document provides an overview of using Node.js for backend integration. It discusses how Node.js uses a single thread model with asynchronous and non-blocking I/O to provide high performance. Common Node.js frameworks like Express and Hapi are presented. The document also covers integrating Node.js with databases like Oracle NoSQL and MongoDB using modules like node-oracledb and mongoose. It provides examples of calling PL/SQL functions and using connection pooling with Node.js and Oracle Database. Finally, it introduces Application Container Cloud as providing capabilities beyond what Node.js alone offers like high availability, management, and support.
Event Bus as Backbone for Decoupled Microservice Choreography - Lecture and W...Lucas Jellema
Microservices are independent, encapsulated entities that produce meaningful results and business functionality in tentative collaboration. Events and pub/sub are great for allowing such decoupled interaction. Using Apache Kafka as robust, distributed, real-time, high volume event bus, this session demonstrates how microservices packaged with Docker and implemented in Java, Node, Python and SQL collaborate unknowingly. The microservices respond to social (media) events - courtesy of IFTTT - and publish results to multiple channels. The event bus operates across cloud services and on premises platforms such as Kubernetes: both the bus and the microservices can run anywhere. A microservices platform is discussed with generic capabilities.
The resources for the accompanying workshop are in GitHub: https://github.com/lucasjellema/workshop-event-bus-microservice-choreography-may-2018
Business and IT agility through DevOps and microservice architecture powered ...Lucas Jellema
IT needs to run in production in order to generate business value. DevOps is among other things a way of thinking focusing on production software. A business application requires a tailor made platform to generate business value. The combination of application and its platform is a DevOps product. The DevOps team has full responsibility for that product through its entire lifecycle.
The microservices architecture promises flexibility, scalability, and optimal use of compute resources. Via independent components with well-defined scope and responsibility, interface, and ownership that are evolved and managed in an automated DevOps process, this architecture leverages current technologies and hard-learned insights from past decades.
This session defines the objectives of Business with IT, of microservices and DevOps and introduces Containers and the container platform Kubernetes as crucial ingredients for making DevOps happen.
What is the Oracle PaaS Cloud for Developers (Oracle Cloud Day, The Netherlan...Lucas Jellema
The promise of the cloud is substantial. Oracle's public cloud promise goes beyond the generic promise. This presentation describes the promise of the Oracle Public Cloud specifically for developers. It describes the current state of the PaaS Platform, the actual and coming services and what they could mean to a developer. From same platform, different location (DBaaS, JCS) to cloud native stack (ICS, MCS) and services for Citizen Developers, the presentation touches upon virtually all services relevant to developers. The presentation concludes with first the steps enterprises can start taking to move to the cloud and second the steps individual developers could and perhaps should take in order to conquer the clouds.
Overview of Oracle Product Portfolio (focus on Platform) - April, 2017Lucas Jellema
This presentation gives an overview of major steps in the history of the product portfolio of Oracle Corporation. It discuss in some detail the features, editions and options available with Oracle Database and introduces the components in Fusion Middleware. Cloud is touched upon - but not discussed in depth.
This document provides an overview of REST APIs and discusses why REST is commonly preferred over SOAP. It describes various REST API description languages (ADLs) like Swagger, RAML, and WADL and compares their support in Oracle products. It also provides examples of describing a sample Norwegian dataset API in RAML and implementing REST support in SOA Suite, including creating WADLs from other ADLs or using the REST adapter. The document concludes with discussing REST support in Java EE and Oracle PaaS products.
Review Oracle OpenWorld 2015 - Overview, Main themes, Announcements and FutureLucas Jellema
This presentation (part of the year AMIS Oracle OpenWorld Review session) discusses the main themes for this year's conference and introduces the all encompassing cloud strategy. It highlights some major changes at Oracle Corporation. It lists the major announcements, the hot terminology and the product roadmaps.
WSO2Con USA 2017: Scalable Real-time Complex Event Processing at UberWSO2
The Marketplace data team at Uber has built a scalable complex event processing platform to solve many challenging real-time data needs for various Uber products. This platform has been in production for more than a year and supports over 100 real-time data use cases with a team of 3. In this talk, we will share the detail of the design and our experience, and how we employ Siddhi, Kafka and Samza at scale.
Systems on the edge - your stepping stones into Oracle Public PaaS Cloud - AM...Lucas Jellema
Adoption of the cloud will not start with the core enterprise applications. There are several ways to start the adoption. One is to move in from training environments through development and test to production. Another takes the importance of applications into consideration, starting with secondary, supporting systems. The approach discussed in this session is to start with edge systems that are already in the DMZ, on the fringes of an enterprises, where they engage in interaction with the outside world.
Systems on the edge of an enterprise have special challenges regarding availability, scalability, security and external interactions with systems or people. This applies for example to external portals, B2B interactions, workflows that involve external actors, mobile APIs and integrations with SaaS instances. These systems are obvious candidates to move to a public cloud - and handle these special requirements on the PaaS platform. This session discusses and demonstrates a number of Oracle PaaS Cloud Services, their mutual interaction and how they can be leveraged to move these systems over the edge and into the cloud: Java Cloud Service, Integration Cloud Service, Process Cloud Service, IoT CS, Mobile Cloud Service, SOA Suite Cloud Service and Message Cloud Service. We will go over a number of scenarios for moving edge systems from on premises to the public cloud. Essential in this discussion is of course the integration from the edge system in the Oracle Public Cloud to the on premises backend systems.
What is Kafka & why is it Important? (UKOUG Tech17, Birmingham, UK - December...Lucas Jellema
Fast data arrives in real time and potentially high volume. Rapid processing, filtering and aggregation is required to ensure timely reaction and actual information in user interfaces. Doing so is a challenge, make this happen in a scalable and reliable fashion is even more interesting. This session introduces Apache Kafka as the scalable event bus that takes care of the events as they flow in and Kafka Streams and KSQL for the streaming analytics. Both Java and Node applications are demonstrated that interact with Kafka and leverage Server Sent Events and WebSocket channels to update the Web UI in real time. User activity performed by the audience in the Web UI is processed by the Kafka powered back end and results in live updates on all clients.
This presentation includes a demonstration of remote database synchronization through Twitter.
Find out why hosting service providers choose Jelastic for their cloud business and what technologies they offer to the users based on this PaaS and CaaS solution.
Michel Schildmeijer gave a keynote at the Oracle Middleware Summit on January 9th, 2019. He discussed the history and evolution of Oracle Fusion Middleware from traditional middleware to more modern, cloud-native approaches. He outlined Oracle's focus on containers, Kubernetes, and microservices and how WebLogic and other FMW products are adapting to these trends, including new options like Helidon for developing microservices. Schildmeijer concluded that WebLogic will still be foundational but the focus is shifting to hybrid cloud-native solutions.
Integrating Alfresco @ Scale (via event-driven micro-services)J V
Alfresco DevCon 2018 (Lisbon) - https://devcon.alfresco.com/
Alfresco provides a rich set of options for integrating third-party systems with services across the Digital Business Platform. We will deep-dive into the architecture of the new Alfresco Integration Services framework – a set of event-driven micro-services that can be easily deployed & scaled.
https://www.youtube.com/watch?v=TyB-t7wsDEE
AMIS Beyond the Horizon - High density deployments using weblogic multitenancyJaap Poot
This document provides an overview of Weblogic multitenancy including key concepts, components, isolation, consolidation benefits, portability for DevOps, and the Java Cloud Service. It discusses how multitenancy allows optimal use of resources by consolidating applications into partitions within a single Weblogic domain rather than separate domains. Isolation is achieved through mechanisms like dedicated JNDI trees and pluggable databases. Portability is enabled by exporting and importing partitions between environments. The Java Cloud Service supports Weblogic multitenancy with minimal Enterprise edition features.
Extreme performance with Oracle SOA Suite 12.2, Coherence and Exalogic can be achieved by configuring the platform to take advantage of the Exalogic infrastructure and optimizing SOA Suite and Coherence settings. Key aspects include using Coherence caching to minimize database transactions, configuring optimal WebLogic and JDBC settings for InfiniBand networking, and tuning SOA Suite dehydration and caching properties. This provides significant performance gains over a traditional architecture.
This document provides an overview of a presentation given at CamelOne 2013 in Boston on June 10-11, 2013 about the internals of Apache ActiveMQ. The presentation covered the major subcomponents of ActiveMQ including transports, the broker core, persistence adapters, and networking brokers. It provided details on architecture, configuration, and implementation of these different aspects of ActiveMQ.
The document discusses strategies for transitioning from monolithic architectures to microservice architectures. It outlines some of the challenges with maintaining large monolithic applications and reasons for modernizing, such as handling more data and needing faster changes. It then covers microservice design principles and best practices, including service decomposition, distributed systems strategies, and reactive design. Finally it introduces Lagom as a framework for building reactive microservices on the JVM and outlines its key components and development environment.
Introduction into Docker Containers, the Oracle Platform and the Oracle (Nati...Lucas Jellema
Containers are increasingly popular to package, ship and run applications or microservices with their completely configured runtime environment including platform components such as application server and data store.Continuous Delivery and automated DevOps hinge on containers. Docker Containers are widely used and Oracle has long been involved in the Docker community.This session introduces the Docker Container images published by Oracle for flagship products such as Database, WebLogic, Linux and Java and demonstrates how these can be used in environment provisioning, automated delivery pipelines and microservices architectures. The session shows how containers are built, shipped and run based on these images and shows the Oracle Container Cloud, as well as Wercker Cloud (for automated build and delivery pipelines) and Oracle Cloud Engine - the managed Kubernetes cloud service..
This document provides an overview of using Node.js for backend integration. It discusses how Node.js uses a single thread model with asynchronous and non-blocking I/O to provide high performance. Common Node.js frameworks like Express and Hapi are presented. The document also covers integrating Node.js with databases like Oracle NoSQL and MongoDB using modules like node-oracledb and mongoose. It provides examples of calling PL/SQL functions and using connection pooling with Node.js and Oracle Database. Finally, it introduces Application Container Cloud as providing capabilities beyond what Node.js alone offers like high availability, management, and support.
Event Bus as Backbone for Decoupled Microservice Choreography - Lecture and W...Lucas Jellema
Microservices are independent, encapsulated entities that produce meaningful results and business functionality in tentative collaboration. Events and pub/sub are great for allowing such decoupled interaction. Using Apache Kafka as robust, distributed, real-time, high volume event bus, this session demonstrates how microservices packaged with Docker and implemented in Java, Node, Python and SQL collaborate unknowingly. The microservices respond to social (media) events - courtesy of IFTTT - and publish results to multiple channels. The event bus operates across cloud services and on premises platforms such as Kubernetes: both the bus and the microservices can run anywhere. A microservices platform is discussed with generic capabilities.
The resources for the accompanying workshop are in GitHub: https://github.com/lucasjellema/workshop-event-bus-microservice-choreography-may-2018
Business and IT agility through DevOps and microservice architecture powered ...Lucas Jellema
IT needs to run in production in order to generate business value. DevOps is among other things a way of thinking focusing on production software. A business application requires a tailor made platform to generate business value. The combination of application and its platform is a DevOps product. The DevOps team has full responsibility for that product through its entire lifecycle.
The microservices architecture promises flexibility, scalability, and optimal use of compute resources. Via independent components with well-defined scope and responsibility, interface, and ownership that are evolved and managed in an automated DevOps process, this architecture leverages current technologies and hard-learned insights from past decades.
This session defines the objectives of Business with IT, of microservices and DevOps and introduces Containers and the container platform Kubernetes as crucial ingredients for making DevOps happen.
Flying to clouds - can it be easy? Cloud Native ApplicationsJacek Bukowski
Nowadays "cloud" and "microservice" terms are used all the time, even overused. Does any system must be the "microservices" deployed in the "cloud"? Definitely not! However once you see that your system may benefit from that architecture, the next question is how to get there - how to fly to the clouds?
Spring was always about simplifying the complicated aspects of your enterprise system. Netflix went to microservice architecture long before this term even was created. Both are very much contributed to open source software. How can you benefit from joint forces of the both?
JDD 2016 - Jacek Bukowski - "Flying To Clouds" - Can It Be Easy?PROIDEA
Nowadays "cloud" and "microservice" terms are used all the time, even overused. Does any system must be the "microservices" deployed in the "cloud"? Definitely not! However once you see that your system may benefit from that architecture, the next question is how to get there - how to fly to the clouds?
Spring was always about simplifying the complicated aspects of your enterprise system. Netflix went to microservice architecture long before this term even was created. Both are very much contributed to open source software. How can you benefit from joint forces of the both?
This document provides an overview of microservices in the enterprise. It discusses factors driving the rise of microservices like SOA fatigue and the need for faster innovation. Examples of microservice architectures from companies like Netflix, Twitter and Gilt are presented. Key capabilities for building enterprise-ready microservices are described, including service discovery, description, deployment isolation using containers, data/verb partitioning, lightweight middleware, API gateways and observability. Open source technologies that support implementing these capabilities are also outlined. The document concludes that microservices are the future of distributed systems and enterprises should implement solutions from first principles using inspiration from internet companies.
This document provides an introduction to microservices, including:
- The benefits of microservices compared to monolithic architecture like independent deployability and scalability.
- Microservices are small, independently deployable services that work together and are modeled around business domains.
- Implementing microservices requires automation, high cohesion, loose coupling, and stable APIs.
- Potential downsides include increased complexity in testing, monitoring, and operations. Microservices are best suited to problems of scale.
Lino Telera gave a presentation on serverless computing. He began with introductions and background. The presentation covered serverless concepts like Function as a Service, demonstrated building a simple microservice using AWS Lambda that interacts with S3, and discussed integrating functions with services like S3 using Boto. It also showed how functions can be called from devices using skills and discussed running serverless on-premise using OpenFaaS or Pivotal Container Service. The presentation concluded with a Q&A and thanks to sponsors.
The Application Server Platform of the Future - Container & Cloud Native and ...Lucas Jellema
New architecture patterns are rapidly influencing many organizations. The march to the cloud is taking place. DevOps and microservices for true agility and containers as vehicle for delivery, testing and management. During
Oracle OpenWorld 2017 - Oracle presented its vision and roadmap in the area of cloud native computing (which is based on container native) and announced its application server platform (container management runtime) of the future. This presentation summarizes that picture painted by Oracle.
“Microservices” have become a trendy development strategy. Hosting and running such services used to be pretty painful... but here comes Service Fabric! Let’s take a closer look at this platform, its different development models and all the features it offers, and not only for microservices!
Building Services with WSO2 Application Server and WSO2 Microservices Framewo...Sagara Gunathunga
This document summarizes a presentation about building microservices with WSO2 technologies. It introduces the microservices architecture and framework MSF4J, which allows developing microservices in Java using annotations. MSF4J provides high performance, metrics collection, and integration with Kubernetes for deployment. Hands-on examples are provided to demonstrate creating a sample stock quote microservice with MSF4J and deploying it to Kubernetes. The presentation also covers the WSO2 Application Server and its transition to being based on Tomcat rather than Carbon for improved performance and classloading.
The document outlines an infrastructure 2.0 approach based on cloud native technologies. It advocates for infrastructure as code, test-driven deployments, open source tools, and seamless developer workflows. The approach uses microservices, containers, service meshes, and orchestration with Kubernetes. It recommends tools like Terraform, Jenkins, Kubernetes, Istio, Prometheus, Elasticsearch and Airflow for infrastructure provisioning, CI/CD, container management, service mesh, monitoring, logging, and job scheduling. It also discusses Docker, data pipelines, and processes for onboarding new applications.
Microsoft AppFabric provides services for building and managing composite applications at scale, including workflows, caching, and hosting services. It allows sharing of data and workflows across machines. Windows Server AppFabric provides service and workflow management capabilities while Azure AppFabric focuses on access control and a service bus in the cloud. The presentation discussed architectural choices using these technologies like caching sessions, hosting services, and a real-world example architecture integrating caching, hosting, and messaging.
This document discusses building event-driven, fault-tolerant microservices. It begins by discussing lessons learned from SOA architecture and defining microservices. It emphasizes that microservices need to be reactive and message-driven to achieve loose coupling and fault tolerance. The document then outlines challenges in implementing microservices at scale before proposing a design using Spring Boot, Kafka, Docker, and Elastic Stack. It provides an in-depth look at these components and how they address scalability, isolation, fault tolerance and monitoring of microservices.
Rami Sayar - Node microservices with DockerWeb à Québec
The document discusses converting a monolithic Node.js application into microservices and deploying them using Docker. It begins by defining microservices and their benefits. It then describes converting a sample pizza ordering application into independent microservices for handling messages, serving the frontend, and providing an API. Next, it covers patterns for networking microservices, including using an API gateway. It concludes by demonstrating how to deploy the microservices to Docker containers and use an orchestration tool like Kubernetes to manage them.
This document provides an agenda and overview of a workshop on microservices architecture. The agenda includes introductions to microservices architecture, WSO2 MSF4J, Kubernetes/Docker, and demonstrating MSF4J deployment with Kubernetes. It then discusses microservices architecture principles, inner and outer architecture, and the features and implementation of WSO2 MSF4J, a lightweight Java microservices framework. It covers developing microservices with MSF4J, deployment types, analytics and monitoring, security, and examples. The document concludes with discussions on production deployment with Kubernetes and Docker, and the current and future states of the WSO2 Application Server.
Dutch Oracle Architects Platform - Reviewing Oracle OpenWorld 2017 and New Tr...Lucas Jellema
Not since the rise of Service Oriented Architecture (and the supporting Fusion Middleware technology) over a decade ago have we seen so much rapid change in terms of application and infrastructure architecture. Cloud, Microservices and DevOps are perhaps the most explicit examples – but many other developments in technology, architecture and even the industry at large have an impact on how enterprises consider and employ IT – such as machine learning, IoT, blockchain.
In this session for (infrastructure, solution, application, enterprise, security, data) architects – we will present the main stories, roadmaps and technologies from Oracle OpenWorld 2017 (and JavaOne) that influence, shape and enable architecture. We will brainstorm together on the consequences of the new directions outlined by Oracle – and coming our way from other quarters. We are seeing a a lot of change. New opportunities arise – that may become challenges or threats if we fail to recognize and embrace the change in time. This session will help us all to get a better handle on the winds in enterprise IT in general and in Oracle land in particular.
Among the topics we will present and discuss are:
- The Only Way is Up – the inevitable and imminent move from on premises to the cloud, and upwards in the stack – from IaaS to SaaS
- Security and Ops in a hybrid landscape (multiple clouds & on premises, multiple technologies & interaction channels)
- Autonomous Database – what, when, how
- Oracle’s cloud strategy, High PaaS and Low PaaS, Open [source] technology (star of the show: Apache Kafka) and the commodization of the traditional Oracle platform
- Container and Cloud Native at Oracle Cloud (Docker, Kubernetes Container Platform, Wercker, Istio Service Mesh, CNCF)
- Serverless
- Java Reborn – for microservices and cloud, modularized (highlights from the JavaOne conference)
- Disruptive: Blockchain, IoT, Machine Learning
Mobility and federation of Cloud computingDavid Wallom
The document discusses different models of mobile cloud computing including private, public, hybrid, and federated clouds. It describes the European Grid Infrastructure (EGI) Federated Cloud, which provides a single access point to multiple cloud providers through standard interfaces. The EGI Federated Cloud has been used productively for several years and supports a variety of applications and research communities through technical support and high-level tools.
The document discusses the shift towards cloud native application development. Some key points discussed include:
1. Cloud native originated in customer-facing tech companies and emphasizes building applications in, for, and maximizing the benefits of the cloud.
2. When developing new applications, organizations should focus on functional and non-functional requirements to determine the appropriate architecture, runtime environment, and degree of "cloudiness".
3. Cloud native development requires learning new topics like microservices, DevOps, serverless computing, and distributed systems.
Session on CloudStack, intended for new users to CloudStack, provides an overview to varied audience levels information on usages, use cases, deployment and its architecture.
Similar to Event Bus as Backbone for Decoupled Microservice Choreography (Oracle Code, April 20th 2017, London, UK) (20)
Introduction to web application development with Vue (for absolute beginners)...Lucas Jellema
In this slide deck I show you how you can easily and quickly create quite rich web applications with Vue 3 – without having to study complex concepts or understand many technical details. I have only recently learned how to work with Vue 3 myself and now is the best time for me to share my learning experience (and my enthusiasm) with you. I know what I found essential to understand and what most got me excited in these early steps (what was a little bit hard to grasp). I believe that I can present my steps and guide you to experience the same fun and have a similarly gratifying experience. I am not an expert in this subject – I have barely learned how to walk and that is why I can help you with these first steps with Vue.
In this deck, I do not explain how Vue works. I do not really know that. I will show you how to work with it and how to create web applications that are functional, appealing, fast and responsive.
The approach I am taking is straightforward:
• I will tell you a little bit about web development, browsers and reactive frameworks
• I will show the hello world of Vue applications
• I will explain about components and nesting, events, data binding and reactive behavior and demonstrate these concepts
• I will introduce Vue UI Component libraries – and with no effort at all we will launch our application to the next level – with rich components to explore, manipulate, visualize data collections
• We will publish the web application from our development environment to where the whole world could see it – using GitHub Pages
• As bonus topic – we discuss state management
At the end of this session you will be able to quickly create a simple yet rich web application with Vue 3. You have a starting point to further evolve your skills with the many online resources I am convinced that you will enjoy your newfound powers and the simplicity and power of Vue 3.
Note: a tutorial accompanies this slide deck - see https://github.com/lucasjellema/code-face-vue3-intro-reactiive-webapps-aug2023/blob/main/README.md
Making the Shift Left - Bringing Ops to Dev before bringing applications to p...Lucas Jellema
The document discusses bringing operations considerations into the development process earlier, referred to as "shifting left." It advocates designing applications with operations in mind from the beginning. This includes understanding operational objectives, constraints, and service level agreements. Application telemetry and monitoring are also important to incorporate from the start. The document provides examples of how to implement operational practices like deployments, health checks, and incident response processes in a shifted left model where development and operations work more closely together.
Lightweight coding in powerful Cloud Development Environments (DigitalXchange...Lucas Jellema
The document discusses lightweight coding in powerful cloud development environments using Gitpod. It describes Gitpod as providing a preconfigured Linux development environment in the browser or on local machine. The document outlines key Gitpod features like open source project collaboration, costs which are free for 50 hours per month, and benefits like clean environments and efficient resource usage. It also briefly mentions other tools like GitHub Codespaces.
Apache Superset - open source data exploration and visualization (Conclusion ...Lucas Jellema
Introducing Apache Superset - an open source platform for data exploration, visualization and analysis - co-starring Trino and Steampipe for providing SQL access to many non-SQL data sources.
CONNECTING THE REAL WORLD TO ENTERPRISE IT – HOW IoT DRIVES OUR ENERGY TRANSI...Lucas Jellema
Enterprise IT systems are deaf, blind and highly insensitive. They do not know what is going on in the outside world. Through Internet of Things technology, we provide eyes, ears and hands that allow enterprises to learn about and react in real time to events in the physical world. The energy transition at a major Dutch energy company (Eneco) is powered by IoT technology – to steer and sometimes curtail windmills and solar farms and to coordinate local energy production and trade. This session shows you how the physical world was connected to the customer portals and apps, asset management systems and Kafka platform through the Azure cloud based IoT Hub en Edge, digital twin, serverless functions, timeseries datastores and streaming data analysis. It is a story about technological innovation on top of existing foundations and of a vision for business and our society at large.
Help me move away from Oracle - or not?! (Oracle Community Tour EMEA - LVOUG...Lucas Jellema
I hear this aspiration from a growing number of organizations. Sometimes as a quite literal question. This however is merely half of a wish. Apparently, organizations want to quit with one thing — but have not yet stipulated what they desire instead. What is the objective that is pursued here? Only to get rid of Oracle? It will become clear why you should give a considerable thought about dropping Oracle, or any other vendors’ technology, when you’re not pleased with your current IT situation. You need to focus on the actual problems and objectives and define the suitable roadmap to fit your real needs. It turns out that the quest is usually for modernization and flexibility - and Oracle can very well be a part of that future.
Organizations with decades of investment in Oracle technology sometimes (and increasingly) express a wish to move away from Oracle. In this session, we will first explore where the desire to move away from Oracle might come from. Then we describe what the term Oracle represents — more than 2.000 products on all layers in the technology stack and in different business areas. Finally, we map out what the ‘moving away from’ consists of: defining where you ‘move to’ and subsequently actually going there.
It will become clear why you should give considerable thought about dropping Oracle, or any other vendors’ technology, when you’re not pleased with your current IT situation. You need to focus on the actual problems and objectives and define the suitable roadmap to fit your real needs. It turns out that the quest is usually for modernization and flexibility - and Oracle can very well be a part of that future.
Original storyline in this Medium Article: https://medium.com/real-vox/what-if-companies-say-help-me-move-away-from-oracle-ffbbc95afc4f
IoT - from prototype to enterprise platform (DigitalXchange 2022)Lucas Jellema
In 2019 the company started a small scale IoT project: smart meters in consumer homes, a cloud based IoT platform for device management, metrics collecting, monitoring and real time data processing. From the initial 12 devices and this single use case, the initiative has rapidly scaled, to tens of thousands devices - including entire wind parks and solar farms - and seven substantial business cases, not just for harvesting data but increasingly for real time actuation. The IoT Platform is feeding the brain at the heart of the enterprise - through an event streaming platform and an API platform. It supports complex operations with anomaly detection on metrics streams and device and communication monitoring. This session tells about the eye catching business cases - what are business objectives and results - and explains the journey since the start. It continues the story presented at DigitalXchange 2020 - discussing technical challenges and solutions as well as organizational aspects. Areas of particular interest: edge processing, data analytics and machine learning.
Who Wants to Become an IT Architect-A Look at the Bigger Picture - DigitalXch...Lucas Jellema
Pitch: The movie The Matrix made it clear: The Architect is powerful. How to be(come) and IT architect? What do you do, what do you need to know, is it fun and why? Using real world examples, core principles and useful tools, this session introduces the subtle art of designing and realizing flexible IT architectures. </p><p>Taking a step back to get and create an overview, frequently asking why to get to the real intention, bringing aspects such as cost, scale, time and change and business strategy into the design and bridging the gap between business owners, process managers and technical specialists. One way to define the responsibility of an IT architect. In this session, we will discuss what is expected of the architect and what you need to do for that and what you could use to get it done. How do you get started as an architect, how to grow in that role? We discuss a number of real life architectural challenges and solution design. And discuss a number of architecture principles, patterns, and powers to apply. Never stop programming - but perhaps rise to the architecture challenge too.
Notes: Many IT professionals aspire to become architects. Many architects wonder what it is they have to do. After 27 years in IT I find I have slowly and steadily moved into a role that I can probably use the label architect for, although still with some reluctance. What exactly does that mean - IT architect? While I may not have all answers and the ultimate truth and wisdom, I do have many architectural challenges to discuss and some core principles to share and a number of tips, tricks and tools to recommend that will help anyone get started or grow in a role as architect for software and IT systems. Elements that make an appearance include cloud, agile, DevOps, microservices, persistence, business, powers of persuasion, diagramming, cost, security, software engineering, data.
Outline: - two real world examples (one new business initiative, one running and struggling project) and how to approach them with an architect's mind - core principles to apply , patterns to us, what to unearth (the power question of WHY) - architecture products: what do you deliver as an architect; how do you ensure agility? - how to be effective? bringing your design to life - communication with stakeholders/powers of persuasion, monitoring adherence, being pragmatic but not lose grip; - anecdotal evidence from several small and large product teams - the good and also the ugly (architectural oversights and the consequences)
some specific answers to address - how much technical knowledge and programming skills does an architect require? What other knowledge is required and how to stay on top of your game? how to get going: first steps towards be(com)ing and architect?
Steampipe - use SQL to retrieve data from cloud, platforms and files (Code Ca...Lucas Jellema
Introduction to Steampipe - a tool for retrieving data and metadata about cloud resources, platform resources and file content - all through SQL. Data from clouds, files and platforms can be joined, filtered, sorted, aggregated using regular SQL. Steampipe offers a very convenient way to get hold of data that describes the environment in detail.
Automation of Software Engineering with OCI DevOps Build and Deployment Pipel...Lucas Jellema
Automation of software delivery has several advantages. Prevention of human error is certainly one. Consistent and complete execution of tried and tested build and deployment tasks as the only way to apply changes in the live environment. Once the pipelines have been set up, the engineers can focus on the software and applying the required changes to it. To bring that software all the way to production is a breeze. Oracle Cloud Infrastructure offers the DevOps service, introduced in the Summer of 2021. This service comes with git style code repositories, build servers and build pipelines, artifact repositories as well as deployment pipelines. This session introduces OCI DevOps and demonstrates how software can be built and deployed on OKE Kubernetes, Compute Instance VMs and Oracle Functions. From simple source code an application is put in production without manual intervention in the build and deployment process.
Introducing Dapr.io - the open source personal assistant to microservices and...Lucas Jellema
Dapr.io is an open source product, originated from Microsoft and embraced by a broad coalition of cloud suppliers (part of CNFC) and open source projects. Dapr is a runtime framework that can support any application and that especially shines with distributed applications - for example microservices - that run in containers, spread over clouds and / or edge devices.
With Dapr you give an application a "sidecar" - a kind of personal assistant that takes care of all kinds of common responsibilities. Capturing and retrieving state, publishing and consuming messages or events. Reading secrets and configuration data. Shielding and load balancing over service endpoints. Calling and subscribing to all kinds of SaaS and PaaS facilities. Logging traces across all kinds of application components and logically routing calls between microservices and other application components. Dapr provides generic APIs to the application (HTTP and gRPC) for calling all these generic services – and provides implementations of these APIs for all public clouds and dozens of technology components. This means that your application can easily make use of a wide range of relevant features - with a strict separation between the language the application uses for this (generic, simple) and the configuration of the specific technology (e.g. Redis, MySQL, CosmosDB, Cassandra, PostgreSQL, Oracle Database, MongoDB, Azure SQL etc) that the Dapr sidecar uses. Changing technology does not affect the application, but affects the configuration of the Sidecar. Dapr can be used from applications in any technology - from Java and C#/.NET to Go, Python, Node, Rust and PHP. Or whatever can talk HTTP (or gRPC).
In this Code Café I will introduce you to Dapr.io. I will show you what Dapr can do for you (application) and how you can Dapr-izen an application. I'll show you how an asynchronously collaborative system of microservices - implemented in different technologies - can be easily connected to Dapr, first to Redis as a Pub/Sub mechanism and then also to Apache Kafka without modifications. Then we do - with the interested parties - also a hands-on in which you will apply Dapr yourself . In a short time you get a good feel for how you can use Dapr for different aspects of your applications. And if nothing else, Dapr is a very easy way to get your code with Kafka, S3, Redis, Azure EventGrid, HashiCorp Consul, Twillio, Pulsar, RabbitMQ, HashiCorp Vault, AWS Secret Manager, Azure KeyVault, Cron, SMTP, Twitter, AWS SQS & SNS, GCP Pub/Sub and dozens of other technology components talk.
How and Why you can and should Participate in Open Source Projects (AMIS, Sof...Lucas Jellema
For a long time I have been reluctant to actively contribute to an open source project. I thought it would be rather complicated and demanding – and that I didn't have the knowledge or skills for it or at the very least that they (the project team) weren't waiting for me.
In December 2021, I decided to have a serious input into the Dapr.io project – and now finally to determine how it works and whether it is really that complicated. In this session I want to tell you about my experiences. How Fork, Clone, Branch, Push (and PR) is the rhythm of contributing to an open source project and how you do that (these are all Git actions against GitHub repositories). How to learn how such a project functions and how to connect to it; which tools are needed, which communication channels are used. I tell how the standards of the project – largely automatically enforced – help me to become a better software engineer, with an eye for readability and testability of the code.
How the review process is quite exciting once you have offered your contribution. And how the final "merge to master" of my contribution and then the actual release (Dapr 1.6 contains my first contribution) are nice milestones.
I hope to motivate participants in this session to also take the step yourself and contribute to an open source project in the form of issues or samples, documentation or code. It's valuable to the community and the specific project and I think it's definitely a valuable experience for the "contributer". I looked up to it and now that I've done it gives me confidence – and it tastes like more (I could still use some help with the work on Dapr.io, by the way).
Microservices, Apache Kafka, Node, Dapr and more - Part Two (Fontys Hogeschoo...Lucas Jellema
Apache Kafka is one of the best known enterprise grade message brokers – created at LinkedIn, donated to the Apache software foundation and used in an ever growing number of organizations to provide a backbone for asynchronous communication. This session introduces Apache Kafka – history, concepts, community and tooling. In a hands on lab, participants will create topics, publish and consume messages and get a general feel for Kafka. Simple microservices are developed in NodeJS – publishing to and consuming from Apache Kafka.
Dapr.io has support for Apache Kafka. Using Kafka through Dapr is very straightforward as is explained and demonstrated and applied in a second handson lab – with applications in various programming languages. Participants will even be able to exchange events across their laptops – through a cloud based Kafka broker.
Use of Apache Kafka in several architecture patterns is discussed – such as data integration, microservices, CQRS, Event Sourcing – along with a number of real world use cases from several well known organizations. The Kafka Connector framework is introduced – a set of adapters that allow us to easily connect Kafka to sources and sinks – where respectively change events are captured from and messages are published to.
Bonus Lab: Apache Kafka is ran on Kubernetes as is Dapr.io. Multiple mutually interacting microservices are deployed on the same local Kubernetes cluster.
Microservices, Node, Dapr and more - Part One (Fontys Hogeschool, Spring 2022)Lucas Jellema
This session does a quick recap of microservices: why do we want them, what problems do they solve and what are the principles around designing and implementing them? The Dapr.io runtime framework for distributed applications is introduced. Dapr provides a sidecar (almost like a personal assistant to a manager) to an application or microservice, a companion process that handles common tasks such as storing and retrieving state, consuming and publishing messages and events, invoking external services and other microservices as well as handling incoming requests. Participants will do a handson lab with Dapr.io and learn how to quickly implement interactions with various technologies, including Redis and MySQL.
Node(JS) is introduced – a server side JavaScript-based programming language that can be used well for implementing microservices. Some of the main characteristics of NodeJS are discussed (functional programming, asynchronous flows, NPM package manager) as well as common use cases (handle incoming HTTP requests, invoke REST APIs). In the second lab, Node and Dapr are used together to implement microservices that interact with databases and message brokers and each other – in a decoupled fashion.
6Reinventing Oracle Systems in a Cloudy World (RMOUG Trainingdays, February 2...Lucas Jellema
The cloud is changing many things. Even the decision to not (yet) adopt cloud is one to make explicitly. Now is a time for any organization to reconsider the IT landscape. For each system we should make a conscious ruling on its roadmap. The 6R model suggests six ways to move a system forward.
This session uses the 6R model and applies it specifically to Oracle technology based systems: what are the options and considerations for Oracle Database, Oracle Fusion Middleware, custom applications, and other red components? What future should we consider and how do we choose? The paths chosen by several Oracle-heavy users is presented to illustrate these options and the decision making process. Oracle Cloud Infrastructure and Autonomous Database play a role, as do Azure IaaS and Azure Managed Database as well as on premises systems. Latency, recovery, scalability, licenses, automation, lock-in, skills, and resources all make their appearance.
Help me move away from Oracle! (RMOUG Training Days 2022, February 2022)Lucas Jellema
Organizations with decades of investment in Oracle technology sometimes (and increasingly) express a wish to move away from Oracle. In this session, we will first explore where the desire to move away from Oracle might come from. Then we describe what the term Oracle represents -- more than 2.000 products on all layers in the technology stack and in different business areas. Finally, we map out what the 'moving away from' consists of: defining where you 'move to' and subsequently actually going there.
It will become clear why you should give considerable thought about dropping Oracle, or any other vendors' technology, when you're not pleased with your current IT situation. You need to focus on the actual problems and objectives and define the suitable roadmap to fit your real needs. It turns out that the quest is usually for modernization and flexibility - and Oracle can very well be a part of that future.
DevOps is a term used in many places and unfortunately also to mean many different things. This presentation (largely in Dutch) paints the DevOps picture. While it may not give a clear cut definition (there does not seem to be one) it certainly makes clear what DevOps is about, what objectives and origins are and which factors enable and drive DevOps.
Conclusion Code Cafe - Microcks for Mocking and Testing Async APIs (January 2...Lucas Jellema
Microcks is a tool for API Mocking and Testing. In this presentation an overview of the support in Microcks for asynchronous APIs - the event publishing and consuming behavior of services and applications
Cloud native applications offer scalability, flexibility, and optimal use of compute resources. Serverless functions interacting through events, leveraging cloud capabilities for persistent storage and automated operations take organization to the next level in IT. This session demonstrates polyglot Functions interacting with native cloud services for events and persistence (Object Storage and NoSQL Database) and leveraging the Key and Secrets Vault, Monitoring and Notifications services for operational control. A lightweight API Gateway is used to expose APIs to external consumers. Infrastructure as Code is the guiding principle in deploying both cloud resources and application components, through OCI CLI and Terraform. This session leverages many cloud native (enabling) services in Oracle Cloud Infrastructure. The session will introduce concepts, then spend most of the time on live demonstrations. All sources are shared with the audience, to allow participants to create the same application in their own cloud tenancy. What is so great about Cloud Native Applications? How do you create one? I will explain the first and demonstrate the second. On Oracle Cloud Infrastructure, using services that anyone can use for free, I will live create a cloud native application that streams, persists, notifies, scales, monitors Benefits: - get to know many different OCI services - understand the meaning, purpose and benefits of cloud native development - learn how to take your own first steps in OCI - for free!
Software Test Automation - A Comprehensive Guide on Automated Testing.pdfkalichargn70th171
Moving to a more digitally focused era, the importance of software is rapidly increasing. Software tools are crucial for upgrading life standards, enhancing business prospects, and making a smart world. The smooth and fail-proof functioning of the software is very critical, as a large number of people are dependent on them.
WMF 2024 - Unlocking the Future of Data Powering Next-Gen AI with Vector Data...Luigi Fugaro
Vector databases are transforming how we handle data, allowing us to search through text, images, and audio by converting them into vectors. Today, we'll dive into the basics of this exciting technology and discuss its potential to revolutionize our next-generation AI applications. We'll examine typical uses for these databases and the essential tools
developers need. Plus, we'll zoom in on the advanced capabilities of vector search and semantic caching in Java, showcasing these through a live demo with Redis libraries. Get ready to see how these powerful tools can change the game!
Secure-by-Design Using Hardware and Software Protection for FDA ComplianceICS
This webinar explores the “secure-by-design” approach to medical device software development. During this important session, we will outline which security measures should be considered for compliance, identify technical solutions available on various hardware platforms, summarize hardware protection methods you should consider when building in security and review security software such as Trusted Execution Environments for secure storage of keys and data, and Intrusion Detection Protection Systems to monitor for threats.
Unlock the Secrets to Effortless Video Creation with Invideo: Your Ultimate G...The Third Creative Media
"Navigating Invideo: A Comprehensive Guide" is an essential resource for anyone looking to master Invideo, an AI-powered video creation tool. This guide provides step-by-step instructions, helpful tips, and comparisons with other AI video creators. Whether you're a beginner or an experienced video editor, you'll find valuable insights to enhance your video projects and bring your creative ideas to life.
Baha Majid WCA4Z IBM Z Customer Council Boston June 2024.pdfBaha Majid
IBM watsonx Code Assistant for Z, our latest Generative AI-assisted mainframe application modernization solution. Mainframe (IBM Z) application modernization is a topic that every mainframe client is addressing to various degrees today, driven largely from digital transformation. With generative AI comes the opportunity to reimagine the mainframe application modernization experience. Infusing generative AI will enable speed and trust, help de-risk, and lower total costs associated with heavy-lifting application modernization initiatives. This document provides an overview of the IBM watsonx Code Assistant for Z which uses the power of generative AI to make it easier for developers to selectively modernize COBOL business services while maintaining mainframe qualities of service.
Penify - Let AI do the Documentation, you write the Code.KrishnaveniMohan1
Penify automates the software documentation process for Git repositories. Every time a code modification is merged into "main", Penify uses a Large Language Model to generate documentation for the updated code. This automation covers multiple documentation layers, including InCode Documentation, API Documentation, Architectural Documentation, and PR documentation, each designed to improve different aspects of the development process. By taking over the entire documentation process, Penify tackles the common problem of documentation becoming outdated as the code evolves.
https://www.penify.dev/
Superpower Your Apache Kafka Applications Development with Complementary Open...Paul Brebner
Kafka Summit talk (Bangalore, India, May 2, 2024, https://events.bizzabo.com/573863/agenda/session/1300469 )
Many Apache Kafka use cases take advantage of Kafka’s ability to integrate multiple heterogeneous systems for stream processing and real-time machine learning scenarios. But Kafka also exists in a rich ecosystem of related but complementary stream processing technologies and tools, particularly from the open-source community. In this talk, we’ll take you on a tour of a selection of complementary tools that can make Kafka even more powerful. We’ll focus on tools for stream processing and querying, streaming machine learning, stream visibility and observation, stream meta-data, stream visualisation, stream development including testing and the use of Generative AI and LLMs, and stream performance and scalability. By the end you will have a good idea of the types of Kafka “superhero” tools that exist, which are my favourites (and what superpowers they have), and how they combine to save your Kafka applications development universe from swamploads of data stagnation monsters!
What to do when you have a perfect model for your software but you are constrained by an imperfect business model?
This talk explores the challenges of bringing modelling rigour to the business and strategy levels, and talking to your non-technical counterparts in the process.
🏎️Tech Transformation: DevOps Insights from the Experts 👩💻campbellclarkson
Connect with fellow Trailblazers, learn from industry experts Glenda Thomson (Salesforce, Principal Technical Architect) and Will Dinn (Judo Bank, Salesforce Development Lead), and discover how to harness DevOps tools with Salesforce.
Stork Product Overview: An AI-Powered Autonomous Delivery FleetVince Scalabrino
Imagine a world where instead of blue and brown trucks dropping parcels on our porches, a buzzing drove of drones delivered our goods. Now imagine those drones are controlled by 3 purpose-built AI designed to ensure all packages were delivered as quickly and as economically as possible That's what Stork is all about.
Consistent toolbox talks are critical for maintaining workplace safety, as they provide regular opportunities to address specific hazards and reinforce safe practices.
These brief, focused sessions ensure that safety is a continual conversation rather than a one-time event, which helps keep safety protocols fresh in employees' minds. Studies have shown that shorter, more frequent training sessions are more effective for retention and behavior change compared to longer, infrequent sessions.
Engaging workers regularly, toolbox talks promote a culture of safety, empower employees to voice concerns, and ultimately reduce the likelihood of accidents and injuries on site.
The traditional method of conducting safety talks with paper documents and lengthy meetings is not only time-consuming but also less effective. Manual tracking of attendance and compliance is prone to errors and inconsistencies, leading to gaps in safety communication and potential non-compliance with OSHA regulations. Switching to a digital solution like Safelyio offers significant advantages.
Safelyio automates the delivery and documentation of safety talks, ensuring consistency and accessibility. The microlearning approach breaks down complex safety protocols into manageable, bite-sized pieces, making it easier for employees to absorb and retain information.
This method minimizes disruptions to work schedules, eliminates the hassle of paperwork, and ensures that all safety communications are tracked and recorded accurately. Ultimately, using a digital platform like Safelyio enhances engagement, compliance, and overall safety performance on site. https://safelyio.com/
What is Continuous Testing in DevOps - A Definitive Guide.pdfkalichargn70th171
Once an overlooked aspect, continuous testing has become indispensable for enterprises striving to accelerate application delivery and reduce business impacts. According to a Statista report, 31.3% of global enterprises have embraced continuous integration and deployment within their DevOps, signaling a pervasive trend toward hastening release cycles.
Streamlining End-to-End Testing Automation with Azure DevOps Build & Release Pipelines
Automating end-to-end (e2e) test for Android and iOS native apps, and web apps, within Azure build and release pipelines, poses several challenges. This session dives into the key challenges and the repeatable solutions implemented across multiple teams at a leading Indian telecom disruptor, renowned for its affordable 4G/5G services, digital platforms, and broadband connectivity.
Challenge #1. Ensuring Test Environment Consistency: Establishing a standardized test execution environment across hundreds of Azure DevOps agents is crucial for achieving dependable testing results. This uniformity must seamlessly span from Build pipelines to various stages of the Release pipeline.
Challenge #2. Coordinated Test Execution Across Environments: Executing distinct subsets of tests using the same automation framework across diverse environments, such as the build pipeline and specific stages of the Release Pipeline, demands flexible and cohesive approaches.
Challenge #3. Testing on Linux-based Azure DevOps Agents: Conducting tests, particularly for web and native apps, on Azure DevOps Linux agents lacking browser or device connectivity presents specific challenges in attaining thorough testing coverage.
This session delves into how these challenges were addressed through:
1. Automate the setup of essential dependencies to ensure a consistent testing environment.
2. Create standardized templates for executing API tests, API workflow tests, and end-to-end tests in the Build pipeline, streamlining the testing process.
3. Implement task groups in Release pipeline stages to facilitate the execution of tests, ensuring consistency and efficiency across deployment phases.
4. Deploy browsers within Docker containers for web application testing, enhancing portability and scalability of testing environments.
5. Leverage diverse device farms dedicated to Android, iOS, and browser testing to cover a wide range of platforms and devices.
6. Integrate AI technology, such as Applitools Visual AI and Ultrafast Grid, to automate test execution and validation, improving accuracy and efficiency.
7. Utilize AI/ML-powered central test automation reporting server through platforms like reportportal.io, providing consolidated and real-time insights into test performance and issues.
These solutions not only facilitate comprehensive testing across platforms but also promote the principles of shift-left testing, enabling early feedback, implementing quality gates, and ensuring repeatability. By adopting these techniques, teams can effectively automate and execute tests, accelerating software delivery while upholding high-quality standards across Android, iOS, and web applications.
A Comprehensive Guide on Implementing Real-World Mobile Testing Strategies fo...kalichargn70th171
In today's fiercely competitive mobile app market, the role of the QA team is pivotal for continuous improvement and sustained success. Effective testing strategies are essential to navigate the challenges confidently and precisely. Ensuring the perfection of mobile apps before they reach end-users requires thoughtful decisions in the testing plan.
A Comprehensive Guide on Implementing Real-World Mobile Testing Strategies fo...
Event Bus as Backbone for Decoupled Microservice Choreography (Oracle Code, April 20th 2017, London, UK)
1. EVENT BUS AS
BACKBONE FOR
DECOUPLED
MICROSERVICE
CHOREOGRAPHY
Lucas Jellema (CTO AMIS & Oracle ACE Director)
20th April 2017, Oracle Code, London, UK
2. AGENDA
• Introduction of microservices - objectives, traits, implementation
• The making of a microservice (demo)
• The microservices platform - generic capabilities
• Using events for decoupled interaction and workflow choreography
• Introduction of Apache Kafka for implementing the Event Bus
• Microservices and Event Bus in a hybrid world – cross on-premises and clouds
• Implementing a multi-microservice workflow with event based choreography
• Design, architecture, implementation and live demo
• Music maestro – demonstrating event based workflow choreography by
microservices
• Logging on the microservices platform
4. MICROSERVICE OBJECTIVES
(BECAUSE OF ENTERPRISE OBJECTIVES)
• Flexible, agile (Dev)
• Functionality evolves rapidly with little effort
• Easy quick rollout
• Low impact
• Manageable Non Functionally (Ops)
• Scalable – handle flexible workload (horizontal scaleout)
• Available – deal with failing nodes
• Comprehendable
• Dependencies, Impact, Implementation, deployment, operations
• Ownership (culture, organization, process)
• One team can do functional and technical evolution and deployment continuously
and independently
5. MICROSERVICES HOW
• Extremely decoupled (from other, non owned microservices | IT
components)
• Functionally
• Non functionally – platform
• Stateless (especially session-state less)
• Stand alone
• Deployable, manageable, scalable
• Container
• DevOps team
• “You build it, you run it, you fix | evolve it”
6. STANDING ON SHOULDERS OF GIANTS
• Monolith++
• API
• Scale out
• Automated CI/CD
• SOA++
• Stateless
• HTTP native (REST)
• Multiple tiers & platform components included
• Deployable
7. MICROSERVICES HOW
• Public APIs in standardized protocols
• Deployable on enterprise standardized microservices platform
• Omnia mea porto mecum no external dependencies
• Except:
• Calls to public APIs (exposed for example by microservices)
• Usage of platform facilities
• Generically available via contract
• Injected via parameters
• No sharing of data or other private resources across microservices
• Stateless and Horizontally scalable
• No session state, no client stickyness
• Potentially micro-silo with multiple tiers (including UI)
• Any implementation technology
• that can run on the platform
8. MICROSERVICES PLATFORM
• Receives microservice deployment
• Handles scale out & fail over
• Start/stop microservice instances based on
non functional requirements and live observed behavior
• Supports automated DevOps
• CD, monitoring, …
• Provides Capabilities – generic facilities available to microservices
from the run time platform
• Provided through public APIs whenever possible
• Injected meta-data at run time
• implemented by generic/platform level microservices
Microservices Platform
API
deploy, inject
dependencies, start,
watch, restart, stop,
scale
API API
API Gateway
Authenticate
Logging
Cache
9. THE MAKING OF A MICROSERVICE
Dockerfile Pod.yaml
Service.yaml
Volume
(Storage)
Config&Depency
Injection
17. SHARED PLATFORM CAPABILITY
• Microservices are isolated
• Not aware of each other (except through public APIs)
• Not sharing private resources
• Ideally each microservice brings its own platform
• To prevent run time environment from being out of synch and creating dependency/impact between
multiple platform users
• However: At some level, sharing is inevitable Storage, Compute, power supply, building
• In practice: having full blown RDBMS or Java EE server or Kafka cluster as part of a
microservice may be unfeasible
• Even if Docker images are light weight from layering – the run time resource usage is probably not
• One approach: forbid use of heavy platforms
• Alternative approach: provide generic ‘heavy duty’ platform capabilities, available for
use in any microservice in a standardized way
• If you need it, you can make use of your own private Oracle Database 12c Schema (or PDB) with
the following features available to you … ; recovery can be performed in the following ways and
under these conditions.
18. MICROSERVICES CROSS PLATFORM
CAPABILITIES
• Authentication
• Persistent Storage
• Cache
• Load balancing/API Gateway
• Discovery/Lookup
• Monitoring
• Functional/Business KPIs
• Non Functional Platform/Container & Infra
• Audit, Usage tracking, Billing
• Notifications and alerting
• Logging
• Relational Database Capability
Microservices Platform
API
API
UI
API UI
Logging
Cache
Authentication
Notification
Usage
Tracking
19. EXAMPLE SYSTEM ARCHITECTURE
Microservices Platform
API
API
Logging
Cache
API API
UI
HTML 5
Web
Component
REST/
JSON
Authentication
API UI
Java /
Spring
Boot
NodeJS &
Express &
MongoDB Redis
Widgets
REST/
JSON
Storage
Python &
MySQL
REST/
JSON
WebLogic
& Oracle
Database
Legacy
Application
API UI
Strangler
NodeJS &
Express
Notification
Usage
Tracking
20. TRENDS, CHALLENGES, COMMON
• Use of containers and container management
• Docker Containers – layered, packaged & shippable, registry
• Docker Container Management: Composer, Mesos, Swarm or Kubernetes
• Application Container platform such as Google App Engine, Azure App Service,
Oracle Application Container Cloud, AWS Beanstalk
• Serverless computing – AWS Lambda, Oracle Functions
• Use of cache for [state of] longer running conversations
• Transaction, session, workflow, business process
• New ways to consider data
• Every microservice owns the data it requires – data denormalization and
duplication of data across microservices is a logical consequence
• Command Query Responsibility Segregation (CQRS) and Event Sourcing
• Orchestration | Choreography across microservices
22. MICROSERVICES AND EVENTS
• Report business events [without knowing to whom and without expecting a response]
• Allowing interested microservices to respond – for example trigger serverless functions
• Provide response to stateless caller – with conversation key
• Choreograph cross-microservice workflow | process
• Inform workflow | process orchestrator | job scheduler about activity status
• Enable distributed transaction – commit and rollback/compensate
• Make data events available for event sourcing
• Allowing microservices to maintain their own [derived] data set
• Synchronize cache refresh
• Informing any microservice caching data about the need to refresh specific records
• Hand systems events & metrics to monitoring service
• Extreme decoupling – microservice choreography
• Microservice never call each other, not even through public API;
all interactions are through events
23. MICROSERVICE WORKFLOW
CHOREOGRAPHY
• Multi step process
• Each step in different microservice
• Multiple approaches
• Orchestrator – running the process by invoking the required microservices
subsequently, responding either to synch response, asynch callback or event
• Choreography – allow the required microservices to react to relevant events
• Act when it is your turn (as determined by routing slip?)
• Share state through cache with claim check in routing slip
• When done, publish updated routing slip
• Possibly implement compensation handler
24. REQUIREMENTS FOR EVENT CAPABILITY
IN MICROSERVICES PLATFORM
• Provide decoupling between publisher and consumer
• Generally accessible for all microservices
• Across the platform
• Using standardized protocols and formats for communications and event payload (http,
JSON)
• Scalable (handle high loads)
• Available (allow speedy event publication)
• Reliable (do not lose events, at least once delivery)
• Event Ordering (deliver events in the order of publication)
• Retain Event History
• Manageable at scale
• Event Catalog – which events are published, what do they mean and what is
their payload
• Harvested from microservices
25. INTRODUCING APACHE KAFKA
• ..- 2010 – creation at Linkedin
• Message Bus | Event Broker
• High volume, low latency, highly reliable, cross technology
• Scalable, distributed, strict message ordering, ….
• 2011/2012 – open source under the Apache Incubator/ Top Project
• Kafka is used by many large corporations:
• Walmart, Cisco, Netflix, PayPal, LinkedIn, eBay, Spotify, Uber, Sift Science
• And embraced by many software vendors & cloud providers
• Client libraries available for NodeJS, Java, C++, Python, Ruby, PHP
and many more
26. KAFKA TERMINOLOGY
• Topic
• partition
• Message
• == ByteArray
• Broker
• replicated
• Producer
• Consumer
• Working together
in Consumer Groups
Producer Consumer
Topic
Broker
Key
Value
Time
Message
29. EXTENDED API OF MICROSERVICE
• Deployment API
• Injectable dependencies – reference to cache, logging, storage URL, …
• Configurable meta-data – run time parameters, log level, credential (key)
• Interraction API
• REST Resources & Operations – query and URL parameters, message
formats
• Events Consumed – alternative way to call | activate a microservice
• Reference to entry in Event Catalog
• May include reference to shared Cache Resource
• Events Produced – alternative output from microservice
• Event can be an asynchronous response to a stateless consumer
API
30. EVENT BRIDGE TO CONNECT CLOUD & ON
PREMISES EVENT BUS
• An event bus based on Apache Kafka can run on premises and in the cloud
• Various cloud vendors offer such an Apache Kafka service
• For example Oracle Event Hub CS
• In a hybrid landscape – both on premises and in-the-cloud microservices – two
event buses can be used with a bridge between the two
• Or more if multiple clouds are part of the landscape
EventHub CS
On premises
Event Bus
EventHub CS
31. EVENT BRIDGE TO CONNECT CLOUD &
ON PREMISES EVENT BUS
Microservices Platform
API
EventHub CS
On premises
EventBridge
API
API
API
API
API
API
API
API
Event Bus
API
EventBridgeEventBridge
32. DESIRED WORKFLOW
Tweet about
OracleCode
Validate
Tweet
No simple retweet, no
black listed words used,
no known robot tweeter
or otherwise excluded
authors, no undesirable
location
Enrich Tweet
Details about author, location,
hashtags, acronyms and
abbreviations used in tweet
Add Tweet to
TweetBoard
Add the tweet to the top
of the TweetBoard – a
list of recent, relevant
tweets
Publish
TweetBoard
Publish the TweetBoard
through API and UI
(HTML web document)
done
33. MICROSERVICES TO MAP WORKFLOW TO
Microservices Platform
API
Event Bus
REST/
JSON
APIUI
Cache
Oracle
Coherence
EventHub CS
Apache
Kafka
NodeJS &
Express in
ACCS
On premises
Tweet
Board
Validate
Tweet API
Java SE
REST/
JSON Enrich
Tweet
Java SE
42. MAIN TECHNICAL CHALLENGES
• Dockerize NodeJS applications
• Run Docker container images in Kubernetes cluster
• Pass environment variables and disk volumes
• Expose services through ports
• Link NodeJS applications in Kubernetes to Kafka Cluster in
VirtualBox
• Producing to and consuming from Topic
• Kafka host needs to be in /etc/hosts file in Node.JS Docker Container
• Leverage in-cloud cache from Kubernetes Pod members
• Share workflow instance state across microservices
• Create two-way EventBridge between local microservices and cloud
43. SUMMARY
• Microservices are about rapid rollout of scalable, available functionality
• (session) Stateless, Continuous deployment, horizontal scale out
• One team is owner of a microservice and can evolve and deploy independently
• Microservice is understandable and manageable
• Microservices contain everything that is special for their implementation
• External dependencies only on generic platform capabilities and public APIs
• Microservices expose a public API
• REST resources & operations and events (consumed and produced)
• Decoupled, Event-based interaction is crucial for microservices
• Cache synchronization, Monitoring, CQRS, Event Sourcing, Choreographed workflows
• The microservices platform should provide an Event Bus capability
• Apache Kafka is a proven, popular Event Bus implementation – available in premises
and in the cloud (for example through Oracle Event Hub CS)
Microservices are independent, encapsulated entities that produce meaningful results and business functionality in tentative collaboration. Events and pub/sub are great for allowing such decoupled interaction. Using Apache Kafka as robust, distributed, real-time, high volume event bus, this session demonstrates how microservices implemented in Java, Node, Python and SQL collaborate unknowingly. The microservices respond to social (media) events - courtesy of IFTTT - and publish results to multiple channels. The event bus operates across cloud services and on premises platforms: both the bus and the microservices can run anywhere.
presentation summary
- intro microservices objectives, focus on decoupled collaboration
- demo four mservices in different technologies; no direct dependencies
- outline desired choreography, use of events and need of event bus
- intro Kafka
- demo pub and sub from each mservice to Kafka
- link IFTTT to Kafka
(for demo: use ngrok to expose local Kafka to IFTTT cloud)
- demo end-to-end Social event=>IFTTT=>Kafka=>choreographed mservices=> final result
- discuss cloud deployment of event bus + mservices
http://www.dreweaster.com/blog/2016/05/08/the-art-of-microservices-integration-using-service-choreography/
End-to-end autonomy (each microservice leverages event sourcing to maintain the state it needs (even though it does not own it)
https://www.slideshare.net/CAinc/hypermediadriven-orchestration-in-microservices-55985377
Workflow initiator responds to NewTweetEvent
Workflow Initiator - When tweet is for hashtag oraclecode then create routingslip document with tweet data, store in cache under key and publish workflow event for OracleCodeTwitterWorkflow with cache key for workflow state in payload
Validate Tweet – when OracleCodeTwitterWorkflow event – fetch workflow state from cache based on event payload, check routingslip to see if ValidateTweet should act; if so, validate tweet, update routing slip, retrieve and store in cache; publish workflow event for OracleCodeTwitterWorkflow with cache key for workflow state in payload
Enrich Tweet – when OracleCodeTwitterWorkflow event – fetch workflow state from cache based on event payload, check routingslip to see if EnrichTweet should act; if so, enrich tweet, update routing slip, retrieve and store in cache; publish workflow event for OracleCodeTwitterWorkflow with cache key for workflow state in payload
TweetBoard – when OracleCodeTwitterWorkflow event – fetch workflow state from cache based on event payload, check routingslip to see if TweetBoard should act; if so, add tweet to tweet list, update routing slip, retrieve-and-store in cache; publish workflow event for OracleCodeTwitterWorkflow with cache key for workflow state in payload
All microservices publish logging about their actions with the conversation identifier as part of the logging
Workflow initiator responds to NewTweetEvent
Workflow Initiator - When tweet is for hashtag oraclecode then create routingslip document with tweet data, store in cache under key and publish workflow event for OracleCodeTwitterWorkflow with cache key for workflow state in payload
Validate Tweet – when OracleCodeTwitterWorkflow event – fetch workflow state from cache based on event payload, check routingslip to see if ValidateTweet should act; if so, validate tweet, update routing slip, retrieve and store in cache; publish workflow event for OracleCodeTwitterWorkflow with cache key for workflow state in payload
Enrich Tweet – when OracleCodeTwitterWorkflow event – fetch workflow state from cache based on event payload, check routingslip to see if EnrichTweet should act; if so, enrich tweet, update routing slip, retrieve and store in cache; publish workflow event for OracleCodeTwitterWorkflow with cache key for workflow state in payload
TweetBoard – when OracleCodeTwitterWorkflow event – fetch workflow state from cache based on event payload, check routingslip to see if TweetBoard should act; if so, add tweet to tweet list, update routing slip, retrieve-and-store in cache; publish workflow event for OracleCodeTwitterWorkflow with cache key for workflow state in payload
All microservices publish logging about their actions with the conversation identifier as part of the logging
Workflow initiator responds to NewTweetEvent
Workflow Initiator - When tweet is for hashtag oraclecode then create routingslip document with tweet data, store in cache under key and publish workflow event for OracleCodeTwitterWorkflow with cache key for workflow state in payload
Validate Tweet – when OracleCodeTwitterWorkflow event – fetch workflow state from cache based on event payload, check routingslip to see if ValidateTweet should act; if so, validate tweet, update routing slip, retrieve and store in cache; publish workflow event for OracleCodeTwitterWorkflow with cache key for workflow state in payload
Enrich Tweet – when OracleCodeTwitterWorkflow event – fetch workflow state from cache based on event payload, check routingslip to see if EnrichTweet should act; if so, enrich tweet, update routing slip, retrieve and store in cache; publish workflow event for OracleCodeTwitterWorkflow with cache key for workflow state in payload
TweetBoard – when OracleCodeTwitterWorkflow event – fetch workflow state from cache based on event payload, check routingslip to see if TweetBoard should act; if so, add tweet to tweet list, update routing slip, retrieve-and-store in cache; publish workflow event for OracleCodeTwitterWorkflow with cache key for workflow state in payload
All microservices publish logging about their actions with the conversation identifier as part of the logging