Abrangência Cloud
A computação em nuvem é a disponibilidade sob demanda de recursos do sistema computacional , especialmente armazenamento de dados (armazenamento em nuvem ) e poder computacional , sem gerenciamento ativo direto pelo usuário. Nuvens grandes geralmente têm funções distribuídas em vários locais, cada local sendo um data center. A computação em nuvem depende do compartilhamento de recursos para obter coerência e normalmente usa um modelo de "pagamento conforme o uso", que pode ajudar a reduzir as despesas de capital, mas também pode levar a despesas operacionais inesperadas para usuários inconscientes.
Um exemplo prático e clássico
A Amazon Web Services, Inc. (AWS) é uma subsidiária da Amazon que fornece plataformas de computação em nuvem sob demanda e APIs para indivíduos, empresas e governos, com base no pagamento conforme o uso. Esses serviços da Web de computação em nuvem fornecem uma variedade de infraestrutura técnica abstrata básica e blocos de construção e ferramentas de computação distribuída . Um desses serviços é o Amazon Elastic Compute Cloud (EC2), que permite que os usuários tenham à sua disposição um cluster virtual de computadores , disponível o tempo todo, através da Internet. Os computadores virtuais da AWS emulam a maioria dos atributos de um computador real, incluindo unidades de processamento central de hardware (CPUs) e unidades de processamento gráfico (GPUs) para processamento; memória local/ RAM ; armazenamento em disco rígido/SSD ; uma escolha de sistemas operacionais; rede; e software de aplicativo pré-carregado, como servidores da Web , bancos de dados e gerenciamento de relacionamento com o cliente (CRM).
A tecnologia da AWS é implementada em farms de servidores em todo o mundo e mantida pela subsidiária da Amazon. As taxas são baseadas em uma combinação de uso (conhecido como modelo "Pay-as-you-go"), hardware, sistema operacional, software ou recursos de rede escolhidos pelo assinante , disponibilidade , redundância , segurança e opções de serviço. Os assinantes podem pagar por um único computador virtual da AWS, um computador físico dedicado ou clusters de ambos. Como parte do contrato de assinatura, a Amazon fornece segurança para os sistemas dos assinantes. A AWS opera em várias regiões geográficas globais, incluindo 6 na América do Norte.
A Amazon comercializa a AWS para assinantes como uma forma de obter capacidade de computação em larga escala de forma mais rápida e barata do que construir um farm de servidores físico real. Todos os serviços são cobrados com base no uso, mas cada serviço mede o uso de várias maneiras. A partir de 2017, a AWS possui 33% de toda a nuvem (IaaS, PaaS), enquanto os próximos dois concorrentes, Microsoft Azure e Google Cloud , possuem 18% e 9%, respectivamente, de acordo com o Synergy Group.
Cloud para analytics
+
LINUX e relacionados
A análise de nuvem descreve a aplicação de algoritmos analíticos na nuvem em relação a dados em uma nuvem privada ou pública para então entregar um resultado de interesse . A análise de nuvem envolve a implantação de computação em nuvem escalável com software analítico poderoso para identificar padrões nos dados e extrair novos insights.
Os dados armazenados nas nuvens ajudam a tornar os negócios mais eficientes e dão às empresas uma melhor compreensão do comportamento de seus clientes. À medida que as nuvens se tornam mais seguras, confiáveis e acessíveis, o uso de análise de dados na computação em nuvem também continuará a crescer.
Maior facilidade de acesso e consolidação de dados levam a mais compartilhamento e colaboração entre os funcionários , razão pela qual a análise em nuvem é uma boa opção para empresas globais. Os funcionários podem transferir arquivos com facilidade e colaborar em tempo real ao visualizar análises na nuvem de qualquer lugar do mundo.
As principais plataformas para aplicações de analytics e relacionados (AWS, Azure, GCP e Linux)
AWS
O que você pode fazer com o big data on AWS?
Com a AWS, você pode criar praticamente qualquer aplicação de big data. Estes são apenas alguns exemplos de como as empresas estão fomentando valor por meio do big data na AWS
Análise de big data sob demanda
Exemplos de aplicações do AWS:
Análise de big data sob demanda
Com a AWS, você pode criar uma aplicação de análise inteira para desenvolver seus negócios. Ajuste a escala de um cluster do Hadoop, começando do zero e chegando a milhares de servidores em poucos minutos, e desative o recurso quando tiver terminado de usá-lo. Isso significa que você pode processar cargas de trabalho de big data em menos tempo e com um custo mais baixo.
Análise de Clickstream
Melhore a experiência digital do seu cliente e obtenha um melhor entendimento do seu site. Colete, processe, analise e visualize informações sobre clickstream em tempo real com a AWS.
Extract Transform Load (ETL) controladas por eventos
Use o AWS Lambda para executar transformações de dados (filtrar, classificar, ingressar, agregar e muito mais) em novos dados, além de carregar os conjuntos de dados transformados no Amazon Redshift para realizar análises e consultas interativas.
Aplicações inteligentes
Use o Amazon Machine Learning para adicionar facilmente recursos preditivos às suas aplicações. Combine a capacidade do Amazon Kinesis para consumir dados de mídias sociais ou outras fontes em tempo real e use o Machine Learning para gerar previsões sobre esses dados.
Data Warehousing
Otimize a performance de consultas e reduza custos ao implantar sua arquitetura de data warehousing na Nuvem AWS. O Amazon EMR permite usufruir da capacidade da estrutura do Apache Hadoop para executar transformações de dados (ETL), como também carregar os dados processados no Amazon Redshift para aplicações de inteligência de negócios e análise.
Azure
O que você pode fazer com o Azure?
Microsoft Azure , muitas vezes referido como Azure é um serviço de computação em nuvem operado pela Microsoft para gerenciamento de aplicativos por meio de data centers gerenciados pela Microsoft. Ele fornece software como serviço (SaaS) , plataforma como serviço (PaaS) e infraestrutura como serviço (IaaS) e oferece suporte a muitas linguagens de programação , ferramentas e estruturas diferentes, incluindo software e sistemas específicos da Microsoft e de terceiros.
Azure, anunciado na Professional Developers Conference (PDC) da Microsoft em outubro de 2008, passou pelo codinome interno do projeto "Project Red Dog", e lançado formalmente em fevereiro de 2010, como Windows Azure antes de ser renomeado para Microsoft Azure em 25 de março. 2014.
O Azure usa virtualização em larga escala nos data centers da Microsoft em todo o mundo e oferece mais de 600 serviços.
Serviços de informática
- Máquinas virtuais , infraestrutura como serviço (IaaS) permitindo que os usuários iniciem máquinas virtuais Microsoft Windows e Linux de uso geral , bem como imagens de máquina pré-configuradas para pacotes de software populares.
A maioria dos usuários executa Linux no Azure, algumas das muitas distribuições Linux oferecidas, incluindo o próprio Azure Sphere baseado em Linux da Microsoft.
- Serviços de aplicativos, ambiente de plataforma como serviço (PaaS) permitindo que os desenvolvedores publiquem e gerenciem sites com facilidade.
- Websites , os Sites da Web do Azure permitem que os desenvolvedores criem sites usando ASP.NET , PHP , Node.js , Java ou Python e podem ser implantados usando FTP , Git , Mercurial , Team Foundation Server ou carregados por meio do portal do usuário. Esse recurso foi anunciado em forma de visualização em junho de 2012 no evento Meet Microsoft Azure. Os clientes podem criar sites em PHP, ASP.NET, Node.js ou Python, ou selecionar entre vários aplicativos de código aberto de uma galeria para implantar. Isso compreende um aspecto da plataforma como serviço(PaaS) para a Plataforma Microsoft Azure. Foi renomeado para Web Apps em abril de 2015.
- WebJobs, aplicativos que podem ser implantados em um ambiente do Serviço de Aplicativo para implementar o processamento em segundo plano que pode ser invocado em um agendamento, sob demanda ou executado continuamente. Os serviços Blob, Table e Queue podem ser usados para comunicação entre WebApps, XYZ, softwares iOS e WebJobs e para fornecer estado.
Exemplos de aplicações do Azure:
Desenvolvimento de aplicativo
O desenvolvimento de aplicativos modernos é uma abordagem que habilita uma inovação rápida usando arquiteturas nativas de nuvem com microsserviços acoplados de modo flexível, bancos de dados gerenciados, IA, suporte para DevOps e monitoramento interno. Atenda às necessidades em constante mudança dos clientes com aplicativos que fornecem experiências altamente personalizadas e mudam dinamicamente para reagir aos eventos em tempo real.
IA
Descubra o Azure AI, um portefólio de serviços de IA criado para programadores e cientistas de dados. Tire partido de décadas de investigação inovadora, de práticas de IA responsável e da flexibilidade que o Azure AI oferece para criar e implementar as suas próprias soluções de IA. Aceda a modelos de IA de alta qualidade de visão, voz, idioma e tomada de decisões através de chamadas à API simples e crie os seus próprios modelos de machine learning com ferramentas como o Jupyter Notebook, o Visual Studio Code e frameworks open-source, como o TensorFlow e o PyTorch.
Modernização e migração para a nuvem
As fases do seu percurso de migração e de modernização
A modernização e a migração para a nuvem são um processo contínuo que requer um gerenciamento de alterações significativo na organização envolvendo pessoas, processos e tecnologia. A adoção de uma abordagem holística não só ajudará você a seguir o percurso com êxito, mas também ajudará a garantir que a organização veja novos benefícios, incluindo eficiência, agilidade e escala, quando as cargas de trabalho estiverem em execução na nuvem.
Explore arquiteturas da solução de análise
Data warehouse empresarial
Reúna todos os dados em qualquer escala para obter insights por meio de dashboards analíticos, relatórios operacionais ou análises avançadas para todos os usuários.
Advanced Analytics
Transforme seus dados em insights acionáveis usando as melhores ferramentas de machine learning da categoria para implantar modelos de machine learning personalizados em escala.
Análise em tempo real
Obtenha insights de dados de streaming ao vivo com facilidade. Capture dados de dispositivos IoT ou logs de sequência de cliques do site e processe-os quase em tempo real.
Nuvem híbrida e infraestrutura
Nuvem híbrida refere-se ao uso combinado de plataformas de nuvem privada e pública. O termo pode se referir a uma combinação de soluções de nuvem que operam em conjunto no local e fora do local para fornecer serviços de computação em nuvem a uma empresa.
Internet of Things
A Internet das coisas (IoT) descreve objetos físicos (ou grupos de tais objetos) que são incorporados a sensores , capacidade de processamento, software e outras tecnologias que conectam e trocam dados com outros dispositivos e sistemas pela Internet ou outras redes de comunicação.
O campo evoluiu devido à convergência de várias tecnologias , incluindo computação ubíqua , sensores de commodities , sistemas incorporados cada vez mais poderosos e aprendizado de máquina. Campos tradicionais de sistemas embarcados, redes de sensores sem fio , sistemas de controle, automação (incluindo automação residencial e predial), habilitam de forma independente e coletiva a Internet das coisas. No mercado consumidor, a tecnologia IoT é mais sinônimo de produtos pertencentes ao conceito de " casa inteligente", incluindo dispositivos e aparelhos (como luminárias, termostatos , sistemas e câmeras de segurança doméstica e outros eletrodomésticos) que suportam um ou mais ecossistemas comuns e podem ser controlados por meio de dispositivos associados a esse ecossistema, como smartphones e alto- falantes inteligentes . A IoT também pode ser utilizada em sistemas de saúde .
Governança e segurança
Proteger trabalho remoto exige autenticação forte e controle de acesso a recursos com base em avaliações de risco em tempo real. Proteja os usuários, controle o acesso com políticas inteligentes, monitore continuamente ameaças e tome as medidas adequadas. Use o aprendizado de máquina em tempo real e sinais heurísticos para proteger automaticamente contra identidade comprometida antes de conceder acesso aos seus recursos corporativos.
GCP (Google Cloud Platform)
O que você pode fazer com o GCP?
O Google Cloud Platform ( GCP ), oferecido pelo Google , é um conjunto de serviços de computação em nuvem executados na mesma infraestrutura que o Google usa internamente para seus produtos de usuário final, como Google Search , Gmail , Google Drive e YouTube. Juntamente com um conjunto de ferramentas de gestão, fornece uma série de serviços modulares em nuvem, incluindo computação, armazenamento de dados, análise de dados e aprendizado de máquina. O registro requer dados de cartão de crédito ou conta bancária.
O Google Cloud Platform fornece infraestrutura como serviço , plataforma como serviço e ambientes de computação sem servidor .
Em abril de 2008, o Google anunciou o App Engine , uma plataforma para desenvolvimento e hospedagem de aplicativos da Web em data centers gerenciados pelo Google , que foi o primeiro serviço de computação em nuvem da empresa. O serviço ficou disponível para todos em novembro de 2011. Desde o anúncio do App Engine, o Google adicionou vários serviços de nuvem à plataforma.
O Google Cloud Platform faz parte do Google Cloud , que inclui a infraestrutura de nuvem pública do Google Cloud Platform, bem como o Google Workspace (G Suite), versões corporativas do Android e Chrome OS e interfaces de programação de aplicativos (APIs) para máquinas serviços de aprendizagem e mapeamento empresarial.
Exemplos de aplicações do GCP:
IA e machine learning
O aprendizado de máquina (ML) é um subcampo da inteligência artificial (IA) . O objetivo do ML é fazer com que os computadores aprendam com os dados que você fornece a eles. ... O programa resultante, que consiste no algoritmo e parâmetros aprendidos associados, é chamado de modelo treinado.
Gerenciamento de APIs
Agora que você já sabe o que é uma API, fica mais fácil de entender o que é Google APIs. Basicamente são um conjunto de interfaces de programação de aplicativos desenvolvidas pelo Google, que permitem a comunicação com as aplicações da empresa e sua integração a outros serviços, como:
- Pesquisa;
- Gmail;
- Tradutor;
- Google Maps;
- Aplicativos de terceiros podem usar essas APIs para aproveitar ou ampliar suas funcionalidades.
Por meio das APIs do Google Maps, por exemplo, você pode incorporar um mapa a seu site, mostrando onde fica sua empresa e oferecendo a possibilidade de traçar rotas até o local. Isso facilita com que seus clientes te encontrem e cheguem até você.
Contêineres
Containers são pacotes de software que contêm todos os elementos necessários para rodar em qualquer ambiente . Dessa forma, os containers virtualizam o sistema operacional e rodam em qualquer lugar, desde um data center privado até a nuvem pública ou até mesmo no laptop pessoal de um desenvolvedor.
Análise de dados
Para análise de dados podemos citar o Google Big Query.
O BigQuery permite que as empresas façam uma análise em tempo real dos dados, usando parte de seu processamento potente para apresentar dados rapidamente para o usuário. Para isso, basta configurar a ferramenta da forma desejada e fazer com que ela acesse os dados em rede.
Bancos de dados
Esse sistema permite fazer armazenamento em blocos para máquinas virtuais. Com ele, as máquinas podem compartilhar dados e fazer backups mais rápidos. Além disso, ele permite o acesso de várias delas ao mesmo disco permanente de forma simultânea. O Persistent Disk utiliza discos HDD e SSD para armazenar os dados.
- Google Cloud Storage;
- Cloud SQL;
- Cloud Bigtable;
- Cloud Spanner;
- Cloud Datastore;
- Persistent Disk.
Ferramentas para desenvolvedores
Todo navegador web moderno inclui um poderoso conjunto de ferramentas para desenvolvedores. Essas ferramentas fazem muitas coisas, desde inspecionar o HTML, CSS e JavaScript recém carregado e quais recursos foram requeridos até mostrar quanto tempo a página precisou para carregar.
- O Inspetor: DOM explorer e editor CSS;
- Explore o inspector DOM;
- Explorando o editor de CSS;
- E muito mais.
Saúde e ciências biológicas
A equipe de saúde e ciências biológicas do Google Cloud recentemente apresentou um conjunto de interfaces de programação de aplicativo (APIs) e armazenamentos de dados que pode ser usado para viabilizar a análise de dados de saúde, aplicativos de aprendizado de máquina e integração dos sistemas de saúde em nível de dados, bem como a recuperação e o armazenamento seguros de vários tipos de dados eletrônicos relacionados a essa área. Hoje, iniciamos uma série de postagens do blog para demonstrar a Cloud Healthcare API. Neste primeiro artigo da série, apresentaremos uma breve visão geral da Cloud Healthcare API e os casos de uso revolucionários que ela permite. Além disso, as próximas edições fornecerão mais orientações sobre como implementar a API com segurança e apresentarão detalhes sobre como preencher lacunas entre os sistemas de saúde, os aplicativos da nuvem e os canais paciente/prestador.
Nuvem híbrida e várias nuvens
Nuvem híbrida refere-se ao uso combinado de plataformas de nuvem privada e pública. O termo pode se referir a uma combinação de soluções de nuvem que operam em conjunto no local e fora do local para fornecer serviços de computação em nuvem a uma empresa.
Internet das Coisas (IoT)
Manutenção preditiva
A plataforma de IoT do Google Cloud permite prever automaticamente quando o equipamento precisa de manutenção e otimizar o desempenho em tempo real, além de prever o tempo de inatividade, detectar anomalias e rastrear o status, o estado e o local dos dispositivos.
Monitoramento de recursos em tempo real
Monitore recursos valiosos em tempo real e execute análises complexas e machine learning nos dados coletados para fornecer insights acionáveis de negócios.
Gerenciamento de cadeia de suprimentos e logística
Realize gerenciamento de frotas, rastreamento de inventário, monitoramento da integridade da carga e outras funções essenciais para a empresa com a solução de logística do Google Cloud IoT.
Cidades e edifícios inteligentes
Leve novos níveis de inteligência e automação para casas, edifícios ou cidades inteiras. Basta desenvolver uma solução abrangente que abranja bilhões de sensores e dispositivos no perímetro.
Outros
O Google lista mais de 100 produtos sob a marca Google Cloud. Alguns dos principais serviços estão listados abaixo.
Calcular
App Engine - Plataforma como serviço para implantar aplicativos Java , PHP , Node.js , Python , C# , .Net , Ruby e Go .
Compute Engine - Infraestrutura como serviço para executar máquinas virtuais Microsoft Windows e Linux .
Google Kubernetes Engine (GKE) ou GKE On-Prem oferecido como parte da plataforma Anthos [7] [8] - Contêineres como serviço baseado em Kubernetes .
Cloud Functions - Funções como serviço para executar código orientado a eventos escrito em Node.js, Java, Python ou Go.
Cloud Run - Ambiente de execução de computação baseado em Knative. [9] Oferecido como Cloud Run (totalmente gerenciado) [10] ou como Cloud Run para Anthos. [10] Atualmente suporta GCP, AWS e gerenciamento de VMware. [11]
Armazenamento e Banco de Dados
Cloud Storage - armazenamento de objetos com cache de borda integrado para armazenar dados não estruturados .
Cloud SQL - Database as a Service baseado em MySQL , PostgreSQL e Microsoft SQL Server .
Cloud Bigtable - serviço de banco de dados NoSQL gerenciado .
Cloud Spanner - Serviço de banco de dados relacional escalável horizontalmente e fortemente consistente .
Cloud Datastore - banco de dados NoSQL para aplicativos da Web e móveis.
Disco permanente - armazenamento em bloco para máquinas virtuais do Compute Engine.
Cloud Memorystore - armazenamento de dados na memória gerenciado com base em Redis e Memcached .
SSD local : armazenamento em bloco local, transitório e de alto desempenho.
Filestore: armazenamento de arquivos de alto desempenho para usuários do Google Cloud.
Rede
VPC - Virtual Private Cloud para gerenciar a rede definida por software de recursos de nuvem.
Cloud Load Balancing - Serviço gerenciado e definido por software para balanceamento de carga do tráfego.
Cloud Armor - firewall de aplicativo da Web para proteger cargas de trabalho contra ataques DDoS .
Cloud CDN - Rede de entrega de conteúdo baseada nos pontos de presença do Google distribuídos globalmente.
Cloud Interconnect - Serviço para conectar um data center ao Google Cloud Platform
Cloud DNS - Serviço de DNS gerenciado e autoritário executado na mesma infraestrutura do Google.
Camadas de serviço de rede - Opção para escolher a camada de rede Premium versus Standard para uma rede de melhor desempenho.
Big Data
BigQuery - armazenamento de dados corporativo escalável e gerenciado para análise.
Cloud Dataflow - Serviço gerenciado baseado no Apache Beam para processamento de dados em stream e em lote.
Dataproc - plataforma de big data para executar tarefas do Apache Hadoop e Apache Spark .
Serviço de orquestração de fluxo de trabalho gerenciado pelo Cloud Composer criado no Apache Airflow .
Cloud Datalab - Ferramenta para exploração de dados , análise , visualização e aprendizado de máquina. Este é um serviço Jupyter Notebook totalmente gerenciado.
Cloud Dataprep - Serviço de dados baseado em Trifacta para explorar visualmente, limpar e preparar dados para análise.
Serviço de ingestão de eventos escalável do Cloud Pub/Sub com base em filas de mensagens .
Cloud Data Studio - Ferramenta de business intelligence para visualização de dados por meio de dashboards e relatórios.
Cloud AI
Cloud AutoML - Serviço para treinar e implantar modelos de machine learning personalizados. A partir de setembro de 2018, o serviço está em Beta.
Cloud TPU - Aceleradores usados pelo Google para treinar modelos de aprendizado de máquina.
Cloud Machine Learning Engine - Serviço gerenciado para treinamento e criação de modelos de aprendizado de máquina com base em estruturas convencionais.
Cloud Job Discovery - Serviço baseado nos recursos de pesquisa e aprendizado de máquina do Google para o ecossistema de recrutamento.
Dialogflow Enterprise - Ambiente de desenvolvimento baseado no aprendizado de máquina do Google para criar interfaces de conversação .
Cloud Natural Language - Serviço de análise de texto baseado em modelos do Google Deep Learning .
Cloud Speech-to-Text - Serviço de conversão de fala em texto baseado em aprendizado de máquina.
Cloud Text-to-Speech - Serviço de conversão de texto em fala baseado em aprendizado de máquina.
API Cloud Translation - Serviço para traduzir dinamicamente entre milhares de pares de idiomas disponíveis
API Cloud Vision - Serviço de análise de imagens baseado em aprendizado de máquina
Cloud Video Intelligence - Serviço de análise de vídeo baseado em aprendizado de máquina
Ferramentas de Gestão
Pacote de operações (anteriormente Stackdriver ) - Monitoramento, registro e diagnóstico para aplicativos no Google Cloud Platform e AWS.
Cloud Deployment Manager - Ferramenta para implantar recursos do Google Cloud Platform definidos em modelos criados em YAML , Python ou Jinja2 .
Console do Cloud - Interface da Web para gerenciar recursos do Google Cloud Platform.
Cloud Shell - acesso à linha de comando do shell baseado em navegador para gerenciar recursos do Google Cloud Platform.
Aplicativo móvel do Cloud Console - aplicativo Android e iOS para gerenciar recursos do Google Cloud Platform.
APIs do Cloud - APIs para acessar programaticamente os recursos do Google Cloud Platform
Identidade e Segurança
Cloud Identity - Serviço de logon único (SSO) baseado em SAML 2.0 e OpenID .
Cloud IAM - Serviço de gerenciamento de identidade e acesso (IAM) para definir políticas com base no controle de acesso baseado em função .
Cloud Identity-Aware Proxy - Serviço para controlar o acesso a aplicativos em nuvem executados no Google Cloud Platform sem usar uma VPN .
API Cloud Data Loss Prevention - Serviço para descobrir, classificar e editar dados confidenciais automaticamente.
Aplicação de chave de segurança - Serviço de verificação em duas etapas com base em uma chave de segurança.
Serviço de gerenciamento de chaves na nuvem - serviço de gerenciamento de chaves hospedado na nuvem integrado ao IAM e registro de auditoria.
Cloud Resource Manager - Serviço para gerenciar recursos por projeto, pasta e organização com base na hierarquia.
Cloud Security Command Center - Plataforma de segurança e risco de dados para dados e serviços executados no Google Cloud Platform.
Cloud Security Scanner - Serviço automatizado de verificação de vulnerabilidades para aplicativos implantados no App Engine.
Transparência no acesso - Registros de auditoria quase em tempo real que fornecem visibilidade aos administradores do Google Cloud Platform.
VPC Service Controls - Serviço para gerenciar perímetros de segurança para dados confidenciais nos serviços do Google Cloud Platform.
IoT
Cloud IoT Core - Serviço de gerenciamento e conexão de dispositivos seguros para Internet das Coisas .
Edge TPU - ASIC desenvolvido especificamente para executar inferência na borda. A partir de setembro de 2018, este produto está em versão beta privada.
Cloud IoT Edge - Traz IA para a camada de computação de borda.
Plataforma de API
Plataforma do Google Maps - APIs para mapas, rotas e lugares com base no Google Maps.
Plataforma de API da Apigee - plataforma de gerenciamento de ciclo de vida para projetar, proteger, implantar, monitorar e dimensionar APIs.
Monetização de API - Ferramenta para provedores de API criarem modelos de receita, relatórios, gateways de pagamento e integrações de portal do desenvolvedor.
Portal do desenvolvedor - Plataforma de autoatendimento para desenvolvedores publicarem e gerenciarem APIs.
API Analytics - Serviço para analisar programas orientados por API por meio de monitoramento, medição e gerenciamento de APIs.
Apigee Sense - Ativa a segurança da API identificando e alertando os administradores sobre comportamentos suspeitos da API.
Cloud Endpoints - um proxy baseado em NGINX para implantar e gerenciar APIs.
Infraestrutura de serviço - um conjunto de serviços básicos para criar produtos do Google Cloud.
Linux
Linux para cloud e infraestrutura para dados
O Linux é um sistema operacional baseado no UNIX (Unix-like) padrão POSIX, totalmente aberto, ou seja, seu código fonte está disponível publicamente para qualquer pessoa. Isso motiva grandes empresas a atuarem como “amigos do pingüim”, a exemplo da IBM, Sun, Borland, Nokia, entre outras.
Uma de suas vantagens é possuir várias distribuições, o que permite atingir vários tipos de usuários. A principal diferença entre as distribuições são, basicamente, os programas que cada uma possui, a versão do kernel, e os módulos de instalação e de configuração do sistema operacional.
Diferente do MS-DOS, onde ficávamos restritos a utilizar a FAT como sistema de arquivos, ou do próprio Windows onde podemos optar por FAT/FAT32 e NTFS, no Linux encontramos uma ampla variedade de sistemas de arquivos, entre eles o XFS, JFS, EXT2, EXT3, ReiserFS, etc. Cada sistema de arquivo tem uma característica própria que pode influenciar diretamente na velocidade do banco de dados, uma vez que um sistema de arquivo rápido contribui e muito para a performance do SGBD.
Com o aumento de empresas que comercializam ou distribuem o Linux (RedHat, Mandrake, Conectiva, Suse, etc.), foi necessário criar um padrão de compatibilidade entre elas, chamado de LSB (saiba mais em Linux fondation). O LSB define uma série de regras a fim de estreitar as diferenças existentes entre cada distribuição. Na padronização está incluída o nome dos diretórios, arquivos de configuração, etc.
Utilização do Apache Hive na construção de sistemas para dados em Linux
Apache Hive é um software de Data Warehouse desenvolvido em cima do Apache Hadoop para consulta e análise de dados. O Hive oferece uma interface semelhante ao SQL para consulta de dados em diferentes bancos de dados e sistemas de arquivos integrados ao Hadoop. Comandos tradicionais de SQL são implementados na API Java para serem executados em dados distribuídos. O Hive fornece as abstrações necessárias para integrar comandos do tipo SQL(em uma linguagem chamada HiveQL). Como a maioria das aplicações de Data Warehousing trabalham com consultas baseadas em linguagens SQL, o Apache Hive facilita a portabilidade dessas aplicações para o Hadoop. Embora tenha sido inicialmente desenvolvido pelo Facebook, atualmente é também usado e desenvolvido por outras organizações, como a Netflix e a Amazon.
Comparação com bancos de dados tradicionais
Embora A linguagem HiveQL seja um dialeto de SQL, existem muitas diferenças de estrutura e funcionamento entre o Hive e os bancos de dados relacionais. As diferenças se devem, em grande parte, ao fato de que o Hive foi desenvolvido para uso com o ecossistema Hadoop, e portanto precisa obedecer as restrições do Hadoop e do MapReduce.
Em bancos de dados tradicionais, um esquema de banco de dados é utilizado. Em tais bancos, o esquema é aplicado quando os dados são carregados, assegurando que os dados inseridos seguem os formatos especificados pelas definições de tabela. O Apache Hive, por outro lado, não verifica a compatibilidade dos dados com o esquema no momento do registro. Ao invés disso, são feitas checagens quando os dados são lidos. Cada uma dessas abordagens tem suas vantagens e desvantagens. Conferir os dados com o esquema no momento do registro exige mais processamento, fazendo com que os bancos relacionais demorem mais tempo para o carregamento de dados. No entanto, checagens de qualidade executadas no momento do registro asseguram que os dados não estão corrompidos. A detecção precoce de dados corruptos permite um manejo de exceções mais eficiente, e consultas subsequentes serão mais rápidas. O Hive, por outro lado, permite o registro dinâmico de dados, assegurando um carregamento muito mais rápido, mas com a desvantagem de consultas mais lentas. Hive leva vantagem se o esquema não estiver disponível no momento do registro, sendo gerado posteriormente.
Transações são operações muito importantes em bancos de dados. Como em qualquer sistema gerenciador de banco de dados (SGBD), O Hive permite todas as quatro operações básicas de transação (ACID): Atomicidade, Consistência, Isolamento e and Durabilidade. As transações foram introduzida no Hive na versão 0.13, mas eram limitadas a nível de partição. Nas versões mais recentes do Hive 0.14 essas funções foram incorporadas de forma completa, mantendo as propriedades ACID. As versões subsequentes fornecem transações de linha como INSERT, DELETE and UPDATE. Habilitar transações de INSERT, UPDATE, DELETE requer a configuração adequada de propriedades como hive.support.concurrency, hive.enforce.bucketing, and hive.exec.dynamic.partition.mode.
Segurança
A versão 0.7.0 adicionou integração com a segurança do Hadoop. Hadoop passou a usar o protocolo Kerberos para maior segurança de autorizações. Kerberos permite autenticação mútua entre cliente e servidor. Nesse sistema, o pedido de autorização é enviado junto à requisição em si. Versões anteriores do Hadoop tinham alguns problemas de segurança, como por exemplo a possibilidade de falsificar nomes de usuário configurando a propriedade hadoop.job.ugi e também o fato das operações MapReduce serem executadas pelo mesmo nome de usuário: hadoop ou mapred. A integração do Hive 0.7.0 com a segurança Hadoop, esses problemas foram resolvidos. Permissões para novos arquivos criados são reguladas pelo HDFS. O model de autorização HDFS tem três entidades(user,group e other) com três possíveis permissões(read, write e execute).
Use a tabela a seguir para descobrir diferentes formas de usar o Hive com HDInsight:
Referência da linguagem HiveQL
A referência da linguagem HiveQL está disponível no manual de linguagem.
Hive e estrutura de dados
O Hive sabe como trabalhar com dados estruturados e semi-estruturados. Por exemplo, arquivos de texto onde os campos são delimitados por caracteres específicos. A seguinte instrução do HiveQL cria uma tabela com dados delimitados por espaços:
HiveQL
Copiar
CREATE EXTERNAL TABLE log4jLogs (
t1 string,
t2 string,
t3 string,
t4 string,
t5 string,
t6 string,
t7 string)
ROW FORMAT DELIMITED FIELDS TERMINATED BY ' '
STORED AS TEXTFILE LOCATION '/example/data/';
O Hive também dá suporte a serializador/desserializadores (SerDe) personalizados para dados complexos ou com estrutura irregular. Para saber mais, consulte o documento Como usar SerDe JSON personalizado com o HDInsight.
Para obter mais informações sobre formatos de arquivo compatíveis com o Hive, consulte o Manual de linguagem (
Tabelas internas Hive vs. tabelas externas
Há dois tipos de tabelas que você pode criar com o Hive:
Interna: os dados são armazenados no data warehouse do Hive. O data warehouse está localizado no /hive/warehouse/ no armazenamento padrão para o cluster.
Use tabelas internas quando uma das condições a seguir se aplicar:
Os dados são temporários.
Você quer que o Hive gerencie o ciclo de vida da tabela e dos dados.
Externa: os dados são armazenados fora do data warehouse. Os dados podem ser armazenados em qualquer armazenamento acessível pelo cluster.
Use tabelas externas quando uma das condições a seguir se aplicar:
Os dados também são usados fora do Hive. Por exemplo, os arquivos de dados são atualizados por outro processo (que não bloqueia os arquivos.)
Os dados devem permanecer no local anterior, mesmo depois de descartar a tabela.
Você precisa de um local personalizado, como uma conta de armazenamento não padrão.
Um programa que não seja o hive gerencia o formato de dados, local e assim por diante.
Para obter mais informações, confira a publicação do blog Introdução às tabelas internas e externas do Hive.
UDF (Funções definidas pelo usuário)
O Hive também pode ser estendido por meio de UDF (funções definidas pelo usuário). As UDF permitem que você implemente funcionalidade ou lógica que não é facilmente modelada em HiveQL. Para obter um exemplo de uso de UDFs com o Hive, confira os seguinte documentos:
Usar uma função definida pelo usuário do Java com o Apache Hive
Usar uma função definida pelo usuário do Python com o Apache Hive
Usar uma função definida C# pelo usuário do Java com o Apache Hive
Como adicionar uma função definida pelo usuário personalizado de Apache Hive no HDInsight
Um exemplo de função definida pelo usuário do Apache Hive para converter formatos de data/hora para carimbo de data/hora do Hive
Dados de exemplo
O Hive no HDInsight vem pré-carregado com uma tabela interna chamada hivesampletable. O HDInsight também fornece conjuntos de dados de exemplo que podem ser usados com o Hive. Esses conjuntos de dados são armazenados nos diretórios /example/data e /HdiSamples. Esses diretórios estão no armazenamento padrão do cluster.
Exemplo de consulta do Hive
As seguintes instruções HiveQL projetam colunas para o arquivo /example/data/sample.log:
HiveQL
Copiar
DROP TABLE log4jLogs;
CREATE EXTERNAL TABLE log4jLogs (
t1 string,
t2 string,
t3 string,
t4 string,
t5 string,
t6 string,
t7 string)
ROW FORMAT DELIMITED FIELDS TERMINATED BY ' '
STORED AS TEXTFILE LOCATION '/example/data/';
SELECT t4 AS sev, COUNT(*) AS count FROM log4jLogs
WHERE t4 = '[ERROR]' AND INPUT__FILE__NAME LIKE '%.log'
GROUP BY t4;
No exemplo anterior, as instruções HiveQL executam as seguintes ações:
EXEMPLO DE CONSULTA DO HIVE
Instrução Descrição
DROP TABLE Se a tabela já existir, exclua-a.
CREATE EXTERNAL TABLE Cria uma nova tabela externa no Hive. Tabelas externas só armazenam a definição da tabela no Hive. Os dados são mantidos no local e no formato originais.
FORMATO DA LINHA Informa ao Hive como os dados são formatados. Nesse caso, os campos em cada log são separados por um espaço.
ARMAZENADO COMO ARQUIVO DE TEXTO LOCAL Informa ao Hive o local em que os dados são armazenados (o diretório example/data) e se são armazenados como texto. Os dados podem estar em um arquivo ou distribuídos em vários arquivos dentro do diretório.
SELECT Seleciona uma contagem de todas as linhas nas quais a coluna t4 contém o valor [ERROR]. Essa instrução retorna um valor de 3, já que há três linhas que contêm esse valor.
INPUT__FILE__NAME LIKE '%.log' O Hive tenta aplicar o esquema a todos os arquivos no diretório. Nesse caso, o diretório contém arquivos que não correspondem ao esquema. Para evitar dados incorretos nos resultados, essa instrução informa ao Hive que devemos retornar apenas dados de arquivos que terminam em .log.
Observação
As tabelas externas devem ser usadas quando você espera que os dados subjacentes sejam atualizados por uma fonte externa. Por exemplo, um processo de upload de dados automatizado ou uma operação MapReduce.
Descartar uma tabela externa não exclui os dados, apenas a definição da tabela.
Para criar uma tabela interna em vez de externa, use o HiveQL a seguir:
HiveQL
Copiar
CREATE TABLE IF NOT EXISTS errorLogs (
... (18 linhas)
Referência da linguagem HiveQL
A referência da linguagem HiveQL está disponível no manual de linguagem.
__________________________________________________________________________________
Conclusivo do Caso de Uso
Antigamente, a diferença entre as nuvens públicas, privadas, híbridas e multiclouds era facilmente definida pelo local e a propriedade delas. No entanto, isso não é mais tão simples. Embora tenhamos tentado ao máximo definir os principais tipos de nuvem, fizemos isso já pensando no futuro, pois sabemos que as explicações de ontem podem não ser adequadas para as nuvens de amanhã.
Não existe uma infraestrutura ou arquitetura de nuvem perfeita. Todas as nuvens exigem um sistema operacional, como Linux®, mas a infraestrutura de nuvem pode incluir uma variedade de bare-metal, virtualização ou software de container que abstrai, agrupa e compartilha recursos escaláveis em uma rede. Por isso as nuvens são melhor reconhecidas pelo que elas fazem em vez do que elas são feitas. Você criou uma nuvem se configurou um sistema de TI que:
- Pode ser acessado por outros computadores por meio de uma rede.
- Contém um repositório de recursos de TI.
- Pode ser provisionado e escalado com rapidez.
Não existe solução ideal. Existe a solução que melhor adequa-se para resolver o seu problema de negócio - seja AWS, Azure, GCP, outros ou Linux e relacionados.
__________________________________________________________________________________
Notas e Relacionados
> Inicialmente o nosso propósito com o Blog é efetuar postagens diversas, porém teremos a área separada para as postagens relacionadas ao Constructor SO, que é o nosso Portfólio de Projetos, Agiles e Scrum, em que cada membro do Constructor SO possui a sua área para os seus desenvolvimentos. Dessa forma, cada atualização da área do Constructor SO é seguida de uma postagem no blog do profissional, informando os nossos leitores e criando assim um panorama extensivo de tal trabalho lançado ou versionado;
> A priori em relação aos desenvolvimentos da Space_One Labs, a nossa ideia é lançar e trabalhar de forma aleatória vários projetos da área específica relacionada, não nos tornando assim limitados por apps ou softwares específicos;
> Todos os casos aqui descritos e desenvolvidos, para este blog, no qual me pertence, que seja da categoria "BI Case", são casos de empresas fictícias, criadas e inventadas, para contextualizar e deixar o trabalho mais vivo e realista possível.
#BlogdeMembros #BlogSOLabs / #AWS #Azure #GCP #GoogleCloudPlatform #ApacheHive #Apache #Tecnologia #BI #BusinessIntelligence #ConstructorSO
__________________________________________________________________________________
Daniel Sanches
Engenheiro de Produção, Universo - Universidade Salgado de Oliveira, especializado em Analytics e Data, Business e Tecnologia.
SO Labs Developer Member of Research, Business Intelligence Analyst, Data Analyst and Business Analyst, Data Engineer, Blogger DS Space_One Labs | Space Members
Membro SO Labs Desenvolvedor de Pesquisas, Business Intelligence, Data Engineer, Data Analyst e Negócios
Comments