Orientações para decisões sobre arquiteturas

41 min de leitura
Patrocinado
Imagem de: Orientações para decisões sobre arquiteturas
Avatar do autor

Equipe TecMundo

@tec_mundo

Por: Romeo Kienzler

Atualizado em: 17 de junho de 2019 | Publicado em: 8 de abril de 2019

A IBM Data and Analytics Reference Architecture define possíveis componentes em um nível abstrato. O objetivo deste artigo é escolher entre os componentes necessários e atribuir componentes de arquitetura reais e concretos a eles. O artigo contém informações para complementar o artigo “Lightweight IBM Cloud Garage Method for data science”.

O método é altamente iterativo, então qualquer conclusão ao longo desse processo pode resultar em mudanças nas decisões arquiteturais. No entanto, nunca existem decisões arquiteturais erradas, pois essas decisões levam em consideração todo o conhecimento disponível em um determinado momento. Dito isto, é importante registrar o motivo da tomada de cada decisão. A figura a seguir mostra a IBM Reference Architecture for Cloud Analytics.

IBMIBM Reference Architecture for Cloud Analytics

As seções a seguir fornecem diretrizes para cada componente, explicando qual tecnologia deve ser escolhida e se é necessário que o componente seja incluído.

Fonte de dados

A fonte de dados é uma fonte interna ou externa de obtenção de dados que inclui bancos de dados relacionais; páginas web; CSV, JSON ou arquivos de texto; e dados de vídeo e áudio.

Diretrizes de decisões arquiteturais

Em relação à fonte de dados, não é preciso avaliar muita coisa porque, na maioria dos casos, o tipo e a estrutura de uma fonte de dados já estão definidos e controlados pelas partes interessadas. No entanto, se houver algum controle sobre o processo, os seguintes princípios devem ser considerados:

  • Como é o ponto de entrega?

Os dados corporativos residem principalmente em bancos de dados relacionais que atendem a sistemas OLTP. Normalmente, acessar diretamente esses sistemas não é uma boa prática, mesmo que apenas em modo de leitura, porque os processos ETL estão executando consultas SQL dentro desses sistemas, o que pode prejudicar o desempenho. Uma exceção é o IBM Db2 Workload Manager, pois permite que cargas de trabalho OLAP e ETL sejam executadas em paralelo com uma carga de trabalho OLTP sem piora do desempenho das consultas OLTP, utilizando mecanismos inteligentes de planejamento e priorização. Você pode ler mais sobre o IBM Db2 Workload Manager.

  • Os dados em tempo real precisam ser considerados?

Os dados em tempo real existem em vários formatos e métodos de entrega. Os mais proeminentes incluem telemetria MQTT e dados de sensores (por exemplo, dados do IBM Watson IoT Platform), um endpoint HTTP REST simples que precisa ser sondado ou um soquete TCP ou UDP. Se nenhum processamento downstream em tempo real for necessário, esses dados podem ser testados (por exemplo, utilizando a Cloud Object Store). Se o processamento downstream em tempo real for necessário, leia a seção sobre Análise de Streaming mais adiante neste artigo.

Dados corporativos

Soluções baseadas em cloud tendem a estender o modelo de dados corporativos. Portanto, pode ser necessário transferir continuamente subconjuntos de dados corporativos para a cloud ou acessá-los em tempo real por meio de um gateway de API em uma VPN.

Diretrizes para decisões arquiteturais

Mover dados corporativos para a cloud pode ser caro, então apenas deve ser considerado se houver tal necessidade. Por exemplo, se os dados do usuário são gerenciados na cloud, é suficiente armazenar uma chave primária anônima. Se a transferência de dados corporativos para a cloud for inevitável, as preocupações e regulamentações de privacidade devem ser abordadas. Neste caso, existem duas formas de acesso.

  • Sincronização em batch de um data center corporativo para a cloud;

  • Acesso em tempo real a subconjuntos de dados usando um VPN e um gateway de API.

Diretrizes de tecnologia

Gateway seguro

O gateway seguro permite que aplicativos em cloud acessem hosts e portas especificados em um data center privado através de uma conexão de saída. Portanto, nenhum acesso de entrada externo é necessário. Você pode ir para o serviço Secure Gateway no IBM Cloud para obter mais informações.

Lift

O Lift permite que você migre dados locais físicos para bancos de dados em cloud de uma maneira muito eficiente. Leia mais sobre o IBM Lift CLI.

Rocket Mainframe Data

O serviço Rocket Mainframe Data utiliza funções semelhantes para integração de dados em batch como o Lift, mas é dedicado a mainframes IBM. Você pode acessar mais informações sobre o serviço.

Análise de streaming

O estado da arte atual é o processamento em batch. Porém, de vez em quando o valor de um produto de dados pode ser aumentado drasticamente com a adição de recursos de análise em tempo real, porque a maioria dos dados em escala global perdem valor em questão de segundos. Pense nos dados de bolsas de valores ou no fato de que a câmera de um veículo captura um pedestre atravessando uma rua. Um sistema de análise de streaming permite o processamento de dados em tempo real. Pense nisso como executar dados em uma consulta contínua em vez de executar uma consulta em um conjunto de dados finito.

Diretrizes de decisões arquiteturais

Existe um conjunto relativamente limitado de tecnologias para processamento de streaming em tempo real. As perguntas mais importantes a serem feitas são:

  • Qual é a taxa de transferência necessária?

  • Qual é a latência aceita?

  • Quais tipos de dados devem ser suportados?

  • Que tipo de algoritmos são executados no sistema? Apenas álgebra relacional ou modelagem avançada?

  • Qual é a variação da carga de trabalho e quais são os requisitos de elasticidade?

  • Que tipo de tolerância a falhas e garantias de entrega são necessários?

Diretrizes de tecnologia

No IBM Cloud, há muitas ofertas de serviço para processamento de dados em tempo real; essas ofertas estão detalhadas nas seções a seguir, juntamente com as diretrizes de quando utilizá-las.

Apache Spark e Apache Spark Structured Streaming

O Apache Spark costuma ser a escolha principal quando se trata de processamento de dados a nível de cluster e machine learning. Se você já está utilizando esse framework para processamento em batch, o Apache Spark Structured Streaming deve ser a primeira coisa a considerar. Dessa forma, você pode ter homogeneidade de tecnologia e trabalhos em batch e streaming podem ser executados em conjunto (por exemplo, cruzando um fluxo de registros e uma tabela de referência).

  • Qual é a taxa de transferência necessária? O Apache Spark Structured Streaming suporta a mesma taxa de transferência do modo em batch.

  • Qual é a latência aceita? No Apache Spark v2.3, o modo de processamento contínuo foi introduzido, reduzindo a latência para um milissegundo.

  • Quais tipos de dados devem ser suportados? Um ponto forte do Apache Spark é no uso de dados estruturados e semiestruturados. Os dados de áudio e vídeo não podem se beneficiar dos aceleradores Tungsten e Catalyst do Apache Spark.

  • Que tipo de algoritmos são executados no sistema? Apenas álgebra relacional ou modelagem avançada? O Apache Spark Structured Streaming oferece suporte a consultas relacionais, bem como machine learning, mas este só é compatível com janelas deslizantes e em cascata.

  • Qual é a variação da carga de trabalho e quais são os requisitos de elasticidade? Em razão de sua natureza tolerante a falhas, os clusters do Apache Spark podem ser aumentados e reduzidos de maneira dinâmica.

  • Que tipo de tolerância a falhas e garantias de entrega são necessárias? O Apache Spark Structured Streaming suporta exatamente uma garantia de entrega e, dependendo do tipo de fonte de dados, tolerância total a falhas que causam travamento.

