云服务的演变及其对分布式应用开发的影响
在QCon London大会上,Diagrid产品经理Bilgin Ibryam讨论了云原生技术(如Dapr)与面向开发者的云服务的交汇点。他探讨了从单体应用到微服务的转变,以及云服务的演变如何塑造应用架构。
早期或云前时代
在云成为主流之前,应用通常是单体架构。开发者需要处理从业务逻辑到异步交互、消息传递、打包和缓存等所有事务。应用层和基础设施由开发团队和运维团队分别管理。
内部架构的演变
2010年后,应用开发重新受到关注。Ibryam采用了两层架构来描述应用:内部架构和外部架构。内部架构是开发者完全控制的部分,如应用的不同层;外部架构是应用与外部系统的交互,如消息代理、数据库和云服务。他提到了一些影响单体应用开发的架构设计方法,如领域驱动设计、六边形架构、洋葱架构和清洁架构。随后,12因子应用和微服务原则的兴起使单体应用几乎成为反模式。
计算优先云时代
随着云计算的兴起,应用从单体架构向微服务架构转变。内部架构的变化和云的出现导致了应用与基础设施之间的分离。应用与计算资源(如容器、函数或无服务器应用)之间的集成通过API实现,通常由运维团队负责。
应用优先云时代
在应用优先云时代,网络服务更加关注应用,出现了集成云:一组为开发者设计的托管服务。应用优先生态系统将与事件处理服务(如Azure Eventgrid)、有状态服务(如AWS Step Functions)、同步服务(如Vercel Edge Middleware)和计算服务(如AWS ECS、Azure Container Apps和Google Cloud Run)进行异步绑定。通信将通过符合OpenAPI规范的API进行。
关键要点
- 专注于区分业务逻辑并重用未区分的通用能力。
- 使用基于事实标准的开放计算和开放集成绑定,以实现可移植性。
- 可移植性不仅关乎应用,还关乎模式、实践、工具和人员。
**粗体** _斜体_ [链接](http://example.com) `代码` - 列表 > 引用。你还可以使用@来通知其他用户。