SlideShare a Scribd company logo
Migrate to the Latest WSO2 Micro
Integrator to Unlock All-new Features
January 21, 2021
Hello!
Srivathsan Shanmuganathan
Hasitha Hiranya
hasithah@wso2.com
srivathsan@wso2.com
● About WSO2 Micro Integrator
● Runtime Improvements
● Enhanced Artifact Development Tools
● Deployment
● Server Management
● Cloud-native Observability
● Improved Connector Experience
Agenda
3
WSO2 Micro Integrator 1.2.0
4
Integration Studio
Enterprise Integrator
Streaming Integrator
Micro Integrator
Streaming Integrator Tooling
Microservices
Data Integration
SaaS Integration
SOA
File Integration
Streaming ETL
Event Stream Integration
Runtime Improvements
● RDBMS-based coordination among nodes
Clustering and Coordination
6
Support for Hot Deployment
● Intended for development
● Enabled by default
● Disabled in the Docker image to support immutability
7
[server]
hot_deployment = true
● Introduction of readiness probe
๏ Indicates that the server has started and the CApps are deployed successfully
๏ Sample response
8
Optimizations for Container Deployment
http://localhost:9201/healthz
{
“version”: “1.2.0”,
“Status”: “ready”
}
Injecting Parameters
● Inject parameters using system variables, environment variables or from a file
● Ability to manage server and synapse configurations dynamically
● Maintain a single artifact/Docker image across different environments
9
<endpoint name="StockQuoteEndPoint">
<address uri="$SYSTEM:stockQuoteEP"/>
</endpoint>
[server]
hostname = “localhost”
offset = “$sys{offset}”
Static Secrets
Sensitive data that are specified directly in
configurations
Dynamic Secrets
Sensitive data specified in configurations as
environment variables, system properties,
Docker secrets, or Kubernetes secrets
10
Managing Secrets
[secrets]
server_secret = "[secret_1]"
synapse_secret = "[secret_2]"
[secrets]
server_secret = "$env{dynamic_secret}
Managing Secrets
● Support for Docker/Kubernetes secrets
● Revamped secure vault experience
⦿ wso2:vault-lookup('docker-secret', ‘DOCKER', false')
● Support for HashiCorp secrets (WUM update)
⦿ hashicorp:vault-lookup('path-name', 'field-name')
11
User Management
● Read/write support for following external user stores:
⦿ LDAP
⦿ RDBMS
● Can view, add, and delete users
● Can manage from CLI tool or Integrator Dashboard
12
JSON Transform Mediator
● Apply XML to JSON transformation properties to individual mediation flow
⦿ They can be applied globally using synapse.properties file
● When transforming messages to JSON, manipulate message with a JSON
schema
13
<jsontransform [schema="string"]>
<property name="string" value="string"/>
</jsontransform>
Transaction Counter for Services
● All inbound requests
● Tracks the number of transactions
● Persists summary in a database
● Can be retrieved via the MI CLI
14
[transaction_counter]
enable = true
data_source = "WSO2_TRANSACTION_DB"
update_interval = 2
Other Improvements
● Revamped RabbitMQ transport for smoother and stabilized interaction
● Dynamic log4j configuration
● Support for SMB 3.0 (for file sharing)
● Swagger definition generation for data services
● Many more … https://github.com/wso2/micro-integrator/releases/tag/v1.2.0
15
Enhanced Artifact Development Tools
17
Faster and lightweight
New Studio version (7.2.0) is built on top
of Eclipse 2020-06 platform.
Battle tested in all latest OS platforms
(e.g., macOS BigSur, Ubuntu 20, Windows
10)
18
Easily try out samples
New Studio version (7.2.0) has a set of
popular integration scenarios supported
by WSO2 Micro Integrator. You can
choose one and edit to match with your
scenario.
19
Modified canvas settings
● Mediation palette brought to left
for easy navigation
● Modified mediator icons to easily
identify mediators
● Add descriptions to mediators in
design view itself
● API design view is revamped to be
more self understandable
● Redesigned property panel:
○ Grouped inputs
○ Organized view
20
Integrated testing
● Ability to test APIs, proxy services
and sequences
● Design mock endpoints for any
type of endpoints
● Unit test parts of the complex
integration
● Documentation:
https://ei.docs.wso2.com/en/lates
t/micro-integrator/develop/creatin
g-unit-test-suite/
21
Export Docker images
● Create your own solutions using private
or public WSO2 MI based Docker images
● Pick and include multiple CApps of your
choice into the Docker image
● Easy to enable WSO2 Cipher Tool (secure
your configurations/passwords)
● Push images to public/private Docker
registries
22
Directly deploy on K8s
● Docker build and push capabilities
as in Docker export module
● Generates K8s deployment
artifacts for WSO2 K8s EI Operator
23
More integrated than before
● Connect to connector store within
studio to download and use
extensions straight away
● Get studio updates easier and
faster
● Help tips within mediators and
input fields
● WSO2 Micro Integrator 1.2.0
runtime embedded -
configurations are modifiable
● More in near future!
Deployment
Supported Deployment Types
● WSO2 Micro Integrator can be deployed
○ On VMs
○ As Docker containers
■ Usually chosen as pod containers in Kubernetes
■ Shipped with tools for easy deployment on top of Kubernetes
25
Development Lifecycle
Develop
Test Debug
Deploy
Design
Design
Deploy
Develop
Debug
Test
26
Connected Developer Experience
27
Develop
- ESB config project for
developing your integration logic
- Export the integration logic as
composite application project
Test
- Unit testing framework for
writing tests
- Ability to mock services
Deploy
- Integration studio has inbuilt
mechanisms for deployment
- CApp deploy plugin
- Generate a Docker image and
deploy
- Generate K8s artifacts for
WSO2 Enterprise Integrator K8s
operator
- Deploy to integration cloud
CICD Pipeline
Integration Studio
Implement mediation
artifacts and commit
changes to the source
repository (maven multi
module project).
Source Repository
Maintain artifacts
developed by team
members.
Continuous
Integration Tool
Retrieve artifacts from
the source repository,and
build against the test
suite.
After verifying the
functionality, artifacts are
committed to the
production environment.
Production
Environment
Provide services with the
newest artifact changes.
28
Automating Development and Deployment
29
Jenkins Pipeline for VM Deployment
30
Build
(build integration project)
Test
(test integration project
using unit test framework)
Deploy
(copy CApp to deployment
directory of server runtime
using shell command)
WSO2 MI
Git
push
Git
hook
Jenkins build pipeline
Integration
project
Documentation:
https://ei.docs.wso2.com/en/latest/micro-integrator/setup/deployment/deploying_wso2_ei/
Jenkins Pipeline for K8s Deployment
31
Build
(build integration
project)
Test
(test integration
project using unit
test framework)
K8s cluster
(WSO2 EI K8s
operator
installed)
Git
push
Git
hook
Jenkins build pipeline
Integration
project
K8s exporter
project
K8s Deploy
(using Jenkins K8s
deploy plugin deploy
integration.cr file)
Docker Build
(build Docker
image and push)
Git
push
Documentation:
https://ei.docs.wso2.com/en/latest/micro-integrator/setup/deployment/kubernetes_deployment_patterns/
Server Management
33
Download Log Files
34
Logging Management
35
User Management
36
Enhanced MI CLI
● Support to encrypt plain text, create
K8s secrets
● Support to input multiple plain text
secrets
● Download log files
● User management
● Update/add loggers and logger level
● Retrieve transaction count information
Cloud-Native Observability
Observability Solution
38
39
Monitoring Statistics with Prometheus and Grafana
40
Analyzing Logs with FluentBit, Loki, and Grafana
41
Tracing with Jaeger
Improved Connector Experience
Revamped Connectors
● Revamped a number of connectors to improve user experience and for better
integration with WSO2 Micro Integrator integration framework
● Improved documentation
○ https://ei.docs.wso2.com/en/latest/micro-integrator/references/connectors/conne
ctors-overview/
● Following are some of the popular improved connectors
⦿ File connector
⦿ Salesforce connector
⦿ Email connector
⦿ Amazon S3 connector
43
Connection Pooling Added
● A common connection pooling framework is added for connectors
○ Based on Apache Commons Pool
● Any newly written connector can use this pool to cache connections
● This improves performance and scalability
44
New Connection Concept
● In older versions there was an operation called “init” that needed to be added
before each and every operation to initialize the connection required for the
operation
● This cluttered the design view and added unwanted burden to the developer
45
New Connection Concept
46
New way of making connections
(Integration Studio 7.2.0 +)
● Define a connection with a
name
● Choose the connection to
use at the connector
operation
New Connection Concept
● This concept integrates well with common connection pooling
○ When an operation is invoked, it will pick a connection from the pool specified
○ Once invocation is done, it is returned to the pool
● This enables you to have the connection configuration at a single place and
reuse it across operations
● Users can define multiple connections with different configurations (e.g., host
to connect) and use in operations as needed
47
Externalizing Connection Properties
● Input properties for connections can be static or dynamic
● Dynamic properties are useful for externalizing them
○ This means you can feed them external to the integration logic. When they change,
you do not need to update the integration logic.
● Ways of externalizing properties:
○ Environment variables (useful in containerized environments)
○ Registry properties
○ System variables
○ File system properties (feed from .properties file)
48
49
Improved Property Panel
● Grouped inputs
● Structured UI
● Notification on validation
issues (never miss a
mandatory field)
● Help tips backed in
Good Guide for Writing Your Own Connector
● It is not very rare :)
● When it comes to integration, everything has an API now. It may not be very
long until you have to write your own connector.
● No worries. Now we have a complete documentation guide:
https://ei.docs.wso2.com/en/latest/micro-integrator/references/connectors/
develop-connectors/
● Contributions are welcome!
50
Additional Resources
● Download WSO2 Micro Integrator 1.2.0:
https://wso2.com/integration/micro-integrator/
● Integration Connector Store:
https://store.wso2.com/store/assets/esbconnector/list?
● WSO2 Integration Studio: https://wso2.com/integration/integration-studio/
● Official Documentation:
https://ei.docs.wso2.com/en/latest/micro-integrator/overview/introduction/
● Github release: https://github.com/wso2/micro-integrator/releases/tag/v1.2.0
● Integration Library: https://wso2.com/library/integration/
● Community Slack Channel: http://wso2-ei.slack.com
51
Question Time!
52
Thanks!

