ARM vs Terraform vs Pulumi | Infra as Code in 2021

Video Statistics and Information

Video
Captions Word Cloud
Reddit Comments
Captions
okay so hi my name is julie i'm an engineer from microsoft and in this video i'm going to talk to you about the difference between arm and terraform and pollumi in 2021 so this was a question submitted by a subscriber after um they read my article about best practices with terraform and azure pipelines and they said well what about palumi so um let's first start with um arm right which is the azure native way of deploying infrastructure as code so arm stands for azure resource manager and when you're deploying infrastructure you're actually just talking to a rest api at the very bottom that will deploy your vms your virtual networks etc so arm templates are json templates and the json is kind of readable like i can read arm but i can't write arm and that's because arm really is for machines right it's java script object notation and that was one of the reasons why i was actually attracted to terraform so terraform is written in a domain-specific language or dsl and this one is called hashicorp language or hcl and it just was much easier to read i could easily put in comments and i could also use modules for reuse like pieces of code um that is even today so much easier to do in terraform um than it is in arm so uh terraform is also worth mentioning is cloud agnostic right it's not just for azure you can also deploy to aws or even on-prem apparently as i recently learned um and uh yeah i just like the dsl like much more um there are some people who say well the dsl's not enough i want to write my infrastructure as code in code like native code so like javascript or python et cetera and that's how uh it's my understanding i'm not an expert and i don't use polomimi but that's how polumi came about so polumi lets you write your infrastructure uh in javascript or python the interesting thing about polumi from what i can gather is that it piggies back on certain technologies like terraform um when it could leverage it right like why build something from scratch if somebody's already built something great and it is open source so it's like you know totally legit to do um there are some things in palomi which will talk directly to a cloud providers um rest api so all three right are talking to the same azure uh resource manager api under the hood in some form rather either directly or you know via a terraform and um you kind of just sort of pick like okay what flavor of infrastructures code do you like what are you sort of most comfortable with ultimately everything is just kind of an abstraction and you pick the one that's most comfortable for you and the interesting thing is that these things change over time right so if somebody realizes oh that's a good idea people like that i'm gonna change and copy them so at microsoft we are working on something called bicep it's public you can see it in github i don't think people have really sort of announced it but uh yeah so the idea that people don't want to write machine language jason is machine language like caught on and so there's a new language called bicep arm and bicep get it ha um so it's all my to-do actually to learn and check out this quarter to learn biceps so it's a dsl um and microsoft has also built in uh what ifs for deployments and the what ifs lets you do sort of uh configuration comparisons to what you already have deployed so similar to what terraform plan can do and the interesting thing is that arm doesn't need a state file in order to be able to do that but yeah the point i want to make is sort of okay microsoft and azure said okay we're going to catch up we're going to jump on the dsl train as well we're going to call our language bicep an interesting thing is that last year so last summer 2020 terraform or by the hashicorp announced that they're going to jump on the codenative train so they release the code development kit for terraform which basically lets people create infrastructure using javascript and python so i think this is like in preview or alpha or something but the point is that the companies have really indicated they are you know going to where the users are what the users want and if enough people sort of say we want this then the incumbents like microsoft or hashicorp yeah they will accommodate to that so paloomi is relatively new in terms of how i personally feel about it i kind of love the idea of writing infrastructure in a code native way like i sometimes miss um things like logical operators like ifs or sort of loops uh which you can kind of do in terraform but not quite um and some of these things you can do conditionals and arm as well it's kind of weird but if you're saying oh how do you do that in javascript like i know how to do that right off the top of my head i don't have to learn some new skill so that's kind of cool that's kind of exciting and the reason why all that works right it's just an abstraction it generates you know other bits of code that talks to the rest api so all of this is kind of possible um you have lots and lots of options basically like so for whatever flavor you like in terms of code i guess although i'm not going to get into into this video because this was a kind of like an ask me anything answer um what you want to do is then do a deep dive comparison of the three different technologies and sort of where there might be an achilles heel for you or like some sort of requirement that you won't satisfy and so i mentioned achilles heel because one thing that people really don't like about terraform is that its state file is in plain text it's not encrypted by default so on azure you would put that state file in a blob storage account and obviously the account is protected right so the blob is not publicly accessible neither for reading nor for writing um and although the file itself is plain text obviously it's stored on azure like encrypted so i use it i mean i know i trust myself i trust how i configure my storage account so the fact that it's in plain text doesn't really bother me so much like you shouldn't be looking at it anyway it's just something that's sort of saved somewhere um so palumi also has a state file um and their state file is encrypted so people see that as kind of like an like an added advantage um do some googling right about the differences between terraform and pollumi i did it a little bit briefly and then people definitely said i think i read on red reddit or stack overflow that terraform state files are much more easy to repair than pollumi i know terraform you can import resources i actually don't know if columbia can do that or if it can only create sort of resources um but uh yeah so that's i think one major uh advantage for palumi over um terraform um and you might think oh azure doesn't have any state file or arm doesn't have anything they found out to me better yeah kind of one of the things i like about terraform sometimes if i screw something up i can do a terraform destroy and just kill everything right um so it cleans everything up for you um azure doesn't do that right or arm doesn't do that rather um that's one this is one of the reasons why we have azure resource groups because they're logical containers um that are grouped by generally about life cycles you can just kill the resource group and all that stuff is gone um but uh yeah so i think those are the main differences so 2021 right like i think the biggest thing to be aware of is that microsoft and hashicorp are catching up they're jumping on those different trains so microsoft is now adding its own dsl to arm and hashicorp is also adding the cloud development kit to introduce co-native uh templates for infrastructure as code um so all that is yeah changing and uh palumi is still the kind of the newish kid on the block check it out last thing in case i didn't mention it yet is that uh pollumi is funded so maybe you don't care it's something i care about but um they've taken i think like 50 or 60 million um yeah in funding so up to you decide whether or not that's important um yeah so if you like this sort of answer again it's ask me anything type of format let me know give this video a like if you want more details like a more sort of deep dive uh let me know as well then i'll spend more time doing that uh but uh yeah please subscribe uh send me questions i'm happy to do these types of videos if you like them and uh yeah see you soon bye
Info
Channel: Julie Ng
Views: 8,038
Rating: undefined out of 5
Keywords:
Id: KHvVWdqvAvI
Channel Id: undefined
Length: 9min 7sec (547 seconds)
Published: Sat Jan 23 2021
Related Videos
Note
Please note that this website is currently a work in progress! Lots of interesting data and statistics to come.