ʻO ke ala serverless no ka hoʻomohala wikiwiki ʻana i kahi lawelawe wikiō hana

ʻO ke ala serverless no ka hoʻomohala wikiwiki ʻana i kahi lawelawe wikiō hana

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 ke ala serverless no ka hoʻomohala wikiwiki ʻana i kahi lawelawe wikiō hana
ʻ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

Pākuʻi i ka manaʻo hoʻopuka