What is Tidal?
Tidal is a distributed batch scheduler built for enterprise use. A more popular term for this type of product is “workload automation” instead of batch scheduler. A lot of other companies make similar products. It is similar to products like Autosys or Control-M. The primary purpose of the TES is to schedule batch jobs. If you are familiar with the Unix/Linux utility Cron or the Windows utility Batch Scheduler, this will give you somewhat of an idea of what Tidal’s core functionality is. It can be thought of as a really advanced, distributed version of Cron but with a ton more extra functionality added on. At its most basic level, it does what Cron does. It schedules batch jobs. This means that it will run a command, script, or program at a defined time or on a defined, repeating schedule. This is what you would get with just Cron but Tidal takes it a few steps further. After reading this, you will be better equipped to answer people when they ask you, “What is Tidal?”.
Distributed
To start, it doesn’t just run on a single host by itself. There is a centralized server or set of servers. Agents are installed on hosts that you would want to run batch jobs on. These agents connect up to the master and allow jobs to be scheduled on those hosts. The jobs can basically be any command or program that you could run on that host. Hosts can be grouped into agent lists. Jobs can be assigned to a single host or an agent list. Running a job on an agent list gives you the option to run that job on all hosts in the list simultaneously or to load balance the job across all of the hosts on the list. When load balancing, the job could be run on a different host each time, depending on how you set it up. One of the advantages of this, besides splitting load, would be that if one host in the list goes down, all of your jobs keep running. This should give you a better feel for the answer to the question “What is Tidal?”.
Centralized Control with TES
All of this is controlled with a centralized GUI. You can see all of your agents, all of your job definitions, all of your running jobs, and everything else from a single GUI. You don’t have to login to each host to examine what jobs are running on that host.
Ton of Features
Tidal Enterprise Scheduler does a lot of stuff. It allows you to create customized calendars with complicated constraints. These are used as the schedules for jobs when they are configured. For example, on the simple end, you could create a calendar that defines a schedule of every weekday. If you wanted to get fancy though, you could create a calendar for a schedule that includes only the 3rd Monday of the month, excluding Holidays. What is Tidal? You should be starting to have a much concrete idea of this now.
Tidal Users and Permissions
With TES it is possible to define and control “runtime users” and “interactive users”. Runtime users refer to the users that a job runs as when it is executed on a host. This would typically be a service account. Interactive users refer to actual people who would login to the system. These can also be connected to LDAP or AD. Permissions for jobs and resources can be carefully controlled through the use of work groups and security policies. These can become quite involved and provide a great deal of “flexibility”.
Job Events and Actions
There is more though. Tidal makes it possible to define events and actions. An event would be something like a job completing abnormally or a job running too long past a defined time window. Jobs can be defined to launch actions whenever a specific event occurs. There is a large number of actions to choose from and each action can be customized. For example, an action could be to send an email, send an SNMP message to a monitoring system, or launch another job. A typical use case might be to send an email or an alert anytime a job fails with an error. To make this even more convenient actions/events can be grouped together into job classes. A job class can be assigned to multiple jobs or job groups so that the don’t have to be configured individually. What is Tidal? This was probably a good question to ask.
Groups, Variables, and Inheriting Things
Jobs are organized by groups. A group can contain jobs and other groups. These form hierarchies that can be used to organize things and make it easier to find stuff. This makes a lot of sense. For example you might have a top level group for each department. Then within a department’s group, the might have a sub-group for file transfer jobs and another sub-group for data processing jobs. These groups also make configuration more efficient. Jobs and subgroups can inherit settings from parent groups. This can be done at any point in the hierarchy. The calendar, time window, and agent can be inherited from a parent class. So if you want all jobs in a group to run on a specific schedule, you don’t have to manually set it up for each job individually. You can configure the schedule once and then just set the jobs to inherit the schedule. The job class and owner are automatically inherited from the parent group on job creation unless overridden. By this point you might be wishing you hadn’t asked, “What is Tidal?”. Or not, you might find it thrilling.
Another feature that comes into play is variables. Basic system variables can be used with job definitions. These include things like the current date, etc. Other, custom variables can be defined at the group level. These variables are made available to jobs within that group. This way you can define something once and use it in multiple places. You only have to change or update it in one place.
The Company
Who makes Tidal? Who is responsible for this product? TES used to be owned and distributed by a company called TIDAL Software, Inc. This was a smaller company and during this time things were a bit different. Licensing for one thing was different from how it is now. It is no longer owned by this company it has been taken over by Cisco. Yep thats right, the same super huge company that makes network equipment has come to possess Tidal. Since it is now a Cisco product, it has to now use a more Cisco oriented licensing process. It is now developed, supported, and maintained by Cisco. If you want support, you can get it by opening a Cisco case the same way you would for a network switch or router.
Tidal Enterprise Scheduler 6.x
Tidal does a lot of stuff. It does actually coordinate a ton of highly detailed operations in a distributed environment. In versions 5.x and older, it did this in a very stable reliable manner. You could count on it to do a lot of things. In version 6.x and above it might not be quite as stable. It can be perceived to have a lot of problems and be horribly buggy. There could be said to be major performance issues introduced as well as alleged, potential flaws in the core functionality. It has been reported to launch duplicate jobs (potentially corrupting data) and crashing unexpectedly.
It has been reported that customers may possibly already be migrating off of the product quickly since 6.x was released. With version 5.x becoming EOL you would have to either upgrade or migrate to something else. It is the opinion of some that this has actually created a new market for newer enterprise schedulers and that smaller companies who are relative newcomers to the market are being given a chance to grow.
The GUI - Productivity and Frustration
Here is our opinion on the GUI, pure opinion. Don’t believe us, test it out yourself with a production load. This is our perceived experience. No matter what version you use, we don’t think that you aren’t going to like the GUI. Sure you may be OK with it at first but in time you will learn to hate it. It lags so much and at exactly the wrong times. Do you have a long list of jobs or connections to scroll through? Get ready for it to have trouble scrolling through the list. Every time you scroll beyond the screen, it will freeze for a bit to load more entries. Scrolling through a long list takes forever. Want to scroll back up? It now needs to freeze again re-load the stuff that was just displayed on the screen a few seconds ago. Want to open a job definition and switch tabs? Get ready for a few seconds of lag. Need to update just one field across 45 different jobs? You need to do that one at a time. OK, so just do it real quick right? Power through it? Nope. Each one you open will lag turning a 2 minute task into a 20 minute task and pushing your blood pressure through the roof. Want to pick an agent from a drop down list? Get ready for more lag. So if you are asking, “What is Tidal?”, now you know.