Uber Tech Stack & สถาปัตยกรรมซอฟต์แวร์ – Uber สร้างขึ้นอย่างไร

เผยแพร่แล้ว: 2022-01-17

Uber ได้กลายเป็นชื่อครัวเรือน แพลตฟอร์มที่น่าทึ่งนี้ทำให้ผู้ใช้สามารถจองบริการรถแท็กซี่ได้ในสี่ขั้นตอนง่ายๆ เท่านั้น แอพ Uber รับประกันบริการที่รวดเร็วและความสะดวกสบายสูงสุด ไม่น่าแปลกใจเลยที่แอปนี้ได้รับความนิยมอย่างล้นหลาม

คุณรู้หรือไม่ว่า Uber มีผู้ใช้งาน 98 ล้านคนต่อเดือน? นอกจากนี้ บริษัทยังสร้างรายได้ 11.1 พันล้านดอลลาร์ในปี 2563 หรือไม่ Uber ได้สร้างตัวอย่างสุดคลาสสิกสำหรับสตาร์ทอัพและบริการแท็กซี่ที่มีอยู่ ทุกองค์กรต่างตั้งเป้าที่จะจำลองความสำเร็จของ Uber โดยนำเสนอบริการเรียกแท็กซี่ที่รวดเร็วและสะดวกสบาย

หากคุณรู้สึกทึ่งกับความสำเร็จอันยิ่งใหญ่ของ Uber บทความนี้เหมาะสำหรับคุณ ในที่นี้ เราจะพูดถึงสแต็คเทคโนโลยีและสถาปัตยกรรมซอฟต์แวร์ของ Uber ซึ่งจะช่วยให้คุณเข้าใจแพลตฟอร์มได้ดีขึ้นและช่วยคุณสร้างแอปบริการรถแท็กซี่ตั้งแต่เริ่มต้น มาเริ่มกันเลยดีกว่า

ฉันจะสร้างแอปแบบเรียลไทม์อย่าง Uber ได้อย่างไร

ในการสร้างแอปแบบเรียลไทม์อย่าง Uber คุณต้องเข้าใจส่วนประกอบต่างๆ ของแอปก่อน ซึ่งมีดังนี้:

แอพผู้โดยสาร

หากคุณเคยใช้แอพ Uber มาก่อน คุณจะระบุได้อย่างง่ายดายด้วยฟังก์ชันแอพผู้โดยสาร ส่วนประกอบของแอปนี้มีคุณสมบัติทั้งหมดที่ผู้ใช้ต้องการในการจองรถแท็กซี่ เช่น การเลือกการเดินทาง เครื่องคำนวณค่าโดยสาร การชำระเงินออนไลน์ การติดตามด้วย GPS เป็นต้น

แอพไดรเวอร์

แอพของคนขับถูกใช้โดยคนขับแท็กซี่ที่แสดงคำขอแท็กซี่ใหม่จากผู้โดยสาร เมื่อใช้แผงควบคุมนี้ ผู้ขับขี่สามารถยอมรับหรือปฏิเสธคำขอโดยสาร และตรวจสอบตำแหน่งที่แน่นอนของผู้โดยสารโดยใช้แผนที่ในตัว

The Marketplace

ตลาดกลางเชื่อมต่อสองแอปพลิเคชัน - แอปผู้โดยสารและแอปไดรเวอร์ ดำเนินการงานที่ซับซ้อนที่สุดที่เกี่ยวข้องกับการจับคู่ผู้โดยสารกับคนขับและการจัดการการชำระเงิน

ดังนั้น หากคุณต้องการสร้างแอปอย่าง Uber คุณจะต้องมีแผงควบคุมสามแบบ แผงแรกจะช่วยให้ผู้โดยสารสามารถจองรถแท็กซี่ได้ และแผงที่สองจะช่วยให้ผู้ขับขี่ยอมรับคำขอโดยสารได้ และสุดท้าย แผงที่สามจะได้รับคำขอจากสองคนแรกและจัดการการดำเนินการออนไลน์ทั้งหมด