IBM Streams

O IBM Streams é um mecanismo de streaming rápido. Originalmente projetado para aplicativos de monitoramento de rede de baixa latência e alto rendimento, o IBM Streams tem suas raízes na segurança cibernética.

  • Qual é a taxa de transferência necessária? O IBM Streams pode lidar com altas taxas de rendimento de dados, até milhões de eventos ou mensagens por segundo.

  • Qual é a latência aceita? A latência do IBM Streams cai para microssegundos.

  • Quais tipos de dados devem ser suportados? Por meio do modo de transferência binária do IBM Streams, qualquer tipo de tipo de dados pode ser suportado.

  • Que tipo de algoritmos são executados no sistema? Apenas álgebra relacional ou modelagem avançada? O IBM Streams fundamentalmente oferece suporte a toda álgebra relacional. Além disso, por meio de kits de ferramentas, vários algoritmos de machine learning podem ser utilizados. Os kits de ferramentas são um sistema aberto e existem muitos kits de ferramentas de terceiros.

  • Qual é a variação da carga de trabalho e quais são os requisitos de elasticidade? Considerando sua natureza tolerante a falhas, os clusters do IBM Streams podem ser aumentados e reduzidos dinamicamente.

  • Que tipo de tolerância a falhas e garantias de entrega são necessárias? O IBM Streams suporta exatamente uma garantia de entrega e tolerância total a falhas que causam travamento.

NodeRED

NodeRED é um mecanismo de streaming leve. Implementado com o Node.js em JavaScript, pode até mesmo ser executado em uma memória de 64MB (por exemplo, rodando em um Raspberry PI).

  • Qual é a taxa de transferência necessária? A taxa de transferência do NodeRED está ligada às capacidades de processamento de um único núcleo de CPU, por meio da natureza de processamento de eventos do Node.js. Para aumentar a taxa de transferência, várias instâncias de NodeRED foram utilizadas em paralelo. A paralelização não é integrada e precisa ser fornecida pelo desenvolvedor do aplicativo.

  • Qual é a latência aceita? A latência também depende da configuração da CPU e do rendimento, pois um alto rendimento congestiona a fila de eventos e aumenta a latência.

  • Quais tipos de dados devem ser suportados? NodeRED oferece melhor suporte a fluxos JSON, embora qualquer tipo de dados possa ser aninhado em JSON.

  • Que tipo de algoritmos são executados no sistema? Apenas álgebra relacional ou modelagem avançada? O NodeRED tem um dos ecossistemas mais extensos de módulos de código aberto de terceiros. Embora o machine learning avançado não seja suportado nativamente, há planos da IBM para adicionar essas capacidades.

  • Qual é a variação da carga de trabalho e quais são os requisitos de elasticidade? Como a paralelização é responsabilidade do desenvolvedor do aplicativo, para a computação independente, um esquema de balanceamento de carga com algoritmo round-robin oferece suporte à escalabilidade linear e elasticidade total.

  • Que tipo de tolerância a falhas e garantias de entrega são necessárias? O NodeRED não tem tolerância a falhas embutida e nenhuma garantia de entrega.

Apache Nifi

O Apache Nifi é mantido pela Hortonworks e faz parte do IBM Analytics Engine Service.

  • Qual taxa é a de transferência necessária? O Nifi pode lidar com centenas de MBs em um único node e pode ser configurado para lidar com vários GBs no modo de cluster.

  • Qual é a latência aceita? A latência do Nifi é em segundos. Por meio da periodização da mensagem, a compensação entre a taxa de transferência e a latência pode ser ajustada.

  • Quais tipos de dados devem ser suportados? O Nifi oferece melhor suporte a fluxos de dados estruturados, embora qualquer tipo de dados possa ser aninhado.

  • Que tipo de algoritmos são executados no sistema? Apenas álgebra relacional ou modelagem avançada? O Nifi oferece suporte à álgebra relacional de maneira instantânea, mas processadores personalizados podem ser construídos.

  • Qual é a variação da carga de trabalho e quais são os requisitos de elasticidade? O Nifi pode ser facilmente ampliado sem reinicialização, mas sua redução requer a interrupção e inicialização do sistema Nifi.

  • Que tipo de tolerância a falhas e garantias de entrega são necessárias? O Nifi suporta garantia de ponta a ponta exatamente após a entrega.

Além disso, a tolerância a falhas pode ser configurada, mas a recuperação automática não é possível. Outro recurso importante é a contrapressão e liberação de pressão, o que faz com que os nodes em upstream parem de aceitar novos dados e descartem dados não processados se um limite de idade for excedido.

Outros

Existem também outras tecnologias, como Apache Kafka, Samza, Apache Flink, Apache Storm, Total.js Flow, Eclipse Kura e Flogo, que são merecedoras de atenção caso as mencionadas não atendam a todos os seus requisitos.

Integração de dados

Na etapa de integração de dados, os dados são limpos, transformados e, se possível, recursos de downstream são adicionados

Diretrizes de decisões arquiteturais

Existem inúmeras tecnologias para processamento de dados em batch, que é a tecnologia usada para integração de dados. As perguntas mais importantes a serem feitas são:

  • Qual taxa é a de transferência necessária?

  • Quais tipos de dados devem ser suportados?

  • Quais sistemas de origem devem ser suportados?

  • Quais são as habilidades necessárias?

Diretrizes de tecnologia

O IBM Cloud tem muitas ofertas de serviços para integração de dados; a seção a seguir oferece explicações e fornece diretrizes sobre a utilização desses serviços.

Apache Spark

O Apache Spark costuma ser a primeira escolha quando se trata de processamento de dados a nível de cluster e machine learning. O Apache Spark é uma opção flexível que também oferece suporte à gravação de processos de integração em SQL. Todavia, não conta com uma interface de usuário.

  • Qual é a taxa de transferência necessária? O Apache Spark é escalonado linearmente, então a taxa de transferência é apenas uma função do tamanho do cluster.

  • Quais tipos de dados devem ser suportados? O Apache Spark funciona melhor com dados estruturados, mas também há suporte para dados binários.

  • Quais sistemas de origem devem ser suportados? O Apache Spark pode acessar vários dados em SQL e NoSQL, bem como fontes de arquivos. Uma arquitetura de fonte de dados comum permite adicionar recursos e também possui funções de projeto de terceiros.

  • Quais são as habilidades necessárias? São necessários conhecimentos avançados em SQL, e você precisa ter uma certa familiaridade com a programação em Java, Scala ou Python.

