sync blog of legacy system reform Signed-off-by: eric-lee-ltk <[email protected]>
Project: http://git-wip-us.apache.org/repos/asf/incubator-servicecomb-website/repo Commit: http://git-wip-us.apache.org/repos/asf/incubator-servicecomb-website/commit/a00c8db2 Tree: http://git-wip-us.apache.org/repos/asf/incubator-servicecomb-website/tree/a00c8db2 Diff: http://git-wip-us.apache.org/repos/asf/incubator-servicecomb-website/diff/a00c8db2 Branch: refs/heads/asf-site Commit: a00c8db288b562262869be68e3eebc08d5f2badc Parents: 3141432 Author: eric-lee-ltk <[email protected]> Authored: Mon Oct 23 16:29:12 2017 +0800 Committer: Willem Jiang <[email protected]> Committed: Mon Oct 23 21:43:54 2017 -0500 ---------------------------------------------------------------------- _data/authors.yml | 5 + .../2017-10-23-how-to-reform-a-legacy-system.md | 330 +++++++++++++++++++ .../2017-10-23-how-to-reform-a-legacy-system.md | 330 +++++++++++++++++++ ...best_practices_for_legacy_system_reform.jpeg | Bin 0 -> 24022 bytes assets/images/legacy_system_background.jpeg | Bin 0 -> 19848 bytes .../legacy_system_reform_architecture.jpeg | Bin 0 -> 22413 bytes .../images/legacy_system_reform_strategy.jpeg | Bin 0 -> 12452 bytes ...icroservice_definition_by_martin_folwer.jpeg | Bin 0 -> 35559 bytes assets/images/microservice_reform_strategy.jpeg | Bin 0 -> 25947 bytes ...pid_development_framework_based_on_ruby.jpeg | Bin 0 -> 28266 bytes assets/images/why_microservice_show_up.jpeg | Bin 0 -> 32684 bytes 11 files changed, 665 insertions(+) ---------------------------------------------------------------------- http://git-wip-us.apache.org/repos/asf/incubator-servicecomb-website/blob/a00c8db2/_data/authors.yml ---------------------------------------------------------------------- diff --git a/_data/authors.yml b/_data/authors.yml index 1c146e4..463f3da 100644 --- a/_data/authors.yml +++ b/_data/authors.yml @@ -30,3 +30,8 @@ Yangyong Zheng: uri: "https://zhengyangyong.github.io" email: "[email protected]" bio: "Fast Action, do not ask" +Wang Lei: + name: "Wang Lei" + uri: "https://wldandan.github.io" + email: "[email protected]" + bio: "Happy Coding, Happy Life" http://git-wip-us.apache.org/repos/asf/incubator-servicecomb-website/blob/a00c8db2/_posts/2017-10-23-how-to-reform-a-legacy-system.md ---------------------------------------------------------------------- diff --git a/_posts/2017-10-23-how-to-reform-a-legacy-system.md b/_posts/2017-10-23-how-to-reform-a-legacy-system.md new file mode 100644 index 0000000..c2f4d7d --- /dev/null +++ b/_posts/2017-10-23-how-to-reform-a-legacy-system.md @@ -0,0 +1,330 @@ +--- +title: "æå¤´ç¼çéçç³»ç»è¯¥å¦ä½æ¹é ï¼" +lang: en +ref: how-to-reform-a-legacy-system +permalink: /docs/how-to-reform-a-legacy-system/ +excerpt: "å¾®æå¡æ¯å¦æ¯ä¸çæå¾ å·²ä¹ çä¼ä¸æ¶æè§£å³æ¹æ¡ï¼å¨å¯¹éçç³»ç»è¿è¡å¾®æå¡çæ¹é è¿ç¨ä¸åå¨ææ ·çå°é¾åææï¼åºè¯¥æ³¨æäºä»ä¹ï¼" +last_modified_at: 2017-10-23T15:22:00+08:00 +author: Wang Lei +tags: [Reform legacy system] +redirect_from: + - /theme-setup/ +--- + +éçRESTfulãäºè®¡ç®ãDevOpsãæç»äº¤ä»çæ¦å¿µçæ·±å ¥äººå¿ï¼å¾®æå¡ï¼Microservicesï¼éæ¸æä¸ºç³»ç»æ¶æçä¸ä¸ªä»£åè¯ãé£ä¹å¾®æå¡æ¯å¦æ¯ä¸çæå¾ å·²ä¹ çä¼ä¸æ¶æè§£å³æ¹æ¡ï¼å¨å¯¹éçç³»ç»è¿è¡å¾®æå¡çæ¹é è¿ç¨ä¸åå¨ææ ·çå°é¾åææï¼åºè¯¥æ³¨æäºä»ä¹ï¼å¨è¯¥å享ä¸ï¼çç£å°éè¿å®é çæ¡ä¾ï¼è·å¤§å®¶æ¢è®¨ä½¿ç¨å¾®æå¡æ¹é éçç³»ç»çå®è·µä¹è·¯ã +1. ä»ä¹æ¯å¾®æå¡ +2. å¾®æå¡çè¯çèæ¯ +3. éçç³»ç»çå¾®æå¡æ¹é çç¥ +4. å¾®æå¡æ¹é ä¹è·¯ + +## èæ¯ +é¦å ï¼è¯·å¤§å®¶æèä»ä¹æ¯ç³»ç»æ¶æè®¾è®¡ï¼ + +ä¸ç´ä»¥æ¥ï¼ç³»ç»æ¶æè®¾è®¡æ¯ITé¢åç»ä¹ ä¸è¡°çè¯é¢ä¹ä¸ï¼æ¯æ¯ä¸ªç³»ç»æå»ºè¿ç¨ä¸æå ¶å ³é®çä¸é¨åï¼å®å³å®äºç³»ç»æ¯å¦è½å¤è¢«æ£ç¡®ãææçæå»ºã大家ä¹ä¸ç´å¨æ¢ç´¢ï¼å¯»æ¾æ´ä¼ç§çæ¶æè®¾è®¡æ¹å¼æ¥æå»ºç³»ç»ã + +é£ä»ä¹æ¯ç³»ç»çæ¶æè®¾è®¡ï¼å¯¹äºè¿ä¸ªé®é¢ï¼æç¸ä¿¡æ¯ä¸ªæåé½ä¼æä¸åçå®ä¹ï¼å®é ä¸ï¼ä¹å¹¶æ²¡æä¸ä¸ªæ åççæ¡æ¥è§£éä»ä¹æ¯æ¶æè®¾è®¡ã + +åºäºæè¿å»çç»éªå工使¹å¼ï¼æè®¤ä¸ºç³»ç»æ¶æè®¾è®¡çæ¬è´¨ï¼æ¯å¨åºç¨ç³»ç»å 鍿¾å°è¿æ ·ä¸ä¸ªå¨æå¹³è¡¡ï¼å¹³è¡¡ä¸å¡ãææ¯ãå¢éçåæ¶ï¼èèç³»ç»çµæ´»æ§ã坿©å±æ§ä»¥åå¯ç»´æ¤æ§çå ç´ ï¼å¹¶å°åºç¨ç³»ç»ååæä¸åçé¨åï¼ä½¿è¿äºé¨åå½¼æ¤ä¹é´ç¸äºåå·¥ãç¸äºåä½ï¼ä»èä¸ºç¨æ·æä¾æç§ç¹å®çä»·å¼çæ¹å¼ã + +éçRESTfulãäºè®¡ç®ãDevOpsãæç»äº¤ä»çæ¦å¿µçæ·±å ¥äººå¿ï¼**å¾®æå¡æ¶æéæ¸æä¸ºç³»ç»æ¶æçä¸ä¸ªä»£åè¯**ã + +## ä»ä¹æ¯å¾®æå¡æ¶æ +2015å¹´ï¼å¾®æå¡æ¶æè¿ä¸ªè¯ï¼ä»¥ç¸å½é«çé¢çåºç°å¨åç§æ¼è®²ãæç« ãä¼è®®ã社åºä¸ãè¿éï¼æå°±å大家快éå顾ä¸ä¸ï¼è马ï¼Martin Folwerï¼å¯¹å¾®æå¡çå®ä¹ã + + + +å¦ä¸æç¤ºï¼å¾®æå¡æ¶æçæ ¸å¿åè¦ç´ ï¼æç¨çº¢è²æ æ³¨åºæ¥äºãå¦æç¿»è¯æä¸æï¼å¤§è´å¦ä¸æç¤ºï¼ + +> å¾®æå¡æ¶ææ¯ä¸ç§æ¶ææ¨¡å¼ï¼å®æå¡å°åä¸åºç¨ç¨åºååæä¸ç»å°çæå¡ï¼æå¡ä¹é´äºç¸åè°ãäºç¸é åï¼ä¸ºç¨æ·æä¾æç»ä»·å¼ã æ¯ä¸ªæå¡è¿è¡å¨å ¶ç¬ç«çè¿ç¨ä¸ï¼æå¡ä¸æå¡é´éç¨è½»é级çéä¿¡æºå¶äºç¸åä½ï¼é常æ¯åºäºHTTPåè®®çRESTful APIï¼ã æ¯ä¸ªæå¡é½å´ç»çå ·ä½ä¸å¡è¿è¡æå»ºï¼å¹¶ä¸è½å¤è¢«ç¬ç«çé¨ç½²å°ç产ç¯å¢ãç±»ç产ç¯å¢çã å¦å¤ï¼å¯¹å ·ä½çæå¡èè¨ï¼åºæ ¹æ®ä¸å¡ä¸ä¸æï¼éæ©åéçè¯è¨ãå·¥å ·å¯¹å ¶è¿è¡æå»ºã + +æ»ç»æä¸å¥è¯å°±æ¯**å¾®æå¡æ¯å´ç»ä¸å¡æå»ºçç»ç²åº¦çåå¸å¼ç³»ç»**ã + +## å¾®æå¡çè¯çèæ¯ +2015å¹´ï¼å¾®æå¡çªç¶ç«äºï¼ä¸ºä»ä¹ï¼ + +å ¶å®å¾®æå¡æ¶æå¹¶ä¸æ¯ä»ä¹ææ¯åæ°ï¼èæ¯ITåå±å°ç°é¶æ®µå¯¹ææ¯æ¶æçè¦æ±ã + +è¿ä¸ªè¦æ±å æ¬**å¿«éåä¸å¡å¯¹é½ï¼alignbusinessï¼ãå¿«éçè§£åæ½è±¡ä¸å¡ï¼DDDï¼ãå¿«éå¼åï¼LeanãAgileï¼ãå¿«éåé¦å交ä»ï¼CIãCDãDevOpsï¼**ã + +æä»¥æè®¤ä¸ºå¾®æå¡å¹¶ä¸æ¯ææ¯ï¼èæ¯å°åæ´ä¸ºé¶ï¼æç§°åæ²»ï¼ææ³æ¢äºä¸ç§è¯´æ³ï¼æ è®ºæ¯æä¸ä¸ªå¤§åç³»ç»å岿å¤ä¸ªå°èèªæ²»çç³»ç»ï¼è¿æ¯æä¸ä¸ªå¤§åå¢éåæå¤ä¸ªå¢éï¼ææ¯æä¸ä¸ªå¤æç项ç®åæå¤ä¸ªäº¤ä»é¶æ®µé½æ¯è¿ç§ææ³çè¿ç¨ã + +å½ç¶ï¼ä»»ä½æ°äºç©çè¯çï¼æ»ä¼æä¸ä¸ªæ¨å¨å ç´ ãå¾®æå¡çè¯çä¹å¹¶éå¶ç¶ã宿¯äºèç½é«éåå±ï¼ææ¯æ¥æ°æå¼çåå以åä¼ ç»æ¶ææ æ³éåºå¿«éååçå¤éå ç´ çæ¨å¨ä¸æè¯çç产ç©ã + +åºäºä¸ªäººççè§£ï¼æå°å¾®æå¡çè¯çå ç´ æ»ç»ä¸ºå¦ä¸å ç¹ï¼ + + + +1. **äºèç½è¡ä¸çå¿«éåå±** + + è¿å»çåå¹´ä¸ï¼äºèç½å¯¹æä»¬ççæ´»äº§çäºç¿»å¤©è¦å°çååï¼è¶æ¥è¶å¤çä¼ ç»è¡ä¸å ¬å¸ä¹å¼å§ä¾èµäºèç½ææ¯æé å ¶æ ¸å¿ç«äºä¼å¿ã + + å¨è¿ç§æ åµä¸ï¼å¦ä½ä»ç³»ç»æ¶æçè§åº¦åºåï¼æå»ºçµæ´»ãææ©å±çç³»ç»ï¼å¿«éåºå¯¹éæ±çååï¼åæ¶ï¼éçç¨æ·éçå¢å ï¼å¦ä½ä¿è¯ç³»ç»çå¯ä¼¸ç¼©æ§ãé«å¯ç¨æ§ï¼æä¸ºç³»ç»æ¶æé¢ä¸´çææã + +2. **ååæ¶æç³»ç»é¢ä¸´çææ** + + éçç¨æ·éæ±ä¸ªæ§åã产åçå½å¨æåçãå¸åºéæ±ä¸ç¨³å®çå ç´ çåºç°ï¼ååæ¶æç³»ç»é¢ä¸´çè¶æ¥è¶å¤çææãå¦ä½æ¾å°ä¸ç§æ´ææçãæ´çµæ´»ãéåºéæ±çç³»ç»æ¶ææ¹å¼ï¼æä¸ºå¤§å®¶å ³æ³¨çç¦ç¹ã + +3. **ææ·ãç²¾çæ¹æ³ãæç»äº¤ä»çæ·±å ¥äººå¿** + + å¨ITè¡ä¸åå±çè¿å»åå¹´ï¼ææ·ãç²¾çãæç»äº¤ä»çä»·å¼è§ãæ¹æ³è®ºçæåºä»¥åå®è·µï¼è®©å¾å¤ç»ç»æè¯å°åºåå¸åºååãæé«ååºåçéè¦æ§ï¼åºè¯¥æå»ºè½¯ä»¶äº¤ä»å¨æçéç¯ï¼åæãå¼åãæµè¯ãé¨ç½²ãè¿ç»´ãçæ§ãè¿è¥ï¼ï¼èä¸ä» ä» æ¯æé«å¼åé¶æ®µçæçã + + **ç²¾çåä¸ï¼Lean Startupï¼**帮å©ç»ç»åæå¹¶å»ºç«æå°å¯å®è¡äº§åï¼MinimumViableProductï¼ï¼éè¿è¿ä»£æç»æ¹è¿ææ·æ¹æ³å¸®å©ç»ç»æ¶é¤æµªè´¹ï¼éè¿åé¦ä¸ææ¾å°æ£ç¡®çæ¹åã + + **æç»äº¤ä»**å帮å©ç»ç»æå»ºæ´å¿«ãæ´å¯é ãå¯é¢ç¹åå¸çäº¤ä»æºå¶å¹¶æå»ºäº§å交ä»éç¯ã + + 大é¨åç»ç»å·²ç»åºæ¬ä¸å½¢æäºä¸å¥å¯å®æ½ç交ä»ä½ç³»ãå æ¬æç»éæãèªå¨åæµè¯ãæ°æ®ç®¡çãèªå¨åé¨ç½²æºå¶çã + + è¿æ¶åï¼å¤§æ³¥çå¼çååæ¶æï¼ä¼éæ¸æä¸ºå½±å交ä»å¨æè¿ä¸æ¥ä¼åçç¶é¢ï¼å æ¤å¦ä½æ¾å°çµæ´»æ§é«ãæ©å±æ§å¥½çæ¶ææ¹å¼ï¼ä¹æä¸ºè¿ä¸æ¥ä¼å交ä»å¨æé¢ä¸´çææã + +4. **Dockerç容å¨èæåææ¯çå¿«éåå±** + + åä¼ ç»çèæåææ¯ç¸æ¯ï¼åºäºå®¹å¨ææ¯çDockerï¼ä¸éè¦å¤æçHypervisoræºå¶æ¯æï¼å ·ææ´é«çèæåæ§è½åæçã + + 忶容å¨å¯ä»¥å¾å®¹æçè¿è¡å¨ä»»æçè£ æDockerEngineçç³»ç»ä¸ï¼ä½¿å¾å¼å人åè½å¤ç¨æ´ä½çææ¬å°åºç¨ç¨åºé¨ç½²å¨ä¸åå¹³å°ä¸ã + +5. **DevOpsæå** + + DevOpsæåçæ¨è¡æç ´äºä¼ ç»å¼åä¸è¿ç»´ä¹é´çå£åï¼å¸®å©ç»ç»å½¢æå¼åãè¿ç»´ç´§å¯é åçãå ¨åè½åç髿å¢éï¼å¹¶å°½æ©éä½è½¯ä»¶äº¤ä»æåä¸å ¬éçé£é©ã + +## éçç³»ç»çå¾®æå¡æ¹é çç¥ +èå®ä»ä¹æ¯å¾®æå¡æ¶æä»¥åå ¶è¯çèæ¯ï¼æ¥ä¸æ¥æä»¬æ¥è°è°å¦ä½æ¹é éçç³»ç»ã + +å¨è¿å»ç10å¤å¹´é´ï¼å¤§é¨å工使¶é´æé½å¨åéçç³»ç»æäº¤éãæç¸ä¿¡å¾å¤æå乿¯å·¥ä½å¨å·²ç»è¿è½¬å¤å¹´çéçç³»ç»ä¸ã + +对äºè¿ç±»ç³»ç»ï¼å½è°è®ºä½¿ç¨å¾®æå¡å¯¹å ¶è¿è¡æ¹é æ¶ï¼æè®¤ä¸ºè¦è°¨è®°ä¸ç¹ï¼ + +**æ¹é 䏿¯éåã** + +**卿¹é çè¿ç¨ä¸ï¼è¦å§ç»ä»¥ä¿è¯ç³»ç»ä¸ºç¨æ·æä¾çä¸å¡ä»·å¼å¯ç¨ä½ä¸ºé¦è¦ç®æ ã**ä»è¿ä¸ªç¹åºåï¼åºäºæçç»éªï¼å¯¹å¾®æå¡æ¹é ççç¥æ»ç»ä¸ºå¦ä¸äºä¸ªæ¥éª¤ï¼ + + + +1. èå´å®ä¹ + + 对äºéçç³»ç»èè¨ï¼é常ä¸å¡è¿è½¬æ¶é´è¾é¿ï¼è¬å¦5~8年以ä¸ï¼çè³æ´é¿ï¼ï¼å æ¤æ¶åçåè½ç¹æï¼ä»£ç ä¸åå¨å¤§éæ ææè è¿æ¶çéæ±ï¼ç¼ºé·ä¿®å¤ææ¬è¾é«ã + + å¦å¤ï¼ç³»ç»å¨æ¼è¿çè¿ç¨ä¸ï¼ä¹ä¼æç»ä¸ºç¨æ·æä¾æ°çåè½åä»·å¼ãå æ¤ï¼åååºæ¸ æ°çèå´é常éè¦ã + + å®é ä¸ï¼èå´å®ä¹ä¸»è¦å æ¬ä¸¤é¨åï¼ + + 1. æç¡®ä¸å¡æ¹é èå´ + + æè°æ¹é èå´ï¼å°±æ¯ç¡®å®æä»¬å¸¸è¯´çä¸å¡è¯ç¹ãé常ï¼ä½ä¸ºå次å°è¯å¾®æå¡å®è·µçç»ç»ï¼å»ºè®®éåä¸å¡èå´å½±åè¾å°ãéå ³é®åè½çè¯ç¹ï¼è¿æ ·å乿¯ä¸ºäºç¡®ä¿å¨ä¸å½±åæ ¸å¿ä¸å¡çæ åµä¸å¿«éå°è¯å¹¶è·å¾åé¦ã + + 2. æç¡®æå责任èå´ + + æç¡®æå责任èå´ï¼ç¡®å®ç±è°æ¥æ¹é ï¼ç¡®ä¿æ¹é çç®æ æ¸ æ°ã + + å®é ä¸ï¼å¯¹äºäº§åèè¨ï¼éçç³»ç»çç»´æ¤åæ´æ°ï¼å æ¬ç¼ºé·å®ä½ã缺é·ä¿®å¤ãæ°æ®æ´æ°ãåè½å®ç°ãæµè¯ã交ä»ç»è¿ç»´å¢éçï¼é常已ç»è®©å¢éçå·¥ä½å¤äºé«è´è·ç¶æãå æ¤ï¼éè¦ç¡®å®æåï¼å ¨èº«å¿çæå ¥ï¼ä»¥å¾®æå¡æ¹é ä½ä¸ºçæç®æ ã + +2. åè½å¥ç¦» + + æäºæç¡®çä¸å¡èå´ï¼æåä¹æäºæ¸ æ°çè´£ä»»ï¼æ¥ä¸æ¥å°±éè¦å°é¨ååè½ç¹è¿è¡å¥ç¦»ã + + æè°å¥ç¦»ï¼å°±æ¯å°éä¸çåè½ä»åæçç³»ç»ä¸æååºæ¥ï¼å¹¶æå»ºæç¬ç«çæå¡ãå¨è¿ä¸ªé¶æ®µï¼ä¸»è¦å æ¬ä¸¤ç¹ï¼ + + 1. å°åè½ä»åæç³»ç»æååºæ¥ï¼å¹¶æå»ºæ°æå¡ + + 䏿尿åï¼å¾å¤æåä¼çº ç»ï¼âç³»ç»å¤æï¼å¦ä½æåå¾®æå¡æå¥½ï¼æä¹æ ·çæåæåçï¼âãå ¶å®ï¼ä»æä¸ªäººçè§ç¹æ¥çï¼è¿æ¶åè¿ä¸æ¯çº ç»æå¡å°åºæä¹åååççæ¶åã为ä»ä¹ï¼ + + 1. å¥½çæ¶ææ¯å¨ææ¼ååè¿ä»£åºæ¥çï¼ä¸å¡å¨ä¸ææ¹åï¼ææ¯åå·¥å ·ä¹å¨ä¸ä¼çå级æ¢ä»£ï¼æ²¡æå®ç¾çæ¶æï¼åªææ éé¼è¿å®ç¾çå¨æå¹³è¡¡ï¼æä»¥å å°èå´ã使æ¬å¨èµ·æ¥ï¼å¨è¿è½¬ä¸æ¾å¹³è¡¡ç¹ã + + 2. å¾®æå¡çå¤æåº¦å¨äºåå¸å¼ç³»ç»æ¬èº«ï¼ä»¥åå ¶çæç³»ç»ï¼å¼åãæµè¯ãé¨ç½²ãè¿ç»´ãçæ§ãåè¦ï¼çæå»ºã + + 3. å¢éæåçå½¢ææ¯ä¸ä¸ªç¸å¯¹æ¼«é¿çè¿ç¨ï¼å¦æè±å¾å¤§åæ°å ³æ³¨æå¡æä¹æï¼è没æèç¦å¨çæç³»ç»çæå»ºä»¥åå¢éæåçå½¢æä¸ï¼å®é 䏿¯èæ¬éæ«ãå³ä¾¿æååºäºä¸åçæå¡ï¼å¨è½å°çæ¶åä¹ä¼éå°è¯¸å¤é®é¢ãæä»¥ï¼æ¾ä¸ä¸ªåè½ç¹å æï¼ç¶åæå»ºæç»äº¤ä»æµæ°´çº¿ï¼å¿«éè¯éï¼å»ºç«å¥½ææçåé¦éç¯æºå¶ï¼å䏿坻æ¾å¨æå¹³è¡¡ï¼æååºæ´ç»çæå¡æè å°ä¸åççæå¡åå¹¶ã + + 2. å¨åæçç³»ç»å端ï¼ä½¿ç¨ä»£çæºå¶ï¼å¹¶ä½¿ç¨éçç³»ç»åæ°æå¡ç»åä¸ºç¨æ·æä¾ä»·å¼ + + è¿ä¸æ¥ï¼ç®çæ¯ä½¿ç¨ç»åçç³»ç»ï¼éçç³»ç»+æ°çæå¡ï¼ä¸ºç¨æ·æä¾ä»·å¼ã + + 对äºWebç³»ç»ï¼é常å¯ä»¥å¨å端使ç¨ç´æ¥è¯·æ±æ°çæå¡ãä¹å¯ä»¥å¨å端使ç¨è½¬å请æ±ï¼è·åæ°æå¡æä¾çæ°æ®ã + + å¦ä¸å¾æç¤ºï¼ + +  + +3. æ°æ®è§£è¦ + + å¨ä»¥åçéçç³»ç»æå»ºè¿ç¨ä¸ï¼éå¸¸ä½¿ç¨æ°æ®åºä½ä¸ºéæç¹ï¼ä¸ååè½/ç³»ç»ä¹é´éè¿æ°æ®åºå®ææ°æ®äº¤æ¢ãå¯¹äºæäºç³»ç»ï¼è¿å¤§é使ç¨åå¨è¿ç¨å®æä¸å¡é»è¾ï¼å¼åçæ¶åçä¼¼æçé«ï¼ä½å 年䏿¥ï¼DBAæäºITå¢éææä¸å¡ç人ï¼ç»´æ¤æä¸ºç¶é¢ã + + èå®é ä¸ï¼ä¸å¡çæ°æ®æ¯ä¸å¡åºæçç»æé¨åï¼åºå½éçä¸å¡çååèååãä¸å¡æååºæ¥ï¼æ°æ®ä¹åºè¯¥æååºæ¥ãä»èä¿è¯è®¿é®æ°æ®åªè½éè¿ç»ä¸çç¸å ³ä¸å¡API宿ã便äºå¨å°æ¥çä¸å¡åæ¶ææ¼è¿ä¸ï¼ææçå¯¹æ°æ®ç»´æ¤ã管çåå级ã + +4. æ°æ®åæ¥ + + æ°æ®åæ¥ï¼æ¯ä¸ä¸ªä»·å¼ä½ç°çè¿æ¸¡è¿ç¨ã + + 䏿¹é¢ï¼éçç³»ç»çæ¹é ä¸åå¨çåç§åæ ·çææåæä»¬ä»å¤©è®¤ä¸ºçä¸åçï¼å½æ¶çåºæ¯ä¹è®¸æ¯åççï¼ãå¦ä¸æ¹é¢ï¼å¯¹äºå¤§é¨åéççç³»ç»ï¼é½ä¼ä½¿ç¨æ°æ®åºä½ä¸ºéæç¹ï¼å¼åææ¬ä½ï¼ï¼å¯¼è´æä¸å¡åè½çæ°æ®ä¸å ¶ä»åè½æçåä¸ä¸ç¼çèç³»ï¼æ°æ®çåå容æå¯¹å ¶ä»åè½é æå½±åã + + å æ¤å¯¹äºå¤§åçéçç³»ç»ï¼å¾é¾å¨çæçæ¶é´å ï¼3~6个æï¼å®æå ¨ç³»ç»çæ¹é ãéè¦ä¸ä¸ªç¸å¯¹æ¼«é¿ï¼å¾ªåºæ¸è¿çè¿ç¨æ¥å®ææ¹é ã + + è¬å¦ï¼å¨çµåç³»ç»ä¸ï¼åå®¶çåå°ç®¡çç³»ç»ä¸ç产åãä»·æ ¼çæ´æ°ï¼ä¼åå¸å°é¢åç¨æ·ççµåæç´¢ç³»ç»ä¸ä»¥åå ¶ä»ç³»ç»ä¸ã妿æä»¬å°ç³»ç»ä¸ç产åç¸å ³æåæç¬ç«æå¡ï¼åå¿ é¡»ä¹è¦æåæ°æ®å叿ºå¶ï¼å¦åçè¯å®¹æé ææ°æ®ä¸ä¸è´ã使忰æ®å叿ºå¶ï¼åéè¦åææ¸ æ¥ä¸åæ°æ®ä¹é´çå½±ååä¾èµï¼éè¦æ´å¤§çææ¬ï¼çæå 䏿宿ã + + è¿æ¶åï¼å¦æå°æ°æå¡çæ°æ®åæ¥ååæçæ°æ®åºï¼éç¨è¿æ ·ä¸ä¸ªæä¸ççè¿ç¨ï¼æ¢è½ä¿éæ°çæå¡åæ°æ®è¢«ç¬ç«ï¼åä¸å½±ååæçéçç³»ç»åè½ã + + 说ç½äºï¼è¿å ¶å®ä¹æ¯å¨ä¿è¯ç³»ç»ä¸ºç¨æ·æä¾çä¸å¡ä»·å¼ä¸è¢«ç ´åã + + æäºä¹åçå°è¯ï¼æ¥ä¸æ¥å°±æ¯éè¿ä¸æçè¿ä»£ï¼å®æåè½å¥ç¦»ï¼æ°æ®è§£è¦ãæ°æ®åæ¥ï¼ä»èå°æ´å¤çåè½æåæç¬ç«çæå¡ã + + + +å¦ä¸å°±æ¯æå¯¹äºéçç³»ç»æ¹é ççç¥ã + +## éçç³»ç»æ¹é å®è·µ +æ¥ä¸æ¥ï¼æå大家å享ä¸ä¸ªææç»åçéçç³»ç»æ¹é çæ¡ä¾ãé¦å ï¼è®©æä»¬ççè¿ä¸ªç³»ç»çèæ¯åä¸äºæ°æ®ã + + + +### 客æ·èæ¯ + +澳洲æå¤§çæ¿äº§é¨æ·ï¼ä¸å¡æ¶å个人æ¿äº§ãå䏿¿äº§ãåå°äº¤æãä¹°åç§èµãä¸å¡è¿è¡å¨7个å½å®¶ã + +8å¹´ååºäºç¬¬ä¸æ¹å¹³å°äºæ¬¡å¼åçä¸å¡æ¯æç³»ç»ï¼éçä¼ä¸çé«éåå±ï¼ç»´æ¤ææ¬å¢å ï¼æ°éæ±äº¤ä»å¨æé¿ï¼ç³»ç»éæ¸æä¸ºé»ç¢ä¼ä¸é«éåå±çç¶é¢ã + +### ä¸å¡çç¹ + +å¯¹äºæ¯10ä¸å é¢åº¦çååï¼ä»éå®å¢éå夿æãä¸å®¢æ·ç¾åãé交ç»ååé¨é¨ï¼åå°ååçæå¤§æ¦éè¦3.5人天ã彿¶å¹´éå®é¢ä¸º4亿ï¼éçä¸å¡éçå¿«éå¢é¿ï¼ç¾è®¢ååçäººåææ¬å¨66人年ï¼è¿è¿æ¯ä¸èè管çãæ²éçææ¬ï¼å æ¤ææ¬æ¥å§å¢å ã + +### ç³»ç»æ¦è§ + +ç³»ç»ä¸ºå ¸åçä¸å±ååæ¶æï¼ä¸»ä»æ°æ®åºè¿è¡å¨æ°æ®ä¸å¿çèææºä¸ãå¼ååè¿ç»´å¢éå±äºä¸¤ä¸ªç¬ç«é¨é¨ï¼é¨ç½²æ¶éè¦æäº¤ææ¡£ï¼è®°å½é¨ç½²æµç¨ãç»è以忽å¨é£é©ï¼ç¶åæäº¤å®¡æ¹ï¼è·åæ¹ååç±è¿ç»´å¢éææå¹¶å®æé¨ç½²ã + +### ç¸å ³æ°æ® + +* 400Kè¡ä»£ç + + ç³»ç»æ¶å订åãç¨æ·ã产åãä»·æ ¼ãååãå¤å½ä¸å¡æ¯æç + +* 11åå¢éæå + + 以å¼ååæµè¯ä¸ºä¸»ï¼æ¯2å¨äº¤ä»ä¸ä¸ªçæ¬ç»è¿ç»´é¨é¨ï¼ä»¥ä¿®å¤ç¼ºé·ä¸ºä¸»ï¼ä¹ä¼ææ°ç¹æ§éæ±ã + +* 30% åå æµè¯è¦çç + + ç³»ç»åè½ç¹æï¼äºæ¬¡å¼åå°è£ äºå¾å¤åºï¼åå æµè¯è¦ççä½ã + + æ æåè½ç代ç é¿æä¸æ¸ çï¼æ ¸å¿äººå离èæè æ¢å²ï¼å æ¤ï¼å¤§é¨ååè½ç¨éæååè½æµè¯æ¥éªè¯ã + +* 50åéæç»éæ + + æç»éæç大é¨åæ¶é´é½ç¨æ¥è¿è¡éæ/åè½æµè¯ï¼åæ¶å建å¾å¤ä»»å¡ï¼ç¨äºæ£æµä¸åç³»ç»é´çæ°æ®ä¸è´æ§ã + +* 3天é¨ç½² + + 交ä»çæ¬ç»è¿ç»´é¨é¨åï¼éè¦ç¸å ³äººå审æ¹ï¼ææåææè¿è¡é¨ç½²ï¼ä»æäº¤å°é¨ç½²çæï¼é常éè¦2~3天ã + +**åºäºä¹åå®ä¹çæ¹é çç¥ï¼æä»¬çæ¹é è¿ç¨å¤§è´å¦ä¸æç¤ºï¼** + +èå´å®ä¹ï¼ + + * å°ååç¸å ³é¨åä½ä¸ºæ¹é çä¸å¡èå´ + + * å°å¢éä¸3人+å¤é¨å¼å ¥ç2人ä½ä¸ºå¾®æå¡æ¹é å¢é + +åè½å¥ç¦»ï¼ + + * é¦å å¥ç¦»ååç¾ç½²é¨åï¼æä¾å¨çº¿ç¾ç½²ååç³»ç»ï¼H5+JSï¼ + + * æä¾ååç¾ç½²åçå卿å¡ï¼è®°å½ç¨æ·å¨çº¿ç¾ç½²çåå + +æ°æ®è§£è¦ + + * å°ç¨æ·å¨çº¿ç¾ç½²çååæ°æ®ç¬ç«åå¨ + +æ°æ®åæ¥ + + * å¨å¤é´è´è½½è¾ä½çæ¶åï¼å°ç¾ç½²çååæ°æ®åæ¥ååæçéçç³»ç»ä¸ä¸æè¿ä»£ï¼éç»å®æåç»çæå¡ + + * å®ç°ååæå¡ï¼å¹¶æå»ºåå端å离çH5+JSåºç¨ï¼ä¸ºååé¨é¨æä¾åå管çåå° + + * å®ä¹ååpdfçæå¨ï¼å®æpdfçåå¨åä¸è½½ + + * å®ä¹ååä¸ç¸å ³æ°æ®çæå¡æ¥å£ï¼è¬å¦äº§åæå¡ï¼ç¨æ·æå¡ã便äºç¨æ·æé产åç»å以åè·å积åä¿¡æ¯ + +**ç»è¿è¿åå¹´å¤åï¼æ¹é çæ¶æå¦ä¸æç¤ºï¼** + + + +å¯ä»¥çå°ï¼ååç¾ç½²çä¸å¡å·²ç»è¢«æååºæ¥ï¼åæ¶ååç¾ç½²çæ°æ®ä¹è¢«ç¬ç«åºæ¥ï¼ä½ç±äºåæéçç³»ç»çå¤æåº¦ä»¥åæ°æ®ç¸å ³ä¾èµï¼æä»¬éè¦å°ååçç¾ç½²æ°æ®åæ¥å°éçç³»ç»çæ°æ®åºä¸ã + +å½ç¶ï¼è¿åªæ¯æç个æ¡ä¸ç¨å°ï¼å¤§å®¶å¯ä»¥å¨æ¹é çè¿ç¨ä¸ï¼ç»åå ·ä½çä¸å¡åºæ¯ä¸ï¼èèæ¯å¦éè¦è¿æ ·çæ°æ®åæ¥æºå¶ã + +对äºå½åè¿ä¸ªä¾åï¼å¦æä¸åæ°æ®ç忥ï¼åéè¦æ´é¿çæ¶é´åæå¹¶è§£è¦ååæ°æ®ååæéçç³»ç»çä¾èµï¼å æ¤ä¹å¯ä»¥çåºï¼åæ¥æ¯ä¸ºäºå¸®å©æä»¬å°½å¿«ç使æ¹é åçæå¡ä½ç°ä»·å¼ã + +**ç论ä¸ï¼ç»è¿ä¸æå°è¿ä»£ï¼éæ¸å®æä¸å¡åè½è§£è¦ï¼æ°æå¡æå»ºãé£ä¹éçç³»ç»å°±ä¼è¢«æ¿æ¢æã** + +## æ¹é è¦ç¹ +卿¹é çæ´ä¸ªè¿ç¨ä¸ï¼æè®¤ä¸ºå¦ä¸å 个å®è·µæ¯é常éè¦çï¼ + + + +### åºç¡è®¾æ½èªå¨å + +åæçé¨ç½²åç卿°æ®ä¸å¿ï¼å æ¤æµç¨ä¸ç¸å¯¹å¤æï¼èä¸åå¨ä¸å®å¼ç«¯ï¼è¬å¦å®¡æ¹ååä½ä¸ï¼èµ·ä¸å°å®è´¨ä½ç¨ï¼ãå¯¹äºæ¹é åçæå¡èè¨ï¼æä»¬ä½¿ç¨æ´å¤çèªå¨åæ¹å¼ä»£æ¿å¤æçå®¡æ¹æµç¨ãéè¿ä½¿ç¨AWSä½ä¸ºåºç¡è®¾æ½ï¼å¢éè½å¤æ´èªä¸»ç对åºç¡è®¾æ½è¿è¡ç®¡çãå¦èµæºå建ãéæ¯ãæ´æ°çãéçæå¡çå¢å¤ï¼åºç¡è®¾æ½èªå¨å叮婿们èçäºå¤§éçæ¶é´ãå½ç¶ï¼ä»ç»ç»å±é¢ï¼ä¹æç«äºä¸é¨çå°ç»ç ç©¶AWS以åç¸å ³çDevOpsé å¥å·¥å ·ã + +ç®åï¼å½å 夿å¾å¤ä¼ç§çäºå¹³å°ï¼å¯ä»¥æ¹ä¾¿çä¸ºç¨æ·æä¾åºç¡è®¾æ½çèªå¨åæºå¶ã + +### å¾®æå¡çæç³»ç» + +å¾®æå¡ççæç³»ç»æ¯æå¾®æå¡å®æ½è¿ç¨ç¸å ³çåä½é¨åï¼æ¶åé¨åè¾å¤ï¼è¬å¦æµè¯æºå¶ãæç»éæãèªå¨åé¨ç½²ãç»ç²åº¦çæ§ãæ¥å¿èåãåè¦ãæç»äº¤ä»ï¼ä»¥å大家éå¸¸å ³æ³¨çæå¡æ³¨åãæå¡åç°æºå¶çã + +è¿é¨åççµæ´»æ§æ¯è¾å¤§ï¼å 为ç®åå¦ä¸è¯´çæ¯ä¸ä¸ªé¢å齿å¾å¤ä¼ç§çå·¥å ·ãè¬å¦æ¥å¿èåç®åä¸ççæ¹æ¡é常为ELKãAWSçé¨ç½²ä½¿ç¨CloudFormationæ´çµæ´»ï¼çæ§çæ¹æ¡å¦ZabbixãNewRelicãCloudWatchçï¼æçççæ§å·¥å ·é½å ·æåè¦åè½ï¼PagerDuty乿便´ä¸ä¸çåè¦æå¡ãæå¡æ³¨åååç°æEurekaï¼Consul,Zookeeperã大家å¯ä»¥å¨åèªçå¢éä¸èªç±åæ¥ã + +### å¼åæ¡æ¶çæ¼è¿ + +å¼åæ¡æ¶æ¯å¢éå¨æå»ºå¾®æå¡çè¿ç¨ä¸ï¼ä¸ææ»ç»ï¼æ¢³çåºçå¿«éå¼åå¾®æå¡çç¸å ³å·¥å ·åæ¡æ¶ã + +æä»¬åºäºRubyæå»ºäºå¿«éå¼åæ¡æ¶ï¼ä¸»è¦å æ¬åé¨åï¼å¦ä¸å¾æç¤ºï¼ + + + +1. å¼åæ¨¡æ¿ + + 使ç¨Grapeä½ä¸ºWebæ¡æ¶ï¼HALä½ä¸ºAPIéä¿¡è§çº¦ï¼RSpecä½ä¸ºæµè¯æ¡æ¶ãåæ¶ï¼è¿å®ä¹äºä¸ç»Rakeä»»å¡ï¼è¬å¦è¿è¡æµè¯ï¼æ¥çæµè¯æ¥åï¼å°å½åçæå¡çæRPM/AMIéåçã + + 餿¤ä¹å¤ï¼è¯¥æ¨¡æ¿ä¹æä¾äºä¸ç»éç¨çURLï¼å¸®å©ä½¿ç¨è æ¥çå¾®æå¡ççæ¬ãé 置信æ¯ä»¥åæ£æµæ¯å¦å¥åº·è¿è¡çãè¬å¦/diagnostic/config, /health, /version, /heartbeat + +2. 代ç çæå·¥å · + + éè¿æå®ä¸ååæ°ï¼ä»£ç çæå·¥å ·è½åå»ºå ·ææ°æ®åºè®¿é®è½åï¼æè æ¯å å«å¼æ¥éåå¤ççå¾®æå¡åºç¨ãåæ¶ï¼ä¹å¯ä»¥æ 记该æå¡æ¯æ°æ®æ¶è´¹è è¿æ¯æ°æ®ç产è ï¼å¸®å©çè§£å¤ä¸ªå¾®æå¡ä¹é´çèç³» + +3. æç»éææ¨¡æ¿ + + åºäºæç»éææå¡å¨Bambooï¼åå»ºäºæ¨¡æ¿å·¥ç¨ï¼å¹¶å®ä¹ä¸»è¦çé¶æ®µï¼ + + > éªè¯ï¼è¿è¡åå æµè¯ï¼å¥çº¦æµè¯ + > + > æå»ºï¼æå»ºåºäºAMIçé¨ç½²å + > + > é¨ç½²ï¼åºäºæå®çæ¬çAMIï¼å¿«éé¨ç½²å°éªæ¶ç¯å¢æè 产åç¯å¢ä¸ã + + å©ç¨è¿æ ·çæç»éææ¨¡æ¿å·¥ç¨ï¼è±è´¹å¾å°çæ¶é´ï¼å°±å¯ä»¥é对æ°å»ºçå¾®æå¡åºç¨ï¼å¿«éé ç½®å ¶å¯¹åºçæç»éæç¯å¢ã + +4. åºäºAsgardçé¨ç½²å·¥å · + + Asgardæ¯ç±Netflixå¼åçåºäºWebçAWSäºé¨ç½²å管çå·¥å ·ãåºäºAsgardï¼æä»¬å®ç°äºå½ä»¤è¡é¨ç½²å·¥å ·ï¼é¨ç½²æ¶éè¿ä¸æ¡å½ä»¤ï¼æä¾æå¡åç§°ãçæ¬å·ï¼å°±å¯èªå¨å®æèµæºçå建ãé¨ç½²ãæµé忢ãå 餿§çåºç¨çæä½ãè¬å¦ï¼ + + > deploy [ServiceName] [ServiceVersion] + +### å¢éè¿ç»´èªç®¡ç + +è¿ä¸é¨åæ¯å ³äºå¢éçæå管çã乿¯å¯¹DevOPSçå»¶ä¼¸ï¼æä»¬ç§°ä¸ºTMIï¼Team Managed Infrastructureï¼ã + +ç®çæ¯å°åæãå¼åãæµè¯ä»¥åèµæºå建ã鿝ãèªå¨åé¨ç½²çæå©äº¤ç»å¢éï¼ç±å¢éæé宿é¨ç½²ï¼å ä¸çæ¿çæµç¨ç®¡çï¼èéScrumçåºå®è¿ä»£ï¼å¯ä»¥åå°ä¸å¤©é¨ç½²å¤æ¬¡ï¼ã + +å½ç¶ï¼è¿ä¸ªç¯èé常ä¾èµäºæçççæ§ä»¥ååè¦æºå¶ï¼å½åºç°é®é¢æ¶ï¼è½å¤ææçéç¥å°è´£ä»»äººï¼å¿«éåé¦ï¼å¿«éä¿®å¤ãå¢éå é¨ä¹ä¼å®æè½®æ¢Pagerï¼åºé®é¢æç«ç人ï¼ï¼å¹å »å¢é以æå¡å¯ç¨ä½ä¸ºå¤§å®¶çå ±åç®æ ï¼å¹å »äº§åè§å¿µï¼èé项ç®è§å¿µã + +åå顾ä¸ä¸è¿ä¸ªå¾ï¼ + + + +æåï¼å大家å享ä¸ä¸ï¼æä¸ªäººå¨å¾®æå¡å®æ½è¿ç¨ä¸æ»ç»ç4奿¹é: + +ç±å¤§å°å°ï¼ç±ç²å°ç» + +å ³æ³¨è¿ç»´ï¼å ³æ³¨çæ§ + +å¿«éåé¦ï¼å¿«éä¿®å¤ + +å¾ªåºæ¸è¿ï¼å¢éå®ç° + +ä¹å¸æå¤§å®¶è½å¤æ¯ææç书ãå¾®æå¡æ¶æä¸å®è·µãã http://git-wip-us.apache.org/repos/asf/incubator-servicecomb-website/blob/a00c8db2/_posts/cn/2017-10-23-how-to-reform-a-legacy-system.md ---------------------------------------------------------------------- diff --git a/_posts/cn/2017-10-23-how-to-reform-a-legacy-system.md b/_posts/cn/2017-10-23-how-to-reform-a-legacy-system.md new file mode 100644 index 0000000..30680e0 --- /dev/null +++ b/_posts/cn/2017-10-23-how-to-reform-a-legacy-system.md @@ -0,0 +1,330 @@ +--- +title: "æå¤´ç¼çéçç³»ç»è¯¥å¦ä½æ¹é ï¼" +lang: cn +ref: how-to-reform-a-legacy-system +permalink: /cn/docs/how-to-reform-a-legacy-system/ +excerpt: "å¾®æå¡æ¯å¦æ¯ä¸çæå¾ å·²ä¹ çä¼ä¸æ¶æè§£å³æ¹æ¡ï¼å¨å¯¹éçç³»ç»è¿è¡å¾®æå¡çæ¹é è¿ç¨ä¸åå¨ææ ·çå°é¾åææï¼åºè¯¥æ³¨æäºä»ä¹ï¼" +last_modified_at: 2017-10-23T15:22:00+08:00 +author: Wang Lei +tags: [ç³»ç»æ¹é ] +redirect_from: + - /theme-setup/ +--- + +éçRESTfulãäºè®¡ç®ãDevOpsãæç»äº¤ä»çæ¦å¿µçæ·±å ¥äººå¿ï¼å¾®æå¡ï¼Microservicesï¼éæ¸æä¸ºç³»ç»æ¶æçä¸ä¸ªä»£åè¯ãé£ä¹å¾®æå¡æ¯å¦æ¯ä¸çæå¾ å·²ä¹ çä¼ä¸æ¶æè§£å³æ¹æ¡ï¼å¨å¯¹éçç³»ç»è¿è¡å¾®æå¡çæ¹é è¿ç¨ä¸åå¨ææ ·çå°é¾åææï¼åºè¯¥æ³¨æäºä»ä¹ï¼å¨è¯¥å享ä¸ï¼çç£å°éè¿å®é çæ¡ä¾ï¼è·å¤§å®¶æ¢è®¨ä½¿ç¨å¾®æå¡æ¹é éçç³»ç»çå®è·µä¹è·¯ã +1. ä»ä¹æ¯å¾®æå¡ +2. å¾®æå¡çè¯çèæ¯ +3. éçç³»ç»çå¾®æå¡æ¹é çç¥ +4. å¾®æå¡æ¹é ä¹è·¯ + +## èæ¯ +é¦å ï¼è¯·å¤§å®¶æèä»ä¹æ¯ç³»ç»æ¶æè®¾è®¡ï¼ + +ä¸ç´ä»¥æ¥ï¼ç³»ç»æ¶æè®¾è®¡æ¯ITé¢åç»ä¹ ä¸è¡°çè¯é¢ä¹ä¸ï¼æ¯æ¯ä¸ªç³»ç»æå»ºè¿ç¨ä¸æå ¶å ³é®çä¸é¨åï¼å®å³å®äºç³»ç»æ¯å¦è½å¤è¢«æ£ç¡®ãææçæå»ºã大家ä¹ä¸ç´å¨æ¢ç´¢ï¼å¯»æ¾æ´ä¼ç§çæ¶æè®¾è®¡æ¹å¼æ¥æå»ºç³»ç»ã + +é£ä»ä¹æ¯ç³»ç»çæ¶æè®¾è®¡ï¼å¯¹äºè¿ä¸ªé®é¢ï¼æç¸ä¿¡æ¯ä¸ªæåé½ä¼æä¸åçå®ä¹ï¼å®é ä¸ï¼ä¹å¹¶æ²¡æä¸ä¸ªæ åççæ¡æ¥è§£éä»ä¹æ¯æ¶æè®¾è®¡ã + +åºäºæè¿å»çç»éªå工使¹å¼ï¼æè®¤ä¸ºç³»ç»æ¶æè®¾è®¡çæ¬è´¨ï¼æ¯å¨åºç¨ç³»ç»å 鍿¾å°è¿æ ·ä¸ä¸ªå¨æå¹³è¡¡ï¼å¹³è¡¡ä¸å¡ãææ¯ãå¢éçåæ¶ï¼èèç³»ç»çµæ´»æ§ã坿©å±æ§ä»¥åå¯ç»´æ¤æ§çå ç´ ï¼å¹¶å°åºç¨ç³»ç»ååæä¸åçé¨åï¼ä½¿è¿äºé¨åå½¼æ¤ä¹é´ç¸äºåå·¥ãç¸äºåä½ï¼ä»èä¸ºç¨æ·æä¾æç§ç¹å®çä»·å¼çæ¹å¼ã + +éçRESTfulãäºè®¡ç®ãDevOpsãæç»äº¤ä»çæ¦å¿µçæ·±å ¥äººå¿ï¼**å¾®æå¡æ¶æéæ¸æä¸ºç³»ç»æ¶æçä¸ä¸ªä»£åè¯**ã + +## ä»ä¹æ¯å¾®æå¡æ¶æ +2015å¹´ï¼å¾®æå¡æ¶æè¿ä¸ªè¯ï¼ä»¥ç¸å½é«çé¢çåºç°å¨åç§æ¼è®²ãæç« ãä¼è®®ã社åºä¸ãè¿éï¼æå°±å大家快éå顾ä¸ä¸ï¼è马ï¼Martin Folwerï¼å¯¹å¾®æå¡çå®ä¹ã + + + +å¦ä¸æç¤ºï¼å¾®æå¡æ¶æçæ ¸å¿åè¦ç´ ï¼æç¨çº¢è²æ æ³¨åºæ¥äºãå¦æç¿»è¯æä¸æï¼å¤§è´å¦ä¸æç¤ºï¼ + +> å¾®æå¡æ¶ææ¯ä¸ç§æ¶ææ¨¡å¼ï¼å®æå¡å°åä¸åºç¨ç¨åºååæä¸ç»å°çæå¡ï¼æå¡ä¹é´äºç¸åè°ãäºç¸é åï¼ä¸ºç¨æ·æä¾æç»ä»·å¼ã æ¯ä¸ªæå¡è¿è¡å¨å ¶ç¬ç«çè¿ç¨ä¸ï¼æå¡ä¸æå¡é´éç¨è½»é级çéä¿¡æºå¶äºç¸åä½ï¼é常æ¯åºäºHTTPåè®®çRESTful APIï¼ã æ¯ä¸ªæå¡é½å´ç»çå ·ä½ä¸å¡è¿è¡æå»ºï¼å¹¶ä¸è½å¤è¢«ç¬ç«çé¨ç½²å°ç产ç¯å¢ãç±»ç产ç¯å¢çã å¦å¤ï¼å¯¹å ·ä½çæå¡èè¨ï¼åºæ ¹æ®ä¸å¡ä¸ä¸æï¼éæ©åéçè¯è¨ãå·¥å ·å¯¹å ¶è¿è¡æå»ºã + +æ»ç»æä¸å¥è¯å°±æ¯**å¾®æå¡æ¯å´ç»ä¸å¡æå»ºçç»ç²åº¦çåå¸å¼ç³»ç»**ã + +## å¾®æå¡çè¯çèæ¯ +2015å¹´ï¼å¾®æå¡çªç¶ç«äºï¼ä¸ºä»ä¹ï¼ + +å ¶å®å¾®æå¡æ¶æå¹¶ä¸æ¯ä»ä¹ææ¯åæ°ï¼èæ¯ITåå±å°ç°é¶æ®µå¯¹ææ¯æ¶æçè¦æ±ã + +è¿ä¸ªè¦æ±å æ¬**å¿«éåä¸å¡å¯¹é½ï¼alignbusinessï¼ãå¿«éçè§£åæ½è±¡ä¸å¡ï¼DDDï¼ãå¿«éå¼åï¼LeanãAgileï¼ãå¿«éåé¦å交ä»ï¼CIãCDãDevOpsï¼**ã + +æä»¥æè®¤ä¸ºå¾®æå¡å¹¶ä¸æ¯ææ¯ï¼èæ¯å°åæ´ä¸ºé¶ï¼æç§°åæ²»ï¼ææ³æ¢äºä¸ç§è¯´æ³ï¼æ è®ºæ¯æä¸ä¸ªå¤§åç³»ç»å岿å¤ä¸ªå°èèªæ²»çç³»ç»ï¼è¿æ¯æä¸ä¸ªå¤§åå¢éåæå¤ä¸ªå¢éï¼ææ¯æä¸ä¸ªå¤æç项ç®åæå¤ä¸ªäº¤ä»é¶æ®µé½æ¯è¿ç§ææ³çè¿ç¨ã + +å½ç¶ï¼ä»»ä½æ°äºç©çè¯çï¼æ»ä¼æä¸ä¸ªæ¨å¨å ç´ ãå¾®æå¡çè¯çä¹å¹¶éå¶ç¶ã宿¯äºèç½é«éåå±ï¼ææ¯æ¥æ°æå¼çåå以åä¼ ç»æ¶ææ æ³éåºå¿«éååçå¤éå ç´ çæ¨å¨ä¸æè¯çç产ç©ã + +åºäºä¸ªäººççè§£ï¼æå°å¾®æå¡çè¯çå ç´ æ»ç»ä¸ºå¦ä¸å ç¹ï¼ + + + +1. **äºèç½è¡ä¸çå¿«éåå±** + + è¿å»çåå¹´ä¸ï¼äºèç½å¯¹æä»¬ççæ´»äº§çäºç¿»å¤©è¦å°çååï¼è¶æ¥è¶å¤çä¼ ç»è¡ä¸å ¬å¸ä¹å¼å§ä¾èµäºèç½ææ¯æé å ¶æ ¸å¿ç«äºä¼å¿ã + + å¨è¿ç§æ åµä¸ï¼å¦ä½ä»ç³»ç»æ¶æçè§åº¦åºåï¼æå»ºçµæ´»ãææ©å±çç³»ç»ï¼å¿«éåºå¯¹éæ±çååï¼åæ¶ï¼éçç¨æ·éçå¢å ï¼å¦ä½ä¿è¯ç³»ç»çå¯ä¼¸ç¼©æ§ãé«å¯ç¨æ§ï¼æä¸ºç³»ç»æ¶æé¢ä¸´çææã + +2. **ååæ¶æç³»ç»é¢ä¸´çææ** + + éçç¨æ·éæ±ä¸ªæ§åã产åçå½å¨æåçãå¸åºéæ±ä¸ç¨³å®çå ç´ çåºç°ï¼ååæ¶æç³»ç»é¢ä¸´çè¶æ¥è¶å¤çææãå¦ä½æ¾å°ä¸ç§æ´ææçãæ´çµæ´»ãéåºéæ±çç³»ç»æ¶ææ¹å¼ï¼æä¸ºå¤§å®¶å ³æ³¨çç¦ç¹ã + +3. **ææ·ãç²¾çæ¹æ³ãæç»äº¤ä»çæ·±å ¥äººå¿** + + å¨ITè¡ä¸åå±çè¿å»åå¹´ï¼ææ·ãç²¾çãæç»äº¤ä»çä»·å¼è§ãæ¹æ³è®ºçæåºä»¥åå®è·µï¼è®©å¾å¤ç»ç»æè¯å°åºåå¸åºååãæé«ååºåçéè¦æ§ï¼åºè¯¥æå»ºè½¯ä»¶äº¤ä»å¨æçéç¯ï¼åæãå¼åãæµè¯ãé¨ç½²ãè¿ç»´ãçæ§ãè¿è¥ï¼ï¼èä¸ä» ä» æ¯æé«å¼åé¶æ®µçæçã + + **ç²¾çåä¸ï¼Lean Startupï¼**帮å©ç»ç»åæå¹¶å»ºç«æå°å¯å®è¡äº§åï¼MinimumViableProductï¼ï¼éè¿è¿ä»£æç»æ¹è¿ææ·æ¹æ³å¸®å©ç»ç»æ¶é¤æµªè´¹ï¼éè¿åé¦ä¸ææ¾å°æ£ç¡®çæ¹åã + + **æç»äº¤ä»**å帮å©ç»ç»æå»ºæ´å¿«ãæ´å¯é ãå¯é¢ç¹åå¸çäº¤ä»æºå¶å¹¶æå»ºäº§å交ä»éç¯ã + + 大é¨åç»ç»å·²ç»åºæ¬ä¸å½¢æäºä¸å¥å¯å®æ½ç交ä»ä½ç³»ãå æ¬æç»éæãèªå¨åæµè¯ãæ°æ®ç®¡çãèªå¨åé¨ç½²æºå¶çã + + è¿æ¶åï¼å¤§æ³¥çå¼çååæ¶æï¼ä¼éæ¸æä¸ºå½±å交ä»å¨æè¿ä¸æ¥ä¼åçç¶é¢ï¼å æ¤å¦ä½æ¾å°çµæ´»æ§é«ãæ©å±æ§å¥½çæ¶ææ¹å¼ï¼ä¹æä¸ºè¿ä¸æ¥ä¼å交ä»å¨æé¢ä¸´çææã + +4. **Dockerç容å¨èæåææ¯çå¿«éåå±** + + åä¼ ç»çèæåææ¯ç¸æ¯ï¼åºäºå®¹å¨ææ¯çDockerï¼ä¸éè¦å¤æçHypervisoræºå¶æ¯æï¼å ·ææ´é«çèæåæ§è½åæçã + + 忶容å¨å¯ä»¥å¾å®¹æçè¿è¡å¨ä»»æçè£ æDockerEngineçç³»ç»ä¸ï¼ä½¿å¾å¼å人åè½å¤ç¨æ´ä½çææ¬å°åºç¨ç¨åºé¨ç½²å¨ä¸åå¹³å°ä¸ã + +5. **DevOpsæå** + + DevOpsæåçæ¨è¡æç ´äºä¼ ç»å¼åä¸è¿ç»´ä¹é´çå£åï¼å¸®å©ç»ç»å½¢æå¼åãè¿ç»´ç´§å¯é åçãå ¨åè½åç髿å¢éï¼å¹¶å°½æ©éä½è½¯ä»¶äº¤ä»æåä¸å ¬éçé£é©ã + +## éçç³»ç»çå¾®æå¡æ¹é çç¥ +èå®ä»ä¹æ¯å¾®æå¡æ¶æä»¥åå ¶è¯çèæ¯ï¼æ¥ä¸æ¥æä»¬æ¥è°è°å¦ä½æ¹é éçç³»ç»ã + +å¨è¿å»ç10å¤å¹´é´ï¼å¤§é¨å工使¶é´æé½å¨åéçç³»ç»æäº¤éãæç¸ä¿¡å¾å¤æå乿¯å·¥ä½å¨å·²ç»è¿è½¬å¤å¹´çéçç³»ç»ä¸ã + +对äºè¿ç±»ç³»ç»ï¼å½è°è®ºä½¿ç¨å¾®æå¡å¯¹å ¶è¿è¡æ¹é æ¶ï¼æè®¤ä¸ºè¦è°¨è®°ä¸ç¹ï¼ + +**æ¹é 䏿¯éåã** + +**卿¹é çè¿ç¨ä¸ï¼è¦å§ç»ä»¥ä¿è¯ç³»ç»ä¸ºç¨æ·æä¾çä¸å¡ä»·å¼å¯ç¨ä½ä¸ºé¦è¦ç®æ ã**ä»è¿ä¸ªç¹åºåï¼åºäºæçç»éªï¼å¯¹å¾®æå¡æ¹é ççç¥æ»ç»ä¸ºå¦ä¸äºä¸ªæ¥éª¤ï¼ + + + +1. èå´å®ä¹ + + 对äºéçç³»ç»èè¨ï¼é常ä¸å¡è¿è½¬æ¶é´è¾é¿ï¼è¬å¦5~8年以ä¸ï¼çè³æ´é¿ï¼ï¼å æ¤æ¶åçåè½ç¹æï¼ä»£ç ä¸åå¨å¤§éæ ææè è¿æ¶çéæ±ï¼ç¼ºé·ä¿®å¤ææ¬è¾é«ã + + å¦å¤ï¼ç³»ç»å¨æ¼è¿çè¿ç¨ä¸ï¼ä¹ä¼æç»ä¸ºç¨æ·æä¾æ°çåè½åä»·å¼ãå æ¤ï¼åååºæ¸ æ°çèå´é常éè¦ã + + å®é ä¸ï¼èå´å®ä¹ä¸»è¦å æ¬ä¸¤é¨åï¼ + + 1. æç¡®ä¸å¡æ¹é èå´ + + æè°æ¹é èå´ï¼å°±æ¯ç¡®å®æä»¬å¸¸è¯´çä¸å¡è¯ç¹ãé常ï¼ä½ä¸ºå次å°è¯å¾®æå¡å®è·µçç»ç»ï¼å»ºè®®éåä¸å¡èå´å½±åè¾å°ãéå ³é®åè½çè¯ç¹ï¼è¿æ ·å乿¯ä¸ºäºç¡®ä¿å¨ä¸å½±åæ ¸å¿ä¸å¡çæ åµä¸å¿«éå°è¯å¹¶è·å¾åé¦ã + + 2. æç¡®æå责任èå´ + + æç¡®æå责任èå´ï¼ç¡®å®ç±è°æ¥æ¹é ï¼ç¡®ä¿æ¹é çç®æ æ¸ æ°ã + + å®é ä¸ï¼å¯¹äºäº§åèè¨ï¼éçç³»ç»çç»´æ¤åæ´æ°ï¼å æ¬ç¼ºé·å®ä½ã缺é·ä¿®å¤ãæ°æ®æ´æ°ãåè½å®ç°ãæµè¯ã交ä»ç»è¿ç»´å¢éçï¼é常已ç»è®©å¢éçå·¥ä½å¤äºé«è´è·ç¶æãå æ¤ï¼éè¦ç¡®å®æåï¼å ¨èº«å¿çæå ¥ï¼ä»¥å¾®æå¡æ¹é ä½ä¸ºçæç®æ ã + +2. åè½å¥ç¦» + + æäºæç¡®çä¸å¡èå´ï¼æåä¹æäºæ¸ æ°çè´£ä»»ï¼æ¥ä¸æ¥å°±éè¦å°é¨ååè½ç¹è¿è¡å¥ç¦»ã + + æè°å¥ç¦»ï¼å°±æ¯å°éä¸çåè½ä»åæçç³»ç»ä¸æååºæ¥ï¼å¹¶æå»ºæç¬ç«çæå¡ãå¨è¿ä¸ªé¶æ®µï¼ä¸»è¦å æ¬ä¸¤ç¹ï¼ + + 1. å°åè½ä»åæç³»ç»æååºæ¥ï¼å¹¶æå»ºæ°æå¡ + + 䏿尿åï¼å¾å¤æåä¼çº ç»ï¼âç³»ç»å¤æï¼å¦ä½æåå¾®æå¡æå¥½ï¼æä¹æ ·çæåæåçï¼âãå ¶å®ï¼ä»æä¸ªäººçè§ç¹æ¥çï¼è¿æ¶åè¿ä¸æ¯çº ç»æå¡å°åºæä¹åååççæ¶åã为ä»ä¹ï¼ + + 1. å¥½çæ¶ææ¯å¨ææ¼ååè¿ä»£åºæ¥çï¼ä¸å¡å¨ä¸ææ¹åï¼ææ¯åå·¥å ·ä¹å¨ä¸ä¼çå级æ¢ä»£ï¼æ²¡æå®ç¾çæ¶æï¼åªææ éé¼è¿å®ç¾çå¨æå¹³è¡¡ï¼æä»¥å å°èå´ã使æ¬å¨èµ·æ¥ï¼å¨è¿è½¬ä¸æ¾å¹³è¡¡ç¹ã + + 2. å¾®æå¡çå¤æåº¦å¨äºåå¸å¼ç³»ç»æ¬èº«ï¼ä»¥åå ¶çæç³»ç»ï¼å¼åãæµè¯ãé¨ç½²ãè¿ç»´ãçæ§ãåè¦ï¼çæå»ºã + + 3. å¢éæåçå½¢ææ¯ä¸ä¸ªç¸å¯¹æ¼«é¿çè¿ç¨ï¼å¦æè±å¾å¤§åæ°å ³æ³¨æå¡æä¹æï¼è没æèç¦å¨çæç³»ç»çæå»ºä»¥åå¢éæåçå½¢æä¸ï¼å®é 䏿¯èæ¬éæ«ãå³ä¾¿æååºäºä¸åçæå¡ï¼å¨è½å°çæ¶åä¹ä¼éå°è¯¸å¤é®é¢ãæä»¥ï¼æ¾ä¸ä¸ªåè½ç¹å æï¼ç¶åæå»ºæç»äº¤ä»æµæ°´çº¿ï¼å¿«éè¯éï¼å»ºç«å¥½ææçåé¦éç¯æºå¶ï¼å䏿坻æ¾å¨æå¹³è¡¡ï¼æååºæ´ç»çæå¡æè å°ä¸åççæå¡åå¹¶ã + + 2. å¨åæçç³»ç»å端ï¼ä½¿ç¨ä»£çæºå¶ï¼å¹¶ä½¿ç¨éçç³»ç»åæ°æå¡ç»åä¸ºç¨æ·æä¾ä»·å¼ + + è¿ä¸æ¥ï¼ç®çæ¯ä½¿ç¨ç»åçç³»ç»ï¼éçç³»ç»+æ°çæå¡ï¼ä¸ºç¨æ·æä¾ä»·å¼ã + + 对äºWebç³»ç»ï¼é常å¯ä»¥å¨å端使ç¨ç´æ¥è¯·æ±æ°çæå¡ãä¹å¯ä»¥å¨å端使ç¨è½¬å请æ±ï¼è·åæ°æå¡æä¾çæ°æ®ã + + å¦ä¸å¾æç¤ºï¼ + +  + +3. æ°æ®è§£è¦ + + å¨ä»¥åçéçç³»ç»æå»ºè¿ç¨ä¸ï¼éå¸¸ä½¿ç¨æ°æ®åºä½ä¸ºéæç¹ï¼ä¸ååè½/ç³»ç»ä¹é´éè¿æ°æ®åºå®ææ°æ®äº¤æ¢ãå¯¹äºæäºç³»ç»ï¼è¿å¤§é使ç¨åå¨è¿ç¨å®æä¸å¡é»è¾ï¼å¼åçæ¶åçä¼¼æçé«ï¼ä½å 年䏿¥ï¼DBAæäºITå¢éææä¸å¡ç人ï¼ç»´æ¤æä¸ºç¶é¢ã + + èå®é ä¸ï¼ä¸å¡çæ°æ®æ¯ä¸å¡åºæçç»æé¨åï¼åºå½éçä¸å¡çååèååãä¸å¡æååºæ¥ï¼æ°æ®ä¹åºè¯¥æååºæ¥ãä»èä¿è¯è®¿é®æ°æ®åªè½éè¿ç»ä¸çç¸å ³ä¸å¡API宿ã便äºå¨å°æ¥çä¸å¡åæ¶ææ¼è¿ä¸ï¼ææçå¯¹æ°æ®ç»´æ¤ã管çåå级ã + +4. æ°æ®åæ¥ + + æ°æ®åæ¥ï¼æ¯ä¸ä¸ªä»·å¼ä½ç°çè¿æ¸¡è¿ç¨ã + + 䏿¹é¢ï¼éçç³»ç»çæ¹é ä¸åå¨çåç§åæ ·çææåæä»¬ä»å¤©è®¤ä¸ºçä¸åçï¼å½æ¶çåºæ¯ä¹è®¸æ¯åççï¼ãå¦ä¸æ¹é¢ï¼å¯¹äºå¤§é¨åéççç³»ç»ï¼é½ä¼ä½¿ç¨æ°æ®åºä½ä¸ºéæç¹ï¼å¼åææ¬ä½ï¼ï¼å¯¼è´æä¸å¡åè½çæ°æ®ä¸å ¶ä»åè½æçåä¸ä¸ç¼çèç³»ï¼æ°æ®çåå容æå¯¹å ¶ä»åè½é æå½±åã + + å æ¤å¯¹äºå¤§åçéçç³»ç»ï¼å¾é¾å¨çæçæ¶é´å ï¼3~6个æï¼å®æå ¨ç³»ç»çæ¹é ãéè¦ä¸ä¸ªç¸å¯¹æ¼«é¿ï¼å¾ªåºæ¸è¿çè¿ç¨æ¥å®ææ¹é ã + + è¬å¦ï¼å¨çµåç³»ç»ä¸ï¼åå®¶çåå°ç®¡çç³»ç»ä¸ç产åãä»·æ ¼çæ´æ°ï¼ä¼åå¸å°é¢åç¨æ·ççµåæç´¢ç³»ç»ä¸ä»¥åå ¶ä»ç³»ç»ä¸ã妿æä»¬å°ç³»ç»ä¸ç产åç¸å ³æåæç¬ç«æå¡ï¼åå¿ é¡»ä¹è¦æåæ°æ®å叿ºå¶ï¼å¦åçè¯å®¹æé ææ°æ®ä¸ä¸è´ã使忰æ®å叿ºå¶ï¼åéè¦åææ¸ æ¥ä¸åæ°æ®ä¹é´çå½±ååä¾èµï¼éè¦æ´å¤§çææ¬ï¼çæå 䏿宿ã + + è¿æ¶åï¼å¦æå°æ°æå¡çæ°æ®åæ¥ååæçæ°æ®åºï¼éç¨è¿æ ·ä¸ä¸ªæä¸ççè¿ç¨ï¼æ¢è½ä¿éæ°çæå¡åæ°æ®è¢«ç¬ç«ï¼åä¸å½±ååæçéçç³»ç»åè½ã + + 说ç½äºï¼è¿å ¶å®ä¹æ¯å¨ä¿è¯ç³»ç»ä¸ºç¨æ·æä¾çä¸å¡ä»·å¼ä¸è¢«ç ´åã + + æäºä¹åçå°è¯ï¼æ¥ä¸æ¥å°±æ¯éè¿ä¸æçè¿ä»£ï¼å®æåè½å¥ç¦»ï¼æ°æ®è§£è¦ãæ°æ®åæ¥ï¼ä»èå°æ´å¤çåè½æåæç¬ç«çæå¡ã + + + +å¦ä¸å°±æ¯æå¯¹äºéçç³»ç»æ¹é ççç¥ã + +## éçç³»ç»æ¹é å®è·µ +æ¥ä¸æ¥ï¼æå大家å享ä¸ä¸ªææç»åçéçç³»ç»æ¹é çæ¡ä¾ãé¦å ï¼è®©æä»¬ççè¿ä¸ªç³»ç»çèæ¯åä¸äºæ°æ®ã + + + +### 客æ·èæ¯ + +澳洲æå¤§çæ¿äº§é¨æ·ï¼ä¸å¡æ¶å个人æ¿äº§ãå䏿¿äº§ãåå°äº¤æãä¹°åç§èµãä¸å¡è¿è¡å¨7个å½å®¶ã + +8å¹´ååºäºç¬¬ä¸æ¹å¹³å°äºæ¬¡å¼åçä¸å¡æ¯æç³»ç»ï¼éçä¼ä¸çé«éåå±ï¼ç»´æ¤ææ¬å¢å ï¼æ°éæ±äº¤ä»å¨æé¿ï¼ç³»ç»éæ¸æä¸ºé»ç¢ä¼ä¸é«éåå±çç¶é¢ã + +### ä¸å¡çç¹ + +å¯¹äºæ¯10ä¸å é¢åº¦çååï¼ä»éå®å¢éå夿æãä¸å®¢æ·ç¾åãé交ç»ååé¨é¨ï¼åå°ååçæå¤§æ¦éè¦3.5人天ã彿¶å¹´éå®é¢ä¸º4亿ï¼éçä¸å¡éçå¿«éå¢é¿ï¼ç¾è®¢ååçäººåææ¬å¨66人年ï¼è¿è¿æ¯ä¸èè管çãæ²éçææ¬ï¼å æ¤ææ¬æ¥å§å¢å ã + +### ç³»ç»æ¦è§ + +ç³»ç»ä¸ºå ¸åçä¸å±ååæ¶æï¼ä¸»ä»æ°æ®åºè¿è¡å¨æ°æ®ä¸å¿çèææºä¸ãå¼ååè¿ç»´å¢éå±äºä¸¤ä¸ªç¬ç«é¨é¨ï¼é¨ç½²æ¶éè¦æäº¤ææ¡£ï¼è®°å½é¨ç½²æµç¨ãç»è以忽å¨é£é©ï¼ç¶åæäº¤å®¡æ¹ï¼è·åæ¹ååç±è¿ç»´å¢éææå¹¶å®æé¨ç½²ã + +### ç¸å ³æ°æ® + +* 400Kè¡ä»£ç + + ç³»ç»æ¶å订åãç¨æ·ã产åãä»·æ ¼ãååãå¤å½ä¸å¡æ¯æç + +* 11åå¢éæå + + 以å¼ååæµè¯ä¸ºä¸»ï¼æ¯2å¨äº¤ä»ä¸ä¸ªçæ¬ç»è¿ç»´é¨é¨ï¼ä»¥ä¿®å¤ç¼ºé·ä¸ºä¸»ï¼ä¹ä¼ææ°ç¹æ§éæ±ã + +* 30% åå æµè¯è¦çç + + ç³»ç»åè½ç¹æï¼äºæ¬¡å¼åå°è£ äºå¾å¤åºï¼åå æµè¯è¦ççä½ã + + æ æåè½ç代ç é¿æä¸æ¸ çï¼æ ¸å¿äººå离èæè æ¢å²ï¼å æ¤ï¼å¤§é¨ååè½ç¨éæååè½æµè¯æ¥éªè¯ã + +* 50åéæç»éæ + + æç»éæç大é¨åæ¶é´é½ç¨æ¥è¿è¡éæ/åè½æµè¯ï¼åæ¶å建å¾å¤ä»»å¡ï¼ç¨äºæ£æµä¸åç³»ç»é´çæ°æ®ä¸è´æ§ã + +* 3天é¨ç½² + + 交ä»çæ¬ç»è¿ç»´é¨é¨åï¼éè¦ç¸å ³äººå审æ¹ï¼ææåææè¿è¡é¨ç½²ï¼ä»æäº¤å°é¨ç½²çæï¼é常éè¦2~3天ã + +**åºäºä¹åå®ä¹çæ¹é çç¥ï¼æä»¬çæ¹é è¿ç¨å¤§è´å¦ä¸æç¤ºï¼** + +èå´å®ä¹ï¼ + + * å°ååç¸å ³é¨åä½ä¸ºæ¹é çä¸å¡èå´ + + * å°å¢éä¸3人+å¤é¨å¼å ¥ç2人ä½ä¸ºå¾®æå¡æ¹é å¢é + +åè½å¥ç¦»ï¼ + + * é¦å å¥ç¦»ååç¾ç½²é¨åï¼æä¾å¨çº¿ç¾ç½²ååç³»ç»ï¼H5+JSï¼ + + * æä¾ååç¾ç½²åçå卿å¡ï¼è®°å½ç¨æ·å¨çº¿ç¾ç½²çåå + +æ°æ®è§£è¦ + + * å°ç¨æ·å¨çº¿ç¾ç½²çååæ°æ®ç¬ç«åå¨ + +æ°æ®åæ¥ + + * å¨å¤é´è´è½½è¾ä½çæ¶åï¼å°ç¾ç½²çååæ°æ®åæ¥ååæçéçç³»ç»ä¸ä¸æè¿ä»£ï¼éç»å®æåç»çæå¡ + + * å®ç°ååæå¡ï¼å¹¶æå»ºåå端å离çH5+JSåºç¨ï¼ä¸ºååé¨é¨æä¾åå管çåå° + + * å®ä¹ååpdfçæå¨ï¼å®æpdfçåå¨åä¸è½½ + + * å®ä¹ååä¸ç¸å ³æ°æ®çæå¡æ¥å£ï¼è¬å¦äº§åæå¡ï¼ç¨æ·æå¡ã便äºç¨æ·æé产åç»å以åè·å积åä¿¡æ¯ + +**ç»è¿è¿åå¹´å¤åï¼æ¹é çæ¶æå¦ä¸æç¤ºï¼** + + + +å¯ä»¥çå°ï¼ååç¾ç½²çä¸å¡å·²ç»è¢«æååºæ¥ï¼åæ¶ååç¾ç½²çæ°æ®ä¹è¢«ç¬ç«åºæ¥ï¼ä½ç±äºåæéçç³»ç»çå¤æåº¦ä»¥åæ°æ®ç¸å ³ä¾èµï¼æä»¬éè¦å°ååçç¾ç½²æ°æ®åæ¥å°éçç³»ç»çæ°æ®åºä¸ã + +å½ç¶ï¼è¿åªæ¯æç个æ¡ä¸ç¨å°ï¼å¤§å®¶å¯ä»¥å¨æ¹é çè¿ç¨ä¸ï¼ç»åå ·ä½çä¸å¡åºæ¯ä¸ï¼èèæ¯å¦éè¦è¿æ ·çæ°æ®åæ¥æºå¶ã + +对äºå½åè¿ä¸ªä¾åï¼å¦æä¸åæ°æ®ç忥ï¼åéè¦æ´é¿çæ¶é´åæå¹¶è§£è¦ååæ°æ®ååæéçç³»ç»çä¾èµï¼å æ¤ä¹å¯ä»¥çåºï¼åæ¥æ¯ä¸ºäºå¸®å©æä»¬å°½å¿«ç使æ¹é åçæå¡ä½ç°ä»·å¼ã + +**ç论ä¸ï¼ç»è¿ä¸æå°è¿ä»£ï¼éæ¸å®æä¸å¡åè½è§£è¦ï¼æ°æå¡æå»ºãé£ä¹éçç³»ç»å°±ä¼è¢«æ¿æ¢æã** + +## æ¹é è¦ç¹ +卿¹é çæ´ä¸ªè¿ç¨ä¸ï¼æè®¤ä¸ºå¦ä¸å 个å®è·µæ¯é常éè¦çï¼ + + + +### åºç¡è®¾æ½èªå¨å + +åæçé¨ç½²åç卿°æ®ä¸å¿ï¼å æ¤æµç¨ä¸ç¸å¯¹å¤æï¼èä¸åå¨ä¸å®å¼ç«¯ï¼è¬å¦å®¡æ¹ååä½ä¸ï¼èµ·ä¸å°å®è´¨ä½ç¨ï¼ãå¯¹äºæ¹é åçæå¡èè¨ï¼æä»¬ä½¿ç¨æ´å¤çèªå¨åæ¹å¼ä»£æ¿å¤æçå®¡æ¹æµç¨ãéè¿ä½¿ç¨AWSä½ä¸ºåºç¡è®¾æ½ï¼å¢éè½å¤æ´èªä¸»ç对åºç¡è®¾æ½è¿è¡ç®¡çãå¦èµæºå建ãéæ¯ãæ´æ°çãéçæå¡çå¢å¤ï¼åºç¡è®¾æ½èªå¨å叮婿们èçäºå¤§éçæ¶é´ãå½ç¶ï¼ä»ç»ç»å±é¢ï¼ä¹æç«äºä¸é¨çå°ç»ç ç©¶AWS以åç¸å ³çDevOpsé å¥å·¥å ·ã + +ç®åï¼å½å 夿å¾å¤ä¼ç§çäºå¹³å°ï¼å¯ä»¥æ¹ä¾¿çä¸ºç¨æ·æä¾åºç¡è®¾æ½çèªå¨åæºå¶ã + +### å¾®æå¡çæç³»ç» + +å¾®æå¡ççæç³»ç»æ¯æå¾®æå¡å®æ½è¿ç¨ç¸å ³çåä½é¨åï¼æ¶åé¨åè¾å¤ï¼è¬å¦æµè¯æºå¶ãæç»éæãèªå¨åé¨ç½²ãç»ç²åº¦çæ§ãæ¥å¿èåãåè¦ãæç»äº¤ä»ï¼ä»¥å大家éå¸¸å ³æ³¨çæå¡æ³¨åãæå¡åç°æºå¶çã + +è¿é¨åççµæ´»æ§æ¯è¾å¤§ï¼å 为ç®åå¦ä¸è¯´çæ¯ä¸ä¸ªé¢å齿å¾å¤ä¼ç§çå·¥å ·ãè¬å¦æ¥å¿èåç®åä¸ççæ¹æ¡é常为ELKãAWSçé¨ç½²ä½¿ç¨CloudFormationæ´çµæ´»ï¼çæ§çæ¹æ¡å¦ZabbixãNewRelicãCloudWatchçï¼æçççæ§å·¥å ·é½å ·æåè¦åè½ï¼PagerDuty乿便´ä¸ä¸çåè¦æå¡ãæå¡æ³¨åååç°æEurekaï¼Consul,Zookeeperã大家å¯ä»¥å¨åèªçå¢éä¸èªç±åæ¥ã + +### å¼åæ¡æ¶çæ¼è¿ + +å¼åæ¡æ¶æ¯å¢éå¨æå»ºå¾®æå¡çè¿ç¨ä¸ï¼ä¸ææ»ç»ï¼æ¢³çåºçå¿«éå¼åå¾®æå¡çç¸å ³å·¥å ·åæ¡æ¶ã + +æä»¬åºäºRubyæå»ºäºå¿«éå¼åæ¡æ¶ï¼ä¸»è¦å æ¬åé¨åï¼å¦ä¸å¾æç¤ºï¼ + + + +1. å¼åæ¨¡æ¿ + + 使ç¨Grapeä½ä¸ºWebæ¡æ¶ï¼HALä½ä¸ºAPIéä¿¡è§çº¦ï¼RSpecä½ä¸ºæµè¯æ¡æ¶ãåæ¶ï¼è¿å®ä¹äºä¸ç»Rakeä»»å¡ï¼è¬å¦è¿è¡æµè¯ï¼æ¥çæµè¯æ¥åï¼å°å½åçæå¡çæRPM/AMIéåçã + + 餿¤ä¹å¤ï¼è¯¥æ¨¡æ¿ä¹æä¾äºä¸ç»éç¨çURLï¼å¸®å©ä½¿ç¨è æ¥çå¾®æå¡ççæ¬ãé 置信æ¯ä»¥åæ£æµæ¯å¦å¥åº·è¿è¡çãè¬å¦/diagnostic/config, /health, /version, /heartbeat + +2. 代ç çæå·¥å · + + éè¿æå®ä¸ååæ°ï¼ä»£ç çæå·¥å ·è½åå»ºå ·ææ°æ®åºè®¿é®è½åï¼æè æ¯å å«å¼æ¥éåå¤ççå¾®æå¡åºç¨ãåæ¶ï¼ä¹å¯ä»¥æ 记该æå¡æ¯æ°æ®æ¶è´¹è è¿æ¯æ°æ®ç产è ï¼å¸®å©çè§£å¤ä¸ªå¾®æå¡ä¹é´çèç³» + +3. æç»éææ¨¡æ¿ + + åºäºæç»éææå¡å¨Bambooï¼åå»ºäºæ¨¡æ¿å·¥ç¨ï¼å¹¶å®ä¹ä¸»è¦çé¶æ®µï¼ + + > éªè¯ï¼è¿è¡åå æµè¯ï¼å¥çº¦æµè¯ + > + > æå»ºï¼æå»ºåºäºAMIçé¨ç½²å + > + > é¨ç½²ï¼åºäºæå®çæ¬çAMIï¼å¿«éé¨ç½²å°éªæ¶ç¯å¢æè 产åç¯å¢ä¸ã + + å©ç¨è¿æ ·çæç»éææ¨¡æ¿å·¥ç¨ï¼è±è´¹å¾å°çæ¶é´ï¼å°±å¯ä»¥é对æ°å»ºçå¾®æå¡åºç¨ï¼å¿«éé ç½®å ¶å¯¹åºçæç»éæç¯å¢ã + +4. åºäºAsgardçé¨ç½²å·¥å · + + Asgardæ¯ç±Netflixå¼åçåºäºWebçAWSäºé¨ç½²å管çå·¥å ·ãåºäºAsgardï¼æä»¬å®ç°äºå½ä»¤è¡é¨ç½²å·¥å ·ï¼é¨ç½²æ¶éè¿ä¸æ¡å½ä»¤ï¼æä¾æå¡åç§°ãçæ¬å·ï¼å°±å¯èªå¨å®æèµæºçå建ãé¨ç½²ãæµé忢ãå 餿§çåºç¨çæä½ãè¬å¦ï¼ + + > deploy [ServiceName] [ServiceVersion] + +### å¢éè¿ç»´èªç®¡ç + +è¿ä¸é¨åæ¯å ³äºå¢éçæå管çã乿¯å¯¹DevOPSçå»¶ä¼¸ï¼æä»¬ç§°ä¸ºTMIï¼Team Managed Infrastructureï¼ã + +ç®çæ¯å°åæãå¼åãæµè¯ä»¥åèµæºå建ã鿝ãèªå¨åé¨ç½²çæå©äº¤ç»å¢éï¼ç±å¢éæé宿é¨ç½²ï¼å ä¸çæ¿çæµç¨ç®¡çï¼èéScrumçåºå®è¿ä»£ï¼å¯ä»¥åå°ä¸å¤©é¨ç½²å¤æ¬¡ï¼ã + +å½ç¶ï¼è¿ä¸ªç¯èé常ä¾èµäºæçççæ§ä»¥ååè¦æºå¶ï¼å½åºç°é®é¢æ¶ï¼è½å¤ææçéç¥å°è´£ä»»äººï¼å¿«éåé¦ï¼å¿«éä¿®å¤ãå¢éå é¨ä¹ä¼å®æè½®æ¢Pagerï¼åºé®é¢æç«ç人ï¼ï¼å¹å »å¢é以æå¡å¯ç¨ä½ä¸ºå¤§å®¶çå ±åç®æ ï¼å¹å »äº§åè§å¿µï¼èé项ç®è§å¿µã + +åå顾ä¸ä¸è¿ä¸ªå¾ï¼ + + + +æåï¼å大家å享ä¸ä¸ï¼æä¸ªäººå¨å¾®æå¡å®æ½è¿ç¨ä¸æ»ç»ç4奿¹é: + +ç±å¤§å°å°ï¼ç±ç²å°ç» + +å ³æ³¨è¿ç»´ï¼å ³æ³¨çæ§ + +å¿«éåé¦ï¼å¿«éä¿®å¤ + +å¾ªåºæ¸è¿ï¼å¢éå®ç° + +ä¹å¸æå¤§å®¶è½å¤æ¯ææç书ãå¾®æå¡æ¶æä¸å®è·µãã http://git-wip-us.apache.org/repos/asf/incubator-servicecomb-website/blob/a00c8db2/assets/images/best_practices_for_legacy_system_reform.jpeg ---------------------------------------------------------------------- diff --git a/assets/images/best_practices_for_legacy_system_reform.jpeg b/assets/images/best_practices_for_legacy_system_reform.jpeg new file mode 100644 index 0000000..614efe9 Binary files /dev/null and b/assets/images/best_practices_for_legacy_system_reform.jpeg differ http://git-wip-us.apache.org/repos/asf/incubator-servicecomb-website/blob/a00c8db2/assets/images/legacy_system_background.jpeg ---------------------------------------------------------------------- diff --git a/assets/images/legacy_system_background.jpeg b/assets/images/legacy_system_background.jpeg new file mode 100644 index 0000000..528710d Binary files /dev/null and b/assets/images/legacy_system_background.jpeg differ http://git-wip-us.apache.org/repos/asf/incubator-servicecomb-website/blob/a00c8db2/assets/images/legacy_system_reform_architecture.jpeg ---------------------------------------------------------------------- diff --git a/assets/images/legacy_system_reform_architecture.jpeg b/assets/images/legacy_system_reform_architecture.jpeg new file mode 100644 index 0000000..66c6597 Binary files /dev/null and b/assets/images/legacy_system_reform_architecture.jpeg differ http://git-wip-us.apache.org/repos/asf/incubator-servicecomb-website/blob/a00c8db2/assets/images/legacy_system_reform_strategy.jpeg ---------------------------------------------------------------------- diff --git a/assets/images/legacy_system_reform_strategy.jpeg b/assets/images/legacy_system_reform_strategy.jpeg new file mode 100644 index 0000000..5994a03 Binary files /dev/null and b/assets/images/legacy_system_reform_strategy.jpeg differ http://git-wip-us.apache.org/repos/asf/incubator-servicecomb-website/blob/a00c8db2/assets/images/microservice_definition_by_martin_folwer.jpeg ---------------------------------------------------------------------- diff --git a/assets/images/microservice_definition_by_martin_folwer.jpeg b/assets/images/microservice_definition_by_martin_folwer.jpeg new file mode 100644 index 0000000..abb74da Binary files /dev/null and b/assets/images/microservice_definition_by_martin_folwer.jpeg differ http://git-wip-us.apache.org/repos/asf/incubator-servicecomb-website/blob/a00c8db2/assets/images/microservice_reform_strategy.jpeg ---------------------------------------------------------------------- diff --git a/assets/images/microservice_reform_strategy.jpeg b/assets/images/microservice_reform_strategy.jpeg new file mode 100644 index 0000000..327116e Binary files /dev/null and b/assets/images/microservice_reform_strategy.jpeg differ http://git-wip-us.apache.org/repos/asf/incubator-servicecomb-website/blob/a00c8db2/assets/images/rapid_development_framework_based_on_ruby.jpeg ---------------------------------------------------------------------- diff --git a/assets/images/rapid_development_framework_based_on_ruby.jpeg b/assets/images/rapid_development_framework_based_on_ruby.jpeg new file mode 100644 index 0000000..942b913 Binary files /dev/null and b/assets/images/rapid_development_framework_based_on_ruby.jpeg differ http://git-wip-us.apache.org/repos/asf/incubator-servicecomb-website/blob/a00c8db2/assets/images/why_microservice_show_up.jpeg ---------------------------------------------------------------------- diff --git a/assets/images/why_microservice_show_up.jpeg b/assets/images/why_microservice_show_up.jpeg new file mode 100644 index 0000000..2daa4d8 Binary files /dev/null and b/assets/images/why_microservice_show_up.jpeg differ
