Web架构与Docker实践

Web架构

一些场景

  • 12306刷票
  • 电商的各种秒杀活动
  • 微博话题热点

大型网站的架构演变

初始阶段

应用和数据分离

使用缓存改善性能

应用服务器集群,提高并发处理能力

数据库读写分离

反向代理、CDN加速

分布式文件系统和分布式数据库系统

NoSQL和搜索引擎

业务拆分

分布式服务

架构分层

不仅仅是堆机器

使用,追踪,系统优化

好的架构不是设计出来

而是演变而来

Docker实践

Docker简介

开源、轻量级的应用容器引擎

可以把开发的应用以及依赖打包到一个可移植的容器中

实现资源隔离、跨平台

处理集装箱的码头工人

Docker与虚拟机的对比

Docker3个概念

  • 镜像(Image)
  • 容器(Container)
  • 仓库(Repository)

选择新的技术

  • 能用Docker做什么?
  • 研发团队、生态怎样?
  • 看别人是什么用的?
  • 能帮我们解决什么问题?

能用Docker做什么?

  • 构建一次,在各平台上运行
  • 加速本地开发和构建流程,更加高效、轻量化
  • 高资源利用率与隔离,即插即用
  • 大规模的资源调度

生态圈

看别人是怎么用的

能帮我们解决什么问题?

  • 统一的开发环境、线上环境
  • 快速、高效的开发生命周期
  • 低耦合的服务架构,弹性调度

快速、高效的开发生命周期

新人快速搭建开发环境

开发、提交代码到GitLab

触发GitLab-CI服务

CI服务器下载最新代码、构建Docker镜像,并进行测试

自动集成测试通过后,将之前构建的镜像推送到私有Registry

运维使用新版的Docker镜像进行部署

工作流程自动化

消除线上线下环境不一致问题

实践

搭建前端工作流

搭建LNMP开发环境

更多实践,下期再说

Consul(服务发现)、Kubernetes(资源调度)等

相关资料

结束,谢谢!

Web架构与Docker实践

By wlwr

Web架构与Docker实践

  • 399