云原生应用开发,通过一个案例手把手带你入门

Posted MavenTalk

tags:

篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了云原生应用开发,通过一个案例手把手带你入门相关的知识,希望对你有一定的参考价值。

为什么要学习云原生开发

  1. 针对云势所趋的市场发展。云计算和云原生应用已经成为主流技术趋势,学习这类技能有远见。可以开发出符合云原生运营模式的应用,满足企业业务发展需要。

  2. 实现资源的高效利用和弹性扩展。通过微服务架构、容器技术、弹性计算等手段,构建出计算资源利用高、扩展灵活的应用系统。能够随着业务 Traffic的增长,轻松扩展带宽和存储空间。

  3. 提高应用的可靠性和健壮性。采用高可用技术,如服务注册机制、分布式动态调度,实现零停机运维能力。使用限流、熔断降级等机制避免超常负载,保障系统高可用。

  4. 提升运维效率。采用基础设施即服务模式,利用其预构建的资源抽象来简化底层基础设施的部署和管理。实现自动化部署和流畅的上线rollback等。

  5. 适应前后端分离和微服务化发展。通过前后端分离和微服务化构建更强健和灵活的应用体系,能够独立升级和扩展各个模块,对一个模块的变化影响较小。

  6. 学会使用云原生技术栈。熟练掌握云计算高级服务、容器、微服务、服务网格等核心技术,能够根据需求灵活选用和组合,构建高效稳定的应用基础架构。这是云原生工程师所需不可缺少的技能。

所以,系统和深入学习云原生技术实践非常重要和必要。通过不断实践,您可以不断掌握技巧、积累经验,成为云原生应用开发的专家。

学习本专栏后有什么收获

  1. 提升自己的技能价值。云原生技术作为最新的前沿技术,掌握好了会显得非常专业和高级。这会大大提升您在 IT 行业的竞争力和薪资潜力。

  2. 扩展发展前景。云计算行业发展迅速,而掌握了云原生技能的人才需求量持续上升。您将备受企业青睐,有更多机会发挥自己的才华。可以进一步拓展至云安全、云地理空间信息系统等更高级领域。

  3. 实现职业转型。如果之前的工作主要面向传统应用部署,学习云原生技术可以让您顺利进入云计算领域,实现 exciting 的职业转型,从而打开全新的机会通道。

    </

12.Kong入门与实战 基于Nginx和OpenResty的云原生微服务网关 --- 高级案例实战

第 12 章 高级案例实战 
12.1 案例 1:智能路由 
	通过智能路由使部分用户使用新版本加以验证。

	12.1.1 插件需求 
	12.1.2 插件开发 
	12.1.3 插件部署 
	12.1.4 插件配置 
	12.1.5 插件验证 

12.2 案例 2:动态限频 
	动态限频插件可以控制微服务站点的请求流量。当微服务站点面对大流量访问的时候,可以通过动态限频插件在网关层面对请求流量进行并发控制,以防止大流量对后端
核心服务造成影响和破坏,从而导致系统被拖垮且不可用。换言之就是通过调节请求流量的阈值来控制系统的最大请求流量值,以最大限度的保障服务的可用性。
	
	常用的限频方案:
		1.总并发连接数限制
		2.固定时间窗口限制
		3.滑动时间窗口限制
		4.漏桶算法
		5.令牌筒算法

	另外,还可以通过以下几种方式实现多维度限频:
		1.对请求的目标url进行限频
		2.对客户端的访问ip进行限频
		3.对特定用户或者企业进行限频
		4.多维度,细粒度的朵组合限频

	12.2.1 插件需求 
	12.2.2 插件开发 
	12.2.3 插件部署 
	12.2.4 插件配置 
	12.2.5 插件验证 

12.3 案例 3:下载限流 
	平台是如何做到限流的?通常是在网关层对限流做全局控制,针对不同等级的用户分别设置不同的下载速度。

	12.3.1 插件需求 
	12.3.2 插件开发 
	12.3.3 插件部署 
	12.3.4 插件配置 
	12.3.5 插件验证
	 
12.4 案例 4:流量镜像 
	网关流量镜像(也称为流量复制或影响流量)指的是将生产流量复制到测试集群或者新版本的集群中,在引导实时流量之前先进行测试,这样可以有效的降低版本变更的
风险。因为这种流量被视为"即发即忘",所以并不会干扰到正常的生产流量。

	12.4.1 插件需求 
	12.4.2 插件开发 
	12.4.3 插件部署 
	12.4.4 插件配置 
	12.4.5 插件验证 

