Learn about nine new ways OpenEdge 12 brings you towards 99.999% database availability.
“Run Forrest Run!” yells a young Jenny Curran at her friend; the often bullied and socially inept Forrest Gump, as he attempts to elude his tormentors one last time. What makes this scene from the 1994 classic film remarkable is that although young Forrest’s movement was severely hampered due to the leg braces he wore, those braces actually fell away during this last chase, freeing him to take off at unbelievable speed. The motivation to escape his adversaries revealed one remarkable unknown; Forrest could run really fast.
As the story unfolds, we find that Forrest’s penchant for running proves most advantageous. In spite of his limited mental capacity, Forrest’s athletic prowess earns him a football scholarship to the University of Alabama where he becomes a top running back and an All-American.
Running served Forrest surprisingly well. Applications that run well serve your business… extremely well.
Applications are built to work (okay that’s a no-brainer). The challenge is keeping your applications running optimally and held to a ‘five nines’ service level, or up and running 99.999% of the time. Software bugs, power surges, database tuning and hardware malfunctions are just a few of the things that can keep applications from achieving this goal. Let’s take a look at just what 99.999% availability looks like over the course of a year.
Downtime per year |
Downtime per month |
Downtime per week |
Downtime per day |
5.26 minutes |
26.30 seconds |
6.05 seconds |
864.00 milliseconds |
The five nines goal is challenging, however, with dedicated adherence to best practices, the right tools, platforms and functionality, this standard can be achieved. Below are some of the best practices and new features available in the upcoming OpenEdge 12.0 that will help the process towards five nines success. Each highlighted new feature below will get you one step closer—or nine steps closer in total, to five nines!
Let’s start with code quality checks. Code quality checks allows software developers to automatically scan the code for any obvious flaws. This is a great way to catch errors or deficiencies (bugs) that the programmer has missed. Performing code quality checks helps the code run better once in production, thereby decreasing the chance of software issues while in use increasing uptime.
During a race, speed is critical. During an application’s run time, application speed is also critical. If an application begins to slow down in production, a performance profiler tool will monitor the application to provide data to identify where the application is underperforming.
An enhanced Instrumentation-free Performance Profiler, integrated with Progress Application server (PAS) for OpenEdge 12.0, does the same thing with the added bonus of monitoring the application while keeping the developer from adding additional code into the running code. This allows for application troubleshooting while the application is running in the production environment rather than offline.
Great runners need to train regularly to compete at a high level. Between training sessions and races, athletes must condition themselves to maintain their good health and perform at their highest level. Your application is no different. Applications also require regular maintenance to perform at their highest level. The Online database maintenance via SQL feature in OpenEdge 12.0 allows database admins to change many of the database parameters without having to take the database offline. So, the database stays up and running.
Every four years the summer Olympics takes place. Athletes from all over globe converge in one location to compete for medals, product endorsements, Wheaties box covers, and bragging rights. My favorite events are the relay races where the best runners from around the world go head to head. Every now and then an athlete gets hurt or is disqualified, leaving the team and a nation heartbroken. Wouldn’t it be great to have a clone of that athlete to take the place of the fallen or disqualified one so the team could still compete at their best?
OpenEdge Replication allows creation of that clone by copying every change to your database and storing it elsewhere in the event it’s needed. Thus, you have a true copy of your database at another location away from the disaster. Database cloning should be a key component of your disaster recovery plan. Things like power outages, fires, natural disasters, data breeches, and even employee sabotage can wreak havoc on your application data and destroy your business.
Best practices suggest replicating two copies of the data for storage at off-site locations. Small to medium businesses may find this practice cost prohibitive, even though it practically guarantees that data is kept safe from harm. Replication transition control improvements in OpenEdge 12.0 make it seamless to switch over to use a clone, often useful when the administrator needs to make updates to the primary system (planned maintenance). They can then transition back quickly and easily, helping to help reduce downtime and to keep the application on track and running.
Through OpenEdge 12.0’s Replication After Image (AI) file streaming, changes to the database are transferred (streamed) to the replicated or secondary system to keep the two systems in sync and to minimize, if not eliminate, any data loss should the primary system fail, and processing is transferred to the replicated system.
On a four-person relay team, runners are arranged in a particular order or sequence based on their speed. The strategy often used is: second-fastest, third-fastest, slowest, then fastest (anchor). The first runner takes the baton and runs as fast as they can to hand off the baton to their teammate. In OpenEdge 12.0 Replication Update Sequence Cache, sequences are handed off and applied automatically from the primary database (a teammate) to the replication database (another teammate) without the need to stop and restart the replicated database.
As exciting as it is watching runners compete, the commentators oftentimes make the competition even more interesting with their colorful commentary and witty banter. Virtual System Tables (VSTs) are the Howard Cosell of the database world, as they provide information about the database not the data itself.
OpenEdge 12.0 includes updatable VSTs on the replication database. So, if the primary database fails and the secondary database is needed, the VSTs can be updated by the system and used to run on the replication database. Updatable VSTs in the replication database are a new feature in OpenEdge 12.0 and provide another way to shorten downtime in order to meet the five nines standard.
No matter how well a runner trains and maintains their good health, injuries in sports occur. Your application, no matter how well you manage it, will experience downtime. As we have mentioned, the amount of downtime depends upon the best practices followed, the tools used to troubleshoot the application, and the replication strategies employed. Improved error messaging in OpenEdge 12.0 ensures that detailed information concerning an error is provided. This detail serves as an aid to quickly identify the problem and get the system back up and running yourself.
Being in tune with one’s body is key to a long athletic career. Knowing when something isn’t quite right and seeking medical advice can mitigate or even eradicate issues before they become major ones. The PAS for OpenEdge HealthScanner is designed to assess the application server’s health. The HealthScanner collects statistics that can indicate potential problems in cases where the unhealthy instance of PAS may need to be taken out of service before a failure occurs. HealthScanner is highly customizable and can be configured to check a myriad of things such as server memory, disk space, CPU health, and more, and return an overall score as an indication of how well the server is performing.
The HealthScanner data can be invaluable in determining potential failures so that action can be taken, either by system administrators, or programmatically if such logic exists on the load balancer. For example, if the HealthScanner score is below a certain number, a script could be run to start up a new version of PAS, route all of the new requests to the new server, and allow the original PAS to complete all pending requests and then terminate .
Reaching the five nines threshold of high availability is challenging, but Progress is committed to helping you achieve it. With a well-developed plan that includes a calculated replication strategy, application server health scanning, online database maintenance, continuous quality checks, and most importantly, an upgrade to OpenEdge 12.0, your OpenEdge applications can get at least nine steps closer to the highly coveted 99.999% uptime goal.
Look out for OpenEdge 12.0 to be released in the coming days. Read more about what to expect here, or register for our webinar on February 27th to find out more.
Rob is a Senior Manager of OpenEdge Product Management. He has been a member of the Product Management team for 12 years, gathering user requirements and organizing product releases to meet those requirements. His primary technology focus is on the ABL language and IDE, Application Server, integration technologies, application security, mobile technology and Business Process Management (BPM).
Let our experts teach you how to use Sitefinity's best-in-class features to deliver compelling digital experiences.
Learn MoreSubscribe to get all the news, info and tutorials you need to build better business apps and sites