Tổng quan
Go giúp doanh nghiệp xây dựng và mở rộng hệ thống điện toán đám mây
Khi ứng dụng và quá trình xử lý chuyển lên đám mây, tính đồng thời trở thành vấn đề rất lớn. Các hệ thống điện toán đám mây, về bản chất, chia sẻ và mở rộng tài nguyên. Việc điều phối truy cập vào tài nguyên dùng chung ảnh hưởng đến mọi ứng dụng xử lý trên đám mây, và đòi hỏi các ngôn ngữ lập trình "được thiết kế đặc biệt để phát triển ứng dụng đồng thời độ tin cậy cao."
Go makes it very easy to scale as a company. This is very important because, as our engineering team grows, each service can be managed by a different unit.
Lợi ích chính
Cân bằng giữa tốc độ phát triển và hiệu năng máy chủ
Go được tạo ra để giải quyết chính xác những nhu cầu đồng thời này cho ứng dụng có quy mô lớn, microservice và phát triển đám mây. Thực tế, hơn 75% dự án trong Cloud Native Computing Foundation được viết bằng Go.
Go giúp giảm sự đánh đổi này nhờ thời gian build nhanh hỗ trợ phát triển lặp lại, giảm thiểu bộ nhớ và mức sử dụng CPU. Các server xây dựng bằng Go có thời gian khởi động tức thì và chi phí vận hành thấp hơn trong môi trường trả theo lưu lượng và serverless.
Giải quyết thách thức với đám mây hiện đại, cung cấp API chuẩn idiomatic
Go giải quyết nhiều thách thức mà lập trình viên gặp phải với đám mây hiện đại: cung cấp API chuẩn idiomatic và tính đồng thời tích hợp để tận dụng bộ xử lý đa nhân. Độ trễ thấp và không cần điều chỉnh thông số của Go là điểm cân bằng tuyệt vời giữa hiệu năng và năng suất, trao cho đội kỹ thuật quyền lựa chọn và quyền di chuyển.
Trường hợp sử dụng
Dùng Go cho điện toán đám mây
Điểm mạnh của Go nổi bật nhất khi xây dựng dịch vụ. Tốc độ và hỗ trợ đồng thời tích hợp mang lại dịch vụ nhanh và hiệu quả, trong khi kiểu tĩnh, công cụ mạnh mẽ và sự nhấn mạnh vào sự đơn giản và dễ đọc giúp xây dựng code đáng tin cậy và dễ bảo trì.
Go có hệ sinh thái mạnh mẽ hỗ trợ phát triển dịch vụ. Thư viện chuẩn bao gồm các package cho nhu cầu phổ biến như HTTP server và client, phân tích JSON/XML, cơ sở dữ liệu SQL, và nhiều chức năng bảo mật/mã hóa, trong khi runtime Go bao gồm các công cụ phát hiện race, benchmarking/profiling, sinh code và phân tích code tĩnh.
Các nhà cung cấp đám mây lớn (GCP, AWS, Azure) đều có API Go cho dịch vụ của họ, và các thư viện mã nguồn mở phổ biến hỗ trợ công cụ API (Swagger), truyền tải (protocol buffers, gRPC), giám sát (OpenCensus), Object-Relational Mapping (gORM), và xác thực (JWT). Cộng đồng mã nguồn mở cũng cung cấp nhiều framework dịch vụ, bao gồm Go Kit, Go Micro và Gizmo, có thể là điểm khởi đầu tuyệt vời.
Công cụ Go cho điện toán đám mây
Docker là nền tảng-dịch-vụ phân phối phần mềm trong container. Container đóng gói phần mềm, thư viện và file cấu hình, được Docker Engine lưu trữ và chạy bởi một kernel hệ điều hành duy nhất (sử dụng ít tài nguyên hệ thống hơn máy ảo).
Lập trình viên đám mây dùng Docker để quản lý code Go và hỗ trợ nhiều nền tảng, vì Docker hỗ trợ quy trình phát triển và triển khai.
Kubernetes là hệ thống điều phối container mã nguồn mở, viết bằng Go, để tự động hóa triển khai ứng dụng web. Ứng dụng web thường được đóng gói trong container với các dependency và cấu hình. Kubernetes giúp triển khai và quản lý các container đó ở quy mô lớn. Lập trình viên đám mây dùng Kubernetes để build, phân phối và mở rộng ứng dụng containerized nhanh chóng, quản lý sự phức tạp ngày càng tăng thông qua các API kiểm soát cách container chạy.
Người dùng nổi bật
| Khách hàng | Giới thiệu ngắn | Dự án sử dụng Go |
|---|---|---|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
Bắt đầu
Sách Go dành cho điện toán đám mây
-
Building Microservices with Go
-
Hands-On Software Architecture with Golang
-
Building RESTful Web services with Go
-
Mastering Go Web Services
Web framework
-
Echo
Web framework Go hiệu năng cao, mở rộng được và tối giản
-
Flamingo
Framework mã nguồn mở nhanh dựa trên Go với kiến trúc sạch và có thể mở rộng
-
Gin
Web framework viết bằng Go, với API kiểu martini
-
Gorilla
Bộ công cụ web cho ngôn ngữ lập trình Go
Router
-
net/http
Package HTTP thư viện chuẩn
-
julienschmidt/httprouter
HTTP request router nhẹ hiệu năng cao
-
gorilla/mux
HTTP router mạnh mẽ và URL matcher để xây dựng Go web server
-
Chi
Router nhẹ, idiomatic và có thể kết hợp để xây dựng dịch vụ HTTP Go
Template engine
-
html/template
Template engine HTML thư viện chuẩn
-
flosch/pongo2
Ngôn ngữ template theo cú pháp Django
Cơ sở dữ liệu & Driver
-
database/sql
Giao diện thư viện chuẩn với hỗ trợ driver cho MySQL, Postgres, Oracle, MS SQL, BigQuery và hầu hết cơ sở dữ liệu SQL
-
mongo-driver/mongo
Driver Go chính thức cho MongoDB
-
elastic/go-elasticsearch
Elasticsearch client cho Go
-
GORM
Thư viện ORM cho Go
-
Bleve
Tìm kiếm toàn văn bản và lập chỉ mục cho Go
-
CockroachDB
Cơ sở dữ liệu thế hệ mới, được thiết kế cho đám mây để cung cấp SQL phân tán có khả năng phục hồi, nhất quán ở quy mô lớn
Thư viện Web
-
markbates/goth
Xác thực cho ứng dụng web
-
jinzhu/gorm
Thư viện ORM cho Go
-
dgrijalva/jwt-go
Triển khai Go của JSON web token