Äú¿ÉÒÔ¾èÖú£¬Ö§³ÖÎÒÃǵĹ«ÒæÊÂÒµ¡£

1Ôª 10Ôª 50Ôª





ÈÏÖ¤Â룺  ÑéÖ¤Âë,¿´²»Çå³þ?Çëµã»÷Ë¢ÐÂÑéÖ¤Âë ±ØÌî



  ÇóÖª ÎÄÕ ÎÄ¿â Lib ÊÓÆµ iPerson ¿Î³Ì ÈÏÖ¤ ×Éѯ ¹¤¾ß ½²×ù Modeler   Code  
»áÔ±   
 
   
 
 
     
   
 ¶©ÔÄ
  ¾èÖú
̸̸AWS LambdaºÍserverless architecture
 
À´Ô´£ºÍøÂç ·¢²¼ÓÚ 2016-11-9
  2969  次浏览      27
 

̸̸AWS LambdaºÍserverless architecture ÓÉÓÚ»ùÓÚlambdaµÄÖî¶àÓ¦Óó¡¾°»¹´¦ÔÚ¸Õ¸ÕÆð²½µÄ½×¶Î£¬ËùÒԺܶàorchestrationµÄÊÂÇ黹ÐèÒª×Ô¼º×ö£¬ÏàÐŵÈlambdaµÄʹÓÃÈÕÇ÷³ÉÊìʱ£¬¾ÍÏñdockerÉú̬ȦһÑù£¬»á²úÉúÖÚ¶àµÄorchestrationµÄ¹¤¾ß£¬½â¾ö»òÕß»º½âϵͳʧ¿ØµÄÎÊÌâ¡£

×î½ü°ëÄêÀ´£¬Ëæ×ÅAWSµÄ¸÷Ïß·þÎñ¶¼¿ªÊ¼Ö§³Ölambda£¬serverless architecture±ã½¥½¥³ÉΪһ¸ö»ðÈȵϰÌâ¡£lambdaÊÇamzonÍÆ³öµÄÒ»¸öÊܿصÄÔËÐл·¾³£¬Æð³õ½ö½öÖ§³Önodejs(Ö®ºóÌí¼ÓÁËjava/pythonµÄÖ§³Ö)¡£Äã¿ÉÒÔдһ¶ÎnodejsµÄ´úÂ룬ΪÆä´´½¨Ò»¸ölambda×ÊÔ´£¬ÕâÑù£¬µ±Ö¸¶¨µÄʼþÀ´ÁÙµÄʱºò£¬awsµÄÔËÐÐʱ»á´´½¨ÄãµÄÔËÐл·¾³£¬Ö´ÐÐÄãµÄ´úÂ룬ִÐÐÍê±Ï(»òÕßtimeout)ºó£¬»ØÊÕÒ»ÇÐ×ÊÔ´¡£Õâ¿´ÆðÀ´²¢²»Ï¡º±£¬Õû¸öÔËÐл·¾³»¹Êܵ½ºÜ¶àÏÞÖÆ£¬±ÈÈçĿǰawsΪlambdaÌṩÁËÄÄЩʼþÖ§³Ö£¬Äã¾ÍÄÜÓÃÄÄЩʼþ£¬Í¬Ê±ÄãµÄ´úÂëÎÞ·¨³¬¹ýtimeoutÖ¸¶¨µÄʱ¼äÖ´ÐÐ(Ŀǰ×î´óÊÇ5min)£¬ÄÚ´æÊ¹ÓÃ×î¶àÒ²¾ÍÊÇ1.5G¡£ÄÇôÎÊÌâÀ´ÁË£¬ÕâÑùÒ»¸ö¿´ÆðÀ´ËƺõÓÐÄÇôµã¼¦ÀߵķþÎñ£¬ÎªÊ²Ã´»¹Êܵ½Èç´ËÈÈÅõ?Ô­Òò¾ÍÔÚÓÚÎޱȵÍÁ®µÄ¼Û¸ñ(ÿ°ÙÍò´ÎÇëÇó0.2ÃÀÔª + ÿ°ÙÍòGBÃëÔËÐÐʱ¼ä16.67ÃÀÔª)£¬ÎãÐë²ÙÐÄinfrastructure£¬ÒÔ¼°½üºõÎÞÏÞÀ©ÈݵÄÄÜÁ¦¡£

