12 agosto 2009

A decisão de migrar para Linux

Este post faz parte da série que descreve experiencias vividas durante o projeto de desenvolvimento do Basix, neste capitulo falarei sobre como foi a decisão de migrar a plataforma de Windows para Linux.

Nós na Voice Technology já somos adeptos do mundo Open Source há algum tempo, na Business Unit que gerencio 91% dos Desktops e Notebooks rodam Linux, o Ubuntu reina como a maior distro (só nosso amigo Masato-san, e a Daniele que ainda não migraram para o Tux!, mas um dia convenceremos eles...), mas nem sempre foi assim há 5 anos atrás não tinhamos um único produto que roda-se em Linux, ninguém utiliza-va Linux no desktop, nossos produtos todos eram desenvolvidos em plataforma Windows, utilizando Visual Basic, Delphi, C e C++, e rodavam exclusivamente em Windows.

Mas a história começou a mudar durante o Desenvolvimento do Basix (Plataforma de IP-Centrex que desenvolvemos em parceria com a Brastel), no inicio do projeto definimos que o Basix seria escrito em Java, mas até aí não existia nenhuma intenção de roda-lo em Linux, o Java veio porque estávamos em um momento de tentar consolidar todos os novos produtos em uma única linguagem de programação, e a escolhida havia sido o Java (estávamos com certo trauma da salada de linguagens que tínhamos), mas as primeiras versões do Basix rodavam em Windows, e todo o ambiente de desenvolvimento era Windows.

A decisão pela migração de plataforma de Windows para Linux veio quando fomos obrigados a montar uma solução de Cluster para o Basix, neste momento já tínhamos dois profissionais com muita experiência em Linux Ricardo Nohara, e Marcos Hack( os dois ficavam buzinando no meu ouvido trocentas vezes por dia para migrarmos para Linux), mas o desafio era muito grande pois a equipe de desenvolvimento não estava habituada com o Linux, e principalmente o nosso parceiro a Brastel quem iria operar o Basix não tinham nenhuma experiencia com Linux, e para piorar a situação eles estão em Toquio no Japão (há 12 horas de diferença de fuso horario, e a 18.533km de distancia), por conta destas dificuldades decidimos testar a solução de Cluster baseado no "Windows NLB" (Network Load Balance), e a solução baseada em Linux montada com "IPVS"e "Keepalived", de cara descobrimos que nenhuma das duas soluções davam suporte a Cluster de aplicações SIP, ponto negativo para os dois, indo mais a fundo no NLB não encontramos uma forma fácil de customizá-lo para montar o Cluster para aplicações SIP, já neste ponto a solução baseada em Linux levou muita vantagem, pois o par "IPVS" e "Keepalived" é totalmente customizável, então conseguimos montar o Cluster para o Basix apenas desenvolvendo o módulo de Healthcheck SIP, e configurando o IPVS e Keepalived corretamente.

Este foi a principal razão para comprar a briga da migração do Basix para Linux, para convencer todos desta decisão técnica foi bem complicado gestores querendo analise minuciosa de risco, equipe da Brastel querendo treinamento, etc. já a equipe de desenvolvimento era só sorrisos afinal a garotada não trabalhava com Linux mas adorava aventura, mas tínhamos um álibi muito forte a solução baseada Linux era a melhor, e mais barata também.

Neste momento tivemos que preparar um curso de Linux para dar uma introdução para todas as pessoas que não tinham experiencia com o mesmo, este cursos foi ministrado para os membros da equipe de desenvolvimento que ficava no Brasil, e para a equipe que iria operar o Basix no Japão, o curso para o pessoal do Japão foi dado via conferencia.

A decisão de migrar para Linux foi um passo muito importante para entrarmos para valer na cultura Open Source a partir deste momento toda a equipe foi engajada no modelo de trabalho da comunidade open source sempre pensando em como compartilhar melhor o conhecimento, e não reinventar a roda, hoje podemos olhar para trás e ver o quanto é diferente este jeito de desenvolver conhecimento, produtos, inovações, etc. É muito gostoso olhar para trás e ver que toda esta mudança nasceu de 2 Geeks cabeça dura buzinando em nossos ouvidos, e nós um pouco loucos para comprar a briga da mudança (Graças a Deus que demos ouvidos a eles), e toda uma equipe por trás para apoiar tal mudança.

Muito mais gratificante ainda é ver que o Basix é realmente um produto inovador, e está provando isto em todos os mercados que está sendo comercializado, pois tanto no Brasil quanto no Japão cresce a cada dia, com ótimas avaliações dos clientes, e por trás de toda esta história de tecnologia produto e inovação está basicamente um grupo de colaboradores apaixonados pelo que fazem, trabalhando realmente como um time, e que são encarados como pessoas em sua plenitude, com qualidades, defeitos, que acertam, e erram como todos nós, aliás erramos muito, mas para aprender é necessário errar.

A saga de uma empresa Brasileira desbravando o mundo, desenvolvendo tecnologia de ponta.

Há 5 anos gerencio uma Business Unit da Voice Technology que tem o seu grande foco em desenvolver uma plataforma de IP-Centrex em parceria com a Brastel (uma operadora de telefonia Japonesa, apesar do Nome é uma empresa Japonesa), durante esta jornada vivenciamos muitas experiência interessantes, sejam elas relacionadas ao choque de cultura, a dificuldades técnicas, gerenciais, decisões difíceis, acertos, erros, etc.

Posso afirmar que foi, e está sendo uma jornada muito gratificante, desde o inicio eu sempre pensei em escrever um livro para compartilhar as experiências vividas, pois não é um projeto comum de software, os desafios foram e são enormes, interagir com uma empresa do outro lado do mundo, com fuso horário de 12 horas, onde uma boa parte da empresa não fala Inglês e muito menos Português (isto mesmo boa parte dos Stakeholders deste projeto só falam Japonês), além de todos estes desafios referente a interação com a Brastel, ainda tem todos os outros desafios de uma empresa de tecnologia nos momentos atuais, liderar, desenvolver, motivar, e manter uma equipe de jovens profissionais focados em um projeto de longo prazo, não bastando os desafios gerenciais, agregamos a esta jornada a faceta técnica que engloba tecnologias como: Linux, SIP, VoIP, Asterisk, Openser, Java, Jboss, Hibernate, Oracle, etc.

O projeto de desenvolvimento do Basix já nos propiciou implantar sistemas no Brasil, Japão, Estados Unidos, Filipinas, e Hong Kong, e já viajamos para todos estes paises, além de outros do leste Asiático.

Por conta do livro ainda ser algo muito distante resolvi começar a escrever pequenos posts descrevendo importantes capítulos desta jornada, não desisti do livro, quem sabe o livro não será apenas uma compilação dos posts...

O primeiro post desta série já foi publicado em 29 de julho de 2009 (Oque vale mais conhecimento técnico, ou características pessoais?), não vou me comprometer com uma periodicidade específica sobre os posts, mas na medida do possível vou postando, me acompanhem no Twitter para saber das publicações, ou assinem o meu feed.

Até a próxima...