ASG
IBM
Zystems
Cressida
Icon
Netflexity
 
  MQSeries.net
Search  Search       Tech Exchange      Education      Certifications      Library      Info Center      SupportPacs      LinkedIn  Search  Search                                                                   FAQ  FAQ   Usergroups  Usergroups
 
Register  ::  Log in Log in to check your private messages
 
RSS Feed - WebSphere MQ Support RSS Feed - Message Broker Support

MQSeries.net Forum Index » WebSphere Message Broker (ACE) Support » WMB Scaling

Post new topic  Reply to topic Goto page 1, 2  Next
 WMB Scaling « View previous topic :: View next topic » 
Author Message
madi
PostPosted: Fri Jan 14, 2011 7:58 am    Post subject: WMB Scaling Reply with quote

Chevalier

Joined: 17 Jan 2006
Posts: 475

We were two teams serving separate divisions with two different approaches.

1. Have multiple message types in each flow using label nodes. Similarly multiple message types (grouped by application) in each message set.
Our environment had 4 brokers with 4 or 5 execution groups each.
We have about 400 interfaces(using 100+ message flows) (end to end) deployed on this environment supporting close to a million if not more transactions per day.
Team had 4 developers/analysts/testers/admins along with at least 1 contractor.
Interfaces are mostly MQ to MQ with some web service calls.
We focus on reusablity and inteligent interface design.
Strictly deal with MQ, Message Broker.

2. Each message type gets its own flow. Usually each message goes through 2 unique flows. Around 400 interfaces (end to end) using 700+ flows
Environment has 3 brokers on 3 servers. Environment supports close to a million messages per day.
Flows are a mix of web service calls, web services and mq to mq transactions.
Team has 2 leads, 1 estimator, 1 build guy, 2 admins, 4 designers and then usualyy abt 5 off shore developers.
Focus on adding more and more interfaces in a short amount of time, hiring resources as when needed.
Access to BPM products, WPS, Datapower, Various Adaptors etc.

Now, both the teams merged a couple months ago. Apart from the culture change and ideology change, the question now is which is the way to go forward.

1. Pros: Smaller setup, more efficient, less cost, less people.
Cons: Coordination of check-in check-outs from source control is a bottleneck if you have big flows with multiple interfaces in them.
Any major change to that flow means all other interfaces also need to be tested.

2. Pros: Scalability in terms of developers is very good, each can work on their flow not having to worry abt checkout time etc.
No need to test any other interface for chances to the current interface.
Cons: The number of message broker objects grows exponentially. System resoures for so many deployed objects is very high, hence the need of more (powerful)servers.
Expensive to manage servers, more people etc
Nightmare to manage and keep track of the thousands of flows and msgsets that will be created.

What Im looking for is your opinion on both these strategies.
Also helpful if you can describe the setup you have at your shop and pros and cons.

Appreciate any thoughts.
Thanks
_________________
IBM Certified Solutions Developer - WMB 6.0
Back to top
View user's profile Send private message
fatherjack
PostPosted: Fri Jan 14, 2011 8:15 am    Post subject: Reply with quote

Knight

Joined: 14 Apr 2010
Posts: 522
Location: Craggy Island

Have you looked at SupportPac IP04. It might give some useful pointers for some of your issues.
_________________
Never let the facts get in the way of a good theory.
Back to top
View user's profile Send private message
mqjeff
PostPosted: Fri Jan 14, 2011 8:26 am    Post subject: Reply with quote

Grand Master

Joined: 25 Jun 2008
Posts: 17447

I have some difficulty with Approach 1 if the distinction between the types of messages supported by a single flow is very large.

That is, if you are essentially implementing multiple full applications in a single message flow - one that processes orders and one that reconciles accounting changes for example....

If, instead, your approach 1 is more like "This flow process all new order messages, regardless of what system or format the order comes from", and thus you have multiple distinct and widely varied formats of messages coming in - but they are all logically "new order" messages, then I'm okay with approach 1.

I guess what I'd say is that I'd tend to start implementing under approach 2, and then consolidate under reasonable practices towards approach 1 as a given set of functions matures.
Back to top
View user's profile Send private message
paintpot
PostPosted: Fri Jan 14, 2011 8:46 am    Post subject: Reply with quote

Centurion

