Serverless, aka. function-as-a-service (FaaS) is on-trend, and as with all new shiny things it is often both over and under estimated in the space of the same conversation. Where can and should it be applied, especially in relation to integration? Does it make provide a good platform for implementing APIs? What type of application would be appropriate to put on it? How does it relate to similarly elastic architectures such as microservices? If its functions are stateless, where and how do you manage state. How do you integrate to and from it? What are the benefits, and what are the limitations? This unique perspective is from the same experienced team that provided key clarifications on the comparisons between microservices, SOA and APIs.
Building enterprise depth APIs with the IBM hybrid integration portfolioKim Clark
APIs are fast becoming central to the way that an enterprise presents itself to partners and customers, enabling innovation and automation. A well crafted API is today's front page advertisement for your enterprise's capabilities, but there must be substance beneath the API, for it to fulfil its promise. Success beyond initial launch of the API rides upon many factors.
In this talk we'll focus on the architectural elements that need to be considered in order to ensure the API will be secure, scalable, agile to change, manageable and maintainable. Along the way we will discuss how to leverage the sweet spots of IBM's hybrid integration portfolio to make your API initiative more productive, and maintainable into the future.
The resurgence of event driven architectureKim Clark
Event driven architecture originally rose to popularity in the early 2000s, and it was far from new even then. However, topics described at the time such as event sourcing, complex event processing, and related concepts such as domain driven design have risen to the surface again. Cloud native principles, containerization, microservices, and the success of open source projects such as Apache Kafka have brought new relevance to these patterns. It is clear that RESTful APIs are not the only game in town for component interactions, but the interplay between APIs and events is subtle. We’ll explore the most common patterns in use today, their pros and cons, and consider what role events are likely to play in enterprise architecture in the future.
Convergence of Integration and Application DevelopmentKim Clark
This presentation is available as a webinar at http://ibm.biz/agile-integration-convergence
Innovative applications today are rarely self contained. They are fundamentally dependent on the ability to bring disparate data together in new and unique ways. This means integration is at the core of all new applications.
In the past, the creation of integrations and applications have been different disciplines. Nowadays, application developers regularly perform integration when defining and exposing their own APIs and events. Integration capabilities are now simply part of application developer's toolkit.
We discuss how this is resulting in a new generation of powerful integration-enabled applications.
Agile integration architecture in relation to APIs and messagingKim Clark
Taking a broader look at agile integration architecture, exploring how it affects all aspects of integration. With agile integration architecture now established as the mechanism for breaking up of the enterprise service bus into more fine grained deployment and decentralized ownership of integration component, what are the implications on other aspects of integration? What does this mean for APIs? How do the APIs we expose map back to fine grained microservice inspired implementations? What can API management provide to help us manage the complexity and security challenges of heterogeneous multi-cloud implementations? Why is asynchronous transport gaining a refreshed momentum and how is event-based architecture different from queue based interaction patterns?
Agile Integration Architecture: A Containerized and Decentralized Approach to...Kim Clark
Microservices principles are revolutionizing the way applications are built, by enabling a more decoupled and decentralized approach to implementation, creating greater agility, scalability and resilience. These applications still need to be connected to one another, and to existing systems of record. Agile integration architecture brings the benefits of cloud-ready containerization to the integration space. It provides the opportunity to move from the heavily centralized ESB pattern to integration within more empowered and autonomous application teams. We look at the architectural differences in this approach compared to traditional integration, and also at how it enables more decentralized organizational structure better suited to digital transformation. You can read a more detailed paper on this approach at http://ibm.biz/AgileIntegArchPaper. This presentation was recorded for Integration Developer News (http://www.idevnews.com/) and is available here: http://ibm.biz/AgileIntegArchWebinar
Differentiating between web APIs, SOA, & integration…and why it mattersKim Clark
At a high level, both SOA and web APIs seem to solve the same problem – expose business function in real-time and in a reusable way. This tutorial looks at how these initiatives are different and how they align into an evolving integration architecture. It discusses how API Management differs from the integration architectures that came before it, such as SOA and EAI.
This is the original eBook I created with Tony Curcio and Nick Glowacki, uploaded here for posterity since it is now somewhat superseded by the smart paper at http://ibm.biz/agile-integration and then in considerably more detail in the first few chapters of the agile integration IBM Redbook http://ibm.biz/agile-integration-redbook
What’s behind a high quality web API? Ensure your APIs are more than just a ...Kim Clark
Web APIs have now become as important as websites for some enterprises. Dreaming up an attractive set of data resources to expose to your consumers is a critical step, but it's just the beginning. In the world of APIs, standards are rare, so common conventions are everything. Which should you choose, and how do you apply them to your data model? What architecture will ensure your APIs are robust, scalable, and secure? How do you ensure data integrity in an environment without transactionality? How will you prepare for huge changes in scale? How do you join your API world with your existing enterprise integration and SOA? Attendees will learn design practices to ensure their APIs are both attractive and consumable.
Building enterprise depth APIs with the IBM hybrid integration portfolioKim Clark
APIs are fast becoming central to the way that an enterprise presents itself to partners and customers, enabling innovation and automation. A well crafted API is today's front page advertisement for your enterprise's capabilities, but there must be substance beneath the API, for it to fulfil its promise. Success beyond initial launch of the API rides upon many factors.
In this talk we'll focus on the architectural elements that need to be considered in order to ensure the API will be secure, scalable, agile to change, manageable and maintainable. Along the way we will discuss how to leverage the sweet spots of IBM's hybrid integration portfolio to make your API initiative more productive, and maintainable into the future.
The resurgence of event driven architectureKim Clark
Event driven architecture originally rose to popularity in the early 2000s, and it was far from new even then. However, topics described at the time such as event sourcing, complex event processing, and related concepts such as domain driven design have risen to the surface again. Cloud native principles, containerization, microservices, and the success of open source projects such as Apache Kafka have brought new relevance to these patterns. It is clear that RESTful APIs are not the only game in town for component interactions, but the interplay between APIs and events is subtle. We’ll explore the most common patterns in use today, their pros and cons, and consider what role events are likely to play in enterprise architecture in the future.
Convergence of Integration and Application DevelopmentKim Clark
This presentation is available as a webinar at http://ibm.biz/agile-integration-convergence
Innovative applications today are rarely self contained. They are fundamentally dependent on the ability to bring disparate data together in new and unique ways. This means integration is at the core of all new applications.
In the past, the creation of integrations and applications have been different disciplines. Nowadays, application developers regularly perform integration when defining and exposing their own APIs and events. Integration capabilities are now simply part of application developer's toolkit.
We discuss how this is resulting in a new generation of powerful integration-enabled applications.
Agile integration architecture in relation to APIs and messagingKim Clark
Taking a broader look at agile integration architecture, exploring how it affects all aspects of integration. With agile integration architecture now established as the mechanism for breaking up of the enterprise service bus into more fine grained deployment and decentralized ownership of integration component, what are the implications on other aspects of integration? What does this mean for APIs? How do the APIs we expose map back to fine grained microservice inspired implementations? What can API management provide to help us manage the complexity and security challenges of heterogeneous multi-cloud implementations? Why is asynchronous transport gaining a refreshed momentum and how is event-based architecture different from queue based interaction patterns?
Agile Integration Architecture: A Containerized and Decentralized Approach to...Kim Clark
Microservices principles are revolutionizing the way applications are built, by enabling a more decoupled and decentralized approach to implementation, creating greater agility, scalability and resilience. These applications still need to be connected to one another, and to existing systems of record. Agile integration architecture brings the benefits of cloud-ready containerization to the integration space. It provides the opportunity to move from the heavily centralized ESB pattern to integration within more empowered and autonomous application teams. We look at the architectural differences in this approach compared to traditional integration, and also at how it enables more decentralized organizational structure better suited to digital transformation. You can read a more detailed paper on this approach at http://ibm.biz/AgileIntegArchPaper. This presentation was recorded for Integration Developer News (http://www.idevnews.com/) and is available here: http://ibm.biz/AgileIntegArchWebinar
Differentiating between web APIs, SOA, & integration…and why it mattersKim Clark
At a high level, both SOA and web APIs seem to solve the same problem – expose business function in real-time and in a reusable way. This tutorial looks at how these initiatives are different and how they align into an evolving integration architecture. It discusses how API Management differs from the integration architectures that came before it, such as SOA and EAI.
This is the original eBook I created with Tony Curcio and Nick Glowacki, uploaded here for posterity since it is now somewhat superseded by the smart paper at http://ibm.biz/agile-integration and then in considerably more detail in the first few chapters of the agile integration IBM Redbook http://ibm.biz/agile-integration-redbook
What’s behind a high quality web API? Ensure your APIs are more than just a ...Kim Clark
Web APIs have now become as important as websites for some enterprises. Dreaming up an attractive set of data resources to expose to your consumers is a critical step, but it's just the beginning. In the world of APIs, standards are rare, so common conventions are everything. Which should you choose, and how do you apply them to your data model? What architecture will ensure your APIs are robust, scalable, and secure? How do you ensure data integrity in an environment without transactionality? How will you prepare for huge changes in scale? How do you join your API world with your existing enterprise integration and SOA? Attendees will learn design practices to ensure their APIs are both attractive and consumable.
Hybrid integration reference architectureKim Clark
The ownership boundary of the typical enterprise now encompasses a much broader IT landscape. It is common to see that landscape stretch out to cloud native development platforms, software as a service, dependencies on external APIs from business partners, a mobile workforce and an ever growing range of digital channels. The integration surface area is dramatically increased and the integration patterns to support it are evolving just as quickly. These are the challenges we recognise as "hybrid integration". We will explore what a reference architecture for hybrid integration might look like, and how IBM's integration portfolio is growing and changing to meet the needs of digital transformation. This deck comes from the following article http://ibm.biz/HybridIntRefArch and is also described in this video http://ibm.biz/HybridIntRefArchYouTube
MuCon 2015 - Microservices in Integration ArchitectureKim Clark
Discusses the how microservices fit into the ever evolving integration architecture, looking at how these concepts are often seen very differently through the eyes of enterprises with different lanscapes.
The evolving story for Agile Integration Architecture in 2019Kim Clark
Agile integration architecture (AIA) has moved well beyond its roots around decentralization of the ESB into a more containerized and cloud native approach to integration. We're now exploring how integration modernization affects API management, messaging, events, file movement, and how all this dovetails with the iPaaS and more.
Implementing zero trust in IBM Cloud Pak for IntegrationKim Clark
Architecting for cloud native requires a completely different perspective on security. The attack surface, and the potential attack vectors have completely changed. Most of the past assumptions around people, processes, infrastructure and more are no longer valid. You have to assume any vulnerability will be exploited, and trust no-one - whether external or internal. You have to look at threat modelling to inform and prioritize the approach, and implement security based on defense in depth. This deck and webinar explore what steps we have taken to implement a "Zero Trust" model when we re-architected the integration portfolio to create what is now Cloud Pak for Integration, and how customers can build upon these in their own integration solutions.
Integration architecture for the hybrid and multi-cloud enterprise
It is a given that most enterprises are now spread between on-premise and cloud resulting in a need to perform integration across this hybrid architecture. Furthermore, most customers are seeing, or at least predicting a multi-cloud architecture. Multiple clouds from multiple vendors, providing a variety of different platforms, which brings a whole new set of integration challenges.
We will look at how integration architecture has evolved from service oriented architecture to take advantage of cloud native technologies and microservices principles. We will also discuss how integration is affected by multi-cloud issues, what the typical resolutions are. Also available as webinar: http://ibm.biz/MultiCloudIntegrationArchitectureWebinar
Placement of BPM runtime components in an SOA environmentKim Clark
The service oriented architecture (SOA) reference architecture is intentionally simplistic at a high level but it holds some surprises when you look closely at how components really interact. This is especially true in relation to the placement of business process management (BPM) componentry. We discuss the most common design questions including: Is BPM a consumer or provider of services? To what extent should a user interface, be decoupled from the BPM runtime? How do we retain agility in BPM while adhering to the architectural separation of SOA? These subtleties are critical when designing solutions to reap benefits of both SOA and BPM simultaneously.
Agile integration concepts help to move integration landscapes towards a more cloud native approach. This brings benefits such as improved productivity, deployment confidence, granular resilience, and more efficient use of human and computer resources.
Those following this path, will recognize it is a journey, not a single step, and we at IBM are moving our focus to one of the most critical parts of that journey – progressively automating your integrations. This refers to automation at multiple levels, from lifecycle automation (CI/CD), to operational automation to enable site reliability engineering practices. It reinforces the essential nature of the operational consistency brought by container platforms, to enable multiple integration capabilities to be administered in increasingly similar ways.
It also becomes increasingly clear that in this more decentralized and distributed world there is an increasing likelihood that multiple integration styles will be used alongside each other and often even in the same solution. This further heightens the importance of automation as there are so many moving parts to be deployed and administered. It is here that we see huge potential gains from the application of machine learning to further improve the level of automation.
As application development becomes more agile, and the ability to rapidly create and iterate new innovations escalates, so too does the need to be able to rapidly scale up the solutions that become successful. Equally it is common to create solutions with relatively short life-cycles and so we need to be able to scale down to recover resources too. On a more fine grained level, to make efficient use of shared platforms such as Kubernetes, we need to be able to dynamically scale applications up and down based on fine grained demand. Inevitably all these challenges are just as important for the integration between applications. This session explores what scalability means for the key areas of integration technology - application integration, API management and messaging.
The role of integration is changing in today's digital landscape from a supporting capablity to a key enabler. Integration platforms are evolving to hybrid platforms, enabling mobile/digital apps, IoT and the API economy.
In this slideshow, we explain the shared LoQutus - IBM vision, referencing the IBM Hybrid Integration reference architecture and provide a stance on some myths.
Don't hesitate to get in touch if you need more info or want to share feedback : https://www.linkedin.com/in/vvstraet/
Interface characteristics - Kim Clark and Brian PetriniKim Clark
Back in 2011, Brian Petrini and I captured the approach we’d matured over the preceding decade designing integration solutions. We were in part driven by the fact that some projects were more successful than others over the long term. It often came down to whether in the early stages you had accurately explored the most important characteristics of the interfaces concerned. We tried to identify a vocabulary for describing interfaces in order to make it the early analysis more deterministic. A domain language for integration perhaps.
We first presented on the approach in 2008 at the IBM Impact conference in the middle of the service oriented architecture (SOA) boom. It was provocatively titled: Exposing services people want to consume, in a nod to the many “challenging” SOA project/programs in progress around that time.
Despite its age, we still regularly find ourselves referring to the concepts within it or getting requests for the content.
Since the papers were taken down from their original location, we’ve decided to re-post them here. Enjoy!
Microservices: Where do they fit within a rapidly evolving integration archit...Kim Clark
Do microservices force us to look differently at the way we lay down and evolve our integration architecture, or are they purely about how we build applications? Are microservices a new concept, or an evolution of the many ideas that came before them? What is the relationship between microservices and other key initiatives such as APIs, SOA, and Agile. In this session, we will unpick what microservices really are, and indeed what they are not. We will consider whether there is something unique about this particular point time in technology that has enables microservice concepts to take hold. Finally, we will look at if, when, where and how an enterprise can take on the benefits of microservices, and what products and technologies are applicable for that journey.
Enterprise Application Integration TechnologiesPeter R. Egli
Overview of Enterprise Application Integration Technologies.
Enterprise Application Integration, or EAI in short, aims at integrating different applications into an IT application landscape. Traditionally, EAI was understood as using the same communication infrastructure by all applications without service-orientation in mind. This meant that the benefits of a shared infrastructure were limited while driving up costs through additional integration platforms.
Service Oriented Architectures (SOA) brought a new paradigm by decomposing applications into reusable and shareable services. Service orientation requires careful design of services. A hierarchic scheme of services may help to define a suitable service decomposition.
While SOA is technically based on big web service technologies, namely SOAP, WSDL and BPEL, WOA or Web Oriented Architecture stands for the lightweight service paradigm. WOA makes use of REST-based technologies like JSON and HTTP.
In many cases, an Enterprise Service Bus (ESB) is used as an infrastructure element to achieve the technical integration of the services. The ESB core functions like message routing, filtering and transformation provide the mediation services required to integrate heterogeneous application landscapes.
3298 microservices and how they relate to esb api and messaging - inter con...Kim Clark
Explores the myths and realities of microservices in relation to integration architecture, and related advances in IBM's integration portfolio.. Microservices are as much a new approach to application architecture as they are a return to well-known good practices of isolation and decoupling. The complexities are all the more apparent when comparisons are drawn with evolved integration architecture concepts. The "ESB" concept is often derided in microservices architecture. Is the pattern completely invalid or does it still have its place? Messaging is the silent but essential partner that is key to decoupling among microservice components. But what type of messaging should you use where? Where do APIs fit into the picture? What different categories of API are present?
Microservice Architecture is not a buzz word anymore but a reality in the realm of startups and large enterprises.
These slides are from Dallas Mule Meetup event where Matt McLarty, who is also one of the authors of Microservice Architecture book, talk about the origins and adoption journey of microservices.
The recording of the meetup can be found at: https://www.youtube.com/watch?v=I-5W8SDFOuQ
https://meetups.mulesoft.com/dallas/
This presentation gives a broad overview of the microservice architectural style. It highlights the difference between microservices and SOA, the challenges and pattern and popular tools to implement an microservice architecture
Azure Functions enable the creation of event-driven, compute-on-demand systems that can be triggered by various external events. In this session, you will learn
1. How to leverage functions to execute server-side logic
2. Build serverless architectures
3. Key-vault integration
4. Leveraging durable features
5. Hosting web sites
6. Applying dependency injections
7. Monitoring functions
8. Script-based deployment
This talk, a case study in application deployment models, was given at IBM InterConnect 2017 in Las Vegas, NV on March 21, 2017 by Lin Sun & Phil Estes of IBM Cloud.
In this talk, Lin & Phil provided a background of IBM Bluemix compute offerings across Cloud Foundry, Containers + Kubernetes, and FaaS/serverless via OpenWhisk and then used a demo application to describe the tradeoffs between using the various deployment models and technology. The application is open source and available at https://github.com/estesp/flightassist
Hybrid integration reference architectureKim Clark
The ownership boundary of the typical enterprise now encompasses a much broader IT landscape. It is common to see that landscape stretch out to cloud native development platforms, software as a service, dependencies on external APIs from business partners, a mobile workforce and an ever growing range of digital channels. The integration surface area is dramatically increased and the integration patterns to support it are evolving just as quickly. These are the challenges we recognise as "hybrid integration". We will explore what a reference architecture for hybrid integration might look like, and how IBM's integration portfolio is growing and changing to meet the needs of digital transformation. This deck comes from the following article http://ibm.biz/HybridIntRefArch and is also described in this video http://ibm.biz/HybridIntRefArchYouTube
MuCon 2015 - Microservices in Integration ArchitectureKim Clark
Discusses the how microservices fit into the ever evolving integration architecture, looking at how these concepts are often seen very differently through the eyes of enterprises with different lanscapes.
The evolving story for Agile Integration Architecture in 2019Kim Clark
Agile integration architecture (AIA) has moved well beyond its roots around decentralization of the ESB into a more containerized and cloud native approach to integration. We're now exploring how integration modernization affects API management, messaging, events, file movement, and how all this dovetails with the iPaaS and more.
Implementing zero trust in IBM Cloud Pak for IntegrationKim Clark
Architecting for cloud native requires a completely different perspective on security. The attack surface, and the potential attack vectors have completely changed. Most of the past assumptions around people, processes, infrastructure and more are no longer valid. You have to assume any vulnerability will be exploited, and trust no-one - whether external or internal. You have to look at threat modelling to inform and prioritize the approach, and implement security based on defense in depth. This deck and webinar explore what steps we have taken to implement a "Zero Trust" model when we re-architected the integration portfolio to create what is now Cloud Pak for Integration, and how customers can build upon these in their own integration solutions.
Integration architecture for the hybrid and multi-cloud enterprise
It is a given that most enterprises are now spread between on-premise and cloud resulting in a need to perform integration across this hybrid architecture. Furthermore, most customers are seeing, or at least predicting a multi-cloud architecture. Multiple clouds from multiple vendors, providing a variety of different platforms, which brings a whole new set of integration challenges.
We will look at how integration architecture has evolved from service oriented architecture to take advantage of cloud native technologies and microservices principles. We will also discuss how integration is affected by multi-cloud issues, what the typical resolutions are. Also available as webinar: http://ibm.biz/MultiCloudIntegrationArchitectureWebinar
Placement of BPM runtime components in an SOA environmentKim Clark
The service oriented architecture (SOA) reference architecture is intentionally simplistic at a high level but it holds some surprises when you look closely at how components really interact. This is especially true in relation to the placement of business process management (BPM) componentry. We discuss the most common design questions including: Is BPM a consumer or provider of services? To what extent should a user interface, be decoupled from the BPM runtime? How do we retain agility in BPM while adhering to the architectural separation of SOA? These subtleties are critical when designing solutions to reap benefits of both SOA and BPM simultaneously.
Agile integration concepts help to move integration landscapes towards a more cloud native approach. This brings benefits such as improved productivity, deployment confidence, granular resilience, and more efficient use of human and computer resources.
Those following this path, will recognize it is a journey, not a single step, and we at IBM are moving our focus to one of the most critical parts of that journey – progressively automating your integrations. This refers to automation at multiple levels, from lifecycle automation (CI/CD), to operational automation to enable site reliability engineering practices. It reinforces the essential nature of the operational consistency brought by container platforms, to enable multiple integration capabilities to be administered in increasingly similar ways.
It also becomes increasingly clear that in this more decentralized and distributed world there is an increasing likelihood that multiple integration styles will be used alongside each other and often even in the same solution. This further heightens the importance of automation as there are so many moving parts to be deployed and administered. It is here that we see huge potential gains from the application of machine learning to further improve the level of automation.
As application development becomes more agile, and the ability to rapidly create and iterate new innovations escalates, so too does the need to be able to rapidly scale up the solutions that become successful. Equally it is common to create solutions with relatively short life-cycles and so we need to be able to scale down to recover resources too. On a more fine grained level, to make efficient use of shared platforms such as Kubernetes, we need to be able to dynamically scale applications up and down based on fine grained demand. Inevitably all these challenges are just as important for the integration between applications. This session explores what scalability means for the key areas of integration technology - application integration, API management and messaging.
The role of integration is changing in today's digital landscape from a supporting capablity to a key enabler. Integration platforms are evolving to hybrid platforms, enabling mobile/digital apps, IoT and the API economy.
In this slideshow, we explain the shared LoQutus - IBM vision, referencing the IBM Hybrid Integration reference architecture and provide a stance on some myths.
Don't hesitate to get in touch if you need more info or want to share feedback : https://www.linkedin.com/in/vvstraet/
Interface characteristics - Kim Clark and Brian PetriniKim Clark
Back in 2011, Brian Petrini and I captured the approach we’d matured over the preceding decade designing integration solutions. We were in part driven by the fact that some projects were more successful than others over the long term. It often came down to whether in the early stages you had accurately explored the most important characteristics of the interfaces concerned. We tried to identify a vocabulary for describing interfaces in order to make it the early analysis more deterministic. A domain language for integration perhaps.
We first presented on the approach in 2008 at the IBM Impact conference in the middle of the service oriented architecture (SOA) boom. It was provocatively titled: Exposing services people want to consume, in a nod to the many “challenging” SOA project/programs in progress around that time.
Despite its age, we still regularly find ourselves referring to the concepts within it or getting requests for the content.
Since the papers were taken down from their original location, we’ve decided to re-post them here. Enjoy!
Microservices: Where do they fit within a rapidly evolving integration archit...Kim Clark
Do microservices force us to look differently at the way we lay down and evolve our integration architecture, or are they purely about how we build applications? Are microservices a new concept, or an evolution of the many ideas that came before them? What is the relationship between microservices and other key initiatives such as APIs, SOA, and Agile. In this session, we will unpick what microservices really are, and indeed what they are not. We will consider whether there is something unique about this particular point time in technology that has enables microservice concepts to take hold. Finally, we will look at if, when, where and how an enterprise can take on the benefits of microservices, and what products and technologies are applicable for that journey.
Enterprise Application Integration TechnologiesPeter R. Egli
Overview of Enterprise Application Integration Technologies.
Enterprise Application Integration, or EAI in short, aims at integrating different applications into an IT application landscape. Traditionally, EAI was understood as using the same communication infrastructure by all applications without service-orientation in mind. This meant that the benefits of a shared infrastructure were limited while driving up costs through additional integration platforms.
Service Oriented Architectures (SOA) brought a new paradigm by decomposing applications into reusable and shareable services. Service orientation requires careful design of services. A hierarchic scheme of services may help to define a suitable service decomposition.
While SOA is technically based on big web service technologies, namely SOAP, WSDL and BPEL, WOA or Web Oriented Architecture stands for the lightweight service paradigm. WOA makes use of REST-based technologies like JSON and HTTP.
In many cases, an Enterprise Service Bus (ESB) is used as an infrastructure element to achieve the technical integration of the services. The ESB core functions like message routing, filtering and transformation provide the mediation services required to integrate heterogeneous application landscapes.
3298 microservices and how they relate to esb api and messaging - inter con...Kim Clark
Explores the myths and realities of microservices in relation to integration architecture, and related advances in IBM's integration portfolio.. Microservices are as much a new approach to application architecture as they are a return to well-known good practices of isolation and decoupling. The complexities are all the more apparent when comparisons are drawn with evolved integration architecture concepts. The "ESB" concept is often derided in microservices architecture. Is the pattern completely invalid or does it still have its place? Messaging is the silent but essential partner that is key to decoupling among microservice components. But what type of messaging should you use where? Where do APIs fit into the picture? What different categories of API are present?
Microservice Architecture is not a buzz word anymore but a reality in the realm of startups and large enterprises.
These slides are from Dallas Mule Meetup event where Matt McLarty, who is also one of the authors of Microservice Architecture book, talk about the origins and adoption journey of microservices.
The recording of the meetup can be found at: https://www.youtube.com/watch?v=I-5W8SDFOuQ
https://meetups.mulesoft.com/dallas/
This presentation gives a broad overview of the microservice architectural style. It highlights the difference between microservices and SOA, the challenges and pattern and popular tools to implement an microservice architecture
Azure Functions enable the creation of event-driven, compute-on-demand systems that can be triggered by various external events. In this session, you will learn
1. How to leverage functions to execute server-side logic
2. Build serverless architectures
3. Key-vault integration
4. Leveraging durable features
5. Hosting web sites
6. Applying dependency injections
7. Monitoring functions
8. Script-based deployment
This talk, a case study in application deployment models, was given at IBM InterConnect 2017 in Las Vegas, NV on March 21, 2017 by Lin Sun & Phil Estes of IBM Cloud.
In this talk, Lin & Phil provided a background of IBM Bluemix compute offerings across Cloud Foundry, Containers + Kubernetes, and FaaS/serverless via OpenWhisk and then used a demo application to describe the tradeoffs between using the various deployment models and technology. The application is open source and available at https://github.com/estesp/flightassist
Accelerating Innovation with Hybrid CloudJeff Jakubiak
Cloud can be an efficient and cost effective tool in delivering innovation to the marketplace; however, a hybrid approach to cloud adoption is a necessity for the enterprise.
Function-as-a-service (FaaS) and serverless platforms increase productivity, enabling you to focus on application code, with the platform taking care of how to deploy, configure, run, and scale the code. They do, however, require you to adopt a new programming model, creating handlers or actions instead of using expressive APIs such as JAX-RS that you have become familiar with. In this session, you’ll learn how it’s now possible to create FaaS- and serverless-based applications with the same APIs you use today and you’ll see a live demo of an application being built and deployed as a cloud native application on Kubernetes.
Presented at Oracle Code One, Sept 16th 2019
Cloud Native Patterns with Bluemix Developer ConsoleMatthew Perrins
This presentation talks about Cloud Native Application patterns Mobile, Web, BFF (Backend for Frontend) and Microservices. It will walk through the patterns and show how they can be used to deliver public cloud solutions with IBM Cloud, using Bluemix Developer Console
Is a Monolith Standing in the Way of Your Digital Transformation? Refactor fo...DevOps.com
Monolithic applications are defined as single-tiered software in which the user interface and data access code is combined into a single application for a single platform. Monoliths can impact your ability to create APIs, deliver capability quickly, and even perform routine application maintenance. Refactoring is the antidote to monolithic software. It can result in improved team agility and autonomy, plus it paves the way for API creation. Learn how DevOps for the Enterprise software can help you refactor- from discovery of your z/OS assets and impact analysis, to the modularization task itself, including editing, compiling, testing, and debugging.
Is a Monolith Standing in the Way of Your Digital Transformation? Refactor fo...Deborah Schalm
Monolithic applications are defined as single-tiered software in which the user interface and data access code is combined into a single application for a single platform. Monoliths can impact your ability to create APIs, deliver capability quickly, and even perform routine application maintenance. Refactoring is the antidote to monolithic software. It can result in improved team agility and autonomy, plus it paves the way for API creation. Learn how DevOps for the Enterprise software can help you refactor- from discovery of your z/OS assets and impact analysis, to the modularization task itself, including editing, compiling, testing, and debugging.
A developer can now build out Cloud Native applications using our patterns-first approach. You simply select the type of building block you’d like to create followed by which services you’d like to incorporate into your application (i.e., Cloudant database, WatsonConversation, Push Notifications).
Aw (3) webinar serverless-fisher-rymerVMware Tanzu
Developers are excited about serverless computing, and rightfully so. With serverless, developers can spend more time writing code and less time worrying about, you guessed it, servers! But is serverless the right abstraction for every workload? How does serverless differ from an application platform? And despite the name, there need to be servers somewhere … Who’s managing them?
Join us for a look at serverless computing and what it means for both developers and operations teams in the enterprise. In this webinar, Guest Speaker Forrester VP and Principal Analyst John Rymer and Pivotal’s Mark Fisher will cover:
- What serverless is (and what it isn’t)
- The current serverless open source and market landscapes
- How serverless fits into modern application infrastructure
- What workloads are best suited to serverless (and which aren’t)
- Advice to developers (and operations teams) for getting started with serverless
Presenters : Mark Fisher, Pivotal and John Rymer, Forrester
GraphRAG is All You need? LLM & Knowledge GraphGuy Korland
Guy Korland, CEO and Co-founder of FalkorDB, will review two articles on the integration of language models with knowledge graphs.
1. Unifying Large Language Models and Knowledge Graphs: A Roadmap.
https://arxiv.org/abs/2306.08302
2. Microsoft Research's GraphRAG paper and a review paper on various uses of knowledge graphs:
https://www.microsoft.com/en-us/research/blog/graphrag-unlocking-llm-discovery-on-narrative-private-data/
The Art of the Pitch: WordPress Relationships and SalesLaura Byrne
Clients don’t know what they don’t know. What web solutions are right for them? How does WordPress come into the picture? How do you make sure you understand scope and timeline? What do you do if sometime changes?
All these questions and more will be explored as we talk about matching clients’ needs with what your agency offers without pulling teeth or pulling your hair out. Practical tips, and strategies for successful relationship building that leads to closing the deal.
Generative AI Deep Dive: Advancing from Proof of Concept to ProductionAggregage
Join Maher Hanafi, VP of Engineering at Betterworks, in this new session where he'll share a practical framework to transform Gen AI prototypes into impactful products! He'll delve into the complexities of data collection and management, model selection and optimization, and ensuring security, scalability, and responsible use.
Maruthi Prithivirajan, Head of ASEAN & IN Solution Architecture, Neo4j
Get an inside look at the latest Neo4j innovations that enable relationship-driven intelligence at scale. Learn more about the newest cloud integrations and product enhancements that make Neo4j an essential choice for developers building apps with interconnected data and generative AI.
UiPath Test Automation using UiPath Test Suite series, part 6DianaGray10
Welcome to UiPath Test Automation using UiPath Test Suite series part 6. In this session, we will cover Test Automation with generative AI and Open AI.
UiPath Test Automation with generative AI and Open AI webinar offers an in-depth exploration of leveraging cutting-edge technologies for test automation within the UiPath platform. Attendees will delve into the integration of generative AI, a test automation solution, with Open AI advanced natural language processing capabilities.
Throughout the session, participants will discover how this synergy empowers testers to automate repetitive tasks, enhance testing accuracy, and expedite the software testing life cycle. Topics covered include the seamless integration process, practical use cases, and the benefits of harnessing AI-driven automation for UiPath testing initiatives. By attending this webinar, testers, and automation professionals can gain valuable insights into harnessing the power of AI to optimize their test automation workflows within the UiPath ecosystem, ultimately driving efficiency and quality in software development processes.
What will you get from this session?
1. Insights into integrating generative AI.
2. Understanding how this integration enhances test automation within the UiPath platform
3. Practical demonstrations
4. Exploration of real-world use cases illustrating the benefits of AI-driven test automation for UiPath
Topics covered:
What is generative AI
Test Automation with generative AI and Open AI.
UiPath integration with generative AI
Speaker:
Deepak Rai, Automation Practice Lead, Boundaryless Group and UiPath MVP
zkStudyClub - Reef: Fast Succinct Non-Interactive Zero-Knowledge Regex ProofsAlex Pruden
This paper presents Reef, a system for generating publicly verifiable succinct non-interactive zero-knowledge proofs that a committed document matches or does not match a regular expression. We describe applications such as proving the strength of passwords, the provenance of email despite redactions, the validity of oblivious DNS queries, and the existence of mutations in DNA. Reef supports the Perl Compatible Regular Expression syntax, including wildcards, alternation, ranges, capture groups, Kleene star, negations, and lookarounds. Reef introduces a new type of automata, Skipping Alternating Finite Automata (SAFA), that skips irrelevant parts of a document when producing proofs without undermining soundness, and instantiates SAFA with a lookup argument. Our experimental evaluation confirms that Reef can generate proofs for documents with 32M characters; the proofs are small and cheap to verify (under a second).
Paper: https://eprint.iacr.org/2023/1886
GraphSummit Singapore | The Future of Agility: Supercharging Digital Transfor...Neo4j
Leonard Jayamohan, Partner & Generative AI Lead, Deloitte
This keynote will reveal how Deloitte leverages Neo4j’s graph power for groundbreaking digital twin solutions, achieving a staggering 100x performance boost. Discover the essential role knowledge graphs play in successful generative AI implementations. Plus, get an exclusive look at an innovative Neo4j + Generative AI solution Deloitte is developing in-house.
GraphSummit Singapore | The Art of the Possible with Graph - Q2 2024Neo4j
Neha Bajwa, Vice President of Product Marketing, Neo4j
Join us as we explore breakthrough innovations enabled by interconnected data and AI. Discover firsthand how organizations use relationships in data to uncover contextual insights and solve our most pressing challenges – from optimizing supply chains, detecting fraud, and improving customer experiences to accelerating drug discoveries.
UiPath Test Automation using UiPath Test Suite series, part 5DianaGray10
Welcome to UiPath Test Automation using UiPath Test Suite series part 5. In this session, we will cover CI/CD with devops.
Topics covered:
CI/CD with in UiPath
End-to-end overview of CI/CD pipeline with Azure devops
Speaker:
Lyndsey Byblow, Test Suite Sales Engineer @ UiPath, Inc.
Goodbye Windows 11: Make Way for Nitrux Linux 3.5.0!SOFTTECHHUB
As the digital landscape continually evolves, operating systems play a critical role in shaping user experiences and productivity. The launch of Nitrux Linux 3.5.0 marks a significant milestone, offering a robust alternative to traditional systems such as Windows 11. This article delves into the essence of Nitrux Linux 3.5.0, exploring its unique features, advantages, and how it stands as a compelling choice for both casual users and tech enthusiasts.
Climate Impact of Software Testing at Nordic Testing DaysKari Kakkonen
My slides at Nordic Testing Days 6.6.2024
Climate impact / sustainability of software testing discussed on the talk. ICT and testing must carry their part of global responsibility to help with the climat warming. We can minimize the carbon footprint but we can also have a carbon handprint, a positive impact on the climate. Quality characteristics can be added with sustainability, and then measured continuously. Test environments can be used less, and in smaller scale and on demand. Test techniques can be used in optimizing or minimizing number of tests. Test automation can be used to speed up testing.
Essentials of Automations: The Art of Triggers and Actions in FMESafe Software
In this second installment of our Essentials of Automations webinar series, we’ll explore the landscape of triggers and actions, guiding you through the nuances of authoring and adapting workspaces for seamless automations. Gain an understanding of the full spectrum of triggers and actions available in FME, empowering you to enhance your workspaces for efficient automation.
We’ll kick things off by showcasing the most commonly used event-based triggers, introducing you to various automation workflows like manual triggers, schedules, directory watchers, and more. Plus, see how these elements play out in real scenarios.
Whether you’re tweaking your current setup or building from the ground up, this session will arm you with the tools and insights needed to transform your FME usage into a powerhouse of productivity. Join us to discover effective strategies that simplify complex processes, enhancing your productivity and transforming your data management practices with FME. Let’s turn complexity into clarity and make your workspaces work wonders!
Removing Uninteresting Bytes in Software FuzzingAftab Hussain
Imagine a world where software fuzzing, the process of mutating bytes in test seeds to uncover hidden and erroneous program behaviors, becomes faster and more effective. A lot depends on the initial seeds, which can significantly dictate the trajectory of a fuzzing campaign, particularly in terms of how long it takes to uncover interesting behaviour in your code. We introduce DIAR, a technique designed to speedup fuzzing campaigns by pinpointing and eliminating those uninteresting bytes in the seeds. Picture this: instead of wasting valuable resources on meaningless mutations in large, bloated seeds, DIAR removes the unnecessary bytes, streamlining the entire process.
In this work, we equipped AFL, a popular fuzzer, with DIAR and examined two critical Linux libraries -- Libxml's xmllint, a tool for parsing xml documents, and Binutil's readelf, an essential debugging and security analysis command-line tool used to display detailed information about ELF (Executable and Linkable Format). Our preliminary results show that AFL+DIAR does not only discover new paths more quickly but also achieves higher coverage overall. This work thus showcases how starting with lean and optimized seeds can lead to faster, more comprehensive fuzzing campaigns -- and DIAR helps you find such seeds.
- These are slides of the talk given at IEEE International Conference on Software Testing Verification and Validation Workshop, ICSTW 2022.
Communications Mining Series - Zero to Hero - Session 1DianaGray10
This session provides introduction to UiPath Communication Mining, importance and platform overview. You will acquire a good understand of the phases in Communication Mining as we go over the platform with you. Topics covered:
• Communication Mining Overview
• Why is it important?
• How can it help today’s business and the benefits
• Phases in Communication Mining
• Demo on Platform overview
• Q/A
Communications Mining Series - Zero to Hero - Session 1
Where can you use serverless? How does it relate to APIs, integration and microservices?
1. Session: IDPA018
Where can you use serverless?
How does it relate to APIs,
integration and microservices?
Kim Clark, Integration Architect
Offering Management for Hybrid Integration
Brian M. Petrini, Technical Offering Manager
IBM Business Process Management
2. IBM Cloud University 2017 | October
Please note
IBM’s statements regarding its plans, directions, and intent
are subject to change or withdrawal without notice at IBM’s
sole discretion.
Information regarding potential future products is intended to
outline our general product direction and it should not be
relied on in making a purchasing decision.
The information mentioned regarding potential future products
is not a commitment, promise, or legal obligation to deliver
any material, code or functionality. Information about potential
future products may not be incorporated into any contract.
The development, release, and timing of any future features
or functionality described for our products remains at our sole
discretion.
Performance is based on measurements and projections
using standard IBM benchmarks in a controlled environment.
The actual throughput or performance that any user will
experience will vary depending upon many factors, including
considerations such as the amount of multiprogramming in
the user’s job stream, the I/O configuration, the storage
configuration, and the workload processed. Therefore, no
assurance can be given that an individual user will achieve
results similar to those stated here.
3. Defining “serverless” architecture and FaaS
Comparison with microservices
How will FaaS be used?
“No function is an island”
Summary of design considerations
2
Agenda
4. So is serverless really new? Couldn’t all apps be described as serverless?
Cloud-based Software as a Service
(SaaS) applications completely
abstract users from the fact that there
are ”servers” beneath them, but that
doesn’t necessarily mean they are
build on a ”serverless architecture”
from a developer point of view.
5. “serverless” generally refers to Function as a Service (FaaS)
4
Functions
(FaaS)
Messaging
API Mmgt.Integration
Datastores
Composition
Security
Cognitive
IoT
When a developer is creating a complete solution, there are many other
capabilities required that could also be described as being “serverless”.
From here on we will primarily be talking about FaaS
7. FaaS benefits
• Cost reduction
– Near-instant provisioning, near zero initial costs, dynamically usage pricing
– Startup and running cost can be directly related to the business value of the function.
• Reduction and elimination of infrastructure concerns
– elastic scalability, cross function independence, hosted and managed environment, high
availability, disaster recovery, infrastructure orchestration, container packaging, infrastructure
operations
• Accelerating time to market
– Increased agility, shortened build/deploy pipeline, minimal framework code,
Still need to worry about: code quality, code versioning, multiple environments, testing,
application monitoring…
6
8. The following are common for FaaS
but are not defining characteristics
• Cloud hosted and managed. Today, most people first encounter FaaS
via cloud based provider, but there is no reason why a FaaS capability
such as Apache OpenWhisk couldn’t be stood up on your own
infrastructure. However, that would typically mean it would have to be
in-house managed.
• Multi-tennant. Large implementations of FaaS make use of the
economies of scales provided by multi-tenancy. However, private or
dedicated FaaS platform installations could provide many of the same
benefits, so long as you have the volumes of work to make the
overhead of the platform balance out. Question as to who’s running the
infrastructure.
7
9. Defining “serverless” architecture and FaaS
Comparison with microservices
How will FaaS be used?
“No function is an island”
Summary of design considerations
8
Agenda
10. Monolithic vs microservice architecture vs function as a service
Siloed application
Presentation
Logic
Microservice
application
µService
µServiceµService
µService
µService
µService
µService
FaaS application
f() f() f()
f() f() f()
f() f() f()
f() f() f()
f() f() f() f() f() f()
f() f() f() f() f() f()
Data
This is an over-simplified comparison
11. The same benefits that make microservices
architecture attractive also apply to FaaS
Small scoped, independent, scalable components
Agility
Faster iteration cycles
Bounded context (code and data)
Scalability
Elastic scalability
Workload orchestration
Resilience
Reduced dependencies
Fail fast
10
12. How is microservices architecture different from FaaS?
Is FaaS an instantiation of microservice architecture?
• Microservices is conceptual architecture. A set of guiding principles,
encouraging an deeply componentised application architecture. There are no
“microservice platforms” as such although there are certainly platforms and
frameworks you can use to implement a microservices but generally.
• FaaS is a concrete platform capability. There are many publically available
platforms specifically providing “function as a service” capabilities such as IBM
Cloud Functions (based on OpenWhisk). They are the embodiment of an
opinionated microservice style platforms with a focus on complete abstraction
from infrastructure implementation.
11
FaaS is an embodiment of microservice principles in an opinionated and fully managed platform
FaaS is “microservice architecture as a service” but for a specific flavor of microservice
13. What decisions does FaaS make on your behalf
FaaS makes choices on the following, then hides them from you:
– Container orchestration
– Service discovery
– Aggregated logging and monitoring
– High availability
– Auto-scaling
– Anything running on FaaS complies implicitly to most cloud-native principles
(e.g. 12factor.net)
– …more
12
14. You need to know a lot to implement microservices well.
How much do you need to know to implement FaaS well?
Microservices by Martin Fowler/James Lewis
1. Componentization
2. Organized around Business Capabilities
3. Products not Projects
4. Smart endpoints and dumb pipes
5. Decentralized Governance
6. Decentralized Data Management
7. Infrastructure Automation
8. Design for failure
9. Evolutionary Design
http://martinfowler.com/articles/microservices.html
13
12 factor apps (for cloud-native)
I. Codebase
II. Dependencies
III. Config
IV. Backing Services
V. Build, release, run
VI. Processes
VII. Port binding
VIII. Concurrency
IX. Disposability
X. Dev/prod parity
XI. Logs
XII. Admin processes
http://12factor.net
Containers, orchestration frameworks, event sourced applications, eventual
consistency, CQRS, circuit breaker, bulkhead, service discovery, sidecars, routing
fabrics, continuous delivery, agile programming, test driven development, contract
driven development, domain driven design, centralised logging, polygot runtimes…
Everything in bold or outlined with is significantly simplified by FaaS. Everything else, is still up to you!
However, getting started is much more straightforward as the platforms already exist.
15. Agenda
Defining “serverless” architecture and FaaS
Comparison with microservices
How will FaaS be used?
“No function is an island”
Summary of design considerations
14
16. Ideal load characteristics for FaaS
• Volatile/sporadic loads
– Volatile/sporadic load: The combination of auto-
scaling and a associated granular elastic cost
model means that it is best suited for
volatile/sporadic workload.
– CPU focused volatile/sporadic load. Particularly
well suited to CPU centric work due to the cost
model, so long as the workload is volatile/sporadic.
– Elastic parallelization of batch ( which are by nature
volatile/sporadic)
• Prototyping:
– Since there is no stand-up time and minimal cost
for new environments, it is well suited to fast
prototyping.
– In a sense prototyping is sporadic usage in itself.
15
The greater the variation the better. i.e. high standard deviation
time
work
time
work
time
work
sporadic
load
volatile
load
constant
load
17. Common examples of FaaS implementations
• Event/stream processing
• API implementation
• Mobile backend
• Image processing
• Batch Processing
• Cognitive enrichment
• Scheduled task automation
• IoT
• Chatbots
• …
16
See use case presentation from
Frederick on Thursday
18. How will IBM leverage FaaS in our products?
• Use products to provide triggers and targets for FaaS
• Introduce products as runtimes containers in FaaS
• Build products components using FaaS
• …
17
19. Defining “serverless” architecture and FaaS
Comparison with microservices
How will FaaS be used?
“No function is an island”
Summary of design considerations
18
Agenda
20. Functions must receive their data from somewhere
and deliver there result to something
19
function()source target
source
source target
target
21. Primary invocation patterns for FaaS
(how are you going to feed your functions!)
Asynchronous events
(non-blocking)
Receives events
Source delivers an event and
receives and acknowledgement,
but does not wait for it to be
processed by the function itself.
Synchronous API
(blocking)
Exposed as an API
Caller waits for the processing of
the request to complete and then
receives the result of the function
20
source
function()
eventsfunction()
API
22. API Management
21
function()
API
API consumer
API consumer
API consumer
APIGateway
Developer
Portal
API
Manager
API Gateway:
• Decoupling/routing
• Traffic management
• Security
• Translation
Developer portal:
• API discovery
• Self subscription/administration
• Account usage analytics
API Manager:
• Plan/product design
• Access management
• Policy administration
• API plan usage analytics
24. Downstream interaction patterns - Blocking
function()
API
Blocking request/response with sync transport
• Simplest to implement, just call an API.
• Provides request/response pattern
• Poor use use of FaaS compute, as we pay for
function() to wait whilst target processes it.
Target
System
Slow downstream systems could result in significant escalations in cost. Where
downstream blocking requests (e.g. HTTP calls to APIs) are slow to respond,
remember you are paying whilst waiting.
• Ideally convert to a fire/forget, but in many cases you do need the response
• Circuit breaker pattern would significantly reduce how often you pay for waits
Note: Wasted memory/threads have always been an issue but in the past the concern was using up
resources on a server you have already paid for. Now it’s a 1:1 cost problem.
25. Anti-pattern: Functions calling functions
Blocking request/response chain using sync transport (e.g. HTTP based APIs)
f1() f2()
API
Poor use use of FaaS compute: the calling functions (f1, f2, f3) are mostly just waiting, whilst the work
is done by the target system, but you’re still paying for all of them. So in this case, you’d be paying 3x
more than if the logic had been within the same function.
You are also incurring the additional latency and compute of network hops and serialisation/parsing.
Usually results from
• Over-decomposition into overly fine-grained functions. Just because we can break the solution
into individual functions, doesn’t mean we have to pick the smallest possible granularity. Small
functions should be sub-functions within a single higher level function.
• Too much emphasis on runtime re-use of functions. Functions are broken out in order to make
them re-usable). In FaaS, just as in microservice architecture, it is often better to re-use by copy
at development time, rather than by reference at runtime.
As a rule, reduce/avoid the need for synchronous inter-function communication
f3()
API API
Target
System
26. Downstream interaction patterns - Asynchronous
function()
Target
System
event stream
function1()
Non-blocking fire/forget chain with async transport
• Relatively simple to implement, but requires configuration
of event stream
• Fire-forget pattern, so no “reply” from target system
• Efficient use of FaaS compute as functions perform
continuous compute, and only when events are present.
Non-blocking request/response using async transport
• Hardest to implement, requiring multiple additional
patterns
• Provides request/response pattern
• Efficient use use of FaaS compute
Target
System
function2()
• This is a classic correlation proglem. How does function2() get context of the request in order to process the response? a)
persistent storage – slower, may not scale b) contained in response message – increases payload and related parsing.
• If function1() exposed as API it will not be able to respond with the result, only an acknowledgement. How do we get the
response to the caller? Callback url? Would have to be contained in the request, passed through the target system intact.
Caller would have to host the callback url and correlate the responses.
27. Orchestrating sequential invocations
Synchronous “orchestration”
• Easy to implement. Simple sequential logic.
• FaaS compute used inefficiently as f1() is mostly
waiting on target systems rather than working.
• Target systems need only provide an API.
• Simple to monitor whether function has
succeeded or not.
• Retries require idempotent targets.
Asynchronous “choreography”
• Hard to implement. Logic distributed across
multiple functions. (though note that OpenWhisk
has a first class notion of chains/sequencing)
• FaaS compute used efficiently as functions do not
wait for responses.
• Target systems must provide a messaging based
interface.
• Hard to monitor where a given sequence has
reached
• Non idempotent targets can be accommodated.
26
f1()
API API API
f1a() f1b() f1c()
Target
System
Target
System
Target
System
Target
System
Target
System
f1d()
Target
System
Consider using a separate orchestrator such as
the new “compose” capability https://ibm.biz/serverless-composition
28. Planning your event content
27
function()source
What’s inside a trigger event?
Meta-data
Data for manipulation
Unchanging data
29. Considerations around data shared across functions
• Shared entities
– Need patterns to handle concurrent access. Optimistic locking or eventual consistency patterns required. (see
separate slide)
• Request context for asynchronous response processing
– If implementing a truly asynchronous request/response, the response would come back to a separate function with
none of the data from the request being available. This can be handled using an external storage of the request
data under a correlating key. However, it inevitably introduces latency into the request and response handling.
• Reference data for rapid access
– In order to reduce data look up times, reference data could be loaded on container warm up and held in memory.
However, if the data volume is high, this increases startup time of the container, slowing down the platform’s ability
to react to changes in load. It also increases memory usage. Significantly more complex problems arise if the
reference data is volatile.
• Session state
– The function cannot hold “session” data relating to a current user, or other consumer of the function, or downstream
connections. Function code must be completely stateless, since subsequent requests cannot be expected to come
back to the same server.
– Any attempt to make sessions “sticky” to a particular instance of the function would be unsupported by a FaaS
platform as it would break the elastic scalability
– Use of remote persistence for session data increases latency and potentially reduces scalability
28Ideally the function should be initiated with all required data
30. What might a complete solution incorporating FaaS look like?
29
function()
polling
System of
Record
System of
Record
Integration
event
stream
function()
Local
storage
function()
Integration
API gateway
function()
API gateway
event
stream
API gateway
function()
event
stream
System of
Record
31. µService
µService
µService
µService
µService
µService
f()
f()
f()
f() f()
f()
f() f()
f()
f()
f()
f()
f()
f()
f()
f() f()
f()
f() f()
f()
f()
f()
API gateway
µService
µService
µService
API gateway
API gateway
Generally
available API
Local API
Application
boundary
f()
f()
f()
f()
API gateway
f()
f()
f()
f()
f()
f()
f()
API gateway
f()
f()
f()
f()
f()
API gateway
f()
f()
f()
f() f()
f()
f() f()
f()
f()
f()
f() f() f() f()
f()
f() f()
f()
f()
API gateway
µService
Microservice
component
f()
Serverless
function
µService
µService
µService
API gateway
API gateway
µServiceAPI gateway
Silo
application
Silo
application
API gateway
Silo
application
API gateway
Silo
application
µService
µService
µService
API gateway
µService
f()
f()
The gateways are the way the boundaries are defined and enforced.
Boundaries make complex environments manageable
API gateway
This diagram focuses on APIs, but the same applies to messaging based interfaces.
32. Defining “serverless” architecture and FaaS
Comparison with microservices
How will FaaS be used?
“No function is an island”
Summary of design considerations
31
Agenda
33. Summary of key FaaS design considerations
• Use of the FaaS cost model
– Constant workload. If you have constant workload FaaS may not be the most economical infrastructure model in the long
term. (see separate slide).
– Functions making blocking calls to other functions. Blocking crosstalk/inter-communication between functions should
generally be avoided as they introduce latency, and result in inefficient use of the cost model, and reduce scalability. (see
separate slide)
– Slow synchronous downstream requests. Slow downstream systems could result in significant escalations in cost. Where
downstream blocking requests (e.g. HTTP calls to APIs) are slow to respond, remember you are paying whilst waiting.
– Over zealous polling: Using a timer input to periodic polling could result in many empty poll results. You might end up paying
more for empty polls than you are for processing the occasional events. Solutions: a) Call back pattern e.g. webhooks but
requires that the endpoint supports it b) Event connectors (“Open event emitter” framework) – e.g. let App Connect do the
event discovery.
– Composition/Aggregation: Downstream calls to do aggregations/compositions would result in long calls from the consumer
side. Consider pushing these out to integration (e.g. App Connect) (see separate slide)
• Shared data. FaaS functions do not retain state. State must be stored externally. (see separate slide)
• Ownership boundaries. As functions proliferate, how to you retain manageability both in terms of
monitoring, ownership, etc. (see separate slide)
• Event content. Need to analyse the makeup of the function input and break out what is key metadata (event
information, state), data for processing, and data that is not processed. Consider claim-check patterns etc.
Seek well suited use cases, and design with FaaS considerations in mind
32
34. Looking for
more
information?
Commercial offering home:
http://ibm.biz/functions
Open-source offering home:
http://openwhisk.org
This and other Kim & Brian presentations
https://www.slideshare.net/kimjclark
https://www.slideshare.net/brianmpetrini
35. Countless capabilities
HYBRID CLOUD
IMPLEMENTATION
CLOUD & DATA
DESIGN
IDENTIFY
OPPORTUNITIES
DIRECTION &
SCOPE
BUSINESS
CASE
OPERATIONAL
MANAGEMENT
FRAMEWORK
GOVERNANCE &
ORGANZATION MODEL
CLOUD
TECHNICAL
SUPPORT
CLOUD NATIVE
SOLUTION
TRANSITION
WORKLOADS
UNLOCK DATAMANAGED
APPS
IBM Cloud
Professional
Services
IBM
Bluemix
Garage
IBM
Analytics
Services
3 practices
Services
immersed in
startup DNA
and the newest
technologies
Cloud Advisory
Services and
integrated
solutions for
hybrid cloud
Analytics-
based solutions
that empower
your data
5 principles
1. METHODOLOGY & ASSETS
We provide the most potent hybrid cloud
methodology and assets available.
2. DEEP SKILLS
We curate the most agile, deeply-skilled
expert teams in the industry.
3. FAST SUCCESS
We champion prescriptive, guided cloud
adoption journeys with adaptable
blueprints.
4. CONFIDENCE
We enable transformations by empowering
our clients.
5. WORLD-CLASS SUPPORT
We deliver world-class support to make
sure you succeed.
It’s not just about building a cloud infrastructure –
it’s about strategically adopting cloud to realize its benefits
Stop by the Services Booth in the expo
to talk about how we can help
37. IBM Cloud University 2017 | October
Notices and disclaimers
continued
Information concerning non-IBM products was obtained from the
suppliers of those products, their published announcements or other
publicly available sources. IBM has not tested those products in
connection with this publication and cannot confirm the accuracy of
performance, compatibility or any other claims related to non-IBM
products. Questions on the capabilities of non-IBM products should be
addressed to the suppliers of those products. IBM does not warrant the
quality of any third-party products, or the ability of any such third-party
products to interoperate with IBM’s products. IBM expressly
disclaims all warranties, expressed or implied, including but not
limited to, the implied warranties of merchantability and fitness
for a particular, purpose.
The provision of the information contained herein is not intended to,
and does not, grant any right or license under any IBM patents,
copyrights, trademarks or other intellectual property right.
IBM, the IBM logo, ibm.com, Aspera®, Bluemix, Blueworks Live, CICS,
Clearcase, Cognos®, DOORS®, Emptoris®, Enterprise Document
Management System™, FASP®, FileNet®, Global Business Services®,
Global Technology Services®, IBM ExperienceOne™, IBM
SmartCloud®, IBM Social Business®, Information on Demand, ILOG,
Maximo®, MQIntegrator®, MQSeries®, Netcool®, OMEGAMON,
OpenPower, PureAnalytics™, PureApplication®, pureCluster™,
PureCoverage®, PureData®, PureExperience®, PureFlex®,
pureQuery®, pureScale®, PureSystems®, QRadar®, Rational®,
Rhapsody®, Smarter Commerce®, SoDA, SPSS, Sterling Commerce®,
StoredIQ, Tealeaf®, Tivoli® Trusteer®, Unica®, urban{code}®, Watson,
WebSphere®, Worklight®, X-Force® and System z® Z/OS, are
trademarks of International Business Machines Corporation, registered
in many jurisdictions worldwide. Other product and service names
might be trademarks of IBM or other companies. A current list of IBM
trademarks is available on the Web at "Copyright and trademark
information" at: www.ibm.com/legal/copytrade.shtml.