ʹÓÃlambda´¦Àíʼþ´¥·¢

ÔÚ·þÎñÆ÷¶Ë£¬ÎÒÃÇËùдµÄ´ó²¿·Ö´úÂëÊÇʼþ´¥·¢µÄ£º

´¦ÀíÓû§¶Ôij¸öURIµÄÇëÇó(´ò¿ªÄ³¸öÒ³Ãæ£¬µã»÷ij¸ö°´Å¥)

Óû§×¢²áʱ·¢ÓʼþÑéÖ¤ÓÊÏ䵨ַ

Óû§ÉÏ´«Í¼Æ¬Ê±½«Í¼Æ¬Çиî³ÉºÏÊʵijߴç

µ±log³ÖÐø³öÏÖÈô¸É´Î500 internal errorʱ½«´íÎóÈÕÖ¾¾ÛºÏ·¢¸øÖ¸¶¨µÄÓÊÏä

°ëÒ¹12µã£¬·ÖÎöÒ»ÌìÀ´ÊÕ¼¯µÄÊý¾Ý(±ÈÈçclickstream)²¢Éú³É±¨¸æ

µ±Êý¾Ý¿âµÄij¸ö×Ö¶ÎÐÞ¸Äʱ×öЩʺó´¦Àí

ͬʱ£¬ÔÚ´¦ÀíÒ»¸öʼþµÄ¹ý³ÌÖУ¬ÍùÍù»á´¥·¢ÐµÄʼþ¡£»ù±¾ÉÏÎÒÃÇ×öÒ»¸öϵͳ£¬Èç¹ûÄÜÀåÇåÄÚ²¿µÄÊý¾ÝÁ÷ºÍʼþÁ÷£¬ÒÔ¼°¶ÔÓ¦µÄÐÐΪ£¬ÄÇôÕâ¸öϵͳµÄ¼Ü¹¹Ò²¾Í°Ë¾Å²»ÀëÊ®ÁË¡£Èç¹ûÒªÈÃÎÒÃÇ×Ô¼ºÀ´Éè¼ÆÒ»¸ö·Ö²¼Ê½µÄʼþ´¦Àíϵͳ£¬Ò»°ã»áʹÓÃMessage Qeueue£¬±ÈÈçRabbitMQ»òÕßKafka×÷Ϊʼþ¼¤·¢ºÍʼþ´¦ÀíµÄÖÐÊà¡£ÕâÍùÍùÒâζ×ÅÔÚÏÖÓеÄinfrastructureÖ®ÍâÖÁÉÙÌíÖÃʼþ´¦ÀíµÄbroker(MQ)ºÍworker(¶ÁÈ¡²¢´¦ÀíʼþµÄÀý³Ì)¡£Èç¹ûÄãÓÃawsµÄ·þÎñ£¬SQS(»òÕßSNS+SQS)¿ÉÒÔ×÷Ϊbroker£¬È»ºóÅäÖÃÈô¸Ę́EC2×öworker¡£Èç¹ûij¸öʼþÁ÷µÄ²úÉúËÙ¶È´ó´ó³¬¹ýÕâ¸öʼþÁ÷µÄ´¦ÀíËÙ¶È£¬ÄÇôÎÒÃÇ»¹µÃ¿¼ÂÇʹÓÃauto scaling groupÔÚqueueµÄ³¤¶È³¬¹ýÒ»¶¨ãÐÖµ»òÕßµÍÓÚÒ»¶¨ãÐֵʱscale up / down¡£Õâ²»½öÂé·³£¬Ò²ÎÞ·¨Âú×ãijЩҪÇóÒ»¶¨·ÃÎÊÑÓ³Ù±£Õϵij¡¾°£¬ÒòΪ£¬ÐµÄEC2µÄÆô¶¯Ö±ÖÁÔÚauto scaling groupÀï±»±ê¼ÇΪ¿ÉÓÃÊÇÊýÊ®Ãë¼¶µÄ¶¯×÷¡£