จะสร้าง Uber ต่อไปได้อย่างไร

Uber คือบริการเรียกแท็กซี่ที่ประสบความสำเร็จอย่างสูงซึ่งมอบความสะดวกสบายสูงสุดแก่ผู้โดยสาร การพัฒนาแอพอย่าง Uber อาจต้องใช้เงินจำนวนมากและทีมพัฒนาแอพที่มีความสามารถ

นอกจากนั้น ยังมีอีกหลายสิ่งที่ต้องพิจารณาขณะพัฒนาแอพอย่าง Uber

ตรวจสอบคู่แข่งของคุณ

เป็นความคิดที่ดีที่จะค้นหาแอปที่กำลังพยายามแก้ปัญหาเดียวกันกับที่คุณต้องการจัดการกับแอปของคุณ การดูแอปเหล่านี้จะช่วยให้คุณรวบรวมแนวคิดเกี่ยวกับคุณลักษณะ ฟังก์ชันการทำงาน และกลุ่มเป้าหมายได้

นอกจากนี้ การดูแนวการแข่งขันอย่างละเอียดจะช่วยให้คุณเข้าใจว่าคู่แข่งของคุณทำงานอย่างไร ตัวอย่างเช่น การตรวจสอบโซเชียลมีเดียจะทำให้คุณสามารถรวบรวมข้อมูลเชิงลึกเกี่ยวกับกลยุทธ์ทางการตลาด วิวัฒนาการผลิตภัณฑ์ และการให้คะแนนความพึงพอใจของลูกค้า ทั้งหมดนี้จะช่วยให้คุณเปิดตัวแอปที่ประสบความสำเร็จได้อย่างมาก

รู้จักผู้ใช้ที่มีศักยภาพของคุณ

ก่อนที่จะก้าวไปสู่การพัฒนาแอพ คุณจำเป็นต้องรู้ว่าใครจะใช้แอพของคุณ เฉพาะในกรณีที่คุณรู้จักกลุ่มเป้าหมายของคุณ คุณจะสามารถสื่อสารกับพวกเขาได้อย่างถูกต้อง

คุณสามารถรวบรวมข้อมูลประชากรทั้งหมดของผู้มีโอกาสเป็นผู้ใช้ของคุณ เช่น อายุ ตำแหน่ง เพศ พฤติกรรม การตั้งค่า ฯลฯ เมื่อเสร็จแล้ว คุณสามารถพูดคุยเกี่ยวกับแนวคิดของแอปกับคนที่คุณคิดอย่างสูง

จดจ่ออยู่กับประสบการณ์ของผู้ใช้

ประสบการณ์ผู้ใช้เป็นหนึ่งในส่วนสำคัญของแอปที่ประสบความสำเร็จ ผู้คนต้องการใช้แอปที่มี UI และ UX ที่เรียบง่ายแต่ใช้งานง่าย UI ที่น่าทึ่งมอบประสบการณ์การนำทางที่ราบรื่น และ UX ที่ใช้งานง่ายช่วยให้ใช้งานง่าย

การมอบประสบการณ์การใช้งานที่ดีจะนำไปสู่การได้ผู้ใช้ใหม่ที่ดีขึ้นและการดาวน์โหลดที่มากขึ้น

ทดสอบกับ MVP

ผลิตภัณฑ์ที่มีประสิทธิภาพขั้นต่ำ (MVP) คือผลิตภัณฑ์รุ่นพื้นฐานรุ่นแรกที่สนับสนุนคุณลักษณะขั้นต่ำแต่มีความสำคัญ ขอแนะนำให้สร้าง MVP ก่อนพัฒนาแอปเต็มรูปแบบ เนื่องจากช่วยให้ออกสู่ตลาดได้เร็วขึ้น ดึงดูดผู้ใช้รายแรกๆ และบรรลุผลสำเร็จตามตลาดผลิตภัณฑ์ตั้งแต่ต้น

