Sete problemas de desenvolvimento de aplicativos (e como resolvê-los)

Seu armazenamento de dados está fazendo backup de suas grandes iniciativas ou atrasando você? Se você tiver qualquer um desses problemas, seu armazenamento pode ser o culpado.


image_pdfimage_print

O que acontece quando você cria aplicativos modernos, mas deixa o armazenamento legado para fazer o trabalho pesado? De acordo com uma pesquisa com 200 profissionais de TI, 72% dos entrevistados percebem que o armazenamento pode afetar completamente o desempenho de seus aplicativos e o desenvolvimento de aplicativos. No entanto, 65% admitem que seu armazenamento é muito antigo para lidar com algumas dessas novas cargas de trabalho. Isso parece familiar?

A tecnologia de armazenamento não é mais apenas o problema do administrador de armazenamento. Como proprietário de aplicativos, sua solução de armazenamento pode ser um gargalo ou um acelerador. Se você já se deparou com qualquer um dos itens a seguir, pode ser hora de perguntar: Seu armazenamento está impedindo você?

Junte-se ao desenvolvimento da Pure em 11 de maio para saber como a próxima geração de serviços de armazenamento e dados pode acelerar a velocidade do desenvolvedor e maximizar a produtividade

“Ir entre o local e a nuvem ainda é complicado.”

A nuvem é um catalisador importante para a aceleração do desenvolvimento de aplicativos e um componente integral para muitas estratégias de modernização mais amplas. Uma pesquisa da 451 Research indica que a adoção do armazenamento em nuvem está em ascensão para permitir aplicativos de última geração, microsserviços inovadores e algoritmos que os desenvolvedores mais desejam aproveitar. Quase um terço dos entrevistados usa a nuvem para atender aos requisitos modernos de aplicativos. Mas e o estado dos dados nesse cenário?

A mesma pesquisa mostra que as equipes modernas de desenvolvimento de aplicativos movem dados bidirecionalmente de e para ambientes de nuvem diariamente. Em 29% dos casos, isso acontece continuamente para aplicativos que aproveitam os dados de streaming. Isso é muito tráfego. Se você não conseguir migrar dados facilmente, algo em que o armazenamento legado não é ótimo, você acabará em silos novamente.

Para obter a mobilidade de dados necessária para executar aplicativos em qualquer lugar, você precisará de uma solução de armazenamento uniforme para que o armazenamento de dados em nuvem privada e pública não seja separado. Um ambiente de armazenamento unificado ajuda os aplicativos a falar a mesma língua, não importa onde estejam implantados. Precisa criar rapidamente uma instância baseada em nuvem para teste, garantia de qualidade ou desenvolvimento de aplicativos? Obtenha armazenamento que torna rápido e fácil clonar armazenamento local para a nuvem.

“Queremos adotar contêineres, mas não nos sentimos prontos.”

A virtualização e os contêineres são um grande acelerador de desenvolvimento de aplicativos. Por quê? Eles reduzem o tempo necessário para implantar servidores de meses para minutos, permitem atualizar o código sem reimplantar um aplicativo inteiro e são portáteis entre plataformas. Mas há alguns aspectos complicados para os contêineres, principalmente quando se trata de gerenciar armazenamento persistente para aplicativos stateful.

Containers são, em virtude disso, isolados de seus ambientes subjacentes (incluindo bancos de dados). Quando eles dependem de dados que não podem ser migrados facilmente, você encontra gargalos que podem muito bem cancelar os benefícios. Há algumas maneiras de resolver isso. Em primeiro lugar, você pode ser seletivo com os aplicativos que escolhe para conteinerizar. Aproveite a portabilidade e a facilidade de implantação em vez de confiar em recursos corporativos. Em segundo lugar, adote uma solução de armazenamento persistente subjacente mais inteligente. Isso também deve ser capaz de se conectar a orquestradores de contêineres para facilitar o gerenciamento.

Observação: Containers são frequentemente aproveitados para armazenamento de objetos, o que torna esses dados compartilháveis entre serviços e aplicativos. Siga essa rota e você tem um repositório de dados portátil que praticamente qualquer serviço de nuvem pública ou privada pode acessar por API.

“Ainda temos silos em nossos processos de DevOps.”

A própria natureza do DevOps é quebrar silos para acelerar a entrega de produtos, uma grande parte dos quais está adotando recursos de autoatendimento. As equipes de DevOps mais populares entre as equipes altamente evoluídas são fluxos de trabalho de integração contínua (CI, Continuous Integration)/desenvolvimento contínuo (CD, Continuous Development), infraestrutura de nuvem pública e provisionamento de banco de dados. Isso diz que as equipes avançadas de DevOps estão se envolvendo mais com a administração de banco de dados para provisionar o que precisam, quando precisam, mas fazer o autoatendimento de provisionamento de banco de dados requer simplicidade do armazenamento.