lambda¾ÍºÜºÃµØÃÖ²¹ÁËÕâ¸öÎÊÌâ¡£lambdaµÄÖ´ÐÐÊÇÖÃÓÚcontainerÖ®Öеģ¬ËùÒÔÆô¶¯ËÙ¶È¿ÉÒÔµÍÖÁ¼¸Ê®µ½Êý°ÙºÁÃëÖ®¼ä£¬¶øÇÒËü¿ÉÒÔ±»ÒÑÖªµÄʼþ»òÕßij¶Î´úÂë´¥·¢£¬ËùÒÔ»ù±¾ÉÏÄã¿ÉÒÔÔÚ²»Í¬µÄÉÏÏÂÎÄÖÐÖ±½Óµ÷ÓûòÕß´¥·¢lambdaº¯Êý£¬µ±È»Ò²¿ÉÒÔʹÓÃSNS(kenisis)+lambdaÈ¡´úÔ­±¾ÓÃMQ+workerÍê³ÉµÄ¹¤×÷¡£

ÎÒÃÇ¿´ÉÏÊöʼþµÄ´¦Àí£º

´¦ÀíÓû§¶Ôij¸öURIµÄÇëÇó(´ò¿ªÄ³¸öÒ³Ãæ£¬µã»÷ij¸ö°´Å¥)£ºÊ¹ÓÃAPI gateway + lambda

Óû§×¢²áʱ·¢ÓʼþÑéÖ¤ÓÊÏ䵨ַ£º

¿ÉÒÔÔÚÓû§×¢²áµÄÁ÷³ÌÀïÖ±½Óµ÷ÓÃlambdaº¯Êý·¢ËÍÓʼþ

Èç¹ûʹÓÃdynamodb£¬¿ÉÒÔÅäÖÃlambdaº¯ÊýʹÆäʹÓÃdynamodb streamÔÚÓû§Êý¾ÝдÈëÊý¾Ýʱµ÷ÓÃlambda

Óû§ÉÏ´«Í¼Æ¬Ê±½«Í¼Æ¬Çиî³ÉºÏÊʵijߴç

¿ÉÒÔÅäÖÃlambdaº¯Êý±»S3µÄObject Create Event´¥·¢£¬ÔÚlambdaº¯ÊýÀïʹÓÃlibMagicµÄÑÜÉú¿â´¦ÀíͼƬ¡£

µ±log³ÖÐø³öÏÖÈô¸É´Î500 internal errorʱ½«´íÎóÈÕÖ¾¾ÛºÏ·¢¸øÖ¸¶¨µÄÓÊÏä

Èç¹ûÓÃkenisisÀ´ÊÕ¼¯log£¬ÄÇô¿ÉÒÔÅäÖÃlambdaº¯ÊýʹÆäʹÓÃkenisis stream

°ëÒ¹12µã£¬·ÖÎöÒ»ÌìÀ´ÊÕ¼¯µÄÊý¾Ý(±ÈÈçclickstream)²¢Éú³É±¨¸æ

ʹÓÃaws×îÐÂÖ§³Ölambda cronjob

µ±Êý¾Ý¿âµÄij¸ö×Ö¶ÎÐÞ¸Äʱ×öЩʺó´¦Àí

Èç¹ûʹÓÃdynamodb£¬Í¬ÉÏ(ÅäÖÃlambdaº¯ÊýʹÆäʹÓÃdynamodb)

Èç¹ûʹÓÃRDBMS£¬¿ÉÒÔʹÓÃdatabase trigger + lambda cronjob

Ïë½øÒ»²½ÉîÈë´úÂëµÄͯЬ£¬¿ÉÒÔ¿´ÎÒµÄÕâ¸örepo: https://github.com/tyrchen/aws-lambda-thumbnail ¡£Ëü½ÓÊÕS3µÄObject Create Event£¬²¢¶ÔeventÖÐËùÊöµÄͼƬ×öresize£¬´úÂëʹÓÃes6Íê³É¡£ÎªÁ˼ò±ãÆð¼û£¬Ã»ÓÐʹÓÃcloudformation´´½¨/¸üÐÂlambda function£¬¶øÊÇʹÓÃÁËaws CLI(¼ûmakefile)¡£Èç¹ûÏëÒªÔËÐд˴úÂ룬ÄãÐèÒª¶¨Òå×Ô¼ºµÄ $(LAMBDA_ROLE)£¬ÊÖ¹¤´´½¨S3 bucket²¢½«ÆäºÍlambdaº¯Êý¹ØÁª(Ŀǰaws cli²»Ö§³ÖS3 event)¡£

ʹÓÃlambda´¦Àí´óÊý¾Ý

