¿Cómo funciona la aplicación ‘HootSuite’?

Saber cómo explicar ” cómo funciona Hootsuite (o cualquier otra pieza de software) ” realmente depende de saber con quién está hablando.

¿Estoy hablando con un laico? ¿Estoy hablando con un ingeniero de software? Alguien entre esos dos?

Para que cualquier tipo de persona pueda leer esto, comencemos primero con la descripción del lego y avancemos a una descripción apropiada para un ingeniero de software.

De esa manera, puede dejar de leer cuando esto sea demasiado técnico para usted.

Entonces, realmente hay más de un Hootsuite. Una versión de Hootsuite es lo que obtienes cuando visitas https://hootsuite.com/; llamaremos a esto la versión web ” de Hootsuite. El otro Hootsuite es la aplicación que usa en su teléfono móvil o tableta; llamaremos a esto la versión de la aplicación ” de Hootsuite.

(Aunque en realidad, hay más de una versión de la aplicación de Hootsuite. Aunque las versiones de Hootsuite para iPhone y Android se parecen, en realidad son piezas de software separadas. Pero ignoremos ese detalle por ahora).

La versión web y las versiones de la aplicación de Hootsuite están relacionadas, por lo que es útil hablar sobre ambas. Hablemos primero de la versión web y luego de la versión de la aplicación.

La versión web de Hootsuite es un sitio web. O quizás más exactamente, Hootsuite (como Twitter, Facebook y Google) es una aplicación web .

Lo que ves en tu navegador web, lo que ves en Firefox, Chrome, IE o Safari, cuando vas a https://hootsuite.com/ es solo la punta del iceberg . ¡Hay MUCHO pasando detrás de escena!

(Lo que sucede detrás de escena es lo que crean y ejecutan los equipos de ingenieros de software muy inteligentes y altamente calificados, administradores de sistemas, personal de control de calidad, etc.)

La versión web de Hootsuite está obviamente destinada a los humanos. Sin embargo, la versión web de Hootsuite también expone un ” punto de acceso ” especial para que lo usen las máquinas.

En la jerga técnica, este “punto de acceso” se denomina API. Llamaremos a este “punto de acceso” de Hootsuite para máquinas la “API de Hootsuite”.

Entonces, ¿qué máquinas usan esta API Hootsuite?

Bueno, la versión de la aplicación de Hootsuite en tu teléfono móvil y tabletas lo usa. (Las aplicaciones se consideran “máquinas”).

Pero esta no es la única API involucrada. Hootsuite, en sus diversas encarnaciones, se comunica con Twitter, Facebook, LinkedIn, Google+, Instagram, YouTube, Foursquare, etc. La forma en que lo hace es mediante el uso de sus API.

De hecho, Twitter tiene una API, Facebook tiene una API, etc. Ya sea directa o indirectamente, la versión web y las versiones de la aplicación de Hootsuite también usan estas otras API también.

