The document discusses the new features and improvements in WSO2 Micro Integrator 1.2.0. It highlights runtime improvements like clustering and coordination using RDBMS, support for hot deployment, and optimizations for container deployment. It also discusses enhanced artifact development tools in Integration Studio, deployment options on VMs, Docker, and Kubernetes, server management features, and improved observability. Additionally, it covers improved connector experience with revamped connectors and connection pooling.
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
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
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