More Related Content

Migrate to the Latest WSO2 Micro Integrator to Unlock All-new Features

  • 1. Migrate to the Latest WSO2 Micro Integrator to Unlock All-new Features January 21, 2021
  • 3. ● About WSO2 Micro Integrator ● Runtime Improvements ● Enhanced Artifact Development Tools ● Deployment ● Server Management ● Cloud-native Observability ● Improved Connector Experience Agenda 3
  • 4. WSO2 Micro Integrator 1.2.0 4 Integration Studio Enterprise Integrator Streaming Integrator Micro Integrator Streaming Integrator Tooling Microservices Data Integration SaaS Integration SOA File Integration Streaming ETL Event Stream Integration
  • 6. ● RDBMS-based coordination among nodes Clustering and Coordination 6
  • 7. Support for Hot Deployment ● Intended for development ● Enabled by default ● Disabled in the Docker image to support immutability 7 [server] hot_deployment = true
  • 8. ● Introduction of readiness probe ๏ Indicates that the server has started and the CApps are deployed successfully ๏ Sample response 8 Optimizations for Container Deployment http://localhost:9201/healthz { “version”: “1.2.0”, “Status”: “ready” }
  • 9. Injecting Parameters ● Inject parameters using system variables, environment variables or from a file ● Ability to manage server and synapse configurations dynamically ● Maintain a single artifact/Docker image across different environments 9 <endpoint name="StockQuoteEndPoint"> <address uri="$SYSTEM:stockQuoteEP"/> </endpoint> [server] hostname = “localhost” offset = “$sys{offset}”
  • 10. Static Secrets Sensitive data that are specified directly in configurations Dynamic Secrets Sensitive data specified in configurations as environment variables, system properties, Docker secrets, or Kubernetes secrets 10 Managing Secrets [secrets] server_secret = "[secret_1]" synapse_secret = "[secret_2]" [secrets] server_secret = "$env{dynamic_secret}
  • 11. Managing Secrets ● Support for Docker/Kubernetes secrets ● Revamped secure vault experience ⦿ wso2:vault-lookup('docker-secret', ‘DOCKER', false') ● Support for HashiCorp secrets (WUM update) ⦿ hashicorp:vault-lookup('path-name', 'field-name') 11
  • 12. User Management ● Read/write support for following external user stores: ⦿ LDAP ⦿ RDBMS ● Can view, add, and delete users ● Can manage from CLI tool or Integrator Dashboard 12
  • 13. JSON Transform Mediator ● Apply XML to JSON transformation properties to individual mediation flow ⦿ They can be applied globally using synapse.properties file ● When transforming messages to JSON, manipulate message with a JSON schema 13 <jsontransform [schema="string"]> <property name="string" value="string"/> </jsontransform>
  • 14. Transaction Counter for Services ● All inbound requests ● Tracks the number of transactions ● Persists summary in a database ● Can be retrieved via the MI CLI 14 [transaction_counter] enable = true data_source = "WSO2_TRANSACTION_DB" update_interval = 2
  • 15. Other Improvements ● Revamped RabbitMQ transport for smoother and stabilized interaction ● Dynamic log4j configuration ● Support for SMB 3.0 (for file sharing) ● Swagger definition generation for data services ● Many more … https://github.com/wso2/micro-integrator/releases/tag/v1.2.0 15
  • 17. 17 Faster and lightweight New Studio version (7.2.0) is built on top of Eclipse 2020-06 platform. Battle tested in all latest OS platforms (e.g., macOS BigSur, Ubuntu 20, Windows 10)
  • 18. 18 Easily try out samples New Studio version (7.2.0) has a set of popular integration scenarios supported by WSO2 Micro Integrator. You can choose one and edit to match with your scenario.
  • 19. 19 Modified canvas settings ● Mediation palette brought to left for easy navigation ● Modified mediator icons to easily identify mediators ● Add descriptions to mediators in design view itself ● API design view is revamped to be more self understandable ● Redesigned property panel: ○ Grouped inputs ○ Organized view
  • 20. 20 Integrated testing ● Ability to test APIs, proxy services and sequences ● Design mock endpoints for any type of endpoints ● Unit test parts of the complex integration ● Documentation: https://ei.docs.wso2.com/en/lates t/micro-integrator/develop/creatin g-unit-test-suite/
  • 21. 21 Export Docker images ● Create your own solutions using private or public WSO2 MI based Docker images ● Pick and include multiple CApps of your choice into the Docker image ● Easy to enable WSO2 Cipher Tool (secure your configurations/passwords) ● Push images to public/private Docker registries
  • 22. 22 Directly deploy on K8s ● Docker build and push capabilities as in Docker export module ● Generates K8s deployment artifacts for WSO2 K8s EI Operator
  • 23. 23 More integrated than before ● Connect to connector store within studio to download and use extensions straight away ● Get studio updates easier and faster ● Help tips within mediators and input fields ● WSO2 Micro Integrator 1.2.0 runtime embedded - configurations are modifiable ● More in near future!
  • 25. Supported Deployment Types ● WSO2 Micro Integrator can be deployed ○ On VMs ○ As Docker containers ■ Usually chosen as pod containers in Kubernetes ■ Shipped with tools for easy deployment on top of Kubernetes 25
  • 27. Connected Developer Experience 27 Develop - ESB config project for developing your integration logic - Export the integration logic as composite application project Test - Unit testing framework for writing tests - Ability to mock services Deploy - Integration studio has inbuilt mechanisms for deployment - CApp deploy plugin - Generate a Docker image and deploy - Generate K8s artifacts for WSO2 Enterprise Integrator K8s operator - Deploy to integration cloud
  • 28. CICD Pipeline Integration Studio Implement mediation artifacts and commit changes to the source repository (maven multi module project). Source Repository Maintain artifacts developed by team members. Continuous Integration Tool Retrieve artifacts from the source repository,and build against the test suite. After verifying the functionality, artifacts are committed to the production environment. Production Environment Provide services with the newest artifact changes. 28
  • 29. Automating Development and Deployment 29
  • 30. Jenkins Pipeline for VM Deployment 30 Build (build integration project) Test (test integration project using unit test framework) Deploy (copy CApp to deployment directory of server runtime using shell command) WSO2 MI Git push Git hook Jenkins build pipeline Integration project Documentation: https://ei.docs.wso2.com/en/latest/micro-integrator/setup/deployment/deploying_wso2_ei/
  • 31. Jenkins Pipeline for K8s Deployment 31 Build (build integration project) Test (test integration project using unit test framework) K8s cluster (WSO2 EI K8s operator installed) Git push Git hook Jenkins build pipeline Integration project K8s exporter project K8s Deploy (using Jenkins K8s deploy plugin deploy integration.cr file) Docker Build (build Docker image and push) Git push Documentation: https://ei.docs.wso2.com/en/latest/micro-integrator/setup/deployment/kubernetes_deployment_patterns/
  • 36. 36 Enhanced MI CLI ● Support to encrypt plain text, create K8s secrets ● Support to input multiple plain text secrets ● Download log files ● User management ● Update/add loggers and logger level ● Retrieve transaction count information
  • 39. 39 Monitoring Statistics with Prometheus and Grafana
  • 40. 40 Analyzing Logs with FluentBit, Loki, and Grafana
  • 43. Revamped Connectors ● Revamped a number of connectors to improve user experience and for better integration with WSO2 Micro Integrator integration framework ● Improved documentation ○ https://ei.docs.wso2.com/en/latest/micro-integrator/references/connectors/conne ctors-overview/ ● Following are some of the popular improved connectors ⦿ File connector ⦿ Salesforce connector ⦿ Email connector ⦿ Amazon S3 connector 43
  • 44. Connection Pooling Added ● A common connection pooling framework is added for connectors ○ Based on Apache Commons Pool ● Any newly written connector can use this pool to cache connections ● This improves performance and scalability 44
  • 45. New Connection Concept ● In older versions there was an operation called “init” that needed to be added before each and every operation to initialize the connection required for the operation ● This cluttered the design view and added unwanted burden to the developer 45
  • 46. New Connection Concept 46 New way of making connections (Integration Studio 7.2.0 +) ● Define a connection with a name ● Choose the connection to use at the connector operation
  • 47. New Connection Concept ● This concept integrates well with common connection pooling ○ When an operation is invoked, it will pick a connection from the pool specified ○ Once invocation is done, it is returned to the pool ● This enables you to have the connection configuration at a single place and reuse it across operations ● Users can define multiple connections with different configurations (e.g., host to connect) and use in operations as needed 47
  • 48. Externalizing Connection Properties ● Input properties for connections can be static or dynamic ● Dynamic properties are useful for externalizing them ○ This means you can feed them external to the integration logic. When they change, you do not need to update the integration logic. ● Ways of externalizing properties: ○ Environment variables (useful in containerized environments) ○ Registry properties ○ System variables ○ File system properties (feed from .properties file) 48
  • 49. 49 Improved Property Panel ● Grouped inputs ● Structured UI ● Notification on validation issues (never miss a mandatory field) ● Help tips backed in
  • 50. Good Guide for Writing Your Own Connector ● It is not very rare :) ● When it comes to integration, everything has an API now. It may not be very long until you have to write your own connector. ● No worries. Now we have a complete documentation guide: https://ei.docs.wso2.com/en/latest/micro-integrator/references/connectors/ develop-connectors/ ● Contributions are welcome! 50
  • 51. Additional Resources ● Download WSO2 Micro Integrator 1.2.0: https://wso2.com/integration/micro-integrator/ ● Integration Connector Store: https://store.wso2.com/store/assets/esbconnector/list? ● WSO2 Integration Studio: https://wso2.com/integration/integration-studio/ ● Official Documentation: https://ei.docs.wso2.com/en/latest/micro-integrator/overview/introduction/ ● Github release: https://github.com/wso2/micro-integrator/releases/tag/v1.2.0 ● Integration Library: https://wso2.com/library/integration/ ● Community Slack Channel: http://wso2-ei.slack.com 51