lambda½üºõÎÞÏÞÀ©ÈݵÄÄÜÁ¦Ê¹µÃÎÒÃÇ¿ÉÒÔºÜÇáËɵؽøÐдóÈÝÁ¿Êý¾ÝµÄmap/reduce¡£Äã¿ÉÒÔʹÓÃÒ»¸ölambdaº¯Êý·ÖÅÉÊý¾Ý¸øÁíÒ»¸ölambdaº¯Êý£¬Ê¹ÆäÖ´ÐгÉǧÉÏÍò¸öÏàͬµÄʵÀý¡£¼ÙÉèÔÚÄãµÄS3Àï´æ·Å׏ýÈ¥Ò»Äê¼äÿСʱһ·ÝµÄÈÕÖ¾Îļþ£¬Îª×ösecurity audit£¬ÄãÐèÒª´ÓÖÐÕÒ³ö·ÇÕý³£·ÃÎʵÄÈÕÖ¾²¢¾ÛºÏ¡£Èç¹ûʹÓÃlambda£¬Äã¿ÉÒÔ°Ñ·ÃÎʸ߷åÆÚ(7am-11pm)ÿÁ½Ð¡Ê±µÄÈÕÖ¾£¬»òÕß·ÃÎÊµÍ¹ÈÆÚÿËÄСʱµÄÈÕÖ¾½»¸øÒ»¸ölambdaº¯Êý´¦Àí£¬´¦Àí½á¹û´æÈëdynamodb¡£ÕâÑù»áͬʱÔËÐнüǧ¸ölambdaº¯Êý(24 x 365 / 10)£¬ÔÚ²»µ½Ò»·ÖÖÓµÄʱ¼äÄÚÍê³ÉÕû¸ö¹¤×÷¡£Í¬ÑùµÄÊÂÇé½»¸øEC2È¥×öµÄ»°£¬µ¥µ¥ÎªÕâЩinstanceÅäÖÃÍøÂç¾ÍÈÃÈËÍ·ÌÛ£ºinstanceµÄÊýÁ¿¿ÉÄÜÒѾ­³¬³öÁË×ÓÍøÖÐÊ£ÓàIPµØÖ·µÄÊýÁ¿(±ÈÈ磬ÄãµÄVPCʹÓÃÁË24λÑÚÂë)¡£

ͬʱ£¬ÕâÑùÒ»¸öÁ¿¼¶µÄ´¦ÀíËùÐèµÄ»¨·Ñ¼¸ºõ¿ÉÒÔºöÂÔ²»¼Æ¡£¶øEC2²»×ãһСʱ°´Ò»Ð¡Ê±¼Æ·Ñ£¬ÉÏǧ̨t2.smallÔËÐÐһСʱµÄ»¨·ÑÔ¼µÈÓÚ26ÃÀ½ð£¬Ï൱¿É¹Û¡£

ʹÓÃlambda´øÀ´µÄ¼Ü¹¹ÓÅÊÆ

Èç¹û˵lambdaΪʼþ´¦ÀíºÍijЩ´óÈÝÁ¿Êý¾ÝµÄ¿ìËÙ´¦Àí´øÀ´ÁËеÄ˼·£¬²¢ÊµÊµÔÚÔÚÊ¡ÏÂÁËÔÚ»ù´¡ÉèÊ©ºÍ¹ÜÀíÉϵÄÕæ½ð°×Òø£¬ÄÇô£¬ÆäÔڼܹ¹ÉÏÒ²´øÀ´ÁËеÄ˼·ºÍÓÅÊÆ¡£