(Si es técnico, puede obtener más información sobre algunas de estas API en: https://dev.twitter.com/, https://developers.facebook.com/, https://developer.linkedin.com/ Si no eres técnico, ignora esos enlaces y sigue leyendo 🙂)

Entonces, mencionemos una palabra de moda que puede o no haber escuchado antes: la “Nube”.

(La gente técnica puede estar avergonzada en este momento 🙂 ya que es más un término de marketing que un término técnico).

Las versiones de la aplicación de Hootsuite se descargan e instalan en su teléfono o tableta. Sin embargo, la versión web de Hootsuite y la API de Hootsuite están en la nube .

Entonces, ¿dónde está exactamente la nube de Hootsuite?

Hootsuite utiliza un servicio que Amazon ejecuta llamado Amazon AWS http://aws.amazon.com/.

Si no eres técnico, probablemente estés pensando: ” Pensé que Amazon vendía libros. ¿Qué tiene que ver Amazon con la nube de Hootsuite? “.

Bueno, Amazon en realidad hace muchas cosas. Entonces, además de vender libros, Amazon también ofrece un servicio relacionado con la nube, llamado colectivamente “Amazon AWS”.

Entonces, la nube de Hootsuite está en Amazon AWS.

Muchas compañías realmente usan Amazon AWS.

Así que vamos a ser un poco más específicos sobre las tecnologías involucradas.

La versión web de Hootsuite y Hootsuite API se crearon utilizando varias tecnologías diferentes.

Las partes visibles de la versión web de Hootsuite (es decir, lo que ves cuando vas a https://hootsuite.com/), en la jerga técnica, se llama “frontend”.

La interfaz de la versión web de Hootsuite utiliza las tecnologías estándar relacionadas con la web conocidas como HTML, CSS y JavaScript.

La interfaz de la versión web de Hootsuite también utiliza otras tecnologías construidas sobre esas tecnologías. Algunas de estas tecnologías incluyen EJS http://www.embeddedjs.com/, jQuery http://jquery.com/, Less http://lesscss.org/, ReactJS http://facebook.github.io/react/ .

Esa es la interfaz de la versión web de Hootsuite. Qué más hay ahí.

Bueno, está el “backend”. Si piensas en la interfaz como la punta del iceberg , el backend es el resto del iceberg debajo del agua.

Al igual que el frontend , el backend de la versión web de Hootsuite y la API de Hootsuite (es decir, las partes de Hootsuite que están en la nube) utilizan varias tecnologías diferentes.

En términos de lenguajes de programación, los principales son Scala y PHP.

Hootsuite comenzó como una aplicación PHP pero en el proceso de transformación en una aplicación Scala. En este momento es una combinación de los dos.

El backend comenzó siendo construido en Apache, Subversion, Linux, MySQL, PHP, Zend Framwork.

Pero eventualmente creció orgánicamente para construirse en Akka, Ansible, Apache, Composer, Docker, Gearman, Git, Graphite, ElasticSearch, Hadoop, HAProxy, Jenkins, Kibana, Linux, Logstash, Nagios, Memcached, MongoDB MySQL, Nginx, PHP, PHP -FPM, Play Framework, Python, Redis, RabbitMQ, Riak, Scala, Sensu, Spark, StatsD, Symfony, Vagrant, Varnish, VirtualBox, Zend Framework, ZeroMQ, Zookeeper. (Probablemente falten algunas cosas de esa lista).

Entonces, esta tecnología para el backend está involucrada con la versión web de Hootsuite y la API de Hootsuite.

Y, por supuesto, la API de Hootsuite es con lo que habla la versión de la aplicación de Hootsuite.

Entonces, esa larga lista de tecnologías para el backend está involucrada tanto con la versión web como con la versión de la aplicación de Hootsuite.

Pero, ¿qué pasa con la parte de la versión de la aplicación que descargas en tu teléfono? Bueno, para la versión de iPhone usará el lenguaje de programación Objective C. Pero para la versión de Android utilizará el lenguaje de programación Java.

Bien, ahora tienes una idea aproximada de lo que está involucrado. De hecho, no creo que esto realmente responda a la pregunta de “cómo funciona “. (Aunque creo que satisfaría lo que muchos ingenieros de software desearían saber).

Puedes ir mucho más profundo que esto.

Por ejemplo, ¿qué sucede cuando presiono las teclas de mi palabra clave para deletrear la URL “http://hootsuite.com” en mi navegador? ¿O qué sucede cuando muevo el mouse para hacer clic en un enlace y llevarme allí? ¿Qué sucede cuando mi teléfono móvil se conecta a Internet?

Podríamos repasar lo que sucede desde el punto de vista de alguien que escribe un programa para hacer esto. Desde el punto de vista de alguien que escribe un sistema operativo o controlador de dispositivo. Incluso podríamos hablar de esto desde el punto de vista físico o físico. Y qué sucede cuando las cosas se comunican a través de su red WiFi o Internet. ¿Cómo se hace el enrutamiento? ¿Cuál es mi opinión sobre los algoritmos de colonias de hormigas? ¿Qué es una tormenta ARP? También podríamos entrar en cómo funciona el protocolo HTTP. ¿Cómo se traduce un nombre de dominio a una dirección IP? ¿Cómo funciona TLS? Etc, etc., etc.

En realidad, hay MUCHAS cosas diferentes en muchos niveles diferentes para responder realmente a la pregunta de “cómo funciona”.

Entonces, podríamos entrar en eso, pero ya he estado escribiendo por un tiempo y estoy cansado y quiero ir al gimnasio y siento que si sigo escribiendo esto se convertirá en algo del tamaño de un libro, así que Me detendré aquí.

Espero que en algún lugar de allí su pregunta haya sido respondida.

APIs

  1. En la programación de computadoras, una interfaz de programación de aplicaciones ( API ) es un conjunto de rutinas, protocolos y herramientas para crear aplicaciones de software. Una API expresa un componente de software en términos de sus operaciones, entradas, salidas y tipos subyacentes.
  2. http://en.wikipedia.org/wiki/App

Prepobla la aplicación con tweets / actualizaciones de estado en sus diversos perfiles de redes sociales. Es una forma de establecer ‘presencia’, aunque no es tan buena para facilitar el compromiso como para iniciar sesión. Supongo que funciona guardando sus credenciales, iniciando sesión a través de su inicio de sesión y publicando lo que le pidió.