เมื่อ MVP ถูกเผยแพร่ให้กับผู้ใช้แล้ว จะได้รับคำติชมเบื้องต้น จากความคิดเห็นนี้ คุณสามารถย้ำ แก้ไขจุดบกพร่อง และแนะนำคุณสมบัติใหม่ที่จะทำให้ผลิตภัณฑ์ของคุณมีความได้เปรียบในการแข่งขัน

แอพ Uber ทำงานอย่างไรในทางเทคนิค?

uber ทำงานอย่างไร

แอป Uber ประมวลผลข้อมูลจำนวนมหาศาลโดยใช้ประโยชน์จาก ML และแพลตฟอร์มการวิเคราะห์ข้อมูลที่พัฒนาขึ้นภายในองค์กร เมื่อผู้โดยสารร้องขอรถแท็กซี่ ข้อมูลจำนวนมากจะถูกสร้างขึ้น ตัวอย่างเช่น แอปจะรับข้อมูลเกี่ยวกับผู้โดยสาร ตำแหน่งของเขา ข้อมูลบัตรเครดิต ค่ารถ คนขับแท็กซี่ในบริเวณใกล้เคียง ฯลฯ และค่อยๆ ข้อมูลเหล่านี้เดินทางทั่วทั้งระบบ เรามาดูกันว่าเป็นอย่างไร

เมื่อเรียกรถแล้ว ชานชาลา:

  • บันทึกข้อมูลการเดินทางทั้งหมดในฐานข้อมูล
  • ประมวลผลคำขอนั่งรถด้วยตำแหน่งทางภูมิศาสตร์ของผู้โดยสาร
  • ส่งข้อมูลที่ประมวลผลทั้งหมดไปยังอัลกอริธึมการจับคู่ที่ขับเคลื่อนโดย ML
  • ค้นหาข้อมูลเกี่ยวกับไดรเวอร์ที่มีอยู่ในฐานข้อมูลใกล้เคียง
ภาพรวม Tech Stack Storage ของ uber
ภาพรวม Tech Stack Storage ของ uber

ข้อกำหนดสำหรับโครงการที่เหมือน Uber

Uber เปิดตัวในปี 2552 และเป็นเวลานานที่สุดที่แพลตฟอร์มนี้มีสถาปัตยกรรมแบบเสาหิน กล่าวอีกนัยหนึ่ง แอพใช้ฐานข้อมูลเดียวพร้อมกับเซิร์ฟเวอร์แอพหลายตัวเพื่อจัดการคำขอออนไลน์ทั้งหมด

สำหรับช่วงแรก ๆ สิ่งนี้ใช้ได้ดี อย่างไรก็ตาม เมื่อแพลตฟอร์มเติบโตขึ้น ความต้องการคุณสมบัติใหม่ก็เพิ่มขึ้นเช่นกัน และในการผสานรวมคุณลักษณะใหม่ ทีมพัฒนาต้องปรับใช้โค้ดทั้งหมดพร้อมกัน สิ่งนี้ส่งผลต่อความเร็วของแอปและทำให้กระบวนการแนะนำคุณสมบัติใหม่มีความเสี่ยงและใช้เวลานานมาก เนื่องจากทุกการรวมระบบอาจทำให้ทั้งระบบล่มได้ สิ่งนี้นำไปสู่การใช้สถาปัตยกรรมไมโครเซอร์วิส

ไมโครเซอร์วิส

สถาปัตยกรรมไมโครเซอร์วิสของ Uber ประมาณกลางปี ​​2018 จาก Jaeger
สถาปัตยกรรมไมโครเซอร์วิสของ Uber ประมาณกลางปี ​​2018 จาก Jaeger

