赞
踩
学习参考资料:《企业级云原生架构:技术、服务与实践)》
云原生架构是“原生为云”而设计的应用架构,因此技术部分依赖于在传统云计算的 3 层概念:基础设施即服务(Infrastructure as a Service, IaaS
)、平台即服务(Platform as a Service, PaaS
)和软件即服务(Software as a Service, SaaS
)。
云原生架构意味着更快的迭代速度、持续可用的服务、弹性伸缩及其他一些非功能特性,包括快速试错以支持产品创新的技术挑战、以用户体验为中心的交互模式挑战、移动互联网时代的流量激增挑战等。
云计算与云原生的关系图如下:
接下来针对云原生的的架构来讲下。
下面看看轻量化的 IT
应用服务器发展趋势:
作为云原生应用的底座,敏捷基础设施主要为了解决传统基础设施所面临的挑战,包括以下几个方面。
正如通过业务代码能够实现产品需求、通过版本化的管理能够保证业务的快速变更一样,基于云原生的开发模式也要考虑如何保证基础资源的提供能够以可编程的方式自动实现需求,并实现记录变更,保证环境的一致性。
容器技术真正实现了 IaaS
的理念落地,通过 Dockerfile
显式声明定义软件的运行环境,开发人员可以直接将所有的软件和依赖直接封装到容器中,打包成镜像,将应用和运行环境做到很好的统一,通过容器实现开发、测试、生产环境的一致,实现一次编写,到处运行的能力。
单体架构与微服务架构的关系图:
微服务将大型复杂软件应用拆分成多个简单应用,每个简单应用描述一个小业务,系统中的各个简单应用可以被独立部署,各个应用之间是松耦合的,每个应用仅关注完成一件任务并很好地完成该任务。
相比传统的单体架构,微服务架构具有降低系统复杂度、独立部署、独立扩展、跨语言编程等特点。
由于侵入式架构本身服务与通信组件互相依赖,当服务应用数量越来越多时,侵入式架构在服务间调用、服务发现、服务容错、服务部署、数据调用等服务治理层面将面临新的挑战。服务网格推动微服务架构进入新时代。
服务网格是一种非侵入式架构,负责应用之间的网络调用、限流、熔断和监控,可以保证应用的调用请求在复杂的微服务应用拓扑中可靠地穿梭。服务网格通常由一系列轻量级的网络代理组成(通常被称为 SideCar
模式),与应用程序部署在一起,但应用程序不需要知道它们的存在。服务网格通过服务发现、路由、负载均衡、健康检查和可观察性来帮助管理流量。
自 2017 年年初第一代服务网格架构
Linkerd
公开使用之后,Envoy
、Conduit
等新框架如雨后春笋般不断诵现。2018 年年初,IBM
和Lyft
联合开发的项目Istio
的发布,标志着服务网格带领微服务架构进入新的时代。
持续交付:以一种可持续的方式安全、快速地将所有类型的更改(包括新功能、配置更改、错误修复和实验)交付到生产环境或用户手中的能力。
得益于云原生环境下的敏捷基础设施以及容器+镜像技术,对于开发人员所提交的每一次代码变更,通过工具(如 Maven
、Jenkins
)触发自动编译、构建、打包成镜像,自动部署到镜像仓库,持续交付服务器会将最新的镜像文件拉取到 Kubernetes
集群中,并采用逐步替换容器的方式对应用进行更新,在服务不中断的前提下完成应用自动更新。整个交付过程如工厂流水线一般逐个环节往下自动触发流转,如图所示:
为了获得健康良性的持续交付效果,总结了 4 个核心工作原则:
DevOps 是一套将软件开发(
Development
,Dev
)和系统运维(Operations
,Os
)相结合的实践,旨在缩短应用系统开发生命周期,提供高质量的持续交付。
一个 DevOps
开发环境需要满足以下 8 点要求:
DevOps
开发环境如下图:
整个环境主要由以下 6 个部分组成:
GitLab
;Docker
;Jenkins
;SonarQube
;Harbor
;Kubernetes
DevOps
的完整执行需要企业内部组织流程的配合和改造。不同岗位角色的人参与整个产品生命周期的不同阶段:
DevOps
鼓励小团队协作,因为小团队维护少量的服务,可以快速决策、快速发布,充分利用 DevOps
的能力 ,如下图:
Copyright © 2003-2013 www.wpsshop.cn 版权所有,并保留所有权利。