You are on page 1of 10

Laura Elena Ortega Gama

96887

ME28

INNOVACIÓN TECNOLÓGICA Y SISTEMAS ENTERPRISE RESOURCE


PLANNING (ERP)
Mtro. Daniel Pérez Rojas

Actividad 1. Identificando sistemas

Ciudad de México, 14 de mayo de 2018.


IDENTIFICANDO SISTEMAS

INTRODUCCIÓN
El objetivo principal de esta actividad es definir los sistemas con los que cuenta una
empresa en la ejecución de sus actividades en los departamentos que la integran.

Desarrollando los siguientes puntos:

1. Identifique en el lugar donde labora los principales sistemas de información o software


con los que se cuenta y realice una lista detallando sus principales características.
2. De los sistemas enlistados, identifique un sistema que utilice a menudo, y defina para
qué lo utiliza, las ventajas, así como las desventajas que encuentre en este software.
Si utiliza algún recurso o software basado en la nube, describa las ventajas y
desventajas que encuentre respecto a los programas comunes.
3. De la herramienta seleccionada, busque alguna opción Open Source, de dicha
herramienta y realice un cuadro comparativo de ambas herramientas haciendo énfasis
en los beneficios y limitantes que le proporciona el uso de dichos programas.

A partir de unas semanas incursioné en el mundo Uber como conductora, por lo que en el
presente trabajo desarrollo los sistemas que utiliza la aplicación, la cual está conformada
por una mezcla de herramientas de software que hacen de esta aplicación una de las más
eficientes en lo que al servicio de traslado se refiere.

Por lo que el desarrollo de las aplicaciones del 2º punto estará basados en algunas de los
softwares desarrollados para las aplicaciones que integra el sistema de uber y que son las
que de manera directa ocupo, aunque parezca que es una sola aplicación.

De acuerdo a la investigación realizada, encontré una plataforma propia para brindar los
servicios parecidos a los de Uber, sin embargo la información referente a sus
características y costo están limitadas a que personal de la plataforma me dé respuesta.
1. Identificar principales sistemas de información o software
empleados por Uber, detallando sus características.

Infraestructura y almacenamiento Lozinski Lucie (2016)

Uber se ejecuta en un modelo de nube híbrida, utilizando una combinación de


proveedores de la nube y múltiples centros de datos activos. Si un centro de datos falla,
los viajes (y todos los servicios asociados con los viajes) conmutan a otro. Al principio se
basó en una sola instancia de Postgres, pero a medida que creció necesitaron aumentar
el almacenamiento en disco disponible y disminuir los tiempos de respuesta del sistema.

Actualmente utilizan Schemaless (construido internamente en la parte superior de


MySQL), Riak y Cassandra. Schemaless es para el almacenamiento de datos a largo
plazo; Riak y Cassandra satisfacen las demandas de baja latencia y alta disponibilidad.
Con el tiempo, las instancias de Schemaless reemplazan las instancias individuales de
MySQL y Postgres, y Cassandra reemplaza a Riak en cuanto a velocidad y rendimiento.
Para almacenamiento distribuido y análisis de datos complejos, utilizamos un almacén de
Hadoop.

Emplean Redis tanto para el almacenamiento en caché como para las colas. Twemproxy
proporciona escalabilidad de la capa de almacenamiento en caché sin sacrificar la tasa de
aciertos de la memoria caché a través de su algoritmo hash consistente. Los trabajadores
de Celery procesan las operaciones de flujo de trabajo asincrónico utilizando esas
instancias de Redis.

Logging

Los servicios de Uber interactúan entre sí y con dispositivos móviles, y esas interacciones
son valiosas para usos internos, como la depuración, así como casos de negocios, como
los precios dinámicos. Para el registro, utilizamos múltiples clústeres Kafka, y los datos se
archivan en Hadoop y / o en un servicio web de almacenamiento de archivos antes de que
caduque en Kafka. Estos datos también son ingeridos en tiempo real por varios servicios
e indexados en una pila ELK para búsquedas y visualizaciones (ELK significa
Elasticsearch, Logstash y Kibana).
Aprovisionamiento de aplicaciones
Se utilizan contenedores Docker en Mesos para ejecutar sus microservicios con
configuraciones consistentes de manera escalable, con la ayuda de Aurora para servicios
de larga ejecución y trabajos cron. Uno de sus equipos de infraestructura, Application
Platform, produjo una biblioteca de plantillas que crea servicios en imágenes de Docker
que pueden enviarse.

Los servicios heredados usan instancias HAProxy locales para enrutar JSON a través de
solicitudes HTTP a otros servicios, con proxys NGINX de servidor front-end web a los
servidores en la parte de atrás. Esta forma bien establecida de transferir datos hace que
la solución de problemas sea fácil, lo que fue crucial en varias migraciones a sistemas
recientemente desarrollados en el último año.

