Heroku
Heroku es una plataforma como servicio (PaaS) que admite varios lenguajes de programación. Una de las primeras plataformas en la nube, Heroku ha estado en desarrollo desde junio de 2007, cuando solo admitía el lenguaje de programación Ruby, pero ahora admite Java, Node.js, Scala, Clojure, Python, PHP y Go.[2] Por esta razón, se dice que Heroku es una plataforma políglota, ya que tiene características para que un desarrollador cree, ejecute y escale aplicaciones de manera similar en la mayoría de los idiomas. Heroku fue adquirida por Salesforce en 2010 por 212 millones de dólares.[3]
Heroku | ||
---|---|---|
Tipo | Subsidiaria | |
Industria | Computación en la nube | |
Fundación | 2007 (16 años) | |
Fundador |
| |
Sede central | San Francisco,California, Estados Unidos | |
Personas clave |
Bob Wise (CEO) Gail Frederick (CTO) | |
Productos | Heroku Platform, Heroku Postgres, Heroku Redis, Heroku Enterprise, Heroku Teams, Heroku Connect, Heroku Elements, Heroku Review Apps[1] | |
Empresa matriz | Salesforce | |
Sitio web | heroku.com | |
Historia
Heroku fue desarrollado inicialmente por James Lindenbaum, Adam Wiggins,[4] y Orion Henry[5] para apoyar proyectos que eran compatibles con la plataforma de programación Ruby conocida como Rack.[6] El desarrollo del prototipo tomó alrededor de seis meses. Más tarde, Heroku enfrentó contratiempos debido a la falta de clientes de mercado adecuados, ya que muchos desarrolladores de aplicaciones usaban sus propias herramientas y entornos. En enero de 2009, se lanzó una nueva plataforma que se construyó casi desde cero después de un esfuerzo de tres meses. En octubre de 2009, Byron Sebastian se incorporó a Heroku como director ejecutivo.[7] El 8 de diciembre de 2010, Salesforce.com adquirió Heroku como subsidiaria de propiedad total de Salesforce.com. El 12 de julio de 2011, Yukihiro "Matz" Matsumoto, diseñador jefe del lenguaje de programación Ruby, se unió a la empresa como arquitecto jefe de Ruby.[8] Ese mismo mes, Heroku agregó soporte para Node.js y Clojure. El 15 de septiembre de 2011, Heroku y Facebook presentaron Heroku para Facebook.[9] En la actualidad, Heroku admite bases de datos Redis[10][11] además de su estándar PostgreSQL.[12]
En agosto de 2022, Heroku anunció que sus planes gratuitos serían descontinuados, citando el fraude y el abuso como razones para el cambio, lo que molestó a muchos clientes.[13]
Etimología
El nombre "Heroku" es un acrónimo de "heroico" y "haiku".[14] El tema japonés es un guiño a Matz por crear Ruby. El nombre en sí se pronuncia de manera similar a la palabra japonesa que significa "ampliamente" (hiroku), aunque los creadores de Heroku no querían que el nombre de su proyecto tuviera un significado particular, en japonés o en cualquier otro idioma, por lo que optaron por inventar un nombre.
Arquitectura
Las aplicaciones que se ejecutan en Heroku suelen tener un dominio único que se usa para enrutar las solicitudes HTTP al contenedor de la aplicación correcto[15] o dyno.[16] Cada uno de los dynos se distribuye en una "cuadrícula de dyno" que consta de varios servidores. El servidor Git de Heroku maneja las inserciones del repositorio de aplicaciones de los usuarios autorizados.[17]
Todos los servicios de Heroku están alojados en la plataforma de computación en la nube EC2 de Amazon.[18]
Dynos
Los Dynos son piezas fundamentales del modelo de arquitectura de Heroku, son las unidades que proveen capacidad de cómputo dentro de la plataforma. Están basados en Contenedores Linux.
Cada Dyno está aislado del resto, por lo que los comandos que se ejecutan y los archivos que se almacenan en un Dyno, no afectan a los otros. Además cada Dyno provee el ambiente requerido por las aplicaciones para ser ejecutadas.
Los posibles comandos a ser ejecutados en los dynos incluyen procesos web, o cualquier otro tipo de proceso definido en el archivo Procfile de la aplicación. Este es un archivo de texto ubicado en el directorio raíz de la aplicación, y es el mecanismo provisto para la declaración de comandos que luego correrán los dynos. Básicamente, consiste de una lista de tipos de procesos de la aplicación. Cada tipo de procesos constituye una declaración de un comando.
Principales características
- Elasticidad y crecimiento. La cantidad de Dynos asignados a una aplicación se puede cambiar en cualquier momento a través de la línea de comandos o el dashboard.
- Tamaño. Heroku ofrece diferentes tipos de dynos, cada uno con diferentes capacidades de procesamiento y memoria.
- Routing. Internamente los routers realizan un seguimiento de la ubicación de los Dynos que estén corriendo, y redirigen el tráfico de acuerdo a la misma.
- Seguimiento. Existe un manejador de Dynos, el cual monitorea de forma continua los dynos que se estén ejecutando. En caso de una falla en un Dyno, este es eliminado y creado nuevamente.
- Distribución y redundancia. Los Dynos se encuentran aislados uno de otro. Esto implica que de existir fallos en la infraestructura interna de alguno de ellos, los otros dynos no se ven afectados, y consecuentemente tampoco la aplicación.
Productos
- Heroku Platform
- La red Heroku ejecuta las aplicaciones del cliente en contenedores virtuales que se ejecutan en un entorno de tiempo real, heroku llama a esto contenedores, Dynos. Estos Dynos pueden ejecutar código escrito en Node, Ruby, PHP, Go, Scala, Python, Java o Clojure. Heroku también proporciona buildpacks personalizados con los que el desarrollador puede implementar aplicaciones en cualquier otro lenguaje. Heroku le permite al desarrollador escalar la aplicación instantáneamente tan solo incrementando el número de dyno o ejecutando la aplicación en un dyno más potente.
- Heroku Postgres
- Heroku Postgres es un servicio de base de datos en la nube (DBaaS) de Heroku basado en PostgreSQL. Heroku Postgres provee características como protección continua, rollback y alta disponibilidad. También permite forkear la base de datos, crear followers y dataclips.
- Heroku Redis
- Heroku Redis es el Redis personalizado de Heroku que provee una mejor experiencia de desarrollo. Heroku lo ofrece como servicio, ayuda a gestionar las instancias con una CLI, permite asociar datos con Postgres para ganar información comercial usando herramientas SQL permitiéndole al cliente obtener visibilidad del rendimiento.
- Heroku Teams
- Heroku Teams es una herramienta de gestión de equipo que provee colaboración y controles para reunir a desarrolladores, procesos y herramientas con el fin de crear un mejor software. Con Heroku Teams los equipos pueden autoorganizarse, agregar y gestionar miembros del equipo, obtener un control detallado con permisos a nivel de aplicación, y también usar herramientas colaborativas como Heroku Pipelines.
- Heroku Connect
- Heroku Connect les permite a los usuarios de aplicaciones Heroku poder integrarse fácilmente con las implementaciones de Salesforce. Esto es posible al tener una perfecta sincronización de datos entre la base de datos Postgres de Heroku y la organización de Salesforce.
- Heroku Enterprise
- Heroku Enterprise proporciona servicios a grandes empresas que les ayudan a mejorar la colaboración entre diferentes equipos. Proporciona un conjunto de características como detallados controles de acceso, identidades para la organización y espacios privados, para administrar el proceso de desarrollo de aplicaciones empresariales, los recursos y los usuarios.
- Heroku Elements
- Heroku Elements proporciona a los usuarios los complementos, herramientas y servicios para desarrollar, extender y operar la aplicación. Existen los llamados Buildpacks que automatizan los procesos de compilación para muchos de los frameworks y lenguajes de programación. Con un Buildpacks se logra aprovisionar con un solo clic toda la configuración, componentes de terceros, librerías y patrones para una aplicación.
Competidores
Referencias
- «Heroku Review Apps now Generally Available». blog.heroku.com (en inglés). Consultado el 6 de febrero de 2023.
- «'heroku' tag wiki». Stack Overflow (en inglés). Consultado el 6 de febrero de 2023.
- Wauters, Robin (8 de diciembre de 2010). «Salesforce.com Buys Heroku For $212 Million In Cash». TechCrunch (en inglés estadounidense). Consultado el 6 de febrero de 2023.
- «Adam Wiggins». adamwiggins.com (en inglés). Consultado el 6 de febrero de 2023.
- «Orion Henry». Consultado el 6 de febrero de 2023.
- Hendrickson, Mark (8 de mayo de 2008). «Ruby on Rails Startup Heroku Gets $3 Million». TechCrunch (en inglés estadounidense). Consultado el 6 de febrero de 2023.
- «SourceLabs’ Byron Sebastian joins Heroku as CEO». VentureBeat (en inglés estadounidense). 15 de octubre de 2009. Consultado el 6 de febrero de 2023.
- Peter Cooper. «Ruby’s Creator, Matz, Joins Heroku». Consultado el 6 de febrero de 2023.
- «Facebook Partners With Heroku to Offer Developers Free Sample Application Hosting | SocialTimes». adweek.com. 15 de septiembre de 2011. Archivado desde el original el 6 de marzo de 2016. Consultado el 6 de febrero de 2023.
- Redis (9 de noviembre de 2012). «Six Things to Consider When Using Redis on Heroku». Redis (en inglés). Consultado el 6 de febrero de 2023.
- «NoSQL, Heroku, and You». blog.heroku.com (en inglés). Consultado el 6 de febrero de 2023.
- «Rails Deploy to Heroku · railsguides». guides.railsapps.org. 26 de enero de 2017. Archivado desde el original el 5 de agosto de 2020. Consultado el 6 de febrero de 2023.
- Wiggers, Kyle (25 de agosto de 2022). «Heroku announces plans to eliminate free plans, blaming 'fraud and abuse'». TechCrunch (en inglés estadounidense). Consultado el 6 de febrero de 2023.
- «The term is merger of "Hero" and "Haiku". The Japanese theme is a nod to Matz fo... | Hacker News». news.ycombinator.com. Consultado el 6 de febrero de 2023.
- «What Is Application Containerization? Definition from SearchITOperations». IT Operations (en inglés). Consultado el 6 de febrero de 2023.
- «Dynos and the Dyno Manager | Heroku Dev Center». devcenter.heroku.com (en inglés). Consultado el 6 de febrero de 2023.
- «Deploying Node.js Apps on Heroku | Heroku Dev Center». devcenter.heroku.com (en inglés). Consultado el 6 de febrero de 2023.
- «Heroku Security | Heroku». www.heroku.com (en inglés). Consultado el 6 de febrero de 2023.
Enlaces externos
- Heroku (official site).
- Videos en Vimeo (video).
- Presentación: Intro a Heroku (presentacion), Slideshare.
- Deploying Azure Hosted Services Should Be as Easy as Deploying a Heroku Application, Sys-con, archivado desde el original el 5 de junio de 2014, consultado el 3 de abril de 2013.
- Heroku’s Ruby Cloud Platform at Building 43, 20 de abril de 2010, archivado desde el original el 2 de junio de 2014..
- «Venture Wire FASTech Conference Spotlights Most Promising Start-Ups», Wall Street Journal (weblog), 12 de octubre de 2010..
- Can Heroku Become the Official Cloud of Facebook Apps?, GigaOm, archivado desde el original el 10 de octubre de 2012, consultado el 3 de abril de 2013.
- Adam Wiggins on Heroku’s Pivot, Building a "Washing Machine" for Web Developers, and Joining Salesforce.com, xconomy, 24 de mayo de 2011.
- «Facebook Builds Bridge To Heroku Cloud», InformationWeek.
- «Ruby creator sets sights on mobile», Infoworld (interview).