IBM Data Stage na Cloud

O IBM Data Stage é uma ferramenta ETL (Extract Transform Load) sofisticada. É de código fechado e suporta edição visual.

  • Qual é a taxa de transferência necessária? O Data Stage pode ser utilizado no modo de cluster, que oferece suporte a escalabilidade horizontal (scale-out).

  • Quais tipos de dados devem ser suportados? O Data Stage tem suas raízes no tradicional Data Warehouse ETL e se concentra em dados estruturados.

  • Quais sistemas de origem devem ser suportados? Novamente, o Data Stage tem como foco sistemas de banco de dados relacionais, mas os arquivos também podem ser lidos, mesmo no Object Store. Além disso, as fontes de dados podem ser adicionadas usando plug-ins que são implementados na linguagem Java.

  • Quais são as habilidades necessárias? Como o Data Stage é um ambiente de edição visual, a curva de aprendizado é baixa. Nenhuma habilidade de programação é necessária.

Outros

É importante saber que a integração de dados é feita principalmente por meio da utilização de ferramentas ETL, SQL simples ou uma combinação de ambos. As ferramentas ETL são tecnologias já consolidadas, e existem muitas ferramentas dessa natureza. Por outro lado, se a análise de streaming for parte do projeto, é importante verificar se uma dessas tecnologias atende aos seus requisitos, pois a reutilização de um sistema desse tipo reduz a heterogeneidade da tecnologia.

Repositório de dados

Este é o armazenamento persistente para seus dados.

Diretrizes de decisões arquiteturais

Existe uma série de tecnologias para dados persistentes e, em sua maioria, são bancos de dados relacionais. O segundo maior grupo são bancos de dados NoSQL, com sistemas de arquivos (incluindo o Cloud Object Store) formando o último grupo. As perguntas mais importantes a serem feitas são:

  • Qual é o impacto do custo de armazenamento?

  • Quais tipos de dados devem ser suportados?

  • Quão bem as consultas pontuais (em dimensões fixas ou dinâmicas) devem ser suportadas?

  • Quão bem as consultas de intervalo (em dimensões fixas ou dinâmicas) devem ser suportadas?

  • Com que eficiência as varreduras completas da tabela devem ser suportadas?

  • Quais são as habilidades necessárias?

  • Qual é o requisito para tolerância a falhas e backup?

  • Quais são as taxas de ingestão constantes e máximas?

  • Qual é a quantidade de armazenamento necessária?

  • Como é o padrão de crescimento?

  • Quais são as políticas de retenção?

Diretrizes de tecnologia

A cloud da IBM possui várias ofertas de serviços para SQL, NoSQL e armazenamento de arquivos. A seção a seguir apresenta explicações sobre esses serviços e fornece orientações sobre quando utilizar cada um deles.

Bancos de dados relacionais

O Dash DB é a oferta com Db2 BLU na Cloud da IBM que conta com armazenamento em coluna, compactação avançada e execução em conjuntos de instruções SIMD (ou seja, processamento vetorizado). Existem, porém, outras opções no IBM Cloud, como Informix, PostgreSQL e MySQL.

  • Qual é o impacto do custo de armazenamento? Os bancos de dados relacionais (RDBMS) apresentam os requisitos mais altos de qualidade de armazenamento. Portanto, o custo do armazenamento relacional é sempre o mais alto.

  • Quais tipos de dados devem ser suportados? Os bancos de dados relacionais são destinados a dados estruturados. Embora existam tipos de dados em coluna para dados binários que podem ser trocados por armazenamento mais barato, isso é apenas um complemento e não uma função central dos bancos de dados relacionais.

  • Quão bem as consultas pontuais (em dimensões fixas ou dinâmicas) devem ser suportadas? Os RDBMS são ótimos para consultas pontuais porque um índice pode ser criado em cada coluna.

  • Quão bem as consultas de intervalo (em dimensões fixas ou dinâmicas) devem ser suportadas? Os RDBMS são ótimos para consultas de intervalo porque um índice pode ser criado em cada coluna.

  • Com que eficiência as varreduras completas da tabela devem ser suportadas? O RDBMS está tentando evitar varreduras completas de tabela em seus otimizadores de consulta SQL. Portanto, o desempenho não é otimizado para varreduras completas de tabela (por exemplo, na contaminação de caches de páginas).

  • Quais são as habilidades necessárias? Você deve possuir habilidades de SQL e, se uma proposta de cloud não for escolhida, você também deve ter habilidades de administrador de banco de dados (DBA) para o banco de dados específico.

  • Qual é o requisito para tolerância a falhas e backup? O RDMBS suporta backup contínuo e tolerância a falhas que causam travamento. Para recuperação, o sistema pode precisar ficar offline.

  • Quais são as taxas de ingestão constantes e máximas? As inserções que utilizam SQL são relativamente lentas, especialmente caso a tabela de destino contenha muitos índices que devem ser rebalanceados e atualizados. Alguns RDBMS suportam inserções em massa de arquivos ignorando o mecanismo SQL, mas dessa forma a tabela geralmente precisa ficar offline durante esse período.

  • Qual quantidade de armazenamento é necessária? O RDMBS funciona muito bem para cerca de 1 TB de dados. Ir além disso é complexo e requer configurações de cluster avançadas.

  • Como é o padrão de crescimento? O RDBMS suporta gerenciamento de volume, então o crescimento contínuo geralmente não é um problema, mesmo quanto ao tempo de execução. Para reduções, o sistema pode precisar ficar offline.

  • Quais são as políticas de retenção? Em geral, o RDBMS oferece suporte a mecanismos de retenção automatizados para excluir dados antigos automaticamente.

Bancos de dados NoSQL