ในปี 2014 Uber ได้นำสถาปัตยกรรมไมโครเซอร์วิสมาใช้เพื่อให้มั่นใจถึงความเร็วและประสิทธิภาพที่ดีขึ้น โดยพื้นฐานแล้ว สถาปัตยกรรมนี้รวมถึงกลุ่มบริการที่กำหนดเป้าหมายไปยังฟังก์ชันของกันและกัน ดังนั้น ทีมพัฒนาจึงสามารถปรับใช้โค้ดใหม่อย่างอิสระกับสถาปัตยกรรมไมโครเซอร์วิสได้อย่างง่ายดาย ทำให้มั่นใจได้ว่าระบบจะปรับขนาดได้อย่างสมบูรณ์

DOMA (สถาปัตยกรรมระบบที่เน้นโดเมน)

แม้ว่าสถาปัตยกรรมไมโครเซอร์วิสจะเป็นการอัปเกรดครั้งใหญ่สำหรับสถาปัตยกรรมเสาหิน แต่ทีมพัฒนาของ Uber ก็ไม่ได้หยุดอยู่แค่นั้น พวกเขานำแนวทางใหม่ที่เรียกว่า DOMA- Domain-Oriented System Architecture มาใช้ตามเวลา

ตามแนวทางนี้ นักพัฒนาจะปรับการออกแบบตามคอลเลกชันของไมโครเซอร์วิสที่เกี่ยวข้อง และคอลเล็กชันเหล่านี้เรียกว่าโดเมน นอกจากนี้ โดเมนยังถูกจำแนกเป็นคอลเล็กชันต่างๆ ที่เรียกว่าเลเยอร์ เลเยอร์เฉพาะที่แต่ละโดเมนเป็นของกำหนดสิ่งที่ microservices ภายในโดเมนนั้นสามารถพึ่งพาได้ สิ่งนี้เรียกว่าการออกแบบเลเยอร์

นักพัฒนาทำให้ทุกโดเมนเป็นอิสระจากโดเมนอื่นโดยใช้ Gateway API ดังนั้น ทุกโดเมนจึงมีตรรกะของตัวเองและไม่เกี่ยวข้องกับโดเมนอื่นภายในเลเยอร์เดียวกัน

เกตเวย์ API
เกตเวย์ที่แสดงรายละเอียดภายในของโดเมน – บริการที่หลากหลาย ตารางข้อมูล ไปป์ไลน์ ETL เป็นต้น

กล่าวง่ายๆ ด้วยการจัดเตรียมสถาปัตยกรรมที่มีการจัดระเบียบ จุดต่อขยายที่กำหนดไว้ล่วงหน้า และเกตเวย์โดเมน DOMA เปลี่ยนสถาปัตยกรรมไมโครเซอร์วิสจากสิ่งที่ซับซ้อนเป็นสิ่งที่เข้าใจได้ง่าย

Uber ใช้กรอบงาน UI ใด

ทีมออกแบบของ Uber มุ่งเน้นไปที่การอัปเกรดการออกแบบของแอพอย่างต่อเนื่องโดยการเพิ่มคุณสมบัติใหม่ อย่างไรก็ตาม นี่เป็นกระบวนการที่ใช้เวลานาน ดังนั้น เพื่อปรับปรุงความพยายามของทีมออกแบบ พวกเขาจึงได้สร้างเฟรมเวิร์ก React UI ที่เรียกว่า Base

เครื่องวัดความแรงที่ออกแบบด้วยเว็บเฟรมเวิร์กพื้นฐาน
เครื่องวัดความแรงที่ออกแบบด้วยเว็บเฟรมเวิร์กพื้นฐาน

ฐานประกอบด้วยองค์ประกอบแอป Uber ที่ออกแบบไว้ล่วงหน้า เช่น สี เส้นตาราง การพิมพ์ รายการ ปุ่ม และภาพสัญลักษณ์ เฟรมเวิร์กช่วยให้ทีมออกแบบสร้างการออกแบบได้รวดเร็วขึ้นในขณะที่รักษามาตรฐาน UI/UX ที่สูงและความสม่ำเสมอ

