谢孟军,GopherChina 创始人,Go技术专家,目前就职于著名外企公司,著名开源框架 beego 开发者,畅销书《 Go Web编程》作者,国内 Go 发展的主要推动者之一。
随着各行各业将微服务应用于架构设计,促发了更多各领域微服务的创新实践。
微服务中,如何解决服务管理、应用管理、负载均衡、雪崩等一系列痛点问题?
现在有哪些值得参考的微服务创新架构,能够给架构师们更多启发?
The microservice architecture structures an application as a set of loosely coupled, collaborating services. Maintaining data consistency is challenging since each service has its own database to ensure loose coupling. To make matters worse, for a variety of reasons distributed transactions are not an option for modern applications.
In this talk we describe an alternative transaction model known as a saga. You will learn about the benefits and drawbacks of using sagas. We describe how sagas are eventually consistent rather than ACID and what this means for developers. You will learn how to design and implement sagas in a Java application.
此次分享主要介绍近几年 bilibili 在微服务过程中的微服务架构经验,分为不同的纬度去解析在微服务落地中的细节实现。
比如网关如何聚合服务,难点在哪里?
在服务治理里面,服务发现应该用 zookeeper 还是其他方式?
配置文件在服务治理中如何动态加载,开关如何启用?
缓存作为必不可少的环节,需要重点关注哪些性能细节?
业务要求比较严格的一致性,缓存、存储、队列如何保证一致性?
可用性又如何在众多微服务之间协作过程中达成?
带着这些问题,慢慢听我道来…
了解微服务架构设计中的,各个重要环节,包括网关设计、服务治理、缓存设计、一致性设计、可用性设计等细节
同程旅游在近些年中技术平台升级了好几代,也进行了微服务化改造,在微服务实践过程中解决了原来许多架构上的问题(耦合、扩展、熔断、降级、调用治理、多语言等)。
但这些问题被解决掉后我们进行了更进一步的升级,将 Serverless 想法引入架构中并开发上线了一个基于我们私有云的 Serverless 平台,现在整个同程的 Web 站点和部分变化快的轻型都这个 Serverless 之上开发。
为什么我们在微服务之后还要做 Serverless 架构呢?主要 Serverless 带来的好处正好解决我们最新的痛点:业务快速变化中如何更快地开发。其实在这快速地开发中有很多是快不起来的(开发环境的问题,上线部署的问题,应用弹性设计问题,可运维性的问题等等)。
总之在这过程中编程者考虑程序以外的事情太多,总结为一句话“一条 SQL 到一个服务的距离到底有多远”,很远,我们要做的是让距离变得更短一些。
另外一点在于互联网流量的变化太大,时大时小,这让大量部署的服务器资源使用率不够高,我们做到的是让应用在被使用的时候才产生资源的占有,不跑不占资源,本次主要分享同程在 Serverless 架构实践过程中的一些坑与事。