12.5 案例 5:动态缓存 
	在客户端与服务器之间存在着多层对于用户无感知,不可见的缓存策略,比如浏览器缓存,dns缓存,cdn缓存,专用redis,memcached,varnish缓存服务,反向代理
缓存,请求内容缓存,mac缓存,arp缓存,路由表缓存,磁盘缓存,ssd缓存,内存缓存,页缓存,寄存器高速缓存等。

	12.5.1 插件需求 
	12.5.2 插件开发 
	12.5.3 插件部署 
	12.5.4 插件配置 
	12.5.5 插件验证 

12.6 案例 6:IP 地址位置 
	基于位置的服务(LBS),可以应用在很多场景。移动端手机可以通过GPS实现定位,而PC端可以通过IP地址定位到具体城市的某个地理位置。

	可以在网关层做统一处理,由网关从远程定位服务器或者本地缓存中获取用户的地址位置信息,再将其附加到当前请求的上下文中,直接透传给后端业务服务。

	获取真实IP:
		首先从 X-Forwarded-For 中(该请求头用于记录经过的代理服务器的ip地址信息)中取值,如果有此请求,直接取出取中第1个值即可,这是由于每经过一级代理,
	就会把这次请求的来源ip追加在 X-Forwarded-For 中,因此取出第1个即意味着拿到了真实ip;如果无此请求头,则从 X-Real-IP 中取(需要有realip_module)
	模块,此值记录了客户端的真实ip地址;如果前2着都没有,再从nginx变量中取 remote_addr,此值表示最后一个代理服务器的ip地址,如果中间没有代理服务器,这
	就是真实的客户端ip地址。

	12.6.1 插件需求 
	12.6.2 插件开发 
	12.6.3 插件部署 
	12.6.4 插件配置 
	12.6.5 插件验证 

12.7 案例 7:合并静态文件 
	合并前端静态文件(js/css)的方式有两种:第一种为静态合并,即在静态资源正式发布之前就使用工具将多个静态文件合并为1个文件。第二种为动态合并,把多个静态文件
的地址以参数的形式传入给kong服务器,然后kong服务器会解析拆分这些参数,之后再请求后端静态文件服务器,最后将这些静态文件合并成一个文件缓存并返回给客户端。这样
可以有效的减少http请求次数和对静态文件服务端的压力,从而提高页面加载速度,进一步提升客户体验。

	12.7.1 插件需求 
	12.7.2 插件开发 
	12.7.3 插件部署 
	12.7.4 插件配置 
	12.7.5 插件验证 

12.8 案例 8:WAF 
	waf(web应用防火墙),通过一系列针对http/https 的安全策略来专门为web应用提供保护。

	传统的网络防火墙硬件设备主要工作在OSI模型的第三,第四层,只能检测第三次的ip报文,限制第四层的端口和封堵第四层的tcp协议,因此不可能对第七层的http通信
请求进行更进一步的验证或者攻击规则分析,难以应对诸如 sql 注入,cookie劫持,xss跨站,网页篡改,网页木马上传,敏感文件访问和恶意爬虫扫描等应用层攻击。waf的
出现有效的解决了上述问题。

	12.8.1 插件需求 
	12.8.2 插件开发 
	12.8.3 插件部署 
	12.8.4 插件配置 
	12.8.5 插件验证 

12.9 案例 9:跨数据中心 
	很多公司都有自己的 多数据中心机房,其主要目的是保证服务的高可用性,提升哦用户体验以及服务的数据容灾,使得任意一个数据中心的服务发生故障时,都能自动
调度转移到另一个数据中心,而且中间不需要人工介入。这里需要强调的是,假如数据中心的服务发生了故障,第一时间需要考虑的是可用性而非性能。
	
	如果是整个数据中心整个机房发生灾难性故障,则需要结合GSLB(全局负载均衡)或者GTM(全局流量管理),根据资源的健康情况和流量负载做出全局的智能的数据中心
调度策略。

	12.9.1 插件需求 
	12.9.2 源码调整 
	12.9.3 插件开发 
	12.9.4 插件部署 
	12.9.5 插件配置 
	12.9.6 插件验证 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

以上是关于云原生应用开发,通过一个案例手把手带你入门的主要内容,如果未能解决你的问题,请参考以下文章

云原生有什么用?一文带你了解云原生四要素!

云原生入门教程及生态链介绍

云原生全景图详解系列:带你了解云原生技术图谱

云原生游戏《云联物语》揭开神秘面纱 云鹭科技温向东带你深度了解云原生游戏领域

《云原生入门级开发者认证》学习笔记之云原生基础设施之Kubernetes

《云原生入门级开发者认证》学习笔记之云原生基础设施之Kubernetes