Protocolos alternativos a HTTP (como SPDY, HTTP / 2 y TChannel) junto con lenguajes
de definición de interfaz como Thrift y Protobuf ayudarán a evolucionar nuestro sistema en
términos de velocidad y confiabilidad. Ringpop, una capa hash consistente, brinda
cooperación y autocuración al nivel de aplicación. Hyperbahn permite que los servicios
encuentren y se comuniquen con otros de manera sencilla y confiable, incluso cuando los
servicios se programan dinámicamente con Mesos.

En lugar de sondeos arcaicos para ver si algo ha cambiado, mueven a un patrón pub-sub
(publicando actualizaciones para los suscriptores). HTTP / 2 y SPDY habilitan más
fácilmente este modelo de inserción.

Desarrollo e implementación

Phabricator potencia una gran cantidad de operaciones internas, desde la revisión del
código hasta la documentación y la automatización de procesos, a través del código en
OpenGrok. Para los proyectos de código abierto de Uber, se ha usado GitHub para dar
seguimiento a problemas y revisiones de códigos.

Crearon un sistema propio de implementación interna para administrar construcciones.


Jenkins hace integración continua. Combinan Packer, Vagrant, Boto y Unison para crear
herramientas para construir, administrar y desarrollar en máquinas virtuales. Utilizan
Clusto para la gestión de inventario en desarrollo. Puppet administra la configuración del
sistema.
Para descubrir información, crearon uBlame (un guiño a git-culpa) para realizar un
seguimiento de qué equipo posee un servicio en particular, y Whober para buscar
nombres, caras, información de contacto y estructura organizacional. Tienen un sitio
interno de documentación que autoconstruye documentos de repositorios utilizando
Sphinx. Un servicio de alerta empresarial alerta a nuestros ingenieros de turno para
mantener los sistemas en funcionamiento. La mayoría de los desarrolladores ejecutan
OSX en sus computadoras portátiles, y la mayoría de nuestras instancias de producción
ejecutan Linux con Debian Jessie.

Idiomas

Los ingenieros de Uber escriben principalmente en Python, Node.js, Go y Java.


Comenzaron con dos idiomas principales: Node.js para el equipo Marketplace y Python
para todos los demás. Estos primeros idiomas todavía alimentan la mayoría de los
servicios que se ejecutan en Uber en la actualidad.

Adoptaron Go y Java por razones de alto rendimiento. Brindaron soporte de primera clase
para estos idiomas. Java aprovecha el ecosistema de código abierto y se integra con
tecnologías externas, como Hadoop y otras herramientas de análisis. Go brinda eficiencia,
simplicidad y velocidad de ejecución.

Reemplazaron el código Python más antiguo a medida que dividieron la base del código
original en microservicios. Un modelo de programación asíncrono proporciona un mejor
rendimiento. Usan Tornado con Python, pero el soporte nativo de Go para la concurrencia
es ideal para la mayoría de los nuevos servicios críticos para el rendimiento.

Cuando es necesario, escriben herramientas en C y C ++ (como en el caso del código de


alta velocidad y alta eficiencia a nivel del sistema). Usan software escrito en esos
lenguajes (HAProxy, por ejemplo) pero, en general, no trabajan en ellos.

Y, por supuesto, aquellos que trabajan en la parte superior de la pila escriben en idiomas
que van más allá de Java, Go, Python y Node.

Pruebas
Para manejar las demandas entorno de producción, han desarrollado dos herramientas
internas: Hailstorm y uDestroy. Hailstorm impulsa las pruebas de integración y simula la
carga pico durante las horas de menor actividad, mientras que uDestroy rompe
intencionalmente las cosas para mejorar las fallas inesperadas.

Confiabilidad

Usan alertas de Nagios para monitoreo, vinculadas a un sistema de alerta para


notificaciones.

Telemetría

Desarrollamos M3 en Go para recopilar y almacenar métricas de cada parte de Uber


Engineering (cada servidor, servicio de host y parte de código).

Detección de anomalías

Argos, herramienta interna de detección de anomalías, examina las métricas entrantes y


las compara con los modelos predictivos basados en datos históricos para determinar si
los datos actuales se encuentran dentro de los límites esperados.

Cartografía

Los equipos de mapas de Uber priorizan los conjuntos de datos, algoritmos y


herramientas en torno a los datos del mapa, la visualización, el enrutamiento y los
sistemas para recopilar y recomendar direcciones y ubicaciones. Map Services se ejecuta
principalmente en Java.

El servicio de mayor volumen en esta área es Gurafu, que proporciona un conjunto de


utilidades para trabajar con datos de mapas de ruta y mejora la eficiencia y precisión al
proporcionar opciones de enrutamiento más sofisticadas. Gurafu está liderado por μETA,
que agrega una capa de lógica de negocios sobre las ETA sin procesar (cosas como la
segmentación de grupos de experimentos). Tanto Gurafu como μETA son servicios web
basados en DropWizard.
2. Identificar un sistema que utilice a menudo, y definir para qué lo
utiliza, las ventajas, así como las desventajas que encuentre en este
software. Si utiliza algún recurso o software basado en la nube,
describa las ventajas y desventajas que encuentre respecto a los
programas comunes.

