Rob Young is a Senior Product Manager with the Sun Database Technology Group. He has over 20 years of database and application development experience with MySQL, Oracle, SQL Server, Sybase, and DB2. His primary responsibility is to work with the MySQL Enterprise Tools Engineering team on solutions that help DBAs and Developers scale their time, talent, and resources across the ever increasing number of MySQL servers he or she is destined to manage.
Having spent the first 15 years of my IT career in applications development and database administration I can say with utmost confidence that I invested much more time debugging problems and responding to issues than I ever did building new applications. While the teams I worked with implemented many new systems, most of my time was dedicated to ensuring that existing and legacy applications were not only running, but running at the highest levels of security, performance and availability. I also learned early on that even “bullet-proof” code is vulnerable when it comes to things like corrupt data, empty result sets, security breaches and database scalability issues. Often I would spend valuable time and effort debugging application code only to find that the true culprit was rooted in some obscure value or data returned from an external database call. I remember this happening one particular time and me calling the DBA on duty only to be told “that’s a known issue in SQL Server 6.5, you need to upgrade to 6.5, service pack 4 to correct the problem”. While I appreciated the “timely” information, I was less than enthused about the fact that I had an unplanned server upgrade on my hands and it had to be done immediately to restore a business-critical application to full functionality.
Given this scenario, it might be easy to conclude that faulty software (in this case database software) is one of the biggest problems a DBA or development team faces when it comes to meeting the SLAs they have with their end users. I do agree with this to an extent, but I acknowledge that software, regardless of the vendor or product, will always ship with bugs. Show stopping bugs aside, it is often not the defect in the software itself that spells trouble, as most bug fixes are delivered quickly once they are discovered. Factoring out problems discovered by bleeding edge adopters, most software related problems can be headed off and proactively avoided with timely information and proactive planning. Hence the value of timely information regarding maintenance releases, including specific information of what bugs have been fixed and when and where to get the upgrade, proves very compelling for those DBAs and developers with little to no bandwidth for the type of reactive fire drill described above.
The good news is MySQL Enterprise takes the guesswork out of deciding which version of the MySQL server you should be running by providing regularly scheduled Monthly Updates and quarterly Service Packs for the Enterprise Server. In addition, it automatically keeps you up to date on all new MySQL releases as well as updates to the environments in which MySQL systems are developed, tested and executed, ensuring you can plan for and avoid problems that may impact project work or the availability of production applications.
First, let’s get a quick understanding of the MySQL Enterprise components and how they work. In short, MySQL Enterprise is MySQL AB’s commercial offering for businesses who want to standardize on the most up to date, stable version of MySQL. To this end, it provides the software and services needed by these companies to be successful with MySQL. MySQL Enterprise is comprised of the following:
For this particular article I will focus on the MySQL Enterprise Monitoring and Advisory Services, specifically the Update and Alert Service.
To understand the MySQL Enterprise Update and Alert Service, it helps to understand the difference between the Enterprise and Community Servers. First, it is important to understand that the Community Server is the foundation for the Enterprise Server. Only after the feature set for a major version of the MySQL Community Server is battle-tested and hardened by the MySQL Community and internal QA testing is the code branched to create the Enterprise Server. At that point the Enterprise and Community Server binaries begin to diverge substantially as shown below:
Figure 1 - Enterprise/Community Server Code Branch
As seen in Figure 1, the key difference between the Enterprise and Community Server branches lies in the timeliness and content of each of the underlying binaries. The Enterprise Server feature set remains fixed with those features that have matured as part of the internal and external validation processes mentioned earlier. Additionally, the Enterprise Server receives regular, predictable maintenance releases and bug fixes via Monthly Updates and cumulative quarterly Service Packs. While the Community Server receives the same bug fixes that are implemented in the Enterprise Server code branch, the Community Server binaries are released on a less frequent and predictable schedule and include new features and enhancements that are primed and ready for the next round of Community validation.
So why would this matter to you as a production DBA or developer acting as project DBA? The answer lies in the conservative approach most DBAs take when it comes to interjecting change into an already stable environment. Whether it is an existing application or a new system on the cusp of production, the last thing any DBA wants is to introduce any form of change that alters the underlying data structures and relationships of a stable database. While the Community Server helps you as a DBA or developer explore new features and functionality of MySQL, the Enterprise Server allows you to update your development and production systems with the most current version of MySQL confident that, outside of bug fixes, nothing else has changed. You can also rely on the predictability of “set your watch by it” Monthly Updates and Service Packs to help you plan your MySQL upgrades at a frequency that fits your comfort level.
Most of the IT folks that I know have very little time in their day for information not directly related to helping them complete their work. In fact, one of the biggest challenges most of us have is separating the wheat from the chaff when it comes to information overload. This is problematic for production DBAs as we sometimes miss important information that could help squash an ongoing support problem we are dealing with. For development teams valuable information that could cut development time or that may head off a time-consuming jaunt down debugging lane often gets lost in the shuffle of daily activities.
With this in mind, the Update and Alert Service works the way seasoned IT professionals work. It uses customer and environment specific profile data to filter information on MySQL Enterprise updates and to send notifications and alerts to those MySQL Enterprise customers who are directly affected by a new release of the server or other MySQL products. So what does that mean to you from a practical standpoint? Let me ask,
Did You Know Innodb Performance Bug #15815 Was Fixed in 5.0.30?
If you said yes, chances are you found the information in one of 3 ways:
Update Alert from MySQL AB – MySQL Enterprise Server 5.0.30--enterprise has been released
Within the content you would have found this describing the fix and a link to the details:
InnoDB showed substandard performance with multiple queries running concurrently. (Bug#15815: http://bugs.mysql.com/15815)
You would also have seen a listing of the other 90+ bugs that were fixed in this specific Monthly Update version of the Enterprise Server and a download link for the new Enterprise Server binary to boot. While this is a simple example, it is very representative of the type of practical, valuable information MySQL Enterprise regularly provides.
The value of the Update and Alert Service profile driven approach is that you can also use it to stay on top of updates to all of the MySQL products you are currently leveraging. In additional, you can also define profiles to receive updates, alerts and notifications about the environment in which MySQL runs. This is made possible by defining and maintaining the currency of your MySQL Enterprise Software Update, Technical Alert, and Corporate Server Update profiles using the MySQL Enterprise web site.
Figure 2 below shows the Software Update profile I have set up for the versions of the Enterprise Server and other MySQL products I have deployed in my personal “datacenter”. Notice that the list contains references to the specific versions of the MySQL tools, Connectors, operating systems, database features and storage engines I make use of. It also includes entries for the MySQL Monitoring and Advisory Service components being used to monitor my MySQL environment (see this DevZone article to learn more about this http://dev.mysql.com/tech-resources/articles/mysql-best-practices.html ).
The thing I like about this key benefit is that I know as soon as a new version of the MySQL Enterprise Server becomes available for download, and further I can dig into the details of the new version to see if there are any bug fixes that directly affect one of my applications. Because the Monthly Updates and quarterly Service Packs are cumulative, you have the option to not upgrade until you see a relevant fix appear.
The Software Update profile is also used to ensure you know about updates or problems with the OS MySQL. For example, for my Windows environment I get updates on security issues, viruses, Windows updates, etc. that are specific to the Windows 2003 Server.
Figure 2 – Software Update Profile
As mentioned earlier you can also use the Update and Alert Service to keep up to date on the environment that MySQL is developed and tested in as well. MySQL Enterprise allow you to customize the updates and alerts you receive in these areas down to the application and web servers, and development IDEs and languages you are using. As new information about any of these things becomes available you are notified. Figure 3 shows my Technical Alert profile:
Figure 3 – Technical Alert Profile
Another benefit of the Update and Alert Service is to set up profiles for groups of servers across an environment. Currently there are two sets of servers in the configuration that I use everyday, each with its own specific maintenance needs. Using my Corporate Server profile (Figure 3) I have set up specific groups for my Windows development machines and my Linux production servers. This allows for targeted information for the systems I have running on MySQL and aggregates updates and alerts that I otherwise would receive in separate threads.
Figure 4 – Corporate Server Update Profile
Managing change is a huge challenge for today’s DBA and development staffs. Whether it is a production server or a key development environment, when servers are stable they are best left alone. If you are charged with maintaining the performance and availability of these environments you need assurance that even beneficial changes are managed so you can proactively plan your upgrade path. To this end, the true challenge is access to the right information, at the right time, to ensure you do the right things.
The MySQL Enterprise Update and Alert Service is designed to help keep your MySQL systems available and running at peak performance by proactively alerting on updates to MySQL and the environment in which it runs. Monthly Updates and Service Packs delivery regular bug fixes to the Enterprise Server ensuring your production and development servers have the most up to date, stable version of MySQL running at all times. As a busy DBA, I appreciate that while MySQL Enterprise sends out many, many updates and alerts, I only receive those that are specific to my use of MySQL. This really helps me “wade” through the right information, at the right time to determine the right things to do.
For more information on the MySQL Enterprise Server, the Update and Alert Service or the other MySQL Enterprise features, please visit the MySQL website at http://www.mysql.com/products/enterprise/server.html where white papers, demo’s and more are available. And if you’d like to try out MySQL Enterprise for yourself, please contact a MySQL Account Manager.
Thanks, as always, for supporting MySQL!