Trong vài tuần qua,
chúng tôi đã dành rất nhiều thời gian để học cách
xây dựng và triển khai một máy chủ REST API đầy đủ
bằng cách nắm vững các công nghệ như Express Framework và cơ sở dữ liệu INNOSQL như MongoDB.
Cách tiếp cận này cung cấp cho bạn toàn quyền kiểm soát cách bạn xây dựng và triển khai máy chủ back-end của bạn.
Nhưng trong nhiều trường hợp,
chúng ta có thể có rất ít thời gian để cấu hình một máy chủ và sau đó triển khai nó một cách nhanh chóng.
Ví dụ, bạn là một khởi nghiệp cần tiếp cận thị trường rất, rất nhanh,
sau đó bạn có thể muốn nhanh chóng giàn giáo ra khỏi máy chủ back-end cùng với
một ứng dụng front-end và tiếp cận thị trường rất, rất nhanh chóng.
Trong những trường hợp đó, chúng tôi có thể cung cấp
hỗ trợ back-end dưới dạng
một dịch vụ có thể được cấu hình và triển khai nhanh chóng không?
Đó chính xác là những gì chúng ta sẽ thảo luận chi tiết hơn trong bài giảng này và các
bài tập tiếp theo trong bài học này và bài học sau đây.
Vì vậy, như chúng tôi đã học được trong khóa học này,
chúng tôi đã nắm vững các công nghệ,
các khuôn khổ cần thiết để chúng tôi xây dựng một máy chủ REST API back-end đầy đủ.
Bây giờ tất nhiên, như chúng tôi đã học được trong vài tuần qua,
cách tiếp cận này đòi hỏi chúng tôi phải thiết lập máy chủ riêng của chúng tôi và sau đó cấu hình máy chủ,
chúng tôi cần thiết lập cơ sở dữ liệu back-end của chúng tôi và sau đó
cấu hình các khía cạnh khác nhau của cơ sở dữ liệu back-end.
Chúng tôi cần phát triển API REST và các tuyến đường khác nhau cho API REST của chúng tôi,
và chúng tôi cũng có thể cần phải xây dựng các
dịch vụ bổ sung như cung cấp thông báo đẩy cho
người dùng, quản lý người dùng, dịch vụ mạng xã hội, v.v.
Vì vậy, tất cả những điều này có nghĩa là phát triển một ngân hàng chính thức kết thúc đòi hỏi rất nhiều nỗ lực.
Bây giờ, chúng ta có thể đóng gói toàn bộ cách tiếp cận này vào một dịch vụ có thể được
cấu hình và triển khai nhanh chóng mà không cần phải
tốn quá nhiều thời gian để cấu hình máy chủ của chúng tôi?
Bây giờ bạn đang nhìn tôi một cách kỳ lạ và nói,
“Bạn đã dành ba tuần qua đào tạo chúng tôi trong
tất cả các công nghệ này và bây giờ bạn đang nói rằng nó rất dễ dàng để
cấu hình một máy chủ sử dụng một back-end như
một dịch vụ để cung cấp tất cả các tính năng khác nhau từ back-end của chúng tôi.”
Vâng, mọi cách tiếp cận đi kèm với những lợi thế và bất lợi riêng của nó.
Hãy tìm hiểu thêm một chút về back-end như một dịch vụ trước khi chúng tôi quyết định
liệu cách tiếp cận phát triển máy chủ đầy đủ
mà chúng tôi đã học được cho đến nay là cách thích hợp cho chúng tôi,
hoặc nhanh chóng cấu hình và triển khai back-end
như một dịch vụ là cách tiếp cận sẽ đáp ứng nhu cầu của chúng tôi.
Vì vậy, chính xác những gì là back-end như một dịch vụ?
Back-end là một dịch vụ được thiết kế như một mô hình để cung cấp cho các
nhà phát triển thiết bị di động và web để liên kết các ứng dụng của họ với đám mây back-end.
Vì vậy, thông thường, back-end như một dịch vụ được lưu trữ trong đám mây và sau đó bạn phơi bày
back-end để front-end thông qua
một giao diện được thiết kế tốt như các điểm cuối REST API.
Một back-end đóng gói đầy đủ như chúng ta thấy trong bài học này,
là một hiện tượng tương đối gần đây và đã được đưa thế giới web bởi cơn bão.
Chúng ta sẽ xem xét một số ví dụ chi tiết hơn một chút.
Bây giờ, điều này cung cấp một cầu nối giữa front-end và back-end lưu trữ dữ liệu và
quản lý cơ sở dữ liệu back-end thông qua một API thống nhất.
Và cũng có nhiều người trong số các back-end như một nhà cung cấp dịch vụ cung cấp
bộ phát triển phần mềm của riêng họ mà sẽ
cho phép bạn nhanh chóng bắt đầu phát triển front-end.
Cách tiếp cận này tất nhiên giải phóng các nhà phát triển từ việc phải tập trung vào việc
xây dựng một back-end và thay vào đó tập trung vào sự phát triển của họ,
hoặc cố gắng để thiết kế và triển khai trải nghiệm người dùng
trong front-end có thể là nó trong các hình thức của
một ứng dụng góc cạnh hoặc là nó trong hình thức của một ứng dụng di động.
Bây giờ, nếu bạn đã quen thuộc với điện toán đám mây,
tôi chắc chắn bạn đã nghe các thuật ngữ như cơ sở hạ tầng như một dịch vụ,
nền tảng như một dịch vụ và phần mềm như một dịch vụ.
Bây giờ, các back-end di động như một dịch vụ, hay BaaS,
về cơ bản đang xây dựng trên phương pháp này và nhắm mục tiêu các nhà phát triển di động và web
với quyền truy cập vào các dịch vụ đám mây back-end và một môi trường đóng gói hơn nhiều.
Vì vậy, đây là cách back-end như một dịch vụ cho phép bạn
tận dụng nền tảng đám mây để hỗ trợ ứng dụng front-end của bạn.
Tất nhiên câu hỏi tiếp theo phát sinh trong tâm trí của bạn là những gì
các back-end như một dịch vụ cung cấp cho bạn thường?
Một back-end điển hình như một dịch vụ cung cấp cho bạn đẩy
thông báo tự động được tích hợp vào hỗ trợ đám mây back-end.
Nó cung cấp cho bạn lưu trữ tập tin và chia sẻ các tập tin.
Nó cung cấp cho bạn tích hợp mạng xã hội.
Nhiều người trong số các nhà cung cấp dịch vụ back-end cung cấp
tích hợp mạng xã hội tự động cho bạn.
Nó cung cấp cho bạn các chức năng nhắn tin và trò chuyện mà bạn có thể
tận dụng trong front-end của bạn để cung cấp trải nghiệm người dùng tốt hơn.
Nó cũng cung cấp cho bạn quản lý người dùng.
Như chúng ta đã thấy khi chúng tôi xây dựng
hỗ trợ quản lý người dùng và xác thực trong máy chủ Express plus MongoDB của
chúng tôi, chúng tôi đã phải xây dựng trong máy chủ xác thực đầy đủ,
chúng tôi cần phải xây dựng trong các dịch vụ back-end,
chúng tôi cần phải thực hiện quản lý token cả trên back-end
và trên front-end và xác thực của người sử dụng và như vậy.
Tất cả những điều này có thể được đóng gói và cung cấp cho bạn như một đơn
vị với bộ phát triển phần mềm đi kèm với back-end như một dịch vụ.
Ngoài ra, back-end vì nó là một dịch vụ gói,
họ cũng được xây dựng trong rất nhiều công cụ phân tích sử dụng cho phép bạn
có được một cái nhìn tổng quan nhanh chóng về cách người dùng tương tác với back-end của bạn.
Vì vậy, công cụ sử dụng này cung cấp cho bạn rất nhiều
cái nhìn sâu sắc về hành vi của người dùng từ bên trong back-end của bạn.
Ngoài ra, nhiều dịch vụ back-end này cung cấp cho bạn một phương pháp
xây dựng và triển khai logic tùy chỉnh của riêng bạn
trong back-end để đáp ứng các yêu cầu cụ thể của bạn.
Tất nhiên, họ cung cấp cho bạn khuôn khổ mà trong đó bạn có thể
thiết kế logic kinh doanh tùy chỉnh của bạn để đáp ứng nhu cầu cụ thể của bạn.
Vì vậy, để tóm tắt, một back-end điển hình cung cấp một API lưu trữ dữ liệu cho lưu
trữ đám mây nơi bạn có thể tải lên và tải xuống các tập tin và cũng truy cập các tập tin này,
một số loại lưu trữ nhị phân cho dữ liệu của bạn,
có lẽ là đồng bộ hóa thiết bị và khả năng bộ nhớ đệm.
Vì vậy, ví dụ, khi bạn xây dựng front-end
của bạn, dữ liệu back-end sẽ được tự động lưu trữ trong front-end.
Họ cũng có thể hỗ trợ hoạt động ngoại tuyến của front-end của bạn.
Vì vậy, ngay cả khi thiết bị người dùng của bạn bị ngắt kết nối khỏi mạng,
bạn vẫn sẽ cung cấp đủ lượng
thông tin cho người dùng có khả năng ngoại tuyến.
Vì vậy, cả công việc trực tuyến và ngoại tuyến, do đó bạn thậm chí có thể cho phép người dùng
thực hiện các hoạt động của họ ngoại tuyến và sau đó trên đồng bộ hóa với back-end.
Hội nhập của bên thứ ba.
Vì vậy, nhiều lần trong số các back-end như một nhà cung cấp dịch vụ
cho phép các nhà phát triển bên thứ ba phát triển các plugin mà sau đó có thể
được tận dụng cùng với back-end để cung cấp
phần mở rộng cho các dịch vụ mà back-end đã cung cấp cho bạn.
Kết nối an toàn giữa các ứng dụng front-end và back-end,
và cũng nhiều lần tự động tạo ra
các điểm cuối REST API cho bạn dựa trên dữ liệu mà bạn lưu trữ trong back-end.
Chúng ta sẽ thấy các ví dụ về điều này đặc biệt là với
LoopBack như chúng ta sẽ thấy sau này trong các bài tập.
Và cũng như tôi đã đề cập,
nhiều người trong số các back-end như một nhà cung cấp dịch vụ cung cấp
bộ phát triển phần mềm riêng của họ để bạn có
thể dễ dàng bắt đầu với sự phát triển front-end của bạn.
SDK đi kèm với tất cả các mã cần thiết cho
ứng dụng front-end của bạn để tự động tương tác với ứng dụng back-end của bạn.
Vì vậy, ví dụ, SDK có thể đã chứa các
dịch vụ mà ứng dụng góc cạnh của bạn có thể tận dụng để nói chuyện
với back-end tự động vì vậy bạn có thể chỉ để thực hiện
các thành phần và các mẫu front-end cho ứng dụng của bạn.
Tất cả các tương tác với back-end được tự động
quản lý bởi gói SDK được cung cấp cho bạn.
Bạn sẽ thấy ví dụ về điều này cả với
Firebase mà chúng ta sẽ xem xét trong một chút sau đó,
và cũng với LoopBack mà chúng ta sẽ thảo luận trong bài học tiếp theo.
Tất nhiên, bất kỳ cách tiếp cận nào cũng có hai mặt để đồng xu.
Vì vậy, chúng ta hãy xem xét một số ưu điểm và nhược điểm của back-end như một dịch vụ.
Bây giờ, một lợi thế tất nhiên là với
back-end nó cung cấp cho bạn các thành phần đã thử và thử nghiệm được xây dựng trước.
Vì vậy, back-end được đóng gói cho bạn
vì vậy nhà cung cấp dịch vụ back-end sẽ đảm bảo rằng
toàn bộ back-end được kiểm tra tốt và sẽ cung cấp dịch vụ như đã hứa cho người dùng,
cho các nhà phát triển front-end.
Vì vậy, bạn không cần phải dành thêm thời gian
phải lo lắng về việc thử nghiệm và đảm bảo rằng back-end của bạn hoạt động chính xác hay không.
Không giống như khi bạn xây dựng
back-end tùy chỉnh của riêng bạn bằng cách sử dụng các framework mà chúng tôi đã thấy trước đó,
bạn hoàn toàn chịu trách nhiệm để đảm bảo rằng back-end của bạn hoạt động chính xác.
Lợi thế thứ hai là tất nhiên,
giảm đồng thời trong những nỗ lực phía máy chủ mà bạn cần phải đưa vào.
Vì vậy, kể từ khi phía máy chủ đến như một đơn vị đóng gói,
bạn có thể tập trung chủ yếu vào sự phát triển front-end và rời khỏi
phía máy chủ cho backend như một nhà cung cấp dịch vụ để đối phó với.
Và bạn chỉ đơn giản là tận dụng sự linh hoạt mà chúng
cung cấp cho bạn trong việc phát triển mặt trước.
Và phụ trợ điển hình như một nhà cung cấp dịch vụ sẽ
chăm sóc tích hợp bất kỳ phát triển công nghệ gần đây
vào phụ trợ của họ và cung cấp các
phiên bản cập nhật của phụ trợ như và khi các công nghệ mới trở nên có sẵn.
Vì vậy, theo cách đó bạn là một nhà phát triển front-end
hoàn toàn được giải phóng khỏi lo lắng về cách phụ trợ cần phát triển.
Đó là tự động được chăm sóc bởi nhà cung cấp BaaS cho bạn.
Tất nhiên, tất cả mọi thứ đi kèm với mặt trái của thẻ.
Vì vậy, chúng ta hãy kiểm tra những gì là một số nhược điểm của đi backend như một dịch vụ.
Đầu tiên và quan trọng nhất, hầu hết các phụ trợ hoạt động như một hộp đen.
Bạn không biết chính xác cách thức phụ trợ được thực hiện.
Nếu bạn đang sử dụng một phụ trợ mã nguồn mở như LoopBack
, ví dụ, bạn có quyền truy cập vào toàn bộ mã phụ trợ đó,
nhưng vẫn tại sao bạn muốn dành thời gian khám phá các chi tiết của phụ trợ,
khi bạn đã được đảm bảo rằng phụ trợ đã được
xây dựng tốt và thử nghiệm tốt cho bạn.
Vì vậy, bạn có thể chỉ đơn giản coi nó như là một hộp đen miễn là.
Khi bạn tự tin rằng hộp đen này sẽ
cung cấp các dịch vụ mà bạn mong đợi nó cung cấp,
bạn chỉ có thể sử dụng phụ trợ mà không cần
phải lo lắng về cách nó thực sự được thực hiện.
Khía cạnh thứ hai là,
nếu bạn chọn để đi với một phụ trợ như một nhà cung cấp dịch vụ,
đó là vấn đề của nhà cung cấp khóa trong.
Vì vậy, một khi bạn chọn một trong những nhà cung cấp BaaS,
bạn sẽ bị khóa vào môi trường của họ và cách họ lưu trữ dữ liệu của họ.
Nhiều lần một khi bạn áp dụng một trong những phụ trợ như một nhà cung cấp dịch vụ,
tất cả dữ liệu của bạn bị khóa vào dịch vụ của họ và bạn có thể phải trải
qua một nỗ lực vô hiệu để
truy xuất dữ liệu mà bạn đã lưu trữ trong phụ trợ,
nếu bạn chọn di chuyển từ một backend như một nhà cung cấp dịch vụ khác.
Vì vậy, việc triển khai dịch vụ của bạn bằng cách sử dụng một phụ trợ là một nhiệm vụ rất đơn giản,
nhưng sau đó nếu bạn chọn thay đổi nhà cung cấp BaaS của bạn,
đó sẽ là một trận chiến khó khăn cho bạn.
Vì vậy, đó là một cái gì đó mà bạn cần phải nhận thức đầy đủ trước khi cam
kết sử dụng một trong những phụ trợ như một nhà cung cấp dịch vụ.
Vấn đề này không trở thành một vấn đề khi
bạn đang thực hiện phát triển phụ trợ đầy đủ của bạn một mình. Một
lần nữa, chiến thắng của bạn một số và bạn mất một số.
Vì vậy, chúng tôi luôn ghi nhận điều đó với toàn bộ bức tranh của họ trong tâm trí.
Vì vậy, sự mất mát của sự linh hoạt mà bạn
đòi hỏi bằng cách sử dụng một trong các phụ trợ như các nhà cung cấp dịch vụ có thể là một cái gì đó mà
bạn sẵn sàng sống với vì thực tế là bạn đã giảm số lượng
thời gian phát triển phụ trợ và bạn có thể tập trung
nhiều hơn vào việc cung cấp sản phẩm của bạn đến thị trường.
Vì vậy, nếu bạn tin tưởng nhà cung cấp BaaS,
sau đó bạn chỉ có thể đi với nhà cung cấp BaaS đã chọn của bạn và sau đó
không phải lo lắng quá nhiều về sự mất mát của tính linh hoạt mà sau đó vì điều đó.
Một lần nữa, như tôi đã nói, không phải tất cả mọi thứ đi kèm với chỉ những lợi thế,
luôn luôn có những lợi thế và bất lợi đối với bất kỳ cách tiếp cận nào mà bạn
chọn để phát triển và triển khai phụ trợ của bạn.
BaaS chỉ là một lựa chọn mà có thể là cách tiếp cận
mà bạn chọn để cho nhu cầu cụ thể của bạn.
Và cuối cùng, tất nhiên,
không phải mọi BaaS đều đi kèm mà không có bộ yêu cầu đào tạo bổ sung riêng của mình.
Nếu bạn cần sử dụng một trong những nhà cung cấp BaaS,
thay vì hộp đen, bạn cần phải tìm hiểu API,
bạn cần phải tìm hiểu làm thế nào để cấu hình nó,
bạn cần phải tìm hiểu làm thế nào để tùy chỉnh các bộ phận của nó nên bạn chọn để làm như vậy, và vân vân.
Vì vậy, nỗ lực đào tạo bạn đã dành để học các
khuôn khổ cụ thể hoặc chung chung như Express và các cơ sở dữ liệu như MongoDB,
thay vào đó bạn sẽ dành thời gian để học các chi
tiết cụ thể của phụ trợ của họ như một dịch vụ mà bạn chọn để sử dụng.
Vì vậy, đó là một câu hỏi về nơi bạn muốn dành thời gian của bạn.
Việc đào tạo bổ sung sẽ luôn luôn được tham gia,
ngoại trừ việc với một nhà cung cấp BaaS, bạn có thể bắt đầu
nhanh hơn so với xây dựng phụ trợ tùy chỉnh của riêng bạn.
Thị trường BaaS là đầy đủ của một số lựa chọn.
Và thực sự, những lựa chọn này tiếp tục tăng lên trong ngày.
Bây giờ khi bạn đi vào thị trường BaaS,
bạn có thể thấy các nhà cung cấp thương mại.
Dưới đây là một danh sách nhỏ các nhà cung cấp thương mại.
Một lần nữa, có nhiều hơn và nhiều hơn nữa mà được thêm vào ngày vào danh sách này,
và tôi đã chỉ liệt kê một tập hợp con nhỏ của họ.
Tất nhiên, nếu nhà cung cấp BaaS yêu thích của bạn không có trong danh sách này, đừng đổ lỗi cho tôi,
có lẽ tôi chỉ không biết về họ hoặc có thể họ chỉ là quá
mới với thị trường và vì vậy tôi đã không đi qua chúng.
Nhưng đây là danh sách một số nhà cung cấp thương mại cung cấp dịch vụ BaaS cho chúng tôi.
Đặc biệt, tôi sẽ tập trung vào firebase,
được cung cấp bởi Google.
Trong bài học này, chúng ta sẽ tìm hiểu làm thế nào để sử dụng firebase trong một
chút chi tiết trong bài học này trong các bài tập tiếp theo.
Bây giờ, nếu bạn muốn đi với một nhà cung cấp mã nguồn mở,
có rất nhiều lựa chọn thay thế mã nguồn mở có sẵn cho chúng tôi,
tất nhiên bạn sẽ có
được phần mềm mã nguồn mở này và sau đó xây dựng kết thúc máy chủ của bạn và triển khai nó.
Ngoại trừ việc nó sẽ đến như
một thực thể đóng gói sẵn mà bạn có thể nhanh chóng cấu hình và triển khai vào phụ trợ.
Chúng tôi sẽ xem xét LoopBack như một trong những ví dụ về một phần mềm mã nguồn mở có
thể được triển khai rất nhanh để xây dựng phụ trợ của bạn.
Và như tôi đã nói, ngày càng có nhiều sự lựa chọn được đưa vào thị trường, từng ngày.
Vì vậy, bạn có nên khám phá thị trường vào ngày mai để tìm các nhà cung cấp BaaS mới?
Bằng mọi cách, hãy kiểm tra những gì được cung cấp bởi họ,
loại dịch vụ mà họ cung cấp.
Liệu những dịch vụ mà họ cung cấp đáp ứng yêu cầu của bạn và bạn có thể nhanh chóng
tận dụng dịch vụ mà họ cung cấp để có được thị trường một cách nhanh chóng.
Vì vậy, đây là những vấn đề mà tôi sẽ để lại cho bạn trong vòng một ngày.
Như tôi đã nói, chúng ta nên xem xét
tất cả các lựa chọn thay thế có thể và sau đó đưa ra quyết định của riêng mình một cách độc lập.
Nhưng trừ khi chúng ta nhận thức được những lựa chọn thay thế, chúng ta sẽ không thể đưa ra những lựa chọn sáng suốt.
Vì vậy, đó là lý do tại sao vài bài học cuối cùng của khóa học này tôi đang chi tiêu để
khám phá một số ví dụ về phụ trợ như các nhà cung cấp dịch vụ.