Apa itu tumpukan teknik? + Contoh

Apa itu tumpukan teknik? + Contoh
Anonim

Jawaban singkatnya adalah kami menggunakan Flask untuk Python di backend, Backbone untuk Javascript di front-end, dan menyimpan data kami di MongoDB, Redis, dan ElasticSearch. Kami dihosting di AWS.

Apa itu tumpukan?

Banyak teknologi yang dibutuhkan untuk mengirimkan situs web kepada Anda, dan mereka melakukan berbagai fungsi, termasuk:

  • Membuat halaman di browser atau aplikasi, menata gaya mereka (warna, font), dan membuatnya interaktif (mis. Mengubah hati menjadi merah dan menampilkan kotak komentar ketika Anda mengkliknya). Ini disebut ujung depan, atau sisi klien
  • Mengumpulkan informasi yang dibutuhkan untuk sebuah halaman (mis. Pertanyaan, jawabannya, nama pengguna dan gambar, jumlah hati), dan mengirimkannya ke komputer atau ponsel Anda. Ini disebut backend, atau sisi server
  • Menyimpan informasi ini sehingga tersedia kapan saja diperlukan, dan memungkinkan kami untuk mencari informasi yang kami butuhkan. Ini disebut database, atau datastore
  • Komputer terhubung ke Internet dan selalu menyala sehingga siapa pun dapat mengakses situs web kapan saja. Komputer-komputer itu disebut server dan mereka dihosting suatu tempat.
  • Banyak fungsi kritis dan kecil lainnya

Pada masing-masing lapisan ini, sejumlah opsi bagus tersedia dan pilihan yang dibuat oleh satu tim didasarkan pada pengalaman dan kenyamanan anggota tim, serta hal-hal praktis seperti biaya dan persyaratan kinerja spesifik.

Tumpukan penuh kami (hampir)

Beberapa teknologi diinstal, diperbarui, dan dikelola oleh anggota tim kami di server dan laptop kami sendiri. Mereka termasuk:

  • Backbone untuk mengatur Javascript kami
  • Kompas untuk menggunakan kembali dan mengatur CSS kami
  • Flask, kerangka kerja Python untuk melayani JSON + HTML API dan membuat halaman HTML lengkap
  • tumpukan untuk antrian tugas kami (kemungkinan Celery segera)
  • MongoDB untuk menyimpan data kami (mungkin segera Postgres)
  • Redis untuk me-cache hal-hal seperti umpan di sekitar situs, tren pertanyaan, dan semua jenis statistik penggunaan
  • ElasticSearch untuk mencari daya
  • Nginx untuk melayani situs
  • Grunt untuk memperkecil, memampatkan, dan merevisi Javascript dan CSS kami
  • Capistrano untuk menyebarkan aplikasi kami dan melakukan beberapa tugas bermanfaat lainnya
  • Wayang untuk mengatur perangkat lunak yang kita butuhkan di server baru

Beberapa teknologi adalah layanan yang dibangun dan dikelola oleh perusahaan lain. Seringkali lebih efisien untuk membiarkan orang lain fokus pada masalah tertentu daripada melakukan semuanya sendiri. Beberapa layanan yang kami gunakan adalah:

  • AWS alias Amazon Web Services untuk meng-host server kami, aset statis, dan sebagai CDN
  • Cloudflare untuk DNS, caching, dan beberapa tingkat keamanan
  • Google Analytics dan Mixpanel untuk analitik
  • Papertrail untuk logging terpusat
  • Penjaga untuk melacak kesalahan sisi klien
  • DataDog untuk memantau server dan layanan kami
  • Relik Baru untuk memantau kinerja aplikasi Flask
  • Customer.io untuk mengirim email berdasarkan apa yang Anda lakukan atau tidak lakukan dalam aplikasi
  • Github to untuk kolaborasi kode dan hosting

Dan mungkin banyak lainnya.

Dibutuhkan banyak bagian untuk membangun dan mengoperasikan situs web, tetapi dengan bantuan alat yang dibangun dengan baik, itu tidak terlalu sulit!