微服务下的Serverless架构实战

2020-03-01 57浏览

  • 1.ங๐‫࣋ۓ‬วӥጱServerlessຝ຅ਫ᪢! Ἆ‫!෈ܗ‬ ThoughtWorksṛᕆߎᧃ૵!
  • 2.
  • 3.
  • 4.
  • 5.֢ᘏՕᕨ Ἆ‫҅෈ܗ‬ThoughtWorksṛᕆߎᧃ૵/ ᫫կຝ຅૵҅೅ձᬦ୏‫̵ݎ‬ၥᦶ̵ᬩ ᖌ̵ದ๞ᕪቘᒵ᥯ᜋ҅ࣁࢵٖक़ग़ਹմ ӱ؉ᬦದ๞රᕞզ݊ದ๞ߎᧃ҅೜ํӿ ੄ጱභഠࢫᴚૡ֢ᕪḵ̶ ፓ‫ڹ‬ӫဳԭDevOpsದ๞݊ԯᒒຝ ຅҅ࣁ൫ୌ೮ᖅᵞ౮݊᮱ᗟଘ‫̵ݣ‬ᛔۖ ۸຅ୌचᏐᦡෞ̵ᡦ೙۸ሾह̵ԯᒒᬩ ᖌᒵොᶎํ፳ӿ੄ጱᕪḵ̶̶೜ํAWS ᥴ٬ොໜຝ຅૵զ݊୏‫ݎ‬ᘏᦤԡ̶ ӻՈ‫ܗ‬ਮwww.huangbowen.net̶ᦲ ֢ํ̽Effective JavaScript̵̾̽Html5 ޾CSS3ߥଫୗᦡᦇ೰‫̵̽̾ܖ‬C#ग़ᕚ ᑕᖫᑕਫ౴̵̾̽ᶎ‫ݻ‬੒᨝ጱ௏ᘍᬦ ᑕ̵̾̽चᏐᦡෞ‫ܨ‬դᎱ̾ᒵ̶
  • 6.Serverlessຝ຅ጱኧ๶! Serverlessጱս۠޾ຝ຅ᇙᅩ! चԭServerlessጱ೮ᖅԻ՞ၞ࿜ᕚ! Serverlessຝ຅ጱੴᴴ௔޾ӥӞྍ! ௛ᕮ!
  • 7.ITचᏐᦡෞጱᄍᬰ ᇔቘ๢ ᡦ೙๢ ਻࢏ ᡦ೙๢ ᇔቘ๢ Ҙ-90ଙդ 90ଙդ-2013 ᇔቘ๢ 2013-ᛗՔ ԯ෸դ ๅො‫׎‬ጱ឴‫ᦇݐ‬ᓒᩒრ҅ս۸ᦇᓒᩒრֵአሲ
  • 8.ԯᦇᓒ෸դጱ๐‫ۓ‬ ๅ‫ဳى‬ӱ‫ۓ‬໐ஞ᭦ᬋ Software As A Service Platform As A Service Container As A Service Infrastructure As A Service ๅ‫ဳى‬ᬩᖌ Ծߝࢫᴚ Ծߝࢫᴚ Ծߝࢫᴚ Ծߝࢫᴚ
  • 9.ԯᦇᓒጱ‫઀ݎ‬᩽۠ ই֜ᚆๅຄᛘս۸ᩒრֵአሲҘ ᴳ֗COST ‫ݶ‬෸ᦏԾߝࢫᴚๅᘸᆌӱ‫҅ݎ୏ۓ‬൳ᚙᬩᖌဝ၂Ҙ ൉ṛපሲ
  • 10.FUNCTION AS A SERVICE ๅ‫ဳى‬ӱ‫ۓ‬໐ஞ᭦ᬋ SoftwareFunction As A Service As A Service Platform As A Service Container As A Service Infrastructure As A Service ๅ‫ဳى‬ᬩᖌ Ծߝࢫᴚ Ծߝࢫᴚ Ծߝࢫᴚ Ծߝࢫᴚ
  • 11.SERVERLESSຝ຅ -- FUNCTION AS A SERVICE FrontEnd Event Sources Function Function Function Function Function Function Function Function Function Function Function Function Business Services Business BusinessServices Services ਻࢏ᓕቘଘ‫ݣ‬ 1. ኧԪկ᥶‫ݎ‬ 2. ᬩᤈࣁᎨฮጱ෫ᇫாጱ਻࢏Ӿ 3. ᬩᤈሾहਠ‫ᤩق‬ᒫӣොಓᓕ
  • 12.SERVERLESSຝ຅ -- FUNCTION AS A SERVICE SERVERLESS == ෫๐‫ ࢏ۓ‬Ҙ Serverlessଚӧฎ఺‫ޱ‬፳෫๐‫҅࢏ۓ‬ᘒฎ᫨᎖‫ܨ‬᭙ጱ෫ᇫா ጱ๐‫̶࢏ۓ‬๐‫࢏ۓ‬ጱᖌಷਠ‫ق‬Իኧଘ‫ݣ‬ᨮᨱ҅Ծߝࢫᴚ‫ݝ‬ᵱ ᨮᨱ୏‫޾ݎ‬᮱ᗟ҅ᵭᖌಷ̶ SERVERLESS == ෫ᬩᖌ
  • 13.൉‫׀‬SERVERLESSຝ຅๐‫ۓ‬ጱଘ‫ݣ‬ AWS Lambda Azure Functions Google Functions Function Compute OpenWhisk
  • 14.Serverlessຝ຅ጱኧ๶! Serverlessጱս۠޾ຝ຅ᇙᅩ! चԭServerlessጱ೮ᖅԻ՞ၞ࿜ᕚ! Serverlessຝ຅ጱੴᴴ௔޾ӥӞྍ! ௛ᕮ!
  • 15.SERVERLESSጱս۠ - ‫ݝ‬ԅᦇᓒ՞ᩇ َࣳଫአғCDE-LOGGER አԭ॒ቘMQӾٖ᮱ᇙਧߝ ᇈਭᦇLOG ྯॠ॒ቘRequest 2ӡ֟๵ ྯ๵॒ቘ෸ᳵ500ms ‫ݣܔ‬EC2 ࣳ‫ݩ‬t2.Medium 0.047$/ੜ෸ Ӟӻ์୏ᲀ 0.047 * 24 * 30 = 33.84$ AWS Lambda 600000 * 500/100 * 0.000000208 = 0.624$
  • 16.SERVERLESSጱս۠ - ᵭᬩᖌ AWSଘ‫ݣ‬൉‫׀‬ԧ਻࢏ᖌಷ̵෭பᓕቘ̵ፊഴ̵ᛔۖಘ਻̵୑ଉᓕቘᒵ๐‫̶ۓ‬ Ծߝࢫᴚ‫ݝ‬ᵱᥝ୏‫޾ݎ‬᮱ᗟ݊ᯈᗝ̶
  • 17.SERVERLESSጱս۠ - ṛ‫ݢ‬አᛔۖಘ਻ APP-01 APP-02 APP-03 APP-04 Auto Scaling Group APP-01 APP-02 APP-03 APP-04 Auto Scaling Group APP-01 APP-02 APP-03 APP-04 Auto Scaling Group concurrent executions = events (or requests) per second * function duration
  • 18.SERVERLESSጱս۠ - Өٌ՜ԯ๐‫ۓ‬෫ᖲᕮ‫ݳ‬ զAWS Lambdaԅֺғ
  • 19.AWS LAMBDAጱᖫᑕཛྷࣳ Request Context Object Response Handler Exceptions Lambda Function AWS SDK Env variable logging ਻࢏ᬩᤈ෸ monitoring
  • 20.SERVERLESSጱَࣳຝ຅ԏӞ चԭၾ௳ጱଫአᑕଧ
  • 21.SERVERLESSጱَࣳຝ຅ԏԫ चԭአಁኴᶎጱଫአᑕଧ
  • 22.ਫᴬໜֺԏႰ‫ݳ‬ຝ຅ ಸհᔮᕹ෭பᓕቘଘ‫ݣ‬ ຝ຅ᇙᅩғ 1. LambdaӨங๐‫ۓ‬ଚਂ 2. ‫᧣ྍݶ‬አ޾୑ྍ᧣አ 3. ๅੜጱ๐‫زܔۓ‬ ឴‫ݐ‬තፅғ 1. EC2ਫֺ‫ٺ‬੝ԧ30% 2. चᏐᦡෞդᎱᯈᗝ‫ٺ‬੝ԧ20% 3. ๅग़ጱದ๞຾ᭌೠ
  • 23.Serverlessຝ຅ጱኧ๶! Serverlessጱս۠޾ຝ຅ᇙᅩ! चԭServerlessጱ೮ᖅԻ՞ၞ࿜ᕚ! Serverlessຝ຅ጱੴᴴ௔޾ӥӞྍ! ௛ᕮ!
  • 24.SERVERLESSጱ೮ᖅԻ՞ ೮ᖅԻ՞ၞ࿜ᕚ ୏‫ݎ‬ ๜ࣈၥᦶ ൉Ի ೮ᖅᵞ౮ ಑۱ ᮱ᗟ docker-lambda SAM local SAM
  • 25.SERVERLESSጱ೮ᖅԻ՞ ୏‫޾ݎ‬๜ࣈၥᦶᴤྦྷ 1. ‫ဳى‬FunctionጱEventള‫ݎ୏޾ᦇᦡݗ‬ 2. ֵአTDD๶୏‫ݎ‬Function҅‫زܔ‬ၥᦶๅ਻ฃ 3. ๜ࣈᵞ౮ၥᦶ‫ݢ‬զֵአdocker-lambdaᒵପ๶ཛྷ೙਻࢏۸ᬩᤈ 4. ֵአSAM Localཛྷ೙๜ࣈgateway҅ԾኞԪկpayload
  • 26.SERVERLESSጱ೮ᖅԻ՞ ೮ᖅᵞ౮޾಑۱ 1. ‫ֵݢ‬አփᕹጱJenkinsᕮ‫ݳ‬Serverlessൊկਫሿ೮ᖅᵞ౮ 2. ᵞ౮۱‫ތ‬ᖫᦲ̵ᶉாಚൈ̵‫زܔ‬ၥᦶ̵mockᵞ౮ၥᦶᒵձ‫ۓ‬ 3. ಑۱ᕮຎԅZIP̵rar෈կ҅Ӥփ‫ک‬AWS S3౲Nexusզ‫ֵ׀‬አ
  • 27.SERVERLESSጱ೮ᖅԻ՞ ᮱ᗟ 1. ֵአSAM๶ൈᬿFunction 2. ֵአCloudformationᬰᤈ᮱ᗟ aws cloudformation deploy -- templatefile serverless-output.yaml --stack-name lambdaExample --capabilities CAPABILITY_IAM
  • 28.SERVERLESSጱ೮ᖅԻ՞ ग़ሾहᓕቘVersioning:ྯӻෛӤփጱ Function᮷տํᇇ๜‫҅ݩ‬೜ํࠔ ӞጱARN̶ଚӬᧆFunction޾ ARNฎӧ‫ݒݢ‬ጱAlias:‫ݢ‬զԅFunctionႲ‫ے‬Ӟӻ౲ ग़ӻAlias,Event Sources‫ֵݢ‬አᧆ Alias๶᧣አFunction
  • 29.SERVERLESSጱ೮ᖅԻ՞ Promoteၞᑕ 1. ӧ‫ݶ‬ሾहጱEvent Sourcesֵ አԪ‫ض‬ਧԎጱLambda aliasӨ Lambdaୌᒈ‫ى‬ᘶ‫ى‬ᔮ 2. ੒ԭ‫ܔ‬ӻ Lambda Function҅᭗ᬦๅදAliasጱොୗ ᬰᤈpromote
  • 30.SERVERLESSጱ೮ᖅԻ՞ ๅ᫷ຂጱPVT޾ࢧ჻ 1. ֵአBETA ሾहᬰᤈPVTၥ ᦶ 2. ᭗ᬦਖ਼֗ᇇ๜ጱFunction೰ ਧԅPROD Aliasጱොୗᬰᤈ ࢧ჻
  • 31.Serverlessຝ຅ጱኧ๶! Serverlessጱս۠޾ຝ຅ᇙᅩ! चԭServerlessጱ೮ᖅԻ՞ၞ࿜ᕚ! Serverlessຝ຅ጱੴᴴ௔޾ӥӞྍ! ௛ᕮ!
  • 32.SERVERLESSጱੴᴴ௔ AWS Lambdaጱᴴ‫ګ‬ ᩒრ ᴴ‫ګ‬ ٖਂ 128M-1536M ԁ෸ᏺፏਂ‫ؙ‬ 512M ྯӻ᧗࿢๋य़ಗᤈ෸ᳵ 300ᑁ request/response body size 6MB ᮱ᗟ۱य़ੜ 50MB ᥴܴ‫ݸ‬ጱ᮱ᗟ۱य़ੜ 250MB 29
  • 33.SERVERLESSጱੴᴴ௔ ᬩᤈሾहጱᴴ‫ګ‬ ࣁAWS LambdaӾඪ೮ጱᬩᤈሾहғ • Node.js – v4.3.2 and 6.10.3 • Java – Java 8 ۖா᧍᥺startupጱ୊᬴ࣁ‫پ‬ጯms Java᧍᥺startupጱ୊᬴ํ෸ग़ᬡ10ᑁզӤ • Python – Python 3.6 and 2.7 • .NET Core – .NET Core 1.0.1 (C#) 30
  • 34.SERVERLESSጱੴᴴ௔ ੒ԯଘ‫ࠟܯݣ‬ጱ᯿ଶׁᩢ 1. Serverless໛ຝ๜᫝ฎ ଘ‫ݣ‬ಓᓕጱ 2.Serverless‫ݢ‬ᯈᗝጱፘ ‫ى‬ԪկრԞฎଘ‫ݣ‬ፘ‫ى‬ጱ 31
  • 35.SERVERLESSጱӥӞྍ ኞாᔮᕹጱਠ࠺ Docker Lambda Apex 32
  • 36.SERVERLESSጱӥӞྍ ᬰӞྍᥴᴻᴴ‫ګ‬ • ๅग़ጱᬩᤈ෸ሾह • Packageय़ੜጱᴴ‫ګ‬ • ๅਠ࠺ጱक़᮱ᯈᗝᓕቘ • ୊ᳩ‫ܔ‬ӻ᧗࿢ጱ๋य़ಗᤈ෸ᳵ • … 33
  • 37.Serverlessຝ຅ጱኧ๶! Serverlessጱս۠޾ຝ຅ᇙᅩ! चԭServerlessጱ೮ᖅԻ՞ၞ࿜ᕚ! Serverlessຝ຅ጱੴᴴ௔޾ӥӞྍ! ௛ᕮ!
  • 38.௛ᕮ Serverlessຝ຅ࣁचԭEventጱ࣋วӾํ॰ප҅୏‫ޮݎ‬๗Ꭸ҅Ө‫ݱ‬ӻԪկ რᵞ౮ො‫پ҅׎‬Ԓ෫चᏐᦡෞᯈᗝ҅ᚆํපጱ൉ṛԻ՞පሲ ӧᬦٌԞਂࣁٖਂֵአሲ̵Ꮭፏֵአ̵ᑕଧಗᤈ෸ᳵ̵ᑕଧԫᬰ‫ګ‬۱य़ ੜጱᴴ‫҅ګ‬ᬯ੪٬ਧԧ‫ܔ‬ӻFunctionӧᚆᬦԭ॔๥҅ଚӧฎᭇ‫ݳ‬ಅํጱ ଫአ࣋ว ๚๶ଫᧆฎServerlessຝ຅޾୮‫ڹ‬փᕹጱ਻࢏۸ොໜ԰ᤑጱఘ‫٭‬ 35
  • 39.