《王昕-企業云原生架構的落地姿勢.pdf》由會員分享,可在線閱讀,更多相關《王昕-企業云原生架構的落地姿勢.pdf(50頁珍藏版)》請在三個皮匠報告上搜索。
1、王昕有18年從事軟件系統設計、開發和產品管理的經驗,近10年云計算相關技術產品的研發經驗。從業期間王昕主要從事云原生PaaS平臺和云管平臺的產品架構和研發工作。王昕對IT行業新技術始終保持第一線的跟蹤,多年在GOPS、InfoQ,CSDN等技術論壇從事技術布道和經驗分享工作。王昕高級技術專家高級技術專家個人簡介1云原生架構技術概覽2企業應用云原生架構的業務訴求3企業落地云原生架構的技術挑戰4企業落地云原生架構的最佳實踐目錄CONTENTS01云原生架構技術概覽容器標準部署格式,從有差異的基礎結構中抽象代碼APIs將服務作為輕量級 API 暴露,以便于集成DevOps促進協作構建和交付的人員、流
2、程和技術微服務將應用程序開發為模塊化、松耦合服務集合的架構方法在容器中封裝應用程序代碼和依賴關系,作為微服務進行部署,并使用 DevOps 流程和工具管理它們什么是云原生1.容器化2.CI/CD3.應用編排4.監控與分析5.服務發現與治理6.網絡與策略7.分布式數據庫與存儲8.流和消息處理9.容器運行環境與鏡像倉庫10.軟件發布fully exploits the advantages of the cloud DevOps,continuous delivery,microservices,and containers.Pivotal Global CTO Matt Stine 于2013年
3、云原生的特征Kubernetes controlAPI serverreplication,namespace,serviceaccounts,etc.-controller-manager-scheduleretcdMaster nodeWorker nodekubeletkube-proxyDockerProdProdContainersContainersWorker nodekubeletkube-proxyDockerProdProdContainersContainersInternet1.Kubernetes 用戶與 API Server通信從而設置Desired State3.
4、Master nodes在Worker nodes上通過Kubelet實施Desired State4.Worker nodes支持容器之間的通信5.Worker nodes支持從互聯網接入的通信2.系統狀態存儲在ETCD上Kubernetes的系統架構包裝和分發可擴展性和控制Kubernetes開發人員工具HelmCNABVirtual KubeletDraftBrigadeVS Code Kubernetes ExtensionsKEDAService Mesh InterfaceDaprOpen Container InitiativeGatekeeper圍繞Kubernetes的開源項
5、目CNAB項目:Cloud Native Application BundleOpen Container Initiative(OCI)項目API ServerValidating WebhookGatekeeperAdmission RequestConstraintRequire billing labelConstraintRequire owner labelTemplateHow to constrain labelsConstraintImage repo must be company-xTemplateHow to constrain image registryPolicy
6、 CRsGatekeeper項目Service Mesh Interface(SMI)for KubernetesA Kubernetes interface that provides traffic routing,traffic telemetry,and traffic policyAppsToolingEcosystemStandardizedStandard interface for service mesh on KubernetesSimplifiedBasic feature set to address most common scenariosExtensibleSup
7、port for new features as they become widely availableand moreService Mesh InterfaceRoutingTelemetry PolicySMI adapterService Mesh Interface項目VS Code k8s Extension項目K8s 集群K8s ResourcesHelm ResourcesRelease 1Release 2kubectlhelmVS Code IDEK8s 插件客戶端服務端Brigade項目在Kubernetes集群中運行腳本KEDA項目標準化自動伸縮ChartThe de
8、finition of the applicationReleaseAn instance of a chart installed on a k8s clusterChart:Release is like Class:ObjectRelease revisionA change to the applicationMay be a change to a yaml fileNot a new release,but a revision of the same releaseChart version changeA change to the chart file structureCa
9、used by,for example,adding new k8s objectsHelm管理Kubernetes的PackageInstall a releasehelm install release name chart nameOther commands:Upgrade a release revision:helm upgrade release name chart nameRollback to a release revision:helm rollback release name chart namePrint release history:helm history
10、release nameDisplay release status:helm status release nameShow details of a release:helm get all release nameUninstall a release:helm uninstall release nameList releases:helm listHelm的命令行為開始應用提供一個Helm腳手架Draft是一個腳手架工具Control PlaneAdminApplicationApplicationApplicationApplicationApplicationVirtual Ku
11、belet項目Service-to-service invocationState managementPublishandsubscribeBindings(input/output)ActorsObservabilitySecretsExtensibleAny cloud or edge infrastructureHTTP APIgRPC APIApplication codeAny code or frameworkMicroservices written inDapr項目:Distributed Application RuntimeDapr項目與Service Mesh項目的對比
12、02企業應用云原生架構的業務訴求應用不變在云端重新部署 減少Capex 節省數據中心空間 更快的云投資回報 ROIIaaSIaaS:435%ROI,73%reduction in datacenter footprint and 83%reduced IT outsourcing cost.1只考慮最少和必須的變化,以利用云的優勢 快速、小規模的更新 代碼移植 更好的云端效率(資源、速度、成本)ContainersPaaSPaaS:466%ROI,80%time saved,5.91M NPV,50%faster deployments.1Container:13x more releases
13、,10 x cost reduction,65%faster developer onboarding,62%better availability.2實質上的改變,將應用分解為獨立的多個服務 應用彈性和敏捷 更容易采用新的云技術和云服務能力 多技術棧PaaSServerlessMicroservices以云原生的方式編寫新業務代碼 加速創新 應用快速迭代上線 減少運營成本DescriptionBusinessdriversCoretechnologiesBusinessresultsSource:Gartner-Developing a Public Cloud IaaS Adoption
14、and Migration Framework,published March 2017REHOST云遷移REFACTOR代碼調整REARCHITECT架構重構REBUILD(BUILD NEW)云原生應用上云的可選路徑云原生是軟件開發的新范式35%到 2022 年,生產環境中的應用將有超過35%是云原生的11 IDC FutureScape:Worldwide IT Industry 2019 Predictions,2018 https:/ 20212.專屬云:到2025年,根據性能、安全性和合規性要求,60%的組織將會采用部署在企業本地或服務商處的專屬云基礎設施。8.邊緣云:到2026年
15、,70%的CIO將需要云服務商和電信運營商合作提供安全的云邊協同解決方案保證數據采集的性能和一致性。10.高性能計算:到2025年,近50%的性能密集型計算(AI、HPC和BDA)將以云為基礎,隨著這些系統越來越多地與企業應用結合。1.應用現代化:到2024年,大多數遺留應用程序將實現一定程度的現代化投資,65%的應用程序使用云服務來擴展功能或替換低效代碼。6.低代碼平臺:到2023年,60%的新應用將基于無代碼/低代碼平臺進行開發,當前該比例是30%。5.無處不在的應用部署:到2024年,50%的組織將使用云托管服務商提供的應用實現任何地點部署以及運行的一致性3.云災備:到2025年,55%
16、的組織將其數據災備系統遷移到云,并以云為中心,實現中心和邊緣數據的統一管理和治理。4.多云數據治理:為了保證分布式數據的一致性,2024年將會有75%的組織采用多云數據處理工具,使用統一的數據獲取、遷移,安全和保護策略。7.云運營優化:到2023年,80%使用云服務的組織將建立專門的FinOps功能用于自動化監測和優化云資源,以實現價值最大化。9.云的可持續性:到2025年,85%的組織將使用軟件工具和云基礎設施使從工作負載到數據中心的可持續效率提升35%。應用數據運營基礎設施云原生引領應用架構演化的趨勢應用架構演變的歷史以Java應用為例SQL SQL SERVERSERVER典型的業務應用
17、架構展示頁面或用戶界面服務或集成數據庫或存儲組織場所IT IT法務營銷運營財務人力資源業務應用是應用創新的基本面服務訂單事件管理施工故障檢修招聘學習和培訓工時管理雇員福利工資公司新聞差旅績效評審采購訂單合規商務會計稅務資產報表預算審批發票物流庫存保修檢查供應鏈訂單資源安全維修訪客跟蹤知識產權投訴與糾紛內部審計政策規范服務臺許可證項目管理質量控制應用開發合規企業內容管理新一代網絡服務大數據和商業智能移動應用智能機器人物聯網視頻和直播廣告投放品牌管理營銷活動客戶關系銷售預測營銷活動客戶洞察渠道管理一家企業,有眾多業務應用基于云的現代化改造Accelerate and scale innovatio
18、n更低的開發門檻Allow non-technical users to build low-code apps加速業務響應和市場交付Innovate with speed to adapt to digital urgency挖掘數據價值Make apps smarter with data insights彈性架構優化成本Optimize for a new macro environmentAI業務賦能Create real-time personalization with AI and ML高效和遠程方式協作Collaborate globally and remotely可靠性和安
19、全性重要性提升Invest in business continuity and security驅動應用現代化的業務需求創新型應用系統差異化型應用系統記錄型應用系統為擁抱新業務機會而構建的新型應用程序,包括應對數字化顛覆(digital disruption)的應用程序。支持公司的特定流程或具體的行業能力功能的應用程序。已完成建設的應用系統或是遺留的自建應用程序,用以支持企業核心業務處理和管理企業關鍵數據。數字營銷活動,眾包競賽和移動App,小程序等金融服務:如人工智能技術檢測和預防欺詐渠道管理系統,客戶服務系統,員工生產力系統。行業特定系統:如金融風險管理系統。工資處理系統,訂單處理系統,
20、發票處理系統,時間和工時報告系統定義示例生命周期生命周期較短:0 到 12 月左右生命周期一般:1-3年左右生命周期較長:10年 或 更長不同業務應用的類型零售提供引人入勝的數字客戶體驗實時提供定制優惠和個性化顧客體驗通過改進目標營銷,更快地增加新的現金流無服務器擴展,以滿足季節性需求峰值通過及時更新的產品目錄和庫存賦能品牌大使構建IoT創新,減少錯誤,預防損失部署安全連接的 mPOS 系統以減少等待時間通過實時訂單處理和供應鏈管理,縮小需求與交付之間的差距通過實時檢測和提醒異常來揭露欺詐行為構建合作伙伴/供應商門戶,以提高客戶服務響應及時性和準確性革新門店管理建立智能供應鏈云原生的行業需求零
21、售行業制造與汽車提供新服務解鎖全渠道和個性化的客戶體驗為合作伙伴應用市場創建協同的開發環境利用基礎設施的進步,將精益能力引入 IT管理收集和分析大量IoT數據,并生成實時建議和見解賦能智慧建筑和城市使用即時設備診斷,在設備需求和安全事件發生之前預測出來,以便及時處置在正確的時間生產正確的部件部署分析以提高質量和運營效率,并加快上市速度更有效地使用計算和人力資源,節省時間和金錢實現工業 IoT 創新實踐智能可擴展的供應鏈管理云原生的行業需求制造與汽車行業金融服務提供差異化的客戶體驗開發針對全渠道和自助服務的定制服務使用數字信息亭加快交易和交易速度通過個性化銷售和營銷優化獲客對風險進行實時分析,提
22、供高于標準級別的合規性通過實時檢測和提醒異常來揭露欺詐行為安全、自信地部署在自建機房和云上集中支付管道,以低延遲準確地擴展資源,支持大量支付業務啟用移動錢包,以便有效利用資源構建順暢的點對點模型管理風險,檢測欺詐行為實時支付云原生的行業需求金融服務行業03企業落地云原生架構的技術挑戰補丁 Patching升級 Upgrading監控 Monitoring伸縮 Scaling高可用 HA design安全 Security hardening證書管理 Certificate rotationTLS配置 TLS configuration自動化 Automation控制平面 Control Pla
23、ne costs*插件管理 Add-ons網絡驅動 Networking drivers存儲驅動 Storage driversKubernetes controlAPI serverreplication,namespace,serviceaccounts,etc.-controller-manager-scheduleretcdMaster nodeWorker nodekubeletkube-proxyDockerProdProdContainersContainersWorker nodekubeletkube-proxyDockerProdProdContainersContaine
24、rsInternet自行管理運行Kubernetes平臺的難點數據安全與加密跨區域高可用與災備安全掃描結合Helm Charts的倉庫管理鏡像倉庫的難點客戶托管廠商托管Kubernetes平臺的功能集中滿足生產級應用平臺的管理能力。ResponsibilitiesDIY with KubernetesManaged Kubernetes on AzureContainerization Application iteration,debuggingCI/CDCluster hostingCluster upgrade PatchingScalingMonitoring and logging托
25、管型Kubernetes平臺的管理能力操作能力非托管集群托管集群Create a clusterProvision network and VMsInstall dozens of system components including etcdCreate and install certificatesRegister agent nodes with control planeaz aks createUpgrade a clusterUpgrade your master nodesCordon/drain and upgrade worker nodes individuallyaz
26、 aks upgradeScale a clusterProvision new VMsInstall system componentsRegister nodes with API serveraz aks scale托管Kubernetes的能力集群管理操作能力非托管集群托管集群Build a containerized app and deploy to KubernetesBuild the appWrite a DockerfileBuild the container imagePush the container to a registryWrite Kubernetes ma
27、nifests/Helm chartDeploy to Kubernetesdraft init to configure your environmentdraft create to auto-create Dockerfile/Helm chartdraft up to deploy to KubernetesBuild a containerized app and deploy to KubernetesSet up a local dev environment using MinikubeDetermine the transitive closure of your depen
28、denciesIdentify behavior of dependencies for key test casesStub out dependent services with expected behaviorMake local changes,check-in,and hope things workValidate with application logsUse DevSpacesDo breakpoint debugging in your IDEExpose web apps to the internet with a DNS entryDeploy an ingress
29、 controllerCreate a load-balanced IP for itAdd an ingress resource to your deploymentAcquire a custom domainCreate a DNS A-record for your serviceTurn HTTP application routing on in your clusterAdd an ingress resource to your deployment托管Kubernetes的能力應用Package管理操作能力非托管集群托管集群Set up a CI/CD pipeline a
30、nd deploy to KubernetesCreate git repoCreate a build pipelineCreate a container registryCreate a Kubernetes clusterConfigure build pipeline to push to container registryConfigure build pipeline to deploy to KubernetesCreate an Azure DevOps project with AKS as a targetMake container images available
31、for deployment worldwideCreate a container registry in every regionConfigure build pipeline with multiple endpointsLoop through all regions and push following buildCreate an Azure Container Registry with geo-replicationPush your image to a single endpointTrack health with consolidated cluster and ap
32、plication logsChoose a logging solutionDeploy log stack in your cluster or provision a serviceConfigure and deploy a logging agent onto all nodesCheckbox“container monitoring”in the Azure portal托管Kubernetes的能力DevOps集成04企業落地云原生架構的最佳實踐輕松處理負載尖峰在季節性和其他高流量需求期間,為客戶提供快速可靠的服務質量無需管理基礎設施,即時彈性縮放以處理流量突增從世界任何地方訪
33、問,低延遲,獲得快速、可靠的用戶體驗多個數據中心的高可用性Azure FunctionsAzure Cosmos DBAzure API ManagementAKSApache SparkAzure Notification HubAzure CDNAzure File StorageVirtual nodesAzure Traffic ManagerDevice關鍵業務現代化處理季節性或突發性的大業務壓力無需停機即可連續交付新功能在不影響安全性的情況下,通過簡化的DevOps 釋放團隊敏捷性通過托管Kubernetes服務和內置CI/CD 更快地交付代碼通過實時監控加快反饋循環平衡速度和安全
34、性與持續安全性和深度可追溯性Release3ReleaseNRelease3Release2Release 1CI/CD PipelinesInner loopAzure Container RegistryHelm chart Container imageAzure MonitorAzure PolicySource code controlTestDebugDev environmentAKS dev cluster TerraformAKS production clusterv1v2App telemetryContainer healthReal-time log analytic
35、s關鍵業務現代化滾動迭代升級業務更快地讓客戶應用上線在云中把基于服務器的架構,升級為基于容器的服務架構,加快客戶環境配置。內置 CI/CD 管道的托管容器化平臺,可標準化客戶環境的創建、更新、監控和擴展。在發生中斷時,通過自動補丁、自動升級和自動備份,減少管理負擔。高度安全的數據集成與智能威脅保護。JavaJavaJavaAKSInternetNginxBackup&restore,disaster recoveryAzure MonitorCustomer ACustomer BCustomer CAzure Container RegistryAzure PipelinesStorage
36、Sync ServicesAzure BackupSaaS交付快速上線演變為 API 優先的SaaS 商業模式適應、發展、支持更快的創新,將機遇轉化為戰略優勢幾分鐘內創建 API 網關和開發人員門戶,輕松發布 API 供內部或外部使用處理任何數據模式,并快速適應,快速變化連接到任何地方的后端服務,并在一個地方管理、優化所有 API,以及保護API 的安全APIAPI developersAPI usersDeveloper portalGatewayAPIs running in AzureAzure Cosmos DBAzure SQL DatabaseAzure StorageAKSAzu
37、re FunctionsAPIs running anywhereExternal servicesManagement portalSaaS交付服務API優先即時 IoT 數據流攝錄和分析海量IoT數據并生成實時建議和見解實時數據攝錄和處理管道,可在幾秒鐘內檢測和通知安全 API 網關,連接到運行在任何地方的后端服務的無需管理基礎設施即可提供彈性計算能力Azure Database for PostgreSQLAzure Cache for RedisAzure Kubernetes ServiceIngestserviceAnalysis serviceMap matching servi
38、ceAzure Key VaultAzure DatabricksAzure Cosmos DBAzure Web AppsGPS and sensorAzure Container RegistryAzure PipelinesApache Kafka on Azure HDInsightsAzure API ManagementEnd userData scientistsGitHub實時數據處理物聯網應用實時個性化推薦通過實時個性化和產品推薦,幫助客戶發現他們喜歡的項目海量的產品數據可以在毫秒內分析完成低延遲可確保全球應用性能高可調諧數據一致性模型,實現快速洞察Data Lake off
39、line raw data storageApache Spark on Azure HDInsightproduct and customer analyticsOffline recommendations serviceCOLD PATHEvent Hubcustomer data ingestionProduct details pageAzure Data Factoryscheduled job to refresh persisted modelsShoppersOnline recommendations serviceHOT PATHAKSpersonalization de
40、cision engineAzure Cosmos DBdistributed model store實時數據處理個性化推薦地理分布式應用程序將您的數據放在用戶所在的地方,為世界任何地方的用戶提供實時訪問和不間斷服務比任何其它云廠商的區域都更多,提供計算和數據服務所有 Azure 地區都提供高可用性和開箱即用的全球數據復制保證全球用戶的低延遲體驗Azure Cosmos DBApp+session stateAzure Traffic ManagerAKS in Region AAKS in Region BAKS in Region CClient AppGlobally distributed across regions分布式應用架構