TIBCO BusinessWorks 6: Integration, DevOps &...
Transcript of TIBCO BusinessWorks 6: Integration, DevOps &...
TIBCO BusinessWorks 6: Integration, DevOps & Microservices
TIBCO Fast Data Day
Franfurt, Germany, 29.10.2015
Florian von Walter
Director, Global Presales Product Group
This document (including, without limitation, any product roadmap or statement of direction data) illustrates the planned testing, release and availability dates for TIBCO products and services. This document is provided for informational purposes only and its contents are subject to change without notice. TIBCO makes no warranties, express or implied, in or relating to this document or any information in it, including, without limitation, that this document, or any information in it, is error-free or meets any conditions of merchantability or fitness for a particular purpose. This document may not be reproduced or transmitted in any form or by any means without our prior written permission.
The material provided is for informational purposes only, and should not be relied on in making a purchasing decision. The information is not a commitment, promise or legal obligation to deliver any material, code, or functionality. The development, release, and timing of any features or functionality described for our products remains at our sole discretion.
During the course of this presentation TIBCO or its representatives may make forward-looking statements regarding future events, TIBCO’s future results or our future financial performance. These statements are based on management’s current expectations. Although we believe that the expectations reflected in the forward-looking statements contained in this presentation are reasonable, these expectations or any of the forward-looking statements could prove to be incorrect and actual results or financial performance could differ materially from those stated herein. TIBCO does not undertake to update any forward-looking statement that may be made from time to time or on its behalf.
Disclaimer
© Copyright 2015 TIBCO Software Inc.
BusinessWorks ...
... does Integration
... supports multiple architecture styles
... supports the Microservices architecture style
... is DevOps enabled
Getting to Microservices is a journey
Key Take-aways
Data
Systems
People
Process
Things
Integration
Human
Insight
Analyze
Optimize
Discover
Report
Analytics Event Processing
Live Analysis
Events
Discovery
Alerting
Intelligent
Technologies
APIs
Cloud
Fast
Data
Automated
Actions…
Contextual
Processes…
Cross-Channel
Notifications…
© Copyright 2000-2015 TIBCO Software Inc.
Integration - the foundation for Fast Data
Messaging
Integration
API Management
B2B
MFT
MDM
Mainframe Integration
Cloud Integration
Connecting the enterprise since +15 years: From EAI over ESB and SOA to Microservices:BusinessWorks supports it all
EAI
ESB
SOA
MicroServices
BusinessWorks: THE Integration Platform
MessagingEMS, FTL, Rendezvous
IntegrationBusinessWorks + Adapters/Plugins
API ManagementMashery /
API Exchange
B2BBusinessConnect
MFT
MDM
Mainframe Integration
Cloud Integration
Connecting the enterprise since +15 years: From EAI over ESB and SOA to Microservices:BusinessWorks supports it all
EAI
ESB
SOA
MicroServices
BusinessWorks: THE Integration Platform
7
© Copyright 2000-2015 TIBCO Software Inc.
BusinessWorks - Connecting the Enterprise
Adapters
1. Adapter for Database
2. Adapter for File
3. Adapter for IBMi
4. Adapter for LDAP
5. Adapter for PeopleSoft
6. Adapter for SAP
7. Adapter for Siebel
8. Adapter Framework for
BW6
Plugins
1. ActiveSpaces
2. Big Data
3. CICS
4. Data Conversion
5. EJB
6. FTL Palette
7. IBMi Plugin
8. Large XML
9. MDM
10.MFT
11.MS Dynamics CRM
Plugins
12.Marketo
13.Mobile Integration
14.Netsuite
15.Oracle E-Business
16.Salesforce.com
17.Secure FTP
18.Sharepoint
19.SmartMapper
20.Websphere MQ
21.BW Unit Test
22.Maven BW New
New
New
New
New
New
Your definition of Microservices?
One definition:
“Microservice architectural style is an approach to developing a single
application as a suite of small services, each running in its own process and
communicating with lightweight mechanisms, often an HTTP resource API.”- James Lewis, Martin Fowler
Another definition:
A Microservice is a loosely coupled service oriented architecture with
bounded contexts.- Adrian Cockroft
What are Microservices?
• Componentization via Services
• Organized around Business Capabilities
• Products not Projects
• Smart endpoints and dumb pipes
• Decentralized Governance
• Decentralized Data Management
• Infrastructure Automation
• Design for failure
• Evolutionary Design
Source: http://martinfowler.com/microservices/#what
Some Microservices Characteristics
• Fine granularity
• Clear responsibility per service (Bounded Context!)
• Clear boundaries (service contracts)
• Loosely coupled - (async) messaging between services
• No functional overlap
• Limit or avoid state in services to allow scalability
• Automation
… and many more
Some requirements for Microservices approach
DevOps =
Enabler for
Microservices
Some key components
• CI: Continuous integration
• CD: Continuous delivery
• Automated testing
• Automated builds
• Automated infrastructure
• End-to-end monitoring
• Central log management
DevOps & Microservices
BusinessWorks supports Microservices architecture style:
• Componetization via Application Modules, Shared
Modules & tailored deployment via EARs
• Support for inherently distributed architecture via
messaging
• Enabled for DevOps – full CLI/scripting tooling available
• Supports architectural requirements
Microservices Architecture with BusinessWorks
Microservices Architecture Example
Customer v2
Product
Order
SQL
Mongo
SQL
Cache
API Gateway
Web Server
Order Handling
Customer v1
Customer Router
Service X
Bounded Context
WebService
REST
JMS
REST/JSON
JMS
REST
HTTP
REST/XML
REST/JSON
REST/JSON
Sample BW DevOps Pipeline
BusinessStudio
Automated BuildAnt & bwdesign(generates EAR)
AutomatedDeployment(bwadmin)
Jenkins
Version Control
Automated Testingcurl/soapUI/other
Commit & Push
Notify via Commit Hook
Check out
Deploy to testenvironment
AutomatedDeployment(bwadmin)
Deploy toproduction
environment
ConfigureMonitoring &
Logging
On successOn success
• Clear responsibility
• One BusinessWorks Application Module per service
• BusinessWorks Shared modules for schemas, service contracts and other sharedresources
• Avoid dependencies between service implementations
– Use well-defined contracts
– Use loose coupling via messaging
• Version control for services:
– Use versioned URLs, destinations or namespaces
– Use routing to provide single endpoint for multiple versions of same service
• Still valid and important:
– ESB concepts (routing, protocol bridging, transformation, mapping, etc.)
– SOA concepts
– Enterprise Integration Patterns (http://www.enterpriseintegrationpatterns.com/ )
Service Design
Topic Tools
Service contracts Swagger, IODocs, WSDL
Version control Subversion, Git, etc.
Automated builds Ant, Maven etc.
Continuous build & integration Jenkins, Commit hooks
Automated testing soapUI, curl, wget, BusinessWorks,…
Continuous integration Jenkins
Log management LogLogic
Monitoring & Alerting TEA, Hawk, LifeView, etc.
DevOps tooling pipeline
Automation with BusinessWorks
DevOpsfully
supported
Step Tool Activities
Install TIBCO Universal Installer
Silent install (runtime only)
Configure bwadmin Create domain, AppSpace, AppNodes
Build bwdesign Import, validate, build projects
Deploy bwadmin upload, deploy, start BW Apps (EAR)
Test Bwtest, BusinessWorks
generate client, build unit tests, drive integration tests
Scale bwadmin add/remove servers/AppNodes
#!/bin/bash
export GITREPOUSERNAME=<user>
export GITREPOPASSWORD=<password>
export GITREPOHOST=<host>
export GITREPOPATH=<repopath>
export PATH=/opt/tibco/bw-622/bw/6.2/bin:$PATH
export BUILDDIR=/tmp/bwbuild
mkdir -p $BUILDDIR
cd $BUILDDIR
git -c http.sslVerify=false clonehttps://$GITREPOUSERNAME:$GITREPOPASSWORD@$GITREPOHOST/$GITREPOPATH
# continued on right column...
cat > bwdesignscript.txt <<EOF
pwd
system:import $BUILDDIR/<project>/src/bw
ls
system:validate
system:export tibco.bw.samples.micro.book
system:export tibco.bw.samples.micro.bookinfo
system:export tibco.bw.samples.micro.bookinventory
system:export tibco.bw.samples.micro.order
quit
EOF
bwdesign -data $BUILDDIR/bstworkspace execute$BUILDDIR/bwdesignscript.txt
Example Build Script
Monitoring
• TEA
• Hawk
– Plugins for BusinessWorks, EMS,
OS etc.
• EMS Central Console
• Integration into existing
monitoring infrastructure via Hawk
via Hawk SNMP Plugin, CLI, API
Log Management
• LogLogic for central log
management
– Collect log entries in central
database
– Search & correlate logs in one
place
Operations
• Policy management
– Security (authentication, authorization)
– Encryption & Digital Signature
– Throttling
– Protocol bridging
– Censorship
– …
• API Management
– Access portal for API consumers
(internal or external developers)
– Publish API documentation
– …
API Management
MasheryAPI Exchange
Disclaimer: Docker is currently not officially supported by TIBCO
• Run BusinessWorks services in Docker
• Complete service runtime in one package:
– JVM
– BW runtime
– EAR + dependencies
• One EAR per Docker image
• Use Docker volumes for log files
• Log messages go to stdout/stderr as event stream
• Linked images for persistence (i.e. database, document store)
Using Containers (Docker)
BusinessWorks ...
• ... does Integration
• ... supports multiple architecture styles
• ... supports the Microservices architecture style
• ... is DevOps enabled
Getting to DevOps and Microservices is a journey.
Summary
• Git: https://git-scm.com/
• Subversion: https://subversion.apache.org/
• Jenkins CI: https://jenkins-ci.org/
• Ant: https://ant.apache.org/
• Maven: https://maven.apache.org/
• Microservices: http://martinfowler.com/microservices/
• 12 Factor: http://12factor.net/
• Reactive Manifesto: http://www.reactivemanifesto.org/
References
Q & A