Os bancos de dados NoSQL mais proeminentes, como Apache CouchDB, MongoDB, Redis, RethinkDB, ScyllaDB (Cassandra) e InfluxCloud, são suportados.

  • Qual é o impacto do custo de armazenamento? Os bancos de dados NoSQL geralmente são, por via de regra, tolerantes a falhas de armazenamento. Portanto, os requisitos de qualidade de armazenamento são menores, o que reduz o custo de armazenamento.

  • Quais tipos de dados devem ser suportados? Embora os bancos de dados NoSQL também sejam destinados a dados estruturados, geralmente utilizam JSON como formato de armazenamento, que pode ser enriquecido com dados binários, apesar de muitos dados binários anexados a um documento JSON também poderem diminuir o desempenho.

  • Quão bem as consultas pontuais (em dimensões fixas ou dinâmicas) devem ser suportadas? Alguns bancos de dados NoSQL oferecem suporte à criação de índices, o que melhora o desempenho da consulta de pontos.

  • Quão bem as consultas de intervalo (em dimensões fixas ou dinâmicas) devem ser suportadas? Alguns bancos de dados NoSQL oferecem suporte à criação de índices, o que melhora o desempenho da consulta de intervalo.

  • Com que eficiência as varreduras completas da tabela devem ser suportadas? Os bancos de dados NoSQL funcionam muito bem em varreduras completas de tabela. O desempenho é limitado apenas pela largura de banda de E/S para armazenamento.

  • Quais são as habilidades necessárias? Normalmente, habilidades especiais de linguagem de consulta são necessárias para o desenvolvedor de aplicativos e, se uma proposta de cloud não for escolhida, habilidades de administrador de banco de dados (DBA) são necessárias para o banco de dados específico.

  • Qual é o requisito para tolerância a falhas e backup? Os bancos de dados NoSQL oferecem suporte a backups de maneiras diferentes, mas alguns não oferecem suporte para a versão online. Os bancos de dados NoSQL geralmente são tolerantes a falhas que causam travamento, porém para recuperação o sistema pode precisar ficar offline.

  • Quais são as taxas de ingestão constantes e máximas? Normalmente, nenhum índice precisa ser atualizado e os dados não precisam ser mapeados para as páginas. Em geral, as taxas de ingestão são limitadas ao desempenho de E/S do sistema de armazenamento.

  • Qual quantidade de armazenamento é necessária? O RDMBS tem um bom desempenho para aproximadamente 10-100 TB de dados. As configurações de cluster em bancos de dados NoSQL são muito mais objetivas do que em RDBMS. Configurações bem-sucedidas com menos de 100 nodes e menos de 100.000 leituras e gravações de banco de dados por segundo foram registradas.

  • Como é o padrão de crescimento? O crescimento dos bancos de dados NoSQL não é um problema. Os volumes podem ser adicionados durante o tempo de execução. Para reduções, o sistema pode precisar ficar offline.

  • Quais são as políticas de retenção? Os bancos de dados NoSQL não oferecem suporte a mecanismos de retenção automatizados para excluir dados antigos automaticamente. Portanto, isso deve ser implementado de modo manual, resultando em consultas de intervalo no conjunto de dados.

Armazenamento de objetos

O armazenamento de objetos na cloud torna possível armazenar quantidades praticamente ilimitadas de dados. É comumente utilizado para arquivamento e backup de dados, para aplicativos da web e aplicativos móveis e como armazenamento escalonável e persistente para análises. Dito isso, vamos dar uma olhada nessa alternativa.

  • Qual é o impacto do custo de armazenamento? O armazenamento de objetos é a opção mais barata de armazenamento.

  • Quais tipos de dados devem ser suportados? Dado que o armazenamento de objetos se assemelha a um sistema de arquivos, quaisquer tipos de dados são compatíveis.

  • Quão bem as consultas pontuais (em dimensões fixas ou dinâmicas) devem ser suportadas? Como o armazenamento de objetos se assemelha a um sistema de arquivos, índices externos devem ser criados. No entanto, é possível acessar locais de armazenamento específicos por meio de nomes de pastas e arquivos e deslocamentos de arquivos.

  • Quão bem as consultas de intervalo (em dimensões fixas ou dinâmicas) devem ser suportadas? Como o armazenamento de objetos se assemelha a um sistema de arquivos, índices externos devem ser criados. No entanto, é possível acessar locais de armazenamento específicos por meio de nomes de pastas e arquivos e deslocamentos de arquivos. Com isso, as consultas de intervalo em uma única coluna especificada (por exemplo, dados) podem ser realizadas através de estruturas de pasta hierárquicas.

  • Com que eficiência as varreduras completas da tabela devem ser suportadas? As varreduras completas da tabela são limitadas apenas pela largura de banda de E/S do armazenamento do objeto.

  • Quais são as habilidades necessárias? A nível de arquivo, trabalhar com armazenamento de objetos é muito parecido com trabalhar com qualquer sistema de arquivos. Por meio do Apache SparkSQL e do IBM Cloud SQL Query, os dados no armazenamento de objetos podem ser acessados com SQL. Considerando que o armazenamento de objetos é uma oferta na cloud, nenhuma habilidade de administrador é necessária. O IBM Object Storage também está disponível para uso em locais físicos, com a utilização de uma caixa de dispositivo.

  • Qual é o requisito para tolerância a falhas e backup? A tolerância a falhas e o backup são totalmente gerenciados pelo provedor de cloud. O armazenamento de objetos oferece suporte à replicação em data center intercontinental para alta disponibilidade de maneira imediata.

  • Quais são as taxas de ingestão constantes e máximas? As taxas de ingestão para o armazenamento de objetos dependem da velocidade de uplink para o sistema de armazenamento de objetos.

  • Qual é a quantidade de armazenamento necessária? O armazenamento de objetos é dimensionado para níveis de petabytes.

  • Como é o padrão de crescimento? O aumento e a redução do armazenamento de objetos são totalmente elásticos.

  • Quais são as políticas de retenção? A retenção de dados residentes no armazenamento de objetos deve ser feita manualmente. O layout hierárquico de arquivos e pastas baseado em dados e tempo ajuda nesse sentido. Algumas modalidades de armazenamento de objetos suportam a movimentação automática de arquivos acessados com pouca frequência para um armazenamento mais frio (mais frio significa um armazenamento de maior custo, mas também menor desempenho, ou custo ainda maior de acesso aos arquivos).

Descoberta e exploração

Este componente permite a visualização e criação de métricas de dados.

Diretrizes de decisões arquiteturais

Em vários modelos de processos, a visualização e exploração de dados é uma das primeiras etapas. Tarefas semelhantes também são aplicadas no armazenamento de dados tradicional e inteligência empresarial. Portanto, ao escolher uma tecnologia, faça as seguintes perguntas:

  • Que tipos de visualizações são necessários?

  • São necessárias visualizações interativas?

  • As habilidades de codificação estão disponíveis ou são necessárias?

  • Quais métricas podem ser calculadas nos dados?

  • As métricas e a visualização precisam ser compartilhadas com as partes interessadas das empresas?

Diretrizes de tecnologia

A cloud da IBM possui muitas ofertas de serviços para exploração de dados. Algumas das ofertas são de código aberto e outras não. 

Jupyter, Python, pyspark, scikit-learn, pandas, Matplotlib, PixieDust

Jupyter, Python, pyspark, scikit-learn, pandas, Matplotlib e PixieDust são todos de código aberto e suportados pelo IBM Cloud. Alguns desses componentes possuem recursos sobrepostos, e alguns deles têm recursos complementares. Isso pode ser determinado respondendo às perguntas sobre arquitetura.

  • Que tipos de visualizações são necessários? O Matplotlib suporta a mais ampla gama de visualizações possíveis, incluindo gráficos de execução, histogramas, diagramas de caixa e gráficos de dispersão. O PixieDust (a partir da versão V1.1.11) oferece suporte a tabelas, gráficos de barras, gráficos de linhas, gráficos de dispersão, gráficos de setores, histogramas e mapas.

  • São necessárias visualizações interativas? O Matplotlib cria gráficos estáticos, e o PixieDust oferece suporte a gráficos interativos.

  • As habilidades de codificação estão disponíveis ou são necessárias? O Matplotlib requer habilidades de codificação, mas o PixieDust não. Para calcular métricas, algum código é necessário.

  • Quais métricas podem ser calculadas nos dados? Utilizando scikit-learn e pandas, todas as métricas de última geração são suportadas.

  • As métricas e a visualização precisam ser compartilhadas com as partes interessadas das empresas? O Watson Studio suporta o compartilhamento de Jupyter Notebooks, também utilzando um sistema de gerenciamento de usuários e acesso refinado.

