Microsoft Cloud Workshop realizado por atSistemas para Arquitectos, Developers y Admin IT sobre Cloud Native, Contenedores y DevOps en Azure usando Docker AKS Kubernetes y Azure DevOps para automatizar todo el proceso de despliegue.
2. Santi Macías Rodríguez
L í d e r Té c n i c o M i c r o s o f t e n a t S i s t e m a s
s m a c i a s . r o d r i g u e z @ a t s i s t e m a s . c o m
Microsoft Cloud Workshop Welcome
https://www.linkedin.com/in/santimaciashttps://github.com/santimacnethttp://enmilocalfunciona.io
https://santimacnet.wordpress.com
6. • TRANSFORMACION DIGITAL y CULTURAL
• MODERNIZACION APLICACIONES (Retos)
• ADOPCION DEL CLOUD (Triple-R)
• CAPEX vs OPEX
• DONDE VENIMOS (host-centric)
• DONDE ESTAMOS (container-centric)
• DONDE VAMOS (serverless-centric)
• CONTENEDORES
• ORQUESTADORES
• CLOUD (IaaS, PaaS, CaaS, FaaS,…, SaaS)
• DEVOPS (necesitamos Cultura DevOps)
• VUCA (nuevo futuro y estrategias)
!!EL CLOUD YA ES UNA REALIDAD!!
11. DevOps is a culture, not a role!
The whole company needs to be doing DevOps for it to work.
• PARA QUE SIRVE
• BARRERAS
• AFECTA A TODA LA EMPRESA
• APORTAR VALOR AL NEGOCIO
• NO SOLO DESARROLLO APPS
• TRIANGULO DE PODER
• AGENTES DEL CAMBIO
12. DevOps is about culture, to others it’s a software development methodology on its own. While there
will always be discussion and favorite definitions, DevOps has generally come to encompass a
philosophy that emphasizes communication, collaboration and cooperation between software
developers and the other stake holders in the information technology industry.
13. DevOps is a software development
methodology that combines
software development (Dev) with
information technology operations
(Ops) participating together in the
entire service lifecycle, from design
through the development process
to production support.
14. DevOps es una metodología con la que se
cambia el modo en el que se gestiona el
ciclo de desarrollo de software, a nivel
tecnológico pero sobre todo a nivel cultural.
Los equipos de desarrollo y de Operaciones
eliminan el trabajo “en silos” y comienzan a
trabajar de una manera colaborativa y
bidireccional.
Entre todos cubren el ciclo completo de
desarrollo de software, garantizando
procesos mucho más rápidos y seguros,
entregas más fiables y productos de calidad.
21. Un contenedor puede definirse como un paquete cerrado que dentro contiene
todo lo necesario para que una aplicación se ejecute, todo está encapsulado
dentro de una sola imagen completamente independiente el servidor o
computadora que lo ejecuta, en el contenedor se incluyen tanto los binarios
como todos los archivos de configuración y demás ficheros que necesite para
ejecutar la aplicación.
La idea detrás de un contenedor de esto es que sea ligeros y portables, que se
pueda transferir entre diferentes entornos sin contratiempos ya que el
funcionamiento interno es completamente independiente del sistema operativo
que lo aloja.
Con un contenedor nos aseguramos que la aplicación es completamente
portable, como es independiente del hardware y del sistema operativo, transferir
la imagen entre dos plataformas no representa ningún problema ya que se va a
ejecutar siempre de la misma forma.
22. Docker "an open platform for Devs & Ops to build, ship, and run distributed applications".
***Imaginarlo como “una mini-maquina virtual o virtualización ligera”*** (aunque realmente no es eso)
28. • Una plataforma para contenedores
• Una plataforma para microservicios
• Una plataforma para ejecución de tareas
• Una plataforma para cargas de trabajo
• Una plataforma para aplicaciones/servicios
• Un nuevo sistema operativo
• Un nuevo servidor de aplicaciones
https://es.wikipedia.org/wiki/Kubernetes
29. • DOCKER SWARM (Docker)
• SERVICE FABRIC (Microsoft)
• SERVICE MESH (Microsoft)
• MARATHON (DC/OS)
• NOMAD (HarsiCorp)
• KUBERNETES (OpenSource)
• OPENSHIFT (RedHat)
• RANCHER (Rancher Labs)
• Azure AKS (gestionados en cloud)
• Amazon EKS (gestionados en cloud)
• Google GKE (gestionados en cloud)
• Digital Ocean,…..
30. https://kubernetes.io/
Kubernetes (K8s) is an open-source system
for automating deployment, scaling, and management of containerized applications.
!! IMPORTANTE !!
KUBENETES NO ES UN PRODUCTO, ES UN PROYECTO OPEN-SOURCE
EN CONTINUA EVOLUCION, CAMBIOS DE VERSIONES Y MUCHAS
HERRAMIENTAS ASOCIADAS PARA FACILITAR SU USO.
• CLUSTER
• NODOS
• PODS
• DAEMONSETS
• DEPLOYMENTS
• REPLICAS
• SERVICES
• VOLUMES
• MANIFEST
34. Azure Kubernetes Service (AKS)
Servicio de Kubernetes totalmente administrado, seguro y con alta disponibilidad.
Implementar un clúster sin tener que preocuparse por la confiabilidad, la
disponibilidad ni las actualizaciones.
https://azure.microsoft.com/es-es/free/services/kubernetes-service/
36. El servicio totalmente administrado Azure Kubernetes Service (AKS) facilita la
implementación y la administración de las aplicaciones en contenedores. Ofrece
Kubernetes sin servidor, una experiencia de integración y entrega continuas (CI/CD)
integrada y seguridad y gobernanza de nivel empresarial.
37.
38. Cloud Native, es un termino usado para hacer mención a las
aplicaciones que “nacen” o están pensadas desde su
concepción para funcionar en la nube.
Las arquitecturas Cloud Native buscan hacer nuevas
aplicaciones y desarrollos con valores como: rapidez, de
mejor calidad, seguridad y sobre todo por un menor coste
aprovechando todas las ventajas y servicios que ofrecen las
plataformas de nube.
Es necesario aplicar un conjunto de nuevos patrones de
arquitectura de software para desarrollar aplicaciones
usando principios cloud computing como la agilidad,
escalabilidad, elasticidad y disponibilidad.
Los 4 pilares de Cloud Native son DevOps, Continuous
Delivery, Microservicios y Contenedores
39. La importancia de Cloud Native es tan grande
que se ha creado un entramado organizacional
para garantizar que las decisiones de las decenas
de organizaciones interesadas se toman con
transparencia llamado Cloud Native Computing
Foundation
La fundación CNCF forma parte de la Linux
Foundation y cuenta entre sus miembros no solo
a los proveedores cloud más importantes como
AWS, Azure, Google Cloud sino a decenas de
empresas comprometidas con la iniciativa.
47. https://12factor.net/
“The Twelve-Factor app” es una metodología para construir aplicaciones SaaS
propuesto inicialmente por Heroku para sus equipos de desarrollo.
También se conocen como los 12 mandamientos que deberíamos cumplir en el
desarrollo de aplicaciones cloud native.
Kubernetes (K8s) es una plataforma de código abierto, que fue creada por Google, aunque después donada a CNCF (Cloud Native Computing Foundation), altamente influenciado en la tecnología Borg (también creada por Google), utilizada para la gestión, el deployment, la escalabilidad y el monitoreo de contenedores.
Kubernetes (K8s) es una plataforma de código abierto, que fue creada por Google, aunque después donada a CNCF (Cloud Native Computing Foundation), altamente influenciado en la tecnología Borg (también creada por Google), utilizada para la gestión, el deployment, la escalabilidad y el monitoreo de contenedores.
Kubernetes (K8s) es una plataforma de código abierto, que fue creada por Google, aunque después donada a CNCF (Cloud Native Computing Foundation), altamente influenciado en la tecnología Borg (también creada por Google), utilizada para la gestión, el deployment, la escalabilidad y el monitoreo de contenedores.