Yo!

Trong lời bài hát Diễn Xưa của nhạc sĩ Trịnh Công Sơn có câu "Ngày sau sỏi đá cũng cần có nhau". Vậy không lý nào đã có EGANY Front-End Tech Stack (Thành Nguyễn) mà lại không có EGANY Back-end Tech Stack ^^.

Trước khi vào chi tiết chúng ta cần có một cái nhìn về bối cảnh của những gì sẽ được đề cập ở bên dưới.
Là một công ty công nghệ, trong việc phát triển sản phẩm digital, EGANY hiểu được việc đưa ra chiến lược phát triển đúng đắn sẽ quyết định thành bại. Ở giai đoạn đầu với nguồn lực hạn chế (tài chính, nhân lực…) cùng với thách thức phải đưa sản phẩm đến với người dùng càng sớm càng tốt, chúng tôi xác định các tiêu chí sau:

  • Phát triển nhanh chóng, liên tục để đưa sản phẩm sớm ra thị trường.
  • Sản phẩm đủ tốt, điều này không đồng nghĩa dùng công nghệ tốt nhất.
  • Ít tốn công sức và chi phí đầu tư ban đầu.
  • Được tiếp cận công nghệ, học hỏi và phát triển qua từng phát sản phẩm.

Với niềm đam mê công nghệ, thích học cái mới của cả anh founder và nhóm phát triển ^^, chúng tôi đã cùng thảo luận để lựa chọn những công nghệ phù hợp với các tiêu chí đã đặt ra. Với việc lựa chọn phát triển hệ thống theo hướng microservices(triển khai theo hướng vừa đủ) nên các công nghệ được lựa chọn cũng phải phù hợp với kiến trúc này. Okay, giờ cùng ngồi xuống uống ly trà và cùng khám phá những công nghệ hiện tại EGANY đang triển khai cho sản phẩm của mình nhé.

Application and Data

Nodejs

NodeJS Logo

Node.js – "Node.js® is a JavaScript runtime built on Chrome’s V8 JavaScript engine."

Tiêu chí lựa chọn:

  • Mã nguồn mở và được cập nhật liên tục.
  • Cộng đồng với số lượng thành viên lớn và năng động.
  • Tài liệu dễ tiếp cận và đầy đủ.
  • Có thể phát triển nhanh chóng với kho node modules đồ sộ với công cụ quản lý như npmjs hay yarn.
  • Có thể sử dụng javascript hoặc typescript. Điều này tạo ra sự thống nhất từ front-end đến back-end, tạo điều kiện trong việc trao đổi và học tập nâng cao giữa các đội dự án với nhau, thật tuyệt với phải không ^^.

MongoDB

Mongodb Logo

MongoDB – "MongoDB is a general purpose, document-based, distributed database built for modern application developers and for the cloud era."

Tiêu chí lựa chọn:

  • Miễn phí.
  • Có hỗ trợ cloud – MongoDB Atlas.
  • Tài liệu dễ tiếp cận và đầy đủ.
  • Có thư viện, package hỗ trợ nodejs.
  • Triển khai đơn giản.

Redis

Redis Logo

Redis – "Redis is an open source (BSD licensed), in-memory data structure store, used as a database, cache, and message broker…"

Tiêu chí lựa chọn:

  • Mã nguồn mở.
  • Có hỗ trợ cloud bởi Google, AzureAzure, AWS… Chi tiết xem tai Redislabs
  • Được sử dụng phổ biến.
  • Không chỉ cache, redis còn hỗ trợ các nhu cầu khác như queue, message broker…
  • Triển khai đơn giản.
  • Hỗ trợ nhiều ngôn ngữ.
  • Có thư viện, package hỗ trợ nodejs.

MySQL

MySQL Logo

MySQL – "Many of the world’s largest and fastest-growing organizations including Facebook, Google, Adobe, Alcatel Lucent and Zappos rely on MySQL to save time and money powering their high-volume Web sites, business-critical systems and packaged software."

Tiêu chí lựa chọn:

  • Mã nguồn mở.
  • Có hỗ trợ cloud.
  • Được sử dụng phổ biến.
  • Triển khai đơn giản.
  • Hỗ trợ nhiều ngôn ngữ.
  • Có thư viện, package hỗ trợ nodejs.

RabbitMQ

Rabbitmq Logo

RabbitMQ – "RabbitMQ is the most widely deployed open source message broker."

Tiêu chí lựa chọn:

  • Mã nguồn mở.
  • Có hỗ trợ cloud – CloudAMQP.
  • Tài liệu dễ tiếp cận và đầy đủ.
  • Có thư viện, package hỗ trợ nodejs.
  • Triển khai đơn giản.
  • Đáp ứng nhu cầu phát triển theo hướng sự kiện.

Caddy Server

Caddy Logo

Caddy Server – "Caddy 2 is a powerful, enterprise-ready, open source web server with automatic HTTPS written in Go"

Tiêu chí lựa chọn:

  • Miễn phí.
  • Dễ triển khai.
  • Tự động gia hạn SSL.

DevOps

Docker

Docker Logo

Docker – "… Docker simplifies and accelerates your workflow, while giving developers the freedom to innovate with their choice of tools, application stacks, and deployment environments for each project." – Trích từ Why docker?

