EL CICLO PRÁCTICO DE UN MOTOR DE CUATRO TIEMPOS.pptx
Usando azure para escalar tu producto
1. Usando Azure para Escalar tu
producto
Mauro Parra-Miranda - mauropm@gmail.com
2. @mauropm en FLISOL 2010 en FI-UNAM
- Estudié Ciencias de la
Computación en Ciencias, UNAM
- He colaborado en diversos
proyectos como LIDSOL, FLISOL,
openSUSE, Mozilla, openOffice, y
otros.
- Actualmente me dedico a temas
como DevOps, SecOps y
Compliance.
- Soy estudiante de la Licenciatura
de Derecho en UNITEC.
6. Innovación
tecnológica
Un producto tecnológico innovador hasta el
momento es una variante de las siguientes
tecnologías:
- Web Apps
- Aplicaciones Móviles
- Aplicaciones VR
- Asistentes digitales
Dichas tecnologías pueden utilizar distintos
métodos, lenguajes, frameworks,
herramientas, pero todos ellos utilizan en
mayor o menor medida backends.
Def. Proceso por el cual se facilita o
se mejora algún proceso o
producto a través de tecnología
computacional.
7. Backends - Existen varios tipos de lenguajes de
programación, frameworks, sistemas
operativos, bases de datos y otras
fuentes de cálculo o información
(como por ejemplo, chips específicos
implementando motores de
inferencia).
- Todo se comunica a través de https
(idealmente, aún existen muchos
servicios legados que corren sobre
http).
- Idealmente usan el formato JSON
para intercambiar mensajes, pero aún
existen algunos sistemas que usan
XML.
Def. Abstracción de un conjunto de
recursos computacionales que
permiten la interacción entre
alguna interfase de usuario con
datos.
8. Arquitecturas - Arquitectura monolítica: Tenemos un
backend con una API completa. En
dicho código implementamos cada
una de las llamadas del API.
Usualmente tiene un endpoint único.
- Arquitectura segmentada en
microservicios - Vamos segmentando
funcionalidades de una API definida
en pequeños programas, web apps o
funciones web que van resolviendo
cada funcionalidad en un endpoint
distinto.
Def. Conjunto de reglas y métodos
que describen la funcionalidad,
organización e implementación de
sistemas computacionales.
9. Problema: Tienes
un producto
éxitoso.
- Tienes un producto éxitoso:
- puede ser una página famosa como
Facebook (o el rincón del vago)
- una aplicación móvil, un “skill” de
algún asistente digital (i.e., Alexa,
Google Home, Siri, etc.)
- Una aplicación VR.
- Todos ellos los programas para que
corra (en su mayoría) en el dispositivo
del usuario.
- Todos ellos utilizarán backends para
mantener / sincronizar la información
relevante.
Def. Cuestión discutible que se
tiene que resolver.
10. Problema técnico:
escalar
automáticamente.
- Necesito escalar (hacia arriba o hacia
abajo) mi backend de acuerdo a la
demanda.
- No quiero tener que invertir tiempo
en ello, dado que quiero seguir
creando funcionalidad útil en mi
producto.
- No quiero gastar todo el dinero del
mundo en un datacenter, datos, o en
un ingeniero dedicado.
Def. Escalar el número de recursos
de cómputo automáticamente
dependiendo del uso actual.
13. Azure
Def. Microsoft Azure (2010) es el
cloud que creó MS por el FOMO
con respecto a AWS (2002) y GCP
(2008).
Azure es una plataforma de Cloud que
puede venderte cualquier tipo de capacidad
de cómputo que se necesite, tal como hace
AWS y GCP.
En 2019 se posiciona como el jugador
número 2 en el ámbito de Cloud
internacional, detras de AWS.
Azure se considera el Cloud “empresarial”
por excelencia.
Azure optimiza la red desde la instancia ‘mas
barata’. Es decir, tiene mejor performance de
red, aun en las opciones economicas.
14. Azure - Costo
Def. El costo siempre se vuelve un
tema en emprendimientos del tipo
“lo más importante es tener
muchos usuarios” (como el rincón
del vago, que vive del anuncio).
Azure es una plataforma muy accesible para
comenzar con ella.
Como estudiante, tienes acceso gratuito a
varias partes del Cloud y, sin pedirte tarjeta
de crédito o débito, te asignan un monto
virtual para que gastes en un año de
pruebas.
Si no eres estudiante, no pasa nada, tienes
12 meses de pruebas también.
Registro: https://azure.microsoft.com/en-us/free/
15. Azure - App Service
Def. App Service es el equivalente a
AWS Elastic Beanstalk. Sistemas
autoescalables que incluyen: Load
Balancer, múltiples instancias de
cómputo, base de datos, auto
escalamiento.
- Azure App Service es un sistema
mágico que nos permite ofrecer un
backend empresarial a un costo
mínimo, pero con capacidades de
ensueño.
- Soporta diversos lenguajes de
programación, como:
- NodeJS - para el desveloper mileñal
- Java - para el desveloper vintage
- PHP - para el desveloper MacGyver.
- Python
- .NET Core - para los migueles
- Ruby - para el desveloper hipster
16. Azure - SLA
Def. Acuerdo de nivel de servicio.
Usualmente dado en porcentajes.
En el caso de Azure, desde el
“Basic” es 99.95%.
- El SLA es ese mágico número que
representa la calidad de tu sueño de 4
horas por día.
- Un SLA alto implica paz, mientras que
un SLA bajo implica que en cualquier
momento te puede llegar un ‘bipazo’
directo de uptimerobot.com diciendo
que tu servicio está abajo.
- Konfio promete 99.9% SLA.
17. Azure - App Service
- Pilón
Def (mex). Este es un mexicanismo
en este uso. Un pilón es un “extra”
sobre algo. Se usa en expresiones
como “ahí le va su pilón” como
cuando compras alguna cosa en el
mercado y te dan un poco más del
producto.
- CD - Continuous Deployment
- Testing in Production
- SLA - 99.95%
- Kudu
- Log Stream
- Process Explorer
- SSL
- Security Scanning
- MySQL
18. Anexo
Def. El que no es el principal, donde
esta la chaviza, como en ingeniería.
En los últimos años, he tenido la oportunidad
de usar diversas tecnologías como Jenkins
(previamente Hudson).
Jenkins es un sistema de automatización.
Mucho del trabajo repetitivo de un ingeniero
(o incluso un departamento de OPS) puede
ser orquestado o administrado desde
Jenkins, liberando a los ingenieros para
poder extender o expandir la funcionalidad
de dicho sistema (como para programar
nuevas funcionalidades).
Microsoft Azure permite esto:
curl -X POST -u <user> --data-binary
@<zipfile>
https://{your-sitename}.scm.azurewebs
ites.net/api/zipdeploy