SPSS Modeler

O SPSS Modeler está disponível na cloud e também como um produto independente.

  • Que tipos de visualizações são necessáriao? SPSS Modeler suporta as seguintes visualizações prontas para uso imediato:

  • Barra

  • Setores

  • Barra 3D

  • Setores 3D

  • Linha

  • Área

  • Área 3D

  • Path

  • Ribbon

  • Superfície

  • Dispersão

  • Bolha

  • Histograma

  • Caixa

  • Mapa

Você pode obter mais informações no IBM Knowledge Center.

  • São necessárias visualizações interativas? As visualizações do SPSS Modeler não são interativas.

  • As habilidades de codificação estão disponíveis ou são necessárias? O SPSS Modeler não requer nenhuma habilidade de codificação.

  • Quais métricas podem ser calculadas nos dados? Todas as métricas de última geração são suportadas utilizando o node de Data Audit.

  • As métricas e a visualização precisam ser compartilhadas com as partes interessadas das empresas? O Watson Studio suporta o compartilhamento de SPSS Modeler Flows, também utilizando um sistema de gerenciamento de usuário e acesso de baixa granularidade. No entanto, esse tipo de sistema pode não ser adequado para as partes interessadas.

IBM Watson Analytics

O IBM Watson Analytics é uma oferta de Software como Serviço (SaaS) completa para exploração, visualização e modelagem de dados totalmente automatizadas.

  • Que tipos de visualizações são necessários? O IBM Watson Analytics suporta as seguintes modalidades para uso imediato:

  • Barra

  • Árvore de Decisão

  • Espiral

  • Área

  • Bolha

  • Combinação

  • Mostrador

  • Grade (grid)

  • Mapa de calor

  • Rede

  • Setores

  • Tabela

  • Treemap

  • Nuvem de palavras

Você pode encontrar mais informações na página da Watson Analytics.

  • São necessárias visualizações interativas? O IBM Watson Analytics não apenas suporta visualizações interativas, mas também a criação interativa e mortificações de visualizações.

  • As habilidades de codificação estão disponíveis ou são necessárias? O IBM Watson Analytics é uma solução totalmente baseada em UI.

  • Quais métricas podem ser calculadas nos dados? Embora todas as métricas de última geração sejam suportadas utilizando a função Resumo, esta ferramenta é voltada a usuários corporativos, de modo que os cientistas de dados podem se perder em abstrações.

  • As métricas e a visualização precisam ser compartilhadas com as partes interessadas das empresas? O IBM Watson Analytics é uma plataforma colaborativa com funções de alto nível perfeitamente adequadas para apresentar às partes interessadas dos negócios.

Insights acionáveis

É nesse ponto que a maior parte do seu trabalho se concentra. É a etapa na qual você cria e avalia seus modelos de machine learning e aprendizagem profunda.

Diretrizes de decisões arquiteturais

Existem inúmeras tecnologias para criar e avaliar modelos de machine learning e de aprendizagem profunda. Embora as diferentes tecnologias se distinguam em função e desempenho, essas diferenças são geralmente minúsculas. Portanto, as perguntas que você deve se fazer são:

  • Quais são as habilidades disponíveis em relação às linguagens de programação?

  • Quais são os custos das habilidades em linguagens de programação?

  • Quais são as habilidades disponíveis em relação aos frameworks?

  • Quais são os custos das habilidades em relação aos frameworks?

  • O intercâmbio de modelos é necessário?

  • É necessário treinamento paralelo ou baseado em GPU ou pontuação?

  • Algoritmos precisam ser ajustados ou novos algoritmos devem ser desenvolvidos?

Diretrizes de tecnologia

Como há uma abundância de tecnologias de código aberto e fechado, estou destacando as mais relevantes neste artigo. Embora seja o mesmo para as outras seções, as decisões tomadas nesta seção são muito propensas a mudanças devido à natureza iterativa deste modelo de processo. Portanto, mudar ou combinar várias tecnologias não é um problema, embora as decisões que levam a essas mudanças devam ser explicadas e registradas.

IBM Watson Analytics

A oferta de SaaS foi introduzida neste artigo. O Watson Analytics possui recursos de modelagem automatizada, o que faz com que seja um candidato nesse caso também.

  • Quais são as habilidades disponíveis em relação às linguagens de programação? Por ser uma oferta completamente baseada em UI, o Watson Analytics não requer nenhuma habilidade de programação.

  • Quais são os custos das habilidades em linguagens de programação? Por ser uma oferta completamente baseada em UI, o Watson Analytics não requer nenhuma habilidade de programação.

  • Quais são as habilidades disponíveis em relação aos frameworks? Normalmente, não há habilidades disponíveis dentro da equipe, mas a curva de aprendizado é muito íngreme.

  • Quais são os custos das habilidades em relação aos frameworks? Como a curva de aprendizado é íngreme, os custos de aprendizado da ferramenta são baixos.

  • O intercâmbio de modelos é necessário? O Watson Analytics não oferece suporte para importação ou exportação de modelos.

  • É necessário treinamento paralelo ou baseado em GPU ou pontuação? O Watson Analytics gerencia o dimensionamento automaticamente.

  • Algoritmos precisam ser ajustados ou novos algoritmos devem ser desenvolvidos? O Watson Analytics não permite ajustes ou introdução de novos algoritmos que não são suportados pela ferramenta.

SPSS Modeler

O SPSS Modeler já foi apresentado nesse artigo.

  • Quais são as habilidades disponíveis em relação às linguagens de programação? Por ser uma oferta completamente baseada em UI, o SPSS não requer habilidades de programação, embora possa ser estendido usando scripts do R.

  • Quais são os custos das habilidades em linguagens de programação? Por ser uma oferta completamente baseada em UI, o SPSS não requer habilidades de programação, embora possa ser estendido usando scripts do R.

  • Quais são as habilidades disponíveis em relação aos frameworks? O SPSS é líder do setor, portanto as habilidades geralmente estão disponíveis.

  • Quais são os custos das habilidades em relação aos frameworks? Os custos dos especialistas são geralmente mais baixos em ferramentas baseadas em UI do que em frameworks de programação.

  • O intercâmbio de modelos é necessário? O SPSS Modeler oferece suporte para PMML.

  • É necessário treinamento paralelo ou baseado em GPU ou pontuação? O SPSS Modeler suporta dimensionamento por meio do IBM Analytics Server ou IBM Watson Studio usando Apache Spark.

  • Algoritmos precisam ser ajustados ou novos algoritmos devem ser desenvolvidos? Os algoritmos do SPSS Modeler não podem ser alterados, mas você pode adicionar algoritmos ou personalizações utilizando a linguagem em R.