Tech Stack เบื้องหลังแอปส่งอาหาร Uber คืออะไร?

ในปี 2014 แบ็กเอนด์ของ Uber ได้รวมภาษาต่างๆ เช่น Python, Mongo และ MySQL ในทางกลับกัน ระบบการจัดส่งใช้ Node.js และ Redis ในขณะที่แอพมือถือขับเคลื่อนโดย Java และ Objective-C อย่างไรก็ตาม เมื่อข้อกำหนดพัฒนาขึ้น นักพัฒนาได้เปลี่ยนส่วนประกอบเกือบทั้งหมดของแพลตฟอร์ม

Marketplace Technologies Stack

ตลาดกลางของ Uber เป็นส่วนสำคัญที่จัดการการสตรีมข้อมูลและการวิเคราะห์ข้อมูลทั้งหมด และกลุ่มเทคโนโลยีที่ใช้สำหรับสร้างตลาดนี้รวมถึงภาษาต่างๆ เช่น Python, Go, Java และ Node ตอนนี้เรามาดูเทคโนโลยี Marketplace แบบละเอียดกันดีกว่า:

เครื่องยนต์การดำเนินการเดินทาง

เนื่องจากเอ็นจิ้นการดำเนินการเดินทางเป็นส่วนสำคัญของตลาด จึงถูกเขียนขึ้นใน Node.js ซึ่งเป็นที่นิยมสำหรับการประมวลผลแบบอะซิงโครนัส แบบธรรมดา และแบบเธรดเดียว Node.js ยังอนุญาตให้ทีม Uber จัดการการเชื่อมต่อพร้อมกันจำนวนมากได้ อย่างไรก็ตาม ตอนนี้ บริษัทสร้างบริการใหม่ใน Go ซึ่งเป็นที่รู้จักในด้านประสิทธิภาพ การทำงานพร้อมกัน และการทำงานที่ปลอดภัยสำหรับประเภท

แนวหน้า API

Frontline API ส่งคำขอจากอุปกรณ์เคลื่อนที่ของคนขับและผู้โดยสารไปยัง API และบริการอื่นๆ สิ่งนี้เขียนใน Node.js ยกเว้นที่ขอบ ใช้ NGINX สำหรับส่วนหน้าและดำเนินการยกเลิก SSL และการรับรองความถูกต้องบางอย่าง

การเชื่อมต่อตามเวลาจริง

เพื่อรองรับความต้องการความพร้อมใช้งานสูงสุดได้อย่างราบรื่น กลุ่มตลาดต้องได้รับข้อมูลในแบบเรียลไทม์ ดังนั้นนักพัฒนาจึงใช้ Ringpop ซึ่งเป็นห้องสมุดสำหรับสร้างระบบกระจายความร่วมมือ ด้วยไลบรารีนี้ นักพัฒนาจึงได้รับการเชื่อมต่อที่มีความพร้อมใช้งานสูงกับฐานข้อมูลแบบกระจาย เช่น Riak และ DynamoDB

ตรรกะที่ตรงกัน

อัลกอริธึมการจับคู่ กล่าวคือ ระบบที่จัดการการแจ้งเตือนจากผู้ขับขี่และผู้ขับขี่ในแบบเรียลไทม์ แล้วจับคู่กับพวกเขา จะถูกเขียนใน Go และ Node.js Riak เป็นฐานข้อมูลแบบกระจาย ในขณะที่ Redis เสนอการแคช

การเพิ่มประสิทธิภาพการกำหนดราคาแบบไดนามิก

ทีมงานตลาดที่ Uber จัดการการเพิ่มประสิทธิภาพและความสมดุลทั้งหมดผ่านการกำหนดราคาแบบไดนามิก การจับคู่อัจฉริยะ และการวางตำแหน่งอุปทาน ก่อนหน้านี้ ส่วนใหญ่ของสแต็กนี้สร้างขึ้นโดยใช้ Python กับ Flask และ uWSGI อย่างไรก็ตาม ตอนนี้ นักพัฒนาซอฟต์แวร์กำลังแทนที่ Python ส่วนใหญ่ด้วย Go เพื่อให้มีประสิทธิภาพมากขึ้น

