Ngăn xếp kỹ thuật là gì? + Ví dụ

Ngăn xếp kỹ thuật là gì? + Ví dụ
Anonim

Câu trả lời ngắn gọn là chúng tôi sử dụng Flask cho Python trên phần phụ trợ, Backbone cho Javascript ở mặt trước và lưu trữ dữ liệu của chúng tôi trong MongoDB, Redis và ElasticSearch. Chúng tôi được lưu trữ trên AWS.

Một chồng là gì?

Rất nhiều phần công nghệ được yêu cầu để cung cấp một trang web cho bạn và chúng thực hiện nhiều chức năng khác nhau, bao gồm:

  • Tạo các trang trong trình duyệt hoặc ứng dụng, tạo kiểu cho chúng (màu sắc, phông chữ) và làm cho chúng tương tác (ví dụ: chuyển trái tim màu đỏ và hiển thị hộp bình luận khi bạn nhấp vào nó). Cái này được gọi là mặt trước hoặc phía khách hàng
  • Thu thập thông tin cần thiết cho một trang (ví dụ: câu hỏi, câu trả lời, tên người dùng và hình ảnh, số lượng trái tim) và gửi nó đến máy tính hoặc điện thoại của bạn. Cái này được gọi là phụ trợ, hoặc phía máy chủ
  • Lưu trữ thông tin này để nó có sẵn bất cứ lúc nào cần thiết và cho phép chúng tôi tìm kiếm chính xác thông tin chúng tôi cần. Đây được gọi là cơ sở dữ liệu hoặc kho dữ liệu
  • Máy tính kết nối Internet và luôn bật để mọi người có thể truy cập trang web bất cứ lúc nào. Các máy tính được gọi là máy chủ và họ là được lưu trữ một vài nơi.
  • Nhiều chức năng quan trọng và nhỏ khác

Ở mỗi lớp này, có sẵn một số tùy chọn tốt và các lựa chọn mà bất kỳ nhóm nào đưa ra đều dựa trên kinh nghiệm và sự thoải mái của các thành viên trong nhóm, cũng như các vấn đề thực tế như chi phí và yêu cầu hiệu suất cụ thể.

Ngăn xếp đầy đủ (gần như) của chúng tôi

Một số công nghệ được cài đặt, cập nhật và quản lý bởi các thành viên trong nhóm của chúng tôi trên các máy chủ và máy tính xách tay của chúng tôi. Chúng bao gồm:

  • Xương sống để tổ chức Javascript của chúng tôi
  • La bàn để tái sử dụng và sắp xếp CSS của chúng tôi
  • Flask, một khung công tác Python để phục vụ API JSON + HTML và để hiển thị các trang HTML đầy đủ
  • pyres cho hàng đợi nhiệm vụ của chúng tôi (có thể là Celery sớm)
  • MongoDB để lưu trữ dữ liệu của chúng tôi (có thể là Postgres sớm)
  • Làm lại để lưu trữ những thứ như nguồn cấp dữ liệu xung quanh trang web, xu hướng câu hỏi và tất cả các loại thống kê sử dụng
  • Tìm kiếm linh hoạt để tìm kiếm sức mạnh
  • Nginx để phục vụ trang web
  • Grunt để thu nhỏ, nén và sửa đổi Javascript và CSS của chúng tôi
  • Capistrano để triển khai ứng dụng của chúng tôi và thực hiện một số nhiệm vụ hữu ích khác
  • Con rối để thiết lập phần mềm chúng ta cần trên các máy chủ mới

Một số công nghệ là dịch vụ được xây dựng và quản lý bởi các công ty khác. Nó thường hiệu quả hơn khi để người khác tập trung vào các vấn đề cụ thể thay vì tự làm mọi thứ. Một số dịch vụ chúng tôi sử dụng là:

  • AWS hay còn gọi là Dịch vụ web của Amazon để lưu trữ máy chủ, tài sản tĩnh của chúng tôi và dưới dạng CDN
  • Cloudflare cho DNS, bộ nhớ đệm và một số mức bảo mật
  • Google Analytics và Mixpanel để phân tích
  • Papertrail cho khai thác tập trung
  • Sentry để theo dõi lỗi phía khách hàng
  • DataDog để giám sát các máy chủ và dịch vụ của chúng tôi
  • Relic mới để theo dõi hiệu suất của ứng dụng Flask
  • Customer.io để gửi email dựa trên những gì bạn làm hoặc không làm trong ứng dụng
  • Github để cộng tác mã và lưu trữ

Và có lẽ nhiều người khác.

Phải mất rất nhiều mảnh để xây dựng và vận hành một trang web, nhưng với sự trợ giúp của các công cụ được xây dựng tốt, nó không quá khó!