Provide Best Programming Tutorials

Terraform 常用命令详解

Terraform是一个面向客户端的工具,所以对所有资源的管理都是通过Terraform命令来实现的。本文将主要围绕资源的管理和状态的管理来两个方面来介绍涉及到的常用命令。 1 资源管理常用命令 Terraform 对资源的管理主要是对资源生命周期的管理,即通过命令实现对Terraform模板中所定义资源的创建,修改,查看和删除。对这部分的讲解,在之前的文章《Terraform 一分钟部署阿里云ECS集群》的 #3.3 章节有过详细的介绍和代码的演示,大家可移步了解。本文只做基本的回顾。 1.1 terraform plan:资源的预览 plan 命令用于对模板中所定义资源的预览,主要用于以下几个场景: 预览当前模板中定义的资源是否符合管理预期,和Markdown的预览功能类似如果当前模板已经存在对应的state文件,那么 plan 命令将会展示模板定义与state文件内容的diff结果,如果有变更,将会展示结果并在下方显示出来对DataSource而言,执行 plan 命令,即可直接获取并输出所要查询的资源及其属性 1.2 terraform apply:资源的新建和变更 apply 命令用于实际资源的新建和变更操作,为了安全起见,在命令运行过程中增加了人工交互的过程,即需要手动确认是否继续,当然也可以通过 --auto-approve 参数来跳过人工确认的过程。apply 命令适用于以下几种场景: 创建新的资源通过修改模板参数来修改资源的属性如果从当前模板中删除某个资源的定义, apply 命令会将该资源彻底删除。可以理解为“资源的移除也是一种变更” 1.3 terraform show:资源的展示 show 命令用于展示当前state中所有被管理的资源及其所有属性值。 1.4 terraform destroy:资源的释放 destroy 命令用于对资源的释放操作,为了安全起见,在命令执行过程中,也增加了人工交互的过程,如果想要跳过手动确认操作,可以通过 --force 参数来跳过。terraform destroy 默认会释放当前模板中定义的所有资源,如果只想释放其中某个特定的资源,可以通过参数 -target=<资源类型>.<资源名称>  来指定。 1.5 terraform import:资源的导入 import 命令用于将存量的云资源导入到terraform…

Continue Reading

Terraform 是什么

作为本系列的引子,本文将从 Terraform 是什么开始介绍。 Terraform 是什么 如果两年前问 Terraform 是什么,国内熟悉它的人可能并不是很多,毕竟它是2014年的新生儿,提到资源编排,大家能优先想到的也是 AWS 的 CloudFormation,Azure 的 ARM 以及阿里云的 ROS。但是如果今天再问“Terraform 是什么”,相信很大一部分人对它不再陌生,并且一些公司或者感兴趣的开发者已经开始使用 Terraform 来管理他们的基础设施。不论是 Hashicorp 的官方宣传,还是阿里云云栖社区的布道;不论是 Devops的持续发展,还是云原生的火热传播;不论是国内最初只有阿里云支持,还是后来国内其他云厂商的陆续支持,Terraform 近两年在国内被越来越多的提及。 在此之前,不止一篇云栖文章介绍过Terraform是什么,本文将结合Terraform的官方文档,对这些文章中的介绍做一个整理和总结。 2014年,Hashicorp 公司推出了一款产品 Terraform Terraform 官方的定义如下: Terraform is a tool…

Continue Reading

Terraform 的几个关键概念

Terraform 关键概念 在使用Terraform的过程中,通常接触到很多名词,如configuration,provider,resource,datasource,state,backend,provisioner等,本文将一一跟大家介绍这些概念。 Configuration:基础设施的定义和描述 “基础设施即代码(Infrastructure as Code)”,这里的Code就是对基础设施资源的代码定义和描述,也就是通过代码表达我们想要管理的资源。 # VPC 资源 resource "alicloud_vpc" "vpc" { name = "tf_vpc" cidr_block = "172.16.0.0/16" } # VSwitch 资源 resource "alicloud_vswitch" "vswitch" { vpc_id =…

Continue Reading

消息队列:秒杀时如何处理每秒上万次的下单请求?

在课程一开始,我就带你了解了高并发系统设计的三个目标:性能、可用性和可扩展性,而 在提升系统性能方面,我们一直关注的是系统的查询性能。也用了很多的篇幅去讲解数据库 的分布式改造,各类缓存的原理和使用技巧。究其原因在于,我们遇到的大部分场景都是读 多写少,尤其是在一个系统的初级阶段。 比如说,一个社区的系统初期一定是只有少量的种子用户在生产内容,而大部分的用户都 在“围观”别人在说什么。此时,整体的流量比较小,而写流量可能只占整体流量的百分之 一,那么即使整体的 QPS 到了 10000 次 / 秒,写请求也只是到了每秒 100 次,如果要对 写请求做性能优化,它的性价比确实不太高。 但是,随着业务的发展,你可能会遇到一些存在高并发写请求的场景,其中秒杀抢购就是最 典型的场景。假设你的商城策划了一期秒杀活动,活动在第五天的 00:00 开始,仅限前 200 名,那么秒杀即将开始时,后台会显示用户正在疯狂地刷新 APP 或者浏览器来保证自 己能够尽量早的看到商品。 这时,你面对的依旧是读请求过高,那么应对的措施有哪些呢? 因为用户查询的是少量的商品数据,属于查询的热点数据,你可以采用缓存策略,将请求尽 量挡在上层的缓存中,能被静态化的数据,比如说商城里的图片和视频数据,尽量做到静态 化,这样就可以命中 CDN…

Continue Reading

Zipkin 和 Pinpoint 选型对比

一、背景 Pinpoint 是一款开源的应用程序性能管理(Application Performance Management)工具,开发团队来自韩国的搜索引擎门户 Naver(截止到 2016 年 5月,Alexa 全球排名第 58 位,韩国本土排名第一位)。该项目于 2012 年 7 月开始,2015 年 1 月开源,至今的稳定版本是 1.5.2。与 Zipkin 类似,其理论基础也是基于 Google Dapper 的那篇论文。 二、Pinpoint 与 Zipkin 的差异性 Pinpoint…

Continue Reading
  • 1
  • 2
Close Menu