การสตรีมข้อมูลและการเรียนรู้ของเครื่อง

Uber ใช้ Kafka และฐานข้อมูลการผลิตของตนเองสำหรับการสตรีมข้อมูล และการจัดเก็บข้อมูลขึ้นอยู่กับ Hive, HDFS, Elasticsearch, MapReduce และบริการเว็บการจัดเก็บไฟล์ บริษัทยังได้พัฒนา LIDAR ของตัวเองเพื่อให้มั่นใจว่ามีการแบ่งปันกันภายใน LIDAR ใช้งาน Jupyter, JupyterHub โดยผสานรวมกับ Apache Spark และแพลตฟอร์มข้อมูลของตนเอง

ต่อไปเป็นที่น่าสังเกตว่า Uber มีแพลตฟอร์ม ML ของตัวเอง ในปี 2558 บริษัทตัดสินใจปรับขนาด ML เพื่อสร้างมาตรฐานเครื่องมือและเวิร์กโฟลว์ และหลีกเลี่ยงรูปแบบการต่อต้าน ML ด้วยเหตุนี้พวกเขาจึงพัฒนา Michelangelo ในปี 2560

มีเกลันเจโลเป็นแพลตฟอร์มที่ขับเคลื่อนด้วย AI และ ML ที่ช่วยในการจัดการข้อมูล ประเมินและปรับใช้แบบจำลอง คาดการณ์แนวโน้ม และตรวจสอบการพยากรณ์โรค แพลตฟอร์ม ML ประกอบด้วยระบบโอเพ่นซอร์สผสมกันและส่วนประกอบภายใน เช่น:

  • HDFS
  • ซัมซ่า
  • Spark
  • MLLib
  • TensorFlow
  • แคสแซนดรา
  • XGBoost
ฟีเจอร์เวลาจัดส่งโดยประมาณของแอป UberEATS
แอพ UberEATS โฮสต์คุณสมบัติเวลาจัดส่งโดยประมาณที่ขับเคลื่อนโดยโมเดลการเรียนรู้ของเครื่องที่สร้างจาก Michelangelo

เทคโนโลยีสแต็คของเว็บแอปพลิเคชัน

สำหรับแอปบนเว็บ นักพัฒนา Uber ใช้ Node.js ซึ่งเป็นแพลตฟอร์มโอเพนซอร์สที่มีชุมชนวิศวกรเว็บจำนวนมาก Node.js ยังช่วยให้นักพัฒนาสามารถแบ่งปันโค้ด JavaScript ระหว่างเซิร์ฟเวอร์และไคลเอ็นต์เพื่อสร้างเว็บแอปพลิเคชันสากล สุดท้ายนี้ พวกเขาใช้ Browserify สำหรับการรวมกลุ่มฝั่งไคลเอ็นต์ทั้งหมดที่มาพร้อมกับ Node ข้อกำหนดโมดูลที่ใช้ js

เว็บเซิร์ฟเวอร์ของ Uber ที่ชื่อว่า Bedrock สร้างขึ้นบน Express.js ซึ่งเป็นเฟรมเวิร์กเว็บยอดนิยมที่มีความปลอดภัยและการทำให้เป็นภายในอย่างสมบูรณ์ เลเยอร์การสื่อสารบริการภายในของพวกเขา รู้จักกันในชื่อ Atreyu จัดการการสื่อสารทั้งหมดด้วยบริการแบ็กเอนด์และรวมเข้ากับ Bedrock เลเยอร์การสื่อสารนี้ยังช่วยให้บริษัทส่งคำขอไปยัง API ของบริการ SOA ได้อย่างง่ายดายและรวดเร็ว

