{"id":1140,"date":"2022-02-28T01:58:49","date_gmt":"2022-02-28T01:58:49","guid":{"rendered":"https:\/\/egany.com\/blogs\/?p=1140"},"modified":"2022-03-08T12:19:03","modified_gmt":"2022-03-08T12:19:03","slug":"microservices-4-lam-viec-da-moi-truong-va-su-cho-doi-cua-frontend","status":"publish","type":"post","link":"https:\/\/egany.com\/blogs\/microservices-4-lam-viec-da-moi-truong-va-su-cho-doi-cua-frontend\/","title":{"rendered":"Microservices #4: L\u00e0m vi\u1ec7c \u0111a m\u00f4i tr\u01b0\u1eddng v\u00e0 s\u1ef1 ch\u1edd \u0111\u1ee3i c\u1ee7a Frontend"},"content":{"rendered":"<p>Xin ch\u00e0o, ti\u1ebfp t\u1ee5c lo\u1ea1t b\u00e0i v\u1ec1 tr\u1ea3i nghi\u1ec7m c\u1ee7a m\u00ecnh trong vi\u1ec7c x\u00e2y d\u1ef1ng h\u1ec7 th\u1ed1ng microservices t\u1ea1i EGANY, h\u00f4m nay xin \u0111\u1ec1 c\u1eadp v\u1edbi m\u1ecdi ng\u01b0\u1eddi m\u1ed9t v\u1ea5n \u0111\u1ec1 m\u00e0 nh\u00f3m m\u00ecnh \u0111ang g\u1eb7p ph\u1ea3i khi ph\u00e1t tri\u1ec3n h\u1ec7 th\u1ed1ng v\u1edbi nhi\u1ec1u m\u00f4i tr\u01b0\u1eddng kh\u00e1c nhau. Trong b\u00e0i vi\u1ebft n\u00e0y s\u1ebd \u0111\u1ec1 c\u1eadp t\u1edbi v\u01b0\u1edbng m\u1eafc g\u1eb7p ph\u1ea3i khi x\u00e1c th\u1ef1c v\u00e0 ph\u00e2n quy\u1ec1n. V\u1eady v\u1ea5n \u0111\u1ec1 n\u00e0y c\u1ee5 th\u1ec3 l\u00e0 g\u00ec? T\u1ea1i sao Frontend l\u1ea1i ph\u1ea3i ch\u1edd? Frontend ch\u1edd g\u00ec?  H\u00e3y c\u00f9ng t\u00ecm hi\u1ec3u nh\u00e9! Tr\u01b0\u1edbc h\u1ebft xin \u0111i qua m\u1ed9t ch\u00fat v\u1ec1 b\u1ed1i c\u1ea3nh.<\/p>\n<h2>B\u1ed1i c\u1ea3nh<\/h2>\n<p>EGANY cung c\u1ea5p c\u00e1c gi\u1ea3i ph\u00e1p nh\u1eb1m gi\u00fap t\u0103ng tr\u1ea3i nghi\u1ec7m v\u00e0 t\u1ec9 l\u1ec7 chuy\u1ec3n \u0111\u1ed5i tr\u00ean website e-commerce b\u1eb1ng nhi\u1ec1u gi\u1ea3i ph\u00e1p kh\u00e1c nhau v\u1edbi chi ph\u00ed ti\u1ebft ki\u1ec7m, m\u1ed9t trong c\u00e1c gi\u1ea3i ph\u00e1p \u0111\u1ea5y l\u00e0 cung c\u1ea5p c\u00e1c \u1ee9ng d\u1ee5ng web ch\u1ea1y tr\u00ean c\u00e1c n\u1ec1n t\u1ea3ng nh\u01b0 Haravan, Sapo, Shopify (<a href=\"https:\/\/apps.egany.com\">apps.egany.com<\/a>) v\u00e0 c\u00e1c n\u1ec1n t\u1ea3ng kh\u00e1c v\u1edbi b\u1ed9 \u1ee9ng d\u1ee5ng Cross Platform (<a href=\"https:\/\/egany.app\" rel=\"nofollow noopener\" target=\"_blank\">egany.app<\/a>). \u1ee8ng d\u1ee5ng cung c\u1ea5p giao di\u1ec7n th\u00e2n thi\u1ec7n \u0111\u1ec3 ng\u01b0\u1eddi d\u00f9ng thi\u1ebft l\u1eadp c\u00e1 nh\u00e2n h\u00f3a \u0111\u1ec3 ph\u00f9 h\u1ee3p cho website c\u1ee7a h\u1ecd, xem h\u00ecnh minh h\u1ecda d\u01b0\u1edbi \u0111\u00e2y.<\/p>\n<p><img decoding=\"async\" src=\"https:\/\/egany.cdn.vccloud.vn\/blogs\/wp-content\/uploads\/2022\/02\/index-guideline-cro-buttons.png\" alt=\"H\u00ecnh minh h\u1ecda giao di\u1ec7n\" \/><\/p>\n<p>Giao di\u1ec7n tr\u00ean \u0111\u01b0\u1ee3c Frontend tri\u1ec3n khai v\u00e0 t\u00edch h\u1ee3p th\u00f4ng qua API do Backend cung c\u1ea5p. Th\u00f4ng th\u01b0\u1eddng API s\u1ebd y\u00eau c\u1ea7u x\u00e1c th\u1ef1c m\u1edbi c\u00f3 th\u1ec3 s\u1eed d\u1ee5ng \u0111\u01b0\u1ee3c, t\u1ea1i EGANY s\u1eed d\u1ee5ng <a href=\"https:\/\/jwt.io\/\" rel=\"nofollow noopener\" target=\"_blank\">Access Token<\/a> th\u00f4ng qua OAuth \u0111\u1ec3 g\u1ecdi API, xem m\u00f4 t\u1ea3 v\u1ec1 OAuth d\u01b0\u1edbi \u0111\u00e2y.<\/p>\n<p><img decoding=\"async\" src=\"https:\/\/egany.cdn.vccloud.vn\/blogs\/wp-content\/uploads\/2022\/02\/Abstract-Protocal-Flow.png\" alt=\"Abstract Protocal Flow\" \/><\/p>\n<p>Chi ti\u1ebft h\u01a1n s\u1ebd nh\u01b0 sau<\/p>\n<p><img decoding=\"async\" src=\"https:\/\/egany.cdn.vccloud.vn\/blogs\/wp-content\/uploads\/2022\/02\/Authorization-Code-Flow.png\" alt=\"Authorization Code Flow\" \/><\/p>\n<p>B\u1ea1n c\u00f3 th\u1ec3 t\u00ecm hi\u1ec3u th\u00eam trong b\u00e0i <a href=\"https:\/\/datatracker.ietf.org\/doc\/html\/rfc6749\" rel=\"nofollow noopener\" target=\"_blank\">The OAuth 2.0 Authorization Framework<\/a><\/p>\n<p>Trong h\u00ecnh tr\u00ean, m\u1ecdi ng\u01b0\u1eddi c\u00f3 th\u1ec3 th\u1ea5y c\u00f3 tham s\u1ed1 Redirection URI \u1edf b\u01b0\u1edbc (D), \u0111\u00e2y ch\u00ednh l\u00e0 URI s\u1ebd \u0111\u01b0\u1ee3c chuy\u1ec3n h\u01b0\u1edbng\/redirect \u0111\u1ebfn Frontend \u0111\u1ec3 nh\u1eadn v\u00e0 x\u1eed l\u00fd ti\u1ebfp y\u00eau c\u1ea7u, v\u1ea5n \u0111\u1ec1 x\u1ea3y ra \u1edf \u0111\u00e2y, v\u1eady c\u1ee5 th\u1ec3 n\u00f3 l\u00e0 g\u00ec?<\/p>\n<h2>V\u1ea5n \u0111\u1ec1<\/h2>\n<p>Th\u00f4ng th\u01b0\u1eddng m\u1ed9t h\u1ec7 th\u1ed1ng khi \u0111\u1ebfn tay ng\u01b0\u1eddi d\u00f9ng th\u00ec c\u1ea7n \u0111\u1ea3m b\u1ea3o \u0111\u01b0\u1ee3c t\u00ednh \u1ed5n \u0111\u1ecbnh c\u1ee7a h\u1ec7 th\u1ed1ng, do \u0111\u00f3 qu\u00e1 tr\u00ecnh ph\u00e1t tri\u1ec3n, ki\u1ec3m th\u1eed v\u00e0 release s\u1ebd \u0111\u01b0\u1ee3c tri\u1ec3n khai tr\u00ean nhi\u1ec1u m\u00f4i tr\u01b0\u1eddng kh\u00e1c nhau g\u1ed3m:<\/p>\n<p><strong>Backend<\/strong><\/p>\n<table>\n<thead>\n<tr>\n<th style=\"text-align: left;\">M\u00f4i tr\u01b0\u1eddng<\/th>\n<th style=\"text-align: left;\">G\u1ecdi t\u1eaft<\/th>\n<\/tr>\n<\/thead>\n<tbody>\n<tr>\n<td style=\"text-align: left;\">Development<\/td>\n<td style=\"text-align: left;\">dev<\/td>\n<\/tr>\n<tr>\n<td style=\"text-align: left;\">Staging<\/td>\n<td style=\"text-align: left;\">stag<\/td>\n<\/tr>\n<tr>\n<td style=\"text-align: left;\">Production<\/td>\n<td style=\"text-align: left;\">prod<\/td>\n<\/tr>\n<\/tbody>\n<\/table>\n<p>v\u00e0<\/p>\n<p><strong>Frontend<\/strong><\/p>\n<table>\n<thead>\n<tr>\n<th style=\"text-align: left;\">M\u00f4i tr\u01b0\u1eddng<\/th>\n<th style=\"text-align: left;\">G\u1ecdi t\u1eaft<\/th>\n<\/tr>\n<\/thead>\n<tbody>\n<tr>\n<td style=\"text-align: left;\">Development<\/td>\n<td style=\"text-align: left;\">dev<\/td>\n<\/tr>\n<tr>\n<td style=\"text-align: left;\">Staging<\/td>\n<td style=\"text-align: left;\">stag<\/td>\n<\/tr>\n<tr>\n<td style=\"text-align: left;\">Production<\/td>\n<td style=\"text-align: left;\">prod<\/td>\n<\/tr>\n<\/tbody>\n<\/table>\n<p>Nh\u01b0 v\u1eady c\u00f3 th\u1ec3 nh\u1eadn th\u1ea5y l\u00e0 Backend v\u00e0 Frontend \u0111\u1ec1u chia th\u00e0nh c\u00e1c m\u00f4i tr\u01b0\u1eddng kh\u00e1c nhau \u0111\u1ec3 ph\u00e1t tri\u1ec3n, n\u1ebfu b\u1ea1n l\u00e0 m\u1ed9t Backend developer b\u1ea1n s\u1ebd thi\u1ebft k\u1ebf h\u1ec7 th\u00f4ng c\u1ee7a m\u00ecnh nh\u01b0 th\u1ebf n\u00e0o \u0111\u1ec3 Frontend v\u00e0 Backend c\u00f3 th\u1ec3 l\u00e0m vi\u1ec7c v\u1edbi nhau m\u1ed9t c\u00e1ch m\u01b0\u1ee3t m\u00e0? M\u00ecnh c\u00f3 2 gi\u1ea3i ph\u00e1p d\u01b0\u1edbi \u0111\u00e2y<\/p>\n<p><strong>Gi\u1ea3i ph\u00e1p 1<\/strong> &#8211; Thi\u1ebft k\u1ebf \u0111\u1ec3 Backend v\u00e0 Frontend t\u01b0\u01a1ng t\u00e1c c\u00f9ng 1 m\u00f4i tr\u01b0\u1eddng gi\u1ed1ng nhau<\/p>\n<table>\n<thead>\n<tr>\n<th style=\"text-align: left;\"><\/th>\n<th>Dev backend<\/th>\n<th>Stag backend<\/th>\n<th>Prod backend<\/th>\n<\/tr>\n<\/thead>\n<tbody>\n<tr>\n<td style=\"text-align: left;\"><strong>Dev frontend<\/strong><\/td>\n<td>\u2705<\/td>\n<td>&#8211;<\/td>\n<td>&#8211;<\/td>\n<\/tr>\n<tr>\n<td style=\"text-align: left;\"><strong>Stag frontend<\/strong><\/td>\n<td>&#8211;<\/td>\n<td>\u2705<\/td>\n<td>&#8211;<\/td>\n<\/tr>\n<tr>\n<td style=\"text-align: left;\"><strong>Prod frontend<\/strong><\/td>\n<td>&#8211;<\/td>\n<td>&#8211;<\/td>\n<td>\u2705<\/td>\n<\/tr>\n<\/tbody>\n<\/table>\n<p><strong>Gi\u1ea3i ph\u00e1p 2<\/strong> &#8211; Thi\u1ebft k\u1ebf Backend \u0111\u1ec3 Dev v\u00e0 Stag Frontend c\u00f3 th\u1ec3 k\u1ebft n\u1ed1i v\u1edbi m\u00f4i tr\u01b0\u1eddng Dev v\u00e0 Stag Backend<\/p>\n<table>\n<thead>\n<tr>\n<th style=\"text-align: left;\"><\/th>\n<th>Dev backend<\/th>\n<th>Stag backend<\/th>\n<th>Prod backend<\/th>\n<\/tr>\n<\/thead>\n<tbody>\n<tr>\n<td style=\"text-align: left;\"><strong>Dev frontend<\/strong><\/td>\n<td>\u2705<\/td>\n<td>\u2705<\/td>\n<td>&#8211;<\/td>\n<\/tr>\n<tr>\n<td style=\"text-align: left;\"><strong>Stag frontend<\/strong><\/td>\n<td>&#8211;<\/td>\n<td>\u2705<\/td>\n<td>&#8211;<\/td>\n<\/tr>\n<tr>\n<td style=\"text-align: left;\"><strong>Prod frontend<\/strong><\/td>\n<td>&#8211;<\/td>\n<td>&#8211;<\/td>\n<td>\u2705<\/td>\n<\/tr>\n<\/tbody>\n<\/table>\n<p>V\u1eady theo b\u1ea1n gi\u1ea3i ph\u00e1p n\u00e0o s\u1ebd x\u1ea3y ra vi\u1ec7c Frontend ch\u1edd \u0111\u1ee3i?<\/p>\n<p><img decoding=\"async\" src=\"https:\/\/egany.cdn.vccloud.vn\/blogs\/wp-content\/uploads\/2022\/02\/giphy.gif\" alt=\"\" \/><\/p>\n<p>\u0110\u00f3 l\u00e0 gi\u1ea3i ph\u00e1p 1, h\u00e3y c\u00f9ng ph\u00e2n t\u00edch<\/p>\n<h2>Ph\u00e2n t\u00edch<\/h2>\n<p>Tr\u01b0\u1edbc h\u1ebft c\u1ea7n ph\u1ea3i bi\u1ebft \u0111\u1eb7c \u0111i\u1ec3m c\u1ee7a Dev Backend l\u00e0:<\/p>\n<ul>\n<li>Th\u01b0\u1eddng xuy\u00ean thay \u0111\u1ed5i<\/li>\n<li>L\u00e0 n\u01a1i th\u1eed nghi\u1ec7m cho c\u00e1c t\u00ednh n\u0103ng v\u00e0 c\u00f4ng ngh\u1ec7 m\u1edbi<\/li>\n<li>L\u00e0 n\u1edbi s\u1eeda l\u1ed7i\/fix bugs<\/li>\n<li>Do \u0111o th\u01b0\u1eddng s\u1ebd kh\u00f4ng c\u00f3 t\u00ednh \u1ed5n \u0111\u1ecbnh cao.<\/li>\n<\/ul>\n<p>V\u00ed d\u1ee5 trong qu\u00e1 tr\u00ecnh nghi\u00ean c\u1ee9u c\u00f4ng ngh\u1ec7 m\u1edbi l\u00e0m cho m\u1ed9t v\u00e0i service kh\u00f4ng ho\u1ea1t \u0111\u1ed9ng trong m\u1ed9t kho\u1ea3ng th\u1eddi gian, v\u1eady chuy\u1ec7n g\u00ec x\u1ea3y ra n\u1ebfu Dev Frontend \u0111ang l\u00e0m vi\u1ec7c v\u1edbi  Dev Backend?<\/p>\n<p><img decoding=\"async\" src=\"https:\/\/egany.cdn.vccloud.vn\/blogs\/wp-content\/uploads\/2022\/02\/giphy-1.gif\" alt=\"\" \/><\/p>\n<p>L\u00fac n\u00e0y b\u1ea1n s\u1ebd nh\u1eadn \u0111\u01b0\u1ee3c nh\u1eefng l\u1eddi h\u1ecfi th\u0103m n\u1ed3ng th\u1eafm t\u1eeb \u0111\u1ed3ng nghi\u1ec7p c\u1ee7a m\u00ecnh v\u00ed d\u1ee5 nh\u01b0<\/p>\n<blockquote>\n<p>\u00ca b\u1ea1n, sao API n\u00f3 b\u00e1o l\u1ed7i 404 n\u00e8<\/p>\n<p>\u00ca b\u1ea1n, API tr\u1ea3 l\u1ed7i Service Unavailable n\u00e8<\/p>\n<\/blockquote>\n<p>L\u00fac n\u00e0y b\u1ea1n s\u1ebd l\u00e0m g\u00ec? N\u1edf m\u1ed9t n\u1ee5 c\u01b0\u1eddi th\u1eadt t\u01b0\u01a1i v\u00e0 n\u00f3i<\/p>\n<blockquote>\n<p>\u00c0, t\u1ea1i v\u00ec m\u00ecnh m\u1edbi th\u1eed m\u1ed9t c\u00f4ng ngh\u1ec7 m\u1edbi, m\u00e0 \u0111ang g\u1eb7p m\u1ed9t s\u1ed1 tr\u1ee5c tr\u1eb7c n\u00ean server \u0111ang l\u1ed7i, xin l\u1ed7i nha, ch\u1edd x\u00edu \u0111\u1ec3 kh\u00f4i ph\u1ee5c l\u1ea1i<\/p>\n<\/blockquote>\n<p>L\u00fac n\u00e0y Frontend ph\u1ea3i ch\u1edd Backend kh\u00f4i ph\u1ee5c l\u1ea1i m\u00f4i tr\u01b0\u1eddng Dev \u0111\u1ec3 c\u00f3 th\u1ec3 ti\u1ebfp t\u1ee5c c\u00f4ng vi\u1ec7c c\u1ee7a m\u00ecnh. Trong m\u1ed9t s\u1ed1 tr\u01b0\u1eddng h\u1ee3p th\u00ec chuy\u1ec7n n\u00e0y s\u1ebd kh\u00f4ng \u1ea3nh h\u01b0\u1edfng qu\u00e1 nhi\u1ec1u n\u1ebfu vi\u1ec7c kh\u00f4i ph\u1ee5c kh\u00f4ng m\u1ea5t nhi\u1ec1u th\u1eddi gian ho\u1eb7c c\u00f4ng vi\u1ec7c c\u1ee7a Frontend kh\u00f4ng qu\u00e1 g\u1ea5p ho\u1eb7c s\u1eeda l\u1ed7i nghi\u00eam tr\u1ecdng n\u00e0o \u0111\u1ea5y. Trong tr\u01b0\u1eddng h\u1ee3p ng\u01b0\u1ee3c l\u1ea1i th\u00ec s\u1ebd l\u00e0 v\u1ea5n \u0111\u1ec1 c\u1ef1c k\u1ef3 nghi\u00eam tr\u1ecdng khi s\u1ea3n ph\u1ea9m c\u1ee7a b\u1ea1n \u0111ang trong giai \u0111o\u1ea1n n\u01b0\u1edbc r\u00fat chu\u1ea9n b\u1ecb release, \u0111ang g\u1eb7p l\u1ed7i nghi\u00eam tr\u1ecdng, t\u00ednh n\u0103ng \u0111ang c\u1ea7n \u0111\u01b0\u1ee3c tri\u1ec3n khai tr\u00ean m\u00f4i tr\u01b0\u1eddng Stag \u0111\u1ec3 nhi\u1ec1u giai \u0111o\u1ea1n ti\u1ebfp theo c\u00f3 th\u1ec3 ti\u1ebfp t\u1ee5c nh\u01b0 vi\u1ebft n\u1ed9i dung, ki\u1ec3m th\u1eed, demo cho \u0111\u1ed1i t\u00e1c&#8230;<\/p>\n<h2>Gi\u1ea3i ph\u00e1p<\/h2>\n<p>V\u1edbi nh\u1eefng v\u1ea5n \u0111\u1ec1 \u1edf tr\u00ean th\u00ec h\u1ec7 th\u1ed1ng n\u00ean \u0111\u01b0\u1ee3c thi\u1ebft k\u1ebf m\u1ed9t c\u00e1ch linh \u0111\u1ed9ng \u0111\u1ec3 tr\u00e1nh nh\u1eefng vi\u1ec7c r\u1ee7i ro kh\u00f4ng \u0111\u00e1ng c\u00f3. Qua v\u00ed d\u1ee5 tr\u00ean d\u1ec5 nh\u1eadn th\u1ea5y gi\u1ea3i ph\u00e1p 2 s\u1ebd tr\u00e1nh \u0111\u01b0\u1ee3c vi\u1ec7c Dev Frontend ph\u1ea3i.<\/p>\n<p><strong>Gi\u1ea3i ph\u00e1p 2<\/strong> &#8211; Thi\u1ebft k\u1ebf Backend \u0111\u1ec3 Dev v\u00e0 Stag Frontend c\u00f3 th\u1ec3 k\u1ebft n\u1ed1i v\u1edbi m\u00f4i tr\u01b0\u1eddng Dev v\u00e0 Stag Backend<\/p>\n<table>\n<thead>\n<tr>\n<th style=\"text-align: left;\"><\/th>\n<th>Dev backend<\/th>\n<th>Stag backend<\/th>\n<th>Prod backend<\/th>\n<\/tr>\n<\/thead>\n<tbody>\n<tr>\n<td style=\"text-align: left;\"><strong>Dev frontend<\/strong><\/td>\n<td>\u2705<\/td>\n<td>\u2705<\/td>\n<td>&#8211;<\/td>\n<\/tr>\n<tr>\n<td style=\"text-align: left;\"><strong>Stag frontend<\/strong><\/td>\n<td>&#8211;<\/td>\n<td>\u2705<\/td>\n<td>&#8211;<\/td>\n<\/tr>\n<tr>\n<td style=\"text-align: left;\"><strong>Prod frontend<\/strong><\/td>\n<td>&#8211;<\/td>\n<td>&#8211;<\/td>\n<td>\u2705<\/td>\n<\/tr>\n<\/tbody>\n<\/table>\n<p>B\u00e0i vi\u1ebft \u0111\u1ebfn \u0111\u00e2y l\u00e0 h\u1ebft r\u1ed3i, hy v\u1ecdng qua b\u00e0i vi\u1ebft n\u00e0y s\u1ebd gi\u00fap c\u00e1c b\u1ea1n c\u00f3 \u0111\u01b0\u1ee3c m\u1ed9t g\u00f3c nh\u00ecn v\u1ec1 v\u1ea5n \u0111\u1ec1 tr\u00ean, \u0111\u1ec3 t\u1eeb \u0111\u1ea5y c\u00f3 c\u00e1c gi\u1ea3i ph\u00e1p cho m\u00ecnh \u0111\u1ec3 tr\u00e1nh nh\u1eefng v\u1ea5n \u0111\u1ec1 kh\u00f4ng \u0111\u00e1ng c\u00f3 v\u00e0 gi\u00fap cho team c\u1ee7a m\u00ecnh c\u00f3 th\u1ec3 ph\u1ed1i h\u1ee3p m\u1ed9t c\u00e1ch m\u01b0\u1ee3t m\u00e0, t\u1ea1o ra nh\u1eefng s\u1ea3n ph\u1ea9m ch\u1ea5t l\u01b0\u1ee3ng, nhanh ch\u00f3ng \u0111\u1ebfn v\u1edbi ng\u01b0\u1eddi d\u00f9ng.<\/p>\n<p>Ngo\u00e0i ra c\u00e1c b\u1ea1n c\u0169ng c\u00f3 th\u1ec3 xem th\u00eam c\u00e1c b\u00e0i vi\u1ebft kh\u00e1c c\u1ee7a m\u00ecnh t\u1eeb danh s\u00e1ch d\u01b0\u1edbi \u0111\u00e2y, t\u1ea1m bi\u1ec7t v\u00e0 h\u1eb9n g\u1eb7p l\u1ea1i trong c\u00e1c b\u00e0i vi\u1ebft ti\u1ebfp theo.<\/p>\n<ul>\n<li><a href=\"https:\/\/egany.com\/blogs\/microsevices-1-su-lua-chon\/\">Microsevices #1 \u2013 S\u1ef1 l\u1ef1a ch\u1ecdn<\/a><\/li>\n<li><a href=\"https:\/\/egany.com\/blogs\/microsevices-2-trien-khai-microservices-tinh-gon-de-bat-dau-de-dang-hon\/\">Microsevices #2 \u2013 Tri\u1ec3n khai microservices \u201ctinh g\u1ecdn\u201d \u0111\u1ec3 b\u1eaft \u0111\u1ea7u d\u1ec5 d\u00e0ng h\u01a1n<\/a><\/li>\n<li><a href=\"https:\/\/egany.com\/blogs\/microservices-so-3-service-communication-3-lan-thay-doi\/\">Microsevices #3 \u2013 Service Communication \u2013 3 l\u1ea7n thay \u0111\u1ed5i<\/a><\/li>\n<li><a href=\"https:\/\/egany.com\/blogs\/egany-back-end-tech-stack\/\">EGANY Back-End Tech Stack<\/a><\/li>\n<\/ul>\n","protected":false},"excerpt":{"rendered":"<p>Xin ch\u00e0o, ti\u1ebfp t\u1ee5c lo\u1ea1t b\u00e0i v\u1ec1 tr\u1ea3i nghi\u1ec7m c\u1ee7a m\u00ecnh trong vi\u1ec7c x\u00e2y d\u1ef1ng h\u1ec7 th\u1ed1ng microservices t\u1ea1i EGANY, h\u00f4m nay xin \u0111\u1ec1 c\u1eadp v\u1edbi m\u1ecdi ng\u01b0\u1eddi m\u1ed9t v\u1ea5n \u0111\u1ec1 m\u00e0 nh\u00f3m m\u00ecnh \u0111ang g\u1eb7p ph\u1ea3i khi ph\u00e1t tri\u1ec3n h\u1ec7 th\u1ed1ng v\u1edbi nhi\u1ec1u m\u00f4i tr\u01b0\u1eddng kh\u00e1c nhau. Trong b\u00e0i vi\u1ebft n\u00e0y s\u1ebd \u0111\u1ec1 c\u1eadp t\u1edbi v\u01b0\u1edbng m\u1eafc g\u1eb7p ph\u1ea3i khi x\u00e1c th\u1ef1c v\u00e0 ph\u00e2n quy\u1ec1n. V\u1eady v\u1ea5n \u0111\u1ec1 n\u00e0y c\u1ee5 th\u1ec3 l\u00e0 g\u00ec? T\u1ea1i sao Frontend l\u1ea1i ph\u1ea3i ch\u1edd? Frontend ch\u1edd g\u00ec? H\u00e3y c\u00f9ng t\u00ecm hi\u1ec3u nh\u00e9! Tr\u01b0\u1edbc h\u1ebft xin \u0111i qua m\u1ed9t ch\u00fat v\u1ec1 b\u1ed1i c\u1ea3nh. B\u1ed1i c\u1ea3nh<\/p>\n","protected":false},"author":4,"featured_media":1242,"comment_status":"closed","ping_status":"open","sticky":false,"template":"","format":"standard","meta":[],"categories":[27,54],"tags":[53,109,160,29,87,73,157,63,159,158],"_links":{"self":[{"href":"https:\/\/egany.com\/blogs\/wp-json\/wp\/v2\/posts\/1140"}],"collection":[{"href":"https:\/\/egany.com\/blogs\/wp-json\/wp\/v2\/posts"}],"about":[{"href":"https:\/\/egany.com\/blogs\/wp-json\/wp\/v2\/types\/post"}],"author":[{"embeddable":true,"href":"https:\/\/egany.com\/blogs\/wp-json\/wp\/v2\/users\/4"}],"replies":[{"embeddable":true,"href":"https:\/\/egany.com\/blogs\/wp-json\/wp\/v2\/comments?post=1140"}],"version-history":[{"count":0,"href":"https:\/\/egany.com\/blogs\/wp-json\/wp\/v2\/posts\/1140\/revisions"}],"wp:featuredmedia":[{"embeddable":true,"href":"https:\/\/egany.com\/blogs\/wp-json\/wp\/v2\/media\/1242"}],"wp:attachment":[{"href":"https:\/\/egany.com\/blogs\/wp-json\/wp\/v2\/media?parent=1140"}],"wp:term":[{"taxonomy":"category","embeddable":true,"href":"https:\/\/egany.com\/blogs\/wp-json\/wp\/v2\/categories?post=1140"},{"taxonomy":"post_tag","embeddable":true,"href":"https:\/\/egany.com\/blogs\/wp-json\/wp\/v2\/tags?post=1140"}],"curies":[{"name":"wp","href":"https:\/\/api.w.org\/{rel}","templated":true}]}}