Sunday, August 3, 2014

System Modernization

Where people are today:


Do you use IBM Mainframes, IBM i (OS/400) based systems?  Do you have a large inventory of custom written COBOL or RPG programs? Do you use CICS 3270 or IBM 5250 green screen applications?

Do you have an inventory of old mainframe based 3rd party systems running on your mainframe or IBM i system?

Today, the cost of the hardware alone is a major factor driving many companies to seek alternatives.  The average mainframe runs between $4 and $15 million to purchase.  Add to that monthly software rental for zOS based IBM software often scaling between $30k and $100k per month and you have one huge base cost to justify in hardware and basic system software that does nothing for you other than to provide a base platform where you can install your own home grown systems or those purchased from various 3rd party vendors.

The IBM i environment is a bit less expensive with hardware plus OS base costs ranging between $20k for a small machine that does very little and usually requires many machines to support your company to about $2 Million for a large high end machines.  Again add the cost of 3rd party application software or the cost of maintaining in-house developed systems.

Add to all of this the cost of disaster recovery.  That can vary depending upon what approach you take.  Some companies operate their own backup or redundant data center and use various software products to replicate programs and data to the back up site.  Others use service bureaus with a strategy of loading backup media should a disaster occur.

Look at your people cost!  Even in small mainframe shops you will need several people dedicated to supporting the IBM software that runs the machine.  You need additional operators, capacity planners, performance managers, and other specialists that provide no value other than to keep the machine and its software running.

IBM i is a bit better in that respect as you can get buy with between 2 and 6 specialists for most small shops.  The number grows with the size of your IT organization.

Next, lets look at your existing staff.  If your primary legacy languages are RPG or COBOL, look at the people that support your applications.  Many of these folks are in their sixties and many at or beyond retirement age.  You can lose many of these people each year for the next several years.  Note that you probably have few if any developers under 50 years of age with the skills to support these applications.  This is becoming an increasingly high risk.  Additionally it is becoming exceedingly more difficult to replace these people when they leave.

Are COBOL and RPG applications dead?  Well, the fact is that thousands of companies continue to run millions of COBOL and RPG programs.  These programs were developed over the past 50 years and have been modified countless times over the years.  While many of your mainframe systems were extremely well designed when they were first created, the sheer number of changes by a large number of programmers over the years with varying skills have placed the maintainability of these programs at significant risk.

Modifying one of these programs today can result in production system failures, even with extensive testing prior to deployment.  Often times you make a modification only to find that the modification was required not only to one but many programs and that you missed some of these programs.

Many companies find that they spend well in excess of 80% of their IT budget on maintaining old systems.

The need to move away from old COBOL or RPG based systems as well as expensive proprietary IBM hardware and system software is increasingly clear.  Risks and Costs are increasing, it is becoming difficult to find experienced staff to support your systems and mandatory modifications can cause system failures.

There are cost effective alternatives.

Cloud Computing

The direction that many organizations are taking is to prepare for and move to cloud computing.  While there are variations in the implementation of cloud computing including some people who claim you can build your own cloud (not a good idea), the best definition is the use of computers hosted by a reputable 3rd party company with a strong financial footing that will survive changes in our economy.

This company must have resources spread across multiple locations with the ability to replicate your data and programs across multiple locations eliminating the need for specialized disaster recovery.  The vendor should provide automatic real-time failover meaning that if a location were to be destroyed (earthquake, flood, or other natural disaster) that your systems would continue function at a minimum of one and preferably several alternate locations.

In a cloud environment you pay a monthly fee for computer resources consumed.  You generally pay based on CPU usage, DASD storage usage, and BANDWIDTH (telephone traffic between your users and the computer sites).  Normally these companies calculate and offer you a fixed monthly price that covers up to a maximum CPU, DASD, and Bandwidth utilization.  The contract has provisions on how to charge for usage over the agreed upon maximums and allows you to immediately via vendor provided software to readjust your agreement increasing or decreasing your agreed upon usage in real time.

You then upload software to the cloud and run it using REST based API's.

In my next post we will discuss approaches on modernizing old legacy systems and the risks associated with various approaches.


References:
 IBM cloud efforts intensify as System z, Power hardware revenues tank
Gartner IT Spending Analysis