Infrastructure As Code Technical Report Template

Infrastructure As Code Technical Report Templatethe Report Will Consis

Infrastructure as Code Technical Report Template The report will consist or a technical review, and Steps 2, 3, and 4 lab reports. The technical review part of the report should be eight to 12 pages long, and should cover the following topics: 1. Networking in the Cloud a. Explanation of AWS VPC and associated networking components b. Discussion on how BallotOnline will take advantage of AWS VPC, regions, and availability zones to secure and assure availability of its infrastructure 2. Cloud Command Line Interfaces a. Explanation and advantages of cloud CLIs b. Discussion how BallotOnline can use CLI in provisioning and maintenance of its cloud deployments 3. Declarative Resource Definitions a. Explanation and advantages of declarative cloud resource definitions b. Discussion how BallotOnline can use declarative tools such as AWS CloudFormation in provisioning and maintenance of its cloud deployments 4. Cloud APIs a. Explanation and advantages of cloud APIs, definition and purpose b. Discussion how BallotOnline can use cloud APIs such as AWS Python SDK in development, provisioning, and maintenance of its cloud deployments In addition, resubmit all three Project 2 lab reports, with incorporated feedback from Steps 2, 3, and 4 if any. 1 2 Explore Infrastructure as Code Start Here In Project 1, as a BallotOnline network engineer, you carried out a technical investigation of networking issues crucial to the company’s cloud deployment. Now, management has tasked you with addressing another important component of cloud computing—automation and consistency of deployment and administrative tasks. You will use Amazon Web Services' cloud environment for your investigations. In this project, you have been appointed the company’s first cloud engineer—a position devoted to cloud deployment. To start, you will continue network investigation, further exploring networking capabilities in the cloud, and becoming familiar with AWS VPC—virtual private cloud, which is a private virtual network into which AWS customers deploy their cloud resources. You will learn about networking components associated with AWS VPC, and their default instances and the nondefault ones which require setup by the customer. Next, you will become acquainted with the basic infrastructure as code (IaC) capability with command-line interface (CLI). It is a command language that allows you to write scripts that you can invoke to automatically provision and maintain your cloud infrastructure. You will then complete a lab exercise in which you will provision an AWS VPC with some of the related components using AWC CLI commands. Then, you will explore a notation for describing detailed configurations of AWS resources, like EC2 instances, called CloudFormation (CF). You will learn about CF templates and complete the lab exercise designing a simple cloud configuration in the CF Template Designer tool. Next, you will explore the ultimate programmatic interfaces to the cloud—the cloud APIs. You will explore and install the Python AWS SDK, and then analyze and run a provided Python script provisioning a tagged EC2 instance. The final submission of this project will be a technical report discussing a cloud network configuration for BallotOnline, as well as the IaC topics and exploring the ways IaC can be used by BallotOnline in its cloud deployments. Step 1: Virtual Networks in the Cloud In Project 1, you became familiar with software-defined networking, a way of programmatically specifying network configurations. In this step, you will continue to explore networking in the cloud, learning how virtual networks are created on demand and the associated virtual networking elements. You will then propose the virtual network/subnetwork configuration for BallotOnline voting application. You will use Amazon Web Services' networking offering as a learning environment and become familiar with the AWS Virtual Private Cloud (VPC) concept and related components. It is also important to understand the geographical layout of AWS networking, as related to AWS regions and availability zones . In the next step, you will take a closer look at the command line interface with a lab exercise. Step 2: Interfacing With the Cloud—Command-Line Interfaces Provisioning cloud resources using the cloud provider’s internet portal is great for learning, setting up demos, etc. But it does not allow for automation of tasks, which is necessary for cloud engineers responsible for creating and maintaining corporate cloud deployment. Automation of tasks is crucial for ensuring continuity, repeatability, and consistency of administrative activities. Cloud resources are created and maintained by software implementing virtualization, SDN, etc., and this enables programmatic interfaces to their capabilities, making the infrastructure as code (IaC) paradigm a reality. As the BallotOnline cloud engineer, you will be responsible for automating cloud administration tasks. In this step, you will explore the most basic IaC tool—the scripting framework. With it, you can define lists of commands to be executed automatically on demand. Most cloud providers offer scripting interfaces for their cloud offerings. In this step, you will become familiar with the AWS command-line interface (CLI). You will complete the Lab 1 AWS CLI , in which you will first create an AWS Cloud9 development environment and then use AWS CLI in it to provision a virtual private cloud (VPC) and attach a tag to it. Then, you will create an internet gateway, tag it, and attach the gateway to your VPC. You will verify all the steps by inspecting provisioned resources in the AWS console. You will create a lab report as per the lab guide, describing the steps you’ve taken with all the screenshots requested in the guide. You will also describe how using scripting framework like AWS CLI can help BallotOnline in administering its cloud deployment. Step 3: Interfacing With the Cloud—Declarative Resource Definitions An alternative to executing scripting command commands with options is to describe the desired effect of their execution—the desired configuration of resources. This is called declarative programming . Most cloud vendors make declarative frameworks available in their cloud offerings. The description of desired configuration is done by defining templates using some declarative notations. The most popular are YAML (“Yaml Ain't Markup Languageâ€) and JSON (JavaScript Object Notation). JSON is a simple notation using nested key-value pairs to describe hierarchical structures of named attributes. You’ve seen examples of it as output from AWS CLI commands in the previous step. As before, you will use Amazon AWS as the exploration environment. Its declarative IaC feature is the CloudFormation (CF) framework. You will complete Lab 2 AWS CloudFormation in which you will become familiar with CF templates, and then use CF Template Designer to define a stack containing a VPC with an internet gateway (similar to the previous step), tag them, attach the gateway to the VPC, and provision the stack. You will create a lab report as per the lab guide, describing the steps you’ve taken with all the screen shots requested in the guide. You will also describe how using declarative IaC features can help BallotOnline in administering its cloud deployment. Step 4: Interfacing With the Cloud—Cloud APIs The fact that cloud offering features are software-defined finds its ultimate reflection in rich cloud API libraries most cloud providers offer, so that customers can interact with their cloud deployments directly from the code of their software products. Cloud API libraries are available for popular programming languages and are often referred to as software development kits (SDKs). Cloud API libraries are available for popular programming languages and are often referred to as software development kits (SDKs). You will complete Lab 3 Cloud API in which you will become familiar with AWS SDK for the Python programming language. You will explore and install the Python SDK in your Cloud9 environment. Next, you will take a look at a Python script create_instance.py that provisions an EC2 instance and tags it. You will run the script and verify that the instance has been provisioned successfully. You will create a lab report as per the lab guide, describing the steps you’ve taken with all the screenshots requested in the guide. You will also describe how using cloud APIs can help BallotOnline in administering its cloud deployment. Step 5: Submit Your Final Report As your final Project 2 submission, you will write a technical report about AWS VPCs and infrastructure as code tools. It will include technical review of the topics covered in the project, along with recommendations for how BallotOnline can take advantage of these. Follow the Infrastructure as Code Technical Report Template to cover all the topics required. Make sure you provide captions to clearly identify sections of your report. The technical review part of the report should be eight to 12 pages long.