《4. serverless賦能面向未來的高并發應用架構(鄭予彬).pdf》由會員分享,可在線閱讀,更多相關《4. serverless賦能面向未來的高并發應用架構(鄭予彬).pdf(41頁珍藏版)》請在三個皮匠報告上搜索。
1、Serverless賦能面向未來的高并發應用架構鄭予彬亞遜云科技 資深開發者布道師戶:1千萬+數據量:TB地區:全球性能:微秒請求率:百萬訪問:移動設備,IoT設備規模:從到經濟性:按需付費開發者:開放API,DevOps電商務游戲移動應Web應什么是面向未來的高并發應用架構?單體應架構+開發團隊解耦敏捷微服務應架構+DevOps雙披薩團隊完全所有完全負責“DevOps”專注創新01SECTION單體應架構的痛開發組織過于龐大單一代碼庫帶來的溝通和協作成本高系統變得笨重、復雜、不可靠且難以維護代碼從提交到上線的過程艱難,變更需要在隊列中等待,直到能夠進行手工測試。System1 Develop
2、er teamSystem N Developer teamSource code RepositoryJenkins CIBacklog Manual testing ApplicationProductionMICROSERVICEAPIAPIMICROSERVICEMICROSERVICEEVENTAPIMICROSERVICEEVENTAPIMICROSERVICEAPPLICATIONMobile clientClientIoTPERSISTENCEPERSISTENCE微服務應架構微服務應架構有助于實現DevOps型,制,松耦合的開發團隊每個服務都有的源代碼倉庫。每個服務都有的動部
3、署管道。微服務架構通過拆分出來的每個服務,都是型、簡單、可靠、易維護的。Jenkins CIJenkins CIService 1Service 2System1 Developer teamSystem2 Developer teamService1Source code RepositoryService1Source code RepositoryDevployment PipelineDevployment PipelineProduction微服務讓業務更敏捷Microservices只做一件事效敏捷動擴展彈性修復代碼復技術/具由簡單部署構建運個微服務應很簡單?Orderservic
4、ePaymentserviceInventoryserviceSearchserviceUseraccountserviceBillingserviceDeliveryserviceReturnsservice服務之間依賴關系12OrderservicePaymentserviceInventoryserviceSearchserviceUseraccountserviceBillingserviceDeliveryserviceReturnsservice13OrderservicePaymentserviceInventoryserviceSearchserviceUseraccounts
5、erviceBillingserviceDeliveryserviceReturnsservice對創新New idea!OrderservicePaymentserviceInventoryserviceSearchserviceUseraccountserviceBillingserviceDeliveryserviceReturnsserviceNew idea!創新前先必須協調致Event Broker 減少了服務間協調的負荷EventbrokerOrderservicePaymentserviceInventoryserviceSearchserviceUseraccountserv
6、iceBillingserviceDeliveryserviceReturnsservice無服務器微服務應架構臨的挑戰進程間通信可靠性數據管理可觀測性對外 API安全性事件驅動02SECTION管理分布式事務維護數據一致性可觀測及安全性微服務的可靠性進程間通信無服務器 事件驅動同步遠程API訪問-REST異步遠程消息傳遞SNS/SQS 消息扇出樂高采用事件驅動設計來提高可擴展性CommerceplatformOrder&customerupdatesEventrelayAmazonEventBridgeLoginCustomerloginCheckoutSubmitorderOrderPro
7、cessorderShippingSendordertoSAPDatasyncCustomer,VIP,wishlistsyncPaymentAuthorizepaymentFIFOqueueCustomerloginInvokeeveryminuteOrdercompleteEventsPaymentauthorizedCustomerloginOrdercompleteOrdersubmit 樂高的流量在高峰日激增-導致2017年黑色星期五崩潰 事件驅動設計可自動擴展,消除了高峰期崩潰的問題可觀測及安全性微服務的可靠性進程間通信服務器 事件驅動管理分布式事務維護數據一致性Circuit B
8、reaker Pattern-熔斷器模式UserService AService BService BService AchaCircuit BreakerCircuit Breaker熔斷模式的技術實現使現有的針對每個客戶端的內存circuit breaker Java使resilience4jPython使circuitbreaker使分布式的circuit breakerLambda Circuit BreakerEventBridge Circuit BreakerQueue Processor Circuit Breaker注意標服務的throttlingLambda Circuit
9、 Breakerhttps:/ Circuit Breakerhttps:/ 事件驅動管理分布式事務維護數據一致性通過SAGA維護數據致性協同式編排式 決策和執順序邏輯分布在saga的每個參與中;通過交換事件的式進溝通 訂閱彼此的事件并做出相應的響應 決策和執順序邏輯集中在個saga編排器中;排版器發出命令消息給各個參與,指參與服務完成本地事務操作Transaction Outbox PatternDynaomDBStreamAmazon API GatewayAmazon LambdaAmazon DynamoDBAmazon LambdaAmazon LambdaAmazon SQSAma
10、zon SNSAmazon KinesisData Streams使StepFunctions編排 SAGA通過SAGA管理分布式事務可觀測及安全性微服務的可靠性進程間通信無服務器 事件驅動DevelopersServicesmonitordeploytestbuildDelivery Pipelinesmonitordeploytestbuildmonitordeploytestbuildmonitordeploytestbuildmonitordeploytestbuildmonitordeploytestbuild微服務部署流程InfrastructureasCode切皆代碼Infras
11、tructurePipelineConfigurationSecurity PolicyApplication Components觀測與安全AuditingObservabilityProactiveAlertingAutoRemediationThe AWS Developer Tools for CI/CDAWSCodeBuild+ThirdPartyAWSCodeCommitAWSCodeBuildAWSCodeDeployAWSX-RaySourceBuildTestDeployMonitorAmazon Web Services CodePipelineAWSCloudWatch如
12、何將安全嵌PipelineDevSecOps PipelineCodeBuildAmazon Web Services CloudAmazonCloudWatchAWSCloudTrailAWSLambdaElasticBeanstalk(Staging)AmazonS3AWSConfigCloudWatch EventsRoleAWSSecurityHubParameterStoreManualApprovalCodeCommitCodeBuildCodeDeployDeployE-mailPHPStanStaticCode AnalysisToolsDynamicCodeAnalysisToolsCommitAmazonSNSElasticBeanstalk(Production)CodePipelineCodeDeploy資源參考https:/microservices.io/MicroservicesPatternsMicroservicesonAWShttps:/