What is our primary use case?
It's not the Db2 LUW, which is Linux, Unix, Windows. It's the mainframe. It's the active-active, high availability environment that we need for the aggressive SLAs that we've got here in Saudi Arabia.
What is most valuable?
I like that its true active-active. For example, if there are two instances within a cluster, we can take one of them down and there's no failover or switch over. There's no primary and secondary, it's true active-active. We can take one side down and we can upgrade that with new maintenance or a new version, obviously testing coexistence beforehand, without impacting the business.
In a distributed world, you've got lots of different prerequisites you've got to be managing here. Not just the database - possibly the VMs that the database is in and the OS that the database is running on, Linux or Windows, as well as the storage.
I like its high availability. It's well supported by IBM. It's used by a lot of the larger business organizations globally within banking, finance, credit cards, insurance, retail, and government.
We're proving that it's got that high availability and robustness. We can prioritize the workloads that are coming into that database management system, using the features of the IBM z/OS environment. That way, if this transaction's coming in off the network that is in and out, they will be given priority over somebody doing a lengthy query that's coming in from the network that you would consider to have more batch-like tendencies.
We like that it's using separate specialized CPU engines to manage the locking and the sharing of data via a coupling facility. This stays on the CPU that we would be licensed for. We call them specialized engines that you don't license. They're not paying your licensing costs. Whereas, for example, in other database management environments for high availability, they communicate between themselves over an IP network. The CPU would be higher for them. There's no special process or capability that allows taking that CPU and that communication between them. It has to, if you've got four nodes of a database management system, one of them would have to lock on a row in a table or whatever, it's going to have to propagate that information to the other three nodes on the mainframe side. It would just put it into what we call a coupling facility, and the other Db2 members or instances in the same cluster would be able to check that and see that, no, we can't update that yet, we'll have to wait.
There are lots of different things we use it for. We use it for data replication, which means that we've got an always-on alternate Sysplex cluster several thousand miles away that is propagating the data to that Db2 over there using replication services at the software level rather than, if you physically replicate data and the Db2 or the Oracle environment, physically using storage replication, you've in effect got a cloned copy of that environment. It's going to fire up at the remote site, looking for the network that's at the local site. There are lots of things you would have to do there to do that. Plus the RTO time to actually get that alternate Db2 at the DR side could be 40-45 minutes depending. Whereas we can do this capability and we call it always on, where the RTO is about a minute.
What needs improvement?
The good thing is that there are improvements coming with later function levels for the z/OS Db2. I'd like it if, with the operating system that we've got, z/OS, on the mainframe, it would allow us to refresh the hardware to run Linux dockers on the mainframe. This means this might give us opportunities for different ways of coming into the Db2 environment in the future. We just want a bit more integration with Linux. That said, we are already seeing Linux more readily available on the mainframe environment.
Not only have we got the premium operating systems on OS. We can run LPARs on the same mainframe footprint that is also supporting Linux. This is what has improved and made the mainframe environment more competitive.
We're also looking at AI for Db2 as well, and machine learning for the future. We know that AI has come out, that we're going to get that, and we're going to evaluate that product next year for Db2.
That said, I haven't got any real complaints about Db2 on the mainframe. For the most part, a lot of the problems we have nowadays are to do with communication between the various teams that you would class as stakeholders.
For how long have I used the solution?
I've been working in a mainframe environment since 1991. I got involved in Db2, in the mid-nineties back in the UK. I've supported the database team regarding the system programming side of things, however, I used to be involved in it quite a lot operationally as an ops analyst lead. I've not actually worked with other database management systems on other platforms. However, some of my team support them. I occasionally have to look at these sites to understand the products and what their advantages and disadvantages are.
What do I think about the stability of the solution?
Sometimes it's how you go about system management processes within the environment, and not always the product itself. If, for example, we're going to put maintenance onto the Db2, we would do that in a sandbox environment first. We would test that the Db2 that we've put the maintenance on can exist or coexist in the same cluster as the ones we haven't put the maintenance on. That's the first thing.
We would test functionally and can regress that maintenance in case we introduce a defect, or it causes an application defect. Coexistence and regression are very important in the sandbox.
After we've signed that off, we would move it into the development environment where they've got all the different development services, integration, UAT, dev-test, pre-production, model production, et cetera. We would let the development workloads test the Db2 instance there and see that that's working. If that's okay, then we upgrade the other Db2 instance in the cluster. Finally, we put it into the production environment.
Therefore, you're not going to do a big thing. You're putting your maintenance in on 50% of the database environment so that you've got ability and capacity on the other side where you haven't made that change. And you've already proved coexistence and regression, should there be a defect identified through the application.
I like the way that Db2 allows us to do that. Certain DBMS environments, you have to upgrade them all to the same level. Some of them have to be patched quite regularly due to security. However, in the mainframe, it's not too bad.
When I first came here, they were putting the maintenance and the new release, they would do it across the whole cluster. Which, if we had a problem with some of the applications that are running in there, we would have to regress that, which would probably mean an outage. There are operational or system management processes that we've tuned and we've improved so that we're mitigating against any service disruption.
The way the IBM z/OS Db2 environment's designed does allow coexistence. It does allow us to upgrade 50% of it, or 25% of it, and leave it running alongside one that's back level - as long as we've proven our coexistence.
What do I think about the scalability of the solution?
We've got a two-way Db2 cluster at the moment. With two members in that cluster, we could have up to 32 members in that cluster. It's got outward scalability as well.
It's got the ability to have up to 32 members within that data sharing group or that cluster. So you could run one of these on a separate Z server, Z mainframe, which would give you quite a lot of CPU capacity. I don't know whether there are any environments out there that would need or have that. Some of the world's largest banks - maybe in America or in Asia - might have a configuration like that. For us, we're across multiple processes, and we've got the ability, should we enable for cloud at a later date, to be in a position where we can just scale-out with little disruption, by just adding more LPARs with Db2 members in. We just have to make sure that we've got the processing capacity on the mainframe to support the additional workload.
How are customer service and support?
IBM technical support is pretty good. We haven't had issues with them from the operating system, from the KICKS, from the MQ, from the Db2. When I compare it to, for example, Oracle tape, we don't get the same level of support there. There's a lot of collection of log information and things like that. We have to escalate that case or that incident to the second or third level within that organization. We tend to find that IBM, on the other hand, is pretty good with that. I can't comment on other areas other than experience with Oracle, which sometimes isn't that good.
How was the initial setup?
The mainframe environment does not that often require that we have to set up another Db2. If you're creating a brand new Db2 cluster or data sharing group, then there is a bit of work in that.
The IBM manuals for this and our localized documentation assist the engineers and consultants in building a Db2. I don't consider any issues regarding a build of a Db2.
The mainframe environment from a security perspective is one of the key fundamental selling points of the mainframe environment. It is relatively secure assuming that the security people that administer the RackF database, the external security database, are actually configuring it right. Then we deploy role-based access controls. When they're doing this sort of activity database, people would have to liaise with other areas within the infrastructure and support to configure that Db2. Obviously, with any Db2 you need security permissions. They would need to discuss with the storage team how much disc space they're going to need and to discuss with the performance team and capacity team to make sure that they're going to profile that environment. They would need to discuss with the automation team to make sure that the Db2 is shut down when we need to shut the system down and that it's started up properly when the system's reloaded, or if it is in an unplanned activity, that we can restart it in light mode. Furthermore, the automation tool is monitoring that Db2 instance to make sure that it's healthy. Ultimately, there are lots of different teams that would be involved in this.
For the most part, the setup is simple. If somebody wants a new database or schema, we could just quickly do that within that environment. If we need a brand new, separate Db2 environment, that would be more complicated, however, we have the procedures and processes in place for that.
We could have just one systems programmer doing that maintenance. That said, from my perspective, I engage a lot of the teams. Once we've put that maintenance into the development environment and we leave it for a week against one member and leave the other member back level, we would do full performance analysis to see that, with all the transactions that are running there, there's no additional CPU and there's no deterioration in response time and that the Db2 member itself is looking healthy, it's not having any resource shortages, there's no virtual memory or physical memory increases or deviations or anomalies.
We'd engage with the performance and capacity team. I recently engaged with the distributed team, for example, the middleware teams, to make sure that if anything is coming off the web through the web servers, they are aware of our change so that they can monitor and support us.
While it's one person that's doing the change, he might be working with a few junior engineers to do training. We tend to engage a lot of teams across the activity to make sure that everything looks okay and we're not impacting SLAs.
Furthermore, we have a 24 by seven operations team and they do all the operational side. You wouldn't get a Db2 systems programmer in production stopping and starting the Db2. That would be done by the operators.
What's my experience with pricing, setup cost, and licensing?
In the 90s, there was a big problem with the IBM mainframe environment and there was a big push to move the middleware off the mainframe and put it on cheaper distributed hardware. What happened then was the workload was coming in over the network. This was what we called dynamic SQL coming into Db2 - which was a bit more resource-intensive to what it was with traditional legacy style workloads that were static SQL coming into the Db2 environment, that we could see the CPU on the mainframe.
In the old days, in the 90s and before that, we were charged quite expensive amounts for licensing the software on the full capacity of the mainframe they're running on.
Now, what they introduced mid-nineties/late-nineties was these specialized processes like a coupling facility. There was a Z integrated information process called a zip. This supported workloads coming in off the network from web servers coming into Db2, and we know that these workloads are traditionally resource-intensive. They're not as efficient as static SQL. This meant that in the old days, our licensing costs would shoot up as we would have to upgrade the mainframes and it would make it more expensive.
IBM introduced these specialized processes and the zip allows the workload to be dispatched on that specialized processor. Not all of it - maybe 40% to 50% of a transaction is eligible to be dispatched on a zip. This means that we don't need as much of the standard mainframe engines to support the business workload. Anything that's running on a zip, we don't have to pay licensing fees.
This was something that made the mainframe more competitive again. Furthermore, with the mainframe we have now we can have the forerunner to virtualization (VM), which is what I started on back in the early 90s, known now as ZVM. Having ZVM means that you can run virtual machines in that OS. It acts as a hypervisor. It runs virtual machines in that OS that could be separate Linux instances.
The flagship or premium operating system on the mainframe is z/OS. It used to be called MVS, multiple virtual storage. We're going to be able to evaluate next year within Linux Dockers, in them LPARs, alongside all other tasks that we've got running such as Db2, such as KICKS. It is going to make it really interesting in the future.
Which other solutions did I evaluate?
We have been comparing Oracle RAC against the z/OS Db2.
I tend to see that there's a lot of bias for people, depending on, for example, if they work for an Oracle database management system. In that case, you tend to get a lot of people that are biased towards the Oracle. Likewise, you'll get that with Db2 LUW or Db2 z/OS. They don't tend to know what the other environment can do. That said, looking at it from an infrastructure and system programming background, as my background is really system programming and storage and hardware infrastructure, it's trying to get a general view on what the database management system can offer for SLAs, high availability when it's patched, and how often it would have to be patched. I want to know, for example, if there are a lot more security defects and fixes with one environment as opposed to another so that we're not interrupting our hosted business in the environment when we're doing our maintenance and new releases of software.
What other advice do I have?
I'm a partner of IBM. I used to be an IBM employee until August when I switched over to a partner company.
I'm not would say totally biased towards IBM. We do like to look at other vendors' hardware and software. For example, we use Oracle hardware on the mainframe environment for the tape. Oracle took over Sun which took over Storagetech, which is a mainframe and distributed tape solution. We do have a mixture of IBM and non-IBM software and hardware.
I'm a technical manager at the moment, and I'm supporting a team that's running Db2 across multiple sites within the Kingdom of Saudi Arabia.
We are moving to the private cloud, however, at the moment, it's on-premise between multiple data centers dispersed within Saudi Arabia. They don't want to be looking at any cloud services from suppliers where they do not have control of the data. We are looking at maybe next year a private cloud infrastructure for the mainframe Sysplex environment.
I'd advise new users to make sure they know what you're doing. Don't guess. There's a lot of people working out there in IT that like to tell people that they know what they're doing. From my experience, they don't know what they're doing, and they can make a complete mess of it. I see it a lot over here in the Middle East. They need to be aware of what they're doing. They need to be following proper procedures and processes.
When they're upgrading to the production environment, they should be raising a high severity ticket with the supplier. For example, if we're changing the version of Db2 in our production environment on 50%, or one member, I would inform the team to raise a high severity ticket so that we've got IBM support on hand should we encounter any anomalies. I would be saying that the same to the Microsoft SQL team, to Db2 LUW, to Oracle, that sort of thing. That would mitigate risk.
They should also properly test it. They should make sure that they follow all the functional tests, which we call IVPs, which are scripted tests that you can run to prove that it looks okay. You should be engaging with the application team in non-production first to see that they're not having any problems with the application. You should try and see if there's a performance team or monitoring team that's able to look at the performance of it. You should be talking with the middleware team, like the webserver teams, the .NET, the KICKS, and making sure that all their processes are working with that database. And then you migrate it into production.
I'd rate the solution at a ten out of ten. The product, the support of the product, the high availability that it offers, the active-active, plus how we're managing it, has been great. We're having fun with it.
Which deployment model are you using for this solution?
On-premises
*Disclosure: I am a real user, and this review is based on my own experience and opinions.