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

Serverless com OpenFaaS e PHP

Serverless com OpenFaaS e PHP

O OpenFaaS permite criar e distribuir funções “Serverless” em um ambiente de computação em nuvem. A “function” pode ser uma lógica simples que você programa ou a execução de um binário para realizar uma ação. O termo Serverless é um pouco inadequado, pois você ainda precisa de um servidor ou de muitos servidores, mas ao implantar sua função na nuvem, não precisa se preocupar em escalar ou gerenciar recursos de servidor físico por conta própria. Nesta apresentação
veremos como implementar funções Serverless com OpenFaaS.

Fernando Silva

December 07, 2018
Tweet

More Decks by Fernando Silva

Other Decks in Programming

Transcript

  1. Visão Geral • Serverless • BaaS - Backend as a

    Service • FaaS - Functions as a Service • OpenFaaS • PHP, Serverless e OpenFaaS
  2. O que é Serverless? As arquiteturas sem servidor (serverless) são

    projetos de aplicações que incorporam serviços “Backend as a Service” (BaaS) de terceiros e/ou que incluem execução de código personalizado em contêineres efêmeros gerenciados em uma plataforma “Functions as a Service” (FaaS).
  3. O que é Serverless? • 2017, o Gartner adicionou o

    serverless ao seu “Hype Cycle of Emerging Technologies”, refletindo a explosão de interesse em Function as a Service (FaaS). O Gartner categoriza serverless como estando na fase inicial do ciclo, "innovation trigger".
  4. O que é BaaS? Backend-as-a-service (BaaS) é um serviço de

    computação em nuvem que serve como middleware. O mesmo fornece aos desenvolvedores uma forma para conectar suas aplicações mobile e web a serviços na nuvem a partir de APIs e SDKs.
  5. O que é FaaS? A FaaS pertence a uma categoria

    de CCS (Cloud Computing Services), que fornece uma plataforma para os clientes desenvolverem, executarem e gerenciarem aplicações. Fazê-lo sem a complexa manutenção e construção de infra-estrutura que geralmente é associada ao desenvolvimento e ao lançamento de um aplicativo.
  6. O que é FaaS? É um conceito relativamente novo que

    foi disponibilizado pela primeira vez em 2014 pela hook.io e agora é implementado em serviços como o AWS Lambda, o Google Cloud Functions, o IBM OpenWhisk e o Microsoft Azure Functions.
  7. O que é OpenFaaS? O OpenFaaS é uma estrutura para

    criar funções serverless em contêineres (com o Docker e o Kubernetes). Ele fornece uma funcionalidade integrada, com infraestrutura de auto-recuperação, dimensionamento automático e a capacidade de controlar todos os aspectos do cluster.
  8. API Gateway O API Gateway fornece uma rota externa para

    suas funções e coleta métricas do Native Cloud por meio do Prometheus. Seu API gateway escalará as funções de acordo com a demanda, alterando a contagem de réplicas de serviço no Docker Swarm ou na API do Kubernetes. Uma interface do usuário é preparada para permitir que você invoque funções em seu navegador e crie novas, conforme necessário.
  9. Function Watchdog Você pode transformar qualquer imagem do Docker em

    uma função serverless, adicionando o Function Watchdog (um minúsculo servidor HTTP Golang). O Watchdog é o ponto de entrada que permite que as solicitações HTTP sejam encaminhadas para o processo de destino via STDIN. A resposta é enviada de volta ao requisitor escrevendo para STDOUT a partir da sua aplicação.
  10. Prometheus / Grafana O prometheus é utilizado para monitorar os

    serviços, para o escalonamento automático e mostrando o dimensionamento automático ao vivo em ação.
  11. Docker Docker é uma plataforma Open Source que permite criar,

    executar, testar e implantar aplicações distribuídas dentro de containers.
  12. Docker Swarm O Docker Swarm é uma ferramenta nativa do

    Docker que permite a criação de clusters de Docker, ou seja, podemos fazer com que diversos hosts de Docker estejam dentro do mesmo pool de recursos, facilitando assim o deploy de containers.
  13. OpenFaaS CLI Qualquer container ou processo em um container Docker

    pode ser uma função serverless no FaaS. Usando a FaaS CLI, você pode implantar suas funções ou criar rapidamente novas funções a partir de modelos como o Node.js, Python, PHP...
  14. Configurando o OpenFaaS Supondo que você já tenha o Docker

    instalado, a primeira coisa que você precisa fazer é inicializar o Docker Swarm e implantar a stack do OpenFaaS.
  15. Configurando o OpenFaaS Instale a stack do OpenFaaS clonando o

    repositório do github e executando o script de implementação.
  16. Configurando o OpenFaaS Instalar a estrutura cli do OpenFaaS (faas-cli)

    que permite construir, implementar e invocar suas próprias funções facilmente a partir da linha de comando.
  17. Criando nossa primeira função PHP Um novo arquivo func-ping-php.yml e

    a pasta (func-ping-php) da função será criada.