Are there any specific advantages/disadvantages of using Machine Image while setting up the Broker

Are there any specific advantages/disadvantages of using Machine Image while setting up the Broker over container images. Does any of the option has an inherent disadvantage in terms of any HA or other configuration? Or it depends on one's preference of using VMI over containers?



  • TomF
    TomF Member, Employee Posts: 400 Solace Employee

    Hi @sacduggal,an interesting question and I'm hoping I'm not the only one to answer!

    in purely Solace terms there should not be any feature or performance differences between the VM images and containers (assuming the containers are deployed on Linux). I find the machine images easier to set up, but then they lack the container orchestration advantages of, for instance, Kubernetes, so in production it might be easier to use containers.

    Personally I'd say there is little enough difference between the two that I'd pick your VM vs container strategy first, then decide how PubSub+ will work within that.

  • sacduggal
    sacduggal Member Posts: 6

    @TomF thanks for your reply, I know its a pretty open ended question but from purely Solace perspective, to summarize no inherent advantages/disadvantages in terms of the functionality of the broker between the two, just the obvious ease of using containers while moving to higher environments. So I can use the machine images in say DEV while for higher environments can use containers for setting up the broker.

  • TomF
    TomF Member, Employee Posts: 400 Solace Employee

    Yes, I can't see any problems with, say, using VMs in dev and containers in UAT/Prod. Obviously make sure there is a testing environment that mirrors prod, and do any performance testing there!

  • Aaron
    Aaron Member, Administrator, Moderator, Employee Posts: 487 admin
    edited November 2020 #5

    One thing that I find a pain with Docker containers is that if you are using bridge networking mode, you must specify (expose, publish) all your ports when you create your container. (if using host networking mode, then opening a port in the Solace broker will just open it to the host as well). So if you want to use multiple Message VPNs on the (Docker container) broker and you create them later on and add new ports later on (e.g. for REST, MQTT, AMQP), you will need to recreate the container with the new ports added. So that's not super great.

    And apparently you might get slightly better performance using machine images, since the OS has been tuned somewhat. Using Docker, you're using just the host's OS. Not sure how noticeable that is though. I think the port thing is more important.

    But yeah, no functional difference between any of the packaging options. As Tom said, go with whatever defaults/standards your company uses, align with that, just makes it easier.

  • swenhelge
    swenhelge Member, Employee Posts: 77 Solace Employee

    If you are going down the container route make sure that you can re-create the container to accommodate port changes the need for which will arise as Aaron mentioned. You need to create volume mounts for the various directories used by the broker as described here ....