Everybody is talking about Microservices these days. You can read a lot about Microservices in hundreds of articles and blog posts. A good starting point is Martin Fowler’s article, which initiated the huge discussion about this new architecture concept.
For an overview about requirements for a good Microservices architecture, also read this article: "Do Good Microservices Architectures Spell the Death of the Enterprise Service Bus?"
Another great resource is an free on-demand webinar by vendor-independent analyst Gartner: "Time to Get Off the Enterprise Service Bus". It does not even mention the term "Microservices", but explains its basic motivation and concepts.
Definition of the Term "Microservices"
Here is my short definition of the term "Microservices" and how it differs from a “classical” Service-oriented Architecture (SOA):
- No commitment to a unique technology
- Greater flexibility of architecture
- Services managed as products, with their own lifecycle
- Industrialized deployment
That is the beginning of the Microservices era: Services implementing a limited set of functions. Services are developed, deployed and scaled independently. This way you get shorter time to results and increased flexibility.
Microservices and TIBCO
The funny thing is that several TIBCO customers are already implementing Microservices for years. This blog post explains how you can use TIBCO products to create Microservices.
The key products are TIBCO ActiveMatrix BusinessWorks for creating Microservices, TIBCO Enterprise Administrator (TEA) for administration and monitoring, TIBCO Silver Fabric for Continuous Integration and Continuous Delivery (DevOps), and TIBCO API Exchange as service gateway and self-service portal.
The following shows the basic idea of how to create Microservices with TIBCO in combination with any other technology (e.g. Java, Python, Scala), product (e.g. Oracle, SAP, Salesforce), build tool (e.g. Chef, Puppet, Docker) or infrastructure (e.g. Amazon cloud, VMWare, OpenStack).
Side node: Be aware that the product is only one part of the story. Organizational changes are required, too. Adrian Cockcrof (former architect at Netflix) did a great talk about organizational changes: "State of the Art in Microservices".
Now, let’s take a look at the products, which help you building, deploying, running and monitoring Microservices in a fast and flexible way.
TIBCO ActiveMatrix BusinessWorks for Creating a Microservice
TIBCO ActiveMatrix BusinessWorks is an enterprise integration and service delivery platform. Build your own Microservices using your choice of technology (e.g. Java, Scripting, a BusinessWorks process, or anything else) or expose an existing implementation as Microservice. BusinessWorks is the best choice if you need to implement complex integration scenarios including orchestration, routing or B2B integration (e.g. SAP or Salesforce).
The exposition of a Microservice is usually done with REST or SOAP standard interfaces. JMS might be used in an event-enabled environment.
You also use BusinessWorks to assemble your logic from several Microservices to composites, or extend your existing (Micro)Services to mobile applications.
TIBCO API Exchange for Exposing your Microservice via APIs
TIBCO API Exchange is used to expose Microservices via REST, SOAP or JMS including Policy-based API management features such as security, throttling, routing and caching. Besides, a portal is available for easy self-service consumption of Microservices. In the context of Microservices, API Exchange is used to enforce consumption contracts, ensure Y-scaling and reliability of Microservices, and to reuse Microservices in multiple contexts without change.
“A New Front for SOA – Open API and API Management” explains the term “Open API” in more detail and gives a technical overview about the components of an API Management solution: Gateway, Portal and Analytics.
TIBCO Silver Fabric for Continous Integration and Continuous Delivery (DevOps)
Automation is key for agile, flexible and productive Microservices development. Without continuous integration / continuous delivery (DevOps), you can realize the Microservices concept efficiently.
TIBCO Silver Fabric is used to continuously deploy, configure and manage your applications and middleware, on premise or in the cloud. It offers to end-to-end scripting, automation and visibility via dashboards, and monitoring the quality of deployed application, ports management and elastic load balancing.
TIBCO Silver Fabric offer several out-of-the-box features to run a project in a DevOps style. Besides, it supports tools such as Chef, Puppet and Docker. You can deploy Microservices everywhere including private data centers, virtual machines and cloud environments – supporting environments such as Amazon Web Services, VMWare or OpenStack. Important to understand is that every Microservice is build and deployed independently from each other.
TIBCO Enterprise Administrator (TEA) for Unified Administration
Unified administration and monitoring are another key success factor for Microservices - no matter which technologies are used to implement different Microservices.
TIBCO Enterprise Administator (TEA) is an unified graphical user interface (plus shell and scripting API) for administration, monitoring, governance, diagnostics and analytics of most TIBCO products such as BusinessWorks, EMS, SilverFabric, Hawk or PolicyDirector.
TEA can also be used for other non-TIBCO technologies and products such as Apache Tomcat out-of-the-box. If something is not supported yet, you can use TEA’s API to integrate it quickly. BusinessWorks 6 and TEA are very open products encouraging TIBCO community to develop additional features.
TIBCO Complex Event Processing and Streaming Analytics for Visibility across Microservices
Finally, after deploying and running your Microservices in production, you can use tools such as TIBCO StreamBase CEP to combining events, context and big data insights for instant awareness and reaction. Correlation of different events is the real power – ask people from Google, Amazon or Facebook about this topic... As this is a little bit off-topic, I just forward you to an article, which explains Event Processing and Streaming Analytics in more detail and discusses several real world use cases: Real-Time Stream Processing as Game Changer in a Big Data World with Hadoop and Data Warehouse.
TIBCO and Microservices are Friends and Profiteers, not Enemies!
As you can see, TIBCO products are ready for creating, deploying, running and monitoring Microservices. Products such as ActiveMatrix BusinessWorks, API Exchange and Silver Fabric are designed for the Microservice era. Actually, several TIBCO customers are using this approach for years, though this concept did not have a specific name other than SOA in the past. So, is Microservices a new name for SOA, or is it something new? Who knows... No matter what, you should start to think about using the Microservices approach, too!