R/R-Studio

R e R-Studio são padrões para ciência de dados baseados em código aberto. Eles também possuem suporte no IBM Cloud através do IBM Watson Studio.

  • Quais são as habilidades disponíveis em relação às linguagens de programação? As habilidades de programação em R geralmente estão amplamente disponíveis porque é uma linguagem de programação padrão em muitos currículos universitários pautados em ciências naturais. A linguagem pode ser adquirida rapidamente porque é uma linguagem procedural com suporte de programação funcional limitado.

  • Quais são os custos das habilidades em linguagens de programação? Os custos da programação em R são geralmente baixos.

  • Quais são as habilidades disponíveis em relação aos frameworks? R não é apenas uma linguagem de programação, mas também requer conhecimento do funcionamento de ferramentas (R-Studio) e, especialmente, conhecimento da biblioteca em R (CRAN), com mais de 6.000 pacotes.

  • Quais são os custos das habilidades em relação aos frameworks? Os custos dos especialistas estão correlacionados com o conhecimento da biblioteca CRAN e anos de experiência e na faixa padrão de custos de programadores.

  • O intercâmbio de modelos é necessário? Algumas bibliotecas em R oferecem suporte à troca de modelos, mas isso não é algo padronizado.

  • É necessário treinamento paralelo ou baseado em GPU ou pontuação? Algumas bibliotecas em R suportam escalonamento e aceleração de GPU, mas isso não é algo padronizado.

  • Algoritmos precisam ser ajustados ou novos algoritmos devem ser desenvolvidos? R demanda que algoritmos sejam implementados em C/C++ para execução rápida. Portanto, ajustes e desenvolvimento personalizado geralmente envolvem codificação em C/C++.

Python, pandas e scikit-learn

Embora R e R-Studio tenham sido o padrão para ciência de dados baseada em código aberto por algum tempo, Python, pandas e scikit-learn estão logo atrás. O Python é uma linguagem de programação muito mais limpa do que R e mais fácil de aprender. O pandas é o equivalente em Python dos quadros de dados em R, suportando acesso relacional aos dados. Por fim, o scikit-learn agrupa muito bem todos os algoritmos de machine learning necessários; também é compatível com o IBM Cloud por meio do IBM Watson Studio.

  • Quais são as habilidades disponíveis em relação às linguagens de programação? As habilidades em Python estão amplamente disponíveis porque Python é uma linguagem de programação limpa e fácil de aprender.

  • Quais são os custos das habilidades em linguagens de programação? Por conta das propriedades de Python mencionadas acima, o custo das habilidades de programação em Python é muito baixo.

  • Quais são as habilidades disponíveis em relação aos frameworks? Pandas e scikit-learn são estruturas muito limpas e fáceis de aprender. A habilidades estão, portanto, amplamente disponíveis.

  • Quais são os custos das habilidades em relação aos frameworks? Por conta das propriedades mencionadas anteriormente, os custos das habilidades são muito baixos.

  • O intercâmbio de modelos é necessário? Todos os modelos do scikit-learn podem ser serializados e desserializados. Há suporte a PMML via bibliotecas de terceiros.

  • É necessário treinamento paralelo ou baseado em GPU ou pontuação? Nem GPU nem escalabilidade horizontal (scale-out) são suportados, embora os recursos de escalabilidade vertical (scale-up) possam ser adicionados individualmente para fazer uso de vários núcleos.

  • Algoritmos precisam ser ajustados ou novos algoritmos devem ser desenvolvidos? Os algoritmos do scikit-learn são implementados de forma muito limpa. Todos eles seguem a API de pipelines, facilitando a reutilização e o intercâmbio. A álgebra linear é desenvolvida ao longo de toda a biblioteca numpy. Portanto, ajustar e adicionar algoritmos é feito de forma simples e objetiva.

Python, Apache Spark e SparkML

Embora Python, pandas e scikit-learn sejam mais populares, o ecossistema do Apache Spark está se atualizando, especialmente em função de seus recursos de escalonamento. Também é compatível com o IBM Cloud por meio do IBM Watson Studio.

  • Quais são as habilidades disponíveis em relação às linguagens de programação? O Apache Spark oferece suporte a Python, programação em Java, Scala e R como linguagens de programação.

  • Quais são os custos das habilidades em linguagens de programação? Os custos dependem de qual linguagem de programação é adotada, sendo Python normalmente a alternativa mais barata.

  • Quais são as habilidades disponíveis em relação aos frameworks? As habilidades do Apache Spark estão em alta demanda e geralmente não se encontram disponíveis.

  • Quais são os custos das habilidades em relação aos frameworks? As habilidades do Apache Spark estão em alta demanda e geralmente são caras.

  • O intercâmbio de modelos é necessário? Todos os modelos SparkML podem ser serializados e desserializados. Há suporte a PMML via bibliotecas de terceiros.

  • É necessário treinamento paralelo ou baseado em GPU ou pontuação? Todos os trabalhos do Apache Spark são inerentemente paralelos. No entanto, as GPUs são compatíveis apenas com bibliotecas de terceiros.

  • Algoritmos precisam ser ajustados ou novos algoritmos devem ser desenvolvidos? Assim como no scikit-learn, os algoritmos são implementados de forma muito limpa. Todos eles seguem a API de pipelines, facilitando a reutilização e o intercâmbio. A álgebra linear é totalmente desenvolvida de acordo com bibliotecas integradas do Apache Spark. Portanto, ajustar e adicionar algoritmos é simples.

Apache SystemML

Em se tratando de processamento de dados relacionais, o SQL é líder, principalmente porque um otimizador lida com a execução de consultas otimizadas. Pense no SystemML como um otimizador para álgebra linear que é capaz de criar planos de execução otimizados para trabalhos em execução em frameworks paralelos de dados como o Apache Spark.

  • Quais são as habilidades disponíveis em relação às linguagens de programação? O SystemML possui duas linguagens específicas de domínio (DSL, do inglês domain-specific languages) com sintaxe em R e Python.

  • Quais são os custos das habilidades em linguagens de programação? Embora as DSLs sejam como R e Python, há uma curva de aprendizado envolvida.

  • Quais são as habilidades disponíveis em relação aos frameworks? Habilidades em SystemML são muito raras.

  • Quais são os custos das habilidades em relação aos frameworks? Devido à alta curva de aprendizado e à escassez de habilidades, os custos podem ser altos.

  • O intercâmbio de modelos é necessário? Os modelos SystemML podem ser serializados e desserializados. O PMML não é compatível. O SystemML pode importar e executar modelos Caffe2 e Keras.

  • É necessário treinamento paralelo ou baseado em GPU ou pontuação? Todos os trabalhos do Apache Spark são inerentemente paralelos. O SystemML usa esta propriedade. Além disso, as GPUs também são suportadas.

  • Algoritmos precisam ser ajustados ou novos algoritmos devem ser desenvolvidos? Embora o SystemML venha com um grande conjunto de algoritmos pré-implementados para machine learning e aprendizagem profunda, seus pontos fortes estão na possibilidade de ajustar algoritmos existentes ou implementar novos, pois a DSL permite concentrar-se na implementação matemática do algoritmo. O resto é executado pelo framework. Isso faz com que seja a escolha ideal para esses tipos de tarefas.

