arquitetura serverless e aws lambda - demo session

Download Arquitetura Serverless e AWS Lambda - Demo Session

Post on 20-Jan-2017

597 views

Category:

Technology

2 download

Embed Size (px)

TRANSCRIPT

  • 2016, Amazon Web Services, Inc. or its Affiliates. All rights reserved.

    Renato Barbosa Enterprise Solutions Architect

    Junho - 2016

    Arquitetura Serverless e AWS

    Lambda

  • Serverless e AWS Lambda

    Deixe de se preocupar com:

    Servidores

    Dimencionamento

    Deployments

    Escalabilidade

    Tolerncia a Falhas

    S.O e Updates

    Metricas e Log

    E voc pode facilmente:

    Executar cdigo em

    paralelo

    Trazer seu cdigo e

    bibliotecas nativas

    Criar backend, Aes

    atravs de eventos e

    sistemas de processamento

    Pagar apenas pelo

    necessrio

  • AWS Lambda Benefcios

    ESCALVEL POR EVENTOSSERVERLESS BILLING EM

    MILISEGUNDOS

  • AWS Lambda Integrao

    Amazon

    S3

    Amazon

    DynamoDB

    Amazon

    Kinesis

    AWS

    CloudTrail

    Amazon

    CloudWatch

    Logs

    AWS

    CloudFormation

    Amazon

    SNS

    Amazon

    SWF

    Amazon

    SES

    Amazon

    API Gateway

    Amazon

    Cognito

  • AWS Lambda Histrico

    re:Invent 2014Preview Launch

    April 2015GA

    Summer 2015 re:Invent 2015

    Node.js

    Event handlers

    CORS

    Mobile

    Backends

    Sync calls

    Resource

    policies

    Java

    Amazon S3

    uploads

    Blueprints

    1.5 GB

    Tokyo region

    Alexa Skills

    Pyhton

    Controle de

    Verso

    Agendador

    Funes de at

    5 min

  • AWS Lambda Desafio do Demo

    Criar uma arquitetura e execuo serverless para:

    Armezenar vdeos de Upload dos usurios

    Ps Upload converter vdeos e armazenar-los

    Ps converso armazenar em um banco de dados

    Metadados do vdeo

    Disponibilizar videos em uma estrutura de CDN Serverless

    Enviar notificao do novo vdeo aos usurios

    Soluo necessita ser SERVERLESS!

  • Arquitetura

  • Arquitetura Serveless Storage

  • Arquitetura Serverless Transcode

  • Arquitetura - Serverless Database e Notify

  • Arquitetura Serveless CDN

  • AWS Lambda Desenvolvendo

    Guia a Tira colo:

    http://boto3.readthedocs.io/en/latest/index.html

    Desenhar a soluo e trabalhar nas APIs

    Inicio da soluo.

    http://boto3.readthedocs.io/en/latest/index.html

  • 1) Lambda ps Upload

    ##### Instanciando os servicos

    s3 = boto3.client('s3')

    etranscoder = boto3.client('elastictranscoder')

    ##### Id da Pipelinepipeline

    Id = ('1463433351875-xzcffu')

    ##### Id do Preset preset

    Id = ('1351620000001-000010')

    def lambda_handler(event, context):

    #print("Received event: " + json.dumps(event, indent=2))

    # Get the object from the event and show its content type

    bucket = event['Records'][0]['s3']['bucket']['name']

    key = urllib.unquote_plus(event['Records'][0]['s3']['object']['key']).decode('utf8')

    try:

    ##### Obtendo resposta do Evento

    response = s3.get_object(Bucket=bucket, Key=key)

  • 1) Lambda ps Upload

    ##### Realizando o Transcoding do Video

    transcoder = etranscoder.create_job(

    PipelineId = pipelineId,

    Input={

    'Key': key

    },

    Output={

    'Key': key,

    'PresetId': presetId

    }

    )

  • 2) Lambda ps Transcode

    ##### Instanciando os servicos

    s3 = boto3.client('s3')

    dynamodb = boto3.resource('dynamodb')

    sns = boto3.client('sns')

    ##### Acessando Tabela do DynamoDB

    table = dynamodb.Table('Videos')

    ##### EndPoint do CloudFront

    cloudfront = ('http://d397nnvlvhwg5r.cloudfront.net/')

    ##### ARN do Topic do SNStopic

    ARN = ('arn:aws:sns:us-east-1:939664253159:videos')

  • 2) Lambda ps Transcode

    def lambda_handler(event, context):

    ....

    ##### Inserindo no DynamoDB os dados do acesso ao video e Status. put_item_dynamo = table.put_item(

    Item = {

    'Nome': key,

    'Info': response['ContentType'],

    'Status': '0',

    'Link': cloudfront + key

    }

    )

    ##### Enviando alerta de video disponivel.

    snsPublish = sns.publish(

    TopicArn = topicARN,

    Message = 'Novo video disponivel. Para acessar o video acessar o Link: '+ cloudfront + key,

    Subject = 'Demo Summit! Tem novidade ai.',

    MessageStructure = 'Raw',

    )

  • Demo

    #LambdaVoceTambem

  • Remember to complete

    your evaluations!

  • Obrigado

Recommended

View more >