Uber’s technical stack (architecture)

Uber follows micro services architecture catering to mobile and web apps. Here goes the key technologies in the stack. Please visit the links given under references for comprehensive listing.

APIs

  • Multiple levels of APIs such as web, business layer.
  • User interfacing APIs are primarily written in NodeJS.
  • Mapping services provides ETA prediction, location auto complete, etc.

 Apps

  • Native mobile apps .
  • Web – ReactJS based.

Storage & analytcis

  • Temporary data such as location information – Cassandra clusters.
  • Permanent data such as trip information – Schemaless (In-house sustomization of MySql).
  • Datawarehouse for analytics – Hadoop ecosystem.
  • Redis for caching and queuing.
  • Storm, splunk for analytics.

Infrastructure

  • Hybrid cloud leveraging multiple cloud providers and in-house data centers.
  • Datacenter OS – Mesos.
  • Containers – Docker run on Mesos.
  • NGINX font ends the requests from users (SSL termination happens here).
  • HAProxy for load balancing.
  • Webserver based on ExpressJS.

Log analytics

  • Kafka clusters, archived in to hadoop warehouse.
  • Searching and visualization – elastic search, Logstash and Kibana.

Configuration Management

  • Source code repos – Github for open source projects. Phabricator for in-house dev, code review, etc.
  • Jenkins for continious integration.
  • Puppet for configurations.

APM (Applicaton Performance Monitoing)

  • Nagios.

Devops

  • Terraform for provisioning (Infrastructure as code).

Programming languages

  • NodeJS
  • Python
  • Java
  • Google Go.

References

Leave a Reply

Your email address will not be published. Required fields are marked *