DevOps Days GDL 2020 - February 20th
© 2020, Amazon Web Services, Inc. or its affiliates. All rights reserved.Containers y DevTools en AWSJesús Humberto Contreras RancurelloSolutions ArchitectAWS México
View Slide
© 2020, Amazon Web Services, Inc. or its affiliates. All rights reserved.AgendaResponsabilidad operacionalEcosistema de containersDevToolsDemo CI/CD
© 2020, Amazon Web Services, Inc. or its Affiliates. All rights reserved.3Modelo de responsabilidad operacional en AWSOn-Premises NubeMenos MásCómputo Virtual MachineEC2Elastic Beanstalk AWS LambdaECS/FargateECS/EC2EKS/EC2
© 2020, Amazon Web Services, Inc. or its Affiliates. All rights reserved.4Modelo de responsabilidad operacional en AWSOn-Premises NubeMenos MásCómputo Virtual MachineEC2Elastic Beanstalk AWS LambdaECS/FargateBase deDatosMySQLMySQL enEC2 RDSMySQLRDSAuroraAurora Serverless DynamoDBAlmacena-mientoSAN,NAS S3MensajeríaESBs Amazon MQ KinesisSQS /SNSAnalíticos Hadoop Hadoop en EC2 EMRElasticsearchServiceAthenaECS/EC2EKS/EC2EFSFSx for WindowsStorage GatewayEBSManaged KafkaGlue
© 2020, Amazon Web Services, Inc. or its Affiliates. All rights reserved.5At first there wasAmazon EC2
© 2020, Amazon Web Services, Inc. or its Affiliates. All rights reserved.6Then Docker!Customers started containerizing applicationswithin EC2 instancesEC2 InstanceContainers
© 2020, Amazon Web Services, Inc. or its Affiliates. All rights reserved.7Containers made it easy to build and scalecloud-native applications
© 2020, Amazon Web Services, Inc. or its Affiliates. All rights reserved.8Customers needed an easier way to manage large clusters ofinstances and containers
© 2020, Amazon Web Services, Inc. or its Affiliates. All rights reserved.9Servicios de containers en AWSAdministraciónImplementación,programación, escalado yadministración de aplicacionesconteinerizadasAmazon ElasticContainer Service(ECS)Amazon ElasticContainer Servicefor Kubernetes(EKS)
© 2020, Amazon Web Services, Inc. or its Affiliates. All rights reserved.10Servicios de containers en AWSAdministraciónImplementación,programación, escalado yadministración de aplicacionesconteinerizadasHospedajeDonde los containers sonejecutadosAmazon ElasticContainer Service(ECS)Amazon ElasticContainer Servicefor Kubernetes(EKS)Amazon EC2 AWS Fargate
© 2020, Amazon Web Services, Inc. or its Affiliates. All rights reserved.11Servicios de containers en AWSAdministraciónImplementación,programación, escalado yadministración de aplicacionesconteinerizadasHospedajeDonde los containers sonejecutadosAmazon ElasticContainer Service(ECS)Amazon ElasticContainer Servicefor Kubernetes(EKS)Amazon EC2 AWS FargateRepositorio deImágenesDonde se guardan lasimágenes de dockerAmazon ElasticContainer Registry(ECR)
© 2020, Amazon Web Services, Inc. or its Affiliates. All rights reserved.12Amazon ElasticContainer Service(ECS)
© 2020, Amazon Web Services, Inc. or its Affiliates. All rights reserved.13Orquestación y AgendaAdministración del clúster Motor de agendaECSInstanciasEC2 conTareas
© 2020, Amazon Web Services, Inc. or its Affiliates. All rights reserved.14Amazon ECSINSTANCIAS EC2LOADBALANCER ECSAGENTTASKContainerTASKContainerECSAGENTTASKContainerTASKContainer SERVICIO DE COMUNICACIÓNAmazonECSAPIADMINISTRACIÓN DELCLÚSTERALMACENAMIENTOLLAVE/VALORECSAGENTTASKContainerTASKContainerLOADBALANCERInternet
© 2020, Amazon Web Services, Inc. or its Affiliates. All rights reserved.15Amazon ECS – ClústerINSTANCIAS EC2LOADBALANCER ECSAGENTTASKContainerTASKContainerECSAGENTTASKContainerTASKContainer SERVICIO DE COMUNICACIÓNAmazonECSAPIADMINISTRACIÓN DELCLÚSTERALMACENAMIENTOLLAVE/VALORECSAGENTTASKContainerTASKContainerLOADBALANCERInternet
© 2020, Amazon Web Services, Inc. or its Affiliates. All rights reserved.16Amazon ECS – TaskINSTANCIAS EC2LOADBALANCER ECSAGENTTASKContainerTASKContainerECSAGENTTASKContainerTASKContainer SERVICIO DE COMUNICACIÓNAmazonECSAPIADMINISTRACIÓN DELCLÚSTERALMACENAMIENTOLLAVE/VALORECSAGENTTASKContainerTASKContainerLOADBALANCERInternet
© 2020, Amazon Web Services, Inc. or its Affiliates. All rights reserved.17Task DefinitionsVolume DefinitionsContainer Definitions
© 2020, Amazon Web Services, Inc. or its Affiliates. All rights reserved.18Amazon ECS – ServicioINSTANCIAS EC2ECSAGENTTASKContainerTASKContainerECSAGENTTASKContainerTASKContainer SERVICIO DE COMUNICACIÓNAmazonECSAPIADMINISTRACIÓN DELCLÚSTERALMACENAMIENTOLLAVE/VALORECSAGENTTASKContainerTASKContainerLOADBALANCERInternetLOADBALANCER
© 2020, Amazon Web Services, Inc. or its Affiliates. All rights reserved.19Actualizar un Servicio - RollingImplementación de una nueva versión de tu containerminimumHealthyPercent = 50% y maximumPercent = 100%Elastic Load Balancing
© 2020, Amazon Web Services, Inc. or its Affiliates. All rights reserved.20Actualizar un Servicio - RollingImplementación de una nueva versión de tu containerminimumHealthyPercent = 50% y maximumPercent = 100%Elastic Load BalancingShared DataVolumeContainersShared DataVolumeContainersAntiguocontainerAntiguocontainer
© 2020, Amazon Web Services, Inc. or its Affiliates. All rights reserved.21Actualizar un Servicio - RollingImplementación de una nueva versión de tu containerminimumHealthyPercent = 50% y maximumPercent = 100%NuevocontainerElastic Load BalancingShared DataVolumeContainersShared DataVolumeContainersAntiguocontainer
© 2020, Amazon Web Services, Inc. or its Affiliates. All rights reserved.22Actualizar un Servicio - RollingImplementación de una nueva versión de tu containerminimumHealthyPercent = 50% y maximumPercent = 100%NuevocontainerElastic Load BalancingShared DataVolumeContainersShared DataVolumeContainersNuevocontainer
© 2020, Amazon Web Services, Inc. or its Affiliates. All rights reserved.23Actualizar un Servicio - DoublingImplementación de una nueva versión de tu containerminimumHealthyPercent = 100% y maximumPercent = 200%Elastic Load Balancing
© 2020, Amazon Web Services, Inc. or its Affiliates. All rights reserved.24Actualizar un Servicio - DoublingImplementación de una nueva versión de tu containerminimumHealthyPercent = 100% y maximumPercent = 200%Elastic Load BalancingShared DataVolumeContainersAntiguocontainerShared DataVolumeContainersShared DataVolumeContainersAntiguocontainerAntiguocontainer
© 2020, Amazon Web Services, Inc. or its Affiliates. All rights reserved.25Actualizar un Servicio - DoublingImplementación de una nueva versión de tu containerminimumHealthyPercent = 100% y maximumPercent = 200%NuevocontainerElastic Load BalancingShared DataVolumeContainersAntiguocontainerShared DataVolumeContainersShared DataVolumeContainersShared DataVolumeContainersShared DataVolumeContainersShared DataVolumeContainersAntiguocontainerAntiguocontainerNuevocontainerNuevocontainer
© 2020, Amazon Web Services, Inc. or its Affiliates. All rights reserved.26Actualizar un Servicio - DoublingImplementación de una nueva versión de tu containerminimumHealthyPercent = 100% y maximumPercent = 200%NuevocontainerElastic Load BalancingShared DataVolumeContainersShared DataVolumeContainersShared DataVolumeContainersNuevocontainerNuevocontainer
© 2020, Amazon Web Services, Inc. or its Affiliates. All rights reserved.27V1V1 V1 V1 V1 V1 V1 V1 V1 V1V2 V2 V2 V2 V2V2 V2 V2 V2 V2Rolling deployments – success
© 2020, Amazon Web Services, Inc. or its Affiliates. All rights reserved.28AWS Fargate
© 2020, Amazon Web Services, Inc. or its Affiliates. All rights reserved.29Instancia EC2ECSAgentDockerAgentOSSin Fargate, terminarás administrando más quesolo containersTareasconcontainers
© 2020, Amazon Web Services, Inc. or its Affiliates. All rights reserved.30- Parches y actualización del sistema operativo, agentes, etc.- Escalado del cluster de instancias EC2 para una utilización óptima.Con ECS – EC2Instancias EC2 + Agente ECS + Grupo de Autoescalado + Tareas conContainers
© 2020, Amazon Web Services, Inc. or its Affiliates. All rights reserved.31Con ECS – FargateTareas con Containers
© 2020, Amazon Web Services, Inc. or its Affiliates. All rights reserved.32Tu aplicacióncontainerizadaAdministrado por AWSNo se deben provisionar, escalar o administrarinstancias EC2ElásticoAumenta o disminuye capacidad de forma automática.Paga solamente lo que utilizasIntegradocon el ecosistema de AWS: Redes VPC, Balanceo decarga, Permisos con IAM, Monitoreo con CloudwatchAWS Fargate
© 2020, Amazon Web Services, Inc. or its Affiliates. All rights reserved.33Ambiente de containers totalmente administadocon AWS ECS + FargateTrae tu código existente Listo para producción Integraciones poderosasNo se requieren cambios delcódigo existente, funciona conflujos de trabajo y microserviciosexistentes construidos en AmazonECSCumple con ISO, PCI, HIPAA, SOC.Lance diez o decenas de miles decontenedores en segundosIntegraciones nativas de AWS pararedes, seguridad, CICD, monitoreo,etc.Fargate ejecuta decenas de millones de containers para clientes de AWS cadasemana
© 2020, Amazon Web Services, Inc. or its Affiliates. All rights reserved.34
© 2020, Amazon Web Services, Inc. or its Affiliates. All rights reserved.35Amazon ElasticContainer Service for Kubernetes(EKS)
© 2020, Amazon Web Services, Inc. or its Affiliates. All rights reserved.36Comunidad, aporte, elección.
© 2020, Amazon Web Services, Inc. or its Affiliates. All rights reserved.37micluster.eks.amazonaws.comZona dedisponibilidad 1Zona dedisponibilidad 2Zona dedisponibilidad 3Kubectl
© 2020, Amazon Web Services, Inc. or its Affiliates. All rights reserved.38Monolith development lifecyclemonitorreleasetestbuilddevelopersdelivery pipelinesservices
© 2020, Amazon Web Services, Inc. or its Affiliates. All rights reserved.39Monolith development lifecyclemonitorreleasetestbuilddevelopersdelivery pipelinesservices
© 2020, Amazon Web Services, Inc. or its Affiliates. All rights reserved.40Microservice development lifecycledevelopersdelivery pipelinesservicesmonitorreleasetestbuild
© 2020, Amazon Web Services, Inc. or its Affiliates. All rights reserved.41Microservice development lifecycle???developersdelivery pipelinesservices
© 2020, Amazon Web Services, Inc. or its Affiliates. All rights reserved.42Microservice development lifecycledevelopers servicesmonitorreleasetestbuilddelivery pipelinesmonitorreleasetestbuildmonitorreleasetestbuildmonitorreleasetestbuildmonitorreleasetestbuildmonitorreleasetestbuild
© 2020, Amazon Web Services, Inc. or its Affiliates. All rights reserved.43The AWS Developer Tools for CI/CDSource Build Test Deploy Monitor
© 2020, Amazon Web Services, Inc. or its Affiliates. All rights reserved.44The AWS Developer Tools for CI/CDAWS CodeCommitSource Build Test Deploy Monitor
© 2020, Amazon Web Services, Inc. or its Affiliates. All rights reserved.45The AWS Developer Tools for CI/CDAWS CodeCommit AWSCodeBuildSource Build Test Deploy Monitor
© 2020, Amazon Web Services, Inc. or its Affiliates. All rights reserved.46The AWS Developer Tools for CI/CDAWS CodeBuild +Third PartyAWS CodeCommit AWSCodeBuildSource Build Test Deploy Monitor
© 2020, Amazon Web Services, Inc. or its Affiliates. All rights reserved.47The AWS Developer Tools for CI/CDAWS CodeBuild +Third PartyAWS CodeCommit AWSCodeBuildAWSCodeDeploySource Build Test Deploy Monitor
© 2020, Amazon Web Services, Inc. or its Affiliates. All rights reserved.48The AWS Developer Tools for CI/CDAWS CodeBuild +Third PartyAWS CodeCommit AWSCodeBuildAWSCodeDeploySource Build Test Deploy MonitorAWSCodePipeline
© 2020, Amazon Web Services, Inc. or its Affiliates. All rights reserved.49The AWS Developer Tools for CI/CDAWS CodeBuild +Third PartyAWS CodeCommit AWSCodeBuildAWSCodeDeployAWSX-RaySource Build Test Deploy MonitorAWSCodePipelineAmazon CloudWatch
© 2020, Amazon Web Services, Inc. or its Affiliates. All rights reserved.50MyAppCodeCommitSourceBuildBuildBuildDeployToIntegCodeDeployIntegrationIntegTestEnd2EndTesterDeployToProdCodeDeployProductionThe pipeline - Demo
Thank you!© 2020, Amazon Web Services, Inc. or its affiliates. All rights reserved.Jesús Humberto Contreras Rancurello[email protected]