Keras e TensorFlow

O TensorFlow é um dos frameworks de aprendizagem profunda mais amplamente usados. Fundamentalmente, é uma biblioteca de álgebra linear que oferece suporte à diferenciação automática. A sintaxe baseada em Python do TensorFlow é relativamente complexa. Dessa maneira, o Keras fornece uma camada de abstração no TensorFlow. Ambos os frameworks são perfeitamente suportados no IBM Cloud por meio do Watson Studio e Watson Machine Learning.

  • Quais são as habilidades disponíveis em relação às linguagens de programação? O Python é a linguagem de programação central para o Keras e o TensorFlow.

  • Quais são os custos das habilidades em linguagens de programação? Como os programadores em Python são mais abundantes que os programadores em Java/Scala, os custos são menores.

  • Quais são as habilidades disponíveis em relação aos frameworks? As habilidades de Keras e TensorFlow são relativamente raras.

  • Quais são os custos das habilidades em relação aos frameworks? Devido à alta curva de aprendizado e à escassez de habilidades, os custos podem ser altos.

  • O intercâmbio de modelos é necessário? O Keras e o TensorFlow possuem seus próprios formatos de intercâmbio de modelos. Existem conversores de e para ONNX.

  • É necessário treinamento paralelo ou baseado em GPU ou pontuação? A execução do TensorFlow no ApacheSpark é compatível através de TensorFrames e TensorSpark. Os modelos Keras podem ser executados no ApacheSpark usando DeepLearning4J e SystemML. Ambos esses últimos frameworks oferecem suporte a GPUs. O TensorFlow (e, portanto, o Keras) também oferece suporte nativo à GPU.

  • Algoritmos precisam ser ajustados ou novos algoritmos devem ser desenvolvidos? O TensorFlow é um mecanismo de execução de álgebra linear. Portanto, é otimizado para ajustes e criação de novos algoritmos. O Keras é uma biblioteca de aprendizagem profunda muito flexível que oferece suporte a muitos layouts de rede neural.

Aplicativos e produtos de dados

Os modelos são bons, mas seu valor aumenta quando podem ser consumidos pelo usuário corporativo comum. Portanto, você deve criar um produto de dados. Os produtos de dados não precisam necessariamente permanecer na cloud. Eles podem ser enviados para aplicativos móveis ou corporativos.

Diretrizes de decisões arquiteturais

Em contraste com o machine learning e os frameworks de aprendizagem profunda, o espaço dos frameworks para a criação de produtos de dados é minúsculo. Isso pode refletir no que se concentra a tecnologia de ponta atual em ciência de dados. Dependendo dos requisitos, os produtos de dados são relativamente centrados na visualização depois que muitos dados de uso de entrada foram coletados. Eles também podem envolver fluxos de trabalho assíncronos, pois a integração de dados em batch e o treinamento e pontuação do modelo são executados no próprio fluxo de trabalho. As perguntas a serem feitas sobre a tecnologia são:

  • Que habilidades existem para desenvolver um produto de dados?

  • Quais habilidades são necessárias para desenvolver um produto de dados?

  • É necessário feedback instantâneo ou o processamento em batch é aceito?

  • Qual é o grau de personalização necessário?

  • Qual é o público-alvo? A implantação em escala de cloud para uma base de uso público é necessária?

Diretrizes de tecnologia

Atualmente, apenas um conjunto limitado de frameworks e tecnologias está disponível em diferentes categorias. Na seção seguinte, expliquei os exemplos mais proeminentes.

R-Shiny

R-Shiny é um ótimo framework para construir produtos de dados. Intimamente vinculado à linguagem R, permite que os cientistas de dados criem rapidamente uma UI sobre os scripts em R existentes.

  • Que habilidades existem para desenvolver um produto de dados? O R-Shiny requer habilidades de desenvolvimento em R. Portanto, é mais apropriado para um ecossistema de desenvolvimento em R.

  • Quais habilidades são necessárias para desenvolver um produto de dados? Embora seja baseado em R, o R-Shiny demanda habilidades adicionais. Para desenvolvedores em R com experiência, a curva de aprendizado é íngreme e o conhecimento adicional a ser adquirido é mínimo.

  • É necessário feedback instantâneo ou o processamento em batch é aceito? O modelo de mensagens do R-Shiny suporta feedback instantâneo da UI quando as estruturas de dados por parte do servidor são atualizadas. Portanto, o tempo de resposta independe do framework e deve ser considerado e resolvido programaticamente por parte do servidor.

  • Qual é o grau de personalização necessário? Embora R-Shiny seja um framework extensível, sua extensão requer um conhecimento profundo do framework e da tecnologia em R. De maneira imediata, há um grande conjunto de widgets de UI e elementos compatíveis, permitindo aplicativos extremamente personalizáveis. Se os requisitos vão além desses recursos, extensões caras são necessárias.

  • Qual é o público-alvo? A implantação em escala de cloud para uma base de uso público é necessária? Os aplicativos de R-Shiny parecem muito profissionais, embora sejam bastante distintos. Portanto, o público-alvo deve aceitar as limitações do design da UI. O R-Shiny é melhor escalonado dinâmica e horizontalmente em um ambiente de contêiner como o Kubernetes. O ideal é que cada sessão de usuário seja executada em seu próprio contêiner porque R e R-Shiny são muito sensíveis a memória principal insuficiente.

Node-RED

Embora o Node-RED seja um ambiente de fluxo de dados/integração de dados sem código ou com baixo nível de código, por causa de sua natureza modular, suporta várias extensões, incluindo a extensão do painel de controle. Esta extensão permite a criação rápida de interfaces de usuário, incluindo visualizações avançadas que são atualizadas em tempo real.

  • Que habilidades existem para desenvolver um produto de dados? Devido à abordagem de desenvolvimento de software baseada em interface de usuário totalmente gráfica, apenas habilidades básicas de programação são necessárias para construir produtos de dados com Node-RED.

  • Quais habilidades são necessárias para desenvolver um produto de dados? Qualquer recurso compatível com a programação baseada em fluxo, conforme ocorre em muitas ferramentas de extração de dados e ETL de última geração, será útil para a rápida familiarização com o Node-RED. É necessário conhecimento básico de JavaScript para criar fluxos avançados e estender o framework.

  • É necessário feedback instantâneo ou o processamento em batch é aceito? A UI reflete instantaneamente as atualizações do modelo de dados. Portanto, todas as considerações acerca do atraso de feedback devem ser consideradas ao desenvolver o fluxo de integração de dados ou comandos potencialmente envolvidos para serviços de terceiros, sejam eles síncronos ou assíncronos.

  • Qual é o grau de personalização necessário? O Node-RED é um framework baseado em Node.j/JavaScript. Widgets de UI customizados demandam habilidades avançadas de desenvolvimento em Node.js.

  • Qual é o público-alvo? A implantação em escala de cloud para uma base de uso público é necessária? O painel do Node-RED pode ser implantado para uma base de usuários públicos, desde que as limitações em relação à personalização da UI sejam aceitáveis. Como o Node.js é executado em um único loop de evento encadeado, o dimensionamento deve ser feito horizontalmente, de preferência através de um ambiente em contêiner. Observação: O Internet of Things Starter kit no IBM Cloud suporta dimensionamento horizontal pronto para uso imediato.