webϵͳÊÇÌìÈ»ÀëÉ¢µÄϵͳ£¬ÀïÃæº­¸ÇÁËÖÚ¶à´ó´óСС£¬»ò²¢Áª£¬»ò´®ÁªµÄ×Óϵͳ¡£ÒòΪ»ù´¡ÉèÊ©µÄ³É±¾ÎÊÌ⣬ºÜ¶àʱºòÎÒÃÇ×öÁËÂß¼­ÉϵķֲãºÍ½âñȴÔÚÎïÀíÉϽ«Æä²¿ÊðÔÚÒ»Æð£¬ÕâΪscalabilityºÍmanagement¶¼´øÀ´ÁËһЩÒþ»¼¡£scalabilityÉϵÄÒþ»¼ºÃÀí½â£¬managementÉϵÄÒþ»¼ÊÇÖ¸ÕâÎÞÐΰÑdevºÍops·Ö³É²»Í¬µÄteam£ºÒ»¸ö¸ödev team¿ÉÒÔºÍÂß¼­ÉϵÄ×Óϵͳһһ¶ÔÓ¦£¬µ«opsÈ´Òª¼¯ÖÐÆðÀ´´¦Àí²¿ÊðµÄÎÊÌ⣬ÃâµÃÒ»¸öÂß¼­ÉÏ¡¸½âñµÄ¹¦ÄܸüУ¬ÔÚÎïÀíÉÏÈ´Ó°ÏìÁËÕû¸öϵͳµÄÕý³£ÔËÐС£ÕâÖÖ»ì´îµÄ¹ÜÀí¼Ü¹¹ÊƱػáÓ°Ï첿ÊðµÄËٶȺÍЧÂÊ£¬ºÍ¡¸Ò»¸öteam¸ºÔð´Ó¹¦ÄÜ¿ª·¢µ½ÉÏÏßËùÓеÄÊÂÇ项µÄ˼·ÊÇÏà㣵ġ£

¾Ù¸öÀý×Ó£º¡¸Óû§ÉÏ´«Í¼Æ¬Ê±½«Í¼Æ¬Çиî³ÉºÏÊʵijߴ硹ÕâÒ»ÐèÇó¿ÉÄÜÔÚ²»¶Ï±ä»¯ºÍÓÅ»¯¡£¶ÔÓÚÈκÎʧ½¹µÄÕÕÆ¬ÎÒÃÇ»¹Ï£Íû×öһЩ½¹¾àÉϵÄÓÅ»¯£¬´ËÍ⣬Èç¹ûÉÏ´«µÄÊÇÍ·Ïñ£¬ÄÇôÎÒÃÇÏ£ÍûÇиîµÄλÖÃÊÇ×îºÏÊʵÄÍ·ÏñµÄλÖã¬Èç¹ûÉÏ´«µÄÊÇÕÕÆ¬£¬³ýÁËÇиîÍ⣬ÎÒÃÇ¿ÉÄÜ»¹ÒªÉú³ÉºÚ°×/»Ò¶ÈµÈµÈ²»Í¬Ö÷ÌâµÄͼƬ¡£Õâ¸ö¹¦ÄÜÔÚ²»¸Ä±äÒÑÓнӿڵÄǰÌáÏ£¬²¢²»»áÓ°ÏìÆäËûÍŶӵŤ×÷£¬µ«ÒòΪºÍÆäËû¹¦ÄÜ·ÅÔÚÒ»Æð²¿Êð£¬ËùÒÔ²¿ÊðµÄ¹¤×÷²¢²»ÄÜ×Ô¼ºËµÁËËã¡£ÒòΪ²¿Êð½»ÓÉרÃŵÄopsÍŶÓÍê³É(¿ÉÄÜÒ»Ì첿ÊðÒ»´Î£¬Ò²¿ÉÄÜÒ»Öܲ¿ÊðÒ»´Î)£¬Õâ¸öÍŶÓÎÞ·¨ºÜ¿ìµØ°ÑһЩÓÐÒâ˼µÄµã×ÓÄóöÀ´ÔÚÉú²ú»·¾³ÊÔÑ飬ÍÏÀÛÁËÊÔ´íºÍ´´Ð¡£

¶ølambda½â¾öÁË»ù´¡ÉèÊ©ÉϵÄÎÊÌ⣬ÿ¸ö×ÓϵͳÉõÖÁ×Ó¹¦ÄÜ(Сµ½º¯Êý¼¶µÄÁ£¶È)¶¼¿ÉÒÔ¶ÀÁ¢²¿Êð£¬Õâ¾ÍÈù¦ÄÜ¿ª·¢ÎÞ±ÈÇáËÉ¡£Ö»Òª½ç¶¨ºÃʼþÁ÷µÄÊäÈëÊä³ö£¬ÈκÎʼþ´¦ÀíµÄ¹¦Äܱ¾Éí¿ÉÒÔ°´ÕÕ×Ô¼ºÍŶӵĽÚ×à¸üС£

