{"id":34928,"date":"2024-08-28T14:36:40","date_gmt":"2024-08-28T07:36:40","guid":{"rendered":"http:\/\/jupitek.maudemo.vip\/index.php\/2024\/08\/28\/an-introduction-to-infrastructure-as-code\/"},"modified":"2024-08-28T14:36:40","modified_gmt":"2024-08-28T07:36:40","slug":"an-introduction-to-infrastructure-as-code","status":"publish","type":"post","link":"https:\/\/jupitek.maudemo.vip\/index.php\/2024\/08\/28\/an-introduction-to-infrastructure-as-code\/","title":{"rendered":"Gi\u1edbi thi\u1ec7u v\u1ec1 C\u01a1 s\u1edf h\u1ea1 t\u1ea7ng d\u01b0\u1edbi d\u1ea1ng M\u00e3"},"content":{"rendered":"<p><em>C\u01a1 s\u1edf h\u1ea1 t\u1ea7ng d\u01b0\u1edbi d\u1ea1ng M\u00e3<\/em>&nbsp;(IaC) l\u00e0 m\u1ed9t k\u1ef9 thu\u1eadt tri\u1ec3n khai v\u00e0 qu\u1ea3n l\u00fd c\u01a1 s\u1edf h\u1ea1 t\u1ea7ng b\u1eb1ng ph\u1ea7n m\u1ec1m, t\u1ec7p c\u1ea5u h\u00ecnh v\u00e0 c\u00e1c c\u00f4ng c\u1ee5 t\u1ef1 \u0111\u1ed9ng. Chi\u1ebfn l\u01b0\u1ee3c n\u00e0y c\u00f3 th\u1ec3 \u0111\u01b0\u1ee3c s\u1eed d\u1ee5ng cho c\u00e1c thi\u1ebft b\u1ecb nh\u01b0 m\u00e1y ch\u1ee7 web, b\u1ed9 \u0111\u1ecbnh tuy\u1ebfn, c\u01a1 s\u1edf d\u1eef li\u1ec7u, b\u1ed9 c\u00e2n b\u1eb1ng t\u1ea3i v\u00e0 m\u00e1y t\u00ednh c\u00e1 nh\u00e2n, c\u0169ng nh\u01b0 tr\u00ean c\u00e1c d\u1ecbch v\u1ee5 \u0111\u00e1m m\u00e2y. N\u00f3 kh\u00e1c v\u1edbi qu\u1ea3n l\u00fd c\u01a1 s\u1edf h\u1ea1 t\u1ea7ng truy\u1ec1n th\u1ed1ng, d\u1ef1a tr\u00ean c\u1ea5u h\u00ecnh th\u1ee7 c\u00f4ng ho\u1eb7c t\u01b0\u01a1ng t\u00e1c, t\u1eebng thi\u1ebft b\u1ecb m\u1ed9t. IaC bao g\u1ed3m m\u1ed9t ph\u01b0\u01a1ng ph\u00e1p ti\u1ebfp c\u1eadn c\u1ea5p cao \u0111\u1ed1i v\u1edbi c\u01a1 s\u1edf h\u1ea1 t\u1ea7ng v\u00e0 kh\u00f4ng \u0111\u1ec1 c\u1eadp \u0111\u1ebfn m\u1ed9t k\u1ef9 thu\u1eadt, c\u00f4ng c\u1ee5 ho\u1eb7c giao th\u1ee9c c\u1ee5 th\u1ec3 n\u00e0o. H\u01b0\u1edbng d\u1eabn n\u00e0y th\u1ea3o lu\u1eadn v\u1ec1 l\u1ecbch s\u1eed, kh\u00e1i ni\u1ec7m v\u00e0 l\u00fd do \u0111\u1eb1ng sau IaC. N\u00f3 c\u0169ng kh\u00e1m ph\u00e1 c\u00e1c quy\u1ebft \u0111\u1ecbnh tri\u1ec3n khai ch\u00ednh v\u00e0 c\u00e1c c\u00f4ng c\u1ee5 ph\u1ea7n m\u1ec1m c\u00f3 s\u1eb5n.<\/p>\n<h2 id=\"the-history-and-main-concepts-behind-infrastructure-as-code\">L\u1ecbch s\u1eed v\u00e0 c\u00e1c kh\u00e1i ni\u1ec7m ch\u00ednh \u0111\u1eb1ng sau c\u01a1 s\u1edf h\u1ea1 t\u1ea7ng d\u01b0\u1edbi d\u1ea1ng m\u00e3<a href=\"https:\/\/www.linode.com\/docs\/guides\/introduction-to-infrastructure-as-code\/#the-history-and-main-concepts-behind-infrastructure-as-code\"><\/a><\/h2>\n<p>C\u01a1 s\u1edf h\u1ea1 t\u1ea7ng d\u01b0\u1edbi d\u1ea1ng M\u00e3 b\u1eaft ngu\u1ed3n t\u1eeb c\u1ea3m gi\u00e1c th\u1ea5t v\u1ecdng v\u1edbi c\u00e1ch thi\u1ebft b\u1ecb \u0111\u01b0\u1ee3c qu\u1ea3n l\u00fd theo truy\u1ec1n th\u1ed1ng trong c\u00e1c m\u1ea1ng l\u1edbn. V\u1edbi c\u00e1c ph\u01b0\u01a1ng ph\u00e1p c\u0169 h\u01a1n, c\u00e1c k\u1ef9 thu\u1eadt vi\u00ean ph\u1ea3i c\u1ea5u h\u00ecnh thi\u1ebft b\u1ecb theo c\u00e1ch th\u1ee7 c\u00f4ng, c\u00f3 th\u1ec3 l\u00e0 v\u1edbi s\u1ef1 tr\u1ee3 gi\u00fap c\u1ee7a m\u1ed9t c\u00f4ng c\u1ee5 t\u01b0\u01a1ng t\u00e1c. Th\u00f4ng tin \u0111\u01b0\u1ee3c th\u00eam v\u00e0o c\u00e1c t\u1ec7p c\u1ea5u h\u00ecnh b\u1eb1ng tay ho\u1eb7c th\u00f4ng qua vi\u1ec7c s\u1eed d\u1ee5ng c\u00e1c t\u1eadp l\u1ec7nh t\u00f9y \u00fd. Tr\u00ecnh h\u01b0\u1edbng d\u1eabn c\u1ea5u h\u00ecnh v\u00e0 c\u00e1c ti\u1ec7n \u00edch t\u01b0\u01a1ng t\u1ef1 r\u1ea5t h\u1eefu \u00edch, nh\u01b0ng ch\u00fang v\u1eabn y\u00eau c\u1ea7u qu\u1ea3n l\u00fd th\u1ef1c h\u00e0nh. M\u1ed9t nh\u00f3m nh\u1ecf c\u00e1c chuy\u00ean gia s\u1edf h\u1eefu chuy\u00ean m\u00f4n, quy tr\u00ecnh th\u01b0\u1eddng \u0111\u01b0\u1ee3c x\u00e1c \u0111\u1ecbnh k\u00e9m v\u00e0 l\u1ed7i th\u01b0\u1eddng g\u1eb7p.<\/p>\n<p>C\u00e1ch ti\u1ebfp c\u1eadn n\u00e0y t\u1ed1i thi\u1ec3u l\u00e0 \u0111\u1ee7 cho m\u1ed9t t\u1ed5 ch\u1ee9c nh\u1ecf kh\u00f4ng th\u01b0\u1eddng xuy\u00ean th\u00eam, n\u00e2ng c\u1ea5p ho\u1eb7c c\u1ea5u h\u00ecnh l\u1ea1i thi\u1ebft b\u1ecb. Nh\u01b0ng n\u00f3 t\u1ed1n th\u1eddi gian, t\u1ed1n k\u00e9m, t\u00f9y ti\u1ec7n v\u00e0 kh\u00f4ng m\u1edf r\u1ed9ng \u0111\u01b0\u1ee3c. N\u00f3 kh\u00f4ng th\u1ec3 ho\u1ea1t \u0111\u1ed9ng hi\u1ec7u qu\u1ea3 cho m\u1ed9t t\u1ed5 ch\u1ee9c v\u1eadn h\u00e0nh h\u00e0ng ngh\u00ecn m\u00e1y ch\u1ee7.<\/p>\n<p>Sau n\u00e0y, nh\u1eefng ti\u1ebfn b\u1ed9 trong \u0111i\u1ec7n to\u00e1n \u1ea3o v\u00e0 \u0111i\u1ec7n to\u00e1n \u0111\u00e1m m\u00e2y c\u00f9ng c\u00e1c c\u00f4ng c\u1ee5 ph\u1ea7n m\u1ec1m m\u1edbi \u0111\u00e3 d\u1eabn \u0111\u1ebfn m\u1ed9t m\u00f4i tr\u01b0\u1eddng \u00edt ph\u1ee5 thu\u1ed9c h\u01a1n v\u00e0o c\u00e1c thi\u1ebft b\u1ecb v\u1eadt l\u00fd. M\u00e1y ch\u1ee7 hi\u1ec7n c\u00f3 th\u1ec3 \u0111\u01b0\u1ee3c t\u1ea1o, x\u00f3a ho\u1eb7c c\u1ea5u h\u00ecnh l\u1ea1i theo y\u00eau c\u1ea7u m\u00e0 kh\u00f4ng c\u1ea7n can thi\u1ec7p th\u1ee7 c\u00f4ng. S\u1ef1 ph\u00e1t tri\u1ec3n c\u1ee7a \u0111\u01b0\u1eddng \u1ed1ng&nbsp;<em>t\u00edch h\u1ee3p li\u00ean t\u1ee5c v\u00e0 ph\u00e2n ph\u1ed1i li\u00ean t\u1ee5c<\/em>&nbsp;(CI\/CD) \u0111\u00e3 khi\u1ebfn \u00fd t\u01b0\u1edfng coi c\u01a1 s\u1edf h\u1ea1 t\u1ea7ng nh\u01b0 ph\u1ea7n m\u1ec1m tr\u1edf n\u00ean h\u1ea5p d\u1eabn h\u01a1n nhi\u1ec1u.<\/p>\n<p>V\u1edbi IaC, c\u01a1 s\u1edf h\u1ea1 t\u1ea7ng \u0111\u01b0\u1ee3c cung c\u1ea5p \u0111\u1ed9c quy\u1ec1n th\u00f4ng qua t\u1ef1 \u0111\u1ed9ng h\u00f3a. C\u00e1c quy tr\u00ecnh IaC s\u1eed d\u1ee5ng c\u00e1c t\u1ec7p c\u1ea5u h\u00ecnh, t\u1ec7p \u0111\u1ecbnh ngh\u0129a v\u00e0 t\u1eadp l\u1ec7nh, nh\u01b0 m\u1ed9t ph\u1ea7n c\u1ee7a quy tr\u00ecnh \u0111\u01b0\u1ee3c l\u1eadp k\u1ebf ho\u1ea1ch tr\u01b0\u1edbc v\u00e0 \u0111\u01b0\u1ee3c qu\u1ea3n l\u00fd ch\u1eb7t ch\u1ebd. C\u00e1c nh\u00f3m ph\u00e1t tri\u1ec3n v\u00e0 v\u1eadn h\u00e0nh, \u0111\u01b0\u1ee3c g\u1ecdi chung l\u00e0&nbsp;<em>DevOps<\/em>&nbsp;, l\u00e0m vi\u1ec7c c\u00f9ng nhau \u0111\u1ec3 x\u00e1c \u0111\u1ecbnh chi\u1ebfn l\u01b0\u1ee3c cho m\u1ea1ng. C\u01a1 s\u1edf h\u1ea1 t\u1ea7ng d\u01b0\u1edbi d\u1ea1ng M\u00e3 t\u1eadn d\u1ee5ng quy tr\u00ecnh ph\u00e1t tri\u1ec3n ph\u1ea7n m\u1ec1m, s\u1eed d\u1ee5ng c\u00e1c k\u1ef9 thu\u1eadt \u0111\u1ea3m b\u1ea3o ch\u1ea5t l\u01b0\u1ee3ng v\u00e0 t\u1ef1 \u0111\u1ed9ng h\u00f3a th\u1eed nghi\u1ec7m. C\u00e1c thay \u0111\u1ed5i \u0111\u1ed1i v\u1edbi c\u1ea5u h\u00ecnh \u0111\u01b0\u1ee3c th\u1ef1c hi\u1ec7n th\u00f4ng qua c\u00e1c thay \u0111\u1ed5i \u0111\u1ed1i v\u1edbi ph\u1ea7n m\u1ec1m ch\u1ee9 kh\u00f4ng ph\u1ea3i th\u00f4ng qua c\u00e1c thay \u0111\u1ed5i th\u1ee7 c\u00f4ng \u0111\u1ed1i v\u1edbi c\u01a1 s\u1edf h\u1ea1 t\u1ea7ng.<\/p>\n<h2 id=\"reasons-for-deploying-infrastructure-as-code\">L\u00fd do tri\u1ec3n khai c\u01a1 s\u1edf h\u1ea1 t\u1ea7ng d\u01b0\u1edbi d\u1ea1ng m\u00e3<a href=\"https:\/\/www.linode.com\/docs\/guides\/introduction-to-infrastructure-as-code\/#reasons-for-deploying-infrastructure-as-code\"><\/a><\/h2>\n<p>C\u01a1 s\u1edf h\u1ea1 t\u1ea7ng nh\u01b0 B\u1ed9 lu\u1eadt \u0111\u01b0\u1ee3c th\u00fac \u0111\u1ea9y b\u1edfi m\u1ed9t s\u1ed1 m\u1ee5c ti\u00eau kinh doanh ch\u00ednh. M\u1ee5c ti\u00eau quan tr\u1ecdng nh\u1ea5t trong s\u1ed1 n\u00e0y l\u00e0 ki\u1ec3m so\u00e1t chi ph\u00ed, gi\u1ea3m r\u1ee7i ro, tri\u1ec3n khai nhanh ch\u00f3ng v\u00e0 th\u1ef1c thi ph\u01b0\u01a1ng ph\u00e1p ti\u1ebfp c\u1eadn chu\u1ea9n h\u00f3a nh\u1ea5t qu\u00e1n.<\/p>\n<h3 id=\"cost\">Tr\u1ecb gi\u00e1<a href=\"https:\/\/www.linode.com\/docs\/guides\/introduction-to-infrastructure-as-code\/#cost\"><\/a><\/h3>\n<p>C\u1ea5u h\u00ecnh th\u1ee7 c\u00f4ng l\u00e0 m\u1ed9t ho\u1ea1t \u0111\u1ed9ng t\u1ed1n k\u00e9m. N\u00f3 \u0111\u00f2i h\u1ecfi s\u1ef1 hi\u1ec7n di\u1ec7n c\u1ee7a m\u1ed9t k\u1ef9 thu\u1eadt vi\u00ean l\u00e0nh ngh\u1ec1, ng\u01b0\u1eddi \u0111\u01b0\u1ee3c tr\u1ea3 l\u01b0\u01a1ng chuy\u00ean nghi\u1ec7p. M\u1ed7i nh\u00e2n vi\u00ean ch\u1ec9 c\u00f3 th\u1ec3 c\u1ea5u h\u00ecnh m\u1ed9t th\u00e0nh ph\u1ea7n t\u1ea1i m\u1ed9t th\u1eddi \u0111i\u1ec3m v\u00e0 m\u1ed7i thi\u1ebft l\u1eadp ph\u1ea3i \u0111\u01b0\u1ee3c g\u1ee1 l\u1ed7i ri\u00eang l\u1ebb. C\u00e1ch duy nh\u1ea5t \u0111\u1ec3 t\u0103ng t\u1ed1c m\u1ecdi th\u1ee9 l\u00e0 thu\u00ea th\u00eam ng\u01b0\u1eddi.<\/p>\n<p>Ng\u01b0\u1ee3c l\u1ea1i, ph\u01b0\u01a1ng ph\u00e1p t\u1ef1 \u0111\u1ed9ng h\u00f3a c\u1ee7a IaC ban \u0111\u1ea7u t\u1ed1n k\u00e9m h\u01a1n nh\u01b0ng ti\u1ebft ki\u1ec7m ti\u1ec1n v\u1ec1 l\u00e2u d\u00e0i. C\u00e1c k\u1ef9 thu\u1eadt IaC lo\u1ea1i b\u1ecf c\u00e1c nhi\u1ec7m v\u1ee5 t\u1ea7m th\u01b0\u1eddng v\u00e0 l\u1eb7p \u0111i l\u1eb7p l\u1ea1i, cho ph\u00e9p nh\u00e2n vi\u00ean chuy\u00ean nghi\u1ec7p t\u1eadp trung v\u00e0o c\u00e1c ho\u1ea1t \u0111\u1ed9ng c\u00f3 l\u1ee3i nhu\u1eadn cao h\u01a1n v\u00e0 bi\u00ean l\u1ee3i nhu\u1eadn cao h\u01a1n. C\u00e1c c\u00f4ng ty c\u00f3 th\u1ec3 ho\u00e0n th\u00e0nh nhi\u1ec1u vi\u1ec7c h\u01a1n v\u1edbi c\u00f9ng m\u1ed9t ng\u00e2n s\u00e1ch.<\/p>\n<h3 id=\"speed\">T\u1ed1c \u0111\u1ed9<a href=\"https:\/\/www.linode.com\/docs\/guides\/introduction-to-infrastructure-as-code\/#speed\"><\/a><\/h3>\n<p>Ngo\u00e0i vi\u1ec7c t\u1ed1n k\u00e9m, c\u1ea5u h\u00ecnh th\u1ee7 c\u00f4ng c\u0169ng r\u1ea5t ch\u1eadm. Kh\u00f4ng c\u00f3 c\u00e1ch n\u00e0o \u0111\u1ec3 tri\u1ec3n khai ngay l\u1eadp t\u1ee9c h\u00e0ng tr\u0103m thi\u1ebft b\u1ecb m\u1edbi v\u00e0 kh\u00f4ng th\u1ec3 thay \u0111\u1ed5i ho\u1eb7c n\u00e2ng c\u1ea5p m\u1ea1ng k\u1ecbp th\u1eddi.<\/p>\n<p>V\u1edbi IaC, c\u00e1c t\u1eadp l\u1ec7nh v\u00e0 t\u1ec7p c\u1ea5u h\u00ecnh cho ph\u00e9p k\u00edch ho\u1ea1t nhanh ch\u00f3ng c\u01a1 s\u1edf h\u1ea1 t\u1ea7ng v\u00e0 thay \u0111\u1ed5i g\u1ea7n nh\u01b0 ngay l\u1eadp t\u1ee9c \u0111\u1ed1i v\u1edbi c\u00e1c m\u1ea1ng hi\u1ec7n c\u00f3. Vi\u1ec7c ph\u00e1t tri\u1ec3n v\u00e0 th\u1eed nghi\u1ec7m c\u00e1c thay \u0111\u1ed5i nh\u1ecf \u0111\u1ed1i v\u1edbi c\u01a1 s\u1edf m\u00e3 v\u00e0 ch\u1ee7 \u0111\u1ed9ng ph\u00e2n ph\u1ed1i c\u00e1c b\u1ea3n c\u1eadp nh\u1eadt d\u1ec5 d\u00e0ng v\u00e0 nhanh h\u01a1n nhi\u1ec1u. H\u1ec7 th\u1ed1ng c\u00f3 th\u1ec3 \u0111\u01b0\u1ee3c thi\u1ebft l\u1eadp theo nhu c\u1ea7u, gi\u1ea3m chi ph\u00ed cho vi\u1ec7c t\u1ea1o m\u1eabu v\u00e0 th\u1eed nghi\u1ec7m tu\u00e2n th\u1ee7. V\u00ec c\u00e1c thay \u0111\u1ed5i c\u00f3 th\u1ec3 \u0111\u01b0\u1ee3c \u0111\u1ea9y ra r\u1ea5t nhanh n\u00ean th\u1eddi gian b\u1ea3o tr\u00ec c\u00f3 th\u1ec3 nh\u1ecf h\u01a1n nhi\u1ec1u v\u00e0 th\u01b0\u1eddng xuy\u00ean h\u01a1n.<\/p>\n<h3 id=\"risk\">R\u1ee7i ro<a href=\"https:\/\/www.linode.com\/docs\/guides\/introduction-to-infrastructure-as-code\/#risk\"><\/a><\/h3>\n<p>Cho d\u00f9 m\u1ecdi ng\u01b0\u1eddi c\u00f3 c\u1ea9n th\u1eadn \u0111\u1ebfn \u0111\u00e2u, l\u1ed7i c\u1ea5u h\u00ecnh v\u1eabn c\u00f3 nhi\u1ec1u kh\u1ea3 n\u0103ng x\u1ea3y ra h\u01a1n khi s\u1eed d\u1ee5ng ph\u01b0\u01a1ng ph\u00e1p th\u1ee7 c\u00f4ng. N\u1ebfu ph\u00e1t hi\u1ec7n ra v\u1ea5n \u0111\u1ec1 sau n\u00e0y, c\u1ea5u h\u00ecnh c\u00f3 th\u1ec3 \u0111\u01b0\u1ee3c thay \u0111\u1ed5i th\u00eam \u0111\u1ec3 c\u1ed1 g\u1eafng kh\u1eafc ph\u1ee5c s\u1ef1 c\u1ed1. C\u00e1c chi ti\u1ebft kh\u00f4ng li\u00ean quan c\u00f3 th\u1ec3 \u0111\u01b0\u1ee3c th\u00eam v\u00e0o ho\u1eb7c c\u00e1c t\u00ednh n\u0103ng quan tr\u1ecdng v\u00f4 t\u00ecnh b\u1ecb x\u00f3a. Khi k\u1ebft th\u00fac ho\u1ea1t \u0111\u1ed9ng, c\u1ea5u h\u00ecnh c\u00f3 th\u1ec3 r\u1ea5t kh\u00e1c so v\u1edbi d\u1ef1 \u0111\u1ecbnh.<\/p>\n<p>V\u00ec \u00e1p d\u1ee5ng ph\u01b0\u01a1ng ph\u00e1p ti\u1ebfp c\u1eadn c\u00f3 ph\u01b0\u01a1ng ph\u00e1p v\u00e0 \u0111\u01b0\u1ee3c ki\u1ec3m tra k\u1ef9 l\u01b0\u1ee1ng, IaC gi\u1ea3m thi\u1ec3u \u0111\u00e1ng k\u1ec3 kh\u1ea3 n\u0103ng x\u1ea3y ra l\u1ed7i v\u00e0 gi\u1ea3m r\u1ee7i ro. B\u1ea5t k\u1ef3 v\u1ea5n \u0111\u1ec1 r\u00f5 r\u00e0ng n\u00e0o c\u0169ng \u0111\u01b0\u1ee3c ph\u00e1t hi\u1ec7n s\u1edbm h\u01a1n nhi\u1ec1u trong chu k\u1ef3 ph\u00e1t tri\u1ec3n. IaC c\u0169ng gi\u00fap s\u1eeda l\u1ed7i d\u1ec5 d\u00e0ng h\u01a1n, cho ph\u00e9p c\u00e1c nh\u00e0 ph\u00e1t tri\u1ec3n nhanh ch\u00f3ng thay \u0111\u1ed5i, ki\u1ec3m tra v\u00e0 tri\u1ec3n khai m\u00e3 ngu\u1ed3n.<\/p>\n<h3 id=\"consistencystandardization\">S\u1ef1 nh\u1ea5t qu\u00e1n\/Chu\u1ea9n h\u00f3a<a href=\"https:\/\/www.linode.com\/docs\/guides\/introduction-to-infrastructure-as-code\/#consistencystandardization\"><\/a><\/h3>\n<p>N\u1ebfu kh\u00f4ng c\u00f3 quy tr\u00ecnh chu\u1ea9n h\u00f3a, c\u00e1c k\u1ef9 thu\u1eadt vi\u00ean c\u00f3 th\u1ec3 c\u1ea5u h\u00ecnh m\u1ecdi th\u1ee9 theo th\u1ee9 t\u1ef1 kh\u00e1c nhau ho\u1eb7c s\u1eed d\u1ee5ng c\u00e1c ph\u01b0\u01a1ng ph\u00e1p kh\u00e1c nhau \u0111\u1ec3 c\u00f3 \u0111\u01b0\u1ee3c c\u00f9ng m\u1ed9t k\u1ebft qu\u1ea3. M\u1ed7i n\u00fat trong m\u1ea1ng tr\u1edf th\u00e0nh th\u1ee9 \u0111\u01b0\u1ee3c g\u1ecdi l\u00e0&nbsp;<em>b\u00f4ng tuy\u1ebft<\/em>&nbsp;, v\u1edbi c\u00e1c thi\u1ebft l\u1eadp ri\u00eang bi\u1ec7t. \u0110i\u1ec1u n\u00e0y d\u1eabn \u0111\u1ebfn tr\u1ea1ng th\u00e1i h\u1ec7 th\u1ed1ng kh\u00f4ng d\u1ec5 t\u00e1i t\u1ea1o v\u00e0 kh\u00f3 g\u1ee1 l\u1ed7i. C\u00f3 th\u1ec3 th\u1ef1c hi\u1ec7n c\u00e1c thay \u0111\u1ed5i v\u1ec1 c\u1ea5u h\u00ecnh m\u00e0 kh\u00f4ng c\u00f3 \u0111\u1ee7 hi\u1ec3u bi\u1ebft ho\u1eb7c th\u1ea3o lu\u1eadn v\u1ec1 thi\u1ebft k\u1ebf ban \u0111\u1ea7u ho\u1eb7c c\u00e1c t\u00e1c \u0111\u1ed9ng. Ph\u01b0\u01a1ng ph\u00e1p tri\u1ec3n khai c\u00f3 th\u1ec3 thay \u0111\u1ed5i theo th\u1eddi gian, d\u1eabn \u0111\u1ebfn s\u1ef1 ch\u00eanh l\u1ec7ch l\u1edbn gi\u1eefa thi\u1ebft b\u1ecb c\u0169 v\u00e0 m\u1edbi. Xu h\u01b0\u1edbng m\u1ea1ng ph\u00e2n k\u1ef3 theo th\u1eddi gian n\u00e0y \u0111\u01b0\u1ee3c g\u1ecdi l\u00e0&nbsp;<em>tr\u00f4i m\u1ea1ng<\/em>&nbsp;, c\u00f3 th\u1ec3 l\u00e0 ngu\u1ed3n g\u00e2y m\u1ea5t \u1ed5n \u0111\u1ecbnh \u0111\u00e1ng k\u1ec3 trong m\u1ea1ng.<\/p>\n<p>V\u1edbi c\u00e1c t\u1ec7p c\u1ea5u h\u00ecnh chu\u1ea9n v\u00e0 c\u1ea5u h\u00ecnh d\u1ef1a tr\u00ean ph\u1ea7n m\u1ec1m, c\u00f3 t\u00ednh nh\u1ea5t qu\u00e1n cao h\u01a1n gi\u1eefa t\u1ea5t c\u1ea3 c\u00e1c thi\u1ebft b\u1ecb c\u00f9ng lo\u1ea1i. M\u1ed9t kh\u00e1i ni\u1ec7m ch\u00ednh c\u1ee7a IaC l\u00e0&nbsp;<em>t\u00ednh b\u1ea5t bi\u1ebfn<\/em>&nbsp;. \u0110i\u1ec1u n\u00e0y c\u00f3 ngh\u0129a l\u00e0 m\u1ed9t thi\u1ebft b\u1ecb nh\u1ea5t \u0111\u1ecbnh lu\u00f4n chuy\u1ec3n sang c\u00f9ng m\u1ed9t tr\u1ea1ng th\u00e1i khi c\u00f3 c\u00f9ng c\u00e1c \u0111i\u1ec1u ki\u1ec7n ti\u00ean quy\u1ebft. T\u00ednh b\u1ea5t bi\u1ebfn gi\u00fap d\u1ec5 d\u00e0ng kh\u1eafc ph\u1ee5c s\u1ef1 c\u1ed1, ki\u1ec3m tra, \u1ed5n \u0111\u1ecbnh v\u00e0 n\u00e2ng c\u1ea5p t\u1ea5t c\u1ea3 c\u00e1c thi\u1ebft b\u1ecb. M\u1ea1ng c\u00f3 kh\u1ea3 n\u0103ng ho\u1ea1t \u0111\u1ed9ng theo nh\u1eefng c\u00e1ch c\u00f3 th\u1ec3 d\u1ef1 \u0111o\u00e1n \u0111\u01b0\u1ee3c khi ch\u1ecbu \u00e1p l\u1ef1c ho\u1eb7c \u0111\u1ec3 ph\u1ea3n \u1ee9ng v\u1edbi c\u00e1c \u0111i\u1ec1u ki\u1ec7n thay \u0111\u1ed5i. M\u1ed9t thi\u1ebft l\u1eadp nh\u1ea5t qu\u00e1n c\u0169ng c\u00f3 kh\u1ea3 n\u0103ng chu\u1ea9n h\u00f3a vi\u1ec7c ghi nh\u1eadt k\u00fd v\u00e0 x\u1eed l\u00fd l\u1ed7i \u0111\u1ec3 h\u1ed7 tr\u1ee3 kh\u1eafc ph\u1ee5c s\u1ef1 c\u1ed1 v\u00e0 gi\u1ea3m thi\u1ec3u c\u00e1c l\u1ed7 h\u1ed5ng b\u1ea3o m\u1eadt. IaC l\u00e0m gi\u1ea3m t\u01b0\u01a1ng t\u00e1c gi\u1eefa c\u00e1c thi\u1ebft b\u1ecb c\u00f3 c\u1ea5u h\u00ecnh kh\u00f4ng kh\u1edbp ho\u1eb7c ch\u1ea1y c\u00e1c phi\u00ean b\u1ea3n ph\u1ea7n m\u1ec1m kh\u00e1c nhau. N\u00f3 cho ph\u00e9p c\u00e1c nh\u00f3m chia s\u1ebb m\u00e3 v\u00e0 gi\u00fap ph\u00e2n chia v\u00e0 ph\u00e2n v\u00f9ng c\u00e1c t\u00e1c v\u1ee5 d\u1ec5 d\u00e0ng h\u01a1n.<\/p>\n<h2 id=\"infrastructure-as-code-and-devops\">C\u01a1 s\u1edf h\u1ea1 t\u1ea7ng d\u01b0\u1edbi d\u1ea1ng m\u00e3 v\u00e0 DevOps<a href=\"https:\/\/www.linode.com\/docs\/guides\/introduction-to-infrastructure-as-code\/#infrastructure-as-code-and-devops\"><\/a><\/h2>\n<p>C\u01a1 s\u1edf h\u1ea1 t\u1ea7ng d\u01b0\u1edbi d\u1ea1ng M\u00e3 l\u00e0 c\u1ed1t l\u00f5i c\u1ee7a v\u0103n h\u00f3a DevOps, l\u00e0 s\u1ef1 k\u1ebft h\u1ee3p gi\u1eefa ph\u00e1t tri\u1ec3n v\u00e0 v\u1eadn h\u00e0nh. S\u1ef1 t\u00edch h\u1ee3p ch\u1eb7t ch\u1ebd h\u01a1n gi\u1eefa c\u00e1c nh\u00f3m ph\u1ea7n m\u1ec1m v\u00e0 c\u01a1 s\u1edf h\u1ea1 t\u1ea7ng s\u1ebd th\u1ed1ng nh\u1ea5t c\u00e1c ho\u1ea1t \u0111\u1ed9ng trong to\u00e0n b\u1ed9 t\u1ed5 ch\u1ee9c v\u00e0 k\u1ebft n\u1ed1i c\u00e1c tri\u1ec3n khai m\u1ea1ng tr\u1edf l\u1ea1i v\u1edbi quy tr\u00ecnh CI\/CD. IaC mang l\u1ea1i l\u1ee3i nhu\u1eadn cao cho c\u00e1c t\u1ed5 ch\u1ee9c l\u1edbn c\u00e0i \u0111\u1eb7t h\u00e0ng tr\u0103m thi\u1ebft b\u1ecb m\u1ed7i ng\u00e0y v\u00e0 nh\u1eefng t\u1ed5 ch\u1ee9c chuy\u00ean cung c\u1ea5p thi\u1ebft b\u1ecb v\u00e0 d\u1ecbch v\u1ee5 m\u1ea1ng. Tuy nhi\u00ean, ngay c\u1ea3 c\u00e1c c\u00f4ng ty ph\u00e1t tri\u1ec3n ph\u1ea7n m\u1ec1m nh\u1ecf h\u01a1n c\u0169ng c\u00f3 th\u1ec3 s\u1eed d\u1ee5ng c\u00e1c k\u1ef9 thu\u1eadt n\u00e0y \u0111\u1ec3 thi\u1ebft l\u1eadp v\u00e0 duy tr\u00ec ph\u00f2ng th\u00ed nghi\u1ec7m c\u1ee7a ri\u00eang h\u1ecd.<\/p>\n<p>M\u1ed9t trong nh\u1eefng l\u1ee3i th\u1ebf quan tr\u1ecdng nh\u1ea5t c\u1ee7a IaC l\u00e0 k\u1ebft n\u1ed1i v\u1edbi t\u1ef1 \u0111\u1ed9ng h\u00f3a, \u0111\u1ea3m b\u1ea3o ch\u1ea5t l\u01b0\u1ee3ng v\u00e0 ki\u1ec3m so\u00e1t phi\u00ean b\u1ea3n. R\u1ea5t kh\u00f3 \u0111\u1ec3 t\u00edch h\u1ee3p c\u00e1c ho\u1ea1t \u0111\u1ed9ng n\u00e0y theo b\u1ea5t k\u1ef3 c\u00e1ch n\u00e0o kh\u00e1c. Thay \u0111\u1ed5i ph\u1ea7n m\u1ec1m tr\u01b0\u1edbc ti\u00ean c\u00f3 th\u1ec3 \u0111\u01b0\u1ee3c x\u00e1c minh th\u00f4ng qua c\u00e1c t\u1eadp l\u1ec7nh h\u1ed3i quy v\u00e0 th\u1eed nghi\u1ec7m t\u1ef1 \u0111\u1ed9ng, cho ph\u00e9p n\u00e2ng c\u1ea5p \u0111\u00e1ng tin c\u1eady. C\u00e1c m\u00f4 h\u00ecnh s\u1ea3n xu\u1ea5t v\u00e0 nguy\u00ean m\u1eabu c\u00f3 th\u1ec3 \u0111\u01b0\u1ee3c th\u1eed nghi\u1ec7m s\u1edbm h\u01a1n, tr\u01b0\u1edbc khi tri\u1ec3n khai r\u1ed9ng r\u00e3i. T\u1ef1 \u0111\u1ed9ng h\u00f3a cho ph\u00e9p x\u00e1c th\u1ef1c \u0111\u1ea7y \u0111\u1ee7 c\u00e1c tr\u01b0\u1eddng h\u1ee3p g\u00f3c c\u1ea1nh, c\u0169ng nh\u01b0 c\u00e1c t\u00ecnh hu\u1ed1ng \u0111\u1eb7c bi\u1ec7t nh\u01b0 th\u00e1o d\u1ee1, c\u1ea5u h\u00ecnh l\u1ea1i v\u00e0 th\u1eed nghi\u1ec7m \u1ee9ng su\u1ea5t.<\/p>\n<p>N\u1ebfu c\u00f3 v\u1ea5n \u0111\u1ec1 x\u1ea3y ra, vi\u1ec7c kh\u00f4i ph\u1ee5c s\u1ea3n xu\u1ea5t v\u1ec1 phi\u00ean b\u1ea3n \u1ed5n \u0111\u1ecbnh g\u1ea7n \u0111\u00e2y nh\u1ea5t l\u00e0 \u0111i\u1ec1u d\u1ec5 d\u00e0ng. Trong tr\u01b0\u1eddng h\u1ee3p c\u00f3 v\u1ea5n \u0111\u1ec1, c\u00e1c ch\u1ec9nh s\u1eeda lu\u00f4n \u0111\u01b0\u1ee3c th\u1ef1c hi\u1ec7n \u0111\u1ed1i v\u1edbi c\u00e1c t\u1ec7p c\u1ea5u h\u00ecnh ngu\u1ed3n, kh\u00f4ng bao gi\u1edd \u0111\u01b0\u1ee3c th\u1ef1c hi\u1ec7n \u0111\u1ed1i v\u1edbi m\u1ee5c ti\u00eau. B\u1ea3n v\u00e1 ch\u1ec9 \u0111\u01b0\u1ee3c tri\u1ec3n khai khi n\u00f3 \u0111\u00e3 s\u1eb5n s\u00e0ng v\u00e0 QA \u0111\u00e3 k\u00fd v\u00e0o c\u00e1c thay \u0111\u1ed5i. C\u00e1c t\u1ec7p c\u1ea5u h\u00ecnh th\u01b0\u1eddng \u0111\u01b0\u1ee3c th\u00eam v\u00e0o c\u00f9ng m\u1ed9t h\u1ec7 th\u1ed1ng ki\u1ec3m so\u00e1t phi\u00ean b\u1ea3n \u0111\u01b0\u1ee3c s\u1eed d\u1ee5ng \u0111\u1ec3 ph\u00e1t tri\u1ec3n ph\u1ea7n m\u1ec1m. \u0110i\u1ec1u n\u00e0y gi\u00fap d\u1ec5 d\u00e0ng kh\u00f4i ph\u1ee5c c\u00e1c thay \u0111\u1ed5i v\u1ec1 ph\u1ea7n m\u1ec1m v\u00e0 c\u1ea5u h\u00ecnh c\u00f9ng nhau ho\u1eb7c t\u1ea1o m\u1ed9t nh\u00e1nh \u0111\u1ec3 ph\u00e1t tri\u1ec3n ho\u1eb7c t\u1ea1o nguy\u00ean m\u1eabu ban \u0111\u1ea7u.<\/p>\n<h2 id=\"infrastructure-as-code-design-decisions\">Quy\u1ebft \u0111\u1ecbnh thi\u1ebft k\u1ebf c\u01a1 s\u1edf h\u1ea1 t\u1ea7ng theo m\u00e3<a href=\"https:\/\/www.linode.com\/docs\/guides\/introduction-to-infrastructure-as-code\/#infrastructure-as-code-design-decisions\"><\/a><\/h2>\n<p>Tri\u1ebft l\u00fd C\u01a1 s\u1edf h\u1ea1 t\u1ea7ng nh\u01b0 M\u00e3 quy \u0111\u1ecbnh m\u1ed9t quy tr\u00ecnh c\u1ea5p cao nh\u1ea5t \u0111\u1ecbnh, nh\u01b0ng cung c\u1ea5p nhi\u1ec1u t\u00ednh linh ho\u1ea1t h\u01a1n li\u00ean quan \u0111\u1ebfn c\u00e1c chi ti\u1ebft c\u1ee5 th\u1ec3. Tuy nhi\u00ean, m\u1ed9t k\u1ebf ho\u1ea1ch th\u00e0nh c\u00f4ng ph\u1ea3i gi\u1ea3i quy\u1ebft \u0111\u01b0\u1ee3c m\u1ed9t s\u1ed1 y\u1ebfu t\u1ed1 c\u1ea5p th\u1ea5p. Nh\u1eefng quy\u1ebft \u0111\u1ecbnh n\u00e0y c\u00f3 th\u1ec3 kh\u00e1c nhau gi\u1eefa c\u00e1c c\u00f4ng ty d\u1ef1a tr\u00ean c\u00e1c y\u00eau c\u1ea7u v\u00e0 ngu\u1ed3n l\u1ef1c c\u1ee5 th\u1ec3 c\u1ee7a h\u1ecd.<\/p>\n<h3 id=\"declarative-versus-imperative-approaches\">C\u00e1ch ti\u1ebfp c\u1eadn mang t\u00ednh tuy\u00ean b\u1ed1 so v\u1edbi c\u00e1ch ti\u1ebfp c\u1eadn mang t\u00ednh m\u1ec7nh l\u1ec7nh<a href=\"https:\/\/www.linode.com\/docs\/guides\/introduction-to-infrastructure-as-code\/#declarative-versus-imperative-approaches\"><\/a><\/h3>\n<p>M\u1ed9t c\u00e1ch ti\u1ebfp c\u1eadn khai b\u00e1o m\u00f4 t\u1ea3 tr\u1ea1ng th\u00e1i cu\u1ed1i c\u00f9ng c\u1ee7a m\u1ed9t thi\u1ebft b\u1ecb, nh\u01b0ng kh\u00f4ng ch\u1ec9 \u0111\u1ecbnh c\u00e1ch th\u1ee9c n\u00f3 s\u1ebd \u0111\u1ea1t \u0111\u01b0\u1ee3c tr\u1ea1ng th\u00e1i \u0111\u00f3. C\u00f4ng c\u1ee5 IaC c\u1ee5 th\u1ec3 \u0111\u01b0a ra t\u1ea5t c\u1ea3 c\u00e1c quy\u1ebft \u0111\u1ecbnh v\u1ec1 th\u1ee7 t\u1ee5c. Tr\u1ea1ng th\u00e1i cu\u1ed1i th\u01b0\u1eddng \u0111\u01b0\u1ee3c x\u00e1c \u0111\u1ecbnh th\u00f4ng qua t\u1ec7p c\u1ea5u h\u00ecnh, th\u00f4ng s\u1ed1 k\u1ef9 thu\u1eadt JSON ho\u1eb7c m\u00e3 h\u00f3a t\u01b0\u01a1ng t\u1ef1.<\/p>\n<p>M\u1ed9t c\u00e1ch ti\u1ebfp c\u1eadn b\u1eaft bu\u1ed9c x\u00e1c \u0111\u1ecbnh c\u00e1c ch\u1ee9c n\u0103ng ho\u1eb7c quy tr\u00ecnh c\u1ee5 th\u1ec3 ph\u1ea3i \u0111\u01b0\u1ee3c s\u1eed d\u1ee5ng \u0111\u1ec3 c\u1ea5u h\u00ecnh thi\u1ebft b\u1ecb. N\u00f3 t\u1eadp trung v\u00e0o nh\u1eefng g\u00ec ph\u1ea3i x\u1ea3y ra, nh\u01b0ng kh\u00f4ng nh\u1ea5t thi\u1ebft ph\u1ea3i m\u00f4 t\u1ea3 tr\u1ea1ng th\u00e1i cu\u1ed1i c\u00f9ng. C\u00e1c k\u1ef9 thu\u1eadt b\u1eaft bu\u1ed9c th\u01b0\u1eddng s\u1eed d\u1ee5ng c\u00e1c t\u1eadp l\u1ec7nh \u0111\u1ec3 tri\u1ec3n khai. C\u00e1ch ti\u1ebfp c\u1eadn n\u00e0y c\u00f3 th\u1ec3 \u0111\u01b0\u1ee3c s\u1eed d\u1ee5ng \u0111\u1ec3 t\u1eadn d\u1ee5ng c\u00e1c c\u00f4ng c\u1ee5 v\u00e0 ph\u1ea7n m\u1ec1m c\u0169 v\u00e0 c\u00f3 th\u1ec3 l\u00e0 b\u01b0\u1edbc \u0111\u1ea7u ti\u00ean t\u1ed1t h\u01b0\u1edbng t\u1edbi IaC cho m\u1ed9t t\u1ed5 ch\u1ee9c truy\u1ec1n th\u1ed1ng.<\/p>\n<h3 id=\"push-versus-pull-distribution\">Ph\u00e2n ph\u1ed1i \u0111\u1ea9y v\u00e0 k\u00e9o<a href=\"https:\/\/www.linode.com\/docs\/guides\/introduction-to-infrastructure-as-code\/#push-versus-pull-distribution\"><\/a><\/h3>\n<p>V\u1edbi c\u1ea5u h\u00ecnh \u0111\u1ea9y, m\u00e1y ch\u1ee7 trung t\u00e2m \u0111\u1ea9y c\u1ea5u h\u00ecnh \u0111\u1ebfn thi\u1ebft b\u1ecb \u0111\u00edch. Trong c\u1ea5u h\u00ecnh k\u00e9o, m\u1ed7i thi\u1ebft b\u1ecb y\u00eau c\u1ea7u c\u1ea5u h\u00ecnh ri\u00eang c\u1ee7a m\u00ecnh t\u1eeb \u0111i\u1ec3m ph\u00e2n ph\u1ed1i trung t\u00e2m.<\/p>\n<h3 id=\"mutable-versus-immutable-infrastructure\">C\u01a1 s\u1edf h\u1ea1 t\u1ea7ng c\u00f3 th\u1ec3 thay \u0111\u1ed5i so v\u1edbi c\u01a1 s\u1edf h\u1ea1 t\u1ea7ng kh\u00f4ng th\u1ec3 thay \u0111\u1ed5i<a href=\"https:\/\/www.linode.com\/docs\/guides\/introduction-to-infrastructure-as-code\/#mutable-versus-immutable-infrastructure\"><\/a><\/h3>\n<p>N\u1ebfu m\u1ed9t thi\u1ebft b\u1ecb c\u00f3 th\u1ec3 thay \u0111\u1ed5i, c\u1ea5u h\u00ecnh c\u1ee7a thi\u1ebft b\u1ecb \u0111\u00f3 c\u00f3 th\u1ec3 \u0111\u01b0\u1ee3c thay \u0111\u1ed5i trong khi thi\u1ebft b\u1ecb \u0111ang ho\u1ea1t \u0111\u1ed9ng. C\u00e1ch ti\u1ebfp c\u1eadn n\u00e0y cho ph\u00e9p n\u00e2ng c\u1ea5p v\u00e0 thay \u0111\u1ed5i trong khi \u0111ang ho\u1ea1t \u0111\u1ed9ng. C\u00e1c thi\u1ebft b\u1ecb kh\u00f4ng th\u1ec3 thay \u0111\u1ed5i kh\u00f4ng th\u1ec3 thay \u0111\u1ed5i. Ch\u00fang ph\u1ea3i \u0111\u01b0\u1ee3c ng\u1eebng ho\u1ea1t \u0111\u1ed9ng ho\u1eb7c kh\u1edfi \u0111\u1ed9ng l\u1ea1i v\u00e0 sau \u0111\u00f3 \u0111\u01b0\u1ee3c x\u00e2y d\u1ef1ng l\u1ea1i ho\u00e0n to\u00e0n. \u0110i\u1ec1u n\u00e0y c\u00f3 v\u1ebb r\u1ea5t \u1ea5n t\u01b0\u1ee3ng, nh\u01b0ng c\u00e1ch ti\u1ebfp c\u1eadn kh\u00f4ng th\u1ec3 thay \u0111\u1ed5i c\u00f3 \u00fd ngh\u0129a \u0111\u1ed1i v\u1edbi c\u01a1 s\u1edf h\u1ea1 t\u1ea7ng \u1ea3o. B\u1eb1ng c\u00e1ch lo\u1ea1i b\u1ecf kh\u1ea3 n\u0103ng thay \u0111\u1ed5i m\u1ed9t ph\u1ea7n ho\u1eb7c kh\u00f4ng \u0111\u1ea7y \u0111\u1ee7, c\u00e1ch ti\u1ebfp c\u1eadn kh\u00f4ng th\u1ec3 thay \u0111\u1ed5i \u0111\u1ea3m b\u1ea3o t\u00ednh nh\u1ea5t qu\u00e1n v\u00e0 tr\u00e1nh tr\u00f4i d\u1ea1t. Tuy nhi\u00ean, th\u01b0\u1eddng m\u1ea5t nhi\u1ec1u th\u1eddi gian h\u01a1n \u0111\u1ec3 x\u00f3a ho\u1eb7c x\u00e2y d\u1ef1ng l\u1ea1i c\u1ea5u h\u00ecnh so v\u1edbi vi\u1ec7c thay \u0111\u1ed5i c\u1ea5u h\u00ecnh \u0111\u00f3. V\u00ec v\u1eady, \u0111\u00e2y c\u00f3 th\u1ec3 kh\u00f4ng ph\u1ea3i l\u00e0 l\u1ef1a ch\u1ecdn ph\u00f9 h\u1ee3p trong c\u00e1c t\u00ecnh hu\u1ed1ng nh\u1ea1y c\u1ea3m v\u1ec1 th\u1eddi gian.<\/p>\n<h2 id=\"risks-and-downsides-of-infrastructure-as-code\">R\u1ee7i ro v\u00e0 nh\u01b0\u1ee3c \u0111i\u1ec3m c\u1ee7a c\u01a1 s\u1edf h\u1ea1 t\u1ea7ng theo m\u00e3<a href=\"https:\/\/www.linode.com\/docs\/guides\/introduction-to-infrastructure-as-code\/#risks-and-downsides-of-infrastructure-as-code\"><\/a><\/h2>\n<p>\u01afu \u0111i\u1ec3m c\u1ee7a Infrastructure as Code l\u1edbn h\u01a1n nhi\u1ec1u so v\u1edbi nh\u01b0\u1ee3c \u0111i\u1ec3m. Tuy nhi\u00ean, c\u00f3 m\u1ed9t v\u00e0i nh\u01b0\u1ee3c \u0111i\u1ec3m. T\u1ea5t c\u1ea3 c\u00e1c m\u00e3 v\u00e0 c\u1ea5u h\u00ecnh c\u1ea7n thi\u1ebft ph\u1ea3i \u0111\u01b0\u1ee3c duy tr\u00ec v\u00e0 c\u1eadp nh\u1eadt. \u0110i\u1ec1u n\u00e0y l\u00e0m t\u0103ng th\u00eam chi ph\u00ed chung c\u1ee7a t\u1ed5 ch\u1ee9c v\u00e0 n\u1ee3 k\u1ef9 thu\u1eadt. Tri\u1ec3n khai l\u00e0 quy\u1ebft \u0111\u1ecbnh chung c\u1ee7a DevOps, v\u00ec v\u1eady \u0111i\u1ec1u n\u00e0y c\u00f3 th\u1ec3 khi\u1ebfn c\u00e1c nh\u00e0 ph\u00e1t tri\u1ec3n r\u1eddi xa c\u00e1c nhi\u1ec7m v\u1ee5 thi\u1ebft k\u1ebf \u01b0u ti\u00ean cao kh\u00e1c. M\u00e3 c\u00f3 th\u1ec3 ph\u1ee9c t\u1ea1p v\u00e0 kh\u00f4ng ph\u1ea3i l\u00fac n\u00e0o c\u0169ng d\u1ec5 d\u00e0ng thay \u0111\u1ed5i.<\/p>\n<p>V\u00ec t\u1ea5t c\u1ea3 c\u00e1c thi\u1ebft b\u1ecb \u0111\u1ec1u chia s\u1ebb m\u1ed9t c\u1ea5u h\u00ecnh chung v\u00e0 nh\u1ea5t qu\u00e1n, \u0111i\u1ec1u n\u00e0y c\u00f3 th\u1ec3 khi\u1ebfn m\u1ea1ng tr\u1edf th\u00e0nh m\u1ee5c ti\u00eau d\u1ec5 d\u00e0ng h\u01a1n cho tin t\u1eb7c. Ngo\u00e0i ra, m\u1ed9t s\u1ed1 c\u00f4ng c\u1ee5 IaC c\u00f3 l\u1ed7 h\u1ed5ng \u0111\u00e3 bi\u1ebft. Qu\u1ea3n tr\u1ecb vi\u00ean h\u1ec7 th\u1ed1ng n\u00ean xem x\u00e9t c\u00e1c v\u1ea5n \u0111\u1ec1 b\u1ea3o m\u1eadt nh\u01b0 m\u1ed9t ph\u1ea7n c\u1ee7a quy tr\u00ecnh ph\u00e1t tri\u1ec3n. \u0110\u1ed1i v\u1edbi ph\u00e1t tri\u1ec3n ph\u1ea7n m\u1ec1m, vi\u1ec7c chu\u1ea9n h\u00f3a h\u1ec7 th\u1ed1ng c\u00f3 th\u1ec3 d\u1eabn \u0111\u1ebfn c\u00e1c tr\u01b0\u1eddng h\u1ee3p g\u00f3c c\u1ea1nh ch\u01b0a \u0111\u01b0\u1ee3c ki\u1ec3m tra v\u00ec m\u1ed9t s\u1ed1 k\u1ebft h\u1ee3p t\u00ednh n\u0103ng nh\u1ea5t \u0111\u1ecbnh kh\u00f4ng bao gi\u1edd \u0111\u01b0\u1ee3c c\u1ea5u h\u00ecnh c\u00f9ng nhau, ngay c\u1ea3 khi l\u00e0 ng\u1eabu nhi\u00ean.<\/p>\n<h2 id=\"tools-for-implementing-infrastructure-as-code\">C\u00f4ng c\u1ee5 tri\u1ec3n khai c\u01a1 s\u1edf h\u1ea1 t\u1ea7ng d\u01b0\u1edbi d\u1ea1ng m\u00e3<a href=\"https:\/\/www.linode.com\/docs\/guides\/introduction-to-infrastructure-as-code\/#tools-for-implementing-infrastructure-as-code\"><\/a><\/h2>\n<p>C\u00f3 m\u1ed9t s\u1ed1 c\u00f4ng c\u1ee5 ph\u1ea7n m\u1ec1m&nbsp;<em>T\u1ef1 \u0111\u1ed9ng h\u00f3a c\u1ea5u h\u00ecnh li\u00ean t\u1ee5c<\/em>&nbsp;(CCA) c\u00f3 s\u1eb5n \u0111\u1ec3 h\u1ed7 tr\u1ee3 tri\u1ec3n khai IaC. Nhi\u1ec1u c\u00f4ng c\u1ee5 trong s\u1ed1 n\u00e0y l\u00e0 m\u00e3 ngu\u1ed3n m\u1edf v\u00e0 ph\u1ee5 thu\u1ed9c v\u00e0o n\u1ed9i dung c\u1ed9ng \u0111\u1ed3ng.<\/p>\n<ul>\n<li><a href=\"https:\/\/www.ansible.com\/\" target=\"_blank\" rel=\"noreferrer noopener\"><em>Ansible<\/em><\/a>&nbsp;l\u00e0 m\u1ed9t \u1ee9ng d\u1ee5ng IaC ngu\u1ed3n m\u1edf r\u1ea5t ph\u1ed5 bi\u1ebfn t\u1eeb Red Hat. M\u1eb7c d\u00f9 ch\u1ee7 y\u1ebfu \u0111\u01b0\u1ee3c s\u1eed d\u1ee5ng tr\u00ean v\u00e0 v\u1edbi m\u00f4i tr\u01b0\u1eddng Linux, nh\u01b0ng n\u00f3 c\u0169ng h\u1ed7 tr\u1ee3 Windows. Ansible th\u01b0\u1eddng \u0111\u01b0\u1ee3c s\u1eed d\u1ee5ng k\u1ebft h\u1ee3p v\u1edbi Kubernetes v\u00e0 Docker. Ansible cung c\u1ea5p ng\u00f4n ng\u1eef khai b\u00e1o ri\u00eang \u0111\u1ec3 x\u00e1c \u0111\u1ecbnh c\u01a1 s\u1edf h\u1ea1 t\u1ea7ng v\u00e0 ho\u1ea1t \u0111\u1ed9ng m\u00e0 kh\u00f4ng c\u1ea7n t\u00e1c nh\u00e2n b\u1eb1ng c\u00e1ch k\u1ebft n\u1ed1i t\u1eeb xa b\u1eb1ng SSH. N\u00f3 s\u1eed d\u1ee5ng c\u00e1c t\u1ec7p v\u0103n b\u1ea3n &#8220;kho&#8221; c\u00f3 th\u1ec3 \u0111\u1ecbnh c\u1ea5u h\u00ecnh, c\u00f9ng v\u1edbi s\u1ed5 tay h\u01b0\u1edbng d\u1eabn YAML, \u0111\u1ec3 th\u1ec3 hi\u1ec7n c\u1ea5u h\u00ecnh. Ansible \u0111\u01b0\u1ee3c thi\u1ebft k\u1ebf theo h\u01b0\u1edbng t\u1ed1i gi\u1ea3n, an to\u00e0n v\u00e0 \u0111\u00e1ng tin c\u1eady, \u0111\u1ed3ng th\u1eddi s\u1eed d\u1ee5ng \u00edt t\u00e0i nguy\u00ean. Ng\u00f4n ng\u1eef khai b\u00e1o ri\u00eang c\u1ee7a Ansible d\u1ec5 h\u1ecdc v\u00e0 s\u1eed d\u1ee5ng, \u0111\u1ed3ng th\u1eddi c\u00f3 t\u00ednh n\u0103ng s\u1eed d\u1ee5ng c\u00e1c m\u1eabu. Linode cung c\u1ea5p m\u1ed9t b\u1ed9 s\u01b0u t\u1eadp g\u1ed3m<a href=\"https:\/\/www.linode.com\/docs\/applications\/configuration-management\/ansible\">&nbsp;m\u1ed9t s\u1ed1 h\u01b0\u1edbng d\u1eabn Ansible<\/a>&nbsp;\u0111\u1ec3 c\u00f3 c\u00e1i nh\u00ecn t\u1ed5ng quan to\u00e0n di\u1ec7n h\u01a1n.<\/li>\n<li><a href=\"https:\/\/www.chef.io\/\" target=\"_blank\" rel=\"noreferrer noopener\"><em>Chef<\/em><\/a>&nbsp;l\u00e0 m\u1ed9t c\u00f4ng c\u1ee5 m\u00e3 ngu\u1ed3n m\u1edf cho ph\u00e9p kh\u00e1ch h\u00e0ng vi\u1ebft c\u00e1c c\u00f4ng th\u1ee9c c\u1ea5u h\u00ecnh b\u1eb1ng<em>&nbsp;Ng\u00f4n ng\u1eef mi\u1ec1n c\u1ee5 th\u1ec3<\/em>&nbsp;(DSL) d\u1ef1a tr\u00ean Ruby. C\u00f4ng c\u1ee5 n\u00e0y th\u01b0\u1eddng \u0111\u01b0\u1ee3c s\u1eed d\u1ee5ng tr\u00ean c\u00e1c m\u00e1y Linux v\u00e0 t\u01b0\u01a1ng t\u00e1c v\u1edbi h\u1ea7u h\u1ebft c\u00e1c n\u1ec1n t\u1ea3ng \u0111\u00e1m m\u00e2y. Ng\u01b0\u1eddi d\u00f9ng ch\u1ec9 \u0111\u1ecbnh c\u00e1c g\u00f3i, d\u1ecbch v\u1ee5 v\u00e0 t\u1ec7p cho t\u1eebng thi\u1ebft b\u1ecb v\u00e0 Chef s\u1ebd c\u1ea5u h\u00ecnh, s\u1eeda v\u00e0 x\u00e1c th\u1ef1c c\u00e1c t\u00e0i nguy\u00ean.<\/li>\n<li><a href=\"https:\/\/inedo.com\/otter\" target=\"_blank\" rel=\"noreferrer noopener\"><em>Otter<\/em><\/a>&nbsp;l\u00e0 m\u1ed9t c\u00f4ng c\u1ee5 \u0111\u1ec3 m\u00f4 h\u00ecnh h\u00f3a c\u01a1 s\u1edf h\u1ea1 t\u1ea7ng v\u00e0 c\u1ea5u h\u00ecnh tr\u00ean n\u1ec1n t\u1ea3ng Windows.<\/li>\n<li><a href=\"https:\/\/www.pulumi.com\/\" target=\"_blank\" rel=\"noreferrer noopener\"><em>Pulumi<\/em><\/a>&nbsp;cho ph\u00e9p s\u1eed d\u1ee5ng nhi\u1ec1u ng\u00f4n ng\u1eef l\u1eadp tr\u00ecnh kh\u00e1c nhau \u0111\u1ec3 tri\u1ec3n khai v\u00e0 qu\u1ea3n l\u00fd c\u01a1 s\u1edf h\u1ea1 t\u1ea7ng trong m\u00f4i tr\u01b0\u1eddng \u0111\u00e1m m\u00e2y. C\u00f4ng c\u1ee5 IaC m\u00e3 ngu\u1ed3n m\u1edf mi\u1ec5n ph\u00ed n\u00e0y s\u1eed d\u1ee5ng c\u00e1c IDE v\u00e0 c\u00f4ng c\u1ee5 quen thu\u1ed9c v\u00e0 t\u1ea1o \u0111i\u1ec1u ki\u1ec7n chia s\u1ebb v\u00e0 c\u1ed9ng t\u00e1c. Linode c\u00f3 ph\u1ea7n<a href=\"https:\/\/www.linode.com\/docs\/guides\/deploy-in-code-with-pulumi\/\">&nbsp;gi\u1edbi thi\u1ec7u hay<\/a>&nbsp;v\u1ec1 \u1ee9ng d\u1ee5ng n\u00e0y.<\/li>\n<li><a href=\"https:\/\/puppet.com\/\" target=\"_blank\" rel=\"noreferrer noopener\"><em>Puppet<\/em><\/a>&nbsp;cung c\u1ea5p ng\u00f4n ng\u1eef khai b\u00e1o ri\u00eang \u0111\u1ec3 m\u00f4 t\u1ea3 k\u1ebft qu\u1ea3 c\u1ea5u h\u00ecnh. Gi\u1ea3i ph\u00e1p d\u1ef1a tr\u00ean m\u00f4 h\u00ecnh c\u1ee7a n\u00f3 cho ph\u00e9p qu\u1ea3n l\u00fd d\u1ec5 d\u00e0ng to\u00e0n b\u1ed9 v\u00f2ng \u0111\u1eddi CNTT, bao g\u1ed3m tri\u1ec3n khai, c\u1ea5u h\u00ecnh v\u00e0 c\u1eadp nh\u1eadt. Puppet s\u1eed d\u1ee5ng m\u00f4 h\u00ecnh h\u00f3a c\u1ea5p cao, y\u00eau c\u1ea7u \u00edt ki\u1ebfn \u200b\u200bth\u1ee9c l\u1eadp tr\u00ecnh v\u00e0 ho\u1ea1t \u0111\u1ed9ng v\u1edbi h\u1ea7u h\u1ebft c\u00e1c b\u1ea3n ph\u00e2n ph\u1ed1i Linux c\u0169ng nh\u01b0 Windows. Phi\u00ean b\u1ea3n m\u00e3 ngu\u1ed3n m\u1edf mi\u1ec5n ph\u00ed c\u1ee7a c\u00f4ng c\u1ee5 ph\u1ed5 bi\u1ebfn n\u00e0y c\u00f3 s\u1eb5n, c\u00f9ng v\u1edbi phi\u00ean b\u1ea3n th\u01b0\u01a1ng m\u1ea1i m\u1ea1nh m\u1ebd v\u00e0 ti\u00ean ti\u1ebfn h\u01a1n. Linode cung c\u1ea5p nhi\u1ec1u<a href=\"https:\/\/www.linode.com\/docs\/applications\/configuration-management\/puppet\">&nbsp;h\u01b0\u1edbng d\u1eabn v\u00e0 t\u00e0i nguy\u00ean cho Puppet<\/a>&nbsp;.<\/li>\n<li><a href=\"https:\/\/www.saltproject.io\/\" target=\"_blank\" rel=\"noreferrer noopener\"><em>Salt<\/em><\/a>&nbsp;, c\u00f2n \u0111\u01b0\u1ee3c g\u1ecdi l\u00e0 SaltStack, l\u00e0 m\u1ed9t gi\u1ea3i ph\u00e1p ngu\u1ed3n m\u1edf cho h\u1ea7u h\u1ebft c\u00e1c n\u1ec1n t\u1ea3ng. Salt x\u1eed l\u00fd t\u1ef1 \u0111\u1ed9ng h\u00f3a CNTT, qu\u1ea3n l\u00fd c\u1ea5u h\u00ecnh v\u00e0 th\u1ef1c hi\u1ec7n t\u00e1c v\u1ee5 t\u1eeb xa. C\u00e1c m\u00f4-\u0111un Python \u0111\u01b0\u1ee3c ph\u00e2n chia c\u1ee7a n\u00f3 c\u00f3 th\u1ec3 \u0111\u01b0\u1ee3c s\u1eeda \u0111\u1ed5i cho c\u00e1c tr\u01b0\u1eddng h\u1ee3p s\u1eed d\u1ee5ng c\u1ee5 th\u1ec3. Ngo\u00e0i c\u00e1c t\u00e1c v\u1ee5 IaC th\u00f4ng th\u01b0\u1eddng, SaltStack c\u00f2n h\u1ed7 tr\u1ee3 qu\u1ea3n l\u00fd b\u1ea3o m\u1eadt v\u00e0 gi\u1ea3m thi\u1ec3u l\u1ed7 h\u1ed5ng. Linode cung c\u1ea5p m\u1ed9t s\u1ed1<a href=\"https:\/\/www.linode.com\/docs\/applications\/configuration-management\/salt\">&nbsp;t\u00e0i nguy\u00ean Salt , bao g\u1ed3m ph\u1ea7n&nbsp;<\/a><a href=\"https:\/\/www.linode.com\/docs\/guides\/beginners-guide-to-salt\/\">gi\u1edbi thi\u1ec7u<\/a>&nbsp;h\u1eefu \u00edch.<\/li>\n<li><a href=\"https:\/\/www.terraform.io\/\" target=\"_blank\" rel=\"noreferrer noopener\"><em>Terraform<\/em><\/a>&nbsp;cho ph\u00e9p ng\u01b0\u1eddi d\u00f9ng cung c\u1ea5p c\u01a1 s\u1edf h\u1ea1 t\u1ea7ng trung t\u00e2m d\u1eef li\u1ec7u b\u1eb1ng JSON ho\u1eb7c ng\u00f4n ng\u1eef khai b\u00e1o ri\u00eang c\u1ee7a Terraform. Thay v\u00ec cung c\u1ea5p c\u00e1c d\u1ecbch v\u1ee5 qu\u1ea3n l\u00fd c\u1ea5u h\u00ecnh ri\u00eang, Terraform qu\u1ea3n l\u00fd t\u00e0i nguy\u00ean th\u00f4ng qua vi\u1ec7c s\u1eed d\u1ee5ng c\u00e1c nh\u00e0 cung c\u1ea5p, t\u01b0\u01a1ng t\u1ef1 nh\u01b0 API. C\u00e1c nh\u00e0 cung c\u1ea5p khai b\u00e1o t\u00e0i nguy\u00ean v\u00e0 y\u00eau c\u1ea7u c\u00e1c ngu\u1ed3n d\u1eef li\u1ec7u, v\u00e0 c\u00f3 s\u1eb5n cho h\u1ea7u h\u1ebft c\u00e1c nh\u00e0 cung c\u1ea5p l\u1edbn. C\u00e1c nh\u00e0 cung c\u1ea5p th\u01b0\u1eddng \u0111\u01b0\u1ee3c truy c\u1eadp th\u00f4ng qua<a href=\"https:\/\/registry.terraform.io\/browse\/providers\" target=\"_blank\" rel=\"noreferrer noopener\"><em>&nbsp;Terraform Registry<\/em><\/a><a href=\"https:\/\/www.linode.com\/docs\/applications\/configuration-management\/terraform\">&nbsp;. Terraform m\u00e3 ngu\u1ed3n m\u1edf c\u00f3 s\u1eb5n trong c\u00e1c phi\u00ean b\u1ea3n mi\u1ec5n ph\u00ed v\u00e0 th\u01b0\u01a1ng m\u1ea1i, v\u00e0 s\u1eed d\u1ee5ng ph\u01b0\u01a1ng ph\u00e1p ti\u1ebfp c\u1eadn theo m\u00f4-\u0111un \u0111\u1ec3 khuy\u1ebfn kh\u00edch t\u00e1i s\u1eed d\u1ee5ng v\u00e0 kh\u1ea3 n\u0103ng b\u1ea3o tr\u00ec. Tham kh\u1ea3o b\u1ed9 s\u01b0u t\u1eadp h\u01b0\u1edbng d\u1eabn Terraform<\/a>&nbsp;phong ph\u00fa c\u1ee7a Linode\u0111\u1ec3 bi\u1ebft th\u00eam th\u00f4ng tin.<\/li>\n<\/ul>\n<p>Wikipedia \u0111\u00e3 t\u00f3m t\u1eaft c\u00e1c c\u00f4ng c\u1ee5 CCA c\u01a1 s\u1edf h\u1ea1 t\u1ea7ng ch\u00ednh d\u01b0\u1edbi d\u1ea1ng m\u00e3 th\u00e0nh&nbsp;<a href=\"https:\/\/en.wikipedia.org\/wiki\/Comparison_of_open-source_configuration_management_software\" target=\"_blank\" rel=\"noreferrer noopener\"><em>m\u1ed9t bi\u1ec3u \u0111\u1ed3 ti\u1ec7n d\u1ee5ng<\/em><\/a>&nbsp;. Bi\u1ec3u \u0111\u1ed3 n\u00e0y bao g\u1ed3m c\u00e1c so s\u00e1nh v\u1ec1 c\u00e1c thu\u1ed9c t\u00ednh c\u01a1 b\u1ea3n v\u00e0 n\u1ec1n t\u1ea3ng \u0111\u01b0\u1ee3c h\u1ed7 tr\u1ee3, c\u0169ng nh\u01b0 m\u00f4 t\u1ea3 ng\u1eafn g\u1ecdn v\u1ec1 t\u1eebng c\u00f4ng c\u1ee5. Linode c\u0169ng cung c\u1ea5p h\u01b0\u1edbng d\u1eabn&nbsp;<a href=\"https:\/\/www.linode.com\/docs\/guides\/terraform-vs-ansible\">so s\u00e1nh Terraform v\u00e0 Ansible<\/a>&nbsp;, hai trong s\u1ed1 c\u00e1c gi\u1ea3i ph\u00e1p IaC ph\u1ed5 bi\u1ebfn nh\u1ea5t.<\/p>\n<h2 id=\"more-information\">Th\u00f4ng tin th\u00eam<\/h2>\n<p>B\u1ea1n c\u00f3 th\u1ec3 mu\u1ed1n tham kh\u1ea3o c\u00e1c ngu\u1ed3n sau \u0111\u1ec3 bi\u1ebft th\u00eam th\u00f4ng tin v\u1ec1 ch\u1ee7 \u0111\u1ec1 n\u00e0y. M\u1eb7c d\u00f9 ch\u00fang t\u00f4i cung c\u1ea5p v\u1edbi hy v\u1ecdng r\u1eb1ng ch\u00fang s\u1ebd h\u1eefu \u00edch, nh\u01b0ng xin l\u01b0u \u00fd r\u1eb1ng ch\u00fang t\u00f4i kh\u00f4ng th\u1ec3 \u0111\u1ea3m b\u1ea3o t\u00ednh ch\u00ednh x\u00e1c ho\u1eb7c t\u00ednh k\u1ecbp th\u1eddi c\u1ee7a c\u00e1c t\u00e0i li\u1ec7u \u0111\u01b0\u1ee3c l\u01b0u tr\u1eef b\u00ean ngo\u00e0i.<\/p>\n<ul>\n<li><a href=\"https:\/\/en.wikipedia.org\/wiki\/Infrastructure_as_code\" target=\"_blank\" rel=\"noreferrer noopener\">C\u01a1 s\u1edf h\u1ea1 t\u1ea7ng d\u01b0\u1edbi d\u1ea1ng M\u00e3 tr\u00ean Wikipedia<\/a><\/li>\n<\/ul>\n","protected":false},"excerpt":{"rendered":"<p>C\u01a1 s\u1edf h\u1ea1 t\u1ea7ng d\u01b0\u1edbi d\u1ea1ng M\u00e3&nbsp;(IaC) l\u00e0 m\u1ed9t k\u1ef9 thu\u1eadt tri\u1ec3n khai v\u00e0 qu\u1ea3n l\u00fd c\u01a1 s\u1edf h\u1ea1 t\u1ea7ng b\u1eb1ng ph\u1ea7n m\u1ec1m, t\u1ec7p c\u1ea5u h\u00ecnh v\u00e0 c\u00e1c c\u00f4ng c\u1ee5 t\u1ef1 \u0111\u1ed9ng. Chi\u1ebfn l\u01b0\u1ee3c n\u00e0y c\u00f3 th\u1ec3 \u0111\u01b0\u1ee3c s\u1eed d\u1ee5ng cho c\u00e1c thi\u1ebft b\u1ecb nh\u01b0 m\u00e1y ch\u1ee7 web, b\u1ed9 \u0111\u1ecbnh tuy\u1ebfn, c\u01a1 s\u1edf d\u1eef li\u1ec7u,<\/p>\n","protected":false},"author":1,"featured_media":35790,"comment_status":"open","ping_status":"open","sticky":false,"template":"","format":"standard","meta":{"footnotes":""},"categories":[107],"tags":[],"class_list":["post-34928","post","type-post","status-publish","format-standard","has-post-thumbnail","hentry","category-configuration-management-basics"],"_links":{"self":[{"href":"https:\/\/jupitek.maudemo.vip\/index.php\/wp-json\/wp\/v2\/posts\/34928","targetHints":{"allow":["GET"]}}],"collection":[{"href":"https:\/\/jupitek.maudemo.vip\/index.php\/wp-json\/wp\/v2\/posts"}],"about":[{"href":"https:\/\/jupitek.maudemo.vip\/index.php\/wp-json\/wp\/v2\/types\/post"}],"author":[{"embeddable":true,"href":"https:\/\/jupitek.maudemo.vip\/index.php\/wp-json\/wp\/v2\/users\/1"}],"replies":[{"embeddable":true,"href":"https:\/\/jupitek.maudemo.vip\/index.php\/wp-json\/wp\/v2\/comments?post=34928"}],"version-history":[{"count":0,"href":"https:\/\/jupitek.maudemo.vip\/index.php\/wp-json\/wp\/v2\/posts\/34928\/revisions"}],"wp:featuredmedia":[{"embeddable":true,"href":"https:\/\/jupitek.maudemo.vip\/index.php\/wp-json\/wp\/v2\/media\/35790"}],"wp:attachment":[{"href":"https:\/\/jupitek.maudemo.vip\/index.php\/wp-json\/wp\/v2\/media?parent=34928"}],"wp:term":[{"taxonomy":"category","embeddable":true,"href":"https:\/\/jupitek.maudemo.vip\/index.php\/wp-json\/wp\/v2\/categories?post=34928"},{"taxonomy":"post_tag","embeddable":true,"href":"https:\/\/jupitek.maudemo.vip\/index.php\/wp-json\/wp\/v2\/tags?post=34928"}],"curies":[{"name":"wp","href":"https:\/\/api.w.org\/{rel}","templated":true}]}}