D3

Em se tratando do desenvolvimento de aplicativos customizado, o D3 é um dos frameworks de widget de visualização mais proeminentes e mais amplamente utilizados, com um grande ecossistema de código aberto contribuindo com muitos widgets para cada caso de uso desejável. Há uma boa chance de você encontrar um widget do D3 que seja adequado ao seu caso de uso.

  • Que habilidades existem para desenvolver um produto de dados? O D3 se encaixa melhor em um ecossistema de desenvolvedor já existente, de preferência baseado em JavaScript, embora o JavaScript seja apenas necessário por parte do cliente. Portanto, em relação ao servidor, quaisquer endpoints baseados em REST em qualquer linguagem de programação são suportados. Um exemplo são os endpoints em REST acessados por uma UI do D3 fornecida pelo Apache Livy que encapsula trabalhos do Apache Spark.

  • Quais habilidades são necessárias para desenvolver um produto de dados? O D3 demanda habilidades sofisticadas de D3 e, pelo menos, habilidades de JavaScript por parte do cliente. Habilidades em uma estrutura JavaScript AJAX como AngularJS são altamente recomendadas. Por parte do servidor, são necessários recursos de fornecimento de endpoints em REST para os aplicativos do D3.

  • É necessário feedback instantâneo ou o processamento em batch é aceito? A UI reflete instantaneamente as atualizações do modelo de dados. Portanto, todas as considerações sobre o atraso de feedback devem ser levadas em conta ao desenvolver o fluxo de integração de dados ou comandos potencialmente envolvidos para serviços de terceiros, sejam eles síncronos ou assíncronos.

  • Qual é o grau de personalização necessário? Os aplicativos do D3 geralmente são implementados do zero. Portanto, esta solução oferece mais flexibilidade para o usuário final.

  • Qual é o público-alvo? A implantação em escala de cloud para uma base de uso público é necessária? Por ser um aplicativo nativo em cloud, um produto de dados baseado em D3 pode fornecer todos os recursos para dimensionamento horizontal e vertical e total adoção dos requisitos do usuário.

Segurança, governança da informação e gestão de sistemas

Essa etapa importante pode ser facilmente esquecida. É importante controlar quem tem acesso a quais informações para muitos regulamentos de conformidade. Ademais, as arquiteturas modernas de ciência de dados envolvem muitos componentes que também requerem aspectos operacionais.

Diretrizes de decisões arquiteturais

A privacidade de dados é um grande desafio em muitos projetos de ciência de dados. As perguntas que você deve fazer são:

  • Qual é a granularidade necessária para gerenciar o acesso do usuário aos ativos de dados?

  • Os registros de usuários existentes precisam ser integrados?

  • Quem administra os aspectos operacionais?

  • Quais são os requisitos para retenção de dados?

  • Qual é o nível de segurança necessário contra ataques de hackers?

Diretrizes de tecnologia

Novamente, há uma grande quantidade de software para isso, bem como maneiras de cumprir com os requisitos envolvidos neste tópico. Eu escolhi exemplos representativos para este artigo.

Serviços da Internet

A implantação de um aplicativo da web voltado para o cliente que seja produtivo é acompanhada de sérios riscos. O IBM Cloud Internet Services fornece pontos de presença globais (PoPs). Isso inclui serviço de nome de domínio (DNS), balanceador global de carga (GLB), proteção contra ataques distribuídos de negação de serviço (DDoS), firewall de aplicativo da web (WAF), segurança da camada de transporte (TLS) e cache.

  • Qual é o nível de segurança necessário contra ataques de hackers? Estão sendo usados os serviços da CloudFlare, líder mundial neste espaço.

IBM App ID

O gerenciamento de identidade permite o gerenciamento para usuário baseado na cloud de aplicativos da web e aplicativos mobile, APIs e sistemas de back-end. Os usuários da cloud podem se inscrever e efetuar o login com o registro de usuário escalonável do App ID ou login social com o Google ou Facebook. Os usuários corporativos podem ser integrados utilizando a federação SAML 2.0.

  • Qual é a granularidade necessária para gerenciar o acesso do usuário aos ativos de dados? O IBM App ID suporta gerenciamento de usuário, mas não grupos/funções. Portanto, o acesso controlado deve ser gerenciado no próprio aplicativo.

  • Os registros de usuários existentes precisam ser integrados? O IBM App ID suporta integração de registro usando federação SAML 2.0.

Armazenamento de Objetos

O armazenamento de objetos é um padrão quando se trata de armazenamento moderno e econômico em cloud.

  • Qual é a granularidade necessária para gerenciar o acesso do usuário aos ativos de dados? A integração do IBM Identity and Access Management (IAM) permite o controle de acesso granular no nível do intervalo usando políticas baseadas em funções.

  • Quais são os requisitos para retenção de dados? O armazenamento de objetos oferece suporte a diferentes classes de armazenamento para dados acessados com frequência, dados acessados ocasionalmente e retenção de dados de longo prazo de forma padrão, com vault e cold vault. A classe Flex permite o acesso dinâmico aos dados e automatiza esse processo. A exclusão física de dados ainda deve ser acionada externamente.

  • Quem administra os aspectos operacionais? As opções de resiliência regionais e entre regiões aumentam a confiabilidade dos dados.

  • Qual é o nível de segurança necessário contra ataques de hackers? Todos os dados são, por via de regra, criptografados em repouso e em trânsito. As chaves são gerenciadas automaticamente de forma padrão, mas opcionalmente podem ser autogerenciadas ou gerenciadas utilizando o IBM Key Protect.

IBM Cloud PaaS/SaaS

O IBM Cloud PaaS/SaaS elimina aspectos operacionais de projetos de ciência de dados, pois todos os componentes envolvidos são gerenciados pela IBM.

  • Quem administra os aspectos operacionais? Em PaaS/SaaS, os aspectos operacionais da cloud estão sendo administrados pelo provedor de cloud.

Resumo

Este artigo complementa o artigo “Lightweight IBM Cloud Garage Method for data science” e objetiva ajudar com considerações de implementação.

...

Quer ler mais conteúdo especializado de programação? Conheça o IBM Blue Profile e tenha acesso a matérias exclusivas, novas jornadas de conhecimento e testes personalizados. Confira agora mesmo, consiga as badges e dê um upgrade na sua carreira!

…..

Quer dar o próximo grande passo na sua jornada profissional? Participe do Cloud Training, um curso online e gratuito que vai te preparar para o exame da certificação IBM Cloud Foundations. Inscreva-se já!