Tiêu chí lựa chọn:

  • Mã nguồn mở.
  • Có hỗ trợ phiên bản doanh nghiệp.
  • Công cụ hỗ trợ tuyệt với trong hệ sinh thái docker như: Docker Compose, Docker Desktop, Docker Hub…
  • Có tài liệu hướng dẫn.
  • Hỗ trợ cluster với Docker Swarm – Một lựa chọn tốt để quicks-start trong những ngày đầu làm quen với Microservices.
  • Triển khai đơn giản và nhanh chóng với một số bước trong tài liệu hướng dẫn.

Portainer

Portainer Logo

Portainer – "Container management made easy. Portainer is the definitive open source container management tool for Kubernetes, Docker, Docker Swarm and Azure ACI. It allows anyone to deploy and manage containers without the need to write code."

Tiêu chí lựa chọn:

  • Mã nguồn mở.
  • Hỗ trợ phiên bản doanh nghiệp.
  • Triển khai dễ dàng.
  • Sử dụng đơn giản.

Telegram

Telegram Logo

Telegram – "Telegram a new era of messaging"

Tiêu chí lựa chọn:

  • Miễn phí.
  • Hỗ trợ ứng dụng chạy đa nền tảng và thiết bị.
  • Tận dụng tính năng thông báo.
  • Dễ dàng sử dụng và tích hợp.
  • Ở đây tận dụng để nhận thông báo khi hệ thống có vấn đề xảy ra.

Một số công nghệ khác

Javascript

JavaScript Logo

Javascript – "JavaScript (JS) is a lightweight, interpreted, or just-in-time compiled programming language with first-class functions."

Tiêu chí lựa chọn:

  • Miễn phí.
  • Được sử dụng rộng rãi.
  • Cả front-end và back-end để dùng để phát triển.
  • Đơn giản để tiếp cận.
  • Được dùng để tạo ra NodeJS.

TypeScript

TypeScript Logo

TypeScript – "Typed JavaScript at Any Scale.
TypeScript extends JavaScript by adding types.
By understanding JavaScript, TypeScript saves you time catching errors and providing fixes before you run code.
Any browser, any OS, anywhere JavaScript runs. Entirely Open Source."

Tiêu chí lựa chọn:

  • Miễn phí.
  • Được sử dụng ngày càng rộng rãi.
  • Cả front-end và back-end để dùng để phát triển.
  • Hỗ trợ phát triển mã nguồn chất lượng nhất là đối với back-end.

ExpressJS

ExpressJS Logo

ExpressJS – "Fast, unopinionated, minimalist web framework for Node.js’

Tiêu chí lựa chọn:

  • Miễn phí.
  • Được sử dụng rộng rãi.
  • Được phát triển và cập nhật liên tục.
  • Dễ tiếp cận.

BullJS

BullJS Logo

BullJS – "The fastest, most reliable, Redis-based queue for Node.
Carefully written for rock solid stability and atomicity."

Tiêu chí lựa chọn:

  • Miễn phí.
  • Dễ tiếp cận.
  • Hỗ trợ NodeJS.

Vậy là chúng ta đã cùng khám phá những công nghệ đang được áp dụng tại EGANY. Mặc dù bị ảnh hưởng bởi đợt bùng phát của dịch bệnh covid-19, nhưng các sản phẩm của EGANY vẫn được khách hàng sử dụng, ủng hộ và có nhiều phản hồi tích cực. Để đáp lại những điều đấy, trong thời gian tới chung tôi sẽ cải tiến những sản phẩm hiện có và đưa ra các sản phẩm mới tốt hơn để đáp ứng nhu cầu khách hàng của mình. Để đồng hành cùng mục tiêu mới, nhóm back-end cũng đang nghiên cứu thêm một số công nghệ khác để chuẩn bị cho giai đoạn phát triển mới. Vậy cùng điểm qua những gì chúng tôi sẽ dự định hướng đến trong thời gian tới nhé

Những công nghệ mới

Kubernetes

Kubernetes Logo

Kubernetes – "Production-Grade Container Orchestration
Automated container deployment, scaling, and management"

Netdata

Netdata Logo

Netdata – "Monitor everything in real time – for free.
Troubleshoot slowdowns and anomalies in your infrastructure with thousands of per-second metrics, meaningful visualizations, and insightful health alarms with zero configuration."

AWS S3

AWS S3 Logo

AWS S3 – "Object storage built to store and retrieve any amount of data from anywhere"

Dapr

Dapr Logo

Dapr – Distributed Application Runtime – "Dapr helps developers build event-driven, resilient distributed applications. Whether on-premises, in the cloud, or on an edge device, Dapr helps you tackle the challenges that come with building microservices and keeps your code platform agnostic."

Có thể bạn chưa biết

Nếu bạn đã từng hỏi không biêt các tập đoàn hay công ty lớn như Google, Microsoft, Facebook… họ dùng tech stack gì? Có thể vào StackShare.

Lời kết

Lựa chọn có phù hợp hay không? Chỉ có triển khai và đưa vào hoạt động thì mới có câu trả lời cho câu hỏi này. Còn bạn thì sao? Hãy chia sẻ cảm nghĩ ở bên dưới phần bình luận nhé.

Thân chào và hẹn gặp lại.