Upgrade to Pro — share decks privately, control downloads, hide ads and more …

A arquitetura de uma plataforma para Data Scien...

A arquitetura de uma plataforma para Data Science escalável, segura e multiusuário baseada em Spark e Jupyter notebook stack

Apresentação de Luciano Resende no Big Data Week São Paulo 2017 [http://sao-paulo.bigdataweek.com].

Entenda a nova tecnologia de código aberto que construímos para habilitar a IBM Data Science Experience à fornecer aos cientistas de dados uma experiência completa do notebook Jupyter em seu navegador, mantendo a computação e os dados em uma nuvem corporativa escalável e segura.

Big Data Week São Paulo

October 21, 2017
Tweet

More Decks by Big Data Week São Paulo

Other Decks in Technology

Transcript

  1. Luciano Resende Data Science Platform Architect – IBM Spark Technology

    Center A ARQUITETURA DE UMA PLATAFORMA PARA DATA SCIENCE BIG DATA WEEK SÃO PAULO 2017
  2. Arquitetura da Plataforma Jupyter • Interface do notebook é executada

    no navegador • O notebook server disponibiliza os notebooks • Os kernels são responsáveis pela interpretação do conteúdo das células • São responsáveis pela execução do código • Abstraem diferentes linguagens
  3. Características de uma Plataforma Analítica • Grande pool de recursos

    de computação compartilhada (e.g. Cluster Spark) • Nuvem Corporativa, Nuvem Publica ou Hibrida • Dados na nuvem (Data Lakes / Object Store) • Consumidores Distribuídos • Notebooks executados localmente (laptop dos usuários) ou como um serviço • Diferentes padrões de utilização de recursos • Alto número de recursos ociosos
  4. Plataforma Analítica – O estado da arte Plataforma de Data

    Science baseada em Jupyter • Usuário único, compartilhando privilégios e o mesmo sistema de arquivos distribuídos • Jupyter kernels executando como um processo local • Recursos limitados baseado no que está disponível na máquina em que os kernels (e os ”Spark Drivers” associados) estão sendo executados. • Baixa segurança: os usuários podem ver e controlar os processos de cada um usando os utilitários de administração do Jupyter.
  5. Plataforma Analítica – Cluster por usuário Suporte Multiusuário criando-se um

    cluster por usuário • Alto custo de hardware e manutenção • Não elimina a limitação de recursos, pois os kernels ainda rodam em modo ”local” Spark Cluster Bob’s Desktop Multiple Notebooks Jupyter Kernel Gateway (Sandboxed by service user privileges) Jupyter Kernel Gateway Jupyter Notebook Server (with NB2KG) Executors (as Alice) Executors (as Alice) Spark Executors (as JNBG Service User) Kernel [Spark Driver] (yarn-client mode as JNBG Service User) YARN Workers
  6. Jupyter Enterprise Gateway Um gateway multiusuário, escalável e que utiliza

    poucos recursos que possibilitam Jupyter Notebooks a compartilharem recursos de computação de um cluster Spark.
  7. Jupyter Enterprise Gateway Plataformas suportadas • Python/Spark 2.1 com o

    kernel ”iPython” • Com inicialização em demanda do Spark Context • Scala 2.11/ Spark 2.1 com o kernel ”Apache Toree” • Com inicialização em demanda do Spark Context • R / Spark 2.1 with IRkernel
  8. Jupyter Enterprise Gateway • Otimização na alocação de Recursos •

    Kernels sendo executado no Spark em modo ”YARN Cluster” para melhor utilização dos recursos do cluster. • Arquitetura plugável para adicionar suporte à gerenciadores de recursos adicionais (e.g. Kubernetes) • Segurança • Ativar TLS para todas as comunicações de socket • Qualquer comunicação HTTP deve ser criptografada (SSL) • Suporte multiusuário com personificação kerberos • Executar kernel utilizando ”personificação de usuários” do kerberos para aumentar a segurança e o sandboxing. • Use o mesmo ID de usuário para operações interativas e batch.
  9. Jupyter Enterprise Gateway Funcionalidade Jupyter Enterprise Gateway • Execução de

    Jupyter kernels remotamente em Spark clusters • Novos gerenciadores de recursos podem ser plugados • Melhor Segurança • Suporte multiusuário com personificação de usuário Jupyter Enterprise Gateway Jupyter Kernel Gateway Jupyter Notebook Server
  10. Jupyter Enterprise Gateway Spark Cluster Camada de Segurança YARN Workers

    Jupyter Enterprise Gateway Multiusuário Kernels remotos e ciclo de vida do kernel Spark Executors Spark Executors Spark Executors Yarn Container Jupyter Kernel Spark Driver Spark Executors Spark Executors Spark Executors Yarn Container Jupyter Kernel Spark Driver Spark Executors Spark Executors Spark Executors Yarn Container Jupyter Kernel Spark Driver Delegação de usuários: o kernel da Alice’s é executado utilizando o ID de usuário da Alice.
  11. Jupyter Enterprise Gateway - Roadmap • Perfis de configuração para

    Kernel • Habilitar solicitação de kernels configurados com diferentes recursos (por exemplo, pequeno, médio, grande) • Os perfis devem ser definidos pelos Administradores e habilitados para usuário / grupo de usuários. • Interface de Administração • Lista de kernels ativos e ações de administração • Tempo de execução, Gerenciamento de Perfil, etc. • Adicionar novos gerenciadores de recursos • Kubernetes • Ambientes de usuário • High Availability
  12. Jupyter Enterprise Gateway - Resources Jupyter Enterprise Gateway no IBM

    Code https://developer.ibm.com/code/openprojects/jupyter-enterprise-gateway-2/ Jupyter Enterprise Gateway no GitHub https://github.com/jupyter-incubator/enterprise_gateway