²¿ÊðºÍ¹ÜÀíÉϵĸı䷴¹ýÀ´»áÓ°Ïì¼Ü¹¹£¬´Ù³ÉÒÔmicro-serviceΪÖ÷ÌåµÄϵͳ¼Ü¹¹¡£micro-serviceÊëºÃÊ뻵ĿǰÉÐÓÐÕùÂÛ£¬µ«micros-ervice²»½öÓµ±§Èí¼þÉè¼ÆÉϵĽâñͬʱӵ±§Èí¼þ²¿ÊðÉϵĽâñîÊDz»ÕùµÄÊÂʵ¡£Ò»¸öwebϵͳµÄ³É°ÜºÍÆä²¿Êð·½°¸ÓÐ×ÅÃÜÇеĹØÏµ£¬ñîºÏ¶ÈÔ½µÍµÄ²¿Êð·½°¸£¬Æä¾Ö²¿²¿Êð¸üеÄÄÜÁ¦Ò²¾ÍԽǿ£¬¶øÒ»¸öϵͳԽ´óÔ½¸´ÔÓ£¬¾ÍÔ½²»ÈÝÒ×ÕûÌ岿Êð£¬ËùÒÔ¶Ô¾Ö²¿²¿ÊðµÄÒªÇóÒ²Ô½À´Ô½¸ß¡£ÕâÈçͬһ¸öÓлúÌ壬Æä×ÔÎÒ¸üдÓÀ´²»¿¿¡¸ËÀÍö-ÖØÉú¡¹£¬¶øÊÇͨ¹ýг´úл¡£

´ËÍ⣬lambda»¹ÊÇÒ»¸ö³ä·ÖÊÜÏ޵Ļ·¾³£¬¸ø´úÂëµÄ׫д´øÀ´ºÜ¶àÔ¼ÊøÌõ¼þ¡£ÎÒ֮ǰÔÚ̸¼Ü¹¹µÄʱºòÔø¾­Ìáµ½£¬Ô¼ÊøÌõ¼þÊǺÃÊ£¬Éè¼ÆÈí¼þÊ×ÏÈÒª¸ãÃ÷°×Ô¼ÊøÌõ¼þ¡£lambda×îÇ¿µÄ¼¸¸öÔ¼ÊøÊÇ£º

lambdaº¯Êý±ØÐëÉè¼Æ³ÉÎÞ״̬µÄ£¬ÒòΪÆäËùÓÐ״̬(Äڴ棬´ÅÅÌ)¶¼»áÔÚÆä¶Ì¶ÌµÄÉúÃüÖÜÆÚ½áÊøºóÏûʧ

lambdaº¯ÊýÓÐ×î´óÄÚ´æÏÞÖÆ

lambdaº¯ÊýÓÐ×î´óÔËÐÐʱ¼äÏÞÖÆ

ÕâЩÏÞÖÆÒªÇóÄã°Ñÿ¸ölambdaº¯ÊýÉè¼ÆµÃ¾¡¿ÉÄܼòµ¥£¬Ò»´ÎÖ»×öÒ»¼þÊ£¬µ«°ÑËü×öµ½×îºÃ¡£ºÜ·ûºÏunixµÄÕÜѧ¡£·´¹ýÀ´£¬ÕâЩÏÞÖÆÇ¿ÆÈÄã½ÓÊܼ«¼òÖ÷ÒåÖ®Í⣬ΪÄã´øÀ´ÁËÎÞÏÞÀ©Èݵĺô¦¡£

JAWSºÍserver-less architecture

Á½Èý¸öÔÂǰ£¬ÎÒ½éÉÜÁËJAWS£¬µ±Ê±ËüÊÇÒ»¸öÀûÓÃaws¸Õ¸ÕÍÆ³öµÄAPI gatewayºÍlambdaÅäºÏ£¬À´ÌṩREST APIµÄ¹¤¾ß£¬Èç¹û¸¨ÒÔ¼ÜÉèÔÚS3Éϵľ²Ì¬×ÊÔ´£¬¿ÉÒÔ´òÔìÒ»¸öÍêÈ«²»ÒÀÀµEC2µÄÍøÕ¾¡£Õâ¸öÏîÄ¿´ÓÁíÒ»¸ö½Ç¶ÈÚ¹ÊÍÁËlambdaµÄ¾Þ´óÍþÁ¦£¬ËùÒÔdemoÒ»³ö¯£¬¾Í»ñµÃÁËÒ»Á½Ç§µÄgithub star¡£Èç½ñJAWSÓðÒíÕéÖÁ·áÂú£¬ÍƳöÁËÉд¦ÔÚbetaµÄjaws fraemwork v1°æ±¾£ºhttps://github.com/jaws-framework/JAWS£¬²¢ÇÒÔÚre:invent 2015ÉÏ×öÁËÏ൱¾«²ÊµÄÖ÷ÌâÑݽ²(¼ûgithub)¡£JAWS framework´óÁ¿Ê¹ÓÃAPI gateway£¬cloudformationºÍlambdaÀ´Ìṩserverless architecture£¬ÖµµÃ¹Ø×¢¡£

Ò»¸öÍêÕûµÄserverless website¿ÉÒÔÕâô¿¼ÂÇ£º

Óû§×¢²áʹÓãºAPI gateway£¬lambda£¬dynamodb£¬SES(·¢Óʼþ)

Óû§µÇ¼ʹÓãºAPI gateway£¬lambda£¬»òÕß(cognitoºÍIAM£¬Èç¹ûÒª¼¯³ÉµÚÈý·½µÇ¼)

Óû§UGC¸÷ÖÖÄÚÈÝ£ºAPI gateway£¬lambda£¬dynamodb

ÆäËûREST API£ºAPI gateway + lambda

¸÷ÖÖʼþ´¦ÀíʹÓÃlambda

ËùÓеľ²Ì¬×ÊÔ´·ÅÔÚS3ÉÏ£¬Ê¹ÄÜstatic website hosting£¬È»ºóͨ¹ýjavascript·ÃÎÊcognito»òÕßREST API

ÈÕÖ¾´æ·ÅÔÚcloudWatch£¬²¢ÔÚÐèÒªµÄʱºò´¥·¢lambda

clickstream´æÔÚÔÚkenisis£¬²¢´¥·¢lambda

Èç´ËÕâ°ã£¬Ò»¸ö¾ß±¸»ù±¾¹¦ÄܵÄserverless website¾Í´îÆðÀ´ÁË¡£

Èç¹ûÄã¶ÔJAWS¸ÐÐËȤ£¬¿ÉÒÔ³¢ÊÔÎÒÉú³ÉµÄ https://github.com/tyrchen/jaws-test¡£

±ÜÃâʧ¿Ø

lambda´øÀ´µÄ²¿ÊðÉϵĽâñîͬʱÊǰÑË«Èн£¡£³ÉǧÉÏÍò¸ö¹¦Äܸ÷ÒìµÄlambdaº¯Êý(ÔÙ¼ÓÉϸ÷×Ô²»Í¬µÄ°æ±¾)£¬ºÜÈÝÒ×°ÑÏµÍ³ÍÆÏòʧ¿ØµÄ±ßÔµ¡£ËùÒÔ£¬×îºÃͨ¹ýÒÔÏÂÊÖ¶ÎÀ´±ÜÃâʧ¿Ø£º

Ϊlambdaº¯ÊýºÏÀíÃüÃû£ºÊ¹ÓÃÒ»¶¨¹æ¸ñµÄ£¬¶¨ÒåÁ¼ºÃµÄǰ׺(¿ÉÀà±ÈARN)

ʹÓÃcloudformation´¦Àí×ÊÔ´µÄ·ÖÅäºÍ²¿Êð(¿ÉÒÔ¿¼ÂÇJAWS)

¿ÉÊÓ»¯ÏµÍ³µÄʵʱÊý¾ÝÁ÷/ʼþÁ÷(ÀàËÆÏÂͼ)

(ͼƬÀ´×ÔyoutubeÊÓÆµ½ØÍ¼£ºA Day in the Life of a Netflix Engineer£¬Í¼Æ¬ºÍ±¾ÎĹØÏµ²»´ó£¬µ«Ë¼ÏëÀàËÆ)

ÓÉÓÚ»ùÓÚlambdaµÄÖî¶àÓ¦Óó¡¾°»¹´¦ÔÚ¸Õ¸ÕÆð²½µÄ½×¶Î£¬ËùÒԺܶàorchestrationµÄÊÂÇ黹ÐèÒª×Ô¼º×ö£¬ÏàÐŵÈlambdaµÄʹÓÃÈÕÇ÷³ÉÊìʱ£¬¾ÍÏñdockerÉú̬ȦһÑù£¬»á²úÉúÖÚ¶àµÄorchestrationµÄ¹¤¾ß£¬½â¾ö»òÕß»º½âϵͳʧ¿ØµÄÎÊÌâ¡£

   
2969 ´Îä¯ÀÀ       27
Ïà¹ØÎÄÕÂ

