Why or why not? / Porquê ou porque não?
This article is written in English and Portuguese
Este artigo está escrito em Inglês e Português
"Why o why do vendors still use Informix?!? Looking at u #cisco"
After digging a bit I've learned that the author is a database architect with 12 years of experience. And apparently he works mainly with SQL Server. So I think that the apparent surprise is perfectly understandable in that context... But on the other hand, again by searching the net, I could find some answers to that question. In particular:
- http://www.iiug.org/library/ids/casestudies/dreamjob_balsbough_cisco.pdf
Accordingly to this article, in 2005 Cisco needed some Informix skilled professionals, because it was a new Informix customer - http://en.wikipedia.org/wiki/Cisco_Unified_Communications_Manager
This wikipedia page references that beginning on 2006, Informix started to appear in that software (replacing another database accordingly to a note referring to 2008) - http://www.youtube.com/watch?v=HjHTqIQCaaM
In this 2009 video, some explanations are given by the supplier itself - http://www.youtube.com/watch?v=M1ilhgvPqyM
And in 2010/2011 the message was still the same...
So I then tried to reverse the question: Why would you not use Informix? And here are some possible reasons (I'm obviously playing devil's advocate here) together with some thoughts:
- It's not stable
But it is, and customers keep telling me that, and showing me their uptimes to prove it - It's too complex
But it isn't... Many Informix shops don't have a classic DBA (full time job of a specialized person). Usually the person taking care of Informix is a "many hats" kind of person - It lacks functionality
I'm always wanting more... But the ones I wish for are usually not widely used in competitor products. And it has first class features like the high availability, the replication (ER), the extensibility - It's slow
It isn't... I know that from personal experience, but that's what customers tell me also. It works well with less hardware than other competitors - The support is not good
Err... though point, because I work for IBM. But because I work for IBM and because I have the privilege to work in customer environments that include many other (non-IBM) products, I know that Informix tech support is one of the best (if not the best) technical supports I've worked with or I've heard of. Yes, I may not be a trustworthy source of information from the readers point of view... But just recently I've heard the same comment from two people that don't even know each other, both talking about one of Informix's major competitors: "the first five interactions with ? technical support look like program ELIZA interactions". At the time I did not know what program ELIZA was. The incredible part of this story is that those two persons told be exactly the same within a couple of weeks. - It's expensive
Well... this one is hard to discuss. The price lists are not really the price customers pay. But Informix has a wide variety of editions that range from free to everything (except compression) included. Some competitors charge extra for features even in the most expensive edition. And have lower limits (memory, processor, data size) on the free versions (which sometimes are not up to date with the current product versions, while IBM keeps the free versions on the same fixpack levels as the payed versions) - It lacks interoperability with other products
Not really although this is a widespread idea. It has the usual interfaces (ODBC, JDBC, .NET), supports several languages (Java, C, PHP, Ruby, C#) and interacts with a ton of products (not only from IBM). To name a few examples: - Non IBM:
- Oracle NetVault (backup)
- Oracle ODI (Data Integrator)
- Oracle WebLogic (J2EE application server)
- Oracle BI
- Informatica PowerCenter
- Pentaho
- Tomcat
- Hibernate
- JBoss
- Alfresco
- SugarCRM
- Joomla
- Drupal
- Veritas Netbackup
- HP OpenView (last time I was in touch with it)
- HP DataProtector (backup)
- IBM:
- WebSphere Application Server
- WebSphere MQ
- WebSphere MQ Broker
- DataStage (Information Server)
- Optim
- Guardium
- Tivoli Storage Manager
- Tivoli Monitoring (through Universal Agent)
- Lotus Mashup Center
- Cognos
- It's not supported by third party application providers
This is possibly the only real problema. But just acknowledging it may be a bit misleading and can hide one very obvious thought. We've been seeing a lot of concentration of applications under the same companies (Oracle bought PeopleSoft, Siebel, JDEdwards and had already an application division, Microsoft has Navision, SAP is entering the Database scene)... So, what does this tell you as a third party application developer? That most database providers will compete with you. So why not choose one database which supplier is not competing in the application market?
- Extensibility
Every database has it, but things like TimeSeries, MQ datablade, Basic Text Search, GeoSpatial etc. are built around it. And I've experienced quite a few times how we can overcome the lack of some specific function. Easily and reliably. - Performance and efficiency
These days we're seeing an hardware escalation. In part this happens because hardware is becoming cheaper and end user application code is getting more functional, but less efficient. This leads to the old "throw iron to the problem" paradigm. But I keep seeing heavy loads on top of Informix instances running on modest hardware. This represents cost savings - Replication and high availability features
No other database on the market has so advanced features with such a low cost of implementation and maintenance. The competitors which include comparable functionality typically require extra hardware (like Infiniband) and several software products to make it work. We need just the database and the connection manager (included). A lightweight solution which again translates into cost savings and less complexity - Ease of upgrades
The simplicity and reliability of the Informix upgrades have always been a fantastic feature. You can easily upgrade from very old versions "in place" (without moving data). The only concern you have currently is the time it may take to UPDATE STATISTCS. The traditional concern of what you'd have to do if the conversion failed was mostly mitigated by the CONVERSION GUARD feature. And of course, you can now migrate a cluster with no downtime (although the workload to do it may be complex for big systems) - Flexible Grid
The ability to integrate different engine versions and hardware platforms under the same administration "unit" is a terrific feature. - The Warehouse Accelerator
Effectively new technology (columnar in memory database) seamlessly integrated into the traditional disk based row store. Completely transparent to the applications
A Internet é uma coisa fantástica... É fácil encontrar todo o tipo de coisas e espalhar a nossa voz, especialmente após a criação das chamadas redes sociais... Numa pesquisa no Twitter há umas semanas encontrei uma questão interessante de alguém que usa o nome "SQLMountain (Michael Sexton". A questão era:
"Why o why do vendors still use Informix?!? Looking at u #cisco"
Ou se me permitem a tradução:
"Porquê, mas porque é que os fornecedores ainda usam Informix?!? Estou a olhar para vocês #cisco"
Após ter vasculhado um pouco percebi que o autor é um arquiteto de bases de dados, com 12 anos de experiência. E que aparentemente trabalha maioritariamente com SQL Server. Neste contexto penso que a aparente surpresa é perfeitamente compreensível... Mas por outro lado, e novamente procurando na net, podemos encontrar respostas a essa questão. Especificamente:
- http://www.iiug.org/library/ids/casestudies/dreamjob_balsbough_cisco.pdf
Segundo este artigo, em 2005 a Cisco necessitava de alguns profissionais com conhecimentos de Informix, porque era um novo cliente Informix - http://en.wikipedia.org/wiki/Cisco_Unified_Communications_Manager
Esta página da Wilkipedia refere que a partir de 2006 o Informix começou a aparecer no referido software (substituindo outra base de dados de acordo com uma nota referindo 2008) - http://www.youtube.com/watch?v=HjHTqIQCaaM
Neste vídeo de 2009 algumas explicações são dadas diretamente pela empresa - http://www.youtube.com/watch?v=M1ilhgvPqyM
E em 2010/2011 a mensagem ainda era a mesma.
Por isso tentei reverter a questão. Porque não deveria-mos usar Informix? E posso avançar algumas possíveis razões (obviamente vou fazer de advogado do diabo) juntamente com algumas ideias:
- Não é estável
Mas é... É isso que oiço dos clientes, e mostram-me os uptimes para o provar
- É demasiado complexo
Mas não é... A maioria das empresas que usam Informix não têm um DBA no sentido clássico (trabalho a tempo inteiro de uma pessoa especializada). Habitualmente a pessoa encarregue do Informix é um profissional multi-facetado com várias ocupações
- Falta-lhe funcionalidades.
Estou sempre a desejar mais... Mas as que mais falta sinto normalmente nem existem ou não são geralmente usadas nos produtos concorrentes. E tem funcionalidades de excelência como as características de alta disponibilidade, a replicação e a extensibilidade - É lento
Mas não é...Tenho aprendido isso com a minha própria experiência, mas é a ideia que me chega dos clientes. E regra geral consegue resolver o mesmo tipo de carga com menos hardware que os concorrentes
- O suporte é deficiente
Hmmm... ponto difícil, porque trabalho para a IBM. Mas porque eu trabalho para a IBM e porque tenho o privilégio de passar muito tempo em clientes que usam muitos outros produtos (não IBM), posso atestar que o suporte Informix é um dos melhores (senão o melhor) dos que tive oportunidade de contactar ou de ouvir falar. Sim, dificilmente serei considerado uma fonte fidedigna deste tipo de informação... Mas ainda recentemente ouvi o mesmo comentário vindo de duas pessoas que nem se conhecem, em relação ao suporte de um dos maiores concorrentes do Informix: "as primeiras cinco interacções com o suporte técnico de ? pareciam interações com o programa ELIZA". Na altura nem sabia o que era o programa ELIZA. O que me espantou mesmo nesta história foi as duas pessoas me terem dito exatamente a mesma coisa num intervalo de poucas semanas. Não tenho ideia que isto aconteça com o suporte de Informix. - É caro
Bom... Isto é difícil de discutir. Julgo que a maioria dos clientes não pagam o preço de lista. Mas o Informix tem um leque de edições que vão do completamente gratuito até ao que tem tudo (excepto a compressão) incluído. Muitos concorrentes cobram extras por determinadas funcionalidades mesmo na edição mais cara. E nas edições gratuitas têm mais restrições que o Informix (e por vezes não as mantêm atualizadas ao passo que a IBM lança os mesmos fixpacks em todas as edições) - Falta suporte a outros produtos ou não é suportado por outros produtos
Nem tanto embora isto seja uma ideia instalada. Tem as habituais interfaces (ODBC, JDBC, .NET), suporta várias linguagens (Java, C, PHP, Ruby, C#, Perl) e interage com um grande número de produtos (não apenas IBM). Para nomear alguns:
- Não IBM:
- Oracle NetVault (backup)
- Oracle ODI (Data Integrator)
- Oracle WebLogic (servidor aplicacional J2EE)
- Oracle BI
- Informatica PowerCenter
- Pentaho
- Tomcat
- Hibernate
- JBoss
- Alfresco
- SugarCRM
- Joomla
- Drupal
- Veritas Netbackup
- HP OpenView (na última vez que tive contacto com ele)
- HP DataProtector (backup)
- IBM:
- WebSphere Application Server
- WebSphere MQ
- WebSphere MQ Broker
- DataStage (Information Server)
- Optim
- Guardium
- Tivoli Storage Manager
- Tivoli Monitoring (via Universal Agent)
- Lotus Mashup Center
- Cognos
- Não é suportado por fornecedores aplicacionais
Este será porventura o único problema real. Mas apenas reconhecer isso seria simplista e esconderia algo realmente importante. Nos últimos anos temos assistido a uma grande concentração de aplicações sob as mesmas empresas (a Oracle adquiriu a PeopleSoft, a Siebel, a JD Edwards e já tinha a sua própria divisão aplicacional, a Microsoft tem o Navision e a SAP está a entrar nas bases de dados)... O que é que isto lhe diz se for um produtor de uma aplicação? Que a maioria dos fornecedores de bases de dados irão competir consigo. Assim, porque não usar uma base de dados cujo fornecedor não está a competir no mercado de aplicações?
- Extensibilidade
Todas as bases de dados a têm, mas coisas como TimeSeries, o MQ datablade, o Basic Text Search (BTS), o Geo Espacial são construídos com base nessa extensibilidade. E já por diversas vezes atestei como usando a extensibilidade podemos resolver de forma simples alguns problemas e mesmo a falta de alguma função nativa
- Performance e eficiência
Actualmente estamos a assistir a uma "escalada" do hardware. Em parte isso acontece por causa do cada vez mais baixo custo do hardware ao mesmo tempo porque o código aplicacional corrido pelo utilizador final ganha funcionalidades e perde eficiência. Isto leva ao velho paradigma de "atirar ferro para o problema". No entanto continuo a ver utilizações intensas em cima de instâncias Informix a correrem em hardware bastante modesto. Isto traduz-se em poupanças de custos - Replicação e funcionalidades de alta disponibilidade
Nenhuma outra base de dados no mercado possuí funcionalidades tão avançadas com um custo de implementação e manutenção tão baixo. Os concorrentes que incluem funcionalidades comparáveis requerem hardware extra (como Infiniband) e vários produtos ou componentes de software para funcionarem. Nós necessitamos apenas da base de dados e do Connection Manager (incluído). Uma solução mais simples e leve que ao reduzir a complexidade baixa custos e requer menos conhecimentos para instalar, manter e operar. - Facilidade de upgrades
A simplicidade e confiança dos upgrades de Informix sempre foram uma característica fantástica. Podemos fazer atualizações mesmo a versões bastante antigas "in place" (sem movimentação de dados). A única preocupação que temos atualmente prende-se com o tempo que demorará a atualizar as estatísticas. A preocupação tradicional sobre o que teríamos de fazer se uma conversão abortasse foi na sua maioria mitigada pela introdução da funcionalidade CONVERSION GUARD. E claro, agora podemos migrar um cluster sem paragem (embora o processo de o fazer se possa traduzir em operações complexas em sistemas grandes)
- Flexible Grid
A possibilidade de integrar motores de versões diferentes e a correr em hardware heterogéneo sob a mesma "unidade" de administração é um grande salto em frente. - O Warehouse Accelerator
Tecnologia efetivamente nova (colunar e in--memory) integrada de forma simples no sistema tradicional de armazenamento em disco com formato ou organização de linha. Completamente transparente para as aplicações