SlideShare una empresa de Scribd logo
SUMMIT
MEXICO CITY
© 2019, Amazon Web Services, Inc. or its affiliates. All rights reserved.SUMMIT
Cien usos con Serverless
Marian Claudiu Moldovan
CTO
Monoceros
DEV01
CTO @ Monoceros Labs
@marianmoldovan
Marian C. Moldovan
Somos un Estudio de Innovación
y creación de Experiencias Conversacionales.
Creamos aplicaciones de voz para asistentes como
Amazon Alexa y Google Assistant.
3x
3x
@marianmoldovan
Alexa, abre Veo Veo
@marianmoldovan
¿Serverless?
@marianmoldovan
Caso 1: ‘Apificar’ un script de web scraping
‘Me gustaría tener la lista de todos los servicios de AWS’
@marianmoldovan
Caso 1: ‘Apificar’ un script de web scraping
div[@class="lb-content-item"]/a/text()
@marianmoldovan
Stack lógico
Python + requests +
BeautifulSoup
@marianmoldovan
Código
from bs4 import BeautifulSoup
import requests, re
aws = requests.get('https://aws.amazon.com/es/products/')
bs = BeautifulSoup(aws.text)
products = bs.findAll("div", {"class": "lb-content-item"})
products = [div.find('a').find(text=True, recursive=False) for div in products]
print(products)
@marianmoldovan
Stack serverless
Chalice
+
AWS Lambda
+
API Gateway
@marianmoldovan
El código de una API
from bs4 import BeautifulSoup
import requests, re
from chalice import Chalice
app = Chalice(app_name='aws-products-scraping')
@app.route('/')
def index():
aws = requests.get('https://aws.amazon.com/es/products/')
bs = BeautifulSoup(aws.text)
products = bs.findAll("div", {"class": "lb-content-item"})
products = [div.find('a').find(text=True, recursive=False) for div in products]
return products
chalice deploy
@marianmoldovan
¿Beneficios?
● No hay necesidad de provisionar un servidor y
tenerlo encendido 24/7
● Tampoco configurar un servidor web
● Y desarrollar una app
○ Django? Flask? Express?
○ O poner un script en modo CGI
@marianmoldovan
Caso 2: Pruebas E2E sobre aplicaciones web
‘Me gustaría comprobar que el buscador de productos funciona adecuadamente’
@marianmoldovan
Para realizar test
test('log-in link', async () => {
const browser = await puppeteer.launch();
...
expect(firstLinkText).toEqual('Iniciar sesión');
})
@marianmoldovan
Stack lógico
Chromium
+
Puppeteer
@marianmoldovan
Código
const chromium = require('chrome-aws-lambda')
const browser = await chromium.puppeteer.launch()
const page = await browser.newPage({headless: false})
await page.goto('https://www.amazon.com.mx/')
await page.click('#twotabsearchtextbox')
await page.keyboard.type(product)
await page.click('.nav-input')
const productNames = await page.$$(' h2 > a > span')
// scraping
browser.close()
@marianmoldovan
Conclusiones
● Automatizar tareas sobre cliente, testing, scraping
● Otras alternativas:
○ Selenium
○ Webdriver.io
@marianmoldovan
Caso 3: Controlar por voz un robot BB8
‘Alexa, dile a BB8 que baile’
@marianmoldovan
Componentes
@marianmoldovan
Arquitectura
@marianmoldovan
Beneficios
● Configurar un broker de MQTT
● Desarrollar una app de backend
● Configurar DB
● Securizar todo
Tiempo de desarrollo reducido drásticamente
@marianmoldovan
Caso 4: Chatbots
@marianmoldovan
Hmmm...
¿IS THIS 2015?
@marianmoldovan
Framework
@marianmoldovan
Código para un Hello World bot
const botBuilder = require('claudia-bot-builder')
module.exports = botBuilder(function (message) {
return 'Hola Mundo'
})
@marianmoldovan
Despliegue y configuración
claudia create --region us-east-1 --api-module bot
claudia update --configure-telegram-bot
claudia update --configure-fb-bot
...
@marianmoldovan
Un boilerplate para chatbots serverless
return analytics.saveIncoming(response)
.then(memory.fetch)
.then(nlu).then(dialog)
.then(memory.save)
.then(analytics.saveOutgoing)
.then(respond);
github.com/marianmoldovan/serverless-chatbot-boilerplate
@marianmoldovan
Más info
https://medium.com/@marianmoldovan/arquitecturas-serv
erless-para-chatbots-407ba4a886be
@marianmoldovan
Conclusiones
● Agiliza el desarrollo
○ Hace más complejo hacer las cosas bien
● Compatible con cualquier plataforma mensajeria
● Arquitectura orientada a eventos
○ Menor coste y mayor elasticidad
● HTTPS por defecto
● El arranque en frío no es un problema para los
chatbots
@marianmoldovan
Caso 5: Chatbot proxy
@marianmoldovan
@marianmoldovan
La plataforma de chatbot usada solo
acepta eventos de texto
@marianmoldovan
Arquitectura
@marianmoldovan
Éxito
@marianmoldovan
@marianmoldovan
Caso 6: AWS Button
@marianmoldovan
No hay Birote para
el desayuno
@marianmoldovan
Caso 6: AWS Button
@marianmoldovan
Caso 6: AWS Button
var AWS = require("aws-sdk");
exports.handler = (event, context, callback) => {
var sns = new AWS.SNS();
var params = {
Message: 'Buenas, ¿me traería por favor dos birotes a casa por favor?',
TopicArn: "arn:aws:sns:..."
};
sns.publish(params, context.done);
};
@marianmoldovan
Caso 7: mBaaS para una app móvil
Una aplicación móvil,
geolocalizada con campañas
sociales para solicitar y ofrecer
bienes y servicios
@marianmoldovan
Rápido...
A implementar en un
hackathon, 24 horas
@marianmoldovan
¿Arquitectura?
@marianmoldovan
Hmm… ¿Switch?
function mainHandler(event, context) {
//console.log('Received event:', JSON.stringify(event, null, 2));
var operation = event.operation;
switch (operation) {
case 'create':
createProject(event, context);
break;
case 'list':
listProject(event, context);
break;
case 'search':
searchProject(event, context);
break;
default:
context.fail(new Error('Unrecognized operation "' + operation + '"'));
}
};
@marianmoldovan
Pero en pocas horas
@marianmoldovan
De prototipo a producto
@marianmoldovan
Arquitectura mBaaS
@marianmoldovan
De nuevo Claudia
@marianmoldovan
El handler de una ruta
api.get('/campaign/near', function(request) {
var requiredKeys = ['lat', 'lon'];
if(!_.every(requiredKeys, _.partial(_.has, request.queryString)))
return new api.ApiResponse({errorMessage: 'Missing parameters'}, 400);
return elsearch.near(request.queryString);
});
@marianmoldovan
El código de una API Hello World
var ApiBuilder = require('claudia-api-builder'),
api = new ApiBuilder();
module.exports = api;
api.get('/hello', function () {
return 'hello world';
});
@marianmoldovan
Conclusiones
● El tiempo de desarrollo es increíblemente corto
● Curva de aprendizaje corta
● CLI
○ Permisos de IAM
● Puedes hacer las cosas muy bien o muy mal
○ Libertad total
● Múltiples frameworks
@marianmoldovan
Juguemos a Elige el framework
45https://github.com/anaibol/awesome-serverless
@marianmoldovan
Caso 8: Una app serverless
@marianmoldovan
Stack serverless
Imágen: https://aws.amazon.com/es/amplify/
@marianmoldovan
Amplify está en todo
@marianmoldovan
Conclusiones
● Amplify entra hasta la cocina
○ Cliente - Backend - Recursos cloud
○ Dame el schema y te doy todo
● Curva de aprendizaje ‘interesante’
● Tiempo de desarrollo corto
● Mucha magia por detrás
@marianmoldovan
"appsync:*",
"apigateway:POST",
"apigateway:DELETE",
"apigateway:PATCH",
"apigateway:PUT",
"cloudformation:CreateStack",
"cloudformation:CreateStackSet",
"cloudformation:DeleteStack",
"cloudformation:DeleteStackSet",
"cloudformation:DescribeStackEvents",
"cloudformation:DescribeStackResource",
"cloudformation:DescribeStackResources",
"cloudformation:DescribeStackSet",
"cloudformation:DescribeStackSetOperation",
"cloudformation:DescribeStacks",
"cloudformation:UpdateStack",
"cloudformation:UpdateStackSet",
"iam:CreateRole",
Least privileges
"iam:DeleteRole",
"iam:DeleteRolePolicy",
"iam:GetRole",
"iam:GetUser",
"iam:PassRole",
"iam:PutRolePolicy",
"iam:UpdateRole",
"lambda:AddPermission",
"lambda:CreateFunction",
"lambda:DeleteFunction",
"lambda:GetFunction",
"lambda:GetFunctionConfiguration",
"lambda:InvokeAsync",
"lambda:InvokeFunction",
"lambda:RemovePermission",
"lambda:UpdateFunctionCode",
"lambda:UpdateFunctionConfiguration",
"s3:*"
@marianmoldovan
Least privileges
"cloudfront:CreateCloudFrontOriginAccessIdentity",
"cloudfront:CreateDistribution",
"cloudfront:DeleteCloudFrontOriginAccessIdentity",
"cloudfront:DeleteDistribution",
"cloudfront:GetCloudFrontOriginAccessIdentity",
"cloudfront:GetCloudFrontOriginAccessIdentityConfig",
"cloudfront:GetDistribution",
"cloudfront:GetDistributionConfig",
"cloudfront:TagResource",
"cloudfront:UntagResource",
"cloudfront:UpdateCloudFrontOriginAccessIdentity",
"cloudfront:UpdateDistribution",
"cognito-identity:CreateIdentityPool",
"cognito-identity:DeleteIdentityPool",
"cognito-identity:DescribeIdentity",
"cognito-identity:DescribeIdentityPool",
"cognito-identity:SetIdentityPoolRoles",
"cognito-identity:UpdateIdentityPool",
"cognito-idp:CreateUserPool",
"cognito-idp:CreateUserPoolClient",
"cognito-idp:DeleteUserPool",
"cognito-idp:DeleteUserPoolClient",
"cognito-idp:DescribeUserPool",
"cognito-idp:UpdateUserPool",
"cognito-idp:UpdateUserPoolClient",
"dynamodb:CreateTable",
"dynamodb:DeleteItem",
"dynamodb:DeleteTable",
"dynamodb:DescribeTable",
"dynamodb:PutItem",
"dynamodb:UpdateItem",
"dynamodb:UpdateTable",
@marianmoldovan
Least privileges
@marianmoldovan
Caso 9: Motor de procesamiento + cache
Polly + S3
@marianmoldovan
Código
const fileName = md5(params.VoiceId + params.Text);
const potentialURL = bucketLink + '/' + fileName + '.mp3';
request.head(potentialURL, function (error, response, body) {
if(response.statusCode === 200)
callback(null, {'voice': potentialURL})
else {
polly.synthesizeSpeech(params, function(err, data) {
s3.upload(s3Params, function(err, data) {
callback(null, {'voice': data.Location});
});
});
}
@marianmoldovan
Caso 10: Alexa Skills
@marianmoldovan
Fácil integración
@marianmoldovan
Incluso hospedada
@marianmoldovan
Alexa Skills Kit
@marianmoldovan
Fácil implementación
handle(handlerInput) {
...
const speakOutput = 'Hello World!';
return handlerInput.responseBuilder
.speak(speakOutput)
.getResponse();
}
@marianmoldovan
¿Persistencia y gestión automática de Dynamo?
exports.handler = Alexa.SkillBuilders.custom()
.addRequestHandlers(...)
.addErrorHandlers(ErrorHandler)
.addRequestInterceptors(...)
.addResponseInterceptors(ResponsePersistenceInterceptor)
.withTableName("ask-helloworld")
.withAutoCreateTable(true)
.lambda();
@marianmoldovan
Boilerplate - WIP
github.com/marianmoldovan/
alexa-node-boilerplate
@marianmoldovan
Testing local
it('should return outputSpeech', function () {
expect(done.response.outputSpeech.ssml).to.be.a('string')
});
it('should have shouldEndSession equal to false', function () {
assert.equal(done.response.shouldEndSession, false)
});
github.com/ashiina/lambda-local
@marianmoldovan
@marianmoldovan
Otros usos
Planificar ejecuciones con Cloudwatch
Procesamiento de mensajes de SQS
Backend para formularios web
Plataforma de tests A/B
Plataforma de analytics
Procesar ficheros de S3
Generar thumbnails
Mailing
...
@marianmoldovan
Caso 10: Tests A/B
github.com/Alephbet/gimel
@marianmoldovan
Caso 11: Procesar ficheros de S3
github.com/littlstar/s3-lambda
lambda
.context(context)
.forEach(object => {
// do something with object
})
.then(_ => console.log('done!'))
.catch(console.error)
@marianmoldovan
Caso 12: Backend para formularios web
github.com/danielireson/formplug-serverless
@marianmoldovan
En resumen
@marianmoldovan
Cosas malas
● Testing más complejo (pero posible)
● Permisos de IAM a librerias/CLIs
● Librerías nativas 💀
● Lambdas con soporte para HPC, GPUs
● Cold start
@marianmoldovan
Cosas buenas
● Perfecto para cómputo orientado a eventos
● Alta compatibilidad con servicios AWS
● Cloudformation
● Gran comunidad
○ Muchas librerias
○ Muchos lenguajes
● Compatible con sistemas de auth
● Más barato en la mayoría de los casos
@marianmoldovan
Links útiles
https://es.slideshare.net/BEEVA_es/ruling
-the-world-galaxy-with-your-voice-and-th
e-cloud
medium.com/@marianmoldovan
github.com/marianmoldovan
SUMMIT
MEXICO CITY

Más contenido relacionado

Similar a Cien usos con serverless

"Los Imprescindibles de .NetCore"
"Los Imprescindibles de .NetCore""Los Imprescindibles de .NetCore"
"Los Imprescindibles de .NetCore"
www.encamina.com
 
Tecnologías para microservicios
Tecnologías para microserviciosTecnologías para microservicios
Tecnologías para microservicios
Pedro J. Molina
 
Servicios web en Java, PHP, Perl y Google
Servicios web en Java, PHP, Perl y GoogleServicios web en Java, PHP, Perl y Google
Servicios web en Java, PHP, Perl y GoogleArmando Nuñez Ramos
 
WSO2 API Manager y ESB la plataforma perfecta para evolucionar los servicios
WSO2 API Manager y ESB la plataforma perfecta para evolucionar los serviciosWSO2 API Manager y ESB la plataforma perfecta para evolucionar los servicios
WSO2 API Manager y ESB la plataforma perfecta para evolucionar los servicios
WSO2
 
Php Bitter Sweet Symfony!
Php Bitter Sweet Symfony!Php Bitter Sweet Symfony!
Php Bitter Sweet Symfony!
Ricard Luquero
 
Dynamics saturday madrid 2019 web api
Dynamics saturday madrid 2019   web apiDynamics saturday madrid 2019   web api
Dynamics saturday madrid 2019 web api
Demian Raschkovan
 
Ebook tutorialspringbootheroku
Ebook tutorialspringbootherokuEbook tutorialspringbootheroku
Ebook tutorialspringbootheroku
Renato Martin De La Rosa Castillo
 
2015 10 - Curso Cliente @firma INAP día 2
2015 10 - Curso Cliente @firma INAP día 22015 10 - Curso Cliente @firma INAP día 2
2015 10 - Curso Cliente @firma INAP día 2
Tomás García-Merás
 
App engine
App engineApp engine
App engine
ThirdWay
 
Taller desarrollo de apis
Taller desarrollo de apisTaller desarrollo de apis
Taller desarrollo de apis
CloudAppi
 
ASP.NET MVC Workshop Día 3
ASP.NET MVC Workshop Día 3ASP.NET MVC Workshop Día 3
ASP.NET MVC Workshop Día 3
Rodolfo Finochietti
 
Evolution INTech - Acceso a bases de datos con Minimal APIs de .NET 6.pptx
Evolution INTech - Acceso a bases de datos con Minimal APIs de .NET 6.pptxEvolution INTech - Acceso a bases de datos con Minimal APIs de .NET 6.pptx
Evolution INTech - Acceso a bases de datos con Minimal APIs de .NET 6.pptx
Luis775803
 
Mejores prácticas de CI / CD para construir aplicaciones modernas
Mejores prácticas de CI / CD para construir aplicaciones modernasMejores prácticas de CI / CD para construir aplicaciones modernas
Mejores prácticas de CI / CD para construir aplicaciones modernas
Amazon Web Services LATAM
 
UDA-Guia desarrollo web services
UDA-Guia desarrollo web servicesUDA-Guia desarrollo web services
UDA-Guia desarrollo web services
Ander Martinez
 
Aplicaciones_Android_JPD.pptx
Aplicaciones_Android_JPD.pptxAplicaciones_Android_JPD.pptx
Aplicaciones_Android_JPD.pptx
MarianaRomo28
 
Collab365 - Como hacer de todo con PowerShell en SharePoint (OnPremises y On...
Collab365 -  Como hacer de todo con PowerShell en SharePoint (OnPremises y On...Collab365 -  Como hacer de todo con PowerShell en SharePoint (OnPremises y On...
Collab365 - Como hacer de todo con PowerShell en SharePoint (OnPremises y On...
Juan Carlos Gonzalez
 
Tech day#7 – especificaciones_ejecutables_y_BDD_con_cucumber_y_selenium
Tech day#7 – especificaciones_ejecutables_y_BDD_con_cucumber_y_seleniumTech day#7 – especificaciones_ejecutables_y_BDD_con_cucumber_y_selenium
Tech day#7 – especificaciones_ejecutables_y_BDD_con_cucumber_y_selenium
Eduardo Riol
 
Mejorando interfaz de SharePoint 2010 con Silverlight 4
Mejorando interfaz de SharePoint 2010 con Silverlight 4Mejorando interfaz de SharePoint 2010 con Silverlight 4
Mejorando interfaz de SharePoint 2010 con Silverlight 4
SolidQ
 
WordPress como back-end de nuestras apps
WordPress como back-end de nuestras appsWordPress como back-end de nuestras apps
WordPress como back-end de nuestras apps
Jaime Fernández
 

Similar a Cien usos con serverless (20)

"Los Imprescindibles de .NetCore"
"Los Imprescindibles de .NetCore""Los Imprescindibles de .NetCore"
"Los Imprescindibles de .NetCore"
 
Tecnologías para microservicios
Tecnologías para microserviciosTecnologías para microservicios
Tecnologías para microservicios
 
Servicios web en Java, PHP, Perl y Google
Servicios web en Java, PHP, Perl y GoogleServicios web en Java, PHP, Perl y Google
Servicios web en Java, PHP, Perl y Google
 
WSO2 API Manager y ESB la plataforma perfecta para evolucionar los servicios
WSO2 API Manager y ESB la plataforma perfecta para evolucionar los serviciosWSO2 API Manager y ESB la plataforma perfecta para evolucionar los servicios
WSO2 API Manager y ESB la plataforma perfecta para evolucionar los servicios
 
Php Bitter Sweet Symfony!
Php Bitter Sweet Symfony!Php Bitter Sweet Symfony!
Php Bitter Sweet Symfony!
 
Dynamics saturday madrid 2019 web api
Dynamics saturday madrid 2019   web apiDynamics saturday madrid 2019   web api
Dynamics saturday madrid 2019 web api
 
Ebook tutorialspringbootheroku
Ebook tutorialspringbootherokuEbook tutorialspringbootheroku
Ebook tutorialspringbootheroku
 
2015 10 - Curso Cliente @firma INAP día 2
2015 10 - Curso Cliente @firma INAP día 22015 10 - Curso Cliente @firma INAP día 2
2015 10 - Curso Cliente @firma INAP día 2
 
App engine
App engineApp engine
App engine
 
Taller desarrollo de apis
Taller desarrollo de apisTaller desarrollo de apis
Taller desarrollo de apis
 
ASP.NET MVC Workshop Día 3
ASP.NET MVC Workshop Día 3ASP.NET MVC Workshop Día 3
ASP.NET MVC Workshop Día 3
 
Evolution INTech - Acceso a bases de datos con Minimal APIs de .NET 6.pptx
Evolution INTech - Acceso a bases de datos con Minimal APIs de .NET 6.pptxEvolution INTech - Acceso a bases de datos con Minimal APIs de .NET 6.pptx
Evolution INTech - Acceso a bases de datos con Minimal APIs de .NET 6.pptx
 
Mejores prácticas de CI / CD para construir aplicaciones modernas
Mejores prácticas de CI / CD para construir aplicaciones modernasMejores prácticas de CI / CD para construir aplicaciones modernas
Mejores prácticas de CI / CD para construir aplicaciones modernas
 
UDA-Guia desarrollo web services
UDA-Guia desarrollo web servicesUDA-Guia desarrollo web services
UDA-Guia desarrollo web services
 
Aplicaciones_Android_JPD.pptx
Aplicaciones_Android_JPD.pptxAplicaciones_Android_JPD.pptx
Aplicaciones_Android_JPD.pptx
 
Collab365 - Como hacer de todo con PowerShell en SharePoint (OnPremises y On...
Collab365 -  Como hacer de todo con PowerShell en SharePoint (OnPremises y On...Collab365 -  Como hacer de todo con PowerShell en SharePoint (OnPremises y On...
Collab365 - Como hacer de todo con PowerShell en SharePoint (OnPremises y On...
 
Tech day#7 – especificaciones_ejecutables_y_BDD_con_cucumber_y_selenium
Tech day#7 – especificaciones_ejecutables_y_BDD_con_cucumber_y_seleniumTech day#7 – especificaciones_ejecutables_y_BDD_con_cucumber_y_selenium
Tech day#7 – especificaciones_ejecutables_y_BDD_con_cucumber_y_selenium
 
Mejorando interfaz de SharePoint 2010 con Silverlight 4
Mejorando interfaz de SharePoint 2010 con Silverlight 4Mejorando interfaz de SharePoint 2010 con Silverlight 4
Mejorando interfaz de SharePoint 2010 con Silverlight 4
 
Servicios web java, php, perl, google
Servicios web java, php, perl, googleServicios web java, php, perl, google
Servicios web java, php, perl, google
 
WordPress como back-end de nuestras apps
WordPress como back-end de nuestras appsWordPress como back-end de nuestras apps
WordPress como back-end de nuestras apps
 

Último

(PROYECTO) Límites entre el Arte, los Medios de Comunicación y la Informática
(PROYECTO) Límites entre el Arte, los Medios de Comunicación y la Informática(PROYECTO) Límites entre el Arte, los Medios de Comunicación y la Informática
(PROYECTO) Límites entre el Arte, los Medios de Comunicación y la Informática
vazquezgarciajesusma
 
biogas industrial para guiarse en proyectos
biogas industrial para guiarse en proyectosbiogas industrial para guiarse en proyectos
biogas industrial para guiarse en proyectos
Luis Enrique Zafra Haro
 
Diagrama de flujo basada en la reparacion de automoviles.pdf
Diagrama de flujo basada en la reparacion de automoviles.pdfDiagrama de flujo basada en la reparacion de automoviles.pdf
Diagrama de flujo basada en la reparacion de automoviles.pdf
ManuelCampos464987
 
DESARROLLO DE HABILIDADES DE PENSAMIENTO.pdf
DESARROLLO DE HABILIDADES DE PENSAMIENTO.pdfDESARROLLO DE HABILIDADES DE PENSAMIENTO.pdf
DESARROLLO DE HABILIDADES DE PENSAMIENTO.pdf
sarasofiamontezuma
 
Posnarrativas en la era de la IA generativa
Posnarrativas en la era de la IA generativaPosnarrativas en la era de la IA generativa
Posnarrativas en la era de la IA generativa
Fernando Villares
 
trabajo de tecnologia, segundo periodo 9-6f
trabajo de tecnologia, segundo periodo 9-6ftrabajo de tecnologia, segundo periodo 9-6f
trabajo de tecnologia, segundo periodo 9-6f
zoecaicedosalazar
 
Conceptos Básicos de Programación L.D 10-5
Conceptos Básicos de Programación L.D 10-5Conceptos Básicos de Programación L.D 10-5
Conceptos Básicos de Programación L.D 10-5
JulyMuoz18
 
Desarrollo de Habilidades de Pensamiento.
Desarrollo de Habilidades de Pensamiento.Desarrollo de Habilidades de Pensamiento.
Desarrollo de Habilidades de Pensamiento.
AlejandraCasallas7
 
ACTIVIDAD DE TECNOLOGÍA AÑO LECTIVO 2024
ACTIVIDAD DE TECNOLOGÍA AÑO LECTIVO 2024ACTIVIDAD DE TECNOLOGÍA AÑO LECTIVO 2024
ACTIVIDAD DE TECNOLOGÍA AÑO LECTIVO 2024
DanielErazoMedina
 
Conceptos Básicos de Programación Proyecto
Conceptos Básicos de Programación ProyectoConceptos Básicos de Programación Proyecto
Conceptos Básicos de Programación Proyecto
cofferub
 
Estructuras básicas_ conceptos de programación (1).docx
Estructuras básicas_ conceptos de programación  (1).docxEstructuras básicas_ conceptos de programación  (1).docx
Estructuras básicas_ conceptos de programación (1).docx
SamuelRamirez83524
 
Inteligencia Artificial y Ciberseguridad.pdf
Inteligencia Artificial y Ciberseguridad.pdfInteligencia Artificial y Ciberseguridad.pdf
Inteligencia Artificial y Ciberseguridad.pdf
Emilio Casbas
 
DESARROLO DE HABILIDADES DE PENSAMIENTO.pdf
DESARROLO DE HABILIDADES DE PENSAMIENTO.pdfDESARROLO DE HABILIDADES DE PENSAMIENTO.pdf
DESARROLO DE HABILIDADES DE PENSAMIENTO.pdf
marianabz2403
 
3Redu: Responsabilidad, Resiliencia y Respeto
3Redu: Responsabilidad, Resiliencia y Respeto3Redu: Responsabilidad, Resiliencia y Respeto
3Redu: Responsabilidad, Resiliencia y Respeto
cdraco
 
TRABAJO DESARROLLO DE HABILIDADES DE PENSAMIENTO.pdf
TRABAJO DESARROLLO DE HABILIDADES DE PENSAMIENTO.pdfTRABAJO DESARROLLO DE HABILIDADES DE PENSAMIENTO.pdf
TRABAJO DESARROLLO DE HABILIDADES DE PENSAMIENTO.pdf
thomasdcroz38
 
Índice del libro "Big Data: Tecnologías para arquitecturas Data-Centric" de 0...
Índice del libro "Big Data: Tecnologías para arquitecturas Data-Centric" de 0...Índice del libro "Big Data: Tecnologías para arquitecturas Data-Centric" de 0...
Índice del libro "Big Data: Tecnologías para arquitecturas Data-Centric" de 0...
Telefónica
 
Desarrollo de habilidades de pensamiento (2).pdf
Desarrollo de habilidades de pensamiento (2).pdfDesarrollo de habilidades de pensamiento (2).pdf
Desarrollo de habilidades de pensamiento (2).pdf
samuelvideos
 
Conceptos básicos de programación 10-5.pdf
Conceptos básicos de programación 10-5.pdfConceptos básicos de programación 10-5.pdf
Conceptos básicos de programación 10-5.pdf
ValeriaAyala48
 
(PROYECTO) Límites entre el Arte, los Medios de Comunicación y la Informática
(PROYECTO) Límites entre el Arte, los Medios de Comunicación y la Informática(PROYECTO) Límites entre el Arte, los Medios de Comunicación y la Informática
(PROYECTO) Límites entre el Arte, los Medios de Comunicación y la Informática
vazquezgarciajesusma
 
MANUAL DEL DECODIFICADOR DVB S2. PARA VSAT
MANUAL DEL DECODIFICADOR DVB  S2. PARA VSATMANUAL DEL DECODIFICADOR DVB  S2. PARA VSAT
MANUAL DEL DECODIFICADOR DVB S2. PARA VSAT
Ing. Julio Iván Mera Casas
 

Último (20)

(PROYECTO) Límites entre el Arte, los Medios de Comunicación y la Informática
(PROYECTO) Límites entre el Arte, los Medios de Comunicación y la Informática(PROYECTO) Límites entre el Arte, los Medios de Comunicación y la Informática
(PROYECTO) Límites entre el Arte, los Medios de Comunicación y la Informática
 
biogas industrial para guiarse en proyectos
biogas industrial para guiarse en proyectosbiogas industrial para guiarse en proyectos
biogas industrial para guiarse en proyectos
 
Diagrama de flujo basada en la reparacion de automoviles.pdf
Diagrama de flujo basada en la reparacion de automoviles.pdfDiagrama de flujo basada en la reparacion de automoviles.pdf
Diagrama de flujo basada en la reparacion de automoviles.pdf
 
DESARROLLO DE HABILIDADES DE PENSAMIENTO.pdf
DESARROLLO DE HABILIDADES DE PENSAMIENTO.pdfDESARROLLO DE HABILIDADES DE PENSAMIENTO.pdf
DESARROLLO DE HABILIDADES DE PENSAMIENTO.pdf
 
Posnarrativas en la era de la IA generativa
Posnarrativas en la era de la IA generativaPosnarrativas en la era de la IA generativa
Posnarrativas en la era de la IA generativa
 
trabajo de tecnologia, segundo periodo 9-6f
trabajo de tecnologia, segundo periodo 9-6ftrabajo de tecnologia, segundo periodo 9-6f
trabajo de tecnologia, segundo periodo 9-6f
 
Conceptos Básicos de Programación L.D 10-5
Conceptos Básicos de Programación L.D 10-5Conceptos Básicos de Programación L.D 10-5
Conceptos Básicos de Programación L.D 10-5
 
Desarrollo de Habilidades de Pensamiento.
Desarrollo de Habilidades de Pensamiento.Desarrollo de Habilidades de Pensamiento.
Desarrollo de Habilidades de Pensamiento.
 
ACTIVIDAD DE TECNOLOGÍA AÑO LECTIVO 2024
ACTIVIDAD DE TECNOLOGÍA AÑO LECTIVO 2024ACTIVIDAD DE TECNOLOGÍA AÑO LECTIVO 2024
ACTIVIDAD DE TECNOLOGÍA AÑO LECTIVO 2024
 
Conceptos Básicos de Programación Proyecto
Conceptos Básicos de Programación ProyectoConceptos Básicos de Programación Proyecto
Conceptos Básicos de Programación Proyecto
 
Estructuras básicas_ conceptos de programación (1).docx
Estructuras básicas_ conceptos de programación  (1).docxEstructuras básicas_ conceptos de programación  (1).docx
Estructuras básicas_ conceptos de programación (1).docx
 
Inteligencia Artificial y Ciberseguridad.pdf
Inteligencia Artificial y Ciberseguridad.pdfInteligencia Artificial y Ciberseguridad.pdf
Inteligencia Artificial y Ciberseguridad.pdf
 
DESARROLO DE HABILIDADES DE PENSAMIENTO.pdf
DESARROLO DE HABILIDADES DE PENSAMIENTO.pdfDESARROLO DE HABILIDADES DE PENSAMIENTO.pdf
DESARROLO DE HABILIDADES DE PENSAMIENTO.pdf
 
3Redu: Responsabilidad, Resiliencia y Respeto
3Redu: Responsabilidad, Resiliencia y Respeto3Redu: Responsabilidad, Resiliencia y Respeto
3Redu: Responsabilidad, Resiliencia y Respeto
 
TRABAJO DESARROLLO DE HABILIDADES DE PENSAMIENTO.pdf
TRABAJO DESARROLLO DE HABILIDADES DE PENSAMIENTO.pdfTRABAJO DESARROLLO DE HABILIDADES DE PENSAMIENTO.pdf
TRABAJO DESARROLLO DE HABILIDADES DE PENSAMIENTO.pdf
 
Índice del libro "Big Data: Tecnologías para arquitecturas Data-Centric" de 0...
Índice del libro "Big Data: Tecnologías para arquitecturas Data-Centric" de 0...Índice del libro "Big Data: Tecnologías para arquitecturas Data-Centric" de 0...
Índice del libro "Big Data: Tecnologías para arquitecturas Data-Centric" de 0...
 
Desarrollo de habilidades de pensamiento (2).pdf
Desarrollo de habilidades de pensamiento (2).pdfDesarrollo de habilidades de pensamiento (2).pdf
Desarrollo de habilidades de pensamiento (2).pdf
 
Conceptos básicos de programación 10-5.pdf
Conceptos básicos de programación 10-5.pdfConceptos básicos de programación 10-5.pdf
Conceptos básicos de programación 10-5.pdf
 
(PROYECTO) Límites entre el Arte, los Medios de Comunicación y la Informática
(PROYECTO) Límites entre el Arte, los Medios de Comunicación y la Informática(PROYECTO) Límites entre el Arte, los Medios de Comunicación y la Informática
(PROYECTO) Límites entre el Arte, los Medios de Comunicación y la Informática
 
MANUAL DEL DECODIFICADOR DVB S2. PARA VSAT
MANUAL DEL DECODIFICADOR DVB  S2. PARA VSATMANUAL DEL DECODIFICADOR DVB  S2. PARA VSAT
MANUAL DEL DECODIFICADOR DVB S2. PARA VSAT
 

Cien usos con serverless