No video

Bicep vs Terraform - A fair and balanced comparison

  Рет қаралды 10,414

Jon Gallant

Jon Gallant

3 жыл бұрын

Bicep is the new Azure Resource Management Domain Specific Language (ARM DSL) from the Azure team. In this video we look at how it compares to Terraform and raw ARM templates and I show you how I implemented it in Memealyzer.
Memealyzer Bicep Code: github.com/jongio/memealyzer/...
Dev, Debug, and Deploy Microservices with Project Tye Video: • Project Tye 101 - Dev,...
Bicep: github.com/Azure/bicep/
Azure SDKs: aka.ms/azsdk
Project Tye: github.com/dotnet/tye
Azure Quickstart Templates: github.com/Azure/azure-quicks...
ARM Stacks Overview - • ARM Templates and Bice... - To help with deployment management

Пікірлер: 36
@SimonTimms
@SimonTimms 3 жыл бұрын
This is not only the most calming and enjoyable terraform vs. bicep video on youtube but the most calming and enjoyable terraform vs. bicep video possible. I have certainly fallen into the trap of having to fill gaps in terraform before and it is no fun. I'd be interested to see your take on Pulumi with this mix.
@kipergil
@kipergil Жыл бұрын
Brilliant comparison... Thanks for your efforts 👍
@aatif.akhter912
@aatif.akhter912 2 жыл бұрын
Awesome Work ! I just went through 20 videos to understand the topic but this is the one which gives the best comparisons considering all aspect for an Ops/DevOps.
@JonGallant
@JonGallant 2 жыл бұрын
Awesome, thank you!
@TakekazuOmi
@TakekazuOmi 3 жыл бұрын
It was a very good comparison. I think the limits of the bicep are the same as the limits of the ARM Template at this time. The ARM Template philosophy is a declarative resource definition, but it requires help such as az CLI due to missing features. This is also the limit of the bicep. In comparison, the Terraform team seems to be making practical tools by actively filling in the gaps. I love bicep because that is a natively use Azure RM. I think Terraform is too much layering for azure resource provisioning tools.
@Gbolagunte
@Gbolagunte 3 жыл бұрын
Loved it!
@marktheimmortal
@marktheimmortal 3 жыл бұрын
Awesome video. I've just ported a jumpbox environment from terraform to bicep to learn bicep. Got to say, I like Bicep. No more remote state to worry about (yay!), no more waiting for a feature to be implemented in terraform. The Bicep documentation could be improved thus it was a bit of a struggle to get some of the final pieces working (e.g. AD Linux Login extension) but got there in the end. Just watched your video after finishing and learned a few things! Thank you! :-)
@juanjedidiah5250
@juanjedidiah5250 3 жыл бұрын
I guess im asking randomly but does any of you know a trick to get back into an instagram account?? I was dumb lost my login password. I appreciate any tips you can offer me!
@gustavojaxton7877
@gustavojaxton7877 3 жыл бұрын
@Juan Jedidiah Instablaster =)
@juanjedidiah5250
@juanjedidiah5250 3 жыл бұрын
@Gustavo Jaxton i really appreciate your reply. I found the site through google and im waiting for the hacking stuff atm. Looks like it's gonna take a while so I will reply here later with my results.
@juanjedidiah5250
@juanjedidiah5250 3 жыл бұрын
@Gustavo Jaxton it worked and I finally got access to my account again. Im so happy! Thanks so much, you really help me out !
@gustavojaxton7877
@gustavojaxton7877 3 жыл бұрын
@Juan Jedidiah no problem :D
@arieheinrich3457
@arieheinrich3457 3 жыл бұрын
1. The "API Version" exists in the Azurerm Provider in TF which i think it better then adding apiversion as a property inside the resource group in bicep. This will cause some chaos in using services using different api versions that weren't necessarily tested in that combination. 2. Bicep takes SOOO much from terraform that i dont understand why they even continue abstracting ARM instead of completely ditching it and going over a better solution (Terraform and pulumi- which has TF underneath as well). I don't like "tool-locking" but i rather use same tool and concepts for multi cloud then learn 5 different ways to provision per cloud provider 3. TF is still better when you have a need to run on multiple cloud accounts. 4. Lack of state file means were still not solving state drift , even tough MS had that built-in into DSC for example. 5. Bicep and ARM still do not use immutable resources concept. 6. Terraform supports adding ARM templates for those preview/new resources,. Not the cleanest way but allows to use the service in the mean time if you cant wait for the resource to be added to the provider. 7. The AzureRM provider has new updates like at least once a week but you are correct in the fact that you rely on other to add the implementation but if that bothers you that a service you want to use, doesn't get the "desired focus", its a great reason to contribute yourself and return some thing to the community. 8. The issue with Role Assignments is that its the subtle border between infra provisioning and config management. Originally they always say to use the right tool for the right job. Its one of the reasons Hashi are removing the provisioners from 0.15 towards 1.0. Which means you have to involve task form your cicd pipeline or helper files as in your example. 9. The what-if is one of the best solutions that bicep has and terraform doesnt have and should focus on imho. As Unit testing when you deal with IAC is almost non existing and requires a sandbox deployment for testing. This can be aided by infra testing via powershell using poster or via python, but still requires a live deployment to start a test. I have abandoned ARM ages ago and moved to Terraform and recently even ventured into pulumi after their 2.0 version introduced native support for Azure API so all new/preview services that are introduced are supported on day 0. Yes terraform have given me some gray hair before and some frustration but overall i still think anyone that works with any cloud provider should aim for a solution like terraform instead of the native cloud tools . Adding an abstraction layer on top, just goes to show you how poor solution ARM is now days, but since they have major, well-paying enterprise customers invested in ARM they don't want to replace it with something else so they come up with ways to make it "easier" to digest. Problem is that the same IT peopl (inc. management) that complained so much about how hard it was to work with ARM over the years, instead of getting out of their narrow box and mind view and adopting new tools, will not all of the sudden embrace bicep just because it "builds" into an artifact, as they still have to learn how to use "code" for this. If they had the will to learn how to code, they would have moved to terraform ages ago. IF they come from full software background they might even jump over Terraform directly to pulumi as that is a REAL Infra-structure-as-code, while TF has mostly been Infrastructure-text or as-config. With TF 0.12+ it started looking like code but its still not there .
@nasarazam
@nasarazam 3 жыл бұрын
For someone fairly new to all this, I get confused with all this. I was tilting more towards Terraforms as we have to support Azure and GCP (limited to BigQuery and GCS). Then I read your comment on Pulumi. Shall I go directly to Pulimi and discard both Bicep/ARM and Terraform? Any help is appreciated. - Thanks
@arieheinrich3457
@arieheinrich3457 3 жыл бұрын
@@nasarazam Pulumi might be better if you are doing Azure (as its no longer needs the azurerm provider from terraform, but has its own implementation that speaks natively to the ARM API layer. This means you can always use the latest resource that MS creates even when it is still in preview. AND especially if you or you developers already work with languages like go, javascript, typescript, c# and even python. If you are coming from an OPS side, where youre more into python, powershell and DSC, and you really dont care about waiting a relative short period of time until newest services are available via the AzureRM or GCP providers, then Terraform HCL language is pretty easy to learn, and even though it tries to be considered as a programming language, its not yet there, perhaps after v1.0. Its never a bad bet, choosing Terraform, as pulumi is still relatively new. But i would say both would be better then native ARM. Which is why MS went for the bicep option to create another layer on top so its less intimidating for people. As mentioned though its only for Azure. While Terraform works on a provider-per cloud to deal with the API layers of each cloud provider, you will never get to a level where one code covers all cloud providers, theres simply not enough incentive to all the clouds providers to sit down and create a format thats globally adopted. Who knows maybe CNCF would create such a standard but we will see.
@nasarazam
@nasarazam 3 жыл бұрын
@@arieheinrich3457 One advantage of Bicep that we cannot overlook is, it is by Microsoft. Which means they can afford to put more money into it and keep improving...
@arieheinrich3457
@arieheinrich3457 3 жыл бұрын
@@nasarazam No doubt they will. Issues with ARM have been going on for almost a decade. Does it really take a decade to come with an innovative idea and solution ? While i love the fact i dont need a statefile as bicep goes directly to the ARM API layer, which means -whatif is a great option. I would have loved MS to spend the time and money for over 10 years almost to come with a better ideas especially seeing Terrform and Pulumi exist..its like reinventing the wheel 10 years after instead of working on standards.
@nasarazam
@nasarazam 3 жыл бұрын
As someone quite new to all this. From what I can gather from your very nice presentation, Terraform still looks the best choice. While Bicep will add more functionality, at the same time Terraform will not be stagnant and will improve as well. True, any new feature added in Azure may not be immediately available in Terraform, but its cross cloud/platform support is crucial to someone who supports both Azure and GCP. Love to hear your response - Thanks
@JonGallant
@JonGallant 3 жыл бұрын
If you need cross cloud, then yes on Terraform, which we also love.
@nasarazam
@nasarazam 3 жыл бұрын
@@JonGallant Pulumi looks ever better - comments?
@marktheimmortal
@marktheimmortal 3 жыл бұрын
@@JonGallant When I first started Terraform I was expecting cross-cloud but it seems that so much of the implementation is very vendor-specific. Also the need for separate tweaks scripts to call cloud vendor APIs direct due to issues/missing-features taint the cross-cloud expectations. If I'm only using Azure with no actual plan to use another vendor (e.g. AWS) then I'm tempted to implement straight in Bicep. I guess that's the point right? If you really do need cross-cloud then Terraform may make more sense. But... if you don't need it, or are unlikely to need it, then perhaps Bicep is the way to go.
@woutershorts
@woutershorts 3 жыл бұрын
Great video Jon, but has the team thought about using terraform files and language to generate the arm template? It seems that most people like the way terraform works but want the zero day functionality of bicep. Without the mess of managing state of course.
@dennishsu899
@dennishsu899 2 жыл бұрын
Great comparison video! 😊I have same thought as Wouter suggests. If Terraform can get the zero day functionality of bicep/arm, it would be awesome! It looks like Terraform is still easier to use than Bicep.
@bocckoka
@bocckoka 2 жыл бұрын
Bicep... ARM template... didn't make that connection until now.
@teo11300
@teo11300 2 жыл бұрын
This is great. Bicep is Azure specific whereas Terraform is cloud provider agnostic (so for me Terraform is better to learn!).
@OurCloudSchool-Hindi
@OurCloudSchool-Hindi 2 жыл бұрын
I think you can get the resource properties you need check the code again
@artisticcheese
@artisticcheese 3 жыл бұрын
Probably worth removing background music or lower volume of it. It seems to be the same level and speech
@JonGallant
@JonGallant 3 жыл бұрын
Thanks for letting me know. What device are you listening to this on? Headphones or speakers? Just wondering if I can try to repro. It sounds okay on my machine, but I didn't test with different setups.
@artisticcheese
@artisticcheese 3 жыл бұрын
@@JonGallant I'm using speakers
@JonGallant
@JonGallant 3 жыл бұрын
Ok. Thanks. I’ll keep that in mind for the next one.
@adityanarayannayak6295
@adityanarayannayak6295 Жыл бұрын
Wow i found gilfoyle
@JonGallant
@JonGallant Жыл бұрын
Wow that's the first time I've heard that
@emmanuelgelatimesa2712
@emmanuelgelatimesa2712 Жыл бұрын
terraform, I want to avoid vendor lock in
@PaulShadwell
@PaulShadwell 3 жыл бұрын
This looked so interesting but the music was too distracting so had to give up and give it a thumbs down. Can you release this video without the music?
@peterderwa5100
@peterderwa5100 2 жыл бұрын
Sorry but that feels like a problem that you have, I thought this was a nice background ;-)
Connect to Azure from a GitHub Action with OpenID Connect (OIDC)
8:18
Jumping off balcony pulls her tooth! 🫣🦷
01:00
Justin Flom
Рет қаралды 32 МЛН
НЫСАНА КОНЦЕРТ 2024
2:26:34
Нысана театры
Рет қаралды 1,7 МЛН
Look at two different videos 😁 @karina-kola
00:11
Andrey Grechka
Рет қаралды 3,9 МЛН
Я не голоден
01:00
К-Media
Рет қаралды 10 МЛН
Azure Bicep March 2021: Learn everything about the next generation of ARM Templates
28:14
Azure Deployments & Governance
Рет қаралды 13 М.
Terraform Explained
8:44
IBM Technology
Рет қаралды 271 М.
Enable Microsoft Edge Vertical Tabs
1:13
Jon Gallant
Рет қаралды 2,3 М.
ARM vs Terraform vs Pulumi | Infra as Code in 2021
9:08
Julie Ng
Рет қаралды 15 М.
Authoring and deploying Azure resources with Bicep | Azure Friday
35:54
Jumping off balcony pulls her tooth! 🫣🦷
01:00
Justin Flom
Рет қаралды 32 МЛН