Uber ใช้ Flux และ React.js มาตรฐานสำหรับการแสดงผลแอปพลิเคชันและการจัดการสถานะ ระบบบิลด์ Core Tasks คือกลุ่มสคริปต์ที่กำหนดไว้ล่วงหน้าเพื่อคอมไพล์และกำหนดเวอร์ชันเนื้อหาส่วนหน้าที่สร้างขึ้นบน Gulp.js

เทคโนโลยีสแต็คของแอปพลิเคชันมือถือ

ในการพัฒนาแอพอย่าง Uber คุณต้องสร้างแอพมือถือสี่แอพ: ผู้โดยสาร Android, ไดรเวอร์ Android, ผู้โดยสาร iOS และไดรเวอร์ iOS นักพัฒนาสร้างแอป IOS โดยใช้ภาษาการเขียนโปรแกรม Objective-C และ Swift ในขณะที่แอป Android ได้รับการพัฒนาโดยใช้ Java แต่นอกเหนือจากนั้น ยังมีเทคโนโลยีอื่นๆ อีกสองสามอย่างที่นักพัฒนาใช้ ซึ่งรวมถึง:

กองเทคโนโลยีแอพ Android

  • Gradle
  • OkHttp/Gson/ติดตั้งเพิ่มเติม
  • มีดตัดเนย
  • กริช
  • เอสเพรสโซ
  • ปิกัสโซ
  • RxJava
  • ไม้

กองเทคโนโลยีแอป iOS

  • เจ้าชู้
  • งานก่ออิฐ/ SnapKit
  • KSCrash
  • OCMock

ฉันสามารถใช้ภาษาการเขียนโปรแกรมใดเพื่อสร้างแอปส่งอาหารอย่าง Uber ได้บ้าง

หากคุณต้องการพัฒนาแอพอย่าง Uber คุณสามารถเลือกที่จะรวมเทคโนโลยีต่อไปนี้:

  • Node.js – สำหรับเว็บแอป Marketplace
  • Python – สำหรับแอพจองทางเว็บ
  • ไป- เพื่อประสิทธิภาพและความเร็วที่เพิ่มขึ้น
  • Browserify – สำหรับการมัดรวมฝั่งไคลเอ็นต์
  • Java – สำหรับการผสานรวมบริการของบุคคลที่สาม
  • คลังข้อมูล Apache Hive – สำหรับการวิเคราะห์และการสืบค้นข้อมูล
  • ELk – สำหรับจัดเก็บบันทึก การประมวลผล และการขนส่ง
  • Apache Cassandra – สำหรับจัดการข้อมูลปริมาณมาก
  • บริการฐานข้อมูล MySQL- สำหรับการจัดการฐานข้อมูลเชิงสัมพันธ์
  • Docker – สำหรับโครงสร้างพื้นฐานของศูนย์ข้อมูล
  • HAProxy – สำหรับพร็อกซีเซิร์ฟเวอร์และตัวโหลดบาลานซ์

นี่เป็นบทสรุปโดยย่อของกองเทคโนโลยีของ Uber อย่างไรก็ตาม เพียงแค่คัดลอกสแต็กเทคโนโลยีนี้โดยไม่ต้องทำวิจัยของคุณเอง อาจส่งผลเสียต่อรูปแบบธุรกิจของคุณ นอกจากนี้ การใช้เทคโนโลยีเดียวกันจะไม่รับประกันความสำเร็จสำหรับธุรกิจรถแท็กซี่ของคุณ

ดังนั้นจึงแนะนำให้สร้างแอปของคุณโดยใช้เทคโนโลยีสองสามอย่างให้ได้มากที่สุด เมื่อธุรกิจของคุณขยายตัวทีละน้อย คุณสามารถเพิ่มคุณลักษณะใหม่ๆ ได้โดยใช้ประโยชน์จากเทคโนโลยีที่ใหม่กว่า คุณต้องใช้สแต็คเทคโนโลยีของ Uber เป็นแหล่งแรงบันดาลใจในการเริ่มต้นเท่านั้น