如何通过使用亚马逊云服务AWS 实现从无到有 只用6天搭建完成初创公司的技术架构设计

   10/30/2016 6:42 pm   大 中 小 简体 繁體 字体:
1 颗星2 颗星3 颗星4 颗星5 颗星 (点击来评价哦~_~)
    414人参与

初创公司想要或者需要什么样的技术架构,我感觉套用京东的口号就很形象:需要多、快、好、省的技术架构:

  • 多:拥有丰富的云服务可供选择,能不自己做就不自己做
  • 快:针对业务需要可以快速获得资源与服务
  • 好:强调扩展性和高可用,既不要在一开始被“钱”束缚住,又需要良好的用户体验(能用是最基本的用户需求)
  • 省:可以弹性伸缩,并按需付费是最好的节省

初创公司可以按照如下方法渐进式使用云服务

    • 按业务生命周期方法:从测试开始熟悉操作,再到后续生产部署,逐步习惯云服务
    • 按应用规模变化方法:从一台EC2实例开始,再根据业务发展引入静态数据分离,关系数据库扩展,缓存等需求,逐步了解更多云服务
    • 按业务需要方法:从基础的计算/存储/网络等IaaS服务开始,在逐步根据业务将消息队列、全文搜索、邮件发送等直接使用PaaS服务,逐步将精力放入业务创新

AWS服务的解决方案

  • 敏捷、快速、灵活
  • 低启动成本、随用随付费
  • 不再需要猜测容量
  • 集中精力创新
  • 摆脱无差异化的体力活
  • 数分钟就可以全球化部署
  • IT整体成本降低

云架构设计的7大建议原则

  1. 设计时考虑任何系统都会失效
  2. 松耦合和无状态设计(只有无状态的应用才能更好的快速伸缩)
  3. 设计可扩展性和自动缩放
  4. 安全贯穿设计始终,体现在每层中
  5. 不要过多担心约束和失败(比如每次处理的能力还不够多,要做到的是清晰的了解当前的设计思路,因为云是无限扩展的,所以干好一件事情后云中可以通过复制而扩展能力)
  6. 多考虑平行分布式处理
  7. 充分使用各种不同的服务

如何在六天里完成初创公司的技术架构设计在亚马逊云服务AWS上的搭建和部署

 第1天,开发和私测

首台服务器(从云中启动一个vm开始)

  • 通过云中的EC2实例来进行测试(运行诸如apache、mysql等)
  • 可以部署多台来分角色,因为刚开张,先从1台vm开始
  • 为服务器绑定IP地址,(限制:每个账户可以有5个Elastic IP地址)
  • 设置DNS域名来指向Elastic IP

AWS通信框架图

第2天,推出和公测

要测试了,当初的vm不够用,需要更大的服务

  • 加大块存储容量(EBS)
  • 使用正确的虚拟机类型(如cpu核多、内存多、GPU卡、硬盘读写速度快等)
  • 按需改变虚拟机大小
  • 了解方案为长期永久,具有过渡性(目标是了解AWS中的各种操作、限制和性能方案)
  • 还没有容错设计

分开网站应用和数据层

  • 更多容量
  • 每层分别扩展
  • 细调每层的实例
    • 实例类型
    • 存储
  • 注重安全
    • 使用防火墙
    • 数据库至于VPC私有子网

如何选择数据库?SQL or NoSQL?

为什么通常使用关系型数据库?

  • SQL非常成熟,功能丰富
  • 许多现成的代码、工具和知识
  • 扩展设计思路明确发发可行
    • 例如:对频繁读取的apps,采用读写分离
  • 现实:未来将逐渐使用多种数据库
    • 有些工作负载使用NoSQL更合适
    • 为每项工作选择合适的工具

经验分享:关系型数据库很复杂

  • 关系型数据库要实现高可扩展性,管理运营起来往往很困难
  • 管理不善的关系型数据库,会造成:数据不匹配和IT系统宕机下线的原因
  • 针对初创企业团队小,人员少在兼职,尤为如此

AWS提供托管的关系型数据库

MySQL、Aurora、PostgreSQL、Oracle、SQL Server

AWS数据库种类分类

如何进一步提升效率?

  • 部署静态内容—Amazon S3
    • 高可用性、易扩展的对象存储
    • 任何格式的静态文件(javascript,CSS,images,videos)
    • 用户可以直接上传
    • S3 URLs 可以从S3直接提供
    • 让网站服务器集中处理动态内容
  • 缓存这些静态内容—Amazon CloudFront
    • 全世界分布的边缘站点
    • 在边缘站点提供缓存
      – 减少延迟 Reduce latency
      – 减轻原始服务器的负载
      – 静态和动态内容
    • 更少的时间缓存大量热点数据
    • 优化连接
      – 优化连接路径
      – 重复使用连接
      – 对不能缓存的内容也有帮助(减轻负担)

AWS route53 cloudfront搭建框架图

  • 数据库缓存—Amazon Elastic Cache
    • 从内存读取速度更快
    • 减少数据库的工作负载
    • 部署简单
    • 完全托管(自动替换失效节点、负责升级补丁管理)
    • 好的弹性扩展
    • 兼容性(支持memcache,redis)

AWS数据库框架图

1 2 下一页

关键词: , , , , , , , 

最多人阅读内容