当前位置: 首页 > news >正文

千图网网站怎么做深圳企业网站建设服务好

千图网网站怎么做,深圳企业网站建设服务好,微信小程序开发管理,做书的网站众所周知#xff0c;Terraform 是一个开源的自动化的资源编排工具#xff0c;支持多家云服务提供商。阿里云作为第三大云服务提供商#xff0c;terraform-alicloud-provider 已经支持了超过 90 多个 Resource 和 Data Source#xff0c;覆盖20多个服务和产品#xff0c;吸…众所周知Terraform 是一个开源的自动化的资源编排工具支持多家云服务提供商。阿里云作为第三大云服务提供商terraform-alicloud-provider 已经支持了超过 90 多个 Resource 和 Data Source覆盖20多个服务和产品吸引了越来越多的开发者加入到阿里云Terraform生态的建设中。 随着 Resource 和 DataSource 的不断增加和完善业务架构的不断发展Terraform 模板编写的成本和复杂度也在不断的增加。如何让Terraform 模板更加简单和重用就是本文所要解决的问题。 本文将通过一个典型的负载均衡架构向大家介绍如何使用 Module 简化 Terraform 的模板。 如图所示这个架构中包含 ECS 实例SLB 实例RDS 实例OSS 等资源和服务同时所有的 ECSRDS 和部分 SLB 在一个 VPC 网络环境中。 将所有Resource放在一个模板中进行统一管理 面对这样的一个架构模板可以有多种写法。通常的写法是将架构中涉及到的所有资源写到一个模板中并通过参数和关系型 resource 将这些资源关联起来如下所示 // Images data source for image_id data alicloud_images default {... } // Instance_types data source for instance_type data alicloud_instance_types default {... } // Zones data source for availability_zone data alicloud_zones default {... } // A new VPC resource alicloud_vpc vpc {name default... } // Two new VSwitches resource alicloud_vswitch vswitches {count 2vpc_id ${alicloud_vpc.vpc.id}... } // A new Security Group resource alicloud_security_group default {vpc_id alicloud_vpc.vpc.id}... } // Two Web Tier instances resource alicloud_instance web {count 2image_id data.alicloud_images.default.images.0.idinstance_type data.alicloud_instance_types.default.instance_types.0.idsecurity_groups [${ alicloud_security_group.default.id }]vswitch_id ${element(alicloud_vswitch.vswitches.*.id, count.index)}... } // Two Application Tier instances resource alicloud_instance app {count 2image_id ${data.alicloud_images.default.images.0.id}instance_type ${data.alicloud_instance_types.default.instance_types.0.id}security_groups [${alicloud_security_group.default.id}]vswitch_id ${element(alicloud_vswitch.vswitches.*.id, count.index)}... } // A SLB Instance for intranet resource alicloud_slb intranet {internet falsevswitch_id ${alicloud_vswitch.vswitches.0.id}... } // Attach Ecs instances resource alicloud_slb_attachment intranet {load_balancer_id ${alicloud_slb.intranet.id}instance_ids [${alicloud_instance.web.*.id}, ${alicloud_instance.app.*.id}] } // SLB Instance Resource for internet resource alicloud_slb internet {internet true... } // Attach Ecs instances resource alicloud_slb_attachment internet {load_balancer_id ${alicloud_slb.internet.id}instance_ids [${alicloud_instance.web.*.id}] } // Two RDS Instance resource alicloud_db_instance default {count 2vswitch_id ${element(alicloud_vswitch.vswitches.*.id, count.index)}... } // Add a account for each RDS instance resource alicloud_db_account default {count 2instance_id ${element(alicloud_db_instance.default.*.id, count.index)}... } // Add a database for each RDS instance resource alicloud_db_database default {count 2instance_id ${element(alicloud_db_instance.default.*.id, count.index)}... } // A OSS Bucket resource alicloud_oss_bucket default {... } 这样写的好处是所有资源都在一个模板中管理编写时可以很清楚了解资源之间的引用关系但是当资源不断增加时扩展非常不灵活资源间关系越复杂模板越难以维护。 分类管理目录作为单元化资源 从架构图和上文模板中不难看出并不是所有的Resource都有直接关联关系比如VPC只和VSwitch和SecurityGroup有关与其他资源的创建无直接关联关系。因此为了使整个架构的逻辑可以更加清楚的展示在模板中我们可以考虑对资源进行分类将每一类资源用一个单独的目录进行管理最后用一个模板来管理所有的目录进而完成对所有资源及资源关系的串联如下所示 ├── main.tf ├── variables.tf ├── outputs.tf ├── modules/ │ ├── vpc/ │ │ ├── variables.tf │ │ ├── main.tf │ │ ├── outputs.tf │ ├── slb/ │ │ ├── variables.tf │ │ ├── main.tf │ │ ├── outputs.tf │ ├── ecs/ │ ├── rds/ │ ├── oss/ 将该架构中的资源分为网络VPC负载均衡SLB计算ECS数据库RDS和存储OSS这几类然后将上文模板中的资源分别在对应的目录中予以实现。 接下来用统一的模版main.tf将这些目录关联起来如下所示 // VPC module module vpc {source ./modules/vpcname new-netwtok... } // Web Tier module module web {source ./modules/ecsinstance_count 2vswitch_ids ${module.vpc.this_vswitch_ids}... } // Web App module module app {source ./modules/ecsinstance_count 2vswitch_ids ${module.vpc.this_vswitch_ids}... } // SLB module(intranet) module slb {source ./modules/slbname slb-internalvswitch_id ${module.vpc.this_vswitch_ids.0.id}instances ${concat(module.web.instance_ids, module.app.instance_ids,)}... } // SLB module(internet) module slb {source ./modules/slbname slb-externalinternet trueinstances ${module.web.instance_ids}... } // RDS module module oss {source ./modules/rdsname new-rds... } // OSS module module oss {source ./modules/ossname new-bucket... } 可以看出main.tf中资源的结构更加清楚更加接近于架构图。 同时大家已经注意到了main.tf引入了一个 module通过module将资源目录串联起来。 什么是Module Module 是 Terraform 为了管理单元化资源而设计的是子节点子资源子架构模板的整合和抽象。正如本文架构中提到的在实际复杂的技术架构中涉及到的资源多种多样资源与资源之间的关系错综复杂资源模版的编写扩展维护等多个问题的成本都会不断增加。将多种可以复用的资源定义为一个module通过对 module 的管理简化模板的架构降低模板管理的复杂度这就是module的作用。 除此之外对开发者和用户而言只需关心 module 的 input 参数即可无需关心module中资源的定义参数语法等细节问题抽出更多的时间和精力投入到架构设计和资源关系整合上。 开源Module使其更完善更分享更便捷 上文中虽然已经实现了module但是这个module只能在自己本地机器上实现无法实现与他人的实时分享无法实现团队内部的及时共享。 Terraform 提供了 Module 的注册地址将自己的module上传到Github并注册为一个Terraform Module后即可将远端的Module应用到我们自己的模板中。 利用开源 module我们可对上文中的模板进行完善 // VPC module module vpc {source alibaba/vpc/alicloud... } // Web Tier module module web {source alibaba/ecs-instance/alicloud... } // Web App module module app {source alibaba/ecs-instance/alicloud... } // SLB module(intranet) module slb {source alibaba/slb/alicloud... } // SLB module(internet) module slb {source alibaba/slb/alicloud... } // OSS module module rds {source terraform-alicloud-modules/rds/alicloud... } // OSS module module oss {source terraform-alicloud-modules/oss/alicloud... } Module 让资源模板架构更清楚模板管理更简单开源 Module 让资源模板更便捷更分享。除此之外开源 Module 可实现对模板的版本控制基于不同的版本实现不同架构不断升级的控制和完善。 欢迎加入 Terraform AliCloud Modules 目前我们已经在在 Terraform Module 上发布了一些常用的 Module但这些 Module 远远无法满足大家多种多样的技术架构和复杂的应用场景非常欢迎大家可以将自己的模板Module注册到官方 Module 上借助社区的力量不断完善自己模板丰富我们的社区。 原文链接 本文为云栖社区原创内容未经允许不得转载。
http://www.zqtcl.cn/news/958840/

