Abordagens modernas para uma rápida
Transcrição
Abordagens modernas para uma rápida
ARTIGO TÉCNICO Abordagens modernas para uma rápida modernização de aplicativos Patrocinado por: Micro Focus Al Hilwa Maio 2014 OPINIÃO DA IDC Os aplicativos empresariais são projetados para ter uma vida útil finita, mas essa vida útil pode ser inesperadamente longa, potencialmente mais de 30 anos no caso de alguns aplicativos desenvolvidos sob medida para mainframes. Embora esses aplicativos exijam cuidados contínuos e manutenção por equipes de desenvolvimento de aplicativos, as bases de códigos são muitas vezes extremamente maduras e sem erros de programação, atendendo aos requisitos da empresa de modo inigualável e incorporando com precisão as regras dos negócios. A IDC constatou que, em muitos casos, as empresas podem tomar medidas para modernizar estes aplicativos, muitas vezes chamados de "aplicativos legados", sem que sejam necessárias grandes alterações na base de código e, muitas vezes, de maneiras que permitem uma evolução agressiva para atender a novas necessidades comerciais ou tecnológicas. A IDC, particularmente, recomenda a seguinte estratégia para lidar com aplicativos legados: As empresas devem engajar-se em um processo de levantamento e de análise na gestão de portfólios de aplicativos internos, classificando-os e agrupando-os de acordo com vários planos organizacionais destinados a identificar as melhores abordagens para sua expansão ou modernização. Tal análise é fundamental para a priorização e contenção de custos de projetos de modernização. As interfaces do usuário (UI) dos aplicativos devem ser atualizadas para alinhamento com transições de plataforma do cliente e mudanças para plataformas Web. Os sistemas baseados em linha de comando ou em tecla de função, incluindo interfaces do estilo 3270, devem ser suplantados ou melhorados para acomodar a experiência do usuário moderno. Para que uma classe de aplicativos legados possa atender a certos critérios de adequação, as empresas devem pensar em mudar o processo de desenvolvimento de aplicativos para plataformas de software e hardware mais ágeis e econômicas. Tal abordagem pode reduzir o custo de manutenção, melhorar a eficiência do desenvolvimento e até mesmo ampliar os recursos disponíveis. Para aplicativos que requerem um grau significativo de evolução e modernização, as empresas encontrarão cadeias modernas de ferramentas de testes e qualidade para aplicativos de mainframe com grande disponibilidade no mercado e suporte agressivo de fornecedores, de uso e gestão mais produtivos pela vida útil restante dos aplicativos em questão. As empresas podem considerar abordagens que forneçam uma opção para a implantação da carga de trabalho de aplicativos em diferentes plataformas econômicas de hardware e software. Os benefícios dessas transições vão desde a redução da capacidade de mainframe necessária para permitir que o mainframe se concentre na execução crítica do sistema central, até a flexibilidade genuína de implantação da carga de trabalho para alcançar níveis mais elevados de eficiência de custos e de agilidade comercial. IDC #248680 Maio 2014 INDICE P. Opinião da IDC 1 Neste artigo técnico 1 Visão geral da situação 1 Noções básicas de ativos de código 1 Desaceleração no desenvolvimento 4 Flexibilização de testes 6 Flexibilidade de implantação 8 Visão futura 9 Como se preparar para aplicações em nuvens 10 Mobilidade e modernização da interface do usuário 10 Desafios e oportunidades 10 Transformações na oferta de desenvolvedores 10 Atrasos de TI e o ambiente regulatório intensificado 11 Becos sem saída de arquitetura 11 Conclusão 11 Saiba mais 13 Pesquisas relacionadas à IDC 13 Outras pesquisas relacionadas 13 ©2014 IDC # NESTE ARTIGO TÉCNICO Este documento examina abordagens fundamentais para a modernização e evolução de aplicativos para determinados aplicativos de mainframe da IBM com vida útil longa. Ele discute os desafios dos aplicativos legados e as abordagens de modernização disponíveis para lidar com esses desafios. O documento também analisa, em alguma profundidade, abordagens específicas que mantêm grande parte da lógica do aplicativo intacta ou permite que evolua de forma incremental e produtiva. VISÃO GERAL DA SITUAÇÃO A tecnologia da informação (TI) está em um constante movimento. Mudanças são vistas como progresso, e a velocidade das mudanças parece estar em constante aceleração. Embora uma nova geração de tecnologia tenha vantagens incontestáveis até mesmo quando comparada ao seu antecessor imediato, o custo de gerenciar simultaneamente várias gerações de tecnologia, lidar com transições e mudanças nas camadas de tecnologias que as hospedam, como hardware e plataformas de aplicativos subjacentes, pode superar a produtividade ou as vantagens econômicas de adoção de novas tecnologias. Um exemplo de transição arquitetônica, cujas vantagens são consideravelmente menores do que inicialmente previstas, é o salto para modelos cliente/servidor de duas camadas que ocorreu do início até os meados da década de 1990. Nos últimos anos, muitas das mesmas empresas que implementaram essas tecnologias têm investido em transições de vários tipos que muitas vezes levam à substituição de tais aplicativos. A adoção constante de novas tecnologias resultou em um grave caso de expansão tecnológica descontrolada de empresas. Além disso, essa condição parece estar destinada a agravar-se, porque tendências crescentes como Web, nuvem, tecnologia móvel, mídia social e megadados, juntamente com novas pressões devido a mudanças nos regulamentos, concorrência no mercado, preferências dos consumidores e padrões de uso dos clientes, estão causando níveis inéditos de mudanças. Embora experimentos sejam essenciais e uma mistura diversificada de tecnologias seja inevitável, a expansão não conseguiu esclarecer se um tipo de tecnologia é contextualmente superior a outros. As empresas sabiamente abordam a questão da modernização de maneira equilibrada e pesquisam portfólios de aplicativos usando um processo metódico de análise. Noções básicas de ativos de código As empresas depositam enorme confiança em seus portfólios de aplicativos e passaram a entender que seus ativos de código estão entre seus bens mais valiosos. É lógico, então, que gastem recursos consideráveis na manutenção da viabilidade de seu código de aplicativos em circunstâncias que mudam rapidamente. A modernização do portfólio de aplicativos é um exercício complexo e contínuo nos quais as empresas se envolvem, utilizando variadas abordagens. Algumas das opções de modernização típicas que as empresas enfrentam são: Corresponder requisitos e fluxos de trabalho corporativos aos aplicativos e camadas de aplicativos existentes, juntamente com várias medidas de escala, complexidade, importância ou necessidade de interoperabilidade Analisar e agrupar aplicativos em conjuntos de funções potencialmente sobrepostos, que podem ter surgido separadamente em divisões diferentes ou por meio de fusões e aquisições ©2014 IDC # 1 Avaliar a duplicação de aplicativos para entender sua cobertura funcional e alcance, a fim de determinar quais podem ser aprimorados para englobar outros Revelar necessidades de aplicativos não satisfeitas e participar de um processo avaliativo para determinar se novos aplicativos devem ser desenvolvidos ou se os aplicativos existentes devem ser aprimorados Categorizar os aplicativos existentes em grupos diferentes com diferentes abordagens de modernização (essas abordagens de modernização podem abranger toda a escala desde a obsolescência planejada e a substituição programada até uma variedade de técnicas de encapsulamento voltadas para serviços e abordagens onde o código é essencialmente preservado e aprimorado.) Atrofia de aplicativos e a necessidade de modernização O grau em que um aplicativo atende aos próprios requisitos não se mantém constante ao longo da sua vida útil. Com o tempo, os aplicativos entram em um estado de atrofia, que necessita de modernização. Os seguintes tipos de mudanças no ambiente de TI podem cumulativamente levar a uma atrofia de aplicativos: Mudanças em estilos da interface do usuário (UI). Mudanças no estilo da UI, seja através de transições em plataformas de cliente ou mudanças para modelos de UI mais portáteis como navegadores da Web, estão sempre ocorrendo e podem levar a transformações episódicas como, por exemplo, a mudança de sistemas de linha de comando ou orientações à tecla de função para sistemas gráficos. Hoje, estamos vivendo uma enorme transformação à medida que os aplicativos mudam para modalidades de interação por toques ou gestos, e sua distribuição flutua em torno de dispositivos móveis. Modelos de UI de aplicativos estão se estratificando ao longo dos principais ecossistemas de dispositivos de sucesso (por exemplo, iOS, Android, Windows) e de um modelo de funcionalidade um pouco inferior com base em HTML5/CSS/JavaScript padrão do setor, adequado para uso menos específico a dispositivos. Para os usuários de mainframe, uma importante área de evolução é o aumento de interfaces de estilo 3270 com as abordagens modernas exigidas pelas demandas dos novos profissionais. Mudanças nas arquiteturas de hardware. O fato de que hardware tem uma vida útil mais finita do que software e requer uma capacidade de atualização física para se beneficiar de melhorias no desempenho pode levar a uma significativa pressão sobre os aplicativos. À medida que o hardware passa por mudanças rápidas, sistemas operacionais intimamente ligados a arquiteturas de hardware podem passar por transições significativas ou sofrer por investimento inadequado do fornecedor. Basta observar os diversos sistemas integrados que reinaram durante várias épocas, como Pick, DEC VAX ou HP3000, para entender a pressão que hardware e sistemas operacionais colocam no aplicativo. Mudanças nas arquiteturas de software. Mudanças na estrutura e na conectividade de sistemas de computação provocadas por características de rede em evolução, incluindo largura de banda, velocidade, latência e confiabilidade, criam oportunidades de mudança e novos recursos que são muitas vezes inimagináveis nas fases iniciais de desenvolvimento de aplicativos. Trinta anos atrás, sistemas distribuídos eram arquiteturas altamente suspeitas porque os profissionais de TI da época não tinham acesso a redes com a onipresença, o rendimento, a latência e a confiabilidade da Internet atual, nem podiam imaginá-las. Atualmente, arquiteturas de software que utilizam enormes portfólios de serviços e dados em nuvem, e os conectam a diversos dispositivos móveis com inteligência de localização e recursos off-line, estão essencialmente revolucionando as possibilidades em aplicativos empresariais. ©2014 IDC # 2 Mudanças nas linguagens e nos modelos de programação. Embora as linguagens de programação mudem em períodos longos, medidos em várias décadas, elas também colocam pressão sobre os aplicativos ao influenciar o fornecimento de desenvolvedores que podem mantê-las. Os ecossistemas de desenvolvedores mudam lentamente, regidos pela sua capacidade de aprender e de fazer transições entre as diferentes linguagens de programação e os conhecimentos exigidos (por exemplo, orientação à objetos). À medida que mudam, esses ecossistemas geram pressões de base em projetos de manutenção de aplicativos que se manifestam pela capacidade de encontrar e reter desenvolvedores. COBOL é um exemplo de tecnologia que está sob relativa pressão porque raramente é ensinado em cursos atuais de linguagens. Embora a situação seja minimizada pela maior longevidade humana e pela aposentadoria cada vez mais tardia de profissionais devido à situação econômica, é necessário encontrar soluções para atrair o conhecimento perito de COBOL, caso se queira manter um corpo significativo de aplicativos. Sintomas de atrofia de aplicativos Compreender os processos pelos quais os aplicativos podem degenerar como descrito pode levar a uma melhor compreensão da necessidade de modernização e da detecção dos sintomas mais diretos que caracterizam essa necessidade. Algum tipo de processo de modernização muitas vezes é a solução, quando um ou mais dos seguintes problemas são encontrados em um sistema ou corpo de código específico: Custos de manutenção existentes insustentavelmente altos Sistemas rígidos resistentes às mudanças ou à adaptação a novos requisitos Isolamento ou falta de interoperabilidade, que requer investimento extra considerável para conexão com outros sistemas empresariais Tecnologia de interface do usuário ultrapassada, como aplicativos de tela verde com base em texto ou em tecla de função, que não são atraentes aos usuários e proporcionam menor produtividade em comparação com abordagens gráficas modernas Em geral, recomenda-se uma abordagem de modernização de aplicativos quando qualquer um desses quatro sintomas críticos é observado no processo de análise. O processo de descoberta e avaliação que as empresas criam para aplicativos empresariais também mede o grau necessário de mudança para cada aplicativo, que se torna um dado essencial quanto à abordagem a ser seguida na modernização. Micro Focus Enterprise Analyzer O Micro Focus Enterprise Analyzer é uma das principais ferramentas para análise de portfólios de aplicativos no setor. Ele permite a aquisição do conhecimento necessário para conduzir uma análise de modernização bem-sucedida. Seus principais recursos incluem a identificação das prioridades de desenvolvimento e a geração de avaliações de portabilidade e de candidatos à modernização. As ferramentas adicionais da Micro Focus ajudam a analisar o código do aplicativo, o que muitas vezes faz parte da avaliação de modernização. As ferramentas de análise da Micro Focus foram projetadas para ajudar a alinhar as prioridades do negócio, documentar o comportamento do aplicativo, avaliar grandes impactos da mudança do sistema e melhorar as práticas de qualidade de código. Em seu conjunto, essas ferramentas oferecem suporte ao processo de modernização de aplicativos, fornecendo um mecanismo para destravar a complexidade, conter custos de manutenção e priorizar projetos. ©2014 IDC # 3 Modernização de interface do usuário com o Micro Focus Rumba+ Outra ferramenta importante que deve ser seriamente considerada em todos os esforços de modernização de mainframe é o Micro Focus Rumba+. Essa coleção de recursos de gestão da interface do usuário pode simplificar fluxos de trabalho de teclas de função e de texto do mainframe, canalizando-os através de paradigmas modernos de interface gráfica do usuário. Ela oferece o recurso de exibir várias telas em uma única interface, permitindo que os usuários acessem a funcionalidade do aplicativo de mainframe em PCs, na Web e em dispositivos móveis modernos. Diversas funções, como treinamento em aplicativos e integração do usuário, podem se tornar mais simples e eficientes com o uso dessa tecnologia, estendendo a vida útil e o retorno total sobre o investimento de aplicativos de mainframe existentes. Essas transformações na experiência do usuário são fornecidas sem a modificação de aplicativos de mainframe e mantendo, ao mesmo tempo, os padrões de segurança do mainframe. Desaceleração no desenvolvimento A avaliação de portfólios envolvendo hardware legado rodando aplicativos mais antigos pode produzir resultados distintos para diferentes partes do portfólio de aplicativos. Alguns resultados podem refletir desafios operacionais relacionados a processos de desenvolvimento de aplicativos atuais. Esses desafios podem incluir o rendimento insatisfatório de atualizações do sistema, classificações de baixa qualidade, taxas inadequadas de mudanças ou alto custo por receita para o desenvolvimento de aplicativos. Uma oportunidade de modernização em potencial que pode resultar em economias surpreendentes de produtividade seria a transferência do processo de desenvolvimento para plataformas modernas. O mainframe é uma máquina bem ajustada para execução de cargas de trabalho de produção. Ele é excelente em questões de confiabilidade, segurança e processamento de grandes volumes de transações em larga escala. Os processos de desenvolvimento de aplicativos e testes de unidades para o mainframe podem absorver capacidade significativa dele mesmo, e os processos de mainframe exigem conhecimentos específicos muito acima daqueles necessários para oferecer suporte à linguagem de programação do próprio código. Tais conhecimentos são difíceis de encontrar porque os mainframes são, em grande parte, desconhecidos pelas gerações recentes de programadores e os conhecimentos necessários raramente são ensinados em cursos de computação. Essas questões têm criado uma oportunidade para que fornecedores de ferramentas encontrem soluções interessantes para conduzir o processo de desenvolvimento utilizando a tecnologia moderna como um sistema de referência. Benefícios do desenvolvimento simplificado de mainframe Embora muitos aplicativos de mainframe permaneçam hospedados em mainframes, atualmente seus processos de desenvolvimento podem ser abordados de formas mais flexíveis. Ferramentas disponíveis no mercado, como as da Micro Focus, permitem que desenvolvedores trabalhem em modernos dispositivos de front-end gráficos com modernos ambientes integrados de desenvolvimento (IDEs), enquanto o código e os dados do aplicativo podem permanecer e ser executados no mainframe para fins de testes e de produção. Outra opção é implementar todo o processo de desenvolvimento e teste de mainframe utilizando recursos não z/OS. Essas abordagens simplificadas de desenvolvimento de aplicativos de mainframe podem produzir diversas vantagens, como: ©2014 IDC # 4 Produtividade do desenvolvedor. Os desenvolvedores modernos são treinados para trabalhar com ferramentas nativas em estações de trabalho gráficas modernas. Em geral, os desenvolvedores usam IDEs modernos e fazem uso de uma ampla gama de ferramentas de desenvolvimento para gerenciar suas atividades. Fornecer ferramentas que rodam no ambiente nativo de treinamento dos desenvolvedores reduz o tempo de treinamento para novos membros da equipe e permite que os desenvolvedores passem menos tempo alternando entre o ambiente do PC e o mainframe. Flexibilidade e agilidade de desenvolvimento. É difícil atrair e reter bons desenvolvedores, conhecidos por serem cada vez mais sensíveis às ferramentas que usam. Os desenvolvedores protegem seus conhecimentos e os anos investidos no aprendizado de suas ferramentas favoritas ou no domínio de certos paradigmas de interação, como as experiências de usuário gráficas modernas. A maioria dos desenvolvedores atuais não está familiarizada com interfaces de mainframe e não está acostumada a usá-las para o desenvolvimento cotidiano de aplicativos. A arquitetura de mainframe também pode impor limites sobre os desenvolvedores, reduzindo sua produtividade e agilidade. A mudança para ambientes de programação contemporâneos (por exemplo, Visual Studio ou Eclipse) remove essas limitações e também disponibiliza uma ampla variedade de ferramentas que os desenvolvedores podem usar no processo de desenvolvimento. Qualidade de código. Além do impacto de usar ferramentas de testes que residem em ambientes de PC, normalmente qualquer transição que melhora a produtividade do desenvolvedor muitas vezes melhora, ao mesmo tempo, a qualidade do código. Menos mudanças de contexto durante o processo de desenvolvimento, juntamente com maior flexibilidade na seleção de ferramentas (incluindo ciclos instantâneos de edição/depuração de bugs), também ajudam a se obter níveis mais elevados de qualidade de código. Em geral, oferecer opções para diferentes abordagens permite que os desenvolvedores trabalhem em seus paradigmas de desenvolvimento preferenciais, contribuindo assim para a melhoria da qualidade do código. Gerenciamento de MIPS. Além da redução de custos proveniente da produtividade, do desenvolvimento mais rápido e do menor tempo de retorno, a redução de custos também pode ser conseguida através da utilização de PCs para testes e como estações de trabalho de desenvolvedores. Dependendo do tamanho da equipe de desenvolvimento, remover a carga de trabalho de compilação de aplicativos e testes pode reduzir tangivelmente o número necessário de MIPS de desenvolvimento. Isso pode colocar mais MIPS disponíveis para a produção ou pode levar a uma potencial redução de custos, não só em hardware, mas também em licenciamento de software, já que a maioria dos softwares de mainframe ainda é licenciada com base na capacidade do mainframe. Micro Focus Enterprise Developer A linha de produtos Micro Focus Enterprise Developer permite que os desenvolvedores trabalhem em seu IDE preferido, seja Visual Studio ou Eclipse, para criar e manter aplicativos COBOL no mainframe. A linha de produtos oferece suporte a fluxos de trabalho de desenvolvedores individuais e de equipes, e sustenta a maturidade adquirida ao longo de uma década de pesquisa e desenvolvimento. O suporte para múltiplos IDEs e a capacidade de produzir código de tempo de execução .NET ou JVM em COBOL significa que desenvolvedores de ecossistemas Microsoft ou Java podem se sentir à vontade no ambiente de desenvolvimento enquanto adquirem conhecimentos de COBOL. Tipicamente, a pesquisa da IDC revela que um número significativo de desenvolvedores COBOL já aprendeu novas linguagens de programação além do COBOL e, portanto, está possivelmente familiarizado com o Visual Studio ou o Eclipse, se não com ambos. ©2014 IDC # 5 Flexibilização de testes Como resultado da avaliação de portfólios, pontos fracos ou obstáculos nas taxas de entrega de serviços, na qualidade do aplicativo, na flexibilidade do processo de controle de qualidade ou os custos de testes podem apontar para a necessidade potencial de mudar a forma de realização dos principais testes de aplicativos. Testes de unidade, funcionais e até mesmo de sistemas podem proporcionar benefícios significativos se forem refinados usando a tecnologia moderna. Os testes de aplicativos podem, potencialmente, fornecer benefícios ainda maiores, porque quando o desenvolvimento é modernizado, todo o processo de testes pode ser realizado em hardware básico, com uma maior variedade de ferramentas disponíveis para sistemas distribuídos. Os testes são uma parte integral da carga de trabalho do desenvolvimento de aplicativos que pode absorver significativa capacidade do sistema, especialmente durante testes de esforço e de desempenho de aplicativos. Benefícios de testes externos ao mainframe A realização de testes de aplicativos de mainframe fora do mainframe pode propiciar as seguintes vantagens: Ciclos de testes mais curtos. Tirar proveito de grandes parques de servidores básicos também pode levar a ciclos de testes significativamente mais curtos, e mais recursos podem ser aplicados de forma incremental para realizar a execução de testes automatizados em paralelo. Os ganhos gerais em agilidade empresarial são, portanto, os principais benefícios de aplicativos de testes em plataformas distribuídas. Qualidade de código. A capacidade de utilizar recursos de hardware substancialmente alternativos também pode permitir testes mais profundos e ricos, além de planos de teste ampliados, o que leva diretamente a código de melhor qualidade. Redução de custos. A redução de MIPS de mainframe alocados para testes pode ser significativa, especialmente em testes de desempenho, que podem absorver capacidade significativa do sistema e afetar, potencialmente, outras cargas de trabalho do mainframe. A natureza episódica e transitória de testes de esforço de desempenho leva a um superdimensionamento de recursos de mainframe e ao custo excessivo de licenciamento de software. Esses custos podem ser significativamente atenuados quando os testes podem utilizar hardware básico. Recrutamento mais fácil. Atividades modernizadas de testes podem facilitar a atração e retenção de testadores e reduzem muito as necessidades de treinamento de plataforma. Conjunto de ferramentas mais rico. Os testes em plataformas distribuídas tiram proveito da mais ampla variedade de ferramentas de testes disponíveis no mercado atualmente, permitindo que tecnologias de testes mais avançadas auxiliem rapidamente os valiosos aplicativos COBOL. Micro Focus Enterprise Test Server A funcionalidade de testes da Micro Focus pode ser usada em aplicativos COBOL rodando em hardware moderno básico para apoiar o esforço de modernização da empresa. O Micro Focus Enterprise Test Server fornece um ambiente de execução de testes de mainframe no Windows, permitindo que as equipes de aplicativos executem atividades chave de testes funcionais e de sistemas sem o custo ou as restrições do ambiente de mainframe. Isso permite ampliar e adaptar os testes de acordo com a demanda, e também ©2014 IDC # 6 fornece um ambiente adequado para testar aplicativos compostos mais amplos, incluindo interfaces Java ou C# e back-ends de COBOL para mainframe. A linha de produtos de testes Silk da Micro Focus é atualmente uma das principais soluções de testes do setor. O Silk inclui a funcionalidade para gerenciar e controlar todo o processo de testes, incluindo a funcionalidade de relatórios, o planejamento de execução manual avançado, testes de desempenho e testes de esforço. Os produtos são compatíveis com testes contínuos guiados por dados, scripts potentes de domínio técnico e testes de regressão automatizados de aplicativos empresariais. Flexibilidade de implantação Além de agilizar as atividades de desenvolvimento ou de testes, resultados da avaliação de portfólio que mostram a falta de flexibilidade de aplicativos, a lentidão na aplicação de mudanças no aplicativo ou a incapacidade de adotar oportunidades de plataforma de custo total de propriedade mais baixo (como aquelas oferecidas por lançamentos posteriores de hardware, como o zEnterprise) podem sugerir a necessidade de analisar a estratégia de implantação. Como aproveitar as curvas de custos de sistemas modernos A última década e meia mostrou sinais de uma mudança de sistemas tradicionais para sistemas básicos baseados em x86/64 da Intel e outras arquiteturas básicas. Esses sistemas estão disponíveis em um mercado altamente competitivo e são fornecidos por diversos grandes fornecedores, que oferecem uma ampla gama de configurações de sistemas e níveis de serviço. A natureza competitiva desse mercado de produtos básicos provocou uma extraordinária aproximação dos preços aos custos de produção, deixando os fornecedores com as margens estreitas nas quais eles se acostumaram a operar. Assim, devido aos competitivos sistemas básicos, as empresas têm a seu dispor um ambiente de hardware altamente econômico que evolui rapidamente, controlado pela evolução da densidade dos chips e pela marcha da lei de Moore. Tais sistemas contrastam com sistemas de mainframe de propriedade exclusiva operados a um nível mais alto de custo e de serviço, e potencialmente fornecendo níveis mais altos de confiabilidade, disponibilidade e segurança. Significativamente, talvez, a mais recente tecnologia de mainframe IBM, a plataforma zEnterprise, compreende não só a arquitetura de chips tradicional da série z, mas também lançamentos recentes que incluem plataformas básicas que rodam AIX, Linux e Windows, proporcionando assim flexibilidade de escolha em um ambiente de servidor empresarial consolidado. Em última análise, as preferências de plataforma são uma função dos conjuntos empresariais de habilidades e experiência. A maioria das grandes empresas tem diversas instalações onde os mainframes ocupam um lugar permanente. Empresas de médio porte tendem a adotar reduções de complexidade e de custo operacional para competir com os membros mais recentes dos seus grupos de pares. As antigas empresas de médio porte que automatizaram cedo e instalaram mainframes são os candidatos mais prováveis para a otimização de cargas de trabalho de produção utilizando hardware básico. Opções de implantação de novos aplicativos Um resultado provável importante da análise de um portfólio de aplicativos é que, para uma lógica de aplicativos de servidor controlada e estável, as questões encontram-se no hardware e no sistema operacional de implantação. Esse pode ser o caso especialmente para aplicativos hospedados em sistemas de mainframe, onde o mainframe é mantido para necessidade exclusiva de um conjunto de aplicativos COBOL desenvolvidos sob medida. A opção de uma nova implantação capaz de transferir a lógica de negócios para sistemas Windows ou Unix pode liberar recursos de produção de mainframe para proporcionar uma expansão mais crítica do sistema ou ©2014 IDC # 7 para fornecer um ambiente de replicação flexível e econômico para organizações que precisam expandir sua cobertura de produção, ao mesmo tempo que gerenciam o uso do mainframe. Tais implementações podem levar, seletivamente, várias cargas de trabalho de mainframe para um hardware alternativo, dependendo do escopo do projeto. Em muitos casos, é possível tomar decisões distintas com relação aos bancos de dados do mainframe e à lógica do aplicativo de mainframe. Assim, os bancos de dados do mainframe, embora de migração complexa e exigindo uma prática de gestão de dados estabelecida fora deste, também podem ser hospedados fora do mainframe para possíveis reduções de custos no que diz respeito a hardware, licenças de software e manutenção. Como alternativa, os bancos de dados podem ser mantidos no mainframe enquanto a lógica de execução que foi migrada para plataformas básicas pode acessar os bancos de dados através de middleware distribuído. O escopo e os limites da modernização de aplicativos são normalmente determinados na fase de análise da iniciativa de modernização, e uma avaliação de competências da empresa geralmente faz parte da análise. Atualmente, a maioria das empresas gerencia grandes instalações de gestão de dados não-mainframe, e a decisão de mover a gestão de dados muitas vezes recai sobre a complexidade da tarefa, a necessidade de redistribuir os funcionários do mainframe e a possibilidade de obter os níveis de serviço necessários fora do ambiente de mainframe. Tais considerações em torno da estratégia de TI e da adequação do aplicativo permanecem questões fundamentais que só podem ser respondidas com base nos objetivos organizacionais. Agilidade de implantação Além de redução dos custos de execução e manutenção do hardware de mainframe, o principal benefício na implantação de hardware básico é a capacidade de responder mais rapidamente às novas necessidades de carga de trabalho. Essa agilidade de implantação permite que novos recursos de baixo custo sejam inseridos na capacidade geral do sistema com o mínimo de recursos. Além disso, um mercado competitivo de serviços de hospedagem e infraestrutura em nuvem está disponível para empresas que queiram tirar proveito de recursos externos para expandir suas cargas de trabalho. O aumento gradual de custos e implantação, e a elasticidade da infraestrutura em nuvem que pode atuar como ambiente de implantação para aplicativos COBOL existentes, podem ser de grande ajuda na migração da empresa para um mundo mais ágil. Micro Focus Enterprise Server A Micro Focus oferece uma solução para auxiliar esse caso: o Micro Focus Enterprise Server, que roda em x86 e outro hardware básico, tem a vantagem de mais de uma década de P&D e é corroborado por implantações em clientes de grande porte. O Micro Focus Enterprise Server é compatível com as principais linguagens de aplicativos de mainframe, com interfaces de comunicação do mainframe, com infraestrutura on-line, e em lote e com acesso a bancos de dados de mainframe, seja no próprio mainframe, seja em outro host, em caso de mudança de hospedagem desses bancos de dados. ©2014 IDC # 8 VISÃO FUTURA A evolução de aplicativos legados precisa considerar um futuro que necessita de arquiteturas de aplicativos mais flexíveis, exige experiências de usuário mais atraentes e em que os conhecimentos de desenvolvimento em linguagens de programação legadas como COBOL estão definhando. Os programadores atuais exigem ferramentas e IDEs de desenvolvimento de aplicativos modernos. Os aplicativos precisam de arquiteturas mais versáteis, interoperáveis e granulares que permitam que partes da funcionalidade sejam expostas em APIs e que o aplicativo tire proveito de serviços em nuvem elasticamente ampliáveis. Interfaces de usuário que pagam um dividendo de produtividade em termos de menos toques, menos telas ou elementos de telas contextuais extra estão sendo exigidas por usuários cada vez mais cercados por uma tecnologia de consumo altamente gráfica fora do trabalho. Como se preparar para aplicações em nuvens Arquiteturas modernas baseadas em estilos de interação de aplicativos Web REST são cada dia mais flexíveis no que diz respeito ao encapsulamento da lógica de negócios existente em seu estado de repouso nativo. Iniciativas SOA realizadas por grandes organizações estabeleceram o ritmo para as arquiteturas Web REST de hoje e começaram o processo necessário de encapsular módulos, ou até mesmo sistemas inteiros, de lógica de negócios existentes em invólucros apropriados, que tornaram tais sistemas interoperáveis no mundo moderno. A SOA trouxe para o primeiro plano o valor dos aplicativos existentes, mas não abordou os encargos de manutenção da lógica de negócios. Além disso, a crescente aceitação de infraestruturas em nuvem ou de plataformas de aplicativos em nuvem para seções em crescimento do portfólio de aplicativos empresariais, embora ainda em seu início, sugere uma menor preocupação com a natureza exata da plataforma contanto que a fidelidade funcional seja mantida. Em outras palavras, os serviços em nuvem estão habituando gradualmente as empresas a uma modalidade de operação em que o acordo de nível de serviço é mais importante do que a natureza exata das plataformas por trás dele. Ao passar os aplicativos para a nuvem, as empresas podem exigir fidelidade funcional, mas não necessariamente uma plataforma idêntica. Mobilidade e modernização da interface do usuário Os aplicativos de interface do usuário têm sofrido várias mudanças perturbadoras desde a computação dominada por mainframe. Depois que as interfaces gráficas do usuário dominaram a interação humana, a arquitetura Web tornou-se a forma generalizada para criar novos aplicativos de front-end. Atualmente, as interfaces de toque estão dominando muitas categorias da computação empresarial, especialmente para a mão de obra móvel. A prevalência de dispositivos móveis está criando mudanças na arquitetura de sistemas de back-end, forçando sua encapsulação com APIs de REST para que possam integrar-se com os novos fluxos de trabalho móveis. Isso significa que os sistemas de back-end exigem trabalho contínuo em modularidade, encapsulamento e separação de funções em unidades de trabalho independentes que possam ser consumidas por meio de APIs por aplicativos menores, orientados para a tarefa. A agilidade de desenvolvimento e de implantação estará em alta demanda à medida que inevitáveis e inesperadas mudanças precisem ser feitas nos aplicativos existentes. ©2014 IDC # 9 DESAFIOS E OPORTUNIDADES As abordagens de preservação de código destacadas neste documento são adequadas para diversas situações empresariais. No entanto, as organizações que contemplam essas abordagens devem considerar os desafios a seguir. Transformações na oferta de desenvolvedores Embora haja escassez de desenvolvedores para quase toda plataforma ou linguagem de programação, os conhecimentos específicos do COBOL podem ser ampliados graças à nova tecnologia de IDE de COBOL, mais atraente e acessível a programadores de Visual Studio e Eclipse. A IDC espera que os pontos fracos do COBOL aumentem até o final da década e atinjam seu apogeu no decorrer da próxima década. Isso permite um tempo considerável para otimizar os ativos de COBOL existentes usando as técnicas descritas neste documento. Os programadores podem ser treinados em linguagens mais antigas, e algumas organizações terceirizadas de desenvolvimento de aplicativos podem integrar esse treinamento em seus programas para mitigar a escassez. Dito isto, a principal ferramenta estratégica disponível para que as organizações de TI lidem com questões de conhecimento são ferramentas de modernização que permitam que os desenvolvedores modernos trabalhem com ativos de código de mainframe. Tais ferramentas permitem o uso de IDEs modernos para desenvolver e testar código de mainframe e proporcionar uma oportunidade para que os responsáveis pela modernização empreguem o conjunto de conhecimento de desenvolvedores em transformação. Atrasos de TI e o ambiente regulatório intensificado As empresas estão constantemente tentando manter os requisitos do negócio em dia. Os requisitos da modernização de aplicativos muitas vezes têm que competir com a necessidade de inovação empresarial e com novos aplicativos para lidar com o ambiente de negócios em constante transformação. No entanto, um ambiente regulatório intensificado significa que alguns, se não a maioria dos aplicativos de mainframe, precisa que planos de modernização sejam colocados em prática e integrados aos planos gerais de portfólio de aplicativos de TI. Uma visão holística que leve em conta aplicativos internos e terceirizados, potencializando os recursos apropriados para cada um, é essencial para atender a novos requisitos. Ferramentas modernas para a gestão de portfólios e arquitetura de TI são úteis na gestão da complexidade que as empresas enfrentam hoje em dia e podem injetar nova agilidade e produtividade no problema do atraso em TI. Becos sem saída de arquitetura Nem todos os códigos são adequados para a evolução a longo prazo. Alguns aplicativos podem ter sido projetados em torno de conceitos arquitetônicos antigos, que podem não ser mais adequados aos novos requisitos. É importante que as organizações tomem as decisões corretas sobre a longevidade esperada dos ativos de código durante a fase de análise do esforço de modernização. Uma avaliação de arquitetura deve fazer parte da fase global de análise, e pode ser necessário destinar aplicativos que não estejam de acordo com os padrões de arquitetura necessários para substituição por aplicativos comprados ou recém-desenvolvidos em plataformas modernas. ©2014 IDC # 10 CONCLUSÃO Em termos gerais, a modernização de aplicativos pode ser vista como abrangendo quatro etapas fundamentais: análise, desenvolvimento, teste e implantação. Uma fase de análise aprofundada pode resultar na classificação de ativos de aplicativos legados em qualquer número de taxonomias adequadas e ajudar a identificar as atividades de modernização que trarão o maior retorno. Aplicativos de alto valor que são estáveis, mas exigem manutenção contínua podem ser desenvolvidos, testados e até mesmo implantados em plataformas de aplicativos modernas sem que seja necessário reescrever o código COBOL. Tais abordagens podem trazer desenvolvimento significativo e redução de custos de entrega, aumentar a produtividade do desenvolvedor e, potencialmente, atrair desenvolvedores para treinamento em COBOL usando cadeias de ferramentas de desenvolvedor modernas e conhecidas, como Visual Studio e Eclipse. Na verdade, com tais abordagens disponíveis e um modelo contemporâneo no qual os sistemas de negócios COBOL básicos possam ser transformados, o termo "legado" no que se refere a esses sistemas já não é mais adequado. Como os Diretores de Tecnologia da Informação que dirigem negócios em COBOL indicaram à IDC em mais de uma ocasião, "Esses aplicativos não são uma herança, eles são o centro dos meus negócios". SAIBA MAIS Pesquisas relacionadas à IDC Worldwide Application Development and Deployment 2014 Top 10 Predictions (IDC Nº 246917, março de 2014) The Evolving State of HTML5 (IDC Nº 247499, março de 2014) Market Analysis Perspective: Worldwide Application Development Software, 2013 — The Transformations Continue (IDC Nº 245089, dezembro de 2013) 2014 Worldwide Software Developer and ICT-Skilled Worker Estimates (IDC Nº 244709, dezembro de 2013) IDC Predictions 2014: Battles for Dominance — and Survival — on the 3rd Platform (IDC Nº 244606, dezembro de 2013) The Business Value of IBM zEnterprise System Deployments (Artigo patrocinado pela IDC, Nº 242042, julho de 2013) Worldwide Development Languages, Environments, and Tools 2013–2017 Forecast: Monetization Pressures in Play (IDC Nº 241570, junho de 2013) Worldwide Development Languages, Environments, and Tools 2012 Vendor Shares (IDC Nº 241569, junho de 2013) Going Mobile: The Coming Convergence of Front-End Application Platforms and Ecosystems (IDC Nº 234000, março de 2012) Outras pesquisas relacionadas The challenges of using green screen applications (Resultados da pesquisa da Vanson Bourne, Racepoint e Micro Focus, janeiro de 2014) The problems of outsourcing application development and testing (Resultados da pesquisa da Vanson Bourne, Racepoint e Micro Focus, dezembro de 2013) ©2014 IDC # 11 Sobre a IDC A International Data Corporation (IDC) é a principal provedora global de inteligência de mercado, serviços de consultoria e eventos para os mercados de tecnologia da informação, telecomunicações e tecnologia de consumo. A IDC ajuda profissionais de TI, executivos e a comunidade de investimentos a tomar decisões em compras de tecnologia e estratégia de negócios com base em fatos. Mais de 1.100 analistas da IDC fornecem conhecimento perito global, regional e local sobre oportunidades e tendências em tecnologia e no setor em mais de 110 países em todo o mundo. Há 50 anos, a IDC proporciona insights estratégicos para ajudar nossos clientes a atingir seus objetivos de negócios. A IDC é subsidiária da IDG, a empresa líder mundial em mídia, tecnologia, pesquisa e eventos. Sede global 5 Speen Street Framingham, MA 01701 EUA 508-872-8200 Twitter: @IDC idc-insights-community.com www.idc.com Aviso de direitos autorais Publicação externa de informações e dados da IDC - Qualquer informação da IDC a ser usada em publicidade, comunicados à imprensa ou material promocional exige aprovação prévia por escrito do vicepresidente da IDC ou do gerente geral no país em questão. Uma minuta do documento proposto deve acompanhar a solicitação. A IDC se reserva o direito de negar a aprovação de uso externo por qualquer motivo. Copyright 2014 IDC. É totalmente proibida a reprodução sem autorização por escrito.