{"id":9930,"date":"2021-12-22T12:00:07","date_gmt":"2021-12-22T11:00:07","guid":{"rendered":"http:\/\/www.orbit.cz\/?post_type=encyklopedie-cloudu&#038;p=9930"},"modified":"2024-10-31T14:18:49","modified_gmt":"2024-10-31T13:18:49","slug":"infrastructure-as-a-code-vsechno-co-jste-kdy-chteli-vedet-ale-bali-jste-se-zeptat","status":"publish","type":"encyklopedie-cloudu","link":"http:\/\/4.184.192.234\/en\/encyklopedie-cloudu\/infrastructure-as-a-code-vsechno-co-jste-kdy-chteli-vedet-ale-bali-jste-se-zeptat\/","title":{"rendered":"Infrastructure as Code"},"content":{"rendered":"<div class=\"wp-block-image\">\n<figure class=\"aligncenter is-resized\"><img loading=\"lazy\" decoding=\"async\" width=\"300\" height=\"139\" src=\"http:\/\/4.184.192.234\/wp-content\/uploads\/2021\/12\/infrastructure-as-a-code-01-300x139.png\" alt=\"Infrastructure as a Code: Everything You Ever Wanted to Know | ORBIT Cloud Encyclopedia\" class=\"wp-image-10714\" style=\"width:462px;height:auto\" srcset=\"http:\/\/4.184.192.234\/wp-content\/uploads\/2021\/12\/infrastructure-as-a-code-01-300x139.png 300w, http:\/\/4.184.192.234\/wp-content\/uploads\/2021\/12\/infrastructure-as-a-code-01-1024x475.png 1024w, http:\/\/4.184.192.234\/wp-content\/uploads\/2021\/12\/infrastructure-as-a-code-01-768x357.png 768w, http:\/\/4.184.192.234\/wp-content\/uploads\/2021\/12\/infrastructure-as-a-code-01.png 1120w\" sizes=\"auto, (max-width: 300px) 100vw, 300px\" \/><\/figure>\n<\/div>\n\n<style>.wp-block-kadence-column.kb-section-dir-horizontal > .kt-inside-inner-col > .kt-info-box9930_d5fbfd-62 .kt-blocks-info-box-link-wrap{max-width:unset;}.kt-info-box9930_d5fbfd-62 .kt-blocks-info-box-link-wrap{background:#ffffff;padding-top:var(--global-kb-spacing-xs, 1rem);padding-right:var(--global-kb-spacing-xs, 1rem);padding-bottom:var(--global-kb-spacing-xs, 1rem);padding-left:0px;}.kt-info-box9930_d5fbfd-62.wp-block-kadence-infobox{max-width:100%;}.kt-info-box9930_d5fbfd-62 .kadence-info-box-image-inner-intrisic-container .kadence-info-box-image-intrisic{padding-bottom:100%;max-width:100%;}.kt-info-box9930_d5fbfd-62 .kadence-info-box-icon-container .kt-info-svg-icon, .kt-info-box9930_d5fbfd-62 .kt-info-svg-icon-flip, .kt-info-box9930_d5fbfd-62 .kt-blocks-info-box-number{font-size:50px;}.kt-info-box9930_d5fbfd-62 .kt-blocks-info-box-media{border-radius:200px;overflow:hidden;border-top-width:0px;border-right-width:0px;border-bottom-width:0px;border-left-width:0px;padding-top:0px;padding-right:0px;padding-bottom:0px;padding-left:0px;margin-top:0px;margin-right:0px;margin-bottom:0px;margin-left:0px;}.kt-info-box9930_d5fbfd-62 .kt-infobox-textcontent p.kt-blocks-info-box-title{font-size:var(--global-kb-font-size-md, 1.25rem);padding-top:0px;padding-right:0px;padding-bottom:0px;padding-left:0px;margin-top:0px;margin-right:0px;margin-bottom:10px;margin-left:0px;}.kt-info-box9930_d5fbfd-62 .kt-blocks-info-box-learnmore{background:transparent;border-width:0px 0px 0px 0px;padding-top:4px;padding-right:8px;padding-bottom:4px;padding-left:8px;margin-top:10px;margin-right:0px;margin-bottom:10px;margin-left:0px;}<\/style>\n<div class=\"wp-block-kadence-infobox kt-info-box9930_d5fbfd-62 orbit-testimonial-second\"><span class=\"kt-blocks-info-box-link-wrap info-box-link kt-blocks-info-box-media-align-left kt-info-halign-left\"><div class=\"kt-blocks-info-box-media-container\"><div class=\"kt-blocks-info-box-media kt-info-media-animate-none\"><\/div><\/div><div class=\"kt-infobox-textcontent\"><p class=\"kt-blocks-info-box-title\">Infrastructure deployment automation is such a nice mantra - everyone talks about it, but few customers really have a fully automated deployment of their entire application infrastructure. So in today's article, we'll look at how to achieve it. We'll describe the reasons when and why to automate in this way, and show some examples.<\/p><p class=\"kt-blocks-info-box-text\"><strong>Martin Gavanda<\/strong><\/p><\/div><\/span><\/div>\n\n\n\n<h2 class=\"wp-block-heading\">When (not) to consider automated infrastructure<\/h2>\n\n\n\n<p>As our colleague likes to say&nbsp;<a href=\"https:\/\/www.linkedin.com\/in\/lukasklastersky\/\" target=\"_blank\" rel=\"noopener\">Lukas Kl\u00e1\u0161tersk\u00fd<\/a>if you are new to the cloud, \"don't think big\" and get to know it thoroughly first. On the other hand, if the cloud is already a standard for you, you're running several larger applications and everything is \"running as it should\", then maybe it's time to think about&nbsp;<em>Infrastructure as Code<\/em> (IaC).<\/p>\n\n\n\n<p>So what is the main goal of IaC? As the name suggests, it is, <strong>have the infrastructure defined in a similar way to the application source code<\/strong>. The result is therefore&nbsp;<em>IaC blueprint<\/em>&nbsp;(or artifact) that describes \"what this part of the infrastructure should look like\". In simple terms, we can say that each part of the infrastructure has a clear blueprint that it defines:&nbsp;<strong>\"This is what my database is supposed to look like.\"<\/strong>&nbsp;whether:&nbsp;<strong>\"This is what my&nbsp;<em>Redis Cluster<\/em>.\"<\/strong><\/p>\n\n\n\n<p>Of course, you can argue that each component of each of your applications is different, individual. In that case, IaC is probably not for you. Highlights&nbsp;<strong>synergy effect<\/strong>&nbsp;across the whole environment if you have a clear&nbsp;<strong>defined architectural standards<\/strong> (and at the same time follow them), which you then implement using IaC.<\/p>\n\n\n\n<p>However, if you have no standard or it is difficult to define one, there may be specific use-cases where IaC will make sense.<\/p>\n\n\n<div class=\"wp-block-image\">\n<figure class=\"aligncenter is-resized\"><img loading=\"lazy\" decoding=\"async\" width=\"244\" height=\"300\" src=\"http:\/\/4.184.192.234\/wp-content\/uploads\/2021\/12\/asdasdad-244x300.png\" alt=\"Infrastructure Automation, Infrastructure as a Code | ORBIT Cloud Encyclopedia\" class=\"wp-image-10000\" style=\"width:362px;height:auto\" srcset=\"http:\/\/4.184.192.234\/wp-content\/uploads\/2021\/12\/asdasdad-244x300.png 244w, http:\/\/4.184.192.234\/wp-content\/uploads\/2021\/12\/asdasdad-768x945.png 768w, http:\/\/4.184.192.234\/wp-content\/uploads\/2021\/12\/asdasdad.png 818w\" sizes=\"auto, (max-width: 244px) 100vw, 244px\" \/><\/figure>\n<\/div>\n\n\n<p>I'll be a bit ahead of you: this example (simplified) shows how such a&nbsp;<strong>IaC blueprint for database<\/strong>&nbsp;(in an AWS environment, blueprint defined using&nbsp;<a href=\"https:\/\/aws.amazon.com\/cloudformation\/\" target=\"_blank\" rel=\"nofollow noopener\">AWS CloudFormation<\/a>):<\/p>\n\n\n<div class=\"wp-block-image\">\n<figure class=\"aligncenter is-resized\"><img loading=\"lazy\" decoding=\"async\" width=\"300\" height=\"181\" src=\"http:\/\/4.184.192.234\/wp-content\/uploads\/2021\/12\/dasdsad-3-300x181.png\" alt=\"IaaC blueprint, sample code | ORBIT Cloud Encyclopedia\" class=\"wp-image-10002\" style=\"width:438px;height:auto\" srcset=\"http:\/\/4.184.192.234\/wp-content\/uploads\/2021\/12\/dasdsad-3-300x181.png 300w, http:\/\/4.184.192.234\/wp-content\/uploads\/2021\/12\/dasdsad-3-1024x619.png 1024w, http:\/\/4.184.192.234\/wp-content\/uploads\/2021\/12\/dasdsad-3-768x464.png 768w, http:\/\/4.184.192.234\/wp-content\/uploads\/2021\/12\/dasdsad-3-1536x928.png 1536w, http:\/\/4.184.192.234\/wp-content\/uploads\/2021\/12\/dasdsad-3.png 2012w\" sizes=\"auto, (max-width: 300px) 100vw, 300px\" \/><\/figure>\n<\/div>\n\n\n<p>Now we won't go into detail about what each part means, but I wanted to show you \"what it really looks like\" right at the beginning.<\/p>\n\n\n\n<h2 class=\"wp-block-heading\"><strong>Why automate infrastructure or use cases<\/strong><\/h2>\n\n\n\n<p>Okay, so we know roughly what IaC is, and we have a rough idea of what it might be good for. Let's take a look at&nbsp;<strong>specific use of IaC<\/strong>.<\/p>\n\n\n\n<p>For those of you who prefer brevity to detailed examples, the summary is roughly as follows:<\/p>\n\n\n\n<p><strong>When to consider Infrastructure as a Code<\/strong><\/p>\n\n\n\n<ul class=\"wp-block-list\">\n<li>I have clearly defined infrastructure standards.<\/li>\n\n\n\n<li>I need to dynamically create individual application environments.<\/li>\n\n\n\n<li>There are frequent changes in the environment that I want to manage centrally.<\/li>\n<\/ul>\n\n\n\n<p><strong>When for me Infrastructure as a Code is rather not<\/strong><\/p>\n\n\n\n<ul class=\"wp-block-list\">\n<li>I am just getting acquainted with the cloud, I have rather basic experience with running a cloud environment.<\/li>\n\n\n\n<li>My infrastructure is primarily \"static\", without many changes.<\/li>\n\n\n\n<li>Application infrastructure is highly individual and it is not possible to define a general binding standard.<\/li>\n<\/ul>\n\n\n\n<p>In general, we can say that <strong>Infrastructure as a Code is an integral part of cloud automation<\/strong> and automation itself is one of the main motivations for using the cloud.<\/p>\n\n\n\n<h3 class=\"wp-block-heading\"><strong>Use case 1: Dynamic environment<\/strong><\/h3>\n\n\n\n<p>This scenario typically involves&nbsp;<strong>development or testing environments<\/strong>. Why should I run a development environment permanently (and pay for it) when development needs it \"only when it is deploying and testing something\"? Or maybe I have multiple development teams working on the same application. To avoid \"clashes\" between them, I want to be able to give each team&nbsp;<strong>prepare an identical environment<\/strong>&nbsp;(and then delete it again when it's no longer needed).<\/p>\n\n\n\n<p>If you define such an environment using IaC blueprints, you can dynamically deploy the entire environment and delete it when you no longer need it. And all this is completely automated within your&nbsp;<a href=\"http:\/\/4.184.192.234\/en\/encyklopedie-cloudu\/deployment-pipelines-jdeme-na-to-v-cloudu\/\" target=\"_blank\" rel=\"noopener\">CI\/CD pipeline<\/a>.<\/p>\n\n\n\n<h3 class=\"wp-block-heading\"><strong>Use case 2: Infrastructure as an integral part of the application<\/strong><\/h3>\n\n\n\n<p>This scenario supports one of the important aspects of cloud-native application development, which is parity between environments. Ideally, I want my&nbsp;<strong>the test environment was the same as the production<\/strong>&nbsp;(maybe smaller in terms of performance), but&nbsp;<strong>architecturally identical<\/strong>.<\/p>\n\n\n\n<p>This approach greatly simplifies my search for potential bugs and the overall troubleshooting environment. The description of the infrastructure is therefore an integral part of the application delivery and I am able to deploy such an application into the target environment immediately.<\/p>\n\n\n\n<p>In a moment we will say that there are different types of blueprints and one of them is blueprints for configuring the landing zone (cloud environment) itself. In this use case, the goal is to have&nbsp;<strong>all environments<\/strong>&nbsp;(from a general perspective, not in the context of the application itself)&nbsp;<strong>set up exactly identically<\/strong>&nbsp;- to enforce the standard.<\/p>\n\n\n\n<p>For example, in all environments, a specific&nbsp;<a href=\"http:\/\/4.184.192.234\/en\/encyklopedie-cloudu\/tagovani-v-cloudu-jak-z-nej-vytezit-maximum\/\" target=\"_blank\" rel=\"noopener\"><em>tagging policy<\/em><\/a>, an audit trail is configured in all environments, and all environments \"by default\" have a backbone configured in some (identical) way.<\/p>\n\n\n\n<h3 class=\"wp-block-heading\"><strong>Use case 3: Automated infrastructure lifecycle<\/strong><\/h3>\n\n\n\n<p>Over time, standards are changed, expanded or otherwise modified. Thanks to IaC, I can <strong>make modifications in a simple way<\/strong>&nbsp;or other changes above&nbsp;<strong>all infrastructure<\/strong>and thus manage the entire infrastructure lifecycle. From its creation through all its changes to its final closure.<\/p>\n\n\n\n<p>For example, I defined at the beginning that I want to have 14 daily backups for all databases and that each database can be accessed by administrators from a specific network range. Over time, the decision was made that it was necessary from a business perspective to maintain 30 backups, and at the same time the organization expanded to include another branch office whose employees also needed access to all databases.<\/p>\n\n\n\n<p>I can in a simple way&nbsp;<strong>modify my original blueprint<\/strong>&nbsp;for the database, these requests to it&nbsp;<strong>Embed&nbsp;<\/strong>and then&nbsp;<strong>automated editing<\/strong>&nbsp;all databases created from this blueprint. Similarly, I can, for example, remove all components created based on this blueprint in bulk at any time.<\/p>\n\n\n\n<h2 class=\"wp-block-heading\"><strong>Blueprints everywhere you look<\/strong><\/h2>\n\n\n\n<p>As I have already hinted a moment ago, there are basically three basic categories of IaC blueprints:<\/p>\n\n\n\n<ul class=\"wp-block-list\">\n<li>Infrastructure<\/li>\n\n\n\n<li>Configuration environment (landing zone)<\/li>\n\n\n\n<li>Security<\/li>\n<\/ul>\n\n\n\n<h3 class=\"wp-block-heading\"><strong>Blueprints for application infrastructure<\/strong><\/h3>\n\n\n\n<p>These blueprints are then further divided into:<\/p>\n\n\n\n<ul class=\"wp-block-list\">\n<li>Generic<\/li>\n\n\n\n<li>Application-specific<\/li>\n<\/ul>\n\n\n\n<p>Under&nbsp;<strong>generic blueprints<\/strong> application we can imagine for example the already mentioned database. It is represented by one single IaC blueprint and all applications use only it. Another example could be the deployment of a containerization infrastructure or a virtual server.<\/p>\n\n\n\n<p><strong>Application-specific blueprints<\/strong>&nbsp;are part of one specific application and are not used by another application. These can be, for example, application parameters stored in&nbsp;<a href=\"https:\/\/docs.aws.amazon.com\/systems-manager\/latest\/userguide\/systems-manager-parameter-store.html\" target=\"_blank\" rel=\"nofollow noopener\">AWS System Manager Parameter Store<\/a>&nbsp;or&nbsp;<a href=\"https:\/\/docs.microsoft.com\/en-us\/azure\/azure-app-configuration\/overview\" target=\"_blank\" rel=\"nofollow noopener\">Azure AppConfig<\/a>) or specific application secrets in&nbsp;<a href=\"https:\/\/aws.amazon.com\/secrets-manager\/\" target=\"_blank\" rel=\"nofollow noopener\">AWS Secret Manager<\/a>&nbsp;or&nbsp;<a href=\"https:\/\/docs.microsoft.com\/en-us\/azure\/key-vault\/general\/overview\" target=\"_blank\" rel=\"nofollow noopener\">Azure Vault<\/a>.<\/p>\n\n\n\n<h3 class=\"wp-block-heading\"><strong>Blueprints for environment configuration (landing zone)<\/strong><\/h3>\n\n\n\n<p>I mentioned these blueprints a while ago. They are designed&nbsp;<strong>to configure the entire cloud environment and are always deployed<\/strong>regardless of what application is running within the environment.<\/p>\n\n\n\n<p>These include, for example, components of the type&nbsp;<em>Budgets&nbsp;<\/em>(to have some mechanism for cost control and reporting deployed in each environment), backbone network configuration (e.g. standard routing tables to my Hub network, as described by Jakub Proch\u00e1zka in his article&nbsp;<a href=\"http:\/\/4.184.192.234\/en\/encyklopedie-cloudu\/sitova-architektura-aneb-rozpletame-cloudove-site\/\" target=\"_blank\" rel=\"noopener\">Untangling cloud networks<\/a>) or it can be for example some serverless function responsible for forwarding security logs to the central SIEM environment.<\/p>\n\n\n\n<h3 class=\"wp-block-heading\"><strong>Safety blueprints<\/strong><\/h3>\n\n\n\n<p>This is a specific category of blueprints that are also deployed&nbsp;<strong>for every environment<\/strong>but it's within his purview&nbsp;<strong>security department<\/strong>. The purpose of security blueprints is to define security policies that control or directly enforce that my security requirements are met (typically using components such as&nbsp;<em>AWS Config<\/em>&nbsp;or&nbsp;<em>Azure Policy<\/em>).<\/p>\n\n\n\n<p>Examples include compliance with&nbsp;<em>tagging policy<\/em>whether all components are really encrypted, if specific parameters of individual components are set in a specific way, etc.<\/p>\n\n\n\n<p>You could argue that security blueprints are unnecessary because all parameters are set \"as they should be\" thanks to application blueprints. This is true, but only when such a blueprint is deployed. Over time, individual cloud resources may be modified (human error, unconscious change, etc.). The purpose of security blueprints is therefore to&nbsp;<strong>continuous control of the entire environment<\/strong>. They can therefore be seen as \"control blueprints\".<\/p>\n\n\n\n<h2 class=\"wp-block-heading\"><strong>How it all plays together<\/strong><\/h2>\n\n\n\n<p>So if you decide (and you should) to implement all three types of IaC blueprints, the result will look something like this:<\/p>\n\n\n<div class=\"wp-block-image\">\n<figure class=\"aligncenter is-resized\"><img loading=\"lazy\" decoding=\"async\" width=\"300\" height=\"134\" src=\"http:\/\/4.184.192.234\/wp-content\/uploads\/2021\/12\/dadssad-300x134.png\" alt=\"Three types of IaaC blueprint | Infrastructure as a Code | ORBIT Cloud Encyclopedia\" class=\"wp-image-10004\" style=\"width:490px;height:auto\" srcset=\"http:\/\/4.184.192.234\/wp-content\/uploads\/2021\/12\/dadssad-300x134.png 300w, http:\/\/4.184.192.234\/wp-content\/uploads\/2021\/12\/dadssad-1024x458.png 1024w, http:\/\/4.184.192.234\/wp-content\/uploads\/2021\/12\/dadssad-768x343.png 768w, http:\/\/4.184.192.234\/wp-content\/uploads\/2021\/12\/dadssad-1536x687.png 1536w, http:\/\/4.184.192.234\/wp-content\/uploads\/2021\/12\/dadssad-2048x916.png 2048w\" sizes=\"auto, (max-width: 300px) 100vw, 300px\" \/><\/figure>\n<\/div>\n\n\n<p>First, the individual blueprints for landing zone configurations are deployed to the environment, then the security blueprints, and finally the individual infrastructure blueprints.<\/p>\n\n\n\n<p>This will achieve a state where:<\/p>\n\n\n\n<ul class=\"wp-block-list\">\n<li>each environment (in this case, the AWS environment)&nbsp;<strong>is deployed according to the global standard<\/strong>,<\/li>\n\n\n\n<li>my colleagues in the security department know that all&nbsp;<strong>the requirements of the compliance environment are implemented<\/strong>,<\/li>\n\n\n\n<li>the application itself is&nbsp;<strong>deployed in a clearly defined standard<\/strong>.<\/li>\n<\/ul>\n\n\n\n<h2 class=\"wp-block-heading\"><strong>Blueprint lifecycle<\/strong><\/h2>\n\n\n\n<p>We should definitely not forget that individual&nbsp;<strong>blueprints change and evolve over time<\/strong>&nbsp;as your internal architectural or security requirements change. It is therefore important to have a defined process for how blueprints change over time.<\/p>\n\n\n\n<p>We treat them similarly to other program code.<\/p>\n\n\n<div class=\"wp-block-image\">\n<figure class=\"aligncenter is-resized\"><img loading=\"lazy\" decoding=\"async\" width=\"300\" height=\"154\" src=\"http:\/\/4.184.192.234\/wp-content\/uploads\/2021\/12\/dsadsada-1-300x154.png\" alt=\"Blueprints | ORBIT Cloud Encyclopedia\" class=\"wp-image-10006\" style=\"width:442px;height:auto\" srcset=\"http:\/\/4.184.192.234\/wp-content\/uploads\/2021\/12\/dsadsada-1-300x154.png 300w, http:\/\/4.184.192.234\/wp-content\/uploads\/2021\/12\/dsadsada-1-1024x526.png 1024w, http:\/\/4.184.192.234\/wp-content\/uploads\/2021\/12\/dsadsada-1-768x394.png 768w, http:\/\/4.184.192.234\/wp-content\/uploads\/2021\/12\/dsadsada-1-1536x788.png 1536w, http:\/\/4.184.192.234\/wp-content\/uploads\/2021\/12\/dsadsada-1.png 1734w\" sizes=\"auto, (max-width: 300px) 100vw, 300px\" \/><\/figure>\n<\/div>\n\n\n<p>Usually the resulting blueprints are stored in&nbsp;<strong>central repository<\/strong>&nbsp;(for example&nbsp;<em>AWS S3<\/em>&nbsp;or&nbsp;<em>Azure Storage Account<\/em>), from which they are deployed. Under no circumstances should this repository allow direct modification of these blueprints!<\/p>\n\n\n\n<p>Typical&nbsp;<strong>controlled and audited blueprint modification scenario<\/strong>&nbsp;is such that its individual versions are stored in some central&nbsp;<em>source-code repository<\/em>&nbsp;(for example&nbsp;<em>GIT<\/em>). When a new version of the blueprint is changed (commuted), the CI\/CD pipeline is started, the first step of which is to validate the changes made (review process).<\/p>\n\n\n\n<p>If the review is successful, the new version of the blueprint is deployed to the test environment, where it is tested that \"everything is as it should be\", and then the new version of the blueprint is finally made available in the central blueprint repository.<\/p>\n\n\n\n<h2 class=\"wp-block-heading\"><strong>Desired state and why it is so important<\/strong><\/h2>\n\n\n\n<p>Let's describe what it is&nbsp;<strong>desired state<\/strong>&nbsp;and why you should care.&nbsp;<em>Desired state<\/em>&nbsp;approach describes \"<strong>target state of the object<\/strong>\", i.e. that my (for example) database should look like \"so and so\".<\/p>\n\n\n\n<p>It therefore uses&nbsp;<strong>declarative approach<\/strong>. I declare \"as it should be\". Which is a different approach than you may be used to -&nbsp;<strong>imperative approach<\/strong>where I define \"what to configure\".<\/p>\n\n\n\n<p>An example of a declarative approach:<\/p>\n\n\n\n<ul class=\"wp-block-list\">\n<li>My database should be called&nbsp;<em>MyDb<\/em>.<\/li>\n\n\n\n<li>The size of the database is to be 20 GB.<\/li>\n\n\n\n<li>The database performance is 2 CPUs and 4 GB RAM.<\/li>\n\n\n\n<li>The database disk is to be encrypted.<\/li>\n<\/ul>\n\n\n\n<p>An example of the imperative approach:<\/p>\n\n\n\n<ul class=\"wp-block-list\">\n<li>Create a database with a name&nbsp;<em>MyDb<\/em>.<\/li>\n\n\n\n<li>Configure the database&nbsp;<em>MyDb<\/em>&nbsp;so that it is 20 GB in size.<\/li>\n\n\n\n<li>Configure the database&nbsp;<em>MyDb<\/em>&nbsp;so that it has 2 CPUs and 4 GB of RAM.<\/li>\n\n\n\n<li>Encrypt the database disk&nbsp;<em>MyDb<\/em>.<\/li>\n<\/ul>\n\n\n<div class=\"wp-block-image\">\n<figure class=\"aligncenter is-resized\"><img loading=\"lazy\" decoding=\"async\" width=\"300\" height=\"123\" src=\"http:\/\/4.184.192.234\/wp-content\/uploads\/2021\/12\/asdsad-300x123.png\" alt=\"Imperative and declarative approach | Infrastructure as a Code | ORBITE Cloud Encyclopedia ORBIT Cloud Encyclopedia\" class=\"wp-image-10008\" style=\"width:500px;height:auto\" srcset=\"http:\/\/4.184.192.234\/wp-content\/uploads\/2021\/12\/asdsad-300x123.png 300w, http:\/\/4.184.192.234\/wp-content\/uploads\/2021\/12\/asdsad-1024x421.png 1024w, http:\/\/4.184.192.234\/wp-content\/uploads\/2021\/12\/asdsad-768x316.png 768w, http:\/\/4.184.192.234\/wp-content\/uploads\/2021\/12\/asdsad-1536x631.png 1536w, http:\/\/4.184.192.234\/wp-content\/uploads\/2021\/12\/asdsad-2048x841.png 2048w\" sizes=\"auto, (max-width: 300px) 100vw, 300px\" \/><\/figure>\n<\/div>\n\n\n<p>The great advantage of declarative writing is that I have that&nbsp;<em>desired state<\/em>&nbsp;- that is, information on how it should be. If I have information about the target state,&nbsp;<strong>I am able to easily check the current status against the target at any time<\/strong>.<\/p>\n\n\n\n<p>For example, at the beginning the database was encrypted, but over time someone (due to human error, for example) decrypted it. If I know the current and target state, I am able to detect this situation, including detailed \"what is different than it should be\" information.<\/p>\n\n\n\n<h2 class=\"wp-block-heading\"><strong>Example of using desired state<\/strong><\/h2>\n\n\n\n<p>Sample functionality&nbsp;<a href=\"https:\/\/docs.aws.amazon.com\/AWSCloudFormation\/latest\/UserGuide\/detect-drift-stack.html\" target=\"_blank\" rel=\"nofollow noopener\">AWS CloudFormation Drift<\/a>, a technology that allows us to detect deviations from the target state:<\/p>\n\n\n<div class=\"wp-block-image\">\n<figure class=\"aligncenter is-resized\"><img loading=\"lazy\" decoding=\"async\" width=\"300\" height=\"78\" src=\"http:\/\/4.184.192.234\/wp-content\/uploads\/2021\/12\/adasd-300x78.png\" alt=\"AWS CloudFormation Drift | ORBIT Cloud Encyclopedia\" class=\"wp-image-10010\" style=\"width:498px;height:auto\" srcset=\"http:\/\/4.184.192.234\/wp-content\/uploads\/2021\/12\/adasd-300x78.png 300w, http:\/\/4.184.192.234\/wp-content\/uploads\/2021\/12\/adasd-1024x266.png 1024w, http:\/\/4.184.192.234\/wp-content\/uploads\/2021\/12\/adasd-768x199.png 768w, http:\/\/4.184.192.234\/wp-content\/uploads\/2021\/12\/adasd-1536x398.png 1536w, http:\/\/4.184.192.234\/wp-content\/uploads\/2021\/12\/adasd-2048x531.png 2048w\" sizes=\"auto, (max-width: 300px) 100vw, 300px\" \/><\/figure>\n<\/div>\n\n\n<p>Here at first glance&nbsp;<strong>I see there's been a modification<\/strong>&nbsp;Resources&nbsp;<em>ManagementSecurityGroup<\/em>which does not currently correspond to its target state. On the basis of this information, I have the possibility to perform, if necessary&nbsp;<strong>corrective actions<\/strong>.<\/p>\n\n\n<div class=\"wp-block-image\">\n<figure class=\"aligncenter is-resized\"><img loading=\"lazy\" decoding=\"async\" width=\"300\" height=\"184\" src=\"http:\/\/4.184.192.234\/wp-content\/uploads\/2021\/12\/sadsad-1-300x184.png\" alt=\"Corrective Steps | ORBIT Cloud Encyclopedia\" class=\"wp-image-10012\" style=\"width:482px;height:auto\" srcset=\"http:\/\/4.184.192.234\/wp-content\/uploads\/2021\/12\/sadsad-1-300x184.png 300w, http:\/\/4.184.192.234\/wp-content\/uploads\/2021\/12\/sadsad-1-1024x628.png 1024w, http:\/\/4.184.192.234\/wp-content\/uploads\/2021\/12\/sadsad-1-768x471.png 768w, http:\/\/4.184.192.234\/wp-content\/uploads\/2021\/12\/sadsad-1.png 1240w\" sizes=\"auto, (max-width: 300px) 100vw, 300px\" \/><\/figure>\n<\/div>\n\n\n<p><em>AWS Cloud Formation Drifts<\/em>&nbsp;is one of the tools falling under the category of&nbsp;<strong>continuous cloud compliance<\/strong>, which is a slightly broader area dedicated to the continuous evaluation of defined rules. This includes a plethora of tools - both native, for example&nbsp;<a href=\"https:\/\/docs.microsoft.com\/en-us\/azure\/governance\/policy\/overview\" target=\"_blank\" rel=\"nofollow noopener\">Azure Policy<\/a>,&nbsp;<a href=\"https:\/\/aws.amazon.com\/config\/\" target=\"_blank\" rel=\"nofollow noopener\">AWS Config<\/a>&nbsp;or the aforementioned&nbsp;<em>Cloud Formation Drifts<\/em>, as well as external, for example, the tool&nbsp;<a href=\"https:\/\/www.checkpoint.com\/cloudguard\/cloud-security-solutions\/\" target=\"_blank\" rel=\"nofollow noopener\">CheckPoint CloudGuard<\/a>.<\/p>\n\n\n\n<p>Topic&nbsp;<em>continuous cloud compliance<\/em>&nbsp;is rather for a separate article - don't worry, it will be soon!<\/p>\n\n\n\n<h2 class=\"wp-block-heading\"><strong>So what tools can I use?<\/strong><\/h2>\n\n\n\n<p>If you've read this far, congratulations! So the concept of Infrastructure as a Code has probably caught your attention and now you're probably wondering how to actually implement it.<\/p>\n\n\n\n<p>First&nbsp;<strong>the decision you have to make&nbsp;<\/strong>is whether you want to focus on just one specific cloud environment, or whether you want to manage everything from on-premise across multiple cloud environments with one tool.<\/p>\n\n\n\n<p>If your goal is to be truly&nbsp;<strong>Hybrid<\/strong>, our recommendation is to use the tool&nbsp;<a href=\"https:\/\/www.terraform.io\/\" target=\"_blank\" rel=\"nofollow noopener\">Terraform<\/a>&nbsp;from the company&nbsp;<a href=\"https:\/\/www.hashicorp.com\/\" target=\"_blank\" rel=\"nofollow noopener\">HashiCorp<\/a>. This tool is extremely powerful, but from my perspective, its complex deployment can be a relatively complicated task. On the other hand, it will offer you a truly hybrid approach to IaC across any environment.<\/p>\n\n\n<div class=\"wp-block-image\">\n<figure class=\"aligncenter is-resized\"><a href=\"\/en\/\u00a0https:\/\/learn.hashicorp.com\/tutorials\/terraform\/infrastructure-as-code\/?in=onboarding\/tfcb-week-2\"><img loading=\"lazy\" decoding=\"async\" width=\"300\" height=\"159\" src=\"http:\/\/4.184.192.234\/wp-content\/uploads\/2021\/12\/dasda-300x159.png\" alt=\"Terraform by HashiCorp | ORBIT Cloud Encyclopedia\" class=\"wp-image-10014\" style=\"width:418px;height:auto\" srcset=\"http:\/\/4.184.192.234\/wp-content\/uploads\/2021\/12\/dasda-300x159.png 300w, http:\/\/4.184.192.234\/wp-content\/uploads\/2021\/12\/dasda-1024x544.png 1024w, http:\/\/4.184.192.234\/wp-content\/uploads\/2021\/12\/dasda-768x408.png 768w, http:\/\/4.184.192.234\/wp-content\/uploads\/2021\/12\/dasda-1536x816.png 1536w, http:\/\/4.184.192.234\/wp-content\/uploads\/2021\/12\/dasda.png 1840w\" sizes=\"auto, (max-width: 300px) 100vw, 300px\" \/><\/a><figcaption class=\"wp-element-caption\">Terraform from HashiCorp (learn.hashicorp.com)<\/figcaption><\/figure>\n<\/div>\n\n\n<p>If, on the other hand, you only want to focus on<strong>&nbsp;one specific cloud environment<\/strong>, I would recommend using the tools of your chosen cloud provider.<\/p>\n\n\n\n<p>In the environment&nbsp;<a href=\"https:\/\/aws.amazon.com\/\" target=\"_blank\" rel=\"nofollow noopener\">Amazon Web Services<\/a>&nbsp;it's a tool&nbsp;<a href=\"https:\/\/aws.amazon.com\/cloudformation\/\" target=\"_blank\" rel=\"nofollow noopener\">CloudFormation<\/a>. The astute reader will have noticed that this article uses samples primarily from this tool, which I personally prefer.<\/p>\n\n\n<div class=\"wp-block-image\">\n<figure class=\"aligncenter is-resized\"><a href=\"https:\/\/aws.amazon.com\/cloudformation\/\"><img loading=\"lazy\" decoding=\"async\" width=\"300\" height=\"99\" src=\"http:\/\/4.184.192.234\/wp-content\/uploads\/2021\/12\/dsadsa-300x99.png\" alt=\"Amazon Web Services tool CloudFormation | ORBIT Cloud Encyclopedia\" class=\"wp-image-10016\" style=\"width:432px;height:auto\" srcset=\"http:\/\/4.184.192.234\/wp-content\/uploads\/2021\/12\/dsadsa-300x99.png 300w, http:\/\/4.184.192.234\/wp-content\/uploads\/2021\/12\/dsadsa-1024x337.png 1024w, http:\/\/4.184.192.234\/wp-content\/uploads\/2021\/12\/dsadsa-768x253.png 768w, http:\/\/4.184.192.234\/wp-content\/uploads\/2021\/12\/dsadsa-1536x505.png 1536w, http:\/\/4.184.192.234\/wp-content\/uploads\/2021\/12\/dsadsa-2048x673.png 2048w\" sizes=\"auto, (max-width: 300px) 100vw, 300px\" \/><\/a><figcaption class=\"wp-element-caption\">Amazon Web Tool (aws.amazon.com\/cloudformation)<\/figcaption><\/figure>\n<\/div>\n\n\n<p>What can be interesting is the possibility to use the associated tool&nbsp;<a href=\"https:\/\/aws.amazon.com\/cdk\/\" target=\"_blank\" rel=\"nofollow noopener\">Cloud Development Kit (CDK)<\/a>&nbsp;for creating CloudFormation blueprints. The CDK will probably be used by those of you whose cloud environment is mainly dedicated to the development department. The CDK allows you to create CloudFormation blueprints using individual programming languages such as JavaScript, TypeScript, Python, Java, C#, and Go.<\/p>\n\n\n\n<p>If your cloud environment is&nbsp;<a href=\"https:\/\/azure.microsoft.com\/en-us\/\" target=\"_blank\" rel=\"nofollow noopener\">Azure<\/a>, you will definitely take advantage&nbsp;<a href=\"https:\/\/docs.microsoft.com\/en-us\/azure\/azure-resource-manager\/templates\/overview\" target=\"_blank\" rel=\"nofollow noopener\">Azure Resource Manager<\/a>&nbsp;(ARM) templates.<\/p>\n\n\n<div class=\"wp-block-image\">\n<figure class=\"aligncenter is-resized\"><a href=\"https:\/\/docs.microsoft.com\/en-gb\/archive\/blogs\/uk_faculty_connection\/overview-of-the-arm-template-development-workflow\"><img loading=\"lazy\" decoding=\"async\" width=\"300\" height=\"169\" src=\"http:\/\/4.184.192.234\/wp-content\/uploads\/2021\/12\/dsasad-300x169.png\" alt=\"Azure Resource Templates | ORBIT Cloud Encyclopedia\" class=\"wp-image-10018\" style=\"width:430px;height:auto\" srcset=\"http:\/\/4.184.192.234\/wp-content\/uploads\/2021\/12\/dsasad-300x169.png 300w, http:\/\/4.184.192.234\/wp-content\/uploads\/2021\/12\/dsasad-1024x577.png 1024w, http:\/\/4.184.192.234\/wp-content\/uploads\/2021\/12\/dsasad-768x433.png 768w, http:\/\/4.184.192.234\/wp-content\/uploads\/2021\/12\/dsasad.png 1362w\" sizes=\"auto, (max-width: 300px) 100vw, 300px\" \/><\/a><figcaption class=\"wp-element-caption\">Azure Resource Templates (docs.microsoft.com)<\/figcaption><\/figure>\n<\/div>\n\n\n<p><strong>ARM is a native and integral part of Azure.<\/strong>&nbsp;If you're observant, you'll have noticed that Azure translates all your operations (performed in the Azure Graphical Console) related to the creation of any resource into an ARM template, which it then applies.<\/p>\n\n\n<div class=\"wp-block-image\">\n<figure class=\"aligncenter is-resized\"><img loading=\"lazy\" decoding=\"async\" width=\"300\" height=\"196\" src=\"http:\/\/4.184.192.234\/wp-content\/uploads\/2021\/12\/dadsada-300x196.png\" alt=\"Download ARM templates | ORBIT Cloud Encyclopedia\" class=\"wp-image-10020\" style=\"width:458px;height:auto\" srcset=\"http:\/\/4.184.192.234\/wp-content\/uploads\/2021\/12\/dadsada-300x196.png 300w, http:\/\/4.184.192.234\/wp-content\/uploads\/2021\/12\/dadsada-1024x669.png 1024w, http:\/\/4.184.192.234\/wp-content\/uploads\/2021\/12\/dadsada-768x502.png 768w, http:\/\/4.184.192.234\/wp-content\/uploads\/2021\/12\/dadsada.png 1068w\" sizes=\"auto, (max-width: 300px) 100vw, 300px\" \/><\/figure>\n<\/div>\n\n\n<p>If you want to get some inspiration on how these \"internal\" ARM templates look like, you can try creating any source and download this generated ARM template.<\/p>\n\n\n\n<h2 class=\"wp-block-heading\"><strong>Conclusion on Infrastructure as Code<\/strong><\/h2>\n\n\n\n<p>If you're serious about cloud automation, Infrastructure as Code is definitely the way to go in terms of any tool. And honestly - if you're thinking about how to use the cloud to its fullest in your environment, then <strong>you should automatically think about automating<\/strong>.<\/p>\n\n\n\n<p>At first glance, Infrastructure as Code may look complicated, but believe me, once you try deploying a few components into your environment and get familiar with the whole concept of IaC, you probably won't want to build your environment \"by hand\" anymore. We'll come back to this topic in a future article in our&nbsp;<a href=\"http:\/\/4.184.192.234\/en\/encyklopedie-cloudu\/\" target=\"_blank\" rel=\"nofollow noopener\">Cloud Encyclopedia<\/a>.<\/p>","protected":false},"excerpt":{"rendered":"<p>When is it most sensible to rely on the Infrastructure as Code concept? What are its advantages? And which tools to use to achieve the desired state?<\/p>","protected":false},"author":10,"featured_media":10714,"template":"","meta":{"_acf_changed":true,"_kad_blocks_custom_css":"","_kad_blocks_head_custom_js":"","_kad_blocks_body_custom_js":"","_kad_blocks_footer_custom_js":"","_kad_post_transparent":"","_kad_post_title":"","_kad_post_layout":"","_kad_post_sidebar_id":"","_kad_post_content_style":"","_kad_post_vertical_padding":"","_kad_post_feature":"","_kad_post_feature_position":"","_kad_post_header":false,"_kad_post_footer":false,"_kad_post_classname":""},"categories":[126,130],"class_list":["post-9930","encyklopedie-cloudu","type-encyklopedie-cloudu","status-publish","has-post-thumbnail","hentry","category-cloud-computing","category-cloud-journey"],"acf":[],"yoast_head":"<!-- This site is optimized with the Yoast SEO plugin v27.4 - https:\/\/yoast.com\/product\/yoast-seo-wordpress\/ -->\n<title>Infrastructure as Code | Encyklopedie cloudu ORBIT<\/title>\n<meta name=\"description\" content=\"Kdy je nejrozumn\u011bj\u0161\u00ed op\u0159\u00edt se o koncept Infrastructure as Code? Jak\u00e9 m\u00e1 v\u00fdhody? A kter\u00e9 n\u00e1stroje k dosa\u017een\u00ed \u017e\u00e1douc\u00edho stavu pou\u017e\u00edt?\" \/>\n<meta name=\"robots\" content=\"index, follow, max-snippet:-1, max-image-preview:large, max-video-preview:-1\" \/>\n<link rel=\"canonical\" href=\"http:\/\/4.184.192.234\/en\/encyklopedie-cloudu\/infrastructure-as-a-code-vsechno-co-jste-kdy-chteli-vedet-ale-bali-jste-se-zeptat\/\" \/>\n<meta property=\"og:locale\" content=\"en_GB\" \/>\n<meta property=\"og:type\" content=\"article\" \/>\n<meta property=\"og:title\" content=\"Infrastructure as Code: v\u0161echno, co pot\u0159ebujete v\u011bd\u011bt... | Encyklopedie cloudu ORBIT\" \/>\n<meta property=\"og:description\" content=\"Kdy a kde vyu\u017e\u00edt koncept Infrastructure as Code?\" \/>\n<meta property=\"og:url\" content=\"http:\/\/4.184.192.234\/en\/encyklopedie-cloudu\/infrastructure-as-a-code-vsechno-co-jste-kdy-chteli-vedet-ale-bali-jste-se-zeptat\/\" \/>\n<meta property=\"og:site_name\" content=\"ORBIT | create IT your own way\" \/>\n<meta property=\"article:modified_time\" content=\"2024-10-31T13:18:49+00:00\" \/>\n<meta property=\"og:image\" content=\"http:\/\/4.184.192.234\/wp-content\/uploads\/2022\/01\/EC23-scaled.jpg\" \/>\n\t<meta property=\"og:image:width\" content=\"2048\" \/>\n\t<meta property=\"og:image:height\" content=\"1072\" \/>\n\t<meta property=\"og:image:type\" content=\"image\/jpeg\" \/>\n<meta name=\"twitter:card\" content=\"summary_large_image\" \/>\n<meta name=\"twitter:title\" content=\"Infrastructure as Code: v\u0161echno, co pot\u0159ebujete v\u011bd\u011bt... | Encyklopedie cloudu ORBIT\" \/>\n<meta name=\"twitter:description\" content=\"Kdy a kde vyu\u017e\u00edt koncept Infrastructure as Code?\" \/>\n<meta name=\"twitter:image\" content=\"http:\/\/4.184.192.234\/wp-content\/uploads\/2022\/01\/EC23-scaled.jpg\" \/>\n<meta name=\"twitter:label1\" content=\"Estimated reading time\" \/>\n\t<meta name=\"twitter:data1\" content=\"12 minutes\" \/>\n<script type=\"application\/ld+json\" class=\"yoast-schema-graph\">{\"@context\":\"https:\\\/\\\/schema.org\",\"@graph\":[{\"@type\":\"WebPage\",\"@id\":\"http:\\\/\\\/4.184.192.234\\\/encyklopedie-cloudu\\\/infrastructure-as-a-code-vsechno-co-jste-kdy-chteli-vedet-ale-bali-jste-se-zeptat\\\/\",\"url\":\"http:\\\/\\\/4.184.192.234\\\/encyklopedie-cloudu\\\/infrastructure-as-a-code-vsechno-co-jste-kdy-chteli-vedet-ale-bali-jste-se-zeptat\\\/\",\"name\":\"Infrastructure as Code | Encyklopedie cloudu ORBIT\",\"isPartOf\":{\"@id\":\"http:\\\/\\\/4.184.192.234\\\/#website\"},\"primaryImageOfPage\":{\"@id\":\"http:\\\/\\\/4.184.192.234\\\/encyklopedie-cloudu\\\/infrastructure-as-a-code-vsechno-co-jste-kdy-chteli-vedet-ale-bali-jste-se-zeptat\\\/#primaryimage\"},\"image\":{\"@id\":\"http:\\\/\\\/4.184.192.234\\\/encyklopedie-cloudu\\\/infrastructure-as-a-code-vsechno-co-jste-kdy-chteli-vedet-ale-bali-jste-se-zeptat\\\/#primaryimage\"},\"thumbnailUrl\":\"http:\\\/\\\/4.184.192.234\\\/wp-content\\\/uploads\\\/2021\\\/12\\\/infrastructure-as-a-code-01.png\",\"datePublished\":\"2021-12-22T11:00:07+00:00\",\"dateModified\":\"2024-10-31T13:18:49+00:00\",\"description\":\"Kdy je nejrozumn\u011bj\u0161\u00ed op\u0159\u00edt se o koncept Infrastructure as Code? Jak\u00e9 m\u00e1 v\u00fdhody? A kter\u00e9 n\u00e1stroje k dosa\u017een\u00ed \u017e\u00e1douc\u00edho stavu pou\u017e\u00edt?\",\"breadcrumb\":{\"@id\":\"http:\\\/\\\/4.184.192.234\\\/encyklopedie-cloudu\\\/infrastructure-as-a-code-vsechno-co-jste-kdy-chteli-vedet-ale-bali-jste-se-zeptat\\\/#breadcrumb\"},\"inLanguage\":\"en-GB\",\"potentialAction\":[{\"@type\":\"ReadAction\",\"target\":[\"http:\\\/\\\/4.184.192.234\\\/encyklopedie-cloudu\\\/infrastructure-as-a-code-vsechno-co-jste-kdy-chteli-vedet-ale-bali-jste-se-zeptat\\\/\"]}]},{\"@type\":\"ImageObject\",\"inLanguage\":\"en-GB\",\"@id\":\"http:\\\/\\\/4.184.192.234\\\/encyklopedie-cloudu\\\/infrastructure-as-a-code-vsechno-co-jste-kdy-chteli-vedet-ale-bali-jste-se-zeptat\\\/#primaryimage\",\"url\":\"http:\\\/\\\/4.184.192.234\\\/wp-content\\\/uploads\\\/2021\\\/12\\\/infrastructure-as-a-code-01.png\",\"contentUrl\":\"http:\\\/\\\/4.184.192.234\\\/wp-content\\\/uploads\\\/2021\\\/12\\\/infrastructure-as-a-code-01.png\",\"width\":1120,\"height\":520,\"caption\":\"Infrastructure as a Code: V\u0161echno co jste kdy cht\u011bli v\u011bd\u011bt | Encyklopedie cloudu ORBIT\"},{\"@type\":\"BreadcrumbList\",\"@id\":\"http:\\\/\\\/4.184.192.234\\\/encyklopedie-cloudu\\\/infrastructure-as-a-code-vsechno-co-jste-kdy-chteli-vedet-ale-bali-jste-se-zeptat\\\/#breadcrumb\",\"itemListElement\":[{\"@type\":\"ListItem\",\"position\":1,\"name\":\"Home\",\"item\":\"http:\\\/\\\/4.184.192.234\\\/\"},{\"@type\":\"ListItem\",\"position\":2,\"name\":\"Infrastructure as Code\"}]},{\"@type\":\"WebSite\",\"@id\":\"http:\\\/\\\/4.184.192.234\\\/#website\",\"url\":\"http:\\\/\\\/4.184.192.234\\\/\",\"name\":\"ORBIT | create IT your own way\",\"description\":\"ORBIT | create IT your own way\",\"publisher\":{\"@id\":\"http:\\\/\\\/4.184.192.234\\\/#organization\"},\"potentialAction\":[{\"@type\":\"SearchAction\",\"target\":{\"@type\":\"EntryPoint\",\"urlTemplate\":\"http:\\\/\\\/4.184.192.234\\\/?s={search_term_string}\"},\"query-input\":{\"@type\":\"PropertyValueSpecification\",\"valueRequired\":true,\"valueName\":\"search_term_string\"}}],\"inLanguage\":\"en-GB\"},{\"@type\":\"Organization\",\"@id\":\"http:\\\/\\\/4.184.192.234\\\/#organization\",\"name\":\"ORBIT s.r.o.\",\"url\":\"http:\\\/\\\/4.184.192.234\\\/\",\"logo\":{\"@type\":\"ImageObject\",\"inLanguage\":\"en-GB\",\"@id\":\"http:\\\/\\\/4.184.192.234\\\/#\\\/schema\\\/logo\\\/image\\\/\",\"url\":\"http:\\\/\\\/4.184.192.234\\\/wp-content\\\/uploads\\\/2020\\\/11\\\/logoslogan-01.png\",\"contentUrl\":\"http:\\\/\\\/4.184.192.234\\\/wp-content\\\/uploads\\\/2020\\\/11\\\/logoslogan-01.png\",\"width\":1417,\"height\":829,\"caption\":\"ORBIT s.r.o.\"},\"image\":{\"@id\":\"http:\\\/\\\/4.184.192.234\\\/#\\\/schema\\\/logo\\\/image\\\/\"},\"sameAs\":[\"https:\\\/\\\/www.linkedin.com\\\/company\\\/orbit\\\/\"]}]}<\/script>\n<!-- \/ Yoast SEO plugin. -->","yoast_head_json":{"title":"Infrastructure as Code | ORBIT Cloud Encyclopedia","description":"When is it most sensible to rely on the Infrastructure as Code concept? What are its advantages? And which tools to use to achieve the desired state?","robots":{"index":"index","follow":"follow","max-snippet":"max-snippet:-1","max-image-preview":"max-image-preview:large","max-video-preview":"max-video-preview:-1"},"canonical":"http:\/\/4.184.192.234\/en\/encyklopedie-cloudu\/infrastructure-as-a-code-vsechno-co-jste-kdy-chteli-vedet-ale-bali-jste-se-zeptat\/","og_locale":"en_GB","og_type":"article","og_title":"Infrastructure as Code: v\u0161echno, co pot\u0159ebujete v\u011bd\u011bt... | Encyklopedie cloudu ORBIT","og_description":"Kdy a kde vyu\u017e\u00edt koncept Infrastructure as Code?","og_url":"http:\/\/4.184.192.234\/en\/encyklopedie-cloudu\/infrastructure-as-a-code-vsechno-co-jste-kdy-chteli-vedet-ale-bali-jste-se-zeptat\/","og_site_name":"ORBIT | create IT your own way","article_modified_time":"2024-10-31T13:18:49+00:00","og_image":[{"width":2048,"height":1072,"url":"http:\/\/4.184.192.234\/wp-content\/uploads\/2022\/01\/EC23-scaled.jpg","type":"image\/jpeg"}],"twitter_card":"summary_large_image","twitter_title":"Infrastructure as Code: v\u0161echno, co pot\u0159ebujete v\u011bd\u011bt... | Encyklopedie cloudu ORBIT","twitter_description":"Kdy a kde vyu\u017e\u00edt koncept Infrastructure as Code?","twitter_image":"http:\/\/4.184.192.234\/wp-content\/uploads\/2022\/01\/EC23-scaled.jpg","twitter_misc":{"Estimated reading time":"12 minutes"},"schema":{"@context":"https:\/\/schema.org","@graph":[{"@type":"WebPage","@id":"http:\/\/4.184.192.234\/encyklopedie-cloudu\/infrastructure-as-a-code-vsechno-co-jste-kdy-chteli-vedet-ale-bali-jste-se-zeptat\/","url":"http:\/\/4.184.192.234\/encyklopedie-cloudu\/infrastructure-as-a-code-vsechno-co-jste-kdy-chteli-vedet-ale-bali-jste-se-zeptat\/","name":"Infrastructure as Code | ORBIT Cloud Encyclopedia","isPartOf":{"@id":"http:\/\/4.184.192.234\/#website"},"primaryImageOfPage":{"@id":"http:\/\/4.184.192.234\/encyklopedie-cloudu\/infrastructure-as-a-code-vsechno-co-jste-kdy-chteli-vedet-ale-bali-jste-se-zeptat\/#primaryimage"},"image":{"@id":"http:\/\/4.184.192.234\/encyklopedie-cloudu\/infrastructure-as-a-code-vsechno-co-jste-kdy-chteli-vedet-ale-bali-jste-se-zeptat\/#primaryimage"},"thumbnailUrl":"http:\/\/4.184.192.234\/wp-content\/uploads\/2021\/12\/infrastructure-as-a-code-01.png","datePublished":"2021-12-22T11:00:07+00:00","dateModified":"2024-10-31T13:18:49+00:00","description":"When is it most sensible to rely on the Infrastructure as Code concept? What are its advantages? And which tools to use to achieve the desired state?","breadcrumb":{"@id":"http:\/\/4.184.192.234\/encyklopedie-cloudu\/infrastructure-as-a-code-vsechno-co-jste-kdy-chteli-vedet-ale-bali-jste-se-zeptat\/#breadcrumb"},"inLanguage":"en-GB","potentialAction":[{"@type":"ReadAction","target":["http:\/\/4.184.192.234\/encyklopedie-cloudu\/infrastructure-as-a-code-vsechno-co-jste-kdy-chteli-vedet-ale-bali-jste-se-zeptat\/"]}]},{"@type":"ImageObject","inLanguage":"en-GB","@id":"http:\/\/4.184.192.234\/encyklopedie-cloudu\/infrastructure-as-a-code-vsechno-co-jste-kdy-chteli-vedet-ale-bali-jste-se-zeptat\/#primaryimage","url":"http:\/\/4.184.192.234\/wp-content\/uploads\/2021\/12\/infrastructure-as-a-code-01.png","contentUrl":"http:\/\/4.184.192.234\/wp-content\/uploads\/2021\/12\/infrastructure-as-a-code-01.png","width":1120,"height":520,"caption":"Infrastructure as a Code: V\u0161echno co jste kdy cht\u011bli v\u011bd\u011bt | Encyklopedie cloudu ORBIT"},{"@type":"BreadcrumbList","@id":"http:\/\/4.184.192.234\/encyklopedie-cloudu\/infrastructure-as-a-code-vsechno-co-jste-kdy-chteli-vedet-ale-bali-jste-se-zeptat\/#breadcrumb","itemListElement":[{"@type":"ListItem","position":1,"name":"Home","item":"http:\/\/4.184.192.234\/"},{"@type":"ListItem","position":2,"name":"Infrastructure as Code"}]},{"@type":"WebSite","@id":"http:\/\/4.184.192.234\/#website","url":"http:\/\/4.184.192.234\/","name":"ORBIT | create IT your own way","description":"ORBIT | create IT your own way","publisher":{"@id":"http:\/\/4.184.192.234\/#organization"},"potentialAction":[{"@type":"SearchAction","target":{"@type":"EntryPoint","urlTemplate":"http:\/\/4.184.192.234\/?s={search_term_string}"},"query-input":{"@type":"PropertyValueSpecification","valueRequired":true,"valueName":"search_term_string"}}],"inLanguage":"en-GB"},{"@type":"Organization","@id":"http:\/\/4.184.192.234\/#organization","name":"ORBIT s.r.o.","url":"http:\/\/4.184.192.234\/","logo":{"@type":"ImageObject","inLanguage":"en-GB","@id":"http:\/\/4.184.192.234\/#\/schema\/logo\/image\/","url":"http:\/\/4.184.192.234\/wp-content\/uploads\/2020\/11\/logoslogan-01.png","contentUrl":"http:\/\/4.184.192.234\/wp-content\/uploads\/2020\/11\/logoslogan-01.png","width":1417,"height":829,"caption":"ORBIT s.r.o."},"image":{"@id":"http:\/\/4.184.192.234\/#\/schema\/logo\/image\/"},"sameAs":["https:\/\/www.linkedin.com\/company\/orbit\/"]}]}},"taxonomy_info":{"category":[{"value":126,"label":"Cloud computing"},{"value":130,"label":"Cloud journey"}]},"featured_image_src_large":["http:\/\/4.184.192.234\/wp-content\/uploads\/2021\/12\/infrastructure-as-a-code-01-1024x475.png",1024,475,true],"author_info":{"display_name":"Martin Gavanda","author_link":"http:\/\/4.184.192.234\/en\/author\/e2d35802bbda7175\/"},"comment_info":"","_links":{"self":[{"href":"http:\/\/4.184.192.234\/en\/wp-json\/wp\/v2\/encyklopedie-cloudu\/9930","targetHints":{"allow":["GET"]}}],"collection":[{"href":"http:\/\/4.184.192.234\/en\/wp-json\/wp\/v2\/encyklopedie-cloudu"}],"about":[{"href":"http:\/\/4.184.192.234\/en\/wp-json\/wp\/v2\/types\/encyklopedie-cloudu"}],"author":[{"embeddable":true,"href":"http:\/\/4.184.192.234\/en\/wp-json\/wp\/v2\/users\/10"}],"wp:featuredmedia":[{"embeddable":true,"href":"http:\/\/4.184.192.234\/en\/wp-json\/wp\/v2\/media\/10714"}],"wp:attachment":[{"href":"http:\/\/4.184.192.234\/en\/wp-json\/wp\/v2\/media?parent=9930"}],"wp:term":[{"taxonomy":"category","embeddable":true,"href":"http:\/\/4.184.192.234\/en\/wp-json\/wp\/v2\/categories?post=9930"}],"curies":[{"name":"wp","href":"https:\/\/api.w.org\/{rel}","templated":true}]}}