Outro grande desafio para a eficiência de DevOps é uma arquitetura de aplicativos fortemente acoplada. Dependências complexas, armazenamento de dados em silos e SLAs restritivos e bloqueados por fornecedores podem impedir as equipes. Se você está tentando ser mais modular e ágil com o armazenamento legado desenvolvido especificamente, você sentirá a pressão. Para acelerar a entrega e dar às equipes a capacidade de experimentar e trabalhar em seu próprio ritmo, padronize o armazenamento de dados e devolva fluxos de trabalho com armazenamento de dados consolidado que é nativo da nuvem e altamente disponível, e simples o suficiente para quase qualquer pessoa operar.

“Nossos aplicativos essenciais precisam de um armazenamento mais rápido de arquivos e objetos.”

Não importa se os aplicativos estão processando grandes volumes de dados não estruturados para aplicativos de AI ou extraindo insights de várias fontes de dados em uma frota de dispositivos de Internet of Things (IoT) o armazenamento rápido de arquivos e objetos é a chave. Ele não deve ser reservado para dados de arquivamento ou não essenciais; é necessário criar aplicativos de alto desempenho que possam acessar objetos diretamente e com rapidez.

Se você teve dificuldades para obter o desempenho que o desenvolvimento de aplicativos precisa do armazenamento de objetos público baseado em nuvem, pode ter considerado mover o armazenamento de objetos de volta ao local para melhorar esse desempenho. Mas, cuidado para não sacrificar a compatibilidade e a mobilidade. Sem armazenamento unificado e rápido de arquivos e objetos, você terá que fazer concessões.

“Nosso processo de cópia/clone é muito lento para extrair dados para integrações.”

Atrasos significativos nos processos de cópia/clone podem dificultar o aproveitamento de dados para pipelines de CI/CD, que são essenciais para os fluxos de trabalho de teste de DevOps. Se levar uma semana ou mais para executar um processo de cópia/clone, isso é muito lento para acompanhar.

Se você aproveitar a AWS ou o Azure para ambientes de teste automatizado, provavelmente desejará que sua plataforma de armazenamento seja capaz de criar esse clone instantaneamente, não importa onde esteja localizado, economizando tempo e recursos valiosos para você e sua equipe. Quando você precisa de um processo de replicação de dados que se move tão rápido quanto você, o armazenamento flash moderno com ferramentas de automação de cópias (CATs, Copy Automation Tools) permite clonar bancos de dados de produção em minutos e simplificar a forma como você provisiona clones para ambientes de teste automatizado, tudo sem consumir TBs de espaço.

“Podemos usar backups para sandboxes, mas eles usam muitos recursos.”

Backups e snapshots de conjuntos de dados podem ser minas de ouro, especialmente para desenvolvedores de aplicativos. Considere o que você poderia fazer com uma sandbox de um ambiente de produção que esteja o mais próximo possível de viver. Você pode usar sinalizadores sem riscos, executar uma série de testes com mais precisão e experimentar sem as limitações de um ambiente de preparação.

As soluções de backup tradicionais estão quase fora dos limites dos cenários de DevOps, que se movem rapidamente e têm loops iterativos apertados. Acomodar o espaço que os backups tradicionais muitas vezes exigem os torna impraticáveis. Esse é um problema de armazenamento, novamente, e um problema que os appliances de backup modernos podem resolver.

“Perdemos SLAs devido a problemas de acesso aos dados.”

Seja entre você e seus clientes ou internamente entre equipes, um SLA é um contrato que não pode ser violado. Se os dados não estiverem acessíveis, a interrupção do serviço pode significar um SLA perdido e penalidades subsequentes. Por exemplo, se dentro do seu SLA você promete 99,9999% de tempo de atividade e disponibilidade, você deve ser capaz de medir e dar suporte a isso. Quando se trata de dados, isso significa ter uma solução de armazenamento que seja robusta e rápida o suficiente para cumprir esse SLA sempre.

Quando o armazenamento se tornou um gargalo e os dados não podem ser acessados sob demanda, isso acabou se tornando seu problema. A recuperação rápida é essencial para evitar o tempo de inatividade e isso requer uma solução de armazenamento que possa fornecer um backup com níveis de produção.

Se você está modernizando seu aplicativo, precisa modernizar sua pilha de tecnologia de banco de dados

Os analistas do setor da IDC descobriram que 65% das empresas querem modernizar sistemas legados até 2023. Isso significa adotar avanços acelerados por aplicativos, como armazenamento como código, nuvem pública, automação, virtualização e contêineres como serviço. Para esses tipos de tecnologias modernas, você simplesmente não pode esperar que o armazenamento legado carregue a carga.

Se qualquer um desses cenários o atrapalhar como familiar, anote: É hora de repensar seu armazenamento. Você não apenas resolverá esses problemas no futuro, mas possibilitará inovações.