Sunday, September 23, 2007

An Oracle DBA’s Journey in Open Source

I’ve spent the last year and a half noticing the growth and popularity of open source solutions. Using open source to build multi-tiered web based solutions can greatly add to a company’s competitiveness and bottom line by greatly reducing costs and reduce the complexity of managing vendor relationships. I looked at a lot of open source products and companies and the one that stood out to me by far was MySQL. So this thread of my blog is going to focus on the open source database MySQL and surrounding technologies.

I have a very strong background in advanced Oracle database server technologies and Oracle Fusion middleware. I have a lot of experience with Oracle RAC, Data Guard, Streams, Advanced Queuing, Performance Tuning and Backup and Recovery. I have also have a strong background in Oracle Fusion Middleware technologies such as J2EE, ADF, Web Services, Design Patterns, SOA, BPEL, Oracle Business Rules, Grid Computing and XML.

I have felt it is important that an Oracle DBA have a very strong understanding of the environment Oracle runs in and that DBAs need to be able support Oracle developers. In today's world it is the Oracle Application Server and Oracle Fusion Middleware technology. There is a big gap in people that can understand and manage the entire infrastructure of a multi-tiered implementation. If performance is slow, is the problem in the database, network, applications, application server, OC4J containers, Oracle Rules Engine, etc. Also, high availability, backup and recovery and performance tuning are as big an issue in the middle-tier as they are the database tier.

Oracle DBAs can no longer work in the glass house of their databases. I go into companies and there are now 10 DBAs where five years ago there were 40 DBAs. These companies are looking for even more ways to reduce their DBA counts not increase them. DBAs today have to do more to be valuable to a company. In otherwords, they need to have skills in more areas. DBAs that can support multiple databases, the middle-tier, business applications, etc. Obvious paths for an Oracle DBA to increase their marketability include:
  • Learn the Oracle Fusion Middle-tier or learn Oracle Applications to be more valuable in the Oracle space. This is a long road to do down and a lot of traditional DBAs are not going to survive the journey of J2EE, Web Services, BPEL, SOA, etc.
  • Being able to support additional environments such as the operating system or storage management. With all the complex storage solutions out there, there is a strong demand in this area.
  • Learn additional databases. I almost never go into a shop that is running just Oracle. Most companies have, DB2, SQL Server, MySQL, etc. in their environment. From the clients I go into (from Fortune 500 to SMBs) you see different database products.
With a very strong background in advanced Oracle database server technologies and Oracle Fusion middleware, I looked at an open source database from a lot of different perspectives. I weighed a lot of tangibles and intangibles. Despite Oracle Express, PostgreSQL, Ingres, SQL Server Express and DB2 express having strong functionality I picked MySQL for the following reasons:
  • MySQL 5.1 supports key relational database technology features.
  • Strong performance benchmarks from multiple sources.
  • By far the most popular among clients that have moved to open source.
  • A strong company behind it.
  • Seems to be more expertise in the Internet versus other open source solutions.
  • Encountering very strong growth in the market place.
  • The coolness factor.
  • A lot of similarities between Oracle and MySQL so I felt it would be an easier transition for me versus some of the other open source solutions. For example, the language used for stored procedures and triggers is almost exactly like Oracle’s PL/SQL. I am going to have to transition to the ANSI style syntax of joins but no journey occurs without some growth occurring.
The power of the Internet. MySQL is encountering over 50,000 downloads a day. When a new MySQL release comes out in Alpha, there are tens of thousands of users testing the new functionality. MySQL leverages the incredibly large volume of end-users on the Internet to help test their Alpha and Beta releases. The Internet can give open source organizations tremendous power that large commercial companies usually do not leverage.

I also believe MySQL is the one open source database that has the potential to replicate the success Red Hat has had in open source. For example, SUSE is an absolutely outstanding Linux OS, but almost everywhere I go, Red Hat is a lot more popular. I have found that same popularity with MySQL compared to the other open source databases. MySQL has a lot of the same factors for success that Red Hat has just on the database side versus the operating system side. There are other database options out there; it was my preference to choose MySQL over other alternatives. Just looking at a specification and technical sheet does not always give you the ultimate answer. I used some objective and some subjective reasons for choosing MySQL based upon my background, experience and preferences for environments I enjoy working in.

What was very cool for me is that last night I downloaded a free version of Linux, Apache and MySQL and deployed a Java web application in a few hour's time frame. This included the time to download the free software. It was all free except for the hardware and the coffee. I am going to also write the equivalent application in PHP. Amazing how LAMP can quickly and inexpensively provide a very powerful solution for deploying web applications. Large traditional vendors can no longer ignore the popularity and success of open source solutions.

It is very interesting to see the completely different culture that exists in open source environments. I find it very interesting and fun to slowly get more involved in this culture and environment. I look forward to sharing perspective and knowledge gained through this open source journey.

No comments: