±à¼ÍƼö: |
±¾ÎÄÖ÷Òª½éÉÜÁËÔÆÔÉú¼Ü¹¹µÄ¼ò½é¡¢ÆðÔ´¡¢¹Ø¼üµã¡¢ÏÖ×´¼°Î´À´£¬Ï£Íû¶ÔÄãÓаïÖú¡£
±¾À´×ÔÓÚËѺü£¬ÓÉ»ðÁú¹ûÈí¼þLinda±à¼¡¢ÍƼö¡£ |
|
¼ò½é
ÔÆÔÉú¼Ü¹¹±¾ÖÊÉÏÒ²ÊÇÒ»ÖÖÈí¼þ¼Ü¹¹£¬×î´óµÄÌصãÊÇÔÚÔÆ»·¾³ÏÂÔËÐУ¬Ò²ËãÊÇ΢·þÎñµÄÒ»ÖÖÑÓÉì¡£
ÆðÔ´
1. ÔÆÔÉú£¨Cloud Native£©µÄÓÉÀ´
ÔÆÔÉúµÄ¸ÅÄî×îÔ翪ʼÓÚ 2010 Ä꣬ÔÚµ±Ê± Paul Fremantle µÄһƪ²©¿ÍÖб»Ìá¼°£¬ËûÒ»Ö±ÏëÓÃÒ»¸ö´Ê±í´ïÒ»Öּܹ¹£¬ÕâÖּܹ¹ÄÜÃèÊöÓ¦ÓóÌÐòºÍÖмä¼þÔÚÔÆ»·¾³ÖеÄÁ¼ºÃÔËÐÐ״̬¡£Òò´ËËû³éÏó³öÁË
Cloud Native ±ØÐë°üº¬µÄÊôÐÔ£¬Ö»ÓÐÂú×ãÁËÕâЩÊôÐÔ²ÅÄܱ£Ö¤Á¼ºÃµÄÔËÐÐ״̬¡£µ±Ê±Ìá³öÔÆÔÉúÊÇΪÁËÄܹ¹½¨Ò»ÖÖ·ûºÏÔƼÆËãÌØÐԵıê×¼À´Ö¸µ¼ÔƼÆËãÓ¦Óõıàд¡£
ºóÀ´µ½ 2013 Äê Matt Stine ÔÚÍÆÌØÉÏѸËÙÍƹãÔÆÔÉú¸ÅÄ²¢ÔÚ 2015 Ä꡶ǨÒƵ½ÔÆÔÉú¼Ü¹¹¡·Ò»ÊéÖж¨ÒåÁË·ûºÏÔÆÔÉú¼Ü¹¹µÄÌØÕ÷£º12
ÒòËØ¡¢Î¢·þÎñ¡¢×Ô·þÎñ¡¢»ùÓÚ API Ð×÷¡¢¿¸´àÈõÐÔ¡£¶øÓÉÓÚÕâ±¾ÊéµÄÍƹ㳩Ïú£¬ÕâÒ²³ÉÁ˺ܶàÈ˶ÔÔÆÔÉúµÄÔçÆÚÓ¡Ïó£¬Í¬Ê±ÔÆÔÉúÒ²±»
12 ÒªËرä³ÉÁËÒ»¸ö³éÏóµÄ¸ÅÄî¡£Matt Stine ÈÏΪÔÚµ¥Ìå¼Ü¹¹Ïò Cloud Native ǨÒƵĹý³ÌÖУ¬ÐèÒªÎÄ»¯¡¢×éÖ¯¡¢¼¼Êõ¹²Í¬±ä¸ï¡£
½â¶Á£º**ÔÆÔÉú¼Ü¹¹±¾ÖÊÉÏÒ²ÊÇÒ»ÖÖÈí¼þ¼Ü¹¹£¬×î´óµÄÌصãÊÇÔÚÔÆ»·¾³ÏÂÔËÐУ¬Ò²ËãÊÇ΢·þÎñµÄÒ»ÖÖÑÓÉì**¡£
2. CNCF »ù½ð»á³ÉÁ¢¼°ÔÆÔÉú¸ÅÄîµÄÑÝ»¯
2015 ÄêÓÉ Linux »ù½ð»á·¢ÆðÁËÒ»¸ö The Cloud Native Computing
Foundation£¨CNCF£© »ù½ð×éÖ¯£¬CNCF»ù½ð»áµÄ³ÉÁ¢±êÖ¾×ÅÔÆÔÉúÕýʽ½øÈë¸ßËÙ·¢Õ¹¹ìµÀ£¬Google¡¢Cisco¡¢Docker
¸÷´ó³§·×·×¼ÓÈ룬²¢Öð²½¹¹½¨³öΧÈÆ Cloud Native µÄ¾ßÌ幤¾ß£¬¶øÔÆÔÉúÕâ¸öµÄ¸ÅÄîÒ²Öð½¥±äµÃ¸ü¾ßÌ廯¡£Òò´Ë£¬CNCF
»ù½ð×î³õ¶ÔÔÆÔÉú¶¨ÒåÊÇÒ²ÊÇÉîյģ¬µ±Ê±°ÑÔÆÔÉú¶¨Î»ÎªÈÝÆ÷»¯·â×°+×Ô¶¯»¯¹ÜÀí+ÃæÏò΢·þÎñ£º
The CNCF defines ¡°cloud-native¡± a little more narrowly,
to mean using open source software stack to be containerized,
where each part of the app is packaged in its own
container, dynamically orchestrated so each part is
actively scheduled and managed to optimize resource
utilization, and microservices-oriented to increase
the overall agility and maintainability of applications.
ÕâÖ÷ÒªÒòΪ CNCF »ù½ð»áÔÚµ±Ê±µÄºËÐÄÈÍ·Èí¼þ¾ÍÊÇ K8s£¬Òò´ËÔÚ¸ÅÄÒåÉÏÖ÷ÒªÊÇΧÈÆ×ÅÈÝÆ÷±àÅŽ¨Á¢ÆðÀ´µÄÉú̬¡£ÆäʵÕâÒ²ÊÇΪʲôÎÒÃÇ¿ÉÒÔ¿´µ½
CNCF ¶¨ÒåÔÆÔÉúµÄʱºòÓÐʱ¸Ð¾õ¾ÍÊÇÔÙ˵ÈÝÆ÷Éú̬¡£
µ½ÁË 2017 Äê, ÔÆÔÉúÓ¦ÓÃÌá³öÕßÖ®Ò»µÄ Pivotal ÔÚÆä¹ÙÍøÉϽ«ÔÆÔÉúµÄ¶¨Òå¸ÅÀ¨Îª DevOps¡¢³ÖÐø½»¸¶¡¢Î¢·þÎñ¡¢ÈÝÆ÷ËÄ´óÌØÕ÷£¬ÕâÒ²³ÉÁ˺ܶàÈ˶Ô
Cloud Native µÄ»ù´¡Ó¡Ïó¡£
¶øµ½ 2018 Ä꣬Ëæ×Å Service Mesh µÄ¼ÓÈ룬CNCF ¶ÔÔÆÔÉúµÄ¶¨Òå·¢ÉúÁ˸ı䣬¶øÕâÒ²Öð½¥³ÉΪ±»´ó¼ÒÈϿɵĹٷ½¶¨Ò壺
Cloud native technologies empower organizations to
build and run scalable applications in modern, dynamic
environments such as public, private, and hybrid clouds.
Containers, service meshes, microservices, immutable
infrastructure, and declarative APIs exemplify this
approach.
These techniques enable loosely coupled systems that
are resilient, manageable, and observable. Combined
with robust automation, they allow engineers to make
high-impact changes frequently and predictably with
minimal toil.
The Cloud Native Computing Foundation seeks to drive
adoption of this paradigm by fostering and sustaining
an ecosystem of open source, vendor-neutral projects.
We democratize state-of-the-art patterns to make these
innovations accessible for everyone.
×ܽáһϾÍÊÇ£º
»ùÓÚÈÝÆ÷¡¢·þÎñÍø¸ñ¡¢Î¢·þÎñ¡¢²»¿É±ä»ù´¡ÉèÊ©ºÍÉùÃ÷ʽ API ¹¹½¨µÄ¿Éµ¯ÐÔÀ©Õ¹µÄÓ¦Óá£
»ùÓÚ×Ô¶¯»¯¼¼Êõ¹¹½¨¾ß±¸¸ßÈÝ´íÐÔ¡¢Ò×¹ÜÀíºÍ±ãÓÚ¹Û²ìµÄËÉñîºÏϵͳ¡£
¹¹½¨Ò»¸öͳһµÄ¿ªÔ´ÔƼ¼ÊõÉú̬£¬ÄܺÍÔƳ§ÉÌÌṩµÄ·þÎñ½âñî¡£
¿ÉÒÔ¿´³ö£¬CNCF ÔÚµ±Ç°¶¨Òå»ù´¡ÉϼÓÉÏÁË·þÎñÍø¸ñ (service mesh) ºÍÉùÃ÷ʽ API£¬ÕâΪÔÆÔÉúµÄ¸ÅÄî²ûÊöÔö¼ÓÁ˸üÉîÒ»²ãµÄÒâÒ壬Ҳ¾ÍÊǽ¨Á¢Ò»¸öÏà¶ÔÖÐÁ¢µÄ¿ªÔ´ÔÆÉú̬¡£Õâ¶ÔÔÆÔÉúµÄÉú̬¶¨Î»ÊǺÜÖØÒªµÄ£¬Ò²Ëã
CNCF ×î³õ³ÉÁ¢µÄ×ÚÖ¼Ö®Ò»£¬´òÆÆÔƾÞÍ·µÄ¢¶Ï¡£
½â¶Á£º¸ÅÄîËæ×Åеļ¼Êõ·¢Õ¹¶øÑÝ»¯
µÚÒ»½×¶Î£ºÈÝÆ÷»¯·â×°+×Ô¶¯»¯¹ÜÀí+ÃæÏò΢·þÎñ
µÚ¶þ½×¶Î£ºDevOps¡¢³ÖÐø½»¸¶¡¢Î¢·þÎñ¡¢ÈÝÆ÷
µÚÈý½×¶Î£ºDevOps¡¢³ÖÐø½»¸¶¡¢ÈÝÆ÷¡¢·þÎñÍø¸ñ¡¢Î¢·þÎñ¡¢ÉùÃ÷ʽAPI
3. ¶ÔÔÆÔÉúµÄ½â¹¹
¶ÔÒ»¸ö´ÊµÄ½â¶Á£¬³ýÁË¿´ÆäÀúÊ··¢Õ¹±³¾°£¬»¹ÓÐÒ»ÖÖÆ«ÏòÓÚÓïÑÔѧµÄ·½·¨½â¶Á£¬Ò²¾ÍÊÇÎÒÃdz£ËµµÄ´Ó¡°×ÖÃæÒâ˼¡±À´Àí½â¡£
Cloud Native£¬´Ó´ÊÃæÉϲð½âÆäʵ¾ÍÊÇ Cloud ºÍ Native£¬Ò²¾ÍÊÇÔƼÆËãºÍÍÁÖøµÄÒâ˼¡ª¡ªÔƼÆËãÉϵÄÔÉú¾ÓÃñ£¬¼´ÌìÉú¾ß±¸ÔƼÆËãµÄÇ׺ÍÁ¦¡£
Ê×ÏÈ´Ó Cloud À´Àí½â£¬ÔÆ¿ÉÒÔ¿´×÷ÊÇÒ»ÖÖÌṩÎȶ¨¼ÆËã´æ´¢×ÊÔ´µÄ¶ÔÏó¡£ÎªÁËʵÏÖÕâÒ»µã£¬ÔÆÌṩÁËÏñÐéÄ⻯¡¢µ¯ÐÔÀ©Õ¹¡¢¸ß¿ÉÓᢸßÈÝ´íÐÔ¡¢×Ô»Ö¸´µÈ»ù±¾ÊôÐÔ£¬ÕâÊÇÔÆÔÉú×÷ΪһÖÖÔƼÆËãËù¾ß±¸µÄµÚÒ»²ãº¬Òå¡£µÚ¶þ²ãÒª´Ó
Native À´¿´£¬ÔÆÔÉúºÍÔÚÔÆÉÏÅܵĴ«Í³Ó¦Óò»Í¬¡£Ò»Ð©»ùÓÚ¹«ÓÐÔƴµÄÓ¦ÓÃÊÇ»ùÓÚ´«Í³µÄ SOA ¼Ü¹¹À´´î½¨µÄ£¬È»ºóÔÙÒÆÖ²µ½ÔÆÉÏÈ¥ÔËÐУ¬ÄÇôÕâЩӦÓúÍÔƵÄÕûºÏ·Ç³£µÍ¡£
ΪʲôµÍÄØ£¿ÔÆ×÷ΪһÖÖ·Ö²¼Ê½¼Ü¹¹£¬Æä¡°ÍÁÖø¾ÓÃñ¡±Ò²Ó¦¸ÃÊÇ»ùÓÚ·Ö²¼Ê½¼Ü¹¹Éè¼Æ³öÀ´µÄ£¬¶ø΢·þÎñ»ò Serverless
ÕâÖÖ½«·þÎñ»òº¯Êý²ð·Ö³ÉÒ»¸ö¸öÄ£¿éµÄËÉñîºÏϵͳ£¬ÌìÈ»¾ß±¸·Ö²¼Ê½Éè¼ÆµÄÊôÐÔ¡£ÕâÊÇ Native µÄµÚÒ»ÖÖ±íÏÖ¡£
Æä´ÎÔÆ×÷ΪһÖÖ PaaS ·þÎñ£¬Õâλ¡°ÍÁÖø¾ÓÃñ¡±´Ó³öÉú(Éè¼Æ)µ½³É³¤(¿ª·¢)£¬ÔÙµ½Éú»î(²¿Êð)¶¼Ó¦¸ÃÊÇ»ùÓÚÔƵÄÀíÄîÀ´ÊµÏֵģ¬ÄÇô¾ÍÐèÒªÒ»Ì××Ô¶¯»¯µÄ¿ª·¢Á÷³Ì
CI/CD À´ÊµÏÖ¡£ÕâÊÇ Native µÄµÚ¶þÖÖ±íÏÖ¡£
¶ø×îºó¡°ÍÁÖø¾ÓÃñ¡±µÄÌصãÏ£Íû×öµ½Äܹ»ÊÊÓ¦ËùÓÐÔƶˣ¬¶¼ÄÜ×öµ½ÎÞ·ìµÄÔËÐкÍÁ¬½Ó¡£
½â¶Á£ºÇ°ÃæÈý½Ú¶¼ÊÇÀ´×Ô¡¶Ê²Ã´ÊÇÔÆÔÉú£¿ÁÄÁÄÔÆÔÉúµÄ½ñÉú¡·ÕâƪÎÄÕÂÖС£
¹Ø¼üµã
ÏÂÃæ½éÉÜÔÆÔÉú¼Ü¹¹µÄһЩ¹Ø¼ü¼¼Êõµã¡£Éæ¼°ÄÚÈÝÓÉ΢·þÎñ¡¢·Ö²¼Ê½³£¼û¼Ü¹¹Éè¼Æ(ÐÔÄÜ¡¢Êý¾ÝÒ»ÖÂÐÔ¡¢¿ÉÀ©Õ¹ÐÔ¡¢¸ß¿ÉÓÃ)¡¢Ñз¢Á÷³Ì¡¢DevOps¡¢×éÖ¯ÎÄ»¯µÈ£¬¿ÉÒÔ¸ù¾ÝĿ¼ѡÔñÐԵĿ´¿´£¬»ù±¾É϶¼ÊÇһЩ½éÉÜ£¬ÏêϸµÄÉè¼Æ¿ÉÒԲ鿴Ïà¹ØÎĵµ½øÒ»²½Á˽⡣
1. ΢·þÎñ
Martin Fowler Óë James Lewis ¹²Í¬Ìá³öÁË΢·þÎñµÄ¸ÅÄ¶¨ÒåÁË΢·þÎñ¼Ü¹¹ÊÇÒÔ¿ª·¢Ò»×éСÐÍ·þÎñµÄ·½Ê½À´¿ª·¢Ò»¸ö¶ÀÁ¢µÄÓ¦ÓÃϵͳ£¬Ã¿¸ö·þÎñ¶¼ÒÔÒ»¸ö¶ÀÁ¢½ø³ÌµÄ·½Ê½ÔËÐУ¬Ã¿¸ö·þÎñÓëÆäËû·þÎñʹÓÃÇáÁ¿¼¶£¨Í¨³£ÊÇ
HTTP API£©Í¨ÐÅ»úÖÆ¡£ÕâЩ·þÎñÊÇΧÈÆÒµÎñ¹¦Äܹ¹½¨µÄ£¬¿ÉÒÔͨ¹ýÈ«×Ô¶¯²¿Êð»úÖƶÀÁ¢²¿Êð£¬Í¬Ê±·þÎñ»áʹÓÃ×îС¹æÄ£µÄ¼¯ÖйÜÀí£¨ÀýÈç
Docker£©ÄÜÁ¦£¬Ò²¿ÉÒÔ²ÉÓò»Í¬µÄ±à³ÌÓïÑÔºÍÊý¾Ý¿â¡£
1£©ÓÅÊÆ
Ãô½Ý¿ª·¢°ïÖúÎÒÃǼõÉÙÀË·Ñ¡¢¿ìËÙ·´À¡£¬ÒÔÓû§ÌåÑéΪĿ±ê¡£
³ÖÐø½»¸¶´ÙʹÎÒÃǸü¿ì¡¢¸ü¿É¿¿¡¢¸üƵ·±µØ¸Ä½øÈí¼þ£»»ù´¡ÉèÊ©¼´´úÂ루Infrastructure As
Code£©°ïÖúÎÒÃǼò»¯»·¾³µÄ¹ÜÀí¡£
2£©Ê²Ã´Ê±ºò¿ªÊ¼Î¢·þÎñ¼Ü¹¹
¼¸ºõËùÓгɹ¦µÄ΢·þÎñ¼Ü¹¹¶¼ÊÇ´ÓÒ»¸ö¾Þ´óµÄµ¥Ìå¼Ü¹¹¿ªÊ¼µÄ£¬²¢ÇÒ¶¼ÊÇÓÉÓÚµ¥Ìå¼Ü¹¹Ì«´ó¶ø±»²ð·ÖΪ΢·þÎñ¼Ü¹¹¡£
ÔÚËùÒ»¿ªÊ¼¾Í¹¹½¨Î¢·þÎñ¼Ü¹¹µÄ¹ÊÊÂÖУ¬ÍùÍù¶¼ÓÐÈËÓöµ½Á˾޴óµÄÂé·³¡£
3£©ÈçºÎ¾ö¶¨Î¢·þÎñ¼Ü¹¹µÄ²ð·ÖÁ£¶È
΢·þÎñ¼Ü¹¹Öеġ°Î¢¡±×Ö£¬²¢²»´ú±í×㹻С£¬Ó¦¸Ã½âÊÍΪºÏÊÊ¡£
4£©µ¥Ìå¼Ü¹¹ VS ΢·þÎñ¼Ü¹¹¶Ô±È
Á÷ÐеÄ΢·þÎñ¿ò¼Ü£ºspring-cloud/dubbo¡£
2. Ãô½Ý»ù´¡ÉèÊ©¼°¹«¹²»ù´¡·þÎñ
Ãô½Ý»ù´¡ÉèÊ©¼°¹«¹²»ù´¡·þÎñÊÇ΢·þÎñ¼Ü¹¹³É°ÜµÄ¹Ø¼üÒòËØÖ®Ò»£¬Äܹ»¼ò»¯ÒµÎñ¿ª·¢¡£
1£©Ãô½Ý»ù´¡ÉèÊ©µÄÄ¿±ê
±ê×¼»¯£ºËùÓеĻù´¡ÉèÊ©×îºÃ¶¼ÊDZê×¼µÄ¡£
¿ÉÌæ»»£ºÈÎÒâ½Úµã¶¼Äܹ»±»ÇáÒ׵ش´½¨¡¢Ïú»Ù¡¢Ìæ»»¡£
×Ô¶¯»¯£ºËùÓеIJÙ×÷¶¼Í¨¹ý¹¤¾ß×Ô¶¯»¯Íê³É£¬ÎÞÐëÈ˹¤¸ÉÔ¤¡£
¿ÉÊÓ»¯£ºµ±Ç°»·¾³Òª×öµ½¿É¿Ø£¬¾ÍÐèÒª¶Ôµ±Ç°µÄ»·¾³×´¿ö¿ÉÊÓ¡£
¿É×·ËÝ£ºËùÓеÄÅäÖÃͳһ×÷Ϊ´úÂë½øÐа汾»¯¹ÜÀí£¬ËùÓеIJÙ×÷¶¼¿ÉÒÔ×·ËÝ¡£
¿ìËÙ£º×ÊÔ´ÉêÇë¼°ÊÍ·ÅÒªÇóÃ뼶Íê³É£¬ÒÔÊÊÓ¦µ¯ÐÔÉìËõºÍ¹ÊÕÏÇл»µÄÒªÇó¡£
2£©»ùÓÚ¹«¹²»ù´¡·þÎñµÄƽ̨»¯
ƽ̨»¯ÊÇÖ¸ÀûÓù«¹²»ù´¡·þÎñÌáÉýÕûÌå¼Ü¹¹ÄÜÁ¦¡£
¹«¹²»ù´¡·þÎñÊÇÖ¸ÓëÒµÎñÎ޹صġ¢Í¨ÓõķþÎñ£¬°üÀ¨¼à¿Ø·þÎñ¡¢»º´æ·þÎñ¡¢ÏûÏ¢·þÎñ¡¢Êý¾Ý¿â·þÎñ¡¢¸ºÔؾùºâ¡¢·Ö²¼Ê½Ðµ÷¡¢·Ö²¼Ê½ÈÎÎñµ÷¶ÈµÈ¡£
3£©³£¼ûµÄƽ̨·þÎñ
¼à¿Ø¸æ¾¯·þÎñ
·Ö²¼Ê½ÏûÏ¢Öмä¼þ·þÎñ
·Ö²¼Ê½»º´æ·þÎñ
·Ö²¼Ê½ÈÎÎñµ÷¶È·þÎñ
3. ·Ö²¼Ê½¼Ü¹¹ - ¿ÉÓÃÐÔÉè¼Æ
¿ÉÓÃÐÔ£¨Availability£©ÊǹØÓÚϵͳ¿ÉÒÔ±»Ê¹ÓõÄʱ¼äµÄÃèÊö£¬ÒÔ¶ªÊ§µÄʱ¼äΪÇý¶¯£¨Be Driven
by Lost Time£©¡£
¿ÉÓÃÐÔ¹«Ê½£ºA=Uptime /£¨Uptime+Downtime£©¡£ÆäÖУ¬Uptime ÊÇ¿ÉÓÃʱ¼ä£¬Downtime
ÊDz»¿ÉÓÃʱ¼ä¡£
1£©Ê²Ã´½µµÍÁË¿ÉÓÃÐÔ
·¢²¼
¹ÊÕÏ
ѹÁ¦
ÍⲿÒÀÀµ
2£©Éè¼Æ½×¶Î¿¼ÂÇÈçϼ¸¸ö±È½ÏÖØÒªµÄ·½·¨
20/10/5£¬Éè¼ÆϵͳµÄʱºò£¬ÒÔʵ¼ÊÁ÷Á¿µÄ 20 ±¶À´Éè¼Æ£»¿ª·¢ÏµÍ³µÄʱºò£¬ÒÔʵ¼ÊÁ÷Á¿µÄ 10 ±¶À´¿ª·¢ÏµÍ³£»·¢²¼ÏµÍ³µÄʱºò£¬ÒÔʵ¼ÊÁ÷Á¿µÄ
5 ±¶À´²¿Êð¡£ÕâÖ»ÊÇÒ»¸öͨÓõÄÔÔò£¬¿ÉÒÔ¸ù¾Ýʵ¼ÊÇé¿öÀ´È·¶¨£¬²»ÐèÒªÑϸñ°´ÕÕ±¶ÊýÀ´Ö´ÐС£
Design for failure£¬Ô¤²â¿ÉÄÜ·¢ÉúµÄÎÊÌ⣬×öºÃÔ¤°¸¡£
3£©ÈÝ´íÉè¼Æ
Èç¹û˵´íÎóÊDz»¿É±ÜÃâ»òÕßÄÑÒÔ±ÜÃâµÄ£¬ÄÇôÎÒÃÇÓ¦¸Ã»»Ò»¸ö˼·£¬±£Ö¤´íÎó·¢Éúʱ£¬ÎÒÃÇ¿ÉÒÔ´ÓÈÝÓ¦¶Ô¡£
Ïû³ýµ¥µã
ÌØÐÔ¿ª¹Ø
·þÎñ·Ö¼¶
½µ¼¶Éè¼Æ
³¬Ê±ÖØÊÔ
4£©¸ôÀë²ßÂÔ
¸ôÀëÊÇΪÁËÔÚϵͳ·¢Éú¹ÊÕÏʱ£¬ÏÞÖÆ´«²¥·¶Î§ºÍÓ°Ï췶Χ£¬ÌرðҪעÒâ·ÇºËÐÄϵͳµÄ¹ÊÕ϶ԺËÐÄϵͳµÄÓ°Ïì¡£
Ï̳߳ظôÀë
½ø³Ì¸ôÀë
¼¯Èº¸ôÀë
Óû§¸ôÀë
×⻧¸ôÀë
Âß¼¸ôÀë
ÎïÀí¸ôÀë
»ìºÏ¸ôÀë
5£©ÈÛ¶ÏÆ÷
ÈÛ¶ÏÆ÷ģʽ£¨Circuit Breaker Patten£©µÄÔÀíÀàËÆÓÚ¼ÒÀïµÄµç·ÈÛ¶ÏÆ÷µÄÔÀí¡£µ±·¢Éú¶Ì·»òÕß³¬¸ººÉʱ£¬ÈÛ¶ÏÆ÷Äܹ»Ö÷¶¯È۶ϵç·£¬ÒÔ±ÜÃâÔÖÄÑ·¢Éú¡£
Spring Cloud Hystrix ÌṩÁËÈÛ¶ÏÆ÷¡¢Ï̸߳ôÀëµÈһϵÁзþÎñ±£»¤µÄÄÜÁ¦£¬Ê¹ÓÃÆðÀ´·Ç³£¼òµ¥£¬ÒýÈëÒÀÀµµÄ
JAR °ü£¬Í¨¹ý¼òµ¥µÄ×¢½â¼´¿ÉʵÏÖ¡£
6£©Á÷¿ØÉè¼Æ
ÏÞÁ÷Ëã·¨¡£ÏÞÁ÷Ò²¾ÍÊǵ÷½ÚÊý¾ÝÁ÷µÄƽ¾ùËÙÂÊ£¬Í¨¹ýÏÞÖÆËÙÂʱ£»¤×Ô¼º£¬³£¼ûµÄËã·¨ÓУº ¹Ì¶¨´°¿ÚËã·¨£¨fixed
window£©¡£ ©ͰËã·¨£¨Leaky Bucket£©£ºÂ©Í°Ëã·¨Ö÷ҪĿµÄÊÇ¿ØÖÆÊý¾Ý×¢ÈëÍøÂçµÄËÙÂÊ£¬Æ½»¬ÍøÂçÉϵÄÍ»·¢Á÷Á¿¡£
ÁîÅÆÍ°Ëã·¨£¨token bucket£©£ºÁîÅÆÍ°¿ØÖƵÄÊÇÒ»¸öʱ¼ä´°¿ÚÄÚͨ¹ýµÄÊý¾ÝÁ¿£¬Í¨³£ÎÒÃÇ»áÒÔ QPS¡¢TPS
À´ºâÁ¿¡£
Á÷¿Ø²ßÂÔ ÇëÇóÈë¿Ú´¦¡£ ÒµÎñ·þÎñÈë¿Ú´¦¡£ ¹«¹²»ù´¡·þÎñ´¦¡£ »ùÓÚ Guava ÏÞÁ÷£ºGuava ÊÇ
Google ÌṩµÄ Java À©Õ¹Àà¿â£¬ÆäÖеÄÏÞÁ÷¹¤¾ßÀà RateLimiter ²ÉÓõľÍÊÇÁîÅÆÍ°Ëã·¨£¬Ê¹ÓÃÆðÀ´·Ç³£¼òµ¥¡£
»ùÓÚ Nginx ÏÞÁ÷¡£
7£©ÈÝÁ¿Ô¤¹À
»¥ÁªÍø¹«Ë¾ÆÕ±é²ÉÓÃÈ«Á´Â·Ñ¹²âµÄ·½Ê½£¬À´½øÒ»²½Ô¤¹ÀÈÝÁ¿¡£
8£©¹ÊÕÏÑÝÁ·
Ëæ»ú¹Ø±ÕÉú²ú»·¾³ÖеÄʵÀý¡£
ÈÃij̨»úÆ÷µÄÇëÇó»ò·µ»Ø±äÂý£¬¹Û²ìϵͳµÄ±íÏÖ£¬¿ÉÒÔÓÃÀ´²âÊÔÉÏÓηþÎñÊÇ·ñÓзþÎñ½µ¼¶ÄÜÁ¦£¬µ±È»Èç¹ûÏìӦʱ¼äÌر𳤣¬Ò²¾ÍÏ൱ÓÚ·þÎñ²»¿ÉÓá£
Ä£Äâ AZ ¹ÊÕÏ£¬ÖжÏÒ»¸ö»ú·¿£¬ÑéÖ¤ÊÇ·ñ¿ç¿ÉÓÃÇø²¿Êð£¬ÒµÎñÈÝÔֺͻָ´µÄÄÜÁ¦¡£
²éÕÒ²»·ûºÏ×î¼Ñʵ¼ùµÄʵÀý£¬²¢½«Æä¹Ø±Õ¡£
9£©Êý¾ÝǨÒÆ
Âß¼·ÖÀ룬ÎïÀí²»·ÖÀë¡£
ÎïÀí·ÖÀë ¡£
4. ·Ö²¼Ê½¼Ü¹¹ - ¿ÉÀ©Õ¹Éè¼Æ
ˮƽÀ©Õ¹£¬Ö¸Óøü¶àµÄ½ÚµãÖ§³Å¸ü´óÁ¿µÄÇëÇó¡£
ºáÏòÀ©Õ¹Í¨³£ÊÇΪÁËÌáÉýÍÌÍÂÁ¿£¬ÏìӦʱ¼äÒ»°ãÒªÇó²»ÊÜÍÌÍÂÁ¿Ó°Ïì¼´¿É¡£
1£©AKF À©Õ¹Á¢·½Ìå
2£©ÈçºÎÀ©Õ¹Êý¾Ý¿â
X ÖáÀ©Õ¹¡ª¡ªÖ÷´Ó¸´ÖƼ¯Èº
Y ÖáÀ©Õ¹¡ª¡ª·Ö¿â¡¢´¹Ö±·Ö±í
Z ÖáÀ©Õ¹¡ª¡ª·ÖƬ£¨sharding£©
5. ·Ö²¼Ê½¼Ü¹¹ - ÐÔÄÜÉè¼Æ
1£©ÐÔÄÜÖ¸±ê
ÏìӦʱ¼ä£¨Latency£©£¬¾ÍÊÇ·¢ËÍÇëÇóºÍ·µ»Ø½á¹ûµÄºÄʱ¡£
ÍÌÍÂÁ¿£¨Throughput£©£¬¾ÍÊǵ¥Î»Ê±¼äÄÚµÄÏìÓ¦´ÎÊý¡£
¸ºÔØÃô¸Ð¶È£¬ÊÇÖ¸ÏìӦʱ¼äËæʱ¼ä±ä»¯µÄ³Ì¶È¡£ÀýÈ磬µ±Óû§Ôö¼Óʱ£¬ÏµÍ³ÏìӦʱ¼äµÄË¥¼õËٶȡ£
¿ÉÉìËõÐÔ£¬ÊÇÖ¸ÏòϵͳÔö¼Ó×ÊÔ´¶ÔÐÔÄܵÄÓ°Ïì¡£ÀýÈ磬ҪʹÍÌÍÂÁ¿Ôö¼ÓÒ»±¶£¬ÐèÒªÔö¼Ó¶àÉÙ·þÎñÆ÷¡£
2£©ÈçºÎÊ÷Á¢Ä¿±ê
ͨ¹ý»º´æÌáÉý¶ÁÐÔÄÜ¡£
ͨ¹ýÏûÏ¢Öмä¼þÌáÉýдÐÔÄÜ¡£
6. ·Ö²¼Ê½¼Ü¹¹ - Ò»ÖÂÐÔÉè¼Æ
1£©ÊÂÎñµÄËÄ´óÌØÕ÷
Ô×ÓÐÔ£¨Atomicity£©¡£
Ò»ÖÂÐÔ£¨Consistency£©ÊÇָͨ¹ýÊÂÎñ±£Ö¤Êý¾Ý´ÓÒ»ÖÖ״̬±ä»¯µ½ÁíÒ»ÖÖ״̬¡£
¸ôÀëÐÔ£¨Isolation£©ÊÇÖ¸ÊÂÎñÄڵIJÙ×÷²»ÊÜÆäËû²Ù×÷Ó°Ï죬µ±¶à¸öÊÂÎñͬʱ´¦Àíͬһ¸öÊý¾ÝµÄʱºò£¬¶à¸öÊÂÎñÖ®¼äÊÇ»¥²»Ó°ÏìµÄ¡£
³Ö¾ÃÐÔ£¨Durability£©ÊÇÖ¸ÊÂÎñ±»Ìá½»ºó£¬Ó¦¸Ã³Ö¾Ã»¯£¬ÓÀ¾Ã±£´æÏÂÀ´¡£
2£©CPA ¶¨Àí
¸Ã¶¨ÀíÈÏΪ¶ÔÓÚÒ»¸ö·Ö²¼Ê½¼ÆËãϵͳÀ´Ëµ£¬²»¿ÉÄÜͬʱÂú×ãÒÔÏÂÈýµã£º
Ò»ÖÂÐÔ£¨Consistence£©
¿ÉÓÃÐÔ£¨Availability£©
·ÖÇøÈÝ´íÐÔ£¨Partition tolerance£©
·Ö²¼Ê½Òâζ×űØÐëÂú×ã·ÖÇøÈÝ´íÐÔ£¬Ò²¾ÍÊÇ P£¬Òò´ËÒ»°ãÖ»ÄÜÊÇ AP »ò CP¡£
3£©BASE ÀíÂÛ
BASE ÀíÂ۵ĺËÐÄ˼ÏëÊÇ£ºÈç¹ûÎÞ·¨×öµ½Ç¿Ò»ÖÂÐÔ£¬»òÕß×öµ½Ç¿Ò»ÖÂÐÔÒª¸¶³öºÜ´óµÄ´ú¼Û£¬ÄÇôӦÓÿÉÒÔ¸ù¾Ý×ÔÉíÒµÎñÌص㣬²ÉÓÃÊʵ±·½Ê½À´Ê¹ÏµÍ³´ïµ½×îÖÕÒ»ÖÂÐÔ£¬Ö»Òª¶Ô×îÖÕÓû§Ã»ÓÐÓ°Ï죬»òÕßÓ°ÏìÊǿɽÓÊܵļ´¿É¡£
BA:Basically Available£¬»ù±¾¿ÉÓá£
S:Soft state£¬Èí״̬¡£
E:Eventually consistent£¬×îÖÕÒ»Ö¡£
4£©Quorum »úÖÆ£¨NWR Ä£ÐÍ£©
Èç¹û¶à¸ö·þÎñ·Ö±ðÏòÈý¸ö½ÚµãдÊý¾Ý£¬ÎªÁ˱£Ö¤Ç¿Ò»Ö£¬¾Í±ØÐëÒªÇóÈý¸ö½ÚµãÈ«²¿Ð´³É¹¦²Å·µ»Ø£»Í¬²½Ð´Èý¸ö½ÚµãµÄÐÔÄܽϵͣ¬Èç¹û»»Ò»¸ö˼·£¬Ò»ÖÂÐÔ²¢²»Ò»¶¨ÒªÔÚдÊý¾ÝµÄʱºòÍê³É£¬¿ÉÒÔÔÚ¶ÁµÄ½×¶ÎÔÙ¾ö²ß£¬Ö»ÒªÃ¿´ÎÄܶÁµ½×îа汾¼´¿É¡£
Quorum »úÖƾÍÊÇÒªÂú×㹫ʽ W+R>N£¬Ê½ÖÐ N ´ú±í±¸·Ý¸öÊý£¬W ´ú±íҪдÈëÖÁÉÙ W
·Ý²ÅÈÏΪ³É¹¦£¬R ±íʾÖÁÉÙ¶ÁÈ¡ R ¸ö±¸·Ý¡£
5£©×âÔ¼»úÖÆ£¨Lease£©
Èç¹ûÏÖÔÚÎÒÃÇÓÐÈý¸ö½Úµã£¬ÎªÁËʵÏÖÒ»ÖÂÐÔ£¬ÒªÈ·±£ÓÐÇÒÖ»ÓÐÒ»¸öÊÇ Leader£¬ÁíÍâÁ½¸öΪ Follower£¬Ö»ÓÐ
Leader ÊÇ¿ÉдµÄ£¬Follower Ö»ÄܶÁ¡£¹ÜÀí½Úµã M ͨ¹ýÐÄÌøÅжϸ÷¸ö½ÚµãµÄ״̬£¬Óà M
È¥Ö¸¶¨ Leader£¬Ò»µ© Leader ËÀµô£¬¾Í¿ÉÒÔÖØÐÂÖ¸¶¨Ò»¸ö Leader¡£
6£©ÄÔÁÑÎÊÌâ
Ò»ÖÖÊDzÉÓÃͶƱ»úÖÆ£¨Paxos Ëã·¨£©¡£
Ò»ÖÖÊDzÉÓÃ×âÔ¼»úÖÆ¡ª¡ªLease£¬×âÔ¼»úÖƵĺËÐľÍÊÇÔÚÒ»¶¨Ê±¼äÄÚ½«È¨Á¦Ï·š£
7£©·Ö²¼Ê½ÏµÍ³µÄÒ»ÖÂÐÔ·ÖÀà
½¨Á¢¶à¸ö¸±±¾¡£¿ÉÒ԰Ѹ±±¾·Åµ½²»Í¬µÄÎïÀí»ú¡¢»ú¼Ü¡¢»ú·¿¡¢µØÓò£¬µ±Ò»¸ö¸±±¾Ê§Ð§Ê±£¬¿ÉÒÔÈÃÇëÇóתµ½ÆäËû¸±±¾¡£
¶ÔÊý¾Ý½øÐзÖÇø¡£¸´Öƶà¸ö¸±±¾½â¾öÁ˶ÁµÄÐÔÄÜÎÊÌ⣬µ«ÊÇÎÞ·¨½â¾öдµÄÐÔÄÜÎÊÌâ¡£
8£©ÒÔÊý¾ÝΪÖÐÐĵÄÒ»ÖÂÐÔÄ£ÐÍ
´ÓÊý¾Ý´æ´¢µÄ½Ç¶È³ö·¢µÄ£¬°üÀ¨Êý¾Ý¿â¡¢ÎļþµÈ¡£
ÑϸñÒ»ÖÂÐÔ£¨Strict Consistency£©
˳ÐòÒ»ÖÂÐÔ£¨Sequential Consistency£©
Òò¹ûÒ»ÖÂÐÔ£¨Causal Consistency£©
9£©ÒÔÓû§ÎªÖÐÐĵÄÒ»ÖÂÐÔÄ£ÐÍ
ÒÔÏÂÒ»ÖÂÐÔÄ£ÐÍÊÊÓ¦µÄ³¡¾°Îª²»»áͬʱ·¢Éú¸üвÙ×÷£¬»òÕßͬʱ·¢Éú¸üвÙ×÷ʱÄܹ»±È½ÏÈÝÒ׵ػ¯½â¡£ÒòΪÕâÀïµÄÊý¾Ý¸üÐÂĬÈÏÓÐÒ»¸öÓëÖ®¹ØÁªµÄËùÓÐÕߣ¬´ËËùÓÐÕßÓµÓÐΨһ±»ÔÊÐíÐÞ¸ÄÊý¾ÝµÄȨÏÞ£¬¿ÉÒÔ°´ÕÕÓû§
ID ½øÐзÓÉ¡£
µ¥µ÷¶ÁÒ»ÖÂÐÔ£¨Monotonic-read Consistency£©
µ¥µ÷дһÖÂÐÔ£¨Monotonic-write Consistency£©
дºó¶ÁÒ»ÖÂÐÔ£¨Read-your-writes Consistency£©
¶ÁºóдһÖÂÐÔ£¨Writes-follow-reads Consistency£©
10£©Òµ½ç³£ÓõÄÒ»ÖÂÐÔÄ£ÐÍ
ÈõÒ»ÖÂÐÔ£ºÐ´ÈëÒ»¸öÊý¾Ý a ³É¹¦ºó£¬ÔÚÊý¾Ý¸±±¾ÉÏ¿ÉÄܶÁ³öÀ´£¬Ò²¿ÉÄܶÁ²»³öÀ´¡£²»Äܱ£Ö¤Ã¿¸ö¸±±¾µÄÊý¾ÝÒ»¶¨ÊÇÒ»Öµġ£
×îÖÕÒ»ÖÂÐÔ£¨Eventual Consistency£©£ºÐ´ÈëÒ»¸öÊý¾Ý a ³É¹¦ºó£¬ÔÚÆäËû¸±±¾ÓпÉÄܶÁ²»µ½
a µÄ×îÐÂÖµ£¬µ«ÔÚij¸öʱ¼ä´°¿ÚÖ®ºó±£Ö¤×îÖÕÄܶÁµ½¡£
Ç¿Ò»ÖÂÐÔ£¨Strong Consistency£©£ºÊý¾Ý a Ò»µ©Ð´Èë³É¹¦£¬ÔÚÈÎÒ⸱±¾ÈÎÒâʱ¿Ì¶¼ÄܶÁµ½
a µÄ×îÐÂÖµ¡£
11£©ÈçºÎʵÏÖÇ¿Ò»ÖÂÐÔ
Á½½×¶ÎÌá½»
Èý½×¶ÎÌá½»£¨3PC£©
12£©ÈçºÎʵÏÖ×îÖÕÒ»ÖÂÐÔ
ÖØÊÔ»úÖÆ£º³¬Ê±Ê±¼ä£¬ÖØÊԵĴÎÊý£¬ÖØÊԵļä¸ôʱ¼ä£¬ÖØÊÔ¼ä¸ôʱ¼äµÄË¥¼õ¶È¡£
±¾µØ¼Ç¼ÈÕÖ¾¡£
¿É¿¿Ê¼þģʽ¡£
Saga ÊÂÎñÄ£ÐÍ£ºÓֽРLong-running-transaction£¬ºËÐÄ˼ÏëÊÇ°ÑÒ»¸ö³¤ÊÂÎñ²ð·ÖΪ¶à¸ö±¾µØÊÂÎñÀ´ÊµÏÖ£¬ÓÉÒ»¸ö
Process manager ͳһе÷¡£
TCC ÊÂÎñÄ£ÐÍ£ºÁ½½×¶ÎÌá½»ÊÇÒÀÀµÓÚÊý¾Ý¿âÌṩµÄÊÂÎñ»úÖÆ£¬ÔÙÅäºÏÍⲿµÄ×ÊԴе÷Æ÷À´ÊµÏÖ·Ö²¼Ê½ÊÂÎñ¡£TCC£¨Try
Confirm Cancel£©ÊÂÎñÄ£Ð͵Ä˼ÏëºÍÁ½½×¶ÎÌá½»ËäÈ»ÀàËÆ£¬µ«ÊÇÈ´°ÑÏà¹ØµÄ²Ù×÷´ÓÊý¾Ý¿âÌáµ½ÒµÎñÖУ¬ÒԴ˽µµÍÊý¾Ý¿âµÄѹÁ¦£¬²¢ÇÒ²»ÐèÒª¼ÓËø£¬ÐÔÄÜÒ²µÃµ½ÁËÌáÉý¡£ 7. Ê®¶þÒòËØ
12 ÒòËØÓ¦ÓÃÊÇһϵÁÐÔÆÔÉúÓ¦Óüܹ¹µÄģʽ¼¯ºÏ¡£ÕâЩģʽ¿ÉÒÔÓÃÀ´ËµÃ÷ʲôÑùµÄÓ¦ÓòÅÊÇÔÆÔÉúÓ¦Ó㬹Ø×¢Ëٶȡ¢°²È«¡¢Í¨¹ýÉùÃ÷ʽÅäÖÃÀ©Õ¹¡¢¿ÉºáÏòÀ©Õ¹µÄÎÞ״̬/ÎÞ¹²Ïí½ø³ÌÒÔ¼°²¿Êð»·¾³µÄÕûÌåËÉñîºÏ¡£
ÔÚ 12 ÒòËصı³¾°Ï£¬Ó¦ÓÃÖ¸µÄÊǶÀÁ¢¿É²¿Êðµ¥Ôª¡£×éÖ¯Öо³£°ÑһЩ»¥ÏàÐ×÷µÄ¿É²¿Êðµ¥Ôª³Æ×÷Ò»¸öÓ¦Óá£
»ù×¼´úÂ룬һ·Ý»ù×¼´úÂ룬¶à·Ý²¿Êð£¬Ê¹Óà GIT »òÕß SVN ¹ÜÀí´úÂ룬²¢ÇÒÓÐÃ÷È·µÄ°æ±¾ÐÅÏ¢¡£
ÒÀÀµ£¬ÏÔʾÉùÃ÷ÒÀÀµ¡£
ÅäÖ㺻·¾³Öд洢ÅäÖá£
ºó¶Ë·þÎñ£º°Ñºó¶Ë·þÎñµ±×÷¸½¼Ó×ÊÔ´¡£ºó¶Ë·þÎñÊÇÖ¸³ÌÐòÔËÐÐËùÐèÒªµÄͨ¹ýÍøÂçµ÷Óõĸ÷ÖÖ·þÎñ£¬ÈçÊý¾Ý¿â£¨MySQL¡¢CouchDB£©¡¢ÏûÏ¢/¶ÓÁÐϵͳ£¨RabbitMQ¡¢Beanstalkd£©¡¢SMTP
Óʼþ·¢ËÍ·þÎñ£¨Postfix£©£¬ÒÔ¼°»º´æϵͳ£¨Memcached£©¡£
¹¹½¨¡¢·¢²¼¡¢ÔËÐУºÑϸñ·ÖÀë¹¹½¨ºÍÔËÐС£
½ø³Ì£¬ÒÔÒ»¸ö»ò¶à¸öÎÞ״̬½ø³ÌÔËÐÐÓ¦Óã¬Èç¹û´æÔÚ״̬£¬Ó¦¸Ã½«×´Ì¬ÍâÖõ½ºó¶Ë·þÎñÖУ¬ÀýÈçÊý¾Ý¿â¡¢»º´æµÈ¡£
¶Ë¿Ú°ó¶¨£¬Í¨¹ý¶Ë¿Ú°ó¶¨Ìṩ·þÎñ£¬Ó¦ÓÃͨ¹ý¶Ë¿Ú°ó¶¨À´Ìṩ·þÎñ£¬²¢¼àÌý·¢ËÍÖÁ¸Ã¶Ë¿ÚµÄÇëÇó¡£
²¢·¢£¬Í¨¹ý½ø³ÌÄ£ÐͽøÐÐÀ©Õ¹£¬À©Õ¹·½Ê½Óнø³ÌºÍÏß³ÌÁ½ÖÖ¡£½ø³ÌµÄ·½Ê½Ê¹À©Õ¹ÐÔ¸üºÃ£¬¼Ü¹¹¸ü¼òµ¥£¬¸ôÀëÐÔ¸üºÃ¡£Ïß³ÌÀ©Õ¹Ê¹±à³Ì¸ü¸´ÔÓ£¬µ«ÊǸü½ÚÊ¡×ÊÔ´¡£
Ò×´¦Àí£¬¿ìËÙÆô¶¯ºÍÓÅÑÅÖÕÖ¹¿É×î´ó»¯½¡×³ÐÔ£¬Ö»ÓÐÂú×ã¿ìËÙÆô¶¯ºÍÓÅÑÅÖÕÖ¹£¬²ÅÄÜʹ·þÎñ¸ü½¡×³¡£
¿ª·¢»·¾³ÓëÏßÉÏ»·¾³µÈ¼Û£¬¾¡¿ÉÄܱ£³Ö¿ª·¢¡¢Ô¤·¢²¼¡¢ÏßÉÏ»·¾³Ïàͬ¡£
ÈÕÖ¾£¬°ÑÈÕÖ¾µ±×÷ʼþÁ÷£¬Î¢·þÎñ¼Ü¹¹ÖзþÎñÊýÁ¿µÄ±¬·¢ÐèÒª¾ß±¸µ÷ÓÃÁ´·ÖÎöÄÜÁ¦£¬¿ìËÙ¶¨Î»¹ÊÕÏ¡£
¹ÜÀí½ø³Ì£¬°Ñºǫ́¹ÜÀíÈÎÎñµ±×÷Ò»´ÎÐÔ½ø³ÌÔËÐУ¬Ò»Ð©¹¤¾ßÀàÔÚÉú²ú»·¾³ÉϵIJÙ×÷¿ÉÄÜÊÇÒ»´ÎÐԵģ¬Òò´Ë×îºÃ°ÑËüÃÇ·ÅÔÚÉú²ú»·¾³ÖÐÖ´ÐУ¬¶ø²»ÊDZ¾µØ¡£
8. Ñз¢Á÷³Ì
1£©ÎªÊ²Ã´Ñ¡Ôñ DevOps
ÄÜÌá¸ß½»¸¶Ëٶȡ¢¸üÐÂƵÂÊ£¬ÕâÁ½µãÊǺâÁ¿Ò»¸ö¹«Ë¾ÄÜÁ¦µÄÖØÒªÖ¸±ê¡£
2£©Gartner Ìá³öµÄ DevOps Ä£ÐÍ
ÎÄ»¯¡¢¼¼Êõ¡¢¹ý³ÌºÍÈË£¬ÆäÖÐÍŶÓÎÄ»¯²ÅÊÇ×îÄѸıäµÄ£¬¼¼Êõ·½Ãæ°üÀ¨»ù´¡ÉèÊ©¼´´úÂ롢ȫ¾Ö¼à¿Ø¡¢³ÖÐø¼à¿Ø¡£
3£©×Ô¶¯»¯²âÊÔ
×Ô¶¯»¯²âÊÔ¿ÉÒÔ´úÌæÈ˹¤²âÊÔ¡£
²âÊÔ³ÉÁËÈ«Õ»¹¤³ÌʦµÄ¹¤×÷£¬ÒòΪ²»¹µÍ¨²ÅÊÇ×îÓÐЧÂʵŵͨ¡£
4£©Code Review
ÌáÉý´úÂëÒ׶ÁÐÔ¡£
ͳһ¹æ·¶¡¢±ê×¼¡£
¼¼Êõ½»Á÷£¬ÌáÉýÄÜÁ¦¡£
Code Review ÔÔò£ºÒÔ·¢ÏÖÎÊÌâΪĿ±ê£¬ÍŶӿª·Å¡¢Í¸Ã÷£¬Õû¸ö Code Review µÄ¹ý³Ì¶Ôʲ»¶ÔÈË£¬²»ÉèÖóͷ£¡£
ÏßÉÏÏßϽӺϵķ½Ê½£¬³¤ÆÚÏßÉÏ£¬¶¨ÆÚÏßÏ¡£
5£©Á÷Ë®Ïß
³ÖÐø½»¸¶£º½µµÍ½»¸¶ÖÜÆÚ£¬Í¨¹ý×Ô¶¯»¯¹¤¾ßʵÏÖÉè¼Æ¡¢¿ª·¢¡¢²âÊÔ¡¢·¢²¼¡¢ÔËά¸÷¸ö½×¶ÎµÄÖظ´ÐÔ¹¤×÷£¬Í¨¹ý¹¤¾ßʵÏÖ±ê×¼»¯¡¢¹æ·¶»¯£¬½µµÍ³ö´í¸ÅÂÊ¡£
6£©¿ª·¢ÈËÔ±×Ô·þÎñ
¶ÔÓÚ¿ª·¢¹ý³ÌÀ´Ëµ£¬ÉÙ½»Á÷¡¢ÉÙ¹µÍ¨¡¢ÉÙ¿ª»á¾ÍÊÇ×î¸ßЧµÄ¡£
¸ß¸²¸ÇÂʵÄ×Ô¶¯»¯²âÊÔ
È«ÃæµÄ¼à¿Ø
³ÖÐø½»¸¶Á÷Ë®Ïß
Ãô½Ý»ù´¡ÉèÊ©
×Ô¶¯»¯/ÖÇÄÜ»¯ÔËά
ºÃµÄ¼Ü¹¹
È«Õ»¹¤³Ìʦ
·þÎñÐ͹ÜÀí
¹¤³ÌʦÎÄ»¯
ÐÅÈÎÎÄ»¯
·ÖÏíÎÄ»¯
7£©´úÂë¼´Éè¼Æ
Ä£ºýÃô½ÝÑз¢Á÷³Ì½×¶ÎÐÔ£ºÒµÎñÐèÇóÌ«¶àºÍ¼¼Êõ±ä»¯ËÙ¶ÈÌ«¿ì¡£
Õû¸ö½ø»¯Éè¼ÆÐèÒª¼òµ¥µÄ¼Ü¹¹+³ÖÐø¼¯³É+Öع¹+Õû¸öÑз¢Á÷³ÌÉè¼Æ¡£
9. ÍŶÓÎÄ»¯
ÍŶÓÎÄ»¯¾ÍºÃ±ÈÍÁÈÀ£¬ÒªÅàÑøʲôÑùµÄÔ±¹¤£¬¾ÍÒªÓÐÊʺÏËûµÄÍÁÈÀ¡£
1£©ÍŶӹæÄ£µ¼ÖµÄÎÊÌâ
ȱ·¦ÐÅÈΡ£ÓÉÓÚÈËÊýÖڶ࣬ÄÑÓÚ¹ÜÀí£¬Ö»ÄÜͨ¹ýÖƶȡ¢Á÷³Ì¡¢¹æ·¶¡¢¼¨Ð§Ô¼Êø¡£
ûÓÐÔðÈθС£¸ß²ã¹ÜÀíÕßæ×Å¿ª¸÷ÖÖ¾ö²ß»áÒé¡£
²¿ÃÅǽ¡£¿ç²¿ÃÅе÷»¹²»ÈçÓëµÚÈý·½ºÏ×÷¡£
²»×ðÖØרҵÈËÊ¿¡£µ±ËùÓеÄÉúɱ´óȨ¶¼ÕÆÎÕÔÚÉÙÊýÈËÊÖÖеÄʱºò¡£
¹ÜÀí²ã¼¶Ì«Éî¡£¹ÜÀí²ã¼¶Ì«Éîµ¼ÖµÄÎÊÌâºÜ¶à¡£
2£©×éÖ¯½á¹¹ - ¿µÍþ¶¨ÂÉ
Éè¼ÆϵͳµÄ×éÖ¯£¬Æä²úÉúµÄÉè¼ÆºÍ¼Ü¹¹µÈ¼ÛÓÚ×éÖ¯¼äµÄ¹µÍ¨½á¹¹¡£Í¨Ë×À´½²£¬¾ÍÊÇʲôÑùµÄÍŶӽṹ£¬¾Í»áÉè¼Æ³öʲôÑùµÄϵͳ¼Ü¹¹¡£Èç¹û½«ÍŶӲð·ÖΪǰ¶Ë¡¢ºó¶Ë¡¢Æ½Ì¨¡¢Êý¾Ý¿â£¬ÄÇôϵͳҲ»á°´ÕÕÇ°¶Ë¡¢ºó¶Ë¡¢Æ½Ì¨¡¢Êý¾Ý¿â½á¹¹¸ôÀë¡£
µÚÒ»¶¨ÂÉ£ºCommunication dictates design£¬¼´×éÖ¯¹µÍ¨·½Ê½»áͨ¹ýϵͳÉè¼Æ³ÊÏÖ¡£
µÚ¶þ¶¨ÂÉ£ºThere is never enough time to do something right,but
there is always enough time to do it over£¬¼´Ê±¼äÔٶ࣬һ¼þÊÂÇéÒ²²»¿ÉÄÜ×öµÃÍêÃÀ£¬µ«×ÜÓÐʱ¼ä×öÍêÒ»¼þÊÂÇé¡£
µÚÈý¶¨ÂÉ£ºThere is a homomorphism from the linear graph
of a system to the linear graph of its design organization£¬¼´ÏßÐÍϵͳºÍÏßÐÍ×éÖ¯¼Ü¹¹¼äÓÐDZÔÚµÄÒìÖÊ̬ͬÌØÐÔ¡£
µÚËĶ¨ÂÉ£ºThe structures of large systems tend to disintegrate
during development,qualitatively more so than with
small systems£¬¼´´óµÄϵͳ×éÖ¯×ÜÊDZÈСϵͳ¸üÇãÏòÓڷֽ⡣
3£©¡°¹µÍ¨Â©¶·¡±ÊÇÖ¸¹¤×÷ÖÐÍŶӹµÍ¨Ð§ÂÊϽµµÄÒ»ÖÖÏÖÏó
Èç¹ûÒ»¸öÈËÐÄÀïÏë±íÊöÊÂÏîÄ¿±êµÄ 100%£¬µ±ÄãÔÚÖÚÈËÃæÇ°¡¢ÔÚ¿ª»áµÄ³¡ºÏÓÃÓïÑÔ±í´ïʱ£¬Äã˵³öÀ´µÄֻʣÏÂ
80%¡£¶ø½øÈë±ðÈ˵Ķú¶äʱ£¬ÓÉÓÚÎÄ»¯Ë®Æ½¡¢ÖªÊ¶±³¾°µÈ¹Øϵ£¬Ö»Áô´æÁË 60%¡£Êµ¼ÊÉÏ£¬ÕæÕý±»±ðÈËÀí½âÁË´ó¸ÅÖ»ÓÐ
40%¡£µÈµ½ÕâЩÈË×ñÕÕÁìÎòµÄ 40% ¾ßÌåÐж¯Ê±£¬Ö»¾ß±¸Á˵±³õÊÂÏîÄ¿±êµÄ 20% ÁË¡£Èý¸öÔºóÐÅϢֻʣÏÂ
5% ÁË¡£
4£©»·¾³·ÕΧ
¹«¿ªÍ¸Ã÷µÄ¹¤×÷»·¾³.
ѧϰÐÍ×éÖ¯£ºÈÃÍŶÓÓµÓй²Í¬Ô¸¾°¡¢Ä¿±ê£¬²¢³ÖÐøѧϰ¡£
¼õÉÙÎÞЧµÄÕýʽ»ã±¨¡£
¸ßЧµÄ»áÒ飺ËõС»áÒ鷶Χ£¬³£¹æ»áÒé²»Ó¦¸Ã³¬¹ý 45 ·ÖÖÓ£»ÏÞÖÆ¡°Òâ¼ûÁìÐ䡱µÄ·¢ÑÔʱ³¤£»»áÒéÖв»ÔÊÐí¿ªÐ¡²î£»»áÒéÖеķÖÆç²»Ó¦¸ÃÑÓÉìµ½»áÒéÖ®Íâ¡£
10. Serverless
Ëæ×ÅÒÔ Kubernetes Ϊ´ú±íµÄÔÆÔÉú¼¼Êõ³ÉΪÔƼÆËãµÄÈÝÆ÷½çÃ棬Kubernetes ³ÉΪÔƼÆËãµÄÐÂÒ»´ú²Ù×÷ϵͳ¡£ÃæÏòÌض¨ÁìÓòµÄºó¶ËÔÆ·þÎñ
(BaaS) ÔòÊÇÕâ¸ö²Ù×÷ϵͳÉϵķþÎñ API£¬´æ´¢¡¢Êý¾Ý¿â¡¢Öмä¼þ¡¢´óÊý¾Ý¡¢ AI µÈÁìÓòµÄ´óÁ¿²úÆ·Óë¼¼Êõ¶¼¿ªÊ¼ÌṩȫÍйܵÄÔÆÐÎ̬·þÎñ£¬Èç½ñÔ½À´Ô½¶àÓû§ÒÑÏ°¹ßʹÓÃÔÆ·þÎñ£¬¶ø²»ÊÇ×Ô¼º´î½¨´æ´¢ÏµÍ³¡¢²¿ÊðÊý¾Ý¿âÈí¼þ¡£
µ±ÕâЩ BaaS ÔÆ·þÎñÈÕÇ÷ÍêÉÆʱ£¬Serverless ÒòΪÆÁ±ÎÁ˵ײãÉèÊ©µÄÔËά¸´ÔӶȣ¬Èÿª·¢ÈËÔ±¿ÉÒÔ½«¸ü¶à¾«Á¦ÓÃÓÚÒµÎñÂß¼Éè¼ÆÓëʵÏÖ£¬¶øÖð½¥³ÉΪÔÆÔÉúÖ÷Á÷¼¼ÊõÖ®Ò»¡£Serverless
¼ÆËã°üº¬ÒÔÏÂÌØÕ÷£º
È«ÍйܵļÆËã·þÎñ£¬¿Í»§Ö»ÐèÒª±àд´úÂë¹¹½¨Ó¦Óã¬ÎÞÐè¹ØעͬÖÊ»¯µÄ¡¢¸ºµ£·±ÖصĻù´¡ÉèÊ©¿ª·¢¡¢ÔËά¡¢°²È«¡¢¸ß¿ÉÓõȹ¤×÷¡£
ͨÓÃÐÔ£¬½áºÏÔÆ BaaS API µÄÄÜÁ¦£¬Äܹ»Ö§³ÅÔÆÉÏËùÓÐÖØÒªÀàÐ͵ÄÓ¦Óá£
×Ô¶¯µÄµ¯ÐÔÉìËõ£¬ÈÃÓû§ÎÞÐèΪ×ÊԴʹÓÃÌáÇ°½øÐÐÈÝÁ¿¹æ»®¡£
°´Á¿¼Æ·Ñ£¬ÈÃÆóҵʹÓóɱ¾µÃÓÐЧ½µµÍ£¬ÎÞÐèΪÏÐÖÃ×ÊÔ´¸¶·Ñ¡£
º¯Êý¼ÆËã (Function as a Service) ÊÇ Serverless ÖÐ×î¾ß´ú±íÐԵIJúÆ·ÐÎ̬¡£Í¨¹ý°ÑÓ¦ÓÃÂß¼²ð·Ö¶à¸öº¯Êý£¬Ã¿¸öº¯Êý¶¼Í¨¹ýʼþÇý¶¯·½Ê½´¥·¢Ö´ÐУ¬ÀýÈçµ±¶ÔÏó´æ´¢
(OSS) ÖвúÉúµÄÉÏ´« / ɾ³ý¶ÔÏóµÈʼþ£¬ Äܹ»×Ô¶¯¡¢¿É¿¿µØ´¥·¢ FaaS º¯Êý´¦ÀíÇÒÿ¸ö»·½Ú¶¼Êǵ¯ÐԺ͸߿ÉÓõģ¬¿Í»§Äܹ»¿ìËÙʵÏÖ´ó¹æÄ£Êý¾ÝµÄʵʱ²¢Ðд¦Àí¡£Í¬ÑùµÄ£¬Í¨¹ýÏûÏ¢Öмä¼þºÍº¯Êý¼ÆËãµÄ¼¯³É£¬¿Í»§¿ÉÒÔ¿ìËÙʵÏÖ´ó¹æÄ£ÏûÏ¢µÄʵʱ´¦Àí¡£
Serverless ²»×ãµÄµØ·½£º
³É¹¦°¸ÀýÌ«ÉÙ
ºÜÄÑÂú×ã¸öÐÔ»¯
ȱ·¦ÐÐÒµ±ê×¼
³õ´Î·ÃÎÊÐÔÄܲî
ȱ·¦¿ª·¢µ÷ÊÔ¹¤¾ß
11. Service Mesh ¼¼Êõ
Service Mesh ÊÇ·Ö²¼Ê½Ó¦ÓÃÔÚ΢·þÎñÈí¼þ¼Ü¹¹Ö®ÉÏ·¢Õ¹ÆðÀ´µÄм¼Êõ£¬Ö¼ÔÚ½«ÄÇЩ΢·þÎñ¼äµÄÁ¬½Ó¡¢°²È«¡¢Á÷Á¿¿ØÖƺͿɹ۲âµÈͨÓù¦ÄÜϳÁΪƽ̨»ù´¡ÉèÊ©£¬ÊµÏÖÓ¦ÓÃÓëƽ̨»ù´¡ÉèÊ©µÄ½âñî¡£Õâ¸ö½âñîÒâζ×Å¿ª·¢ÕßÎÞÐè¹Ø×¢
΢·þÎñÏà¹ØÖÎÀíÎÊÌâ¶ø¾Û½¹ÓÚÒµÎñÂß¼±¾Éí£¬ÌáÉýÓ¦Óÿª·¢Ð§Âʲ¢¼ÓËÙÒµÎñ̽Ë÷ºÍ´´Ð¡£»»¾ä»°Ëµ£¬ÒòΪ´óÁ¿·Ç¹¦ÄÜÐÔ´ÓÒµÎñ½ø³Ì°þÀëµ½ÁíÍâ½ø³ÌÖУ¬Service
Mesh ÒÔÎÞÇÖÈëµÄ·½Ê½ÊµÏÖÁËÓ¦ÓÃÇáÁ¿»¯£¬ÏÂͼչʾÁË Service Mesh µÄ µäÐͼܹ¹£º
ÔÚÕâÕżܹ¹Í¼ÖУ¬Service A µ÷Óà Service B µÄËùÓÐÇëÇ󣬶¼±»ÆäÏ嵀 Proxy(ÔÚ
Envoy ÖÐÊÇ Sidecar) ½Ø»ñ£¬ ´úÀí Service A Íê³Éµ½ Service B µÄ·þÎñ·¢ÏÖ¡¢È۶ϡ¢ÏÞÁ÷µÈ²ßÂÔ£¬¶øÕâЩ²ßÂÔµÄ×Ü¿ØÊÇÔÚ
Control Plane ÉÏÅäÖá£
·þÎñÍø¸ñµÄ¼¼Êõ·¢Õ¹ÉÏÊý¾ÝƽÃæÓë¿ØÖÆƽÃæ¼äµÄÐÒé±ê×¼»¯ÊDZØÈ»Ç÷ÊÆ¡£¿ØÖÆƽÃæ¿ÉÒÔÈÏΪÊÇ×¢²áÖÐÐļ°¹ÜÀíÅäÖÃÃæ°å£»Êý¾ÝƽÃæ¿ÉÒÔÈÏΪÊÇÓÉ·þÎñ»¯¿ò¼ÜÒÀÀµµÄ×é¼þ¶ÀÁ¢¶ø³ÉµÄÒ»¸ö½ø³Ì£¬Êý¾ÝƽÃæ´úÀíÒµÎñ·þÎñµÄ×¢²á·¢ÏÖ¡¢¸ºÔؾùºâ¡¢ÈÝ´íµÈÄÜÁ¦¡£
ΪʲôÐèÒª Service Mesh£º
ÔÚ΢·þÎñ¼Ü¹¹ÖУ¬Èÿª·¢ÈËÔ±¸Ð¾õ²»µ½Î¢·þÎñÖ®¼äµÄͨÐÅ¡£
µ±·þÎñÊýÁ¿Ô½À´Ô½¶à£¬Éý¼¶Î¢·þÎñ¿ò¼Ü±äµÃÔ½À´Ô½¸´ÔÓµÄʱºò£¬Î¢·þÎñ¿ò¼Ü²»¿ÉÄÜÒ»Ö±²»±äÇÒûÓÐ bug¡£
Service Mesh Ôò´ÓÒµÎñ½ø³Ì¼¯³É¿Í»§¶ËµÄ·½Ê½ÑݽøΪ¶ÀÁ¢½ø³ÌµÄ·½Ê½£¬¿Í»§¶Ë±ä³ÉÁËÒ»¸ö¶ÀÁ¢½ø³Ì¡£
¶ÔÕâ¸ö¶ÀÁ¢½ø³ÌÉý¼¶¡¢ÔËάҪ±È°óÔÚÒ»ÆðÇ¿µÃ¶à¡£
΢·þÎñ¼Ü¹¹¸üÇ¿µ÷È¥ÖÐÐÄ»¯¡¢¶ÀÁ¢×ÔÖΡ¢¿çÓïÑÔ¡£Service Mesh ͨ¹ý¶ÀÁ¢½ø³ÌµÄ·½Ê½½øÐиôÀ룬µÍ³É±¾ÊµÏÖ¿çÓïÑÔ¡£
ÿ¸ö·þÎñ¶ÀÁ¢Õ¼ÓÃÒ»¸öÈÝÆ÷£¬½«·þÎñ¡¢ÒÀÀµ°ü¡¢²Ù×÷ϵͳ¡¢¼à¿ØÔËάËùÐèµÄ´úÀí´ò°ü³ÉÒ»¸ö¾µÏñ¡£ÕâÖÖģʽ´Ù³ÉÁË
Service Mesh µÄ·¢Õ¹£¬Èà Service Mesh ʵÏÖÆðÀ´¸üÈÝÒס£
12. ÔÆÔÉú¼Ü¹¹³ÉÊì¶ÈÄ£ÐÍ
ÓÉÓÚÔÆÔÉú¼Ü¹¹°üº¬ÁË 6 ¸ö¹Ø¼ü¼Ü¹¹Î¬¶È(¼òдΪ SESORA£¬Service + Elasticity
+ Serverless + Observability + Resilience + Automation)£¬Òò´ËÎÒÃÇÏȶ¨Òå¹Ø¼üά¶ÈµÄ³ÉÊì¶È¼¶±ð£º
ÏÖ×´
ÈÝÆ÷µÄ±ê×¼»¯Ê¹ÓøıäÁËÈí¼þ¿ª·¢·½Ê½£¬»ùÓÚÔÆÔÉúµÄ¿ª·¢Äܹ»°ïÖúÎÒÃǹ¹½¨¸üÁé»î¡¢¸üÇ¿´óµÄÓ¦Ó᣽üÈÕ£¬CNCF£¨ÔÆÔÉú¼ÆËã»ù½ð»á£©¾Í·¢²¼ÁËÔÆÔÉú¿ª·¢ÏÖ×´µÄ±¨¸æ½â¶Á¡£
¸Ã±¨¸æͨ¹ý¶Ô 17,000 ¶àλÈí¼þ¿ª·¢ÈËÔ±µÄµ÷²éÊý¾Ý£¬¶ÔÔÆÔÉú¿ª·¢ÉîÈë·ÖÎö£¬Ï£ÍûÄܹ»°ïÖú´ó¼Ò¸üºÃµØÕÆÎÕÔÆÔÉú¿ª·¢Éú̬ϵͳµÄµ±Ç°×´¿ö¡£ÆäÒªµã°üÀ¨£º
È«ÇòÔÆÔÉú¿ª·¢ÈËÔ±³¬¹ý 470 Íò¡£
ʹÓà Kubernetes µÄ¿ª·¢ÈËÔ±³¬¹ý 170 Íò¡£
ʹÓà Serverless ¼Ü¹¹¼°Ôƺ¯ÊýµÄ¿ª·¢ÈËÔ±³¬¹ý 330 Íò¡£
Kubernetes Óû§¸üÓпÉÄÜÓ°Ï칺Âò¾ö²ß¡£
1. Êг¡¹æÄ£
¾Ý¹À¼Æ£¬È«ÇòÔÆÔÉú¿ª·¢ÈËÔ±ÊýÁ¿³¬¹ý 470 Íò£¬Õ¼ºó¶Ë¿ª·¢µÄ 36%¡£ÆäÖаüÀ¨ 290 ÍòʹÓñàÅŵÄÓû§£¬ÒÔ¼°
330 ÍòʹÓÃÔƺ¯Êý»ò Serverless ¼Ü¹¹µÄ¿ª·¢ÈËÔ±¡£¶þÕß·Ö±ðÕ¼¾ÝÁ˺ó¶Ë¿ª·¢µÄ 22% ºÍ
25%¡£
¸Ã¹ÀËãÊý¾Ý»¹¿¼ÂÇÁË 150 ÍòͬʱʹÓñàÅÅºÍ Serverless ¼¼ÊõµÄ¿ª·¢ÈËÔ±¡£
2. ¸÷¸ö¹ú¼Ò¼°µØÇøµÄÇé¿ö
È«Çò·¶Î§ÄÚÔÆÔÉú¼¼ÊõµÄʹÓòîÒìºÜ´ó¡£
×ܵÄÀ´Ëµ£¬Å·Ö޺ͱ±ÃÀµÄÈÝÆ÷ʹÓÃÂÊÔ¶³¬ÑÇÖÞ¡£ÈÝÆ÷µÄʹÓÃÒÑÔÚ¶«Å·µÃµ½ÆÕ¼°£¬54% µÄºó¶Ë¿ª·¢ÈËԱʹÓÃÈÝÆ÷¡£±±ÃÀºÍÎ÷Å·µÈ·¢´ïµØÇøµÄʹÓÃÂÊÒ²ºÜ¸ß¡£ÔÚ±±ÃÀ¡¢Î÷Å·ºÍÒÔÉ«ÁУ¬Ò»°ëºó¶Ë¿ª·¢ÈËÔ±¶¼Ê¹ÓÃÁËÈÝÆ÷¡£Í¬Ê±ÔÚÈý¸öµØÇøÄÚ£¬25%-26%
µÄºó¶Ë¿ª·¢ÈËÔ±²ÉÓñàÅż¼ÊõÀ´¹ÜÀíÕâЩÈÝÆ÷¡£
´óÑóÖÞµØÇøÔÆÔÉú¼¼ÊõµÄʹÓÃÇé¿ö·Ç³£¶ÀÌØ¡£¾¡¹ÜÈÝÆ÷µÄʹÓÃÔڸõØÇø²¢Ã»ÓÐÆäËûµØÇøÄÇôÆձ飬µ«ÓëÈ«ÇòÆäËûµØÇøÏà±È£¬Serverless
ÒÔ¼°ÈÝÆ÷±àÅŵȼ¼ÊõÔÚ´óÑóÖÞµÄÆÕ¼°ÂÊ×î¸ß¡£
ÑÇÖÞ¡¢Öж«ºÍ·ÇÖÞµØÇøµÄ¿ª·¢ÈËÔ±²ÉÓÃÈÝÆ÷ºÍÔÆÔÉú¼¼ÊõµÄËٶȽÏÂý¡£ÖйúµÄ¸÷´ó¹«Ë¾ÔÚÏòÔƵÄǨÒÆ·½ÃæÒ»Ö±Öͺ󣬲¢ÇÒÔÆÔÉú¼¼ÊõµÄʹÓÃÒ²³ÊÏÖͬÑùµÄÇ÷ÊÆ¡£Ëæ×Å°¢Àï°Í°ÍµÄ
CaaS »ñµÃÊг¡µÄÇàíù£¬ÏàÐŽ«À´¶«ÑǵØÇø»áÓ¿ÏÖ¸ü¶àÔÆÔÉú¿ª·¢ÈËÔ±¡£
3. ÔÆÔÉú¿ª·¢ÈËÔ±ÕÆÎÕ¶àÖÖ»ù´¡¼Ü¹¹
ÔÆÔÉú¿ª·¢µÄÁé»îÐÔÈø÷¸ö×éÖ¯¸üÁé»îµØ²Ù×÷·Ö²¼Ê½»ù´¡¼Ü¹¹£¬²¢°´ÐèºÏÀí·ÖÅ乤×÷×ÊÔ´¡£
Óëδ²ÎÓëÔÆÔÉúµÄ¿ª·¢ÈËÔ±Ïà±È£¬ÔÆÔÉú¿ª·¢ÈËÔ±ÕÆÎյļÆËã»ù´¡¼Ü¹¹È·Êµ¸ü¶à¡£ÕâЩ¿ª·¢ÈËÔ±¸ü¼ÓÔ¸ÒâÔÚ˽ÓÐÔÆ¡¢¹«¹²ÔÆ¡¢»ìºÏÔƺͱ¾µØ·þÎñÆ÷µÈËÄÖÖ»·¾³ÖÐÔËÐдúÂ룬ÇÒƽ¾ùʹÓÃÁË1.8ÖÖ»·¾³£¬¶øδ²ÎÓëÔÆÔÉú¿ª·¢ÈËÔ±µÄƽ¾ùֵΪ1.5¡£Êý¾ÝÏÔʾ£¬270ÍòÔÆÔÉú¿ª·¢ÈËÔ±£¨58%£©ÔÚ¹«¹²ÔÆÉÏÔËÐкó¶Ë´úÂ룬220Íò¿ª·¢ÈËÔ±£¨47%£©Ñ¡ÔñÁË˽ÓÐÔÆ£¬Ñ¡Ôñ±¾µØ·þÎñÆ÷µÄ¿ª·¢ÈËԱΪ220Íò£¨47%£©£¬¶øÑ¡Ôñ»ìºÏÔƵĿª·¢ÈËԱΪ170Íò£¨
36%£©¡£
ÎÞÂÛÊÇÔÆÔÉú¿ª·¢ÈËÔ±»¹ÊÇ´«Í³¿ª·¢ÈËÔ±£¬Ñ¡ÔñÔÚ±¾µØ·þÎñÆ÷ÉÏÔËÐдúÂëµÄ±ÈÀý¶¼Ïàͬ¡£Õâ±íÃ÷£¬¾¡¹ÜÔÆÔÉú¿ª·¢ÈËÔ±ÒѾÕÆÎÕÁËÔƵÄÁé»îÐÔ£¬µ«ËûÃDz¢Î´·ÅÆú±¾µØ·þÎñÆ÷¡£
4. ÔƵÄʹÓÃÔÚ¸÷¸öÐÐÒµ¸÷²»Ïàͬ
ËäÈ»¿ª·¢ÈËÔ±²ÉÓÃÁËÔÆÔÉú¿ª·¢²ßÂÔ£¬µ«ÔËÐÐÕâЩÈí¼þµÄ¼ÆËã×ÊÔ´ÔÚ¸÷¸öÐÐÒµÍùÍù¸÷²»Ïàͬ¡£
ÀýÈ磬Óë±¾µØ·þÎñÆ÷»ò˽ÓÐÔÆÏà±È£¬Èí¼þ¹«Ë¾¸üÇãÏòÓÚÔÚ¹«¹²ÔÆÖÐÔËÐдúÂë¡£ÔÚÈí¼þ¹«Ë¾¹¤×÷µÄÔÆÔÉú¿ª·¢ÈËÔ±ÖУ¬½üÈý·ÖÖ®¶þÔÚ¹«¹²ÔÆÖÐÔËÐдúÂ룬ͬʱ¸ÃÐÐÒµÒ»°ëµÄ¿ª·¢ÈËÔ±ÔÚ˽ÓÐÔÆÉÏÔËÐдúÂë¡£
Êý¾Ý·ÖÎö¡¢ÉÌÒµÖÇÄÜÒÔ¼°Ó²¼þÁìÓòµÄ¿ª·¢ÈËÔ±¸üÇãÏòÓÚÔÚ¹«¹²ÔÆÉÏÔËÐÐÈí¼þ¡£ÓëÆäËûÐÐÒµµÄƽ¾ùˮƽÏà±È£¬ÕâЩÐÐÒµÖеÄÔÆÔÉú¿ª·¢ÈËÔ±ÔÚ¹«¹²ÔÆÖÐÔËÐдúÂëµÄ¸ÅÂʸß
7%¡£
ÔÚÉæ¼°Ãô¸ÐÊý¾ÝµÄÐÐÒµ¹¤×÷µÄÔÆÔÉú¿ª·¢ÈËÔ±¸üÇãÏòÓÚÔÚ±¾µØ·þÎñÆ÷»ò˽ÓÐÔÆÉÏÔËÐдúÂë¡£ÓëÆäËûÐÐÒµÏà±È£¬½ðÈÚ·þÎñÁìÓòµÄÔÆÔÉú¿ª·¢ÈËÔ±ÔÚ±¾µØ·þÎñÆ÷ÉÏÔËÐдúÂëµÄ±ÈÀý¸ß
12%£¬¶øÒ½ÁƱ£½¡ÁìÓòµÄ¿ª·¢ÈËÔ±µÄ±ÈÀý¸ß 8%¡£
ËûÃÇÏ£Íûͨ¹ý±¾µØ¼ÆË㣬¸üºÃµØ¿ØÖÆÃô¸ÐÊý¾Ý¡£
Êг¡ÓªÏú¡¢ÓéÀֺͷ¿µØ²úÁìÓòµÄÔÆÔÉú¿ª·¢ÈËÔ±²»Ì«¿ÉÄÜÔÚ±¾µØ·þÎñÆ÷ÉÏÔËÐдúÂë¡£ÕâЩÐÐÒµµÄÖصãÊÇÄÚÈÝ£¬Òò´ËÐèÒªÇáËÉ¿ìËٵطÃÎÊ¡£¿É·ÃÎÊÐÔºÍÐÔÄܶÔÕâЩÁìÓòµÄ³É¹¦ÖÁ¹ØÖØÒª£¬¶ø±¾µØ·þÎñÆ÷¿ÉÄÜÎÞ·¨Âú×ãÕâЩҪÇó¡£
ÁíÍ⣬µçÐźÍÕþ¸®/¹ú·ÀÁìÓòµÄÔÆÔÉú¿ª·¢ÈËԱʹÓÃ˽ÓÐÔÆ¡¢¹«¹²Ôƺͱ¾µØ·þÎñÆ÷µÄ±ÈÀý´óÖÂÏàͬ¡£ÕâЩ¿ª·¢ÈËԱʹÓù«¹²ÔƵıÈÀýÏà¶Ô½ÏµÍ¡£
δÀ´
¡°Î´À´µÄÈí¼þÒ»¶¨ÊÇÉú³¤ÓÚÔÆÉϵġ±£¬ÕâÊÇÔÆÔÉúÀíÄîµÄ×îºËÐļÙÉè¡£
1. ÈÝÆ÷¼¼Êõ·¢Õ¹Ç÷ÊÆ
1£©Ç÷ÊÆÒ»£ºÎÞ´¦²»ÔڵļÆËã´ßÉúÐÂÒ»´úÈÝÆ÷ʵÏÖ
Ëæ×Å»¥ÁªÍøµÄ·¢Õ¹µ½ÍòÎïÖÇÁª£¬5G¡¢AIoT µÈм¼ÊõµÄÓ¿ÏÖ£¬Ëæ´¦¿É¼ûµÄ¼ÆËãÐèÇóÒѾ³ÉΪÏÖʵ¡£Õë¶Ô²»Í¬¼ÆË㳡¾°£¬ÈÝÆ÷ÔËÐÐʱ»áÓв»Í¬ÐèÇó¡£KataContainer¡¢Firecracker¡¢gVisor¡¢Unikernel
µÈеÄÈÝÆ÷ÔËÐÐʱ¼¼Êõ²ã³ö²»Ç·Ö±ð½â¾ö°²È«¸ôÀëÐÔ¡¢Ö´ÐÐЧÂʺÍͨÓÃÐÔÈý¸ö²»Í¬Î¬¶ÈÒªÇó¡£OCI(Open
Container Initiative)±ê×¼µÄ³öÏÖ£¬ ʹ²»Í¬¼¼Êõ²ÉÓÃÒ»Öµķ½Ê½½øÐÐÈÝÆ÷ÉúÃüÖÜÆÚ¹ÜÀí£¬½øÒ»²½´Ù½øÁËÈÝÆ÷ÒýÇæ¼¼ÊõµÄ³ÖÐø´´Ð¡£
2£©Ç÷Êƶþ£ºÔÆÔÉú²Ù×÷ϵͳ¿ªÊ¼¸¡ÏÖ
Kubernetes ÒѾ³ÉΪÔÆʱ´úµÄ²Ù×÷ϵͳ¡£¶Ô±È Linux Óë Kubernetes ¸ÅÄîÄ£ÐÍ£¬Á½Õ߶¼¶¨ÒåÁË¿ª·ÅµÄ¡¢±ê×¼»¯µÄ·ÃÎʽӿڣºÏòÏ·â×°×ÊÔ´£¬ÏòÉÏÖ§³ÅÓ¦Óá£
ËüÃǶ¼ÌṩÁ˶Եײã¼ÆËã¡¢´æ´¢¡¢ÍøÂç¡¢Òì¹¹¼ÆËãÉ豸µÄ×ÊÔ´³éÏóºÍ°²È«·ÃÎÊÄ£ÐÍ£¬¿ÉÒÔ¸ù¾ÝÓ¦ÓÃÐèÇó½øÐÐ×ÊÔ´µ÷¶ÈºÍ±àÅÅ¡£Linux
µÄ¼ÆËãµ÷¶Èµ¥ÔªÊǽø³Ì£¬µ÷¶È·¶Î§ÏÞÖÆÔÚһ̨¼ÆËã½Úµã¡£¶ø Kubernetes µ÷¶Èµ¥Î»ÊÇ Pod£¬ ¿ÉÒÔÔÚ·Ö²¼Ê½¼¯ÈºÖнøÐÐ×ÊÔ´µ÷¶È£¬ÉõÖÁ¿çÔ½²»Í¬ÔÆ»·¾³¡£
¹ýÍù Kubernetes ÉÏÖ÷ÒªÔËÐÐ×ÅÎÞ״̬µÄ Web Ó¦Óá£Ëæ׿¼ÊõÑݽøºÍÉçÇø·¢Õ¹£¬Ô½À´Ô½¶àÓÐ״̬ӦÓúʹóÊý¾Ý
/ AI Ó¦ÓøºÔØÖð½¥Ç¨ÒƵ½ Kubernetes ÉÏ¡£Flink¡¢Spark µÈ¿ªÔ´ÉçÇøÒÔ¼° Cloudera¡¢Databricks
µÈÉÌÒµ¹«Ë¾¶¼ ¿ªÊ¼¼Ó´ó¶Ô Kubernetes µÄÖ§³ÖÁ¦¶È¡£
ͳһ¼¼ÊõÕ»ÌáÉý×ÊÔ´ÀûÓÃÂÊ£º¶àÖÖ¼ÆË㸺ÔØÔÚ Kubernetes ¼¯ÈºÍ³Ò»µ÷¶È£¬¿ÉÒÔÓÐЧÌáÉý×ÊÔ´ÀûÓÃÂÊ¡£
ͳһ¼¼ÄÜÕ»½µµÍÈËÁ¦³É±¾£ºKubernetes ¿ÉÒÔÔÚ IDC¡¢Ôƶˡ¢±ßÔµµÈ²»Í¬³¡¾°½øÐÐͳһ²¿ÊðºÍ½»¸¶¡£ÔÆÔÉúÌá
³«µÄ DevOps ÎÄ»¯ºÍ¹¤¾ß¼¯¿ÉÒÔÓÐЧÌáÉý¼¼Êõµü´úËٶȲ¢½µµÍÈËÁ¦³É±¾¡£
¼ÓËÙÊý¾Ý·þÎñµÄÔÆÔÉú»¯£ºÓÉÓÚ¼ÆËã´æ´¢·ÖÀë¾ß±¸¾Þ´óµÄÁé»îÐԺͳɱ¾ÓÅÊÆ£¬Êý¾Ý·þÎñµÄÔÆÔÉú»¯Ò²Öð½¥³ÉΪ
Ç÷ÊÆ¡£ÈÝÆ÷ºÍ Serverless µÄµ¯ÐÔ¿ÉÒÔ¼ò»¯¶Ô¼ÆËãÈÎÎñµÄÈÝÁ¿¹æ»®¡£½áºÏ·Ö²¼Ê½»º´æ¼ÓËÙ(±ÈÈç Alluxio
»ò°¢ÀïÔÆ Jindofs)ºÍµ÷¶ÈÓÅ»¯£¬´ó´óÌáÉýÊý¾Ý¼ÆËãÀàºÍ AI ÈÎÎñµÄ¼ÆËãЧÂÊ¡£
3£©Ç÷ÊÆÈý£ºServerless ÈÝÆ÷¼¼ÊõÖð½¥³ÉΪÊг¡Ö÷Á÷
Serverless ºÍÈÝÆ÷¼¼ÊõÒ²¿ªÊ¼Èںϵõ½ÁË¿ìËٵķ¢Õ¹¡£Í¨¹ý Serverless ÈÝÆ÷£¬Ò»·½Ãæ¸ù±¾ÐÔ½â¾ö
Kubernetes ×ÔÉí¸´ÔÓÐÔÎÊÌ⣬ÈÃÓû§ÎÞÐèÊÜÀ§ÓÚ Kubernetes ¼¯ÈºÈÝÁ¿¹æ»®¡¢°²È«Î¬»¤¡¢¹ÊÕÏÕï¶ÏµÈÔËά¹¤×÷;
Ò»·½Ãæ½øÒ»²½ÊÍ·ÅÔƼÆËãÄÜÁ¦£¬½«°²È«¡¢¿ÉÓÃÐÔ¡¢¿ÉÉìËõÐÔµÈÐèÇóϳÁµ½»ù´¡ÉèʩʵÏÖ¡£
4£©Ç÷ÊÆËÄ£º¶¯Ì¬¡¢»ìºÏ¡¢·Ö²¼Ê½µÄÔÆ»·¾³½«³ÉΪг£Ì¬
ÉÏÔÆÒÑÊÇ´óÊÆËùÇ÷£¬µ«¶ÔÓÚÆóÒµ¶øÑÔ£¬ÓÐЩҵÎñ³öÓÚ¶ÔÊý¾ÝÖ÷Ȩ¡¢°²È«Òþ˽µÄ¿¼Á¿£¬»á²ÉÓûìºÏÔƼܹ¹¡£Ò»Ð©ÆóҵΪÁËÂú×㰲ȫºÏ¹æ¡¢³É±¾ÓÅ»¯¡¢ÌáÉýµØÓò¸²¸ÇÐԺͱÜÃâÔƳ§ÉÌËø¶¨µÈÐèÇ󣬻áÑ¡Ôñ¶à¸öÔƳ§ÉÌ¡£»ìºÏÔÆ
/ ¶àÔƼܹ¹ÒѳÉΪÆóÒµÉÏÔÆг£Ì¬¡£Gartner Ö¸³ö¡°µ½ 2021£¬³¬¹ý 75% µÄ´óÖÐÐÍ×éÖ¯½«²ÉÓöàÔÆ»òÕß»ìºÏ
IT Õ½ÂÔ¡£¡±
2. »ùÓÚÔÆÔÉúµÄÐÂÒ»´úÓ¦Óñà³Ì½çÃæ
Kubenetes ÒѾ³ÉΪÁËÔÆÔÉúµÄ²Ù×÷ϵͳ£¬¶øÈÝÆ÷³ÉΪÁ˲Ù×÷ϵͳµ÷¶ÈµÄ»ù±¾µ¥Ôª£¬Í¬Ê±¶¨ÒåÁËÓ¦Óý»¸¶µÄ±ê×¼¡£µ«¶ÔÓÚ¿ª·¢ÕßÀ´Ëµ£¬ÕâЩ»¹Ô¶Ã»ÓÐÉîÈëµ½Ó¦Óõļܹ¹£¬¸Ä±äÓ¦Óõıà³Ì½çÃæ¡£µ«ÊÇÕâÖÖ±ä¸ïÒѾÔÚÇÄÈ»·¢ÉúÁË£¬¶øÇÒÓв»¶Ï¼ÓËÙÖ®ÊÆ¡£
Sidecar ¼Ü¹¹³¹µ×¸Ä±äÁËÓ¦ÓõÄÔËά¼Ü¹¹¡£ÓÉÓÚ Sidecar ¼Ü¹¹Ö§³ÖÔÚÔËÐÐʱ¸ôÀëÓ¦ÓÃÈÝÆ÷ÓëÆäËûÈÝÆ÷£¬Òò´Ë
Ô±¾ÔÚÐéÄâ»úʱ´úºÍÒµÎñ½ø³Ì²¿ÊðÔÚÒ»ÆðµÄ´óÁ¿ÔËά¼°¹Ü¿Ø¹¤¾ß¶¼±»°þÀëµ½¶ÀÁ¢µÄÈÝÆ÷Àï½øÐÐͳһ¹ÜÀí¡£¶ÔÓÚÓ¦ÓÃÀ´Ëµ£¬½ö½öÊÇ°´ÐèÉùÃ÷ʹÓÃÔËάÄÜÁ¦£¬ÄÜÁ¦ÊµÏÖ³ÉΪÔÆƽ̨µÄÖ°Ôð¡£
Ó¦ÓÃÉúÃüÖÜÆÚÈ«ÃæÍйܡ£ÔÚÈÝÆ÷¼¼Êõ»ù´¡ÉÏ£¬Ó¦ÓýøÒ»²½ÃèÊöÇåÎú×ÔÉí״̬(ÀýÈçͨ¹ý Liveness Probe)£¬
ÃèÊö×ÔÉíµÄµ¯ÐÔÖ¸±êÒÔ¼°Í¨¹ý Service Mesh ºÍ Serverless ¼¼Êõ½«Á÷Á¿ÍйܸøÔÆƽ̨¡£ÔÆƽ̨Äܹ»È«Ãæ¹ÜÀíÓ¦ÓõÄÉúÃüÖÜÆÚ£¬°üÀ¨·þÎñµÄÉÏÏÂÏß¡¢°æ±¾Éý¼¶¡¢ÍêÉƵÄÁ÷Á¿µ÷Åä¡¢ÈÝÁ¿¹ÜÀíµÈ±£ÕÏÒµÎñÎȶ¨ÐÔ¡£
ÓÃÉùÃ÷ʽÅäÖ÷½Ê½Ê¹ÓÃÔÆ·þÎñ¡£ÔÆÔÉúÓ¦ÓõĺËÐÄÌصãÖ®Ò»¾ÍÊÇ´óÁ¿ÒÀÀµÔÆ·þÎñ(°üÀ¨Êý¾Ý¿â¡¢»º´æ¡¢ÏûÏ¢µÈ)
¹¹½¨£¬ÒÔʵÏÖ¿ìËÙ½»¸¶¡£
ÓïÑÔÎ޹صķֲ¼Ê½±à³Ì¿ò¼Ü³ÉΪһÖÖ·þÎñ¡£ÎªÁ˽â¾ö·Ö²¼Ê½´øÀ´µÄ¼¼ÊõÌôÕ½£¬´«Í³Öмä¼þÐèÒªÔÚ¿Í»§¶Ë SDK
±àд´óÁ¿µÄÂß¼¹ÜÀí·Ö²¼Ê½µÄ״̬¡£ÎÒÃÇ¿´µ½ºÜ¶àÏîÄ¿ÔÚ°ÑÕâЩÄÚÈÝϳÁµ½ Sidecar ÖУ¬²¢Í¨¹ýÓïÑÔÎ޹صÄ
API (»ùÓÚ gRPC/HTTP) Ìṩ¸øÓ¦Óá£ÕâÒ»±ä»¯½øÒ»²½¼ò»¯Ó¦ÓôúÂëÂß¼ºÍÓ¦ÓÃÑз¢µÄÖ°Ôð£¬ÀýÈçÅäÖð󶨣¬Éí·ÝÈÏÖ¤ºÍ¼øȨ¶¼¿ÉÒÔÔÚ
Sidecar ±»Í³Ò»´¦Àí¡£
×ÛÉÏ£¬°üÀ¨ÉúÃüÖÜÆÚ¹ÜÀí¡¢ÔËά¹ÜÀí¡¢ÅäÖ÷¶Î§ºÍÀ©Õ¹ºÍ¹ÜÀí¡¢ÒÔ¼°ÓïÑÔÎ޹صıà³Ì¿ò¼Ü£¬Ò»Æð¹¹³ÉÁËոеÄÓ¦ÓÃÓëÔÆÖ®¼äµÄ±à³Ì½çÃæ¡£ÕâÒ»±ä¸ïµÄºËÐÄÂß¼»¹ÊÇ°ÑÓ¦ÓÃÖкÍÒµÎñÎ޹صÄÂß¼ºÍÖ°Ô𣬰þÀëµ½ÔÆ·þÎñ£¬²¢ÔÚÕâÒ»¹ý³ÌÖÐÐγɱê×¼£¬ÈÃÓ¦Óÿª·¢ÕßÄܹ»ÔÚרÓÐÔÆ¡¢¹«ÓÐÔÆ»òÕß»ìºÏÔƵij¡¾°ÖУ¬ÄÜÓÐÒ»ÖµÄÑз¢ÔËάÌåÑé¡£
Sidecar ¼Ü¹¹Ä£Ê½
½«Ó¦ÓóÌÐòµÄ×é¼þ²¿Êðµ½µ¥¶ÀµÄ½ø³Ì»òÈÝÆ÷ÖÐÒÔÌṩ¸ôÀëºÍ·â×°¡£ÕâÖÖģʽ»¹¿ÉÒÔʹӦÓóÌÐòÓÉÒì¹¹×é¼þºÍ¼¼Êõ×é³É£¬¸Ãģʽ±»ÃüÃûΪ
Sidecar£¬ÒòΪËüÀàËÆÓÚÁ¬½Óµ½Ä¦ÍгµµÄ¸¨Öú³µ£¬¸¨Öú³µ±»¸½¼Óµ½¸¸Ó¦ÓóÌÐò²¢ÎªÓ¦ÓóÌÐòÌṩ֧³Ö¹¦ÄÜ¡£
3. Serverless ·¢Õ¹Ç÷ÊÆ
½üÄêÀ´£¬Serverless Ò»Ö±ÔÚ¸ßËÙ·¢Õ¹£¬³ÊÏÖ³öÔ½À´Ô½´óµÄÓ°ÏìÁ¦¡£ÔÚÕâÑùµÄÇ÷ÊÆÏ£¬Ö÷Á÷ÔÆ·þÎñÉÌÒ²ÔÚ²»¶Ï·á¸»ÔƲúÆ·Ìåϵ£¬Ìṩ¸ü±ã½ÝµÄ¿ª·¢¹¤¾ß£¬¸ü¸ßЧµÄÓ¦Óý»¸¶Á÷Ë®Ïߣ¬¸üÍêÉƵĿɹ۲âÐÔ£¬¸ü·á¸»µÄ²úÆ·¼ä¼¯³É¡£
1£©Ç÷ÊÆÒ»£ºServerless ½«ÎÞ´¦²»ÔÚ
ÈκÎ×ã¹»¸´Ôӵļ¼Êõ·½°¸¶¼¿ÉÄܱ»ÊµÏÖΪȫÍйܡ¢Serverless »¯µÄºó¶Ë·þÎñ¡£²»Ö»ÊÇÔƲúÆ·£¬Ò²°üÀ¨À´×ÔºÏ×÷
»ï°éºÍÈý·½µÄ·þÎñ£¬ÔƼ°ÆäÉú̬µÄÄÜÁ¦½«Í¨¹ý API + Serverless À´ÌåÏÖ¡£ÊÂʵÉÏ£¬¶ÔÓÚÈκÎÒÔ
API ×÷Ϊ¹¦ÄÜ͸³ö·½Ê½µÄƽ̨ÐͲúÆ·»ò×éÖ¯£¬Serverless ¶¼½«ÊÇÆäƽ̨սÂÔÖÐ×îÖØÒªµÄ²¿·Ö¡£
2£©Ç÷Êƶþ£ºServerless ½«Í¨¹ýʼþÇý¶¯µÄ·½Ê½Á¬½ÓÔƼ°ÆäÉú̬ÖеÄÒ»ÇÐ
ͨ¹ýʼþÇý¶¯ºÍÔÆ·þÎñÁ¬½Ó£¬Serverless ÄÜÁ¦Ò²»áÀ©Õ¹µ½Õû¸öÔÆÉú̬¡£
3£©Ç÷ÊÆÈý:Serverless ¼ÆË㽫³ÖÐøÌá¸ß¼ÆËãÃܶȣ¬ÊµÏÖ×î¼ÑµÄÐÔÄܹ¦ºÄ±ÈºÍÐÔÄܼ۸ñ±È
ÐéÄâ»úºÍÈÝÆ÷ÊÇÁ½ÖÖÈ¡Ïò²»Í¬µÄÐéÄ⻯¼¼Êõ£¬Ç°Õß°²È«ÐÔÇ¿¡¢¿ªÏú´ó£¬ºóÕßÔòÏà·´¡£Serverless ¼ÆËãƽ̨һ·½ÃæÒªÇó¼æµÃ×î¸ßµÄ°²È«ÐÔºÍ×îСµÄ×ÊÔ´¿ªÏú£¬ÁíÒ»·½ÃæÒª±£³Ö¶ÔÔÓгÌÐòÖ´Ðз½Ê½µÄ¼æÈÝ£¬±ÈÈçÖ§³ÖÈÎÒâ¶þ½øÖÆÎļþ£¬
ÕâʹµÃÊÊÓÃÓÚÌض¨ÓïÑÔ VM µÄ·½°¸²»¿ÉÐС£
µ± Serverless ¼ÆËãµÄ¹æÄ£ÓëÓ°ÏìÁ¦±äµÃÔ½À´Ô½´ó£¬ÔÚÓ¦Óÿò¼Ü¡¢ÓïÑÔ¡¢Ó²¼þµÈ²ãÃæÉϸù¾Ý Serverless
¸ºÔØÌصã½øÐж˶ԶËÓÅ»¯¾Í±äµÃ·Ç³£ÓÐÒâÒå¡£Ð嵀 Java ÐéÄâ»ú¼¼Êõ´ó·ùÌá¸ßÁË Java Ó¦ÓÃÆô¶¯Ëٶȣ¬·ÇÒ×ʧÐÔÄÚ´æ°ïÖúʵÀý¸ü¿ì±»»½ÐÑ£¬CPU
Ó²¼þÓë²Ù×÷ϵͳÐ×÷¶Ô¸ßÃÜ»·¾³ÏÂÐÔÄÜÈŶ¯ÊµÏÖ¾«Ï¸¸ôÀ룬м¼ÊõÕýÔÚ´´ÔìոеļÆËã»·¾³¡£
ʵÏÖ×î¼ÑÐÔÄܹ¦ºÄ±ÈºÍÐÔÄܼ۸ñ±ÈµÄÁíÒ»¸öÖØÒª·½ÏòÊÇÖ§³ÖÒì¹¹Ó²¼þ¡£ÓÉÓÚ x86 ´¦ÀíÆ÷µÄÐÔÄÜÔ½À´Ô½ÄÑÒÔÌáÉý£¬¶øÔÚ
AI µÈ¶ÔËãÁ¦ÒªÇ󼫸ߵij¡¾°£¬GPU¡¢FPGA¡¢TPU(Tensor Processing Units)µÈ¼Ü¹¹´¦ÀíÆ÷µÄ¼ÆËãЧÂʸü¾ßÓÅÊÆ¡£Ëæ×ÅÒì¹¹Ó²¼þÐéÄ⻯¡¢×ÊÔ´³Ø»¯¡¢Òì¹¹×ÊÔ´µ÷¶ÈºÍÓ¦Óÿò¼ÜÖ§³ÖµÄ³ÉÊ죬Òì¹¹Ó²¼þµÄËãÁ¦Ò²ÄÜͨ¹ý
Serverless µÄ·½Ê½ÊÍ·Å£¬´ó·ù½µµÍÆóҵʹÓÃÃż÷¡£
|