Friday, November 2, 2007

The Incredible Growth of Open Source

Getting Hooked on Open Source

Open source is kind of like M&Ms. It's hard to have just one. Once people understand open source, they start looking at more ways open source can be used in their organizations. The cost savings can be dramatic. In the old days people would say "You won't get fired by choosing IBM". Those days are over. You may not get fired by buying a large vendor solution, but a lot of people may get laid off or outsourced due to large vendor costs and licensing.

Open source by definition is a "sharing" environment. Every class I teach students are sharing different open source products they use for Wikis, ticketing systems, communication, monitoring software, operating systems, database servers, application servers, development environments, etc. What's more they are also sharing scripts, ideas and planning on collaborating more after the class ends. This is a very cool environment for a technologist.

The Microsoft Word Effect

I look at it as the Microsoft effect. You go out and buy Microsoft Word for $329.99. Most people use Word for setting bold, a few fonts, spell checking, italics etc. People pay over $300 for one vendor (Microsoft) product and 95% of all users don't even use 5% of that product. I went and bought iWork that has Pages, Keynote and Numbers, the Apple equivalents of Word, PowerPoint and Excel for $99 for a five system family pack. This wasn't an open source solution, the point being that why keep paying large amounts from vendor software if you are not using a lot of their features. Arguably by going to iWork I not only saved a lot of money but also got a lot more functionality that the vendor (Microsoft) product. It took being able to think out of the box and thinking I had to buy a large vendor product.

I also bought Notebook software for my Mac to help keep myself organized and to take notes. One of my students then showed me Tiddlywiki and I can use it for free on all platforms. I keep a copy of it on my flashdrive and I take it everywhere with me. There are a lot of points if you look at open source, you have a lot more options and will likely save a lot of money.

Open Source Can Dramatically Reduce IT Budgets

Companies are seeing that open source solutions such as Linux, MySQL, JBoss, Apache, Eclipse, RT, etc can save them tremendous amounts on their IT budgets. If you need all the feature functionality from a major vendor then it makes sense to pay their prices. In most companies their are numerous project areas where open source can provide large cost savings and still meet core functional requirements. Using open source may not only keep you from getting fired, it may also keep most of your employees from getting outsourced or laid off.

The Fear of Open Source

Don't misunderstand what I am saying. The features provided from the large vendors can be very important to an organization. There is a reason you pay large amounts of money for large vendor features. If you need an aircraft carrier and you have the money for it, go get it and you'll sleep soundly. For extremely large mission critical systems I would highly recommend looking at the best solutions money can buy if you need it. What I'm saying is if you don't need an aircraft carrier then look for the right sized solution that will meet your needs.

A lot of managers are scared to move off the security of large vendors and to look at open source. In the future you are going to see managers looking for more flexibility, nimbleness and the need to manage costs more effectively as growth occurs.

Globalization has allowed large corporations world wide to compete with U.S. companies. Open source is growing significantly in popularity in places like Europe and China. With low cost solutions like open source, in the future you will see smaller companies begin to compete more effectively in the U.S. as well. U.S. companies need to look not only at the strength and flexibility of the IT organizations but also at the costs of their IT organizations to compete locally as well as world wide.

Good Articles on Open Source Growth

Different industry groups are predicting up to 27% growth annually in open source software by 2010. Small businesses have always been a core component of the U.S. economy. Small businesses and individuals can often compete against much larger companies at a fraction of the large company costs by using the Internet and open source. Why shouldn't large organizations also leverage these costs benefits? Especially since your competiton is probably using open source.

Here are a few interesting articles on open source growth.
I always welcome hearing about different open source solutions.

MySQL and VMWARE

VMWARE keeps popping up in more and more clients I go to. Virtualized environments are continuing to evolve. Companies are looking for more ways to stream line costs and improve efficiency and virtualized environments are one way to accomplish this.

Observations on virtualized database environments is that this is still an area that needs to mature a lot before being put in production environments. Don't get seduced to the dark side unless you understand all the issues. Thoughts on virtualization for MySQL:
  • Production databases - No way, nope, nyet, nien, bu shi, iie.
  • Test databases - When bench marking and performance tuning are not factors at the time, virtualized environments can play a role here. Has to be used in a controlled environment.
  • Development databases - Extremely efficient and cost effective.
