Skip to main content

JBoss Fuse - Fuse workshop 101 - Part Six

This is the last part of Fuse workshop 101, we have gone through the development part, what about in real production environment? This workshop is all about the operation and management side of JBoss Fuse. The technology we use for this purpose is called Fabric8. Fabric8 mainly takes care of  provision, automate, configure, and manage from a central location.
Since in real production environment, we will need to manage tens and hundreds of Karaf containers, we need a way to coordinate between containers and to be able to discover all the available service on them, this is where zoo keeper comes in. To discover all the service, we have a place to store all the runtime information, it's call runtime registry. And all the configuration for containers are grouped into something called profile, where you can apply the profile to sets of containers. Hawtio is the GUI for you to visualize the entire environment. 

So to provide this fabric service, we will need a server to actually run the fabric, the server running the fabric is called "Fabric Server", it provide the registry service, maintains a replicable database of information about the state of the fabric. And in order to make sure our server does not became the single point of failure, we will create multiple Fabric server to achieve high availability. It's called ensemble. 
So within every Fabric server, the runtime state of the fabric is stored, in side the run time registry you will find all the relevant information about each container. 
As well as the runtime status, Fabric also stores the configuration data in a git repository, each fabric server has the complete copy of this data. And because we are using git, all the configurations are versioned. And we combined a set of configuration into a profile, and then apply these profiles into the container we want it to run in.

Inside each Profiles, you will have static configuration files like, json, xml, properties and the links or URL of where to get your code(bundle), it also has information on what features and bundles you want to include in this profile.
Just to clarify, the program package you as the developer develops are called bundles. (It's actually a jar with some META-DATA of your endpoint). A feature is a set of bundles and also features that you combine together.
So, last thing I want to talk about before we move on to how to deploy, is the maven proxy embedded inside fabric. The proxy actually connects to 2 different set up maven repository, one is the local repo, the other is the remote one locate outside your machine. The container uses it to locate the actual program describe in the profile and download it to the container to run.
To make it absolutely clear, the way we normally deploy is

  1. Write your code and then package it into bundle
  2. Create a profile in the fabric, add the necessary feature and bundle you need for the profile, including your program
  3. In fabric, create a new container (or use the existing one)
  4. Add the profile you created to the container.
Or you can simply deploy your program using the fabric8:deploy maven plugin. It will automatically installed the profile and settings according to the configuration that is set in the pom.xml. 

There are several way to operate in fabric, using the command line using the fabric client, or through the GUI interface Hawtio. Below is a picture of what each tab takes you to in the fabric. 

The Slides are here:

This time for the lab, we are going to just deploy our camel route into the fabric. And see it running. 

And the lab instruction:

Workshop part 1 - Camel basic and components
Workshop part 2 - Data Transformation 
Workshop part 3 - Enterprise Integration Pattern
Workshop part 4 - Bean Registry
Workshop part 5 - OSGi Container


Rick said…
Very nice. Thank you!
There's no link from Part Five to this Part Six, should have it ;)
Christina Lin said…
Thanks César, I updated!

Popular posts from this blog

Red Hat JBoss Fuse - Getting Started with Fuse Integration Service 2.0 Tech preview

I just realized that I did not do a getting started for Fuse Integration Service 2.0 Tech preview before I did the pipeline demo, thanks for those of you who reminded me! :)

To get started with FIS 2.0, for people who has just getting to know the technology, here is how I interpret it. Basically, it's divide into two aspect,

1. Integration development, FIS uses Apache Camel as the core technology that creates, orchestrate, compose microservices into a super lightweight thin integration layer, and become the API provider and service orchestrator through exposing RESTful or messaging service endpoints. And you can choose to either package and run it with Spring-Boot or Karaf.

2. Application Deployment and Management, FIS takes advantages of OpenShift platform, and allows you to separately deploy the micro-integration service among distributed environment, at the same time takes care of the failover, high availability, load balancing and service lookup problem for you.

So, now we know …

Red Hat JBoss Fuse/A-MQ - Fuse and A-MQ Version 6.3 GA is released!

Fuse and A-MQ 6.3 GA has just went out. Maybe, you would think this is just only a minor version release why should I care? Hold your thoughts on that! Because they have done a lot of improvements and also added many new features into this release.

Besides various bug fixes and making sure Fuse Fabric is much more stable. There are two major change in this version update:

New Tooling in JBoss Developer Studio (JBDS) 9.1 GA. Newer Apache Camel version – Camel v2.17. I was really impressed by the work put in to make developing Camel application much simpler. First is the installation of tooling itself. Now it has a all-in-one installer so you don't need to worry about which plugins you need to check. See the videos below to see the new "Getting Started" of Fuse 6.3.

And If you notice from the above video, the presentation of camel route in JBDS has also updated. It fixed some of the miss representation of logic and making it easier to read.

Old Camel Route
New Camel Route
On …

Fuse Integration Service - Setup JBDS and create first quickstart application

Before we go and start creating our first application, I want to show you how to setup your JBoss Developer Studio, create a small application from the quickstart example and then running it on Fuse Integration Service.

I am using JBoss Developer Studio version 9, you can find it here.
After download the

double-click it, and start installing with default values.

After successful installation, we will need install the plugins for Fuse, on JBoss Central view, select software update, select enable early access.

And select JBoss Fuse Development for the plugin,

Click on install, and we are all set to go!

First thing first, we want to create a Fuse project to deploy on the base of Fuse Integration Service, which is OpenShift. If you have not installed it, please go back to my previous post for instructions. So on your JBDS, right click and start creating the project. Select new, maven project, if you have installed the plugin correctly, you should …