De acuerdo al apartado anterior en mí día a día y debido a mi actividad, en realidad la


aplicación que más empleo es la de Uber y Waze, el segundo se enlaza directamente con
Uber para poder hacer la navegación hacia el punto de partida y de llegada, la diferencia
con la que emplea Uber como gps, es que la segunda es más exacta, ya que las
indicaciones son mucho más precisas, ya que indica exactamente en qué carril debe uno
continuar, central o lateral, al dar vuelta ya sea a la derecha o a la izquierda, también de
manera gráfica podemos observar sí el domicilio de llegada está a la derecha o a la
izquierda. Éstas son ventajas sobre la aplicación de GPS de Uber, si bien la de Uber te
indica incluso por voz te da el nombre del usuario y el lado en el cual se encuentra.

Ambas aplicaciones son de carácter libre ya que no tienen un costo, de igual forma los
softwares de MySql y PostgreSql que emplea Uber son gratuitos, sin embargo Uber como
lo he mencionado ha invertido en el desarrollo de su plataforma, sin embargo, aunque
aparentemente sin costo, se deben pagar los servicios por el uso de datos; recurso
necesario ya que la información se encuentra en la nube.

De igual manera es lógico pensar que el uso de la aplicación implica un costo, ya que al
realizar un viaje al final se desglosa la ganancia obtenida como conductor y la parte que le
corresponde a Uber.
3. De la herramienta seleccionada, busque alguna opción Open
Source, de dicha herramienta y realice un cuadro comparativo de
ambas herramientas haciendo énfasis en los beneficios y limitantes
que le proporciona el uso de dichos programas.

WayCab
Uber
Open source
Uber se ejecuta en un modelo de nube híbrida, utilizando una
combinación de proveedores de la nube y múltiples centros de
datos activos:
MySQL y Postgres, y Cassandra
Kafka y Hadoop.
ELK (ELK significa Elasticsearch, Logstash y Kibana).
Docker en Mesos.
HAProxy, JSON
Proxys NGINX
Código OpenGrok.
GitHub.
Software y No se obtuvo la información
Combinación Packer, Vagrant, Boto y Unison
aplicación solicitada, respecto a los
Clusto.
softwares empleados en la
Puppet
plataforma
uBlame
Whober
Sphinx.
OSX
Linux con Debian Jessie.
Lenguajes Python, Node.js, Go y Java
Hailstorm y uDestroy. Hailstorm
Nagios
M3 en Go
Map Services
Gurafu, μETA, ETA basados en DropWizard.

La limitante con WayCab es que es una plataforma independiente de la cual se debe uno
sujetar a la disposición de quienes la atienden para recibir respuesta respecto a la
aplicación, en realidad debe uno conocer más sobre su uso y costos, así como la forma
en la que debe uno ingresarla o utilizarla de forma independiente de otras ofertas en
nuestro país, es necesario conocer jurídicamente el movimiento de estas empresas antes
de aventurarse a la contratación de una plataforma así para fines de crear una empresa
semejante a la de Uber.

Las ventajas de Uber es que funciona en cierta forma como un Out soursing, ya que de
manera automática sí el cliente así lo requiere formula las facturas, de tal modo que no es
necesario que uno como conductor las deba elaborar de forma independiente.

Otro punto a favor es que las ganancias son depositadas de manera automática a la
cuenta bancaria registrada.

Sí bien la ganancia no es completamente para el conductor el pago por el uso de la


aplicación y su plataforma, garantiza el recibir viajes y de alguna forma una entrada de
ingresos constante, además de que uno no debe embrollarse en el desarrollo y control de
una aplicación que requiere un manejo de diversos softwares para que funcione
adecuadamente.

Por lo que una gran desventaja de Way Cab es el desconocer en absoluto su


funcionamiento y la forma en la que opera el software de su aplicación, así como el costo.
Fuentes consultadas

Culebro, M., Gómez, W.G. & Torres, S. (2006). Software libre vs software propietario.
Ventajas y desventajas. (pp.47-58). México: Creative Commons.

Lozinski, Lucie. (2016). The Uber Engineering Tech Stack, Part I: The Foundation. 14 de
mayo de 2018, de Uber Sitio web: https://eng.uber.com/tech-stack-part-one/

Oltra, R. (2012). Sistemas integrados de gestión empresarial. Evolución histórica y


tendencias de futuro. (pp. 45-51). España: UPV.

Piedrahita, E. (2005). La evaluación de tecnología, un proceso estratégico y estocástico.


En Revista EIA. (pp. 69-81). Colombia: Escuela de ingeniería de Antioquía.

https://waycabplus.com

Consultado el 13 de mayo de 2018.

You might also like