Ke hana nei au i waho, kahi e wehewehe ʻia ai ke kumu nui e ka huaʻōlelo "kūʻai nui, hana wikiwiki." ʻO ka wikiwiki a mākou e hana ai, ʻoi aku ka nui o kā mākou loaʻa. A, makemake ʻia e hana nā mea āpau ʻaʻole i nā koʻokoʻo a me ka snot, akā me kahi pae kūpono o ka maikaʻi. E haʻi wau iā ʻoe e pili ana i koʻu ʻike i ka wā i pono ai e hoʻomohala i kahi lawelawe hoʻolaha i kahi manawa pōkole.
Hāʻawiʻia: moʻo kumu ma AWS, ʻaʻohe palena i ke koho ʻana i ka ʻenehana ʻenehana, hoʻokahi hope hope, a hoʻokahi mahina no ka hoʻomohala ʻana.
He hana: e hoʻokō i kahi lawelawe hoʻolaha kahi e hoʻouka ai nā mea hoʻohana mai hoʻokahi a ʻehā mau wikiō e lōʻihi ana mai hoʻokahi a ʻehā kekona, a laila hoʻokomo ʻia i loko o ka moʻo wikiō kumu.
olelo hooholo
ʻAʻole maikaʻi ke kākau ʻana i kāu lawelawe paikikala ponoʻī i ka manawa pōkole. Eia kekahi, i mea e hiki ai i ka lawelawe ke hoʻokō i ka ukana a no ka loaʻa ʻana o nā mea āpau i ka wikiō i makemake ʻia, e koi ʻia nā ʻōnaehana. A ʻoi aku ka maikaʻi ʻaʻole me ke kumu kūʻai mai ka mokulele. No laila, kālele koke mākou i nā hoʻonā i hoʻomākaukau ʻia me ka liʻiliʻi o ka hana maʻamau.
ʻO ka hopena maʻamau no ka hana ʻana me ka wikiō ʻo FFmpeg, kahi hāmeʻa console cross-platform e hiki ai iā ʻoe ke ʻoki a overdub leo ma o nā hoʻopaʻapaʻa. ʻO nā mea a pau e hana ai, ʻo ke kākau ʻana i kahi ʻōwili a hoʻokuʻu i ke ola. Kākau mākou i kahi prototype e humuhumu i nā wikiō ʻelua, a ... hoʻomaka ka leʻaleʻa. Hoʻokumu ʻia ka waihona ma .NET Core 2, pono ia e holo ma kekahi mīkini virtual, no laila lawe mākou i kahi hiʻohiʻona AWS EC2 a e holo nā mea āpau.
kikokiko hunaʻaʻole, ʻaʻole e hana
.
ʻOiai e hoʻomaʻamaʻa ʻo FFmpeg i ka hana, no kahi hopena hana maoli pono ʻoe e hana i kahi hiʻohiʻona EC2 a hoʻolālā i kahi ʻōnaehana pūnaewele no ia, me kahi Load Balancer. ʻO ka hana maʻalahi o ka hoʻokuʻu ʻana mai ka ʻōpala e lilo i "liʻiliʻi" ʻoi aku ka paʻakikī, a hoʻomaka ka ʻoihana e koi koke i ke kālā - i kēlā me kēia hola e hoʻihoʻi ʻia ka nui o ka manawa holo mai ka moʻokāki mea kūʻai aku.
ʻAʻole pili kā mākou lawelawe i nā kaʻina holo lōʻihi, ʻaʻole koi i kahi waihona relational nui a momona, a kūpono loa i kahi hoʻolālā hanana hanana me kahi kaulahao o nā kelepona microservice. Hōʻike ka hoʻonā iā ia iho - hiki iā mākou ke haʻalele iā EC2 a hoʻokō i kahi noi pono-serverless, e like me ka Image Resizer maʻamau e pili ana iā AWS Lambda.
Ma ke ala, ʻoiai ke ʻike maopopo ʻole o nā mea hoʻomohala AWS no .NET, kākoʻo lākou i ka .NET Core 2.1 ma ke ʻano he wā holo, e hāʻawi ana i kahi ākea o nā manawa hoʻomohala.
A ʻo ka cherry ma ka keke - Hāʻawi ʻo AWS i kahi lawelawe ʻokoʻa no ka hana ʻana me nā faila wikiō - AWS Elemental MediaConvert.
ʻO ke kumu o ka hana he mea maʻalahi loa: lawe mākou i kahi loulou S3 i ka wikiō i waho, kākau ma o AWS Console, .NET SDK a i ʻole JSON wale nō i ka mea a mākou e makemake ai e hana me ka wikiō a kāhea i ka lawelawe. Hoʻokomo ʻo ia i nā queues no ka hoʻoponopono ʻana i nā noi e hiki mai ana, hoʻouka i ka hopena iā S3 ponoʻī a, ʻo ka mea nui loa, e hana i kahi CloudWatch Event no kēlā me kēia hoʻololi kūlana. ʻAe kēia iā mākou e hoʻokō i nā mea hoʻoiho lambda e hoʻopau i ka hana wikiō.
ʻO kēia ke ʻano o ka hoʻolālā hope loa:
Hoʻokomo ʻia ka ʻaoʻao hope i ʻelua lambdas. ʻO kekahi no ka hoʻohuli ʻana i nā wikiō kūpaʻa, no ka mea ʻaʻole hiki ke hana ʻia ia hana i hoʻokahi ala.
E kau mākou i mua ma ke ʻano o kahi palapala SPA i kākau ʻia ma JS a i hōʻuluʻulu ʻia ma o ka pug i loko o kahi bākeke S3 ākea. No ka hoʻoiho ʻana i nā wikiō iā lākou iho, ʻaʻole pono mākou i kahi code server - pono mākou e wehe i nā wahi hope REST i hāʻawi ʻia e S3 iā mākou. ʻO ka mea wale nō mai poina e hoʻonohonoho i nā kulekele a me CORS.
Pitfalls
- ʻO AWS MediaConvert, no kekahi kumu ʻike ʻole, pili wale ke kani i kēlā me kēia ʻāpana wikiō, akā pono mākou i kahi mele hauʻoli mai ka pale pale holoʻokoʻa.
- Pono e hoʻokaʻawale ʻia nā wikiō kū pololei. ʻAʻole makemake ʻo AWS i nā kaola ʻeleʻele a kau i nā wili ma 90 °.
ʻO ka rink skate maʻalahi
ʻOiai ka nani a pau o Stateless, pono ʻoe e mālama pono i nā mea e pono ai ke hana me ka wikiō: kāpī a hoʻohui i nā leo i ke kaʻina wikiō i hoʻopau ʻia. ʻO ka mea pōmaikaʻi, kākoʻo ʻo MediaConvert i ka hoʻouna ʻana i nā metadata ma o kāna mau Hana, a hiki iā mākou ke hoʻohana mau i kahi hae maʻalahi o ke ʻano "isMasterSoundJob", e hoʻopau i kēia metadata i kēlā me kēia pae.
ʻAe ʻo Serverless i ka hana pū me NoOps - kahi ala e manaʻo ai i ka pono ʻole o kahi hui ʻokoʻa i kuleana no ka ʻōnaehana papahana. No laila, he mea liʻiliʻi ia - ke kau nei mākou i ka hoʻonā ma AWS me ka ʻole o ke komo ʻana o nā luna hoʻomalu ʻōnaehana, e loaʻa mau ana kahi mea e hana ai.
A no ka wikiwiki ʻana i kēia mau mea a pau, hoʻomaʻamaʻa mākou i ka script deployment e like me ka hiki ma AWS CloudFormation, kahi e hiki ai iā ʻoe ke hoʻoili me hoʻokahi pihi pololei mai VS. ʻO ka hopena, ʻo kahi faila o 200 laina o ke code e hiki ai iā ʻoe ke ʻōwili i kahi hopena i mākaukau ʻia, ʻoiai ʻo ka syntax CloudFormation hiki ke pīhoihoi inā ʻaʻole ʻoe i maʻa iā ia.
Hōʻuluʻulu
ʻAʻole he panacea ka serverless. Akā, e maʻalahi ke ola i nā kūlana me nā palena ʻekolu: "nā kumu waiwai palena ʻole - wā pōkole - kālā liʻiliʻi."
Nā ʻano o nā noi kūpono no ka Serverless
- me nā kaʻina hana lōʻihi. ʻO ka palena paʻakikī API Gateway he 29 kekona, ʻo ka palena paʻakikī lambda he 5 mau minuke;
- wehewehe ʻia e ka hanana Event-Driven architecture;
- hoʻokaʻawale i nā ʻāpana i hui pū ʻia e like me SOA;
- ʻaʻole koi nui i ka hana me kou kūlana;
- kākau ʻia ma .NET Core. No ka hana pū me ka .NET Framework, pono ʻoe i ka Docker ma kahi liʻiliʻi me ka manawa holo kūpono.
Nā pōmaikaʻi o ke ala Serverless
- hoemi i na koina hana;
- e hoemi ana i ke kumukuai o ka haawi ana i ka hooponopono;
- scalability 'akomi;
- hoʻomohala ma ka ʻoki ʻana o ka holomua ʻenehana.
ʻO nā hemahema, me kahi laʻana kikoʻī
- Hoʻokaʻawale ʻia ka huli ʻana a me ka hoʻopaʻa inoa ʻana - i hoʻoponopono ʻia ma o AWS X-Ray a me AWS CloudWatch;
- ka hoʻopiʻi kūpono ʻole;
- Hoʻomaka anuanu ke loaʻa ʻole ka ukana;
- ʻO ka AWS mea hoʻohana-hostile interface he pilikia honua :)
Source: www.habr.com