121..................................................................................................................................................32......................................................................................................................................52.1...................................................................................................................62.1.1................................................................................................62.1.2..................................................................................112.2.................................................................................................................142.2.1......................................................................................................152.2.2..............................................................................................162.2.3..........................................................................................182.3.................................................................................................................193................................................................................................................................................2031.LNMPJSPPyWebMonolithicMartinFlowerHTML+CSS+JS||PHPJavaPython||MySQLSQLPM/RD/QA/OP4PMQAbugohmygodcaseforselect123crashKentBeck5DesignistheretoenableyoutokeepchangingthesoftwareeasilyinthelongtermOSGISOAfacebook2.62.12.1.1SOAESBwebsercieWSDLSOAP/BPELSOASOAMicroService[1]7SOAdubboHSFnavi-rpcSOAMartinFlowerMartinterminologyInshort,themicroservicearchitecturalstyleisanapproachtodevelopingasingleapplicationasasuiteofsmallservices,eachrunninginitsownprocessandcommunicatingwithlightweightmechanisms,oftenanHTTPresourceAPI.Theseservicesarebuiltaroundbusinesscapabilitiesandindependentlydeployablebyfullyautomateddeploymentmachinery.Thereisabareminimumofcentralized8managementoftheseservices,whichmaybewrittenindifferentprogramminglanguagesandusedifferentdatastoragetechnologies.HTTPBuildingMicroservicesSamNewman,OReillyMediaMicroservicesaresmall,autonomousservicesthatworktogether.SOAMartinYoutube91APIproto92ConwayslawbugcrashI/ONoSQL2/880%3shardSLAbadSQL104SOAESBWebserviceRestfulHTTPJsonI/OepollActortcpprotobufNavi-pbrpcRabbitMQZeroMQP2PPub/SubbroadcastAPI5in-processRPCcircutbreak6CICDPaaSprojectDevOps11PaaS1RPC234SLAJ-curve2.1.2teamdubbo12HSFNavi-rpc[2]SpringGuiceIoCbeanIoCRpcStubJSR315SPIJ2EEwebsocketEndpintMavenSDKEndpoint13RpcZookeeperPaxoskebernetesetcdRaftRpc[3]14DevOpsDockerk8sPaaSQA[4]2.2#1#215#3#42.2.1[5]516SpringMVCJavafacadeshardMySQLincrementaldatastreamMySQLbinlogbinlogMQkafkaRMQZeorMQHDFSH5flashROI2.2.217BNF[6][7]182.2.333[8]19web-uiapijsiOSAPIworkflow2.3sync-reportolapenginemergesync-reportweb-ui20apisync-reportsync-report[9]3.teamCI21