Istio

从 SOA 到微服务,企业分布式应用架构在云原生时代如何重塑?

谁都会走 提交于 2019-11-29 00:22:40
导读 :从十余年前的各种分布式系统研发到现在的容器云,从支撑原有业务到孵化各个新业务,企业的发展离不开统一的、与时俱进的技术架构。本篇文章从企业分布式应用架构层面介绍了云原生计算架构带来的变化,希望能够帮助更多企业的 IT 转型,利用云计算技术推动其成为市场竞争中的敏捷力量。 进入 21 世纪以来,我们见证了企业分布式应用架构从 SOA(Service-oriented Architecture),到微服务架构,再到云原生应用架构的演化。 为了说明企业架构演化背后的思考,我们先谈一些玄学。 第一,企业 IT 系统的复杂性(熵)符合热力学第二定律。随着时间的推演,业务的变化,企业 IT 系统的复杂度会越来越高。 第二,在计算机交互设计中有一个著名的 复杂性守恒定律 。应用交互的复杂性不会消失,只会换一种方式存在。这个原理也同样适用于软件架构。引入新的软件架构,不会降低IT系统的整体复杂性。 听到这里,是否让生命不息、折腾不止的我们感到一丝凉凉?:-) 现代软件架构的核心任务之一就是定义基础设施与应用的边界,合理切分复杂性,减少应用开发者需要面对的复杂性。换句话说,就是让开发者专注在核心价值创新上,而把一些问题交给更合适的人和系统来解决。 我们就从下面这张图开始,探究企业分布式应用架构演进背后的逻辑。 蜕变之痛 - SOA 2004 年,IBM 建立 SOA 全球设计中心,我作为研发

京东云的云原生理念及 Serverless 最佳实践

橙三吉。 提交于 2019-11-28 22:02:48
在云原生技术全面爆发之前,我们开发的应用可以被称为非云原生应用,非云原生应用并没有考虑到应用的弹性和规模性,甚至很多都不具备扩展性,当业务规模扩大时,特别依赖硬件的升级,进而带来了很多问题。云原生的出现带来了新的开发方式,然而这一技术处于快速的发展过程中,导致很难定义清楚各类概念和理解各种技术名词。 为此,Infoq专门采访了京东云中间件团队负责人李道兵,了解京东云在云原生领域的理念和相关探索,以期对开发者有所帮助。以下为本次采访的整编内容。 如今,企业很难在聊云原生这个话题时避开容器,但是往回倒四年,容器在国内的应用并不普遍,大多集中在技术实力较强的互联网大厂,但也并非后来大火的 Docker,当时的不少文章还将这群早期实践者称作“敢于吃螃蟹的人”。显然,在云原生领域,容器的发展是推动其落地的重要条件,但最大的需求并不是为了使用容器,这个逻辑本身就很奇怪,为了出现而出现的技术往往不会有好的结局,容器所解决的问题才是组织或开发者最大的需求。那么,组织现阶段对云原生实践最大的需求是什么呢? 过去几个月,InfoQ 先后就云原生这一话题采访了阿里巴巴、腾讯、青云、居然之家、华为等众多厂商,对值得关注的开源技术及相关落地实践进行了初步探索。本文,InfoQ 对京东云中间件产品研发部高级总监李道兵进行了独家专访,了解京东云在云原生领域的理念和相关探索。 云原生理念 关于云原生

五, 跨语言微服务框架

余生颓废 提交于 2019-11-28 21:25:04
在使用微服务会面临最大的一个问题也就是在服务数量增加带来的排查成本和监控成本,大家为了解决这些成本也衍生出了很多工作,当然在Istio中也很好的融合了这些组件,默认安装下就已经带上了这些组件(zipkin + jaeger , prometheus + grafana),本节就来看看怎么来使用这些组件 附上: 喵了个咪的博客: w-blog.cn Istio官方地址: https://preliminary.istio.io/zh Istio中文文档: https://preliminary.istio.io/zh/docs/ PS : 此处基于当前最新istio版本1.0.3版本进行搭建和演示 一. 清理bookinfo重新创建 先重置官方示例bookinfo回到最初的状态: 运行清理bookinfo脚本,并且重新创建 > ./istio-1.0.3/samples/bookinfo/platform/kube/cleanup.sh namespace ? [default] istio-test using NAMESPACE=istio-test Deleted config: destinationrules details ... Application cleanup successful # 重新初始化 > kubectl apply -n istio-test -f

一, 跨语言微服务框架

北城以北 提交于 2019-11-28 21:24:50
微服务的概念已经在各大公司实践开了,以Java为代表的spring boot成为了微服务的代表,K8S+Docker成为了微服务运行的最佳环境,微服务的概念已经离我们没有那么遥远了。 当然微服务是复杂的,除了组件繁多还需要代码做出很多改造才能享受到它带来的优势,那么有没有一种方式可以不需要太多代码改动就能够在多种不同的开发语言中灵活使用呢? 基于服务网格Istio就诞生了,拨云见日我们今天就来一同学习了解微服务和Istio相关的知识. 附上: 喵了个咪的博客: w-blog.cn Istio官方地址: https://preliminary.istio.io/zh Istio中文文档: https://preliminary.istio.io/zh/docs/ PS : 此处基于当前最新istio版本1.0.3版本进行搭建和演示,不同的版本各种细节会有些许不同! 一. 微服务 在开始讲解Istio之前我们需要先了解微服务的概念,以及在微服务管理中常常需要使用到的一些列的组件: 服务注册:服务提供方将自己调用地址注册到服务注册中心,让服务调用方能够方便地找到自己。 服务发现:服务调用方从服务注册中心找到自己需要调用的服务的地址。 负载均衡:服务提供方一般以多实例的形式提供服务,负载均衡功能能够让服务调用方连接到合适的服务节点。并且,节点选择的工作对服务调用方来说是透明的。 服务网关

