pulumi

一文读懂云上DevOps能力体系

你说的曾经没有我的故事 提交于 2021-02-04 12:46:36
简介: 阿里云ECS自动化运维套件架构师,深度拆解云上运维能力体系建设:自动化运维等级金字塔、自动化运维的进阶模式、DevOps的基础核心、云上标准化部署三大能力…… 序言 云计算行业已经有十多年的发展了,话题早已从“要不要上云”转向“如何用好云”。“要不要”其实是一个决策性的话题,直到决策出来一个结果了,话题就算结束了。而“如何用好云”却是一个持续性的话题。 一般来说,在规划阶段开始,企业就会开始思考“如何用好云”,这个话题会伴随用云的整个过程。如果简单地从工作类型划分,除了业务代码的研发(Dev),其他的部分都可以称为运维(Ops),包含资源创建(环境部署)、应用部署、资源管理、资源监控、报警、故障排查等工作。 笔者从事云计算工作超过五年时间,参与开发过多款云产品,可以说既是云计算产品的消费者,也是云计算产品的生产者。在这里,笔者谈一谈对云上DevOps能力体系的多年思考和总结,希望对准备上云或是已经上云的运维人员有所帮助。 1 自动化运维等级金字塔 从运维自动化等级和程度来看,DevOps其实是一种非常高级的自动化,不仅自动化程度比较高,而且对于自动化的完成方式有着非常严格的定义。关于运维自动化与DevOps的关系,其实可以非常好地参考汽车自动驾驶技术分级标准,笔者做了个对比图,如图1。 图1:自动化运维等级金字塔 如图1,自动化运维可分为5个等级, 分别是手动运维、半手工

一文读懂云上DevOps能力体系

陌路散爱 提交于 2021-02-04 01:14:18
序言 云计算行业已经有十多年的发展了,话题早已从“要不要上云”转向“如何用好云”。“要不要”其实是一个决策性的话题,直到决策出来一个结果了,话题就算结束了。而“如何用好云”却是一个持续性的话题。 一般来说,在规划阶段开始,企业就会开始思考“如何用好云”,这个话题会伴随用云的整个过程。如果简单地从工作类型划分,除了业务代码的研发(Dev),其他的部分都可以称为运维(Ops),包含资源创建(环境部署)、应用部署、资源管理、资源监控、报警、故障排查等工作。 笔者从事云计算工作超过五年时间,参与开发过多款云产品,可以说既是云计算产品的消费者,也是云计算产品的生产者。在这里,笔者谈一谈对云上DevOps能力体系的多年思考和总结,希望对准备上云或是已经上云的运维人员有所帮助。 1 自动化运维等级金字塔 从运维自动化等级和程度来看,DevOps其实是一种非常高级的自动化,不仅自动化程度比较高,而且对于自动化的完成方式有着非常严格的定义。关于运维自动化与DevOps的关系,其实可以非常好地参考汽车自动驾驶技术分级标准,笔者做了个对比图,如图1。 图1:自动化运维等级金字塔 如图1,自动化运维可分为5个等级, 分别是手动运维、半手工/半自动化运维、高度自动化、标准化运维和AIOp s,分别对应自动化驾驶的6个Level,其中运维自动化L2对应了自动驾驶的Level 1和2

IaC云资源编排-Terraform

谁说我不能喝 提交于 2020-12-17 08:28:04
Terraform 2019/10/14 Chenxin 整理 转自: https://cloud.tencent.com/developer/article/1469162 IaC与资源编排 IaC(Infrastructure as Code)这一理念随着云技术的普及以及多云时代的到来而被广泛接受和认可,特别是众多生态工具产品的涌现使得IaC由概念逐渐成为现实。 1.与传统的“ClickOps”管理模式相比,IaC主要可以在以下3方面优势: 提高资源部署的速度和效率 所有的云服务都可以通过代码的方式进行部署、维护和管理,极大地提高了规模部署下的生产效率; 配置的一致性 由于所有的云服务管理都是通过代码的方式实现,因此相关的软件方法论也可以类似的迁移到IaC使用中来,能够提高开发、测试、运维环境的配置一致性,降低人为失误; 节约成本 IaC的引入可以更加高效的应对多云管理,既可以降低Opex,也可以通过多云部署方案降低资源使用成本; 2.目前,常见的IaC工具主要分为两类: 一类是配置管理类,如Chef,Puppet等,该类产品主要优势在于底层的单服务器、单服务的配置管理; 一类是资源编排类,如Terraform、Pulumi等,该类产品主要优势在于更高层面的资源编排,根据资源描述文件创建具有相互依赖关系的云资源或服务并进行配置。 值得注意的是

使用你喜欢的编程语言,将基础设施作为代码进行配置

久未见 提交于 2020-11-30 10:26:48
用 Node.js 或其他编程语言为你提供启动基础设施所需的一切服务。 当你在 IT 和技术的世界里遨游时,你会反复遇到一些术语。其中有些术语很难量化,随着时间的推移,可能会有不同的含义。 “DevOps” 就是一个例子,这个词似乎(在我看来)会根据使用它的人而改变;最初的 DevOps 先驱者可能甚至不认识我们今天所说的 DevOps。 如果你是一个软件开发者,“基础架构即代码Infrastructure as Code”(IaC)可能是其中一个术语。IaC 是使用与你编写面向用户的功能相同的软件开发实践来声明应用程序运行的基础设施。这通常意味着使用 Git 或 Mercurial 等工具进行版本控制,使用 Puppet、Chef 或 Ansible 进行 配置管理 。在基础设施供应层,最常见的技术是 CloudFormation(专用于 AWS),或开源替代品 Terraform ,用来创建供你的应用程序运行的混合云资源。 在配置管理领域有很好产品可供选择,可以将 IaC 写成配置文件或首选的编程语言,但这种选择在基础设施供应领域并不常见。 Pulumi 提供了一个使用标准编程语言来定义基础设施的方式。它支持一系列语言,包括 JavaScript 、 TypeScript 、 Go 、 Python 和 C# 。就像 Terraform 一样,Pulumi

Pulumi, how to export values coming from async function?

和自甴很熟 提交于 2020-06-29 03:35:28
问题 In my Pulumi project, in the index.ts file I have to call const awsIdentity = await aws.getCallerIdentity({ async: true }); So for this reason I have to wrapp all my code into async function. My problem is with exported variables at the end of the file. async function go() { ... const awsIdentity = await aws.getCallerIdentity({ async: true }); const accountId = awsIdentity.accountId; ... return { dnsZoneName: DNSZone.name, BucketID: Bucket.id, dbHardURL: DBHost.publicDns, devDbURL:

How to get Group in Azure AD in Pulumi?

风格不统一 提交于 2020-06-17 15:52:18
问题 I'm trying to get a group in the Azure AD. var group = Output.Create( GetGroup.InvokeAsync( new GetGroupArgs { Name = "Administrators" })); PS C:\dev\___> pulumi preview Previewing update (dev): Type Name Plan Info pulumi:pulumi:Stack Frontend-dev 1 error Diagnostics: pulumi:pulumi:Stack (Frontend-dev): error: Running program 'C:\dev\___\bin\Debug\netcoreapp3.1\Frontend.dll' failed with an unhandled exception: Grpc.Core.RpcException: Status(StatusCode=Unknown, Detail="invocation of azuread