Joined: 19 Sep 2005
Posts: 112
Location: UK

You are missing an architect and a refactoring budget

You could try mixing the teams up via (50:50) transfer, then have the debate internally once both sides have experienced the other's points of view

Beyond that, I would also suggest asking the business what they need (agility, cost reduction, etc) and what they can afford.
Back to top
View user's profile Send private message
mqjeff
PostPosted: Fri Jan 14, 2011 8:48 am    Post subject: Reply with quote

Grand Master

Joined: 25 Jun 2008
Posts: 17447

paintpot wrote:
You are missing an architect and a refactoring budget




There probably is a refactoring budget,but it's a) not been mentioned, b) probably insufficient for the actual work that needs to be done.

As for the architect, they probably now have TWO. I think a cage match is the best way to settle that.
Back to top
View user's profile Send private message
madi
PostPosted: Fri Jan 14, 2011 9:17 am    Post subject: Reply with quote

Chevalier

Joined: 17 Jan 2006
Posts: 475

mqjeff wrote:
I have some difficulty with Approach 1 if the distinction between the types of messages supported by a single flow is very large.

That is, if you are essentially implementing multiple full applications in a single message flow - one that processes orders and one that reconciles accounting changes for example....

If, instead, your approach 1 is more like "This flow process all new order messages, regardless of what system or format the order comes from", and thus you have multiple distinct and widely varied formats of messages coming in - but they are all logically "new order" messages, then I'm okay with approach 1.

I guess what I'd say is that I'd tend to start implementing under approach 2, and then consolidate under reasonable practices towards approach 1 as a given set of functions matures.


Usually we have 3 message flows per source application, regular transactions, batch transactions and Synchronous transactions.
Each flow typically can have anywhere from 3 to 15 types of messages coming in.
_________________
IBM Certified Solutions Developer - WMB 6.0
Back to top
View user's profile Send private message
madi
PostPosted: Fri Jan 14, 2011 9:20 am    Post subject: Reply with quote

Chevalier

Joined: 17 Jan 2006
Posts: 475

paintpot wrote:
You are missing an architect and a refactoring budget

You could try mixing the teams up via (50:50) transfer, then have the debate internally once both sides have experienced the other's points of view

Beyond that, I would also suggest asking the business what they need (agility, cost reduction, etc) and what they can afford.


We do have an architect who is from the Option 2 team.

The architecture is for things going forward, no plans to change the existing interfaces in the near future

My concern is if we keep adding flows and message sets, where is the limit? If we do that, i can see us having a total of 2000+ flows and may be 500 msg set if not more.

I want to know if others have such numbers and how they go about supporting such environment.
_________________
IBM Certified Solutions Developer - WMB 6.0
Back to top
View user's profile Send private message
lancelotlinc
PostPosted: Fri Jan 14, 2011 9:23 am    Post subject: Reply with quote

Jedi Knight

Joined: 22 Mar 2010
Posts: 4941
Location: Bloomington, IL USA

Lance LIKES the "1 build guy". Would we also call him a Build Engineer? Has he managed to implement automated build process? What tools did he choose?
_________________
http://leanpub.com/IIB_Tips_and_Tricks
Save $20: Coupon Code: MQSERIES_READER
Back to top
View user's profile Send private message Send e-mail
paintpot
PostPosted: Fri Jan 14, 2011 9:55 am    Post subject: Reply with quote

Centurion

Joined: 19 Sep 2005
Posts: 112
Location: UK

ok - now for some real advice, based on what I like to do (which may not be what others like to do!)

Divide your domain in ways that make sense (e.g. business unit, or service-based, or quality of service based, or transport type etc - or any mix of)
Decide if the above matches your deployment strategy (i.e. the divided parts could be candidates for EGs)
Use the right tool for the job - DataPower on the outside of the organisation
Make sure you can drive change rapidly by using test automation (and having test packs).
Standardise and use patterns (not necessarily WMB code generation though) to do the right things in the right order for future builds.
Promote reuse of code / subflows etc - harvest the best from both camps
Create a common object model (canonical form), if appropriate.
Mediation into and out of this using WMB.

Spend lots of time talking together to keep eevryone involved and on side.

