กองวิศวกรรมคืออะไร? + ตัวอย่าง

กองวิศวกรรมคืออะไร? + ตัวอย่าง
Anonim

คำตอบสั้น ๆ ก็คือเราใช้ Flask สำหรับ Python ในส่วนแบ็คเอนด์ Backbone สำหรับ Javascript ที่ส่วนหน้าและเก็บข้อมูลของเราใน MongoDB, Redis และ ElasticSearch เราโฮสต์บน AWS

กองคืออะไร?

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

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

ในแต่ละเลเยอร์เหล่านี้มีตัวเลือกที่ดีจำนวนมากและตัวเลือกที่ทีมใดทีมหนึ่งทำขึ้นอยู่กับประสบการณ์และความสะดวกสบายของสมาชิกในทีมรวมทั้งเรื่องการปฏิบัติเช่นค่าใช้จ่ายและข้อกำหนดเฉพาะด้านประสิทธิภาพ

สแต็กเต็มของเรา (เกือบ)

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

  • Backbone เพื่อจัดระเบียบจาวาสคริปต์ของเรา
  • ใช้เข็มทิศเพื่อนำมาใช้ใหม่และจัดระเบียบ CSS ของเรา
  • Flask เป็นเฟรมเวิร์ก Python เพื่อให้บริการ JSON + HTML API และแสดงผลเพจ HTML แบบเต็ม
  • pyres สำหรับคิวงานของเรา (ขึ้นฉ่ายเร็ว ๆ นี้)
  • MongoDB เพื่อจัดเก็บข้อมูลของเรา (อาจจะเป็น Postgres เร็ว ๆ นี้)
  • Redis เพื่อแคชสิ่งต่าง ๆ เช่นตัวดึงข้อมูลรอบไซต์คำถามที่มีแนวโน้มและสถิติการใช้งานทุกประเภท
  • ElasticSearch เพื่อการค้นหาพลังงาน
  • Nginx เพื่อให้บริการเว็บไซต์
  • พยายามทำให้ย่อขนาดบีบอัดและแก้ไข Javascript และ CSS ของเรา
  • Capistrano เพื่อปรับใช้แอพของเราและทำงานอื่น ๆ ที่เป็นประโยชน์เล็กน้อย
  • Puppet เพื่อตั้งค่าซอฟต์แวร์ที่เราต้องการบนเซิร์ฟเวอร์ใหม่

เทคโนโลยีบางอย่างเป็นบริการที่สร้างและจัดการโดย บริษัท อื่น บ่อยครั้งที่มีประสิทธิภาพมากกว่าในการปล่อยให้คนอื่นมุ่งเน้นไปที่ปัญหาที่เฉพาะเจาะจงแทนที่จะทำทุกอย่างด้วยตนเอง บริการบางอย่างที่เราใช้คือ:

  • AWS หรือ Amazon Web Services เพื่อโฮสต์เซิร์ฟเวอร์ของเราสินทรัพย์คงที่และเป็น CDN
  • Cloudflare สำหรับ DNS การแคชและการรักษาความปลอดภัยระดับหนึ่ง
  • Google Analytics และ Mixpanel สำหรับการวิเคราะห์
  • Papertrail สำหรับการบันทึกจากส่วนกลาง
  • ยามสำหรับการติดตามข้อผิดพลาดฝั่งไคลเอ็นต์
  • DataDog สำหรับตรวจสอบเซิร์ฟเวอร์และบริการของเรา
  • New Relic สำหรับตรวจสอบประสิทธิภาพของแอพ Flask
  • ลูกค้าจะส่งอีเมลตามสิ่งที่คุณทำหรือไม่ทำในแอพ
  • Github สำหรับการทำงานร่วมกันของรหัสและโฮสติ้ง

และอาจอื่น ๆ อีกมากมาย

ต้องใช้หลายชิ้นในการสร้างและใช้งานเว็บไซต์ แต่ด้วยความช่วยเหลือของเครื่องมือที่สร้างขึ้นมาอย่างดีมันไม่ยากเลย!