Docker is one of the hottest technologies right now. Many TIBCO customers already ask how they can leverage it and what TIBCO’s strategy is. This blog post will show some insights about TIBCO’s future strategy from the Docker perspective.
TIBCO’s Future Strategy: Cloud First, Ease of Use, Industrialization
Take a look at the following tweet from TIBCO’s Twitter account in March 2015:
As you can see, TIBCO’s future strategy has three key pillars:
- Cloud First: Make (non-ready) existing and new TIBCO products ready for the cloud. This does not mean that products will be only available as a cloud offering. However, any cloud-ready product (considering characteristics such as scalability, elasticity or self-service subscriptions) is automatically ready for on-premise or hybrid deployments, too.
- Ease of Use: This was always a great differentiator for most TIBCO products. So, nothing really new here. Though, we will see more focus on the semi-professional IT users and business user besides offering easy-to-use development environments for technical experts.
- Industrialization: Automation is key for success while the complexity of IT architectures, systems, and interfaces is increasing year by year due to cloud, mobile, big data, and Internet of Things. Out-of-the-box support for automation and easy integration with widespread frameworks and tools for continuous integration/continuous delivery are mandatory.
What is Docker and why does it get so much momentum?
If you know Docker and its momentum, you can imagine that it will to be an important part of all three pillars in TIBCO’s future strategy. So, what is Docker actually? Let’s take a look at its definition on Wikipedia:
“Docker is an open-source project under Apache 2.0 license that automates the deployment of applications inside software containers, by providing an additional layer of abstraction and automation of operating-system-level virtualization on Linux. Docker uses resource isolation features of the Linux kernel […] to allow independent “containers” to run within a single Linux instance, avoiding the overhead of starting and maintaining virtual machines.”
Docker has key advantages compared to virtual machines (VM):
- Application Portability and Infrastructure Flexibility: Package your application, dependencies and configurations together to ensure that your application will work seamlessly in any environment on any infrastructure just like it did on your machine.
- Dynamically Update, Change, and Scale Apps: Applications running in Docker containers are easy to modify, update, and scale without bothering neighboring containers. The lightweight containers can spin up in a matter of seconds without consuming a lot of resources.
Instead of using VMs, which require many GBs, plenty of resources and result in slow startup/restart times, you use lightweight, flexible Docker containers.
Alright… so, how is Docker related to TIBCO?
Docker as Foundation for Microservices
Enterprises need to be more flexible and agile as the requirements are changing much faster than some years ago due to trends such as cloud, mobile, Big Data, and Internet of Things. Microservices are the answer for this need—and also a trendy buzzword these days.
Microservices allow developing, deploying, and scaling services independently of each other. Therefore, Microservices have specific architecture requirements. One of the key requirements is managing complex deployments and their scalability. The context of utilization of services will vary a lot. Services need to scale very rapidly. Automation is key for agile, flexible, and productive Microservices development. Without continuous integration/continuous delivery/DevOps, you cannot realize the Microservices concept efficiently.
Docker can be used for building, testing, packaging, and deploying Microservices.
Sure, other options are available or emerging these days, too. However, Docker seems to become the de facto standard if you take a look at number of enterprises supporting it, increasing community, and growing tool support. Similar to Apache Hadoop for big data years ago (I mean really BIG data, i.e. if you want to analyze Terabytes or more).
Docker Containers with TIBCO EMS and TIBCO BusinessWorks 6
Docker allows you to package an application with all of its dependencies into a standardized unit for software development. Stacked images are used for that, i.e. each dependency (e.g. the operating system, a middleware software, or an application) is added as its own image layer on top of another image. This is great because a lot of complex installation sequences start with the problem of getting all the right versions of all the right libraries on to your operating system of choice.
Therefore, Docker is a perfect tool for setting up TIBCO middleware. You configure a base image with a Linux OS (Windows support is developed right now by Microsoft, too). Then you add additional images for your required TIBCO software such as TIBCO EMS or TIBCO BusinessWorks 6. Finally, you can add one or more BusinessWorks processes. This image stack can then be built, tested, packaged, and deployed to one or more containers. For example, you might end up with one EMS messaging container, and one or more BusinessWorks runtime containers, each containing one or more BusinessWorks processes. EMS and each BusinessWorks container are developed, deployed, upgraded, and scaled independently from each other.
Further blog posts will show many more details including step-by-step tutorials and videos how to use Docker in combination with TIBCO right now. You can also expect great product announcements about new Docker features directly built into TIBCO software (development environment and runtime features).
TIBCO Engineering Uses Docker Already in Quality Assurance
While Docker is not supported as of today (August 2015) in TIBCO’s IDE or runtime deployments, it is already used by TIBCO internally and by customers. The biggest use case for Docker right now is Quality Assurance (QA). You can use Docker to share images, test cases across regions with ease as compared to heavyweight VMs.
For the last year, TIBCO engineering has been playing around with Docker in QA. We have a private Docker registry where new builds can be quickly tested. Not only do we use it internally—we have started to see customers adopt Docker containers – especially during QA, development and in CI/CD types of scenarios.
Docker with TIBCO Silver Fabric for Continuous Delivery
Except for doing local testing, serious integration of Docker needs a framework to manage and orchestrate these Docker containers. There is no magic; at some point you need a machine that will run a Docker Engine to run your Docker container. When you have 100s of them, you want a framework to take care of this. These machines can crash or be down for maintenance so you need a framework to handle this and have an automated 24/7 Docker container running. For a distributed application that requires a specific workflow, you need a framework as well.
A lot of tools emerge these days in the Docker community to manage hundreds or thousands of Docker containers. For instance, some early adopters use Swarm, Kubernetes (created by Google) or Apache Mesos (used by Twitter, Airbnb, Apple, and others) for Docker container management. Amazon also announced a cloud service for management of Docker containers a few weeks ago: AWS ECS (EC2 Container Service).
TIBCO Silver Fabric does a great job of supporting TIBCO customers that want to use Continuous Delivery for creating an elastic private, hybrid or public cloud for TIBCO products with automated deployments. TIBCO Silver Fabric and Docker containers are complementary. Silver Fabric provides features such as statistics gathering, log management, deployment discovery, HTTP port management, runtime condition, archive scaling, auto discovery of HTTP endpoint reported to a virtual router, and so on. Such product lifecycle and management is not done out of the box, it needs some “code” (script or compiled language). This what TIBCO Silver Fabric Enablers do—see for example the Docker enabler.
Docker’s Future at TIBCO
Right now, you can probably imagine how Docker, Microservices, and TIBCO software are a perfect fit for agile and flexible software development. Docker is still a very new technology. It will mature and get more traction and tool support in the next years. However, Docker is not just a buzzword right now! It is already used in many enterprises, at least for DEV/QA. Docker will be a key technology in TIBCO’s future strategy. More blog posts about “Docker and TIBCO” will come, definitely!