相关文章:

  • 珠海正规网站制作系统东莞建站多少钱
  • 做网站框架图哪个在线网站好用中铁三局招聘官网
  • wordpress百度站内搜索wordpress 修改用户名
  • 网络企业网站建设方案做网站大概需要多少费用
  • 网站301是什么意思自动友链网
  • 淘宝客怎么建设自己网站wordpress links插件
  • 深圳设计网站公司网站芜湖网站建设工作室
  • 礼品类网站建设策划方案郑州手机网站制作
  • 江桥做网站wordpress代码高亮插件
  • 合肥网站制作哪家好建设网站培训班
  • 优化站诊断山东大型网站建设
  • 网页设计与制作个人网站网络开发工程师
  • 沈阳网站关键词优化哪家好外贸营销网站制作公司
  • 连云港做网站的临沂网站建设有哪些
  • 做毕设的网站万wordpress图片怎么居中
  • 首页网站模板网站外链分析怎么做
  • so域名的网站有哪些结合公众号小店做网站
  • 阜宁专业做网站做信息网站能挣钱吗
  • wordpress 怎么手动更新宝安网站 建设seo信科
  • 腾讯的网站建设用了多少钱找人合伙做网站平台
  • 企业网站功能模块介绍服务器免费体验
  • 小程序制作收款网站结构优化的优化包括
  • 北京市建设工程质监站网站poi player wordpress
  • php网站开发工程师招聘网自己做小程序要钱吗
  • 两学一做考试网站空间网
  • 齐诺网站建设东莞网站建设做网站集团网站群
  • 网站运营策略如何做软件网站开发培训
  • 数据库型网站wordpress上传工具
  • 太原建站公司模板宁波seo公司哪家好
  • 电商网站都是用什么做的承接电商网站建设