Infrastructure as Code is one of the many practices teams have to fulfill the needs of modern systems. The provisioning of resources for systems in an automated versioned way supports also the need of consistent environments across different stages of system development, making it much more comfortable to develop, validate and test systems. Keep development, staging, and production as similar as possible. See also the Dev/prod parity practice of the 12 factor methodology. The principles of a pipeline also fit on pipelines which provision infrastructures. The artifacts should be versioned, validated, automated and more, see pipelines principles.
Visual Studio Team Services and Amazon AWS
VSTS covers many needs for teams and pipelines out of the box. VSTS is optimized for releasing systems and provisioning environments on Azure, many out of the box capabilities which speed up teams. Great are also the integration capabilities of VSTS, it supports many platforms and many languages, also Amazon AWS. AWS offers similar template and cloud platform provisioning capabilities to what we have on Azure using ARM. This is named CloudFormation which can be used to create 95% of the AWS cloud resources. For authoring such an CloudFormation template you can download the AWS toolkit for Visual Studio. In this way we can create and update our CloudFormation templates using our familiar Microsoft tooling you might be already using for ARM.![](https://labs.sogeti.com/wp-content/uploads/sites/2/2017/02/1-1024x788.png)
![](https://labs.sogeti.com/wp-content/uploads/sites/2/2017/02/2-1024x711.png)
![](https://labs.sogeti.com/wp-content/uploads/sites/2/2017/02/3-1024x601.png)
![](https://labs.sogeti.com/wp-content/uploads/sites/2/2017/02/4-1024x605.png)
![](https://labs.sogeti.com/wp-content/uploads/sites/2/2017/02/5.png)
![](https://labs.sogeti.com/wp-content/uploads/sites/2/2017/02/6-1024x312.png)
![](https://labs.sogeti.com/wp-content/uploads/sites/2/2017/02/7-1024x708.png)
![](https://labs.sogeti.com/wp-content/uploads/sites/2/2017/02/8-1024x134.png)
![](https://labs.sogeti.com/wp-content/uploads/sites/2/2017/02/9-1024x511.png)
![](https://labs.sogeti.com/wp-content/uploads/sites/2/2017/02/10-1024x491.png)
![](https://labs.sogeti.com/wp-content/uploads/sites/2/2017/02/11-1024x599.png)
![](https://labs.sogeti.com/wp-content/uploads/sites/2/2017/02/12-704x1024.png)
- Internal: all trusted networks accessed from inside the local network.
- External: all networks hosting applications facing untrusted zones (e.g. Internet).
- Public: all networks which are not under control.