I personally run Apple MacBook Pros and enjoy working with VMWare Fusion and Parallels. In my simple test environments I am running MySQL Servers, Oracle Servers, Eclipse, JDeveloper, Apache, JBoss and the Oracle Application Server in Solaris, Enterprise Linux and Fedora 7 environments. I'll eventually load a version of Vista. I save my VMs and then it is really easy for me to create a new copy of my VM from a backup. VM is a great environment for new MySQL DBAs to play around with different configurations, running multiple servers, etc. DBAs can also use VM's to create a new test or development database environment in a matter of minutes.

Definition of Virtualization

We are all seeing that virtualization will be an area of continued growth. Virtualization from Wikipedia:
In computing virtualization is a broad term that refers to the abstraction of computer resources. One useful definition is "a technique for hiding the physical characteristics of computing resources from the way in which other systems, applications, or end users, interact with those resources. This includes making a single physical resource (such as a server, an operating system, an application, or storage device appear to function as multiple logical resources; or it can include making multiple physical resources (such as storage devices or servers) appear as a single logical resource."

As you are well aware, each vendor has their own definition of virtualization. In the Wikipedia definition (above), they define platform virtualization, resource virtualization as well as some good virtualization examples.

The Role of MySQL in Virtualization

As databases continue their rapid growth and proliferation, organizations are looking for more ways to reduce hardware and software costs. Large vendors don't want customers to look at hardware and software from a commodity perspective. However, powerful open source solutions are giving organizations a lot more flexibility in purchase decisions. Open source solutions offer much more cost effective solutions with MySQL, Linux, Intel (and AMD) hardware with muliple CPUs. We can definitely expect that solutions like MySQL and Linux will play a large role in virtualized environments today and in the future.

There is also a new forum at http://forums.mysql.com on discussing VMWare and MySQL if you have comments.

Thursday, November 1, 2007

MySQL: Favorite 3rd Party Software

I've started a new poll on popular 3rd party software used with MySQL. I've recently been involved in a lot of discussions on favorite software used by MySQL DBAs. I realize there are a lot of great solutions. I narrowed the list to a few software solutions that I've had a lot of discussions about in the last few weeks with students and clients.

I decided to restart the poll by adding SQLYog. Below are the initial numbers before restarting the poll. I won't restart the poll again. These numbers will be included in the summary blog after the poll closes.
  • Nagios 6
  • Cfengine 0
  • Navicat 3
  • Quest (Toad) 6
  • Zmanda 0
  • Embarcadero (DBArtisan) 1
  • Innodb Hot Backup 1
  • Other 6
As databases proliferate in numbers, companies are struggling more with deciding what is the right tool to monitor and manage our databases. Especially with MySQL which is likely to run in a heterogeneous environment. Do I use open source tools or do I use tools like BMC, Quest and Embarcadero to help me manage a heterogeneous environment? I've been involved in a lot of discussions on this in the last year. I hope you are lookig forward to seeing how the numbers shake out as much as I am.

I hope you don't get frustrated if you don't see your favorite tool on the list. I wanted to keep the list to a top ten and on software that has been hot in a lot of conversations lately and make sure this wasn't just my list. At the same time Lake City, CO in the San Juan Mountains did not make my top ten list in CO, still not sure how that happened. Lake City, CO is an absolutely beautiful place in Colorado.

In this list is a mix of tools very popular in heterogenous environments, mixed with tools that are popular in the open source world. It includes development tools, DBA and monitoring tools. The goal is to get a feel if organizations lean towards heterogeneous tools or if for MySQL they focus on tools specific to MySQL environments.

Another issue not addressed by this poll is the management of multi-tiered infractructures which brings in the application server and web server. The whole question of how to manage multi-tiered infrastructures is a completely different poll.

The list includes:
  • Nagios
  • SQLYog
  • Cfengine
  • Navicat
  • Quest (Toad)
  • Zmanda
  • Embarcadero (E/R studio)
  • Innodb Hot Backup
  • BMC
  • Other
I did not include MySQL Enterprise Monitor or MySQL Query Browser since they are MySQL tools. The goal was to see what products outside of MySQL stand out.

Poll on Favorite Development Environments for MySQL

I did an informal poll on favorite development environments for MySQL and I was surprised to see how PHP seemed to be signiciantly more popular in MySQL environments versus Java, Ruby on Rails or .NET. Here are the results of 99 responders:

  1. PHP 52
  2. Other 23
  3. Java 13
  4. Ruby 5
  5. .NET 5
  6. Access 1