Service Mesh 发展趋势(续):棋到中盘路往何方 | Service Mesh Meetup 实录

。_饼干妹妹 提交于 2019-11-28 19:46:37
敖小剑,蚂蚁金服高级技术专家,十七年软件开发经验,微服务专家,Service Mesh 布道师,ServiceMesher 社区联合创始人。 本文内容整理自 8 月 11 日 Service Mesher Meetup 广州站主题演讲,完整的分享 PPT 获取方式见文章底部。 前言 标题“Service Mesh发展趋势(续)”中的“续”是指在今年5月底,我在 CloudNative Meetup上做了一个“ Service Mesh发展趋势:云原生中流砥柱 ”的演讲,当时主要讲了三块内容:Service Mesh 产品动态、发展趋势、与云原生的关系。后来有同学反应希望部分感兴趣的内容能讲的更深一些,所以今天将继续“Service Mesh 发展趋势”这个话题。 今天给大家分享的内容有部分是上次演讲内容的深度展开,如社区关心的 Mixer v2 以及最近看到的一些业界新的技术方向,如 web assembly 技术,还有产品形态上的创新,如 google traffic director 对 Service Mesh 的虚拟机形态的创新支持。 在 Service Mesh 出道四年之际,也希望和大家一起带着问题来对 Service Mesh 未来的发展进行一些深度思考。 在正式开始分享之前,让我们先轻松一下,下面是最近流行的梗,各种灵魂拷问: 我们今天的分享内容,将效仿上面的方式

Istio 太复杂?KubeSphere基于Ingress-Nginx实现灰度发布

此生再无相见时 提交于 2019-11-28 18:20:21
在 Bookinfo 微服务的灰度发布示例 中,KubeSphere 基于 Istio 对 Bookinfo 微服务示例应用实现了灰度发布。有用户表示自己的项目还没有上 Istio,要如何实现灰度发布? 在 Ingress-Nginx (0.21.0 版本) 中,引入了一个新的 Canary 功能,可用于为网关入口配置多个后端服务,还可以使用指定的 annotation 来控制多个后端服务之间的流量分配。 KubeSphere 在 2.0.2 的版本 中,升级了项目网关 (Ingress Controller) 版本至 0.24.1,支持基于 Ingress-Nginx 的灰度发布。 上一篇文章已经对灰度发布的几个应用场景进行了详细介绍,本文将直接介绍和演示基于 KubeSphere 使用应用路由 (Ingress) 和项目网关 (Ingress Controller) 实现灰度发布。 说明: 本文用到的示例 yaml 源文件及代码已上传至 GitHub ,可 clone 至本地方便参考。 Ingress-Nginx Annotation 简介 KubeSphere 基于 Nginx Ingress Controller 实现了项目的网关,作为项目对外的流量入口和项目中各个服务的反向代理。而 Ingress-Nginx 支持配置 Ingress Annotations

2018杭州云栖大会,梁胜博士的演讲PPT来啦!

丶灬走出姿态 提交于 2019-11-28 11:05:59
2018杭州云栖大会已经结束,Rancher作为阿里云的紧密合作伙伴,Rancher Labs联合创始人兼CEO梁胜博士,在9月21日上午受邀出席大会并作题为**“如何能让每个人都用Kubernetes和Service Mesh”**的演讲。 在过去几年中,Kubernetes已成为容器管理的标准。以Istio为代表的Service Mesh技术近期也崭露头角。虽然这些技术有可能会极大改善软件的开发和运维,大部机构还在使用Kubernetes和Istio的初期。在这个演讲中,梁胜博士讨论了人们在开始使用Kubernetes和Istio时遇到的一些挑战,同时进一步探讨了如何能让这些技术更容易使用、从而能在每个机构中都大显身手。 Rancher创造性的、可纳管已有Kubernetes集群的多集群管理功能,解决了生产环境中企业用户可能面临的基础设施不同的困境。同时,Rancher简洁直观的界面风格及操作体验,将解决业界遗留已久的Kubernetes原生UI易用性不佳以及学习曲线陡峭的问题。 演讲PPT福利自取! 来源: oschina 链接: https://my.oschina.net/u/3330830/blog/2208628

二, 跨语言微服务框架

与世无争的帅哥 提交于 2019-11-27 15:02:23
当我们知道Istio是一个好东西,能够帮助我们快速实现微服务化中的一些关键节点,那么下一步就需要考虑怎么使用Istio了,Istio现在版本是和Kubernetes强关联在一起的,如果大家还不是太了解Kubernetes可以先从笔者的文章中了解,通过Kubernetes生态Istio可以非常方便的进行部署和使用。 附上: 喵了个咪的博客: w-blog.cn Istio官方地址: https://preliminary.istio.io/zh Istio中文文档: https://preliminary.istio.io/zh/docs/ PS : 此处基于当前最新istio版本1.0.3版本进行搭建和演示 一. Kubernetes准备工作 搭建部署Istio时需要先准备好Kubernetes环境,笔者这边使用的是Rancher进行环境的搭建,可以参考笔者的以下博文: Docker应用容器引擎介绍与搭建 - 喵了个咪博客空间 - 开源中国 Kubernetes(二) - 使用Rancher部署K8S集群(搭建Rancher) - 喵了个咪博客空间 - 开源中国 Kubernetes(三) - 使用Rancher部署K8S集群(搭建Kubernetes) - 喵了个咪博客空间 - 开源中国 Docker应用容器引擎介绍与搭建 - 喵了个咪的博客 - CSDN博客