Good luck - you just need the right attitudes from all the team members
    Back to top
    View user's profile Send private message
    lancelotlinc
    PostPosted: Fri Jan 14, 2011 9:57 am    Post subject: Reply with quote

    Jedi Knight

    Joined: 22 Mar 2010
    Posts: 4941
    Location: Bloomington, IL USA

    paintpot wrote:
    ok - now for some real advice, based on what I like to do (which may not be what others like to do!)

    Divide your domain in ways that make sense (e.g. business unit, or service-based, or quality of service based, or transport type etc - or any mix of)
    Decide if the above matches your deployment strategy (i.e. the divided parts could be candidates for EGs)
    Use the right tool for the job - DataPower on the outside of the organisation
    Make sure you can drive change rapidly by using test automation (and having test packs).
    Standardise and use patterns (not necessarily WMB code generation though) to do the right things in the right order for future builds.
    Promote reuse of code / subflows etc - harvest the best from both camps
    Create a common object model (canonical form), if appropriate.
    Mediation into and out of this using WMB.

    Spend lots of time talking together to keep eevryone involved and on side.

    Good luck - you just need the right attitudes from all the team members


      Where have you been all my life? Are you single female?
      _________________
      http://leanpub.com/IIB_Tips_and_Tricks
      Save $20: Coupon Code: MQSERIES_READER
      Back to top
      View user's profile Send private message Send e-mail
      madi
      PostPosted: Fri Jan 14, 2011 10:06 am    Post subject: Reply with quote

      Chevalier

      Joined: 17 Jan 2006
      Posts: 475

      paintpot wrote:

      Good luck - you just need the right attitudes from all the team members


      there in lies the problem, there is no discussion anymore

      I agree there must be a happy medium between our approach and theirs.
      In the end, we support just as much traffic and interfaces as they do but with less people, servers and hence cost!!

      more importantly i want to know how other shops work.

      paintpot: can u give me that for your setup? i.e. number of interfaces end to end, number of flows, egs, brokers etc
      _________________
      IBM Certified Solutions Developer - WMB 6.0
      Back to top
      View user's profile Send private message
      Vitor
      PostPosted: Fri Jan 14, 2011 10:40 am    Post subject: Reply with quote

      Grand High Poobah

      Joined: 11 Nov 2005
      Posts: 26093
      Location: Texas, USA

      madi wrote:
      I agree there must be a happy medium between our approach and theirs.


      Well you've got one good thing at least then; an understanding that neither method is "right"!

      madi wrote:
      In the end, we support just as much traffic and interfaces as they do but with less people, servers and hence cost!!


      Which ties into the age old debate of where "cost" needs to be, and how do you calculate it? Do you go with method #2 because you think hardware is cheap and there's always room for 1 more server? Or do you go with method #1 because a large team "costs" more? I've worked for both viewpoints and in many cases it varies depending on who's budget what money is coming out of...

      madi wrote:
      more importantly i want to know how other shops work.


      I've seen it done both ways, and with most shades in between. Where IMHO it's worked best is where there's been either a business or technical grouping, with like-purpose or like-structure messages going into a single flow & being split out by label / Filter / Compute node logic. With a little effort you can keep the retesting to a minimum when you make a change, especially if you ensure common code is truely common, and specific code is segrigated & properly marked.

      This of course needs to be balanced against flow size & resource usage. One flow here has a huge amount of logic in the Compute nodes (much of which I think is unnecessary and/or in the wrong product) but we've honoured the spirit of the law by having a single flow which takes all of those message types and splits out into separate flows which are not used external to broker.

      It's all about finding the balance that works for your situation.
      _________________
      Honesty is the best policy.
      Insanity is the best defence.
      Back to top
      View user's profile Send private message
      fatherjack
      PostPosted: Fri Jan 14, 2011 3:25 pm    Post subject: Reply with quote

      Knight

      Joined: 14 Apr 2010
      Posts: 522
      Location: Craggy Island

      madi wrote:
      My concern is if we keep adding flows and message sets, where is the limit? If we do that, i can see us having a total of 2000+ flows and may be 500 msg set if not more.

      I want to know if others have such numbers and how they go about supporting such environment.


      Why are these numbers of concern? 30+ years ago on the mainframe we regularly managed thousands of programs and copybooks and we didn't even have decent source control tools in those days.
      _________________
      Never let the facts get in the way of a good theory.
      Back to top
      View user's profile Send private message
      jlaisbett
      PostPosted: Fri Jan 14, 2011 3:27 pm    Post subject: Reply with quote

      Apprentice

      Joined: 27 Nov 2009
      Posts: 39

      Well I can describe the approach we have adopted recently, it has proven to be beneficial to us at least.

      When it comes to team structures, budget/funding, architects etc. pretty much all of that is still quite horrible so you're definitely a step ahead of us in that department.

      We used to get contractors in every single time we needed to make a change (who didn't actually know anything about message broker) which we have thankfully stopped doing now but what we were left with was chaos, we had flows everywhere and they were all completely different and barely worked at times.

      We then spent considerable time coming up with the following:
      - We have a few light weight components sitting at the front of everything
      - These components handle transformations, logging, security and routing to the component/service flows
      - Most of this is common code and doesn't change very often except the transformations
      - The transformations allow us to use a single message per component/service internally but the calling applications to use whatever message format best suites them
      - We then get into the component/service flows that do all the actual work, they always get their messages from MQ
      - The main flow is made up of nearly all common code, MQInput node plus common error handling logic and farms out the message to a label node matching the message type
      - We then have a single subflow added to the main flow, all this contains is a collection of label nodes connected to other subflows
      - From here each message type gets it's own subflow which is what does all the work
      - How many subflows we end up with varies depending on how many similar functions we have, can be only one to dozens

      This approach basically minimizes the number of flows we need to deploy but technically all message types still have their own independent flow, they are just subflows. We can add new subflows with minimal impact to any other subflows sharing the same queue because it forwards to them using label nodes matching the message name so we only need to alter the flow containing all the label nodes to add a new message. This approach also simplifies source control for us.

      This approach may be pointless when we only have one message type and subsequent subflow but we still use it anyway for consistency. Performance is quite good and we handle about 3 million messages per week last time I looked. There may be better ways and time will tell how useful our approach is but it's served us well for the last year.

      We haven't perfected an approach for message sets yet, but we only have half a dozen of them at the moment so it hasn't really been an issue.
      Back to top
      View user's profile Send private message
      smdavies99
      PostPosted: Sat Jan 15, 2011 12:32 am    Post subject: Reply with quote

      Jedi Council

      Joined: 10 Feb 2003
      Posts: 6076
      Location: Somewhere over the Rainbow this side of Never-never land.

      jlaisbett wrote:


      We haven't perfected an approach for message sets yet, but we only have half a dozen of them at the moment so it hasn't really been an issue.


      Lucky you.

      your site obviously is not into WebServices and other contact admin such as SAP Bapi & iDocs.
      If you were your message set could would go through the roof.

      IMHO, one of the biggest issues the OP is going to have is merging the different release processes into one streamlined, automated, measurable and most importantly manageable 'thing'.
      If you do that then how the different dev teams do their coding becomes less important.

      I'd start by looking at the two teams release processes and then thinking about the best practices and possible improvements. Adding something like Continuious Integration Testing, removing (if possible) barfile overrides to the mix.
      Then you can come up with a 'new improved 2011' process whereby neither team feels that they have been taken over. Almost every site I've been on has gripes/bitches/complaints about the release & testing process. Get the two teams united by getting them involved in making the new process one that they appear to own. It is a common goal and will build trust and cooperation between them.
      _________________
      WMQ User since 1999
      MQSI/WBI/WMB/'Thingy' User since 2002
      Linux user since 1995

      Every time you reinvent the wheel the more square it gets (anon). If in doubt think and investigate before you ask silly questions.
      Back to top
      View user's profile Send private message
      Display posts from previous:   
      Post new topic  Reply to topic Goto page 1, 2  Next Page 1 of 2

      MQSeries.net Forum Index » WebSphere Message Broker (ACE) Support » WMB Scaling
      Jump to:  



      You cannot post new topics in this forum
      You cannot reply to topics in this forum
      You cannot edit your posts in this forum
      You cannot delete your posts in this forum
      You cannot vote in polls in this forum
      Protected by Anti-Spam ACP
       
       


      Theme by Dustin Baccetti
      Powered by phpBB © 2001, 2002 phpBB Group

      Copyright © MQSeries.net. All rights reserved.