»ùÓÚEAµÄÊý¾Ý¿â½¨Ä£
Êý¾ÝÁ÷½¨Ä££¨EAÖ¸ÄÏ£©
¡°Êý¾Ýºþ¡±£º¸ÅÄî¡¢ÌØÕ÷¡¢¼Ü¹¹Óë°¸Àý
ÔÚÏßÉ̳ÇÊý¾Ý¿âϵͳÉè¼Æ ˼·+Ч¹û
 
Ïà¹ØÎĵµ

GreenplumÊý¾Ý¿â»ù´¡Åàѵ
MySQL5.1ÐÔÄÜÓÅ»¯·½°¸
ijµçÉÌÊý¾ÝÖÐ̨¼Ü¹¹Êµ¼ù
MySQL¸ßÀ©Õ¹¼Ü¹¹Éè¼Æ
Ïà¹Ø¿Î³Ì

Êý¾ÝÖÎÀí¡¢Êý¾Ý¼Ü¹¹¼°Êý¾Ý±ê×¼
MongoDBʵս¿Î³Ì
²¢·¢¡¢´óÈÝÁ¿¡¢¸ßÐÔÄÜÊý¾Ý¿âÉè¼ÆÓëÓÅ»¯
PostgreSQLÊý¾Ý¿âʵսÅàѵ
×îл¼Æ»®
DeepSeekÔÚÈí¼þ²âÊÔÓ¦ÓÃʵ¼ù 4-12[ÔÚÏß]
DeepSeek´óÄ£ÐÍÓ¦Óÿª·¢Êµ¼ù 4-19[ÔÚÏß]
UAF¼Ü¹¹ÌåϵÓëʵ¼ù 4-11[±±¾©]
AIÖÇÄÜ»¯Èí¼þ²âÊÔ·½·¨Óëʵ¼ù 5-23[ÉϺ£]
»ùÓÚ UML ºÍEA½øÐзÖÎöÉè¼Æ 4-26[±±¾©]
ÒµÎñ¼Ü¹¹Éè¼ÆÓ뽨ģ 4-18[±±¾©]

MySQLË÷Òý±³ºóµÄÊý¾Ý½á¹¹
MySQLÐÔÄܵ÷ÓÅÓë¼Ü¹¹Éè¼Æ
SQL ServerÊý¾Ý¿â±¸·ÝÓë»Ö¸´
ÈÃÊý¾Ý¿â·ÉÆðÀ´ 10´óDB2ÓÅ»¯
oracleµÄÁÙʱ±í¿Õ¼äдÂú´ÅÅÌ
Êý¾Ý¿âµÄ¿çƽ̨Éè¼Æ

²¢·¢¡¢´óÈÝÁ¿¡¢¸ßÐÔÄÜÊý¾Ý¿â
¸ß¼¶Êý¾Ý¿â¼Ü¹¹Éè¼ÆÊ¦
HadoopÔ­ÀíÓëʵ¼ù
Oracle Êý¾Ý²Ö¿â
Êý¾Ý²Ö¿âºÍÊý¾ÝÍÚ¾ò
OracleÊý¾Ý¿â¿ª·¢Óë¹ÜÀí

GE Çø¿éÁ´¼¼ÊõÓëʵÏÖÅàѵ
º½Ìì¿Æ¹¤Ä³×Ó¹«Ë¾ Nodejs¸ß¼¶Ó¦Óÿª·¢
ÖÐÊ¢Òæ»ª ׿Խ¹ÜÀíÕß±ØÐë¾ß±¸µÄÎåÏîÄÜÁ¦
ijÐÅÏ¢¼¼Êõ¹«Ë¾ PythonÅàѵ
ij²©²ÊITϵͳ³§ÉÌ Ò×ÓÃÐÔ²âÊÔÓëÆÀ¹À
ÖйúÓÊ´¢ÒøÐÐ ²âÊÔ³ÉÊì¶ÈÄ£Ðͼ¯³É(TMMI)
ÖÐÎïÔº ²úÆ·¾­ÀíÓë²úÆ·¹ÜÀí