http://git-wip-us.apache.org/repos/asf/incubator-servicecomb-website/blob/08e1b43f/content/cn/docs/go-to-cloud/index.html ---------------------------------------------------------------------- diff --git a/content/cn/docs/go-to-cloud/index.html b/content/cn/docs/go-to-cloud/index.html new file mode 100644 index 0000000..ddc8c5c --- /dev/null +++ b/content/cn/docs/go-to-cloud/index.html @@ -0,0 +1,937 @@ +<!doctype html> +<!-- + Minimal Mistakes Jekyll Theme 4.4.1 by Michael Rose + Copyright 2017 Michael Rose - mademistakes.com | @mmistakes + Free for personal and commercial use under the MIT license + https://github.com/mmistakes/minimal-mistakes/blob/master/LICENSE.txt +--> +<html lang="cn" class="no-js"> + <head> + <meta charset="utf-8"> + +<!-- begin SEO --> + + + + + + + + + +<title>åä½åºç¨å©ç¨ServiceCombå®ç°å¾®æå¡ååäºåä¹è·¯ - Apache incubator ServiceComb</title> + + + + +<meta name="description" content="该ææ¡£æ¼ç¤ºï¼ä»å·²æåºäºspring bootçåä½åºç¨å©ç¨ServiceCombå®ç°å¾®æå¡ååäºåä¹è·¯"> + + + + +<meta name="author" content="Tank Tian"> + +<meta property="og:locale" content="cn"> +<meta property="og:site_name" content="Apache incubator ServiceComb"> +<meta property="og:title" content="åä½åºç¨å©ç¨ServiceCombå®ç°å¾®æå¡ååäºåä¹è·¯"> + + + <link rel="canonical" href="http://github.com/pages/ServiceComb/servicesomb.github.io/cn/docs/go-to-cloud/"> + <meta property="og:url" content="http://github.com/pages/ServiceComb/servicesomb.github.io/cn/docs/go-to-cloud/"> + + + + <meta property="og:description" content="该ææ¡£æ¼ç¤ºï¼ä»å·²æåºäºspring bootçåä½åºç¨å©ç¨ServiceCombå®ç°å¾®æå¡ååäºåä¹è·¯"> + + + + <meta name="twitter:site" content="@ServiceComb"> + <meta name="twitter:title" content="åä½åºç¨å©ç¨ServiceCombå®ç°å¾®æå¡ååäºåä¹è·¯"> + <meta name="twitter:description" content="该ææ¡£æ¼ç¤ºï¼ä»å·²æåºäºspring bootçåä½åºç¨å©ç¨ServiceCombå®ç°å¾®æå¡ååäºåä¹è·¯"> + <meta name="twitter:url" content=""> + + + <meta name="twitter:card" content="summary"> + + + + + <meta name="twitter:creator" content="@"> + + + + + + + + + + + + + <meta property="og:type" content="article"> + <meta property="article:published_time" content="2017-06-24T00:00:00+08:00"> + + + + + + + + + <script type="application/ld+json"> + { + "@context" : "http://schema.org", + "@type" : "Person", + "name" : "Apache incubator ServiceComb", + "url" : "http://github.com/pages/ServiceComb/servicesomb.github.io", + "sameAs" : null + } + </script> + + + + <meta name="google-site-verification" content="HvJjNd7vvJ-yjSTHlBiIWEYxp_Hrz-PYEY5Idz9LRcA" /> + + + + +<!-- end SEO --> + + +<link href="/feed.xml" type="application/atom+xml" rel="alternate" title="Apache incubator ServiceComb Feed"> + +<!-- http://t.co/dKP3o1e --> +<meta name="HandheldFriendly" content="True"> +<meta name="MobileOptimized" content="320"> +<meta name="viewport" content="width=device-width, initial-scale=1.0"> + +<script> + document.documentElement.className = document.documentElement.className.replace(/\bno-js\b/g, '') + ' js '; +</script> +<script src="https://cdnjs.cloudflare.com/ajax/libs/clipboard.js/1.7.1/clipboard.min.js"></script> +<script src="/assets/js/prism.js"></script> + +<script type="text/javascript" async + src="https://cdnjs.cloudflare.com/ajax/libs/mathjax/2.7.1/MathJax.js?config=TeX-MML-AM_CHTML"> +</script> + +<link rel="stylesheet" href="https://maxcdn.bootstrapcdn.com/bootstrap/4.0.0-beta/css/bootstrap.min.css" integrity="sha384-/Y6pD6FV/Vv2HJnA6t+vslU6fwYXjCFtcEpHbNJ0lyAFsXTsjBbfaDjzALeQsN6M" crossorigin="anonymous"> + +<script src="https://code.jquery.com/jquery-3.2.1.slim.min.js" integrity="sha384-KJ3o2DKtIkvYIK3UENzmM7KCkRr/rE9/Qpg6aAZGJwFDMVNA/GpGFF93hXpG5KkN" crossorigin="anonymous"></script> +<script src="https://cdnjs.cloudflare.com/ajax/libs/popper.js/1.11.0/umd/popper.min.js" integrity="sha384-b/U6ypiBEHpOf/4+1nzFpr53nxSS+GLCkfwBdFNTxtclqqenISfwAzpKaMNFNmj4" crossorigin="anonymous"></script> +<script src="https://maxcdn.bootstrapcdn.com/bootstrap/4.0.0-beta/js/bootstrap.min.js" integrity="sha384-h0AbiXch4ZDo7tp9hKZ4TsHbi047NrKGLO3SEJAg45jXxnGIfYzk4Si90RDIqNm1" crossorigin="anonymous"></script> +<!-- For all browsers --> +<link rel="stylesheet" href="/assets/css/main.css"> +<link rel="stylesheet" href="/assets/css/prism.css"> + +<!--[if lte IE 9]> + <style> + /* old IE unsupported flexbox fixes */ + .greedy-nav .site-title { + padding-right: 3em; + } + .greedy-nav button { + position: absolute; + top: 0; + right: 0; + height: 100%; + } + </style> +<![endif]--> + +<meta http-equiv="cleartype" content="on"> + + <!-- start custom head snippets --> + +<!-- insert favicons. use http://realfavicongenerator.net/ --> +<link href="https://fonts.cat.net/css?family=Roboto:400,500,700|Source+Code+Pro" rel="stylesheet"> +<script src="/assets/js/custom.js"></script> +<!-- end custom head snippets --> + + </head> + + <body class="layout--single"> + + <!--[if lt IE 9]> +<div class="notice--danger align-center" style="margin: 0;">You are using an <strong>outdated</strong> browser. Please <a href="http://browsehappy.com/">upgrade your browser</a> to improve your experience.</div> +<![endif]--> + <div class="masthead"> + <div class="masthead__inner-wrap"> + <div class="masthead__menu"> + <nav id="site-nav" class="greedy-nav"> + + <a class="site-title active" href="/cn"><img src="//assets/images/ServiceComb-logo-1.png"></a> + + <ul class="visible-links"> + + + <li class="masthead__menu-item"> + + + + <a href="/cn/docs/quick-start/">å¿«éå ¥é¨</a> + + </li> + + + <li class="masthead__menu-item"> + + + + <a href="/cn/users/">ç¨æ·æå</a> + + </li> + + + <li class="masthead__menu-item"> + + + + <a href="/cn/developers/">å¼åè æå</a> + + </li> + + + <li class="masthead__menu-item"> + + + + <a href="/cn/year-archive/">åæ</a> + + </li> + + + <li class="masthead__menu-item"> + + + + <a href="/cn/faqs/">常è§é®é¢</a> + + </li> + + </ul> + <button><div class="navicon"></div></button> + <ul class="hidden-links hidden"></ul> + <div class="nav-lang"> + + + + <a href=/docs/go-to-cloud/>English</a> + + </div> + </nav> + </div> + </div> +</div> + + + + + + +<div id="main" role="main"> + + <div class="sidebar sticky"> + + <div class="back-to-home">é¦é¡µ > <a href="/cn/">ServiceComb</a></div> + + + +<div itemscope itemtype="http://schema.org/Person"> + + + + <div class="author__content"> + <h3 class="author__name" itemprop="name">Tank Tian</h3> + + <p class="author__bio" itemprop="description"> + + + How lucky we are. To be free. + + + </p> + + </div> + + <div class="author__urls-wrapper"> + <button class="btn btn--inverse">å ³æ³¨</button> + <ul class="author__urls social-icons"> + + + + <li> + <a href="https://tanktian.github.io/" itemprop="url"> + <i class="fa fa-fw fa-chain" aria-hidden="true"></i> ç½ç« + </a> + </li> + + + + <li> + <a href="mailto:chd.tianm...@gmail.com"> + <meta itemprop="email" content="chd.tianm...@gmail.com" /> + <i class="fa fa-fw fa-envelope-square" aria-hidden="true"></i> çµåé®ç®± + </a> + </li> + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + <!-- + <li> + <a href="http://link-to-whatever-social-network.com/user/" itemprop="sameAs"> + <i class="fa fa-fw" aria-hidden="true"></i> Custom Social Profile Link + </a> + </li> +--> + </ul> + </div> +</div> + + + </div> + + + + <article class="page" itemscope itemtype="http://schema.org/CreativeWork"> + <meta itemprop="headline" content="åä½åºç¨å©ç¨ServiceCombå®ç°å¾®æå¡ååäºåä¹è·¯"> + <meta itemprop="description" content="该ææ¡£æ¼ç¤ºï¼ä»å·²æåºäºspring bootçåä½åºç¨å©ç¨ServiceCombå®ç°å¾®æå¡ååäºåä¹è·¯"> + <meta itemprop="datePublished" content="June 24, 2017"> + <meta itemprop="dateModified" content="June 24, 2017"> + + <div class="page__inner-wrap"> + + + <header> + <h1 class="page__title" itemprop="headline">åä½åºç¨å©ç¨ServiceCombå®ç°å¾®æå¡ååäºåä¹è·¯ +</h1> + + <p class="page__meta"><i class="fa fa-clock-o" aria-hidden="true"></i> + + + + + å°äº 1 åé é 读 + +</p> + + </header> + + + + <section class="page__content" itemprop="text"> + <h2 id="èæ¯">èæ¯</h2> + +<ol> + <li> + <p>Service Stageï¼å¾®æå¡äºåºç¨å¹³å°ï¼å®æ¯é¢åä¼ä¸åå¼åè çä¸ç«å¼DevOpså¹³å°æå¡ï¼æ¯æåºäºå¾®æå¡çåºç¨å¼åãæ²»çãé¨ç½²åè¿ç»´çæ§çå ¨çå½å¨æ管çï¼å¹¶æä¾å¤§è§æ¨¡å®¹å¨é群管çåä¸é´ä»¶æå¡çå¹³å°è½åï¼å¸®å©ç¨æ·å¿«éæ建äºåå¸å¼åºç¨ã</p> + </li> + <li> + <p>æ¬æ导以Acmeair demoçé¨ç½²ä¸ºä¾ï¼æ¼ç¤ºå¦ä½ä½¿ç¨ServiceComb (å为微æå¡æ¡æ¶å¼æºçæ¬)å®ç°åºç¨çå¾®æå¡åï¼å¹¶å©ç¨Service Stageäºå¹³å°ä¸å®ç°åºç¨çäºåã</p> + </li> +</ol> + +<h2 id="æå¡ååäºåæ¥éª¤">æå¡ååäºåæ¥éª¤</h2> + +<ul> + <li> + <p>ç¯å¢åå¤ï¼åºäºService Stageå®æå建é群ãæ·»å èç¹çèµæºåå¤å·¥ä½</p> + </li> + <li> + <p>å¾®æå¡å¼å</p> + + <ol> + <li> + <p>å¾®æå¡çæå设计</p> + </li> + <li> + <p>åºäºServiceCombæ¡æ¶å¿«éå¾®æå¡å</p> + </li> + <li> + <p>å¶ä½éåä¸ä¼ Service Stage软件ä»åºï¼</p> + </li> + </ol> + </li> + <li> + <p>åºç¨ä¸çº¿ï¼éè¿Service Stageä»è½¯ä»¶ä»åºè·åçæ¬å®ç°é¨ç½²ä¸çº¿ï¼</p> + </li> + <li> + <p>åºç¨è¿ç»´ï¼éè¿Service Stage对微æå¡æåºç¨è¿è¡çå½å¨æ管çï¼é¨ç½²-å¯å¨-ä¸çº¿-å级-æ©å®¹-åæ¢-ä¸çº¿-å é¤ï¼ãåè¦ãçæ§ãè°ç¨é¾åæåæ²»ççã</p> + </li> +</ul> + +<h2 id="ç¯å¢åå¤å建é群添å èç¹å®æèç¹èªå¨çº³ç®¡">ç¯å¢åå¤ï¼å建é群ãæ·»å èç¹ï¼å®æèç¹èªå¨çº³ç®¡</h2> +<h3 id="å建é群">å建é群</h3> +<p>请åè<a href="http://support.hwclouds.com/usermanual-servicestage/zh-cn_topic_0053496188.html">å建é群详ç»æ导</a><br /> +<img src="/assets/images/create-group.png" alt="create group" class="align-center" /></p> + +<h3 id="æ·»å èç¹">æ·»å èç¹</h3> +<p>请åè<a href="http://support.hwclouds.com/usermanual-servicestage/zh-cn_topic_0053443149.html">为é群添å èç¹è¯¦ç»æ导</a> <br /> +<img src="/assets/images/add-node.png" alt="add node" class="align-center" /></p> + +<h2 id="å¾®æå¡å¼å">å¾®æå¡å¼å</h2> +<h3 id="åºç¨æ¶æ设计ååå¾®æå¡è¯å«æå¡ä¾èµå ³ç³»">åºç¨æ¶æ设计ï¼ååå¾®æå¡ï¼è¯å«æå¡ä¾èµå ³ç³»</h3> +<p><img src="/assets/images/micro-service-design.png" alt="micro service design" class="align-center" /></p> + +<h3 id="å建微æå¡-åä½åºç¨å¾®æå¡åºç¨">å建微æå¡: åä½åºç¨â>å¾®æå¡åºç¨</h3> +<p><img src="/assets/images/micro-service-structure.PNG" alt="micro service structure" class="align-center" /></p> + +<h3 id="ç®å4æ¥servicecombå¸®ä½ å®æå¾®æå¡åæ¹é ">ç®å4æ¥ServiceCombå¸®ä½ å®æå¾®æå¡åæ¹é </h3> +<h4 id="step-1-pomå¼å ¥å¯¹servicecombçä¾èµ">Step 1: POMå¼å ¥å¯¹ServiceCombçä¾èµ</h4> +<p><img src="/assets/images/pom-dependence.png" alt="pom dependence" class="align-center" /></p> + +<h4 id="step-2-å¢å å¾®æå¡æè¿°æ件åspringé ç½®æ件">Step 2 å¢å å¾®æå¡æè¿°æ件åspringé ç½®æ件</h4> +<p><img src="/assets/images/config-file.png" alt="config file" class="align-center" /></p> + +<h4 id="step-3-å¼å ¥servicecomb注解ä¸è¡ä»£ç å®ææå¡åå¸">Step 3: å¼å ¥ServiceComb注解ä¸è¡ä»£ç å®ææå¡åå¸</h4> +<p><img src="/assets/images/code-adjust.png" alt="code adjust" class="align-center" /></p> + +<h4 id="step-4-使ç¨servicecombæ¥å£ç®åå建resttemplateå®ææå¡æ¶è´¹ä¹æ¯æ注解æ¹å¼è¿è¡æ¶è´¹">Step 4: 使ç¨ServiceCombæ¥å£ç®åå建RestTemplateå®ææå¡æ¶è´¹ï¼ä¹æ¯æ注解æ¹å¼è¿è¡æ¶è´¹ï¼</h4> +<p><img src="/assets/images/service-consumer.png" alt="service consumer" class="align-center" /></p> + +<h3 id="å¶ä½éåä¸ä¼ å°äºéåä¸å¿">å¶ä½éåä¸ä¼ å°äºéåä¸å¿</h3> +<p>请åè<a href="http://support.hwclouds.com/usermanual-servicestage/zh-cn_topic_0055101643.html">ä¸ä¼ éå详ç»æ导</a><br /> +<img src="/assets/images/image-upload-1.png" alt="image upload 1" class="align-center" /><br /> +<img src="/assets/images/image-upload-2.png" alt="image upload 2" class="align-center" /></p> + +<h2 id="åºç¨ä¸çº¿å©ç¨åºç¨ç®¡çå®ç°é¨ç½²ä¸çº¿">åºç¨ä¸çº¿ï¼å©ç¨åºç¨ç®¡çå®ç°é¨ç½²ä¸çº¿</h2> +<p>请åè<a href="http://support.hwclouds.com/usermanual-servicestage/user_deployService.html">é¨ç½²å¾®æå¡è¯¦ç»æ导</a> <br /> +<img src="/assets/images/service-deploy.png" alt="service deploy" class="align-center" /></p> + +<h2 id="åºç¨è¿ç»´ä¿éåºç¨å¹³ç¨³è¿è¡">åºç¨è¿ç»´ï¼ä¿éåºç¨å¹³ç¨³è¿è¡</h2> +<h3 id="å¾®æå¡è°ç¨é¾åæ">å¾®æå¡è°ç¨é¾åæ</h3> +<p>请åè<a href="http://support.hwclouds.com/usermanual-servicestage/zh-cn_topic_0053555508.html">åºç¨è°ç¨åæ详ç»æ导</a><br /> + <img src="/assets/images/service-monitor-1.png" alt="service monitor 1" class="align-center" /></p> + +<h3 id="å¾®æå¡ç¶æçæ§">å¾®æå¡ç¶æçæ§</h3> +<p>请åè<a href="http://support.hwclouds.com/usermanual-servicestage/zh-cn_topic_0053555506.html">åºç¨çæ§è¯¦ç»æ导</a><br /> +<img src="/assets/images/service-monitor-2.png" alt="service monitor 2" class="align-center" /></p> + +<h3 id="æéå¼¹æ§ä¼¸ç¼©">æéå¼¹æ§ä¼¸ç¼©</h3> +<p>请åè<a href="http://support.hwclouds.com/usermanual-servicestage/zh-cn_topic_0054051691.html">å¼¹æ§ä¼¸ç¼©è¯¦ç»æ导</a><br /> +<img src="/assets/images/scaling.png" alt="scaling" class="align-center" /></p> + +<h3 id="å¾®æå¡å¯è§åæ²»ç">å¾®æå¡å¯è§åæ²»ç</h3> +<p>请åè<a href="http://support.hwclouds.com/usermanual-servicestage/zh-cn_topic_0053560172.html">å¾®æå¡ç®¡ç详ç»æ导</a><br /> +<img src="/assets/images/governance.png" alt="governance" class="align-center" /></p> + +<h1 id="acmeairæ¬å°è¿è¡">Acmeairæ¬å°è¿è¡</h1> +<p>æ¬ç« èä»ç»å¨windows 64ä½ç¯å¢ä¸å¦ä½æ¬å°è¿è¡Acmeair</p> + +<h2 id="ç¯å¢åå¤">ç¯å¢åå¤</h2> + +<ul> + <li> + <p>JDK 1.8</p> + </li> + <li> + <p>maven 3.x</p> + </li> + <li> + <p>eclipse</p> + </li> + <li> + <p>service-center</p> + + <p> ä¸è½½<a href="https://github.com/ServiceComb/service-center/releases">service-center-x.x.x-x-windows-amd64.zip</a>解åå°ä»»æç®å½</p> + </li> + <li> + <p>mongodbï¼å¯éï¼</p> + </li> + <li> + <p>ä¸è½½<a href="https://github.com/TankTian/acmeair/archive/master.zip">acmeairæºç </a></p> + </li> +</ul> + +<h2 id="å¯¼å ¥é¡¹ç®å¹¶æ建">å¯¼å ¥é¡¹ç®å¹¶æ建</h2> +<h3 id="å°acmeair项ç®å¯¼å ¥eclipse">å°acmeair项ç®å¯¼å ¥eclipse</h3> +<p>Import - - Maven:Existing Maven Projectsï¼éæ©ä»£ç æå¨çç®å½ï¼ç¹å»finishå®æå¯¼å ¥ <br /> +<img src="/assets/images/import-project.png" alt="import project" class="align-center" /></p> + +<h3 id="pomæ件æ¥émissing-artifac-comhuaweipaascsexxxxx">pomæ件æ¥éï¼Missing artifac com.huawei.paas.cse:xxx:xx</h3> +<p>该缺å°çjarå 为åä¸çæ¬ç¹æ§ï¼è¯·èç³»åä¸ºå ¬æäº Service Stage å¢éè·åï¼æ¤jarä¸äºå¿ éï¼å¦åæ æ³ä½¿ç¨Service Stage service centerc/config center/è°ç¨é¾çç¹æ§ï¼æ¬å°è°è¯æ¶huaweiåä¸çæ¬çå 个å ä¾èµå¯ä»¥å»æï¼å¯ä»¥å®ç°æ¬å°çæå¡åç°å注åï¼ã<br /> +å¦æéè¦å°jarå å¤å¶å°mavenæ¬å°ä»åºä¸ï¼å ·ä½å å表å¦ä¸ï¼<br /> +<img src="/assets/images/jar-list.png" alt="jar-list" class="align-center" /><br /> +eclispeä¸æ´æ°å·¥ç¨ï¼Maven - - Update Projectâ¦</p> + +<h3 id="ä¿®æ¹å¾®æå¡æè¿°æ件">ä¿®æ¹å¾®æå¡æè¿°æ件</h3> + +<ol> + <li> + <p>acmeair-booking-service\src\main\resources\microservice.yaml<br /> +<img src="/assets/images/booking-microservice-yaml.png" alt="booking microservice yaml" class="align-center" /></p> + </li> + <li> + <p>acmeair-customer-service\src\main\resources\microservice.yaml <br /> +<img src="/assets/images/customer-microservice-yaml.png" alt="customer microservice yaml" class="align-center" /></p> + </li> + <li> + <p>acmeair-website\src\main\resources\microservice.yaml<br /> +<img src="/assets/images/website-microservice-yaml.png" alt="website microservice yaml" class="align-center" /></p> + </li> +</ol> + +<h3 id="æ§è¡-mvn-install-ç»æ-build-success-项ç®å¯¼å ¥å®æ并æåæ建">æ§è¡ mvn install ç»æ BUILD SUCCESS ï¼é¡¹ç®å¯¼å ¥å®æ并æåæ建</h3> +<p><img src="/assets/images/compile.png" alt="compile" class="align-center" /></p> + +<h2 id="å¯å¨æå¡">å¯å¨æå¡</h2> +<h3 id="service-center">service-center</h3> +<p>æ¾å°service-center-0.1.0-m1-windows-amd64解åç®å½ï¼åå»start.bat<br /> +<img src="/assets/images/servcie-center.png" alt="servcie center" class="align-center" /> <br /> +<img src="/assets/images/service-center-start-success.png" alt="service center start success" class="align-center" /></p> + +<h3 id="acmeair-booking">acmeair-booking</h3> +<p>AcmeairApplication:Run As - - Run Configurationsâ¦<br /> +<img src="/assets/images/start-booking.png" alt="start booking" class="align-center" /> <br /> +watching microservice 2 successfullyï¼æå¡æ³¨åæå<br /> +<img src="/assets/images/booking-start-success.png" alt="booking start success" class="align-center" /></p> + +<h3 id="acmeair-customer">acmeair-customer</h3> +<p>CustomerServiceApplication:Run As - - Run Configurationsâ¦<br /> +<img src="/assets/images/start-customer.png" alt="start customer" class="align-center" /> <br /> +watching microservice 4 successfullyï¼æå¡æ³¨åæå<br /> +<img src="/assets/images/customer-start-success.png" alt="customer start success" class="align-center" /></p> + +<h3 id="acmeair-website">acmeair-website</h3> +<p>å°acmeair-website\target\ROOT.warå¤å¶å°tomcat webappsæ件夹ä¸ï¼å¯å¨tomcat<br /> +<img src="/assets/images/start-website.png" alt="start website" class="align-center" /></p> + +<h2 id="åå°è®¿é®">åå°è®¿é®</h2> +<p>è¾å ¥http://localhost:8080<br /> +<img src="/assets/images/home-page.png" alt="home page" class="align-center" /></p> + +<p>ç¹å»ç½é¡µæä¸ç«¯Acmeèªç©ºé ç½®<br /> +<img src="/assets/images/init-data.png" alt="init data" class="align-center" /></p> + + + </section> + + <footer class="page__meta"> + + + + + + + + + + <p class="page__taxonomy"> + <strong><i class="fa fa-fw fa-tags" aria-hidden="true"></i> æ ç¾: </strong> + <span itemprop="keywords"> + + + + <a href="/tags/#%E5%8D%8E%E4%B8%BA%E4%BA%91" class="page__taxonomy-item" rel="tag">å为äº</a> + + </span> + </p> + + + + + + + + + <p class="page__date"><strong><i class="fa fa-fw fa-calendar" aria-hidden="true"></i> ææ°ç:</strong> <time datetime="2017-06-24">2017å¹´6æ24æ¥</time></p> + + + + </footer> + + <section class="page__share"> + + <h4 class="page__share-title">å享</h4> + + + <a href="https://twitter.com/intent/tweet?via=ServiceComb&text=åä½åºç¨å©ç¨ServiceCombå®ç°å¾®æå¡ååäºåä¹è·¯ /cn/docs/go-to-cloud/" class="btn btn--twitter" title="å享 Twitter"><i class="fa fa-fw fa-twitter" aria-hidden="true"></i><span> Twitter</span></a> + + <a href="https://www.facebook.com/sharer/sharer.php?u=/cn/docs/go-to-cloud/" class="btn btn--facebook" title="å享 Facebook"><i class="fa fa-fw fa-facebook" aria-hidden="true"></i><span> Facebook</span></a> + + <a href="https://plus.google.com/share?url=/cn/docs/go-to-cloud/" class="btn btn--google-plus" title="å享 Google Plus"><i class="fa fa-fw fa-google-plus" aria-hidden="true"></i><span> Google+</span></a> + + <a href="https://www.linkedin.com/shareArticle?mini=true&url=/cn/docs/go-to-cloud/" class="btn btn--linkedin" title="å享 LinkedIn"><i class="fa fa-fw fa-linkedin" aria-hidden="true"></i><span> LinkedIn</span></a> +</section> + + + + <nav class="pagination"> + + <a href="/docs/go-to-cloud/" class="pagination--pager" title="åä½åºç¨å©ç¨ServiceCombå®ç°å¾®æå¡ååäºåä¹è·¯ +">åå</a> + + + <a href="/docs/tracing-with-servicecomb/" class="pagination--pager" title="Distributed Tracing with ServiceComb and Zipkin +">åå</a> + + </nav> + + + </div> + + + <div class="page__comments"> + + + <section id="static-comments"> + + <!-- Start static comments --> + <div class="js-comments"> + + </div> + <!-- End static comments --> + + <!-- Start new comment form --> + <h4 class="page__comments-title">çä¸è¯è®º</h4> + <p class="small">æ¨ççµåé®ç®±å°å并ä¸ä¼è¢«å±ç¤ºã请填åæ è®°ä¸ºå¿ é¡»çå段ã <span class="required">*</span></p> + <form id="new_comment" class="page__comments-form js-form form" method="post" action="https://api.staticman.net/v1/entry/ServiceComb/servicesomb.github.io/master"> + <div class="form__spinner"> + <i class="fa fa-spinner fa-spin fa-3x fa-fw"></i> + <span class="sr-only">æ£å¨å è½½...</span> + </div> + + <fieldset> + <label for="comment-form-message">è¯è®º <small class="required">*</small></label> + <textarea type="text" rows="3" id="comment-form-message" name="fields[message]" tabindex="1"></textarea> + <div class="small help-block"><a href="https://daringfireball.net/projects/markdown/">Markdownè¯æ³å·²æ¯æã</a></div> + </fieldset> + <fieldset> + <label for="comment-form-name">å§å <small class="required">*</small></label> + <input type="text" id="comment-form-name" name="fields[name]" tabindex="2" /> + </fieldset> + <fieldset> + <label for="comment-form-email">çµåé®ç®± <small class="required">*</small></label> + <input type="email" id="comment-form-email" name="fields[email]" tabindex="3" /> + </fieldset> + <fieldset> + <label for="comment-form-url">ç½ç«ï¼å¯éï¼</label> + <input type="url" id="comment-form-url" name="fields[url]" tabindex="4"/> + </fieldset> + <fieldset class="hidden" style="display: none;"> + <input type="hidden" name="options[slug]" value="go-to-cloud"> + <label for="comment-form-location">Not used. Leave blank if you are a human.</label> + <input type="text" id="comment-form-location" name="fields[hidden]" autocomplete="off"/> + </fieldset> + <!-- Start comment form alert messaging --> + <p class="hidden js-notice"> + <strong class="js-notice-text"></strong> + </p> + <!-- End comment form alert messaging --> + <fieldset> + <button type="submit" id="comment-form-submit" tabindex="5" class="btn btn--large">æ交è¯è®º</button> + </fieldset> + </form> + <!-- End new comment form --> + + </section> + +</div> + + + </article> + + + + <div class="page__related"> + <h4 class="page__related-title">çæ¨è¿å欢</h4> + <div class="grid__wrapper"> + + + + + +<div class="grid__item"> + <article class="archive__item" itemscope itemtype="http://schema.org/CreativeWork"> + + <h2 class="archive__item-title" itemprop="headline"> + + <a href="/cn/docs/jira_beginner_guide/" rel="permalink">èå¸æºå¸¦ä½ å·ä»»å¡ - ServiceComb JIRAå ¥é¨æå +</a> + + </h2> + <p class="archive__item-excerpt" itemprop="description">ServiceComb JIRAå ¥é¨æå +</p> + + <p class="page__meta"><i class="fa fa-clock-o" aria-hidden="true"></i> + + + + + å°äº 1 åé é 读 + +</p> + + </article> +</div> + + + + + + +<div class="grid__item"> + <article class="archive__item" itemscope itemtype="http://schema.org/CreativeWork"> + + <h2 class="archive__item-title" itemprop="headline"> + + <a href="/docs/service-center-ui/" rel="permalink">Service-Center Management UI Console +</a> + + </h2> + <p class="archive__item-excerpt" itemprop="description">An introduction Service-Center Management Console +</p> + + <p class="page__meta"><i class="fa fa-clock-o" aria-hidden="true"></i> + + + + + 2 åé é 读 + +</p> + + </article> +</div> + + + + + + +<div class="grid__item"> + <article class="archive__item" itemscope itemtype="http://schema.org/CreativeWork"> + + <h2 class="archive__item-title" itemprop="headline"> + + <a href="/docs/service-center-ui/" rel="permalink">Service-Center Management UI Console +</a> + + </h2> + <p class="archive__item-excerpt" itemprop="description">An introduction Service-Center Management Console +</p> + + <p class="page__meta"><i class="fa fa-clock-o" aria-hidden="true"></i> + + + + + 2 åé é 读 + +</p> + + </article> +</div> + + + + + + +<div class="grid__item"> + <article class="archive__item" itemscope itemtype="http://schema.org/CreativeWork"> + + <h2 class="archive__item-title" itemprop="headline"> + + <a href="/cn/docs/how-to-reform-a-legacy-system/" rel="permalink">æ头ç¼çéçç³»ç»è¯¥å¦ä½æ¹é ï¼ +</a> + + </h2> + <p class="archive__item-excerpt" itemprop="description">å¾®æå¡æ¯å¦æ¯ä¸çæå¾ å·²ä¹ çä¼ä¸æ¶æ解å³æ¹æ¡ï¼å¨å¯¹éçç³»ç»è¿è¡å¾®æå¡çæ¹é è¿ç¨ä¸åå¨ææ ·çå°é¾åææï¼åºè¯¥æ³¨æäºä»ä¹ï¼ +</p> + + <p class="page__meta"><i class="fa fa-clock-o" aria-hidden="true"></i> + + + + + 1 åé é 读 + +</p> + + </article> +</div> + + + </div> + </div> + +</div> + + + <script async src="//pagead2.googlesyndication.com/pagead/js/adsbygoogle.js"></script> + <div align="center" style="margin: 0 0;"> + <ins class="adsbygoogle" + style="display:block; border-bottom: initial;" + data-ad-client="ca-pub-7328585512091257" + data-ad-slot="3049671934" + data-ad-format="auto"></ins> + </div> + + <div class="page__footer"> + <footer> + <!-- start custom footer snippets --> + +<!-- end custom footer snippets --> + <div class="container"> + <div class="row justify-content-md-center"> + + <div class="col"> + <ul> + <p class="header">èµæº</p> + <li><a href="/cn/docs/quick-start/">å¿«éå ¥é¨</a></li> + <li><a href="/cn/users/user-guide/">ç¨æ·æå</a></li> + <li><a href="/cn/slides/">èµæ</a></li> + <li><a href="/cn/users/faq/">常è§é®é¢</a></li> + </ul> + </div> + <div class="col"> + <ul> + <p class="header">è´¡ç®</p> + <li><a href="https://github.com/ServiceComb/ServiceComb.github.io/issues/new?title=Issue with _posts/cn/2017-06-24-go-to-cloud.md">æ¥åæ¬ç½é¡µé®é¢</a></li> + <li><a href="https://github.com/ServiceComb/ServiceComb.github.io/edit/master/_posts/cn/2017-06-24-go-to-cloud.md">å¨Githubä¸ç¼è¾æ¤é¡µ</a></li> + <li><a href="/cn/developers/submit-codes/">代ç æ交æå</a></li> + </ul> + </div> + <div class="col"> + <ul class="social-icons"> + <p class="header">社åº</p> + <li> + <a href="https://groups.google.com/forum/#!forum/servicecomb-developers" target="_blank"><span class="group">å¼åè </span></a> | + <a href="https://groups.google.com/forum/#!forum/servicecomb-users" target="_blank">ç¨æ·</span></a> + </li> + <li> + <a href="http://github.com/ServiceComb" target="_blank"><span class="github">Github</span></a> + </li> + <li> + <a href="https://twitter.com/ServiceComb" target="_blank"><span class="twitter">Twitter</span></a> + </li> + <li> + <a href="/feed.xml" target="_blank"><span class="rss">Feed</span></a> + </li> + </ul> + </div> + </div> +</div> +<div class="page__footer-bottom"> + <div>© 2017 Apache incubator ServiceComb. ææ¯æ¥èªäº <a href="http://jekyllrb.com" rel="nofollow">Jekyll</a> & <a href="https://mademistakes.com/work/minimal-mistakes-jekyll-theme/" rel="nofollow">Minimal Mistakes</a>.</div> +</div> + + </footer> + </div> + + <script src="/assets/js/main.min.js"></script> + + + + + <script> + (function(i,s,o,g,r,a,m){i['GoogleAnalyticsObject']=r;i[r]=i[r]||function(){ + (i[r].q=i[r].q||[]).push(arguments)},i[r].l=1*new Date();a=s.createElement(o), + m=s.getElementsByTagName(o)[0];a.async=1;a.src=g;m.parentNode.insertBefore(a,m) + })(window,document,'script','https://www.google-analytics.com/analytics.js','ga'); + + ga('create', 'UA-101622733-1', 'auto'); + ga('send', 'pageview'); +</script> + + + + + + + + + <script> + (function ($) { + var $comments = $('.js-comments'); + + $('#new_comment').submit(function () { + var form = this; + + $(form).addClass('disabled'); + $('#comment-form-submit').html('<i class="fa fa-spinner fa-spin fa-fw"></i> æ£å¨å è½½...'); + + $.ajax({ + type: $(this).attr('method'), + url: $(this).attr('action'), + data: $(this).serialize(), + contentType: 'application/x-www-form-urlencoded', + success: function (data) { + $('#comment-form-submit').html('å·²æ交'); + $('.page__comments-form .js-notice').removeClass('notice--danger'); + $('.page__comments-form .js-notice').addClass('notice--success'); + showAlert('æè°¢æ¨çè¯è®ºï¼è¢«æ¹ååå®ä¼ç«å³å¨æ¤ç«ç¹å±ç¤ºã'); + }, + error: function (err) { + console.log(err); + $('#comment-form-submit').html('æ交è¯è®º'); + $('.page__comments-form .js-notice').removeClass('notice--success'); + $('.page__comments-form .js-notice').addClass('notice--danger'); + showAlert('å¾æ±æï¼æ¨çæ交åå¨é误ã请确ä¿ææå¿ å¡«å段é½å·²å¡«åæ£ç¡®ï¼ç¶ååè¯ä¸æ¬¡ã'); + $(form).removeClass('disabled'); + } + }); + + return false; + }); + + function showAlert(message) { + $('.page__comments-form .js-notice').removeClass('hidden'); + $('.page__comments-form .js-notice-text').html(message); + } + })(jQuery); + </script> + + + + + + + + </body> +</html>
http://git-wip-us.apache.org/repos/asf/incubator-servicecomb-website/blob/08e1b43f/content/cn/docs/how-to-reform-a-legacy-system/index.html ---------------------------------------------------------------------- diff --git a/content/cn/docs/how-to-reform-a-legacy-system/index.html b/content/cn/docs/how-to-reform-a-legacy-system/index.html new file mode 100644 index 0000000..92312df --- /dev/null +++ b/content/cn/docs/how-to-reform-a-legacy-system/index.html @@ -0,0 +1,1133 @@ +<!doctype html> +<!-- + Minimal Mistakes Jekyll Theme 4.4.1 by Michael Rose + Copyright 2017 Michael Rose - mademistakes.com | @mmistakes + Free for personal and commercial use under the MIT license + https://github.com/mmistakes/minimal-mistakes/blob/master/LICENSE.txt +--> +<html lang="cn" class="no-js"> + <head> + <meta charset="utf-8"> + +<!-- begin SEO --> + + + + + + + + + +<title>æ头ç¼çéçç³»ç»è¯¥å¦ä½æ¹é ï¼ - Apache incubator ServiceComb</title> + + + + +<meta name="description" content="å¾®æå¡æ¯å¦æ¯ä¸çæå¾ å·²ä¹ çä¼ä¸æ¶æ解å³æ¹æ¡ï¼å¨å¯¹éçç³»ç»è¿è¡å¾®æå¡çæ¹é è¿ç¨ä¸åå¨ææ ·çå°é¾åææï¼åºè¯¥æ³¨æäºä»ä¹ï¼"> + + + + +<meta name="author" content="Wang Lei"> + +<meta property="og:locale" content="cn"> +<meta property="og:site_name" content="Apache incubator ServiceComb"> +<meta property="og:title" content="æ头ç¼çéçç³»ç»è¯¥å¦ä½æ¹é ï¼"> + + + <link rel="canonical" href="http://github.com/pages/ServiceComb/servicesomb.github.io/cn/docs/how-to-reform-a-legacy-system/"> + <meta property="og:url" content="http://github.com/pages/ServiceComb/servicesomb.github.io/cn/docs/how-to-reform-a-legacy-system/"> + + + + <meta property="og:description" content="å¾®æå¡æ¯å¦æ¯ä¸çæå¾ å·²ä¹ çä¼ä¸æ¶æ解å³æ¹æ¡ï¼å¨å¯¹éçç³»ç»è¿è¡å¾®æå¡çæ¹é è¿ç¨ä¸åå¨ææ ·çå°é¾åææï¼åºè¯¥æ³¨æäºä»ä¹ï¼"> + + + + <meta name="twitter:site" content="@ServiceComb"> + <meta name="twitter:title" content="æ头ç¼çéçç³»ç»è¯¥å¦ä½æ¹é ï¼"> + <meta name="twitter:description" content="å¾®æå¡æ¯å¦æ¯ä¸çæå¾ å·²ä¹ çä¼ä¸æ¶æ解å³æ¹æ¡ï¼å¨å¯¹éçç³»ç»è¿è¡å¾®æå¡çæ¹é è¿ç¨ä¸åå¨ææ ·çå°é¾åææï¼åºè¯¥æ³¨æäºä»ä¹ï¼"> + <meta name="twitter:url" content=""> + + + <meta name="twitter:card" content="summary"> + + + + + <meta name="twitter:creator" content="@"> + + + + + + + + + + + + + <meta property="og:type" content="article"> + <meta property="article:published_time" content="2017-10-23T00:00:00+08:00"> + + + + + + + + + <script type="application/ld+json"> + { + "@context" : "http://schema.org", + "@type" : "Person", + "name" : "Apache incubator ServiceComb", + "url" : "http://github.com/pages/ServiceComb/servicesomb.github.io", + "sameAs" : null + } + </script> + + + + <meta name="google-site-verification" content="HvJjNd7vvJ-yjSTHlBiIWEYxp_Hrz-PYEY5Idz9LRcA" /> + + + + +<!-- end SEO --> + + +<link href="/feed.xml" type="application/atom+xml" rel="alternate" title="Apache incubator ServiceComb Feed"> + +<!-- http://t.co/dKP3o1e --> +<meta name="HandheldFriendly" content="True"> +<meta name="MobileOptimized" content="320"> +<meta name="viewport" content="width=device-width, initial-scale=1.0"> + +<script> + document.documentElement.className = document.documentElement.className.replace(/\bno-js\b/g, '') + ' js '; +</script> +<script src="https://cdnjs.cloudflare.com/ajax/libs/clipboard.js/1.7.1/clipboard.min.js"></script> +<script src="/assets/js/prism.js"></script> + +<script type="text/javascript" async + src="https://cdnjs.cloudflare.com/ajax/libs/mathjax/2.7.1/MathJax.js?config=TeX-MML-AM_CHTML"> +</script> + +<link rel="stylesheet" href="https://maxcdn.bootstrapcdn.com/bootstrap/4.0.0-beta/css/bootstrap.min.css" integrity="sha384-/Y6pD6FV/Vv2HJnA6t+vslU6fwYXjCFtcEpHbNJ0lyAFsXTsjBbfaDjzALeQsN6M" crossorigin="anonymous"> + +<script src="https://code.jquery.com/jquery-3.2.1.slim.min.js" integrity="sha384-KJ3o2DKtIkvYIK3UENzmM7KCkRr/rE9/Qpg6aAZGJwFDMVNA/GpGFF93hXpG5KkN" crossorigin="anonymous"></script> +<script src="https://cdnjs.cloudflare.com/ajax/libs/popper.js/1.11.0/umd/popper.min.js" integrity="sha384-b/U6ypiBEHpOf/4+1nzFpr53nxSS+GLCkfwBdFNTxtclqqenISfwAzpKaMNFNmj4" crossorigin="anonymous"></script> +<script src="https://maxcdn.bootstrapcdn.com/bootstrap/4.0.0-beta/js/bootstrap.min.js" integrity="sha384-h0AbiXch4ZDo7tp9hKZ4TsHbi047NrKGLO3SEJAg45jXxnGIfYzk4Si90RDIqNm1" crossorigin="anonymous"></script> +<!-- For all browsers --> +<link rel="stylesheet" href="/assets/css/main.css"> +<link rel="stylesheet" href="/assets/css/prism.css"> + +<!--[if lte IE 9]> + <style> + /* old IE unsupported flexbox fixes */ + .greedy-nav .site-title { + padding-right: 3em; + } + .greedy-nav button { + position: absolute; + top: 0; + right: 0; + height: 100%; + } + </style> +<![endif]--> + +<meta http-equiv="cleartype" content="on"> + + <!-- start custom head snippets --> + +<!-- insert favicons. use http://realfavicongenerator.net/ --> +<link href="https://fonts.cat.net/css?family=Roboto:400,500,700|Source+Code+Pro" rel="stylesheet"> +<script src="/assets/js/custom.js"></script> +<!-- end custom head snippets --> + + </head> + + <body class="layout--single"> + + <!--[if lt IE 9]> +<div class="notice--danger align-center" style="margin: 0;">You are using an <strong>outdated</strong> browser. Please <a href="http://browsehappy.com/">upgrade your browser</a> to improve your experience.</div> +<![endif]--> + <div class="masthead"> + <div class="masthead__inner-wrap"> + <div class="masthead__menu"> + <nav id="site-nav" class="greedy-nav"> + + <a class="site-title active" href="/cn"><img src="//assets/images/ServiceComb-logo-1.png"></a> + + <ul class="visible-links"> + + + <li class="masthead__menu-item"> + + + + <a href="/cn/docs/quick-start/">å¿«éå ¥é¨</a> + + </li> + + + <li class="masthead__menu-item"> + + + + <a href="/cn/users/">ç¨æ·æå</a> + + </li> + + + <li class="masthead__menu-item"> + + + + <a href="/cn/developers/">å¼åè æå</a> + + </li> + + + <li class="masthead__menu-item"> + + + + <a href="/cn/year-archive/">åæ</a> + + </li> + + + <li class="masthead__menu-item"> + + + + <a href="/cn/faqs/">常è§é®é¢</a> + + </li> + + </ul> + <button><div class="navicon"></div></button> + <ul class="hidden-links hidden"></ul> + <div class="nav-lang"> + + + + <a href=/docs/how-to-reform-a-legacy-system/>English</a> + + </div> + </nav> + </div> + </div> +</div> + + + + + + +<div id="main" role="main"> + + <div class="sidebar sticky"> + + <div class="back-to-home">é¦é¡µ > <a href="/cn/">ServiceComb</a></div> + + + +<div itemscope itemtype="http://schema.org/Person"> + + + + <div class="author__content"> + <h3 class="author__name" itemprop="name">Wang Lei</h3> + + <p class="author__bio" itemprop="description"> + + + Happy Coding, Happy Life + + + </p> + + </div> + + <div class="author__urls-wrapper"> + <button class="btn btn--inverse">å ³æ³¨</button> + <ul class="author__urls social-icons"> + + + + <li> + <a href="https://wldandan.github.io" itemprop="url"> + <i class="fa fa-fw fa-chain" aria-hidden="true"></i> ç½ç« + </a> + </li> + + + + <li> + <a href="mailto:wanglei...@huawei.com"> + <meta itemprop="email" content="wanglei...@huawei.com" /> + <i class="fa fa-fw fa-envelope-square" aria-hidden="true"></i> çµåé®ç®± + </a> + </li> + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + <!-- + <li> + <a href="http://link-to-whatever-social-network.com/user/" itemprop="sameAs"> + <i class="fa fa-fw" aria-hidden="true"></i> Custom Social Profile Link + </a> + </li> +--> + </ul> + </div> +</div> + + + </div> + + + + <article class="page" itemscope itemtype="http://schema.org/CreativeWork"> + <meta itemprop="headline" content="æ头ç¼çéçç³»ç»è¯¥å¦ä½æ¹é ï¼"> + <meta itemprop="description" content="å¾®æå¡æ¯å¦æ¯ä¸çæå¾ å·²ä¹ çä¼ä¸æ¶æ解å³æ¹æ¡ï¼å¨å¯¹éçç³»ç»è¿è¡å¾®æå¡çæ¹é è¿ç¨ä¸åå¨ææ ·çå°é¾åææï¼åºè¯¥æ³¨æäºä»ä¹ï¼"> + <meta itemprop="datePublished" content="October 23, 2017"> + <meta itemprop="dateModified" content="October 23, 2017"> + + <div class="page__inner-wrap"> + + + <header> + <h1 class="page__title" itemprop="headline">æ头ç¼çéçç³»ç»è¯¥å¦ä½æ¹é ï¼ +</h1> + + <p class="page__meta"><i class="fa fa-clock-o" aria-hidden="true"></i> + + + + + å°äº 1 åé é 读 + +</p> + + </header> + + + + <section class="page__content" itemprop="text"> + <p>éçRESTfulãäºè®¡ç®ãDevOpsãæç»äº¤ä»çæ¦å¿µçæ·±å ¥äººå¿ï¼å¾®æå¡ï¼Microservicesï¼éæ¸æ为系ç»æ¶æçä¸ä¸ªä»£åè¯ãé£ä¹å¾®æå¡æ¯å¦æ¯ä¸çæå¾ å·²ä¹ çæ¶æ解å³æ¹æ¡ï¼å¨å¯¹éçç³»ç»è¿è¡å¾®æå¡çæ¹é è¿ç¨ä¸åå¨ææ ·çå°é¾åææï¼åºè¯¥æ³¨æäºä»ä¹ï¼å¨è¯¥å享ä¸ï¼çç£å°éè¿å®é çæ¡ä¾ï¼è·å¤§å®¶æ¢è®¨ä½¿ç¨å¾®æå¡æ¹é éçç³»ç»çå®è·µä¹è·¯ã</p> + +<ul> + <li>ä»ä¹æ¯å¾®æå¡</li> + <li>å¾®æå¡çè¯çèæ¯</li> + <li>éçç³»ç»çå¾®æå¡æ¹é çç¥</li> + <li>å¾®æå¡æ¹é ä¹è·¯</li> +</ul> + +<h2 id="èæ¯">èæ¯</h2> +<p>ä»ä¹æ¯ç³»ç»æ¶æ设计ï¼</p> + +<p>ä¸ç´ä»¥æ¥ï¼ç³»ç»æ¶æ设计æ¯ITé¢åç»ä¹ ä¸è¡°çè¯é¢ä¹ä¸ï¼æ¯æ¯ä¸ªç³»ç»æ建è¿ç¨ä¸æå ¶å ³é®çä¸é¨åï¼å®å³å®äºç³»ç»æ¯å¦è½å¤è¢«æ£ç¡®ãææçæ建ãæ¶æå¸ä»¬ä¹ä¸ç´å¨æç»æ¢ç´¢ï¼å¯»æ¾æ´ä¼ç§çæ¶æ设计æ¹å¼æ¥æ建系ç»ã</p> + +<p>é£ä»ä¹æ¯ç³»ç»çæ¶æ设计ï¼å¯¹äºè¿ä¸ªé®é¢ï¼æç¸ä¿¡æ¯ä¸ªæåé½ä¼æä¸åçå®ä¹ï¼å®é ä¸ï¼ä¹å¹¶æ²¡æä¸ä¸ªæ åççæ¡æ¥è§£éä»ä¹æ¯æ¶æ设计ã</p> + +<p>åºäºæè¿å»çç»éªåå·¥ä½æ¹å¼ï¼æ认为系ç»æ¶æ设计çæ¬è´¨ï¼æ¯å¨åºç¨ç³»ç»å é¨æ¾å°è¿æ ·ä¸ä¸ªå¨æ平衡ï¼å¹³è¡¡ä¸å¡ãææ¯ãå¢éçåæ¶ï¼èèç³»ç»çµæ´»æ§ãå¯æ©å±æ§ä»¥åå¯ç»´æ¤æ§çå ç´ ï¼å¹¶å°åºç¨ç³»ç»ååæä¸åçé¨åï¼ä½¿è¿äºé¨åå½¼æ¤ä¹é´ç¸äºåå·¥ãç¸äºåä½ï¼ä»è为ç¨æ·æä¾æç§ç¹å®çä»·å¼çæ¹å¼ã</p> + +<p>éçRESTfulãäºè®¡ç®ãDevOpsãæç»äº¤ä»çæ¦å¿µçæ·±å ¥äººå¿ï¼<strong>å¾®æå¡æ¶æéæ¸æ为系ç»æ¶æçä¸ä¸ªä»£åè¯</strong>ã</p> + +<h2 id="ä»ä¹æ¯å¾®æå¡æ¶æ">ä»ä¹æ¯å¾®æå¡æ¶æ</h2> +<p>2015å¹´ï¼å¾®æå¡æ¶æè¿ä¸ªè¯ï¼ä»¥ç¸å½é«çé¢çåºç°å¨åç§æ¼è®²ãæç« ãä¼è®®ã社åºä¸ãè¿éï¼æå å大家快éå顾ä¸ä¸ï¼Martin Fowler对微æå¡çæ½è±¡ã</p> + +<p><img src="/assets/images/microservice_definition_by_martin_folwer.jpeg" alt="" /></p> + +<p>å¦ä¸æ示ï¼å¾®æå¡æ¶æçæ ¸å¿åè¦ç´ ï¼æç¨çº¢è²æ 注åºæ¥äºãå¦æç¿»è¯æä¸æï¼å¤§è´å¦ä¸æ示ï¼</p> + +<blockquote> + <p>å¾®æå¡æ¶ææ¯ä¸ç§æ¶æ模å¼ï¼å®æå¡å°åä¸åºç¨ç¨åºååæä¸ç»å°çæå¡ï¼æå¡ä¹é´äºç¸åè°ãäºç¸é åï¼ä¸ºç¨æ·æä¾æç»ä»·å¼ã æ¯ä¸ªæå¡è¿è¡å¨å ¶ç¬ç«çè¿ç¨ä¸ï¼æå¡ä¸æå¡é´éç¨è½»é级çéä¿¡æºå¶äºç¸åä½ï¼é常æ¯åºäºHTTPåè®®çRESTful APIï¼ã æ¯ä¸ªæå¡é½å´ç»çå ·ä½ä¸å¡è¿è¡æ建ï¼å¹¶ä¸è½å¤è¢«ç¬ç«çé¨ç½²å°ç产ç¯å¢ãç±»ç产ç¯å¢çã å¦å¤ï¼å¯¹å ·ä½çæå¡èè¨ï¼åºæ ¹æ®ä¸å¡ä¸ä¸æï¼éæ©åéçè¯è¨ãå·¥å ·å¯¹å ¶è¿è¡æ建ã</p> +</blockquote> + +<p>æ»ç»æä¸å¥è¯å°±æ¯<strong>å¾®æå¡æ¯å´ç»ä¸å¡æ建çç»ç²åº¦çåå¸å¼ç³»ç»</strong>ã</p> + +<h2 id="å¾®æå¡çè¯çèæ¯">å¾®æå¡çè¯çèæ¯</h2> +<p>2015å¹´ï¼å¾®æå¡çªç¶ç«äºï¼ä¸ºä»ä¹ï¼</p> + +<p>å ¶å®å¾®æå¡æ¶æ并ä¸æ¯ææ¯åæ°ï¼èæ¯ITåå±å°ç°é¶æ®µå¯¹ææ¯æ¶æçä¸ç§ééã</p> + +<p>å®è¦æ±å æ¬<strong>å¿«éåä¸å¡å¯¹é½ï¼aligning businessï¼ãç解åæ½è±¡ä¸å¡ï¼åºäºé¢å建模ï¼ãå¿«éå¼åï¼LeanãAgileï¼ãå¿«éåé¦å交ä»ï¼CIãCDãDevOpsï¼</strong>ã</p> + +<p>æ以说ï¼å¾®æå¡å¹¶ä¸æ¯ææ¯ï¼èæ¯å°åæ´ä¸ºé¶ï¼æ称åæ²»ï¼ææ³æ¢äºä¸ç§è¯´æ³ï¼æ 论æ¯æä¸ä¸ªå¤§åç³»ç»åå²æå¤ä¸ªå°èèªæ²»çç³»ç»ï¼è¿æ¯æä¸ä¸ªå¤§åå¢éåæå¤ä¸ªå¢éï¼ææ¯æä¸ä¸ªå¤æç项ç®åæå¤ä¸ªäº¤ä»é¶æ®µé½æ¯è¿ç§ææ³çè¿ç¨ã</p> + +<p>å½ç¶ï¼ä»»ä½æ°äºç©çè¯çï¼æ»ä¼æä¸ä¸ªæ¨å¨å ç´ ãå¾®æå¡çè¯çä¹å¹¶éå¶ç¶ãå®æ¯äºèç½é«éåå±ï¼ææ¯æ¥æ°æå¼çåå以åä¼ ç»æ¶ææ æ³éåºå¿«éååçå¤éå ç´ çæ¨å¨ä¸æè¯çç产ç©ã</p> + +<p>åºäºä¸ªäººçç解ï¼æå°å¾®æå¡çè¯çå ç´ æ»ç»ä¸ºå¦ä¸å ç¹ï¼</p> + +<p><img src="/assets/images/why_microservice_show_up.jpeg" alt="" /></p> + +<ol> + <li> + <p><strong>äºèç½è¡ä¸çå¿«éåå±</strong></p> + + <p>è¿å»çåå¹´ä¸ï¼äºèç½å¯¹æ们çç活产çäºç¿»å¤©è¦å°çååï¼è¶æ¥è¶å¤çä¼ ç»è¡ä¸å ¬å¸ä¹å¼å§ä¾èµäºèç½ææ¯æé å ¶æ ¸å¿ç«äºä¼å¿ã</p> + + <p>å¨è¿ç§æ åµä¸ï¼å¦ä½ä»ç³»ç»æ¶æçè§åº¦åºåï¼æ建çµæ´»ãææ©å±çç³»ç»ï¼å¿«éåºå¯¹éæ±çååï¼åæ¶ï¼éçç¨æ·éçå¢å ï¼å¦ä½ä¿è¯ç³»ç»çå¯ä¼¸ç¼©æ§ãé«å¯ç¨æ§ï¼æ为系ç»æ¶æé¢ä¸´çææã</p> + </li> + <li> + <p><strong>ååæ¶æç³»ç»é¢ä¸´çææ</strong></p> + + <p>éçç¨æ·éæ±ä¸ªæ§åã产åçå½å¨æåçãå¸åºéæ±ä¸ç¨³å®çå ç´ çåºç°ï¼ååæ¶æç³»ç»é¢ä¸´çè¶æ¥è¶å¤çææãå¦ä½æ¾å°ä¸ç§æ´ææçãæ´çµæ´»ãéåºéæ±çç³»ç»æ¶ææ¹å¼ï¼æä¸ºå¤§å®¶å ³æ³¨çç¦ç¹ã</p> + </li> + <li> + <p><strong>ææ·ãç²¾çæ¹æ³ãæç»äº¤ä»çæ·±å ¥äººå¿</strong></p> + + <p>å¨ITè¡ä¸åå±çè¿å»åå¹´ï¼ææ·ãç²¾çãæç»äº¤ä»çä»·å¼è§ãæ¹æ³è®ºçæåºä»¥åå®è·µï¼è®©å¾å¤ç»ç»æè¯å°åºåå¸åºååãæé«ååºåçéè¦æ§ï¼åºè¯¥æ建软件交ä»å¨æçéç¯ï¼åæãå¼åãæµè¯ãé¨ç½²ãè¿ç»´ãçæ§ãè¿è¥ï¼ï¼èä¸ä» ä» æ¯æé«å¼åé¶æ®µçæçã</p> + + <p><strong>ç²¾çåä¸ï¼Lean Startupï¼</strong>帮å©ç»ç»åæ并建ç«æå°å¯å®è¡äº§åï¼MinimumViableProductï¼ï¼éè¿è¿ä»£æç»æ¹è¿ææ·æ¹æ³å¸®å©ç»ç»æ¶é¤æµªè´¹ï¼éè¿åé¦ä¸ææ¾å°æ£ç¡®çæ¹åã</p> + + <p><strong>æç»äº¤ä»</strong>å帮å©ç»ç»æ建æ´å¿«ãæ´å¯é ãå¯é¢ç¹åå¸ç交ä»æºå¶å¹¶æ建产å交ä»éç¯ã</p> + + <p>大é¨åç»ç»å·²ç»åºæ¬ä¸å½¢æäºä¸å¥å¯å®æ½ç交ä»ä½ç³»ãå æ¬æç»éæãèªå¨åæµè¯ãæ°æ®ç®¡çãèªå¨åé¨ç½²æºå¶çã</p> + + <p>è¿æ¶åï¼å¤§æ³¥çå¼çååæ¶æï¼ä¼éæ¸æ为影å交ä»å¨æè¿ä¸æ¥ä¼åçç¶é¢ï¼å æ¤å¦ä½æ¾å°çµæ´»æ§é«ãæ©å±æ§å¥½çæ¶ææ¹å¼ï¼ä¹æ为è¿ä¸æ¥ä¼å交ä»å¨æé¢ä¸´çææã</p> + </li> + <li> + <p><strong>Dockerç容å¨èæåææ¯çå¿«éåå±</strong></p> + + <p>åä¼ ç»çèæåææ¯ç¸æ¯ï¼åºäºå®¹å¨ææ¯çDockerï¼ä¸éè¦å¤æçHypervisoræºå¶æ¯æï¼å ·ææ´é«çèæåæ§è½åæçã</p> + + <p>åæ¶å®¹å¨å¯ä»¥å¾å®¹æçè¿è¡å¨ä»»æçè£ æDockerEngineçç³»ç»ä¸ï¼ä½¿å¾å¼å人åè½å¤ç¨æ´ä½çææ¬å°åºç¨ç¨åºé¨ç½²å¨ä¸åå¹³å°ä¸ã</p> + </li> + <li> + <p><strong>DevOpsæå</strong></p> + + <p>DevOpsæåçæ¨è¡æç ´äºä¼ ç»å¼åä¸è¿ç»´ä¹é´çå£åï¼å¸®å©ç»ç»å½¢æå¼åãè¿ç»´ç´§å¯é åçãå ¨åè½åçé«æå¢éï¼å¹¶å°½æ©éä½è½¯ä»¶äº¤ä»æåä¸å ¬éçé£é©ã</p> + </li> +</ol> + +<h2 id="éçç³»ç»çå¾®æå¡æ¹é çç¥">éçç³»ç»çå¾®æå¡æ¹é çç¥</h2> +<p>èå®ä»ä¹æ¯å¾®æå¡æ¶æ以åå ¶è¯çèæ¯ï¼æ¥ä¸æ¥æ们æ¥è°è°å¦ä½æ¹é éçç³»ç»ã</p> + +<p>å¨è¿å»ç10å¤å¹´é´ï¼å¤§é¨åå·¥ä½æ¶é´æé½å¨åéçç³»ç»æ交éãæç¸ä¿¡å¾å¤æåä¹æ¯å·¥ä½å¨å·²ç»è¿è½¬å¤å¹´çéçç³»ç»ä¸ã</p> + +<p>对äºè¿ç±»ç³»ç»ï¼å½è°è®ºä½¿ç¨å¾®æå¡å¯¹å ¶è¿è¡æ¹é æ¶ï¼æ认为è¦è°¨è®°ä¸ç¹ï¼</p> + +<p><strong>æ¹é ä¸æ¯éåã</strong></p> + +<p><strong>å¨æ¹é çè¿ç¨ä¸ï¼è¦å§ç»ä»¥ä¿è¯ç³»ç»ä¸ºç¨æ·æä¾çä¸å¡ä»·å¼å¯ç¨ä½ä¸ºé¦è¦ç®æ ã</strong>ä»è¿ä¸ªç¹åºåï¼åºäºæçç»éªï¼å¯¹å¾®æå¡æ¹é ççç¥æ»ç»ä¸ºå¦ä¸äºä¸ªæ¥éª¤ï¼</p> + +<p><img src="/assets/images/microservice_reform_strategy.jpeg" alt="" /></p> + +<ol> + <li> + <p>èå´å®ä¹</p> + + <p>对äºéçç³»ç»èè¨ï¼é常ä¸å¡è¿è½¬æ¶é´è¾é¿ï¼è¬å¦5~8年以ä¸ï¼çè³æ´é¿ï¼ï¼å æ¤æ¶åçåè½ç¹æï¼ä»£ç ä¸åå¨å¤§éæ ææè è¿æ¶çéæ±ï¼ç¼ºé·ä¿®å¤ææ¬è¾é«ã</p> + + <p>å¦å¤ï¼ç³»ç»å¨æ¼è¿çè¿ç¨ä¸ï¼ä¹ä¼æç»ä¸ºç¨æ·æä¾æ°çåè½åä»·å¼ãå æ¤ï¼åååºæ¸ æ°çèå´é常éè¦ã</p> + + <p>å®é ä¸ï¼èå´å®ä¹ä¸»è¦å æ¬ä¸¤é¨åï¼</p> + + <ol> + <li> + <p>æç¡®ä¸å¡æ¹é èå´</p> + + <p>æè°æ¹é èå´ï¼å°±æ¯ç¡®å®æ们常说çä¸å¡è¯ç¹ãé常ï¼ä½ä¸ºå次å°è¯å¾®æå¡å®è·µçç»ç»ï¼å»ºè®®éåä¸å¡èå´å½±åè¾å°ãéå ³é®åè½çè¯ç¹ï¼è¿æ ·åä¹æ¯ä¸ºäºç¡®ä¿å¨ä¸å½±åæ ¸å¿ä¸å¡çæ åµä¸å¿«éå°è¯å¹¶è·å¾åé¦ã</p> + </li> + <li> + <p>æç¡®æå责任èå´</p> + + <p>æç¡®æå责任èå´ï¼ç¡®å®ç±è°æ¥æ¹é ï¼ç¡®ä¿æ¹é çç®æ æ¸ æ°ã</p> + + <p>å®é ä¸ï¼å¯¹äºäº§åèè¨ï¼éçç³»ç»çç»´æ¤åæ´æ°ï¼å æ¬ç¼ºé·å®ä½ã缺é·ä¿®å¤ãæ°æ®æ´æ°ãåè½å®ç°ãæµè¯ã交ä»ç»è¿ç»´å¢éçï¼é常已ç»è®©å¢éçå·¥ä½å¤äºé«è´è·ç¶æãå æ¤ï¼éè¦ç¡®å®æåï¼å ¨èº«å¿çæå ¥ï¼ä»¥å¾®æå¡æ¹é ä½ä¸ºçæç®æ ã</p> + </li> + </ol> + </li> + <li> + <p>åè½å¥ç¦»</p> + + <p>æäºæç¡®çä¸å¡èå´ï¼æåä¹æäºæ¸ æ°ç责任ï¼æ¥ä¸æ¥å°±éè¦å°é¨ååè½ç¹è¿è¡å¥ç¦»ã</p> + + <p>æè°å¥ç¦»ï¼å°±æ¯å°éä¸çåè½ä»åæçç³»ç»ä¸æååºæ¥ï¼å¹¶æ建æç¬ç«çæå¡ãå¨è¿ä¸ªé¶æ®µï¼ä¸»è¦å æ¬ä¸¤ç¹ï¼</p> + + <ol> + <li> + <p>å°åè½ä»åæç³»ç»æååºæ¥ï¼å¹¶æ建æ°æå¡</p> + + <p>ä¸æå°æåï¼å¾å¤æåä¼çº ç»ï¼âç³»ç»å¤æï¼å¦ä½æåå¾®æå¡æ好ï¼æä¹æ ·çæåæåçï¼âãå ¶å®ï¼ä»æ个人çè§ç¹æ¥çï¼è¿æ¶åè¿ä¸æ¯çº ç»æå¡å°åºæä¹åååççæ¶åã为ä»ä¹ï¼</p> + + <ol> + <li> + <p>好çæ¶ææ¯å¨ææ¼ååè¿ä»£åºæ¥çï¼ä¸å¡å¨ä¸ææ¹åï¼ææ¯åå·¥å ·ä¹å¨ä¸ä¼çå级æ¢ä»£ï¼æ²¡æå®ç¾çæ¶æï¼åªææ éé¼è¿å®ç¾çå¨æ平衡ï¼æ以å å°èå´ãä½ææ¬å¨èµ·æ¥ï¼å¨è¿è½¬ä¸æ¾å¹³è¡¡ç¹ã</p> + </li> + <li> + <p>å¾®æå¡çå¤æ度å¨äºåå¸å¼ç³»ç»æ¬èº«ï¼ä»¥åå ¶çæç³»ç»ï¼å¼åãæµè¯ãé¨ç½²ãè¿ç»´ãçæ§ãåè¦ï¼çæ建ã</p> + </li> + <li> + <p>å¢éæåçå½¢ææ¯ä¸ä¸ªç¸å¯¹æ¼«é¿çè¿ç¨ï¼å¦æè±å¾å¤§åæ°å ³æ³¨æå¡æä¹æï¼è没æèç¦å¨çæç³»ç»çæ建以åå¢éæåçå½¢æä¸ï¼å®é ä¸æ¯èæ¬éæ«ãå³ä¾¿æååºäºä¸åçæå¡ï¼å¨è½å°çæ¶åä¹ä¼éå°è¯¸å¤é®é¢ãæ以ï¼æ¾ä¸ä¸ªåè½ç¹å æï¼ç¶åæ建æç»äº¤ä»æµæ°´çº¿ï¼å¿«éè¯éï¼å»ºç«å¥½ææçåé¦éç¯æºå¶ï¼åä¸æ寻æ¾å¨æ平衡ï¼æååºæ´ç»çæå¡æè å°ä¸åççæå¡å并ã</p> + </li> + </ol> + </li> + <li> + <p>å¨åæçç³»ç»å端ï¼ä½¿ç¨ä»£çæºå¶ï¼å¹¶ä½¿ç¨éçç³»ç»åæ°æå¡ç»å为ç¨æ·æä¾ä»·å¼</p> + + <p>è¿ä¸æ¥ï¼ç®çæ¯ä½¿ç¨ç»åçç³»ç»ï¼éçç³»ç»+æ°çæå¡ï¼ä¸ºç¨æ·æä¾ä»·å¼ã</p> + + <p>对äºWebç³»ç»ï¼é常å¯ä»¥å¨å端使ç¨ç´æ¥è¯·æ±æ°çæå¡ãä¹å¯ä»¥å¨å端使ç¨è½¬å请æ±ï¼è·åæ°æå¡æä¾çæ°æ®ã</p> + + <p>å¦ä¸å¾æ示ï¼</p> + + <p><img src="/assets/images/microservice_reform_strategy.jpeg" alt="" /></p> + </li> + </ol> + </li> + <li> + <p>æ°æ®è§£è¦</p> + + <p>å¨ä»¥åçéçç³»ç»æ建è¿ç¨ä¸ï¼é常使ç¨æ°æ®åºä½ä¸ºéæç¹ï¼ä¸ååè½/ç³»ç»ä¹é´éè¿æ°æ®åºå®ææ°æ®äº¤æ¢ã对äºæäºç³»ç»ï¼è¿å¤§é使ç¨åå¨è¿ç¨å®æä¸å¡é»è¾ï¼å¼åçæ¶åçä¼¼æçé«ï¼ä½å å¹´ä¸æ¥ï¼DBAæäºITå¢éææä¸å¡ç人ï¼ç»´æ¤æ为ç¶é¢ã</p> + + <p>èå®é ä¸ï¼ä¸å¡çæ°æ®æ¯ä¸å¡åºæçç»æé¨åï¼åºå½éçä¸å¡çååèååãä¸å¡æååºæ¥ï¼æ°æ®ä¹åºè¯¥æååºæ¥ãä»èä¿è¯è®¿é®æ°æ®åªè½éè¿ç»ä¸çç¸å ³ä¸å¡APIå®æã便äºå¨å°æ¥çä¸å¡åæ¶ææ¼è¿ä¸ï¼ææç对æ°æ®ç»´æ¤ã管çåå级ã</p> + </li> + <li> + <p>æ°æ®åæ¥</p> + + <p>æ°æ®åæ¥ï¼æ¯ä¸ä¸ªä»·å¼ä½ç°çè¿æ¸¡è¿ç¨ã</p> + + <p>ä¸æ¹é¢ï¼éçç³»ç»çæ¹é ä¸åå¨çåç§åæ ·çææåæ们ä»å¤©è®¤ä¸ºçä¸åçï¼å½æ¶çåºæ¯ä¹è®¸æ¯åççï¼ãå¦ä¸æ¹é¢ï¼å¯¹äºå¤§é¨åéççç³»ç»ï¼é½ä¼ä½¿ç¨æ°æ®åºä½ä¸ºéæç¹ï¼å¼åææ¬ä½ï¼ï¼å¯¼è´æä¸å¡åè½çæ°æ®ä¸å ¶ä»åè½æçåä¸ä¸ç¼çèç³»ï¼æ°æ®çåå容æå¯¹å ¶ä»åè½é æå½±åã</p> + + <p>å æ¤å¯¹äºå¤§åçéçç³»ç»ï¼å¾é¾å¨çæçæ¶é´å ï¼3~6个æï¼å®æå ¨ç³»ç»çæ¹é ãéè¦ä¸ä¸ªç¸å¯¹æ¼«é¿ï¼å¾ªåºæ¸è¿çè¿ç¨æ¥å®ææ¹é ã</p> + + <p>è¬å¦ï¼å¨çµåç³»ç»ä¸ï¼å家çåå°ç®¡çç³»ç»ä¸ç产åãä»·æ ¼çæ´æ°ï¼ä¼åå¸å°é¢åç¨æ·ççµåæ索系ç»ä¸ä»¥åå ¶ä»ç³»ç»ä¸ãå¦ææ们å°ç³»ç»ä¸ç产åç¸å ³æåæç¬ç«æå¡ï¼åå¿ é¡»ä¹è¦æåæ°æ®åå¸æºå¶ï¼å¦åçè¯å®¹æé ææ°æ®ä¸ä¸è´ãä½æåæ°æ®åå¸æºå¶ï¼åéè¦åææ¸ æ¥ä¸åæ°æ®ä¹é´çå½±ååä¾èµï¼éè¦æ´å¤§çææ¬ï¼çæå ä¸æå®æã</p> + + <p>è¿æ¶åï¼å¦æå°æ°æå¡çæ°æ®åæ¥ååæçæ°æ®åºï¼éç¨è¿æ ·ä¸ä¸ªæä¸ççè¿ç¨ï¼æ¢è½ä¿éæ°çæå¡åæ°æ®è¢«ç¬ç«ï¼åä¸å½±ååæçéçç³»ç»åè½ã</p> + + <p>说ç½äºï¼è¿å ¶å®ä¹æ¯å¨ä¿è¯ç³»ç»ä¸ºç¨æ·æä¾çä¸å¡ä»·å¼ä¸è¢«ç ´åã</p> + + <p>æäºä¹åçå°è¯ï¼æ¥ä¸æ¥å°±æ¯éè¿ä¸æçè¿ä»£ï¼å®æåè½å¥ç¦»ï¼æ°æ®è§£è¦ãæ°æ®åæ¥ï¼ä»èå°æ´å¤çåè½æåæç¬ç«çæå¡ã</p> + </li> +</ol> + +<p><img src="/assets/images/legacy_system_reform_strategy.jpeg" alt="" /></p> + +<p>å¦ä¸å°±æ¯æ对äºéçç³»ç»æ¹é ççç¥ã</p> + +<h2 id="éçç³»ç»æ¹é å®è·µ">éçç³»ç»æ¹é å®è·µ</h2> +<p>æ¥ä¸æ¥ï¼æå大家å享ä¸ä¸ªææç»åçéçç³»ç»æ¹é çæ¡ä¾ãé¦å ï¼è®©æ们ççè¿ä¸ªç³»ç»çèæ¯åä¸äºæ°æ®ã</p> + +<h3 id="客æ·èæ¯">客æ·èæ¯</h3> + +<p><a href="http://movit-tech.com/">çæ软件</a>æ¯ä¸å½æ¿å°äº§è¡ä¸ITæå¡åè¡ä¸è§£å³æ¹æ¡å产åçé¢å å家ï¼å ¶ä¾æ®å¸åºååæ¨åºå ¨æ°åæ¿çæ°è¥é模å¼ï¼æ£ä»çº¿ä¸çä¼ ç»ç°åºå®æ¥¼æ¨¡å¼å线ä¸çæ¿å°äº§çµå模å¼è¿è¡è½¬åã</p> + +<h3 id="ä¸å¡çç¹">ä¸å¡çç¹</h3> + +<p>å½ä»æ¿å°äº§è¡ä¸åç°çæå¼çå³°å¼ãåæé¶ææ£å®¢çä¸å¡ç¹æ§ãå ¶é¢ä¸´çé«æ线ä¸è¿è¥ææ¬ï¼è¥éææ¬å éå®é¢>5%ãèç±æ¤å¼å ¥ç线ä¸ç«ä»·ç§æè¥é模å¼ï¼ä¼ ç»IT解å³æ¹æ¡çç³»ç»èµæºçãå³°å¼æ©å®¹è½åå°æ æ³æ»¡è¶³ã</p> + +<p><img src="/assets/images/case_mengtuo_traditional_mode.png" alt="" /></p> + +<h3 id="ç³»ç»æ¦è§">ç³»ç»æ¦è§</h3> + +<p>ç³»ç»ä¸ºå ¸åçä¸å±ååæ¶æï¼ä½¿ç¨MySQLæ°æ®åºåå¨æ°æ®ãè¿è¡å¨æå¡å¨ä¸çåºç¨å¤çæ§è½è¾ä½ï¼ä¸ºäºåºå¯¹çæç访é®é«å³°ï¼é¢å¤è´ç½®äºè¾å¤çæå¡å¨èµæºï¼è®¿é®é«å³°è¿åï¼æå¡å¨èµæºé²ç½®é æè¾å¤§æµªè´¹ï¼ä¸éè¦è¾å¤äººåç»´æ¤ã</p> + +<h3 id="ç¸å ³æ°æ®">ç¸å ³æ°æ®</h3> + +<ul> + <li> + <p>代ç 约<strong>100ä¸</strong>è¡ï¼æµè¯è¦çç为<strong>10%</strong>ï¼éææµè¯æ¶é´ä¸º<strong>ä¸ä¸ªæ</strong></p> + + <p>代ç èè¿ï¼æ æéç代ç è¾å¤ï¼ä¸ä¸å¡é´ç´§è¦åï¼æµè¯è¦ççè¾ä½ï¼æµè¯åºé®é¢äºé¾ä»¥å®ä½ï¼å¯¼è´æµè¯èæ¶è¾é¿ã</p> + </li> + <li> + <p>è¥éé¢æ¡é<strong>æå1个æ</strong>åå¤èµæº</p> + + <p>为åºå¯¹è®¿é®é«å³°ï¼æ¯æ¬¡é½éè¦é¢è´å¤§éçæå¡èµæºï¼éæ°é¨ç½²ç¯å¢ï¼å¹¶è¿è¡ç¸å ³æµè¯ã</p> + </li> + <li> + <p>ä¸å¡è¦åç´§ï¼æ°ä¸å¡ä¸çº¿<strong>>åå¹´</strong></p> + + <p>æ¯æ¬¡æµè¯é½è¦å¤ä¸ªä¸å¡å¢éèåæµè¯ï¼é®é¢å®ä½è¾èæ¶ï¼æµè¯æçä½ã</p> + </li> + <li> + <p>ä¸ç¾ç§ä¸å¡ï¼2-3ç§å¼åè¯è¨</p> + + <p>ä¸å¡å¤æï¼ä¸è¯è¨ä¸ä¸ï¼ç³»ç»èè°æ¶èæ¶è¾å¤ä¸éç¸äºé åï¼æ¶é´å¨æè¾é¿ã</p> + </li> + <li> + <p>è¿ç»´å¢é<strong>>20人</strong></p> + + <p>èè¿çå¢é导è´é®é¢å®ä½éå¤æ¹é åï¼æ²éææ¬é«ã</p> + </li> +</ul> + +<p><strong>åºäºä¹åå®ä¹çæ¹é çç¥ï¼æ们çæ¹é è¿ç¨å¤§è´å¦ä¸æ示ï¼</strong></p> + +<p>èå´å®ä¹ï¼</p> + +<ul> + <li> + <p>å°åæ¿å°äº§CRMå¹³å°æä¸å¡ç±»å«æå为å¤ä¸ªå¾®æå¡ã</p> + + <p><img src="/assets/images/case_mengtuo_reform_before_and_after.png" alt="" /></p> + </li> +</ul> + +<p>åè½å¥ç¦»ï¼</p> + +<ul> + <li>ä»åä½CRMç³»ç»ä¸éæ¥æååºä¸å¡æ¨¡åï¼æå¡ç½å ³ã客æ·æå¡ãæ¿æºæå¡ãæºä¼æå¡ã积åæå¡ï¼ã</li> +</ul> + +<p>æ°æ®è§£è¦</p> + +<ul> + <li>æ¯ä¸ªå¾®æå¡çæ°æ®è¿è¡ç¬ç«åå¨ã</li> +</ul> + +<p>æ°æ®åæ¥</p> + +<ul> + <li>å¨è´è½½è¾ä½æ¶ï¼å°æ°æ®åæ¥ååæçéçç³»ç»ä¸ä¸æè¿ä»£ï¼éç»å®æåç»çæå¡ã</li> +</ul> + +<p>æ¹é è¿ç¨ä¸ï¼åºäºServiceCombï¼<strong>éè¿æ§å¶è¯·æ±è·¯ç±ï¼éæ¥æ¶ç©ºå¯¹ååä½åºç¨ç请æ±ï¼ å¹³æ»è¿æ¸¡ç³»ç»å°å¾®æå¡æ¶æã</strong></p> + +<p><strong>å个æå¡çæ建并没æé£ä¹å¤æï¼åºäºServiceCombï¼éè¿å¦ä¸çç®å4æ¥ï¼å³å¯å¿«éå®ææ¹é ï¼</strong></p> + +<ol> + <li>å¼å ¥<a href="https://github.com/ServiceComb/ServiceComb-Java-Chassis">ServiceComb Java Chassis</a>æ¡æ¶ä¾èµ</li> + <li>å®ä¹æå¡æ¥å£ç«¯ç¹</li> + <li>æ·»å æå¡é ç½®æ件</li> + <li>注éæå¡å¯å¨å ¥å£</li> +</ol> + +<p>å¦å¤ï¼éè¿Company Workshopä¸æä¾çDockeræ件é ç½®ï¼10åéå å®æäºæå¡å®¹å¨åï¼èªå¨çæéåã</p> + +<p>åæ¶ï¼å©ç¨ServiceCombå¼åçå¾®æå¡åºç¨ï¼å¯åæ¶æ ç¼æ¥å ¥<a href="https://www.huaweicloud.com/product/servicestage.html">ServiceStage</a>ï¼äº«åå°å¾®æå¡æ²»çã容å¨èæºæ··ç¼ãåºç¨ææçè½åã</p> + +<p>为åºå¯¹çæçä¸å¡é«å³°ï¼ç»å¸¸éè¦é¢è´å¤§éçèµæºæ¥æåé¨ç½²åéªè¯ç¯å¢ï¼è±è´¹å¤§éç人åç©åï¼ä¸èµæºå©ç¨çæä½ãå æ¤ï¼è¿è¡äºåæ¹é åç产åå解å³æ¹æ¡éè¦å ·å¤éçåä¸äººæ°å¢å èç§çº§ä¼¸ç¼©ï¼æ¯æä¸å¡å³°å¼åèµæºå©ç¨ççè½åãçæ软件åºäºå为ServiceStageçæ ¸å¿ææ¯å®¹å¨æ¹é ãæ··ç¼æ¹æ¡ãç¼æè°åº¦ç®æ³çè¿è¡å®¹å¨èæºæ··ç¼åºç¨äºåæ¹é ï¼å®ç°äºåºç¨çç§çº§é¨ç½²åå¼¹æ§ä¼¸ç¼©è½åï¼æ大å°æé«äºèµæºçå©ç¨çã</p> + +<p><strong>æ¹é åææï¼</strong></p> + +<ul> + <li>è¿ç»´äººå<strong>åå°80%</strong></li> + <li>èµæºå©ç¨ç<strong>æå50%</strong>ï¼å¤§å¹ éä½è¿è¥ææ¬</li> + <li><strong>æ¯ç§ä¸çº§</strong>è°ç¨é¾åæè½å</li> + <li>ä¼ ç»ç³»ç»ååºç¨å¹³æ»æ¹é ä¸äº</li> + <li>äºèç½è¥é模å¼ï¼å¤©ç²åº¦ä¸å¡å¿«éåæ°</li> +</ul> + +<p><img src="/assets/images/case_mengtuo_new_mode.png" alt="" /></p> + +<p><strong>ç论ä¸ï¼ç»è¿ä¸æå°è¿ä»£ï¼éæ¸å®æä¸å¡åè½è§£è¦ï¼æ°æå¡æ建ãé£ä¹éçç³»ç»å°±ä¼è¢«æ¿æ¢æã</strong></p> + +<h2 id="æ¹é è¦ç¹">æ¹é è¦ç¹</h2> +<p>å¨æ¹é çæ´ä¸ªè¿ç¨ä¸ï¼æ认为å¦ä¸å 个å®è·µæ¯é常éè¦çï¼</p> + +<p><img src="/assets/images/best_practices_for_legacy_system_reform.jpeg" alt="" /></p> + +<h3 id="åºç¡è®¾æ½èªå¨å">åºç¡è®¾æ½èªå¨å</h3> +<p>åæçé¨ç½²åçå¨æ°æ®ä¸å¿ï¼å æ¤æµç¨ä¸ç¸å¯¹å¤æï¼èä¸åå¨ä¸å®å¼ç«¯ï¼è¬å¦å®¡æ¹ååä½ä¸ï¼èµ·ä¸å°å®è´¨ä½ç¨ï¼ã对äºæ¹é åçæå¡èè¨ï¼æ们使ç¨æ´å¤çèªå¨åæ¹å¼ä»£æ¿å¤æç审æ¹æµç¨ãéè¿ä½¿ç¨å为ServiceStageä½ä¸ºåºç¡è®¾æ½ï¼å¢éè½å¤æ´èªä¸»ç对åºç¡è®¾æ½è¿è¡ç®¡çãå¦èµæºå建ãéæ¯ãæ´æ°çãéçæå¡çå¢å¤ï¼åºç¡è®¾æ½èªå¨å帮å©æ们èçäºå¤§éçæ¶é´ãå½ç¶ï¼ä»ç»ç»å±é¢ï¼ä¹æç«äºä¸é¨çå°ç»ç 究å为ServiceStage以åç¸å ³çDevOpsé å¥å·¥å ·ã</p> + +<p>ç®åï¼å½å å¤æå¾å¤ä¼ç§çäºå¹³å°ï¼å¯ä»¥æ¹ä¾¿ç为ç¨æ·æä¾åºç¡è®¾æ½çèªå¨åæºå¶ã</p> + +<h3 id="å¾®æå¡çæç³»ç»">å¾®æå¡çæç³»ç»</h3> +<p>å¾®æå¡ççæç³»ç»æ¯æå¾®æå¡å®æ½è¿ç¨ç¸å ³çåä½é¨åï¼æ¶åé¨åè¾å¤ï¼è¬å¦æµè¯æºå¶ãæç»éæãèªå¨åé¨ç½²ãç»ç²åº¦çæ§ãæ¥å¿èåãåè¦ãæç»äº¤ä»ï¼ä»¥å大家éå¸¸å ³æ³¨çæå¡æ³¨åãæå¡åç°æºå¶çã</p> + +<p>è¿é¨åççµæ´»æ§æ¯è¾å¤§ï¼å 为ç®åå¦ä¸è¯´çæ¯ä¸ä¸ªé¢åé½æå¾å¤ä¼ç§çå·¥å ·ãè¬å¦æ¥å¿èåç®åä¸ççæ¹æ¡é常为ELKï¼çæ§çæ¹æ¡å¦ZabbixãNewRelicãCloudWatchçï¼æçççæ§å·¥å ·é½å ·æåè¦åè½ï¼PagerDutyä¹æä¾æ´ä¸ä¸çåè¦æå¡ãæå¡æ³¨åååç°æServiceCombæ¡æ¶çService Centerï¼Eurekaï¼Consulï¼Zookeeperã大家å¯ä»¥å¨åèªçå¢éä¸èªç±åæ¥ã</p> + +<h3 id="å¼åæ¡æ¶çæ¼è¿">å¼åæ¡æ¶çæ¼è¿</h3> +<p>å¼åæ¡æ¶æ¯å¢éå¨æ建微æå¡çè¿ç¨ä¸ï¼ä¸ææ»ç»ï¼æ¢³çåºçå¿«éå¼åå¾®æå¡çç¸å ³å·¥å ·åæ¡æ¶ã</p> + +<p>æ们åºäºServiceCombæ建äºå¿«éå¼åæ¡æ¶ï¼ä¸»è¦å æ¬åé¨åï¼å¦ä¸å¾æ示ï¼</p> + +<p><img src="/assets/images/rapid_development_framework.png" alt="" /></p> + +<ol> + <li> + <p>å¾®æå¡å·¥ç¨ç¤ºä¾</p> + + <p>æä¾å¾®æå¡æ¹é æ¶ææä½³å®è·µåèå·¥ç¨Companyï¼ä½¿è½å¾®æå¡æ¹é æå¼åè½å¤ç¨å ¶æ¶æ设计åé ç½®ï¼åæ¶æ导å®ç°æå¡å®¹å¨åååç»æå¡æ§è½æµè¯çæé«æå¡å¯é æ§ã</p> + </li> + <li> + <p>å¥çº¦çæå·¥å ·</p> + + <p>ServiceCombéç¨äºåºäºOpenAPIçæå¡å¥çº¦ï¼ä½¿ä¸å¡é»è¾ä¸ç¼ç¨è¯è¨è§£è¦ï¼å¹¶å¯ä½¿ç¨Swaggerå·¥å ·å®ä¹æå¡å¥çº¦ï¼èªå¨çæå¥çº¦å¯¹åºç代ç åææ¡£ã</p> + </li> + <li> + <p>æç»éæ</p> + + <p>æç»éæ使ç¨äºJenkinsï¼éè¿å ¶é ç½®æ件å®ä¹ä¸»è¦çé¶æ®µï¼</p> + + <blockquote> + <p>éªè¯ï¼è¿è¡åå æµè¯ï¼éææµè¯</p> + + <p>æ建ï¼æ建å¯æ§è¡çjaré¨ç½²å </p> + + <p>é¨ç½²ï¼åºäºæå®çæ¬å¶ä½éåï¼å¹¶æ¨éå°æµè¯æç产ç¯å¢ä¸</p> + </blockquote> + + <p>å©ç¨è¿æ ·çæç»éæ模æ¿å·¥ç¨ï¼è±è´¹å¾å°çæ¶é´ï¼å°±å¯ä»¥é对æ°å»ºçå¾®æå¡åºç¨ï¼å¿«éé ç½®å ¶å¯¹åºçæç»éæç¯å¢ã</p> + </li> + <li> + <p>Kubernetesé群ä¸é®é¨ç½²</p> + + <p>Kubernetesæ¯è°·æå¼æºçä¸ä¸ªå®¹å¨é群管çå·¥å ·ãåºäºKubernetesï¼å¯å®ç°å¾®æå¡çå¿«éé¨ç½²åå¼¹æ§ä¼¸ç¼©ãæ们æä¾äºä¸é®é¨ç½²èæ¬ï¼é¨ç½²æ¶åªéç¨ä½ä¿®æ¹å³å¯éè¿ä¸æ¡å½ä»¤ï¼èªå¨å®æèµæºçå建ãé¨ç½²ãå¼¹æ§ä¼¸ç¼©ãéä¸éåå¸çã</p> + </li> +</ol> + +<h3 id="å¢éè¿ç»´èªç®¡ç">å¢éè¿ç»´èªç®¡ç</h3> + +<p>è¿ä¸é¨åæ¯å ³äºå¢éçæå管çãä¹æ¯å¯¹DevOPSç延伸ï¼æ们称为TMIï¼Team Managed Infrastructureï¼ã</p> + +<p>ç®çæ¯å°åæãå¼åãæµè¯ä»¥åèµæºå建ãéæ¯ãèªå¨åé¨ç½²çæå©äº¤ç»å¢éï¼ç±å¢éæéå®æé¨ç½²ï¼å ä¸çæ¿çæµç¨ç®¡çï¼èéScrumçåºå®è¿ä»£ï¼å¯ä»¥åå°ä¸å¤©é¨ç½²å¤æ¬¡ï¼ã</p> + +<p>å½ç¶ï¼è¿ä¸ªç¯èé常ä¾èµäºæçççæ§ä»¥ååè¦æºå¶ï¼å½åºç°é®é¢æ¶ï¼è½å¤ææçéç¥å°è´£ä»»äººï¼å¿«éåé¦ï¼å¿«éä¿®å¤ãå¢éå é¨ä¹ä¼å®æè½®æ¢Pagerï¼åºé®é¢æç«ç人ï¼ï¼å¹å »å¢é以æå¡å¯ç¨ä½ä¸ºå¤§å®¶çå ±åç®æ ï¼å¹å »äº§åè§å¿µï¼èé项ç®è§å¿µã</p> + +<p>åå顾ä¸ä¸è¿ä¸ªå¾ï¼</p> + +<p><img src="/assets/images/best_practices_for_legacy_system_reform.jpeg" alt="" /></p> + +<p>æåï¼å大家å享ä¸ä¸ï¼æ个人å¨å¾®æå¡å®æ½è¿ç¨ä¸æ»ç»ç4å¥æ¹é:</p> + +<p><strong>ç±å¤§å°å°ï¼ç±ç²å°ç»</strong></p> + +<p><strong>å ³æ³¨è¿ç»´ï¼å ³æ³¨çæ§</strong></p> + +<p><strong>å¿«éåé¦ï¼å¿«éä¿®å¤</strong></p> + +<p><strong>循åºæ¸è¿ï¼å¢éå®ç°</strong></p> + + + </section> + + <footer class="page__meta"> + + + + + + + + + + <p class="page__taxonomy"> + <strong><i class="fa fa-fw fa-tags" aria-hidden="true"></i> æ ç¾: </strong> + <span itemprop="keywords"> + + + + <a href="/tags/#%E7%B3%BB%E7%BB%9F%E6%94%B9%E9%80%A0" class="page__taxonomy-item" rel="tag">ç³»ç»æ¹é </a> + + </span> + </p> + + + + + + + + + <p class="page__date"><strong><i class="fa fa-fw fa-calendar" aria-hidden="true"></i> ææ°ç:</strong> <time datetime="2017-10-23">2017å¹´10æ23æ¥</time></p> + + + + </footer> + + <section class="page__share"> + + <h4 class="page__share-title">å享</h4> + + + <a href="https://twitter.com/intent/tweet?via=ServiceComb&text=æ头ç¼çéçç³»ç»è¯¥å¦ä½æ¹é ï¼ /cn/docs/how-to-reform-a-legacy-system/" class="btn btn--twitter" title="å享 Twitter"><i class="fa fa-fw fa-twitter" aria-hidden="true"></i><span> Twitter</span></a> + + <a href="https://www.facebook.com/sharer/sharer.php?u=/cn/docs/how-to-reform-a-legacy-system/" class="btn btn--facebook" title="å享 Facebook"><i class="fa fa-fw fa-facebook" aria-hidden="true"></i><span> Facebook</span></a> + + <a href="https://plus.google.com/share?url=/cn/docs/how-to-reform-a-legacy-system/" class="btn btn--google-plus" title="å享 Google Plus"><i class="fa fa-fw fa-google-plus" aria-hidden="true"></i><span> Google+</span></a> + + <a href="https://www.linkedin.com/shareArticle?mini=true&url=/cn/docs/how-to-reform-a-legacy-system/" class="btn btn--linkedin" title="å享 LinkedIn"><i class="fa fa-fw fa-linkedin" aria-hidden="true"></i><span> LinkedIn</span></a> +</section> + + + + <nav class="pagination"> + + <a href="/docs/how-to-reform-a-legacy-system/" class="pagination--pager" title="æ头ç¼çéçç³»ç»è¯¥å¦ä½æ¹é ï¼ +">åå</a> + + + <a href="/docs/service-center-ui/" class="pagination--pager" title="Service-Center Management UI Console +">åå</a> + + </nav> + + + </div> + + + <div class="page__comments"> + + + <section id="static-comments"> + + <!-- Start static comments --> + <div class="js-comments"> + + </div> + <!-- End static comments --> + + <!-- Start new comment form --> + <h4 class="page__comments-title">çä¸è¯è®º</h4> + <p class="small">æ¨ççµåé®ç®±å°å并ä¸ä¼è¢«å±ç¤ºã请填åæ è®°ä¸ºå¿ é¡»çå段ã <span class="required">*</span></p> + <form id="new_comment" class="page__comments-form js-form form" method="post" action="https://api.staticman.net/v1/entry/ServiceComb/servicesomb.github.io/master"> + <div class="form__spinner"> + <i class="fa fa-spinner fa-spin fa-3x fa-fw"></i> + <span class="sr-only">æ£å¨å è½½...</span> + </div> + + <fieldset> + <label for="comment-form-message">è¯è®º <small class="required">*</small></label> + <textarea type="text" rows="3" id="comment-form-message" name="fields[message]" tabindex="1"></textarea> + <div class="small help-block"><a href="https://daringfireball.net/projects/markdown/">Markdownè¯æ³å·²æ¯æã</a></div> + </fieldset> + <fieldset> + <label for="comment-form-name">å§å <small class="required">*</small></label> + <input type="text" id="comment-form-name" name="fields[name]" tabindex="2" /> + </fieldset> + <fieldset> + <label for="comment-form-email">çµåé®ç®± <small class="required">*</small></label> + <input type="email" id="comment-form-email" name="fields[email]" tabindex="3" /> + </fieldset> + <fieldset> + <label for="comment-form-url">ç½ç«ï¼å¯éï¼</label> + <input type="url" id="comment-form-url" name="fields[url]" tabindex="4"/> + </fieldset> + <fieldset class="hidden" style="display: none;"> + <input type="hidden" name="options[slug]" value="how-to-reform-a-legacy-system"> + <label for="comment-form-location">Not used. Leave blank if you are a human.</label> + <input type="text" id="comment-form-location" name="fields[hidden]" autocomplete="off"/> + </fieldset> + <!-- Start comment form alert messaging --> + <p class="hidden js-notice"> + <strong class="js-notice-text"></strong> + </p> + <!-- End comment form alert messaging --> + <fieldset> + <button type="submit" id="comment-form-submit" tabindex="5" class="btn btn--large">æ交è¯è®º</button> + </fieldset> + </form> + <!-- End new comment form --> + + </section> + +</div> + + + </article> + + + + <div class="page__related"> + <h4 class="page__related-title">çæ¨è¿å欢</h4> + <div class="grid__wrapper"> + + + + + +<div class="grid__item"> + <article class="archive__item" itemscope itemtype="http://schema.org/CreativeWork"> + + <h2 class="archive__item-title" itemprop="headline"> + + <a href="/cn/docs/jira_beginner_guide/" rel="permalink">èå¸æºå¸¦ä½ å·ä»»å¡ - ServiceComb JIRAå ¥é¨æå +</a> + + </h2> + <p class="archive__item-excerpt" itemprop="description">ServiceComb JIRAå ¥é¨æå +</p> + + <p class="page__meta"><i class="fa fa-clock-o" aria-hidden="true"></i> + + + + + å°äº 1 åé é 读 + +</p> + + </article> +</div> + + + + + + +<div class="grid__item"> + <article class="archive__item" itemscope itemtype="http://schema.org/CreativeWork"> + + <h2 class="archive__item-title" itemprop="headline"> + + <a href="/docs/service-center-ui/" rel="permalink">Service-Center Management UI Console +</a> + + </h2> + <p class="archive__item-excerpt" itemprop="description">An introduction Service-Center Management Console +</p> + + <p class="page__meta"><i class="fa fa-clock-o" aria-hidden="true"></i> + + + + + 2 åé é 读 + +</p> + + </article> +</div> + + + + + + +<div class="grid__item"> + <article class="archive__item" itemscope itemtype="http://schema.org/CreativeWork"> + + <h2 class="archive__item-title" itemprop="headline"> + + <a href="/docs/service-center-ui/" rel="permalink">Service-Center Management UI Console +</a> + + </h2> + <p class="archive__item-excerpt" itemprop="description">An introduction Service-Center Management Console +</p> + + <p class="page__meta"><i class="fa fa-clock-o" aria-hidden="true"></i> + + + + + 2 åé é 读 + +</p> + + </article> +</div> + + + + + + +<div class="grid__item"> + <article class="archive__item" itemscope itemtype="http://schema.org/CreativeWork"> + + <h2 class="archive__item-title" itemprop="headline"> + + <a href="/docs/how-to-reform-a-legacy-system/" rel="permalink">æ头ç¼çéçç³»ç»è¯¥å¦ä½æ¹é ï¼ +</a> + + </h2> + <p class="archive__item-excerpt" itemprop="description">å¾®æå¡æ¯å¦æ¯ä¸çæå¾ å·²ä¹ çä¼ä¸æ¶æ解å³æ¹æ¡ï¼å¨å¯¹éçç³»ç»è¿è¡å¾®æå¡çæ¹é è¿ç¨ä¸åå¨ææ ·çå°é¾åææï¼åºè¯¥æ³¨æäºä»ä¹ï¼ +</p> + + <p class="page__meta"><i class="fa fa-clock-o" aria-hidden="true"></i> + + + + + å°äº 1 åé é 读 + +</p> + + </article> +</div> + + + </div> + </div> + +</div> + + + <script async src="//pagead2.googlesyndication.com/pagead/js/adsbygoogle.js"></script> + <div align="center" style="margin: 0 0;"> + <ins class="adsbygoogle" + style="display:block; border-bottom: initial;" + data-ad-client="ca-pub-7328585512091257" + data-ad-slot="3049671934" + data-ad-format="auto"></ins> + </div> + + <div class="page__footer"> + <footer> + <!-- start custom footer snippets --> + +<!-- end custom footer snippets --> + <div class="container"> + <div class="row justify-content-md-center"> + + <div class="col"> + <ul> + <p class="header">èµæº</p> + <li><a href="/cn/docs/quick-start/">å¿«éå ¥é¨</a></li> + <li><a href="/cn/users/user-guide/">ç¨æ·æå</a></li> + <li><a href="/cn/slides/">èµæ</a></li> + <li><a href="/cn/users/faq/">常è§é®é¢</a></li> + </ul> + </div> + <div class="col"> + <ul> + <p class="header">è´¡ç®</p> + <li><a href="https://github.com/ServiceComb/ServiceComb.github.io/issues/new?title=Issue with _posts/cn/2017-10-23-how-to-reform-a-legacy-system.md">æ¥åæ¬ç½é¡µé®é¢</a></li> + <li><a href="https://github.com/ServiceComb/ServiceComb.github.io/edit/master/_posts/cn/2017-10-23-how-to-reform-a-legacy-system.md">å¨Githubä¸ç¼è¾æ¤é¡µ</a></li> + <li><a href="/cn/developers/submit-codes/">代ç æ交æå</a></li> + </ul> + </div> + <div class="col"> + <ul class="social-icons"> + <p class="header">社åº</p> + <li> + <a href="https://groups.google.com/forum/#!forum/servicecomb-developers" target="_blank"><span class="group">å¼åè </span></a> | + <a href="https://groups.google.com/forum/#!forum/servicecomb-users" target="_blank">ç¨æ·</span></a> + </li> + <li> + <a href="http://github.com/ServiceComb" target="_blank"><span class="github">Github</span></a> + </li> + <li> + <a href="https://twitter.com/ServiceComb" target="_blank"><span class="twitter">Twitter</span></a> + </li> + <li> + <a href="/feed.xml" target="_blank"><span class="rss">Feed</span></a> + </li> + </ul> + </div> + </div> +</div> +<div class="page__footer-bottom"> + <div>© 2017 Apache incubator ServiceComb. ææ¯æ¥èªäº <a href="http://jekyllrb.com" rel="nofollow">Jekyll</a> & <a href="https://mademistakes.com/work/minimal-mistakes-jekyll-theme/" rel="nofollow">Minimal Mistakes</a>.</div> +</div> + + </footer> + </div> + + <script src="/assets/js/main.min.js"></script> + + + + + <script> + (function(i,s,o,g,r,a,m){i['GoogleAnalyticsObject']=r;i[r]=i[r]||function(){ + (i[r].q=i[r].q||[]).push(arguments)},i[r].l=1*new Date();a=s.createElement(o), + m=s.getElementsByTagName(o)[0];a.async=1;a.src=g;m.parentNode.insertBefore(a,m) + })(window,document,'script','https://www.google-analytics.com/analytics.js','ga'); + + ga('create', 'UA-101622733-1', 'auto'); + ga('send', 'pageview'); +</script> + + + + + + + + + <script> + (function ($) { + var $comments = $('.js-comments'); + + $('#new_comment').submit(function () { + var form = this; + + $(form).addClass('disabled'); + $('#comment-form-submit').html('<i class="fa fa-spinner fa-spin fa-fw"></i> æ£å¨å è½½...'); + + $.ajax({ + type: $(this).attr('method'), + url: $(this).attr('action'), + data: $(this).serialize(), + contentType: 'application/x-www-form-urlencoded', + success: function (data) { + $('#comment-form-submit').html('å·²æ交'); + $('.page__comments-form .js-notice').removeClass('notice--danger'); + $('.page__comments-form .js-notice').addClass('notice--success'); + showAlert('æè°¢æ¨çè¯è®ºï¼è¢«æ¹ååå®ä¼ç«å³å¨æ¤ç«ç¹å±ç¤ºã'); + }, + error: function (err) { + console.log(err); + $('#comment-form-submit').html('æ交è¯è®º'); + $('.page__comments-form .js-notice').removeClass('notice--success'); + $('.page__comments-form .js-notice').addClass('notice--danger'); + showAlert('å¾æ±æï¼æ¨çæ交åå¨é误ã请确ä¿ææå¿ å¡«å段é½å·²å¡«åæ£ç¡®ï¼ç¶ååè¯ä¸æ¬¡ã'); + $(form).removeClass('disabled'); + } + }); + + return false; + }); + + function showAlert(message) { + $('.page__comments-form .js-notice').removeClass('hidden'); + $('.page__comments-form .js-notice-text').html(message); + } + })(jQuery); + </script> + + + + + + + + </body> +</html>