Historias de clientes / Comercio digital
2021
Pinterest mejora la fiabilidad del flujo de trabajo de creación para iOS en un 80,5 % al utilizar las instancias Mac de Amazon EC2
Pinterest mejoró la velocidad de desarrollo, la estabilidad de la infraestructura y el tiempo de comercialización al migrar el entorno de creación de iOS a las instancias Mac de Amazon EC2.
80,5 %
Disminución de los errores de compilación relacionados con la máquina en la canalización de CI/CD en un 80,5 %
Reducción de los costos
18,4 %
Mejora de la fiabilidad y la estabilidad
Fortalecimiento de los desarrolladores
para que se enfoquen en crear servicios innovadores
Información general
Pinterest presta servicios a más de 444 millones de usuarios globales al mes en sus aplicaciones web y móviles. Para admitir su aplicación de iOS, los desarrolladores de Pinterest utilizaron computadoras locales que podían acceder a macOS y al entorno de desarrollo integrado Xcode de Apple, que son necesarios para desarrollar, crear, probar e implementar actualizaciones y nuevas características para cualquier aplicación de Apple. Sin embargo, la plataforma de descubrimiento de imágenes buscaba una infraestructura más rápida y eficiente para el entorno de construcción de iOS y procuró encontrar una solución en Amazon Web Services (AWS).
Pinterest migró su canalización de integración y entrega continuas (CI/CD) para las aplicaciones de iOS a las instancias Mac de Amazon Elastic Compute Cloud (Amazon EC2), que permiten a los desarrolladores aprovisionar y acceder sin problemas a los entornos de computación de macOS en la nube. Al utilizar las instancias Mac de Amazon EC2, Pinterest ha reducido los errores de compilación relacionados con la máquina en un 80,5 % y ha mejorado la velocidad de desarrollo en un 18,4 %.
Oportunidad | Acceso a los entornos de macOS en la nube
Como motor de descubrimiento de imágenes que la gente utiliza para encontrar inspiración en categorías como el hogar, la alimentación, el estilo y la belleza, Pinterest ha crecido hasta convertirse en una plataforma global. Para crear, probar e implementar aplicaciones para los usuarios de iOS, los desarrolladores de Pinterest utilizaban computadoras locales, que la empresa tenía que adquirir, configurar y actualizar manualmente. “Tener que administrar máquinas físicas resultaba muy difícil”, comenta Oliver Koo, ingeniero de software sénior de Pinterest. “Necesitábamos disponer de personal para configurar todos los portátiles y supervisarlos y actualizarlos continuamente. Si se presentaba un problema en una máquina, este generaba interrupciones del servicio y una latencia más alta”. Este entorno local alargó el desarrollo, lo que afectó al tiempo de comercialización de Pinterest para las características de iOS.
Pinterest necesitaba una forma escalable y eficiente de crear, probar e implementar características y actualizaciones para iOS. Tras haber contado con los servicios de AWS desde su lanzamiento en 2010, la empresa recurrió a AWS y descubrió las instancias Mac de Amazon EC2. Pinterest se dio cuenta de que podía utilizar este servicio para preparar y acceder a entornos de macOS en cuestión de minutos, escalar la capacidad en función de las necesidades y optimizar los costos de computación. “Descubrimos que la migración a AWS agilizaría la experiencia de desarrollo”, explica Koo. “Las Instancias Mac de Amazon EC2 son el primer servicio que permite a los usuarios ejecutar entornos macOS bajo demanda en la nube, lo cual representa una transformación total”. En marzo de 2021, Pinterest comenzó a migrar su canalización de CI/CD a las instancias Mac de Amazon EC2.
Al utilizar las instancias Mac de Amazon EC2, disminuimos el número de errores de compilación relacionados con la máquina en un 80,5 %, lo cual es enorme.
Oliver Koo
Ingeniero de software sénior de Pinterest
Solución | Mejora del tiempo de comercialización mediante las instancias Mac de Amazon EC2
En agosto de 2021, Pinterest había completado la migración a las instancias Mac de Amazon EC2. Gracias a esta solución, la empresa ha optimizado la canalización CI/CD y ahora puede escalar el entorno de creación de iOS en función de la demanda. “En AWS, ahora podemos aumentar el número de máquinas de compilación en un 400 % durante la demanda máxima, en lugar de administrar un grupo estático de máquinas”, comenta Koo. Pinterest utiliza Buildkite Agent Scaler, que se ejecuta como una función en AWS Lambda, un servicio de computación sin servidor y basado en eventos, para escalar de manera eficiente la infraestructura de CI/CD de la compañía mediante el seguimiento del número de trabajos que se deben ejecutar y el ajuste del tamaño de la flota de instancias Mac de Amazon EC2 de Pinterest en consecuencia. “Durante los períodos de baja demanda, podemos reducir la escala fácilmente”, dice Koo. Los desarrolladores ya no tienen que esperar a que la capacidad esté disponible durante los picos de demanda, lo que mejora la velocidad de desarrollo. A Pinterest solo le lleva unos pocos minutos poner en marcha una nueva instancia Mac de Amazon EC2, en comparación con las horas o días que podría tardar en adquirir una nueva máquina. En comparación con la ejecución de compilaciones con máquinas en las instalaciones, Pinterest puede crear y lanzar aplicaciones iOS un 18,4 por ciento más rápido mediante las instancias Mac de Amazon EC2. Al no tener que adquirir máquinas y al pagar únicamente por la capacidad de computación de macOS que utiliza, Pinterest ha reducido considerablemente los costos de desarrollo.
Pinterest también ha simplificado los procesos de compilación mediante el uso de las instancias Mac de Amazon EC2. Probar nuevas características y actualizaciones es ahora más rápido y sencillo. “El proceso de actualizar, revisar e implementar las correcciones de seguridad en nuestra canalización CI/CD era bastante complejo”, asegura Koo. “Sin embargo, las Instancias Mac de Amazon EC2 y los nuevos procesos que hemos creado son realmente sencillos de comprender”. Para lanzar una instancia de Amazon EC2, Pinterest crea una imagen de máquina de Amazon (AMI), que contiene información, como los permisos que controlan qué cuentas de AWS pueden utilizar la AMI. Gracias a que los desarrolladores disponen ahora de la posibilidad de crear una AMI y configurar rápidamente estas reglas, la velocidad de desarrollo de Pinterest aumentó en un 42 %. La infraestructura optimizada también simplifica la incorporación de nuevos empleados por parte de Pinterest. Como resultado, los desarrolladores pueden empezar a trabajar antes e innovar más rápido.
Para proteger la canalización de CI/CD, Pinterest utiliza servicios de AWS, como AWS Identity and Access Management (AWS IAM), que proporciona un control de acceso detallado en todo AWS. Cada clúster de instancias Mac de Amazon EC2 utiliza un rol de AWS IAM diferente con distintos permisos asignados. Cuando un usuario intenta acceder al clúster, el sistema concede o deniega automáticamente el acceso en función de las políticas de seguridad que Pinterest haya configurado. La compañía también utiliza AWS Secrets Manager, que ayuda a los desarrolladores a rotar, administrar y recuperar fácilmente las credenciales de la base de datos y las claves de la API a lo largo del ciclo de vida. Pinterest utiliza AWS Secrets Manager para centralizar la autenticación de macOS, lo que impide aún más que usuarios no autorizados accedan al entorno de compilación de iOS.
Pinterest utiliza las instancias Mac de Amazon EC2 para mejorar la estabilidad de la canalización CI/CD de modo que los desarrolladores puedan lanzar nuevas características a un ritmo más rápido. Anteriormente, los desarrolladores tenían que reiniciar con frecuencia las máquinas locales después de largos periodos de inactividad, lo que interrumpía el desarrollo. Ahora, siempre tienen acceso a una infraestructura de CI/CD fiable. Por lo tanto, los desarrolladores de Pinterest pueden crear mejores características y evitar retrasos al enviar las actualizaciones a la App Store de Apple. “Al utilizar las instancias Mac de Amazon EC2, disminuimos el número de errores de compilación relacionados con la máquina en un 80,5 %, lo cual es enorme”. Al utilizar las instancias Mac de Amazon EC2, los desarrolladores de Pinterest ya no tienen que dedicar tiempo a resolver problemas ni a administrar la infraestructura, con lo cual se pueden centrar en la creación de nuevas e innovadoras características para prestar un mejor servicio a los usuarios de Pinterest.
Resultado | Respaldo de la innovación continua en AWS
Gracias a las instancias Mac de Amazon EC2, Pinterest ha mejorado significativamente los tiempos de desarrollo, el tiempo de comercialización y la estabilidad de la canalización de CI/CD. De cara al futuro, tiene previsto utilizar Amazon Relational Database Service (Amazon RDS), que facilita la configuración, el funcionamiento y el escalado de una base de datos relacional en la nube, para registrar y monitorear los errores de compilación. Gracias a esta información, Pinterest puede comprender mejor la frecuencia con la que se producen determinados errores e implementar soluciones para resolverlos. “AWS es el primero en ofrecer entornos de macOS bajo demanda en la nube”, afirma Koo. “Gracias a las Instancias Mac de Amazon EC2, logramos que los entornos de creación de iOS y las máquinas Mac tengan mayor disponibilidad y accesibilidad para los desarrolladores”.
Acerca de Pinterest
Pinterest es un motor de descubrimiento de imágenes que utilizan más de 444 millones de personas todos los meses para encontrar recetas, ideas para el hogar y el estilo, y mucho más. Con sede en San Francisco, California, Pinterest se lanzó en 2010.
Servicios de AWS utilizados
Amazon EC2
Amazon Elastic Compute Cloud (Amazon EC2) es un servicio web que proporciona capacidad informática en la nube segura y de tamaño modificable. Está diseñado para facilitar a los desarrolladores la informática en la nube a escala web.
Instancias de Mac de Amazon EC2
Las instancias de Mac de Amazon EC2 permiten a los clientes ejecutar cargas de trabajo de macOS bajo demanda en la nube por primera vez, lo que permite ofrecer a todos los desarrolladores de Apple la flexibilidad, la escalabilidad y las ventajas económicas de AWS.
AWS Secrets Manager
AWS Secrets Manager ayuda a proteger los datos confidenciales necesarios para acceder a las aplicaciones, servicios y recursos de TI.
Descubra el camino de Pinterest hacia la innovación con AWS
Más historias de Pinterest
Comenzar
Organizaciones de todos los tamaños y de todos los sectores transforman sus negocios y cumplen sus misiones todos los días con AWS. Contacte nuestros expertos y comience hoy mismo su propia jornada en AWS.