title
Pulumi - IaC in your favorite programming language!
description
Infrastructure as code using your favorite programming language with Pulumi | Pulumi Tutorial
⭐️ DevOps Tool for May - From the DevOps tool of the month series: https://bit.ly/2ZuPbvc
► Thanks Pulumi for sponsoring this video 🙌🏼
► Find out more about Pulumi here: https://www.pulumi.com/
In this video you will learn about an Infrastructure as Code tool, which is gaining popularity in the DevOps world. And that is Pulumi.
First we will see how Pulumi is different to other popular IaC tools like Terraform or Ansible by explaining its main benefits and characteristics. Then I will show how Pulumi actually works in practice by writing a simple Pulumi project to
- first create a S3 bucket in an AWS account and
- then a more realistic example of provisioning an EKS cluster.
#pulumi #devops #techworldwithnana
▬▬▬▬▬▬ T I M E S T A M P S ⏰ ▬▬▬▬▬▬
0:00 - Intro & Overview
0:34 - What is Pulumi and how its different
2:03 - Main benefits of using a language you already know
4:42 - Pulumi Demo Overview
5:12 - Download Pulumi
5:25 - Create Pulumi Project
7:18 - Demo 1: Create S3 Buckets
10:56 - Pulumi State
12:29 - Pulumi Console
13:18 - Demo 2: Provision EKS cluster
▬▬▬▬▬▬ Want to learn more? 🚀 ▬▬▬▬▬▬
Full Docker course ► https://youtu.be/3c-iBn73dDE
Full Python course ► https://youtu.be/t8pPdKYpowI
Full K8s course ► https://youtu.be/X48VuDVv0do
DevOps Tools, like Terraform, Prometheus ► https://bit.ly/2W9UEq6
▬▬▬▬▬▬ Connect with me 👋 ▬▬▬▬▬▬
INSTAGRAM ► https://bit.ly/2F3LXYJ
TWITTER ► https://bit.ly/3i54PUB
LINKEDIN ► https://bit.ly/3hWOLVT
Facebook group ► https://bit.ly/32UVSZP
DEV ► https://bit.ly/3h2fqiO
▬▬▬▬▬▬ Courses & Bootcamp & Ebooks 🚀 ▬▬▬▬▬▬
► Become a DevOps Engineer - full educational program 👉🏼 https://bit.ly/45mXaer
► High-Quality and Hands-On Courses 👉🏼 https://bit.ly/3BNS8Kv
► Kubernetes 101 - compact and easy-to-read ebook bundle 👉🏼 https://bit.ly/3Ozl28x
detail
{'title': 'Pulumi - IaC in your favorite programming language!', 'heatmap': [{'end': 414.304, 'start': 316.36, 'weight': 0.991}, {'value': 0.8723906140115831, 'end_time': 414.304, 'start_time': 338.469}, {'end': 552.039, 'start': 519.289, 'weight': 0.777}, {'end': 675.139, 'start': 648.319, 'weight': 1}, {'end': 769.438, 'start': 742.358, 'weight': 0.984}, {'end': 837.592, 'start': 802.768, 'weight': 0.781}], 'summary': 'Explore pulumi, an infrastructure as code tool, demonstrating its practical usage in creating an s3 bucket and provisioning an eks cluster, emphasizing its benefits, characteristics, and efficiency in infrastructure configuration and management.', 'chapters': [{'end': 87.156, 'segs': [{'end': 45.166, 'src': 'embed', 'start': 0.529, 'weight': 0, 'content': [{'end': 8.813, 'text': "In this video, we're going to talk about an infrastructure as code tool, which is gaining popularity in the devops world, and that is Pulumi.", 'start': 0.529, 'duration': 8.284}, {'end': 15.195, 'text': 'First, we will see what is Pulumi and what makes it different from other popular infrastructures code tools.', 'start': 9.113, 'duration': 6.082}, {'end': 18.837, 'text': 'Also what are its main benefits and characteristics?', 'start': 15.615, 'duration': 3.222}, {'end': 33.542, 'text': 'And then we will see how Pulumi actually works in practice by writing a simple Pulumi project to first create an S3 bucket in an AWS account and then a more realistic example of provisioning an EKS cluster.', 'start': 19.497, 'duration': 14.045}, {'end': 45.166, 'text': 'When writing infrastructure as code scripts using all these other tools, you usually have to use a domain, specific language of that tool,', 'start': 36.563, 'duration': 8.603}], 'summary': 'Pulumi is a popular infrastructure as code tool with benefits and characteristics discussed. demonstrates creating an s3 bucket and provisioning an eks cluster in an aws account.', 'duration': 44.637, 'max_score': 0.529, 'thumbnail': 'https://coursnap.oss-ap-southeast-1.aliyuncs.com/video-capture/vIjeiDcsR3Q/pics/vIjeiDcsR3Q529.jpg'}], 'start': 0.529, 'title': 'Pulumi: infrastructure as code tool', 'summary': 'Explores the increasingly popular pulumi, discussing its benefits and characteristics, and demonstrating its practical usage in creating an s3 bucket in an aws account and provisioning an eks cluster.', 'chapters': [{'end': 87.156, 'start': 0.529, 'title': 'Pulumi: infrastructure as code tool', 'summary': 'Explores pulumi, an increasingly popular infrastructure as code tool, discussing its benefits and characteristics, and demonstrating its practical usage in creating an s3 bucket in an aws account and provisioning an eks cluster.', 'duration': 86.627, 'highlights': ['Pulumi enables adding more complex logic like conditionals and loops in infrastructure as code scripts, which is challenging with other tools.', 'The video discusses the benefits and characteristics of Pulumi as an infrastructure as code tool.', 'The practical usage of Pulumi is demonstrated by creating an S3 bucket in an AWS account and provisioning an EKS cluster.', 'Pulumi is gaining popularity in the devops world as an infrastructure as code tool.']}], 'duration': 86.627, 'thumbnail': 'https://coursnap.oss-ap-southeast-1.aliyuncs.com/video-capture/vIjeiDcsR3Q/pics/vIjeiDcsR3Q529.jpg', 'highlights': ['Pulumi enables adding more complex logic like conditionals and loops in infrastructure as code scripts, which is challenging with other tools.', 'The practical usage of Pulumi is demonstrated by creating an S3 bucket in an AWS account and provisioning an EKS cluster.', 'Pulumi is gaining popularity in the devops world as an infrastructure as code tool.', 'The video discusses the benefits and characteristics of Pulumi as an infrastructure as code tool.']}, {'end': 639.737, 'segs': [{'end': 159.711, 'src': 'embed', 'start': 112.518, 'weight': 0, 'content': [{'end': 118.799, 'text': 'Now, which programming language is that? Well, you can actually choose whichever language you want to use with Pulumi.', 'start': 112.518, 'duration': 6.281}, {'end': 123.02, 'text': 'You can write it in Node.js, in Python, .NET, etc.', 'start': 119.179, 'duration': 3.841}, {'end': 128.92, 'text': 'So, instead of having to learn a new syntax or a DSL or new language,', 'start': 123.58, 'duration': 5.34}, {'end': 135.302, 'text': 'you can use the language you are most proficient in and use it to also write infrastructure as code.', 'start': 128.92, 'duration': 6.382}, {'end': 141.003, 'text': 'OK, now you may be thinking, cool, I can use a programming language to write infrastructure as code.', 'start': 135.822, 'duration': 5.181}, {'end': 150.106, 'text': 'But what other clear advantages do you actually get by being able to write infrastructure as code in a programming language of your choice?', 'start': 141.383, 'duration': 8.723}, {'end': 159.711, 'text': "Well, if you are a Python developer, for example, you're probably already using the most fitting IDE for Python, like PyCharm.", 'start': 150.546, 'duration': 9.165}], 'summary': "Pulumi allows using any programming language for infrastructure as code, leveraging developers' proficiency and existing tools.", 'duration': 47.193, 'max_score': 112.518, 'thumbnail': 'https://coursnap.oss-ap-southeast-1.aliyuncs.com/video-capture/vIjeiDcsR3Q/pics/vIjeiDcsR3Q112518.jpg'}, {'end': 253.772, 'src': 'embed', 'start': 224.134, 'weight': 2, 'content': [{'end': 224.835, 'text': 'With Pulumi.', 'start': 224.134, 'duration': 0.701}, {'end': 234.662, 'text': 'obviously you have the advantage of simply writing tests for your infrastructure as code, as for your application code, using the same test libraries,', 'start': 224.835, 'duration': 9.827}, {'end': 237.206, 'text': 'same programming language, same editor and so on.', 'start': 234.662, 'duration': 2.544}, {'end': 249.409, 'text': 'Now. this shift of using programming languages instead of YAML or JSON format allows developers to now also write infrastructure as code,', 'start': 237.887, 'duration': 11.522}, {'end': 253.772, 'text': 'which usually is seen as primarily a DevOps or operations team task.', 'start': 249.409, 'duration': 4.363}], 'summary': 'Pulumi allows writing tests for infrastructure as code using same language as application code.', 'duration': 29.638, 'max_score': 224.134, 'thumbnail': 'https://coursnap.oss-ap-southeast-1.aliyuncs.com/video-capture/vIjeiDcsR3Q/pics/vIjeiDcsR3Q224134.jpg'}, {'end': 414.304, 'src': 'heatmap', 'start': 291.65, 'weight': 3, 'content': [{'end': 300.434, 'text': "So in this part of the video, we're going to create a simple Pulumi project in Node.js that provisions resources in our AWS account.", 'start': 291.65, 'duration': 8.784}, {'end': 311.198, 'text': "First, we're going to create an S3 bucket as a simple example, and then we will provision an EKS cluster using Pulumi as a more realistic use case.", 'start': 300.914, 'duration': 10.284}, {'end': 312.759, 'text': "So let's get into it.", 'start': 311.799, 'duration': 0.96}, {'end': 315.9, 'text': 'First, we need to install Pulumi, which is super easy.', 'start': 313.059, 'duration': 2.841}, {'end': 319.322, 'text': 'You have detailed guides here for each environment.', 'start': 316.36, 'duration': 2.962}, {'end': 323.163, 'text': "So on Mac, I'm just going to do brew install Pulumi.", 'start': 320.102, 'duration': 3.061}, {'end': 338.429, 'text': "Once Pulumi is installed, we'll create a new folder In this folder, we're going to create a Pulumi project and to bootstrap the project.", 'start': 326.425, 'duration': 12.004}, {'end': 345.955, 'text': 'Pulumi actually gives us boilerplate code to get started with, and we can do that using simple Pulumi new command.', 'start': 338.469, 'duration': 7.486}, {'end': 357.965, 'text': 'So if I execute this in this new folder that we created, I have a choice of technology or programming language and platform combination.', 'start': 346.836, 'duration': 11.129}, {'end': 366.457, 'text': 'Right So we have the platforms like AWS, Azure, Google Cloud, Kubernetes, and then we have different programming languages that you can choose from.', 'start': 358.045, 'duration': 8.412}, {'end': 373.103, 'text': "Since we're going to be creating resources on AWS using Node.js or JavaScript,", 'start': 366.977, 'duration': 6.126}, {'end': 387.637, 'text': "I'm going to go with this option here and enter some project information project name description, stack name, AWS region.", 'start': 373.103, 'duration': 14.534}, {'end': 391.721, 'text': "This is important because we're gonna be creating resources in a specific region.", 'start': 387.677, 'duration': 4.044}, {'end': 395.044, 'text': "I'm gonna choose my region in Europe.", 'start': 392.261, 'duration': 2.783}, {'end': 399.949, 'text': 'And our project is ready to go.', 'start': 398.467, 'duration': 1.482}, {'end': 406.675, 'text': 'Now, if I do ls here, this folder was empty, and now I see a lot of files that Pulumi actually generated.', 'start': 400.549, 'duration': 6.126}, {'end': 414.304, 'text': 'And if I open the project in Visual Studio Code, you see that Pulumi initiated a Node.js project.', 'start': 407.075, 'duration': 7.229}], 'summary': 'Creating a pulumi project in node.js to provision aws resources, including an s3 bucket and an eks cluster.', 'duration': 54.305, 'max_score': 291.65, 'thumbnail': 'https://coursnap.oss-ap-southeast-1.aliyuncs.com/video-capture/vIjeiDcsR3Q/pics/vIjeiDcsR3Q291650.jpg'}, {'end': 552.039, 'src': 'heatmap', 'start': 491.535, 'weight': 5, 'content': [{'end': 497.197, 'text': 'But alternatively, you can also set them as environment variables or configure them using Pulumi itself.', 'start': 491.535, 'duration': 5.662}, {'end': 498.378, 'text': 'And that will work, too.', 'start': 497.397, 'duration': 0.981}, {'end': 507.463, 'text': 'And you can actually check the Pulumi documentation for all the different ways for setting up the platform configuration that Pulumi connects to.', 'start': 499.298, 'duration': 8.165}, {'end': 510.205, 'text': 'And this one is specifically for AWS.', 'start': 508.003, 'duration': 2.202}, {'end': 519.289, 'text': "So in my case, I have this dot AWS folder already configured and that means that we're actually all set and ready to execute this.", 'start': 510.965, 'duration': 8.324}, {'end': 521.871, 'text': 'now to execute Pulumi project.', 'start': 519.289, 'duration': 2.582}, {'end': 526.815, 'text': "We're going to need a simple Pulumi up command.", 'start': 522.532, 'duration': 4.283}, {'end': 528.917, 'text': 'So if I run this.', 'start': 527.876, 'duration': 1.041}, {'end': 536.76, 'text': 'First of all, you see that we get a preview, so nothing gets executed automatically.', 'start': 532.378, 'duration': 4.382}, {'end': 541.482, 'text': "It actually just gives us a preview of what's going to happen.", 'start': 537.44, 'duration': 4.042}, {'end': 545.184, 'text': 'And then we have to confirm that we want that change to happen.', 'start': 541.642, 'duration': 3.542}, {'end': 552.039, 'text': 'either saying yes or no or asking Pulumi to give some more details so we can make a decision.', 'start': 546.072, 'duration': 5.967}], 'summary': "Pulumi can be configured using environment variables or pulumi itself, as detailed in the aws-specific documentation, with the execution initiated by the 'pulumi up' command.", 'duration': 49.947, 'max_score': 491.535, 'thumbnail': 'https://coursnap.oss-ap-southeast-1.aliyuncs.com/video-capture/vIjeiDcsR3Q/pics/vIjeiDcsR3Q491535.jpg'}, {'end': 639.737, 'src': 'embed', 'start': 602.54, 'weight': 7, 'content': [{'end': 612.847, 'text': 'I want to create a new bucket with that specific name and again, a simple JavaScript syntax for creating loops and executing loops.', 'start': 602.54, 'duration': 10.307}, {'end': 618.11, 'text': 'And we can also export the bucket name for each of the buckets.', 'start': 613.907, 'duration': 4.203}, {'end': 635.473, 'text': 'simply like this using our familiar JavaScript array and then just export the whole array here instead of just one ID.', 'start': 625.282, 'duration': 10.191}, {'end': 639.737, 'text': 'And now this will give us three buckets with three different names.', 'start': 636.033, 'duration': 3.704}], 'summary': 'Creating 3 buckets with specific names using javascript syntax.', 'duration': 37.197, 'max_score': 602.54, 'thumbnail': 'https://coursnap.oss-ap-southeast-1.aliyuncs.com/video-capture/vIjeiDcsR3Q/pics/vIjeiDcsR3Q602540.jpg'}], 'start': 87.496, 'title': 'Pulumi for infrastructure configuration', 'summary': 'Discusses practical usage of pulumi, demonstrating the creation of an s3 bucket and an eks cluster in a node.js project on aws, leveraging the familiarity and toolset of programming languages to enhance efficiency and collaboration between operations and development teams.', 'chapters': [{'end': 267.658, 'start': 87.496, 'title': 'Pulumi: infrastructure as code in programming languages', 'summary': 'Discusses how pulumi enables writing infrastructure as code in programming languages like python, .net, and node.js, leveraging the familiarity and toolset of the chosen language to enhance efficiency and collaboration between operations and development teams.', 'duration': 180.162, 'highlights': ['Pulumi allows writing infrastructure as code in programming languages like Python, .NET, and Node.js, leveraging familiarity and toolset of the chosen language to enhance efficiency and collaboration between teams. Pulumi enables writing infrastructure as code in various programming languages, such as Python, .NET, and Node.js, allowing developers to leverage the familiarity and toolset of their chosen language to enhance efficiency and collaboration between operations and development teams.', 'Developers can use their expertise and toolset of their preferred programming language, such as Python, for writing infrastructure as code, leading to increased efficiency. Developers can leverage their expertise and toolset of their preferred programming language, such as Python, for writing infrastructure as code, resulting in increased efficiency and streamlined development processes.', 'Pulumi allows writing tests for infrastructure as code using the same test libraries, programming language, and editor as for application code, enabling improved testing and collaboration between operations and development teams. Pulumi enables writing tests for infrastructure as code using the same test libraries, programming language, and editor as for application code, leading to improved testing and collaboration between operations and development teams.']}, {'end': 639.737, 'start': 267.658, 'title': 'Using pulumi for infrastructure configuration', 'summary': 'Explores the practical usage of pulumi, demonstrating the creation of an s3 bucket and an eks cluster in a node.js project on aws, including the installation process, project initialization, and execution of pulumi commands.', 'duration': 372.079, 'highlights': ['Creating S3 Bucket and EKS Cluster The chapter demonstrates the creation of an S3 bucket and an EKS cluster in a Node.js project on AWS.', "Pulumi Installation and Project Initialization The process of installing Pulumi on Mac using 'brew install Pulumi' and initializing a new Pulumi project with boilerplate code is presented.", "Execution of Pulumi Commands The execution of Pulumi commands, including 'pulumi up' to preview and confirm changes, as well as exporting outputs, is illustrated.", 'Configuration and Environment Setup Details about setting up AWS credentials using the default dot AWS folder, environment variables, or Pulumi configuration, as well as checking the documentation for platform configuration, are explained.', 'Creating Multiple S3 Buckets The process of creating multiple S3 buckets in a loop using JavaScript syntax and exporting the bucket names is demonstrated.']}], 'duration': 552.241, 'thumbnail': 'https://coursnap.oss-ap-southeast-1.aliyuncs.com/video-capture/vIjeiDcsR3Q/pics/vIjeiDcsR3Q87496.jpg', 'highlights': ['Pulumi allows writing infrastructure as code in programming languages like Python, .NET, and Node.js, leveraging familiarity and toolset of the chosen language to enhance efficiency and collaboration between teams.', 'Developers can use their expertise and toolset of their preferred programming language, such as Python, for writing infrastructure as code, leading to increased efficiency.', 'Pulumi enables writing tests for infrastructure as code using the same test libraries, programming language, and editor as for application code, enabling improved testing and collaboration between operations and development teams.', 'Creating S3 Bucket and EKS Cluster The chapter demonstrates the creation of an S3 bucket and an EKS cluster in a Node.js project on AWS.', "Pulumi Installation and Project Initialization The process of installing Pulumi on Mac using 'brew install Pulumi' and initializing a new Pulumi project with boilerplate code is presented.", "Execution of Pulumi Commands The execution of Pulumi commands, including 'pulumi up' to preview and confirm changes, as well as exporting outputs, is illustrated.", 'Configuration and Environment Setup Details about setting up AWS credentials using the default dot AWS folder, environment variables, or Pulumi configuration, as well as checking the documentation for platform configuration, are explained.', 'Creating Multiple S3 Buckets The process of creating multiple S3 buckets in a loop using JavaScript syntax and exporting the bucket names is demonstrated.']}, {'end': 1180.241, 'segs': [{'end': 675.139, 'src': 'heatmap', 'start': 648.319, 'weight': 1, 'content': [{'end': 656.185, 'text': "And in preview, we see, again, Plumi's plan of what needs to happen in the infrastructure when we execute the program.", 'start': 648.319, 'duration': 7.866}, {'end': 660.008, 'text': 'So the way it works is that Plumi has a concept of state.', 'start': 656.785, 'duration': 3.223}, {'end': 668.314, 'text': 'Plumi stores the up-to-date information about your infrastructure in a state file in a simple JSON format.', 'start': 660.568, 'duration': 7.746}, {'end': 675.139, 'text': 'And using that state, Plumi knows what needs to be created, deleted, or changed in your infrastructure.', 'start': 668.974, 'duration': 6.165}], 'summary': "Plumi's infrastructure plan is based on a state file in json format, determining creations, deletions, and changes.", 'duration': 26.82, 'max_score': 648.319, 'thumbnail': 'https://coursnap.oss-ap-southeast-1.aliyuncs.com/video-capture/vIjeiDcsR3Q/pics/vIjeiDcsR3Q648319.jpg'}, {'end': 726.574, 'src': 'embed', 'start': 703.233, 'weight': 0, 'content': [{'end': 714.661, 'text': 'Pulumi decided what changes need to be made in the infrastructure by comparing that current state the most up to date state of the infrastructure with the desired state.', 'start': 703.233, 'duration': 11.428}, {'end': 722.246, 'text': 'that we define in our program or in our script and plans how to get us from the current state to the desired state.', 'start': 714.661, 'duration': 7.585}, {'end': 724.41, 'text': 'And this is basically the plan.', 'start': 722.627, 'duration': 1.783}, {'end': 726.574, 'text': "So we're going to confirm this.", 'start': 724.871, 'duration': 1.703}], 'summary': 'Pulumi compares current and desired infrastructure states to plan changes.', 'duration': 23.341, 'max_score': 703.233, 'thumbnail': 'https://coursnap.oss-ap-southeast-1.aliyuncs.com/video-capture/vIjeiDcsR3Q/pics/vIjeiDcsR3Q703233.jpg'}, {'end': 787.262, 'src': 'heatmap', 'start': 742.358, 'weight': 1, 'content': [{'end': 749.985, 'text': 'You can also print the output separately with Pulumi stack output command like this.', 'start': 742.358, 'duration': 7.627}, {'end': 754.869, 'text': 'Now, another cool thing that Pulumi gives you is Pulumi console.', 'start': 750.945, 'duration': 3.924}, {'end': 760.014, 'text': 'So at the beginning of each execution, you have this link here.', 'start': 755.409, 'duration': 4.605}, {'end': 769.438, 'text': 'And if we open that link, It will show you the overview of that specific execution in this nice UI.', 'start': 760.894, 'duration': 8.544}, {'end': 773.574, 'text': "And you see it's hosted by Pulumi itself on your account.", 'start': 770.512, 'duration': 3.062}, {'end': 777.456, 'text': 'And you have these activities as a list here as a history.', 'start': 774.174, 'duration': 3.282}, {'end': 787.262, 'text': 'And for each activity, you have the changes in your infrastructure as well as changes in your code that updated the infrastructure.', 'start': 777.996, 'duration': 9.266}], 'summary': "Pulumi provides a pulumi console that shows an overview of each execution in a ui, hosted by pulumi on the user's account.", 'duration': 26.368, 'max_score': 742.358, 'thumbnail': 'https://coursnap.oss-ap-southeast-1.aliyuncs.com/video-capture/vIjeiDcsR3Q/pics/vIjeiDcsR3Q742358.jpg'}, {'end': 837.592, 'src': 'heatmap', 'start': 802.768, 'weight': 0.781, 'content': [{'end': 806.954, 'text': "So let's do something more useful and create an EKS cluster with Pulumi.", 'start': 802.768, 'duration': 4.186}, {'end': 812.083, 'text': "So first of all, I'm going to delete all this code and do pull me up.", 'start': 807.455, 'duration': 4.628}, {'end': 820.414, 'text': 'And Pulumi will clean up everything.', 'start': 818.493, 'duration': 1.921}, {'end': 831.521, 'text': 'So, as you see, Pulumi is declarative, which means we just say what we want as a result, which in our case is we want no buckets.', 'start': 820.955, 'duration': 10.566}, {'end': 837.592, 'text': 'instead of telling Pulumi what to do, which in this case would be please delete three buckets.', 'start': 831.521, 'duration': 6.071}], 'summary': 'Creating eks cluster with pulumi, using declarative approach for resource cleanup.', 'duration': 34.824, 'max_score': 802.768, 'thumbnail': 'https://coursnap.oss-ap-southeast-1.aliyuncs.com/video-capture/vIjeiDcsR3Q/pics/vIjeiDcsR3Q802768.jpg'}, {'end': 848.079, 'src': 'embed', 'start': 818.493, 'weight': 2, 'content': [{'end': 820.414, 'text': 'And Pulumi will clean up everything.', 'start': 818.493, 'duration': 1.921}, {'end': 831.521, 'text': 'So, as you see, Pulumi is declarative, which means we just say what we want as a result, which in our case is we want no buckets.', 'start': 820.955, 'duration': 10.566}, {'end': 837.592, 'text': 'instead of telling Pulumi what to do, which in this case would be please delete three buckets.', 'start': 831.521, 'duration': 6.071}, {'end': 848.079, 'text': "So clear advantage of that is that we don't have to keep track of the infrastructure state to be able to tell Pulumi what needs to be done or changed in the infrastructure,", 'start': 838.192, 'duration': 9.887}], 'summary': "Pulumi's declarative approach eliminates need to track infrastructure state, achieving the goal of zero buckets.", 'duration': 29.586, 'max_score': 818.493, 'thumbnail': 'https://coursnap.oss-ap-southeast-1.aliyuncs.com/video-capture/vIjeiDcsR3Q/pics/vIjeiDcsR3Q818493.jpg'}], 'start': 644.041, 'title': 'Using pulumi for infrastructure management', 'summary': 'Discusses managing infrastructure state with plumi, creating s3 buckets and an eks cluster with pulumi, and emphasizes the advantages of declarative infrastructure management, ease of tracking changes in pulumi console, and simplicity of cleaning up resources with pulumi destroy command.', 'chapters': [{'end': 726.574, 'start': 644.041, 'title': 'Managing infrastructure state with plumi', 'summary': 'Discusses how plumi uses a state file to manage infrastructure, allowing users to define and execute changes in the infrastructure using a program or script, with the ability to store the state file on a hosted pulumi service, s3 bucket, google cloud storage, or locally.', 'duration': 82.533, 'highlights': ['Plumi uses a state file in a JSON format to manage up-to-date information about infrastructure, allowing it to determine what changes need to be made by comparing the current state with the desired state defined in the program or script.', 'The state file can be stored on a hosted Pulumi service by default, but users can also configure Pulumi to store the state file in a different location such as S3 bucket, Google Cloud Storage, or locally, with the need to manage it themselves.', 'Pulumi plans how to transition the infrastructure from the current state to the desired state by comparing the current state with the desired state defined in the program or script, enabling users to execute changes in the infrastructure.', 'The state file managed by Pulumi is stored on a hosted Pulumi service by default, allowing for complete management, but users have the option to configure Pulumi to store the state file in alternative locations, requiring self-management.']}, {'end': 1180.241, 'start': 730.381, 'title': 'Creating s3 buckets and eks cluster with pulumi', 'summary': 'Illustrates the process of creating and managing s3 buckets and an eks cluster using pulumi, emphasizing the advantages of declarative infrastructure management, the ease of using pulumi console to track infrastructure changes, and the simplicity of cleaning up resources with pulumi destroy command.', 'duration': 449.86, 'highlights': ['Pulumi console provides an overview of infrastructure changes and activities, hosted by Pulumi itself, allowing users to track changes and their contributors. Pulumi console offers a simple UI displaying the history of infrastructure changes and a current infrastructure state, hosted by Pulumi, enabling users to track changes, contributors, and infrastructure activities.', "Declarative approach of Pulumi simplifies infrastructure management by specifying desired results instead of explicitly instructing actions, facilitating easy cleanup using Pulumi destroy command. Pulumi's declarative approach streamlines infrastructure management by specifying desired results instead of explicit actions, simplifying cleanup with Pulumi destroy command.", 'Creating an EKS cluster is demonstrated, emphasizing the ease of referencing resources, setting configuration options, and defining required outputs in the Pulumi program. Demonstration of creating an EKS cluster highlights the ease of referencing resources, configuring options, and defining required outputs in the Pulumi program.']}], 'duration': 536.2, 'thumbnail': 'https://coursnap.oss-ap-southeast-1.aliyuncs.com/video-capture/vIjeiDcsR3Q/pics/vIjeiDcsR3Q644041.jpg', 'highlights': ['Pulumi uses a state file in a JSON format to manage up-to-date information about infrastructure, allowing it to determine what changes need to be made by comparing the current state with the desired state defined in the program or script.', 'Pulumi console provides an overview of infrastructure changes and activities, hosted by Pulumi itself, allowing users to track changes and their contributors.', 'Declarative approach of Pulumi simplifies infrastructure management by specifying desired results instead of explicitly instructing actions, facilitating easy cleanup using Pulumi destroy command.', 'Pulumi plans how to transition the infrastructure from the current state to the desired state by comparing the current state with the desired state defined in the program or script, enabling users to execute changes in the infrastructure.']}], 'highlights': ['Pulumi enables adding more complex logic like conditionals and loops in infrastructure as code scripts, which is challenging with other tools.', 'Pulumi allows writing infrastructure as code in programming languages like Python, .NET, and Node.js, leveraging familiarity and toolset of the chosen language to enhance efficiency and collaboration between teams.', 'Pulumi uses a state file in a JSON format to manage up-to-date information about infrastructure, allowing it to determine what changes need to be made by comparing the current state with the desired state defined in the program or script.', 'Pulumi console provides an overview of infrastructure changes and activities, hosted by Pulumi itself, allowing users to track changes and their contributors.', 'The practical usage of Pulumi is demonstrated by creating an S3 bucket in an AWS account and provisioning an EKS cluster.', 'Pulumi is gaining popularity in the devops world as an infrastructure as code tool.', 'Pulumi enables writing tests for infrastructure as code using the same test libraries, programming language, and editor as for application code, enabling improved testing and collaboration between operations and development teams.', 'Pulumi allows writing infrastructure as code in programming languages like Python, .NET, and Node.js, leveraging familiarity and toolset of the chosen language to enhance efficiency and collaboration between teams.']}