Title:
Cloud AWS DevOps Engineer
1|Page
Abstract:
Companies, big and small, are rapidly adopting cloud computing to enable their digital
transformation. According to the latest Gartner report, the cloud tech services market is projected
to grow 17.3% in 2019, totaling $206 billion. This growth is due to the desirability of cloud
computing, as it allows companies to innovate at a faster pace and reduce operational costs.
Cloud services such as Amazon Web Services (AWS), Microsoft Azure, and Google Cloud
appeal to many organizations because of features such as pay-per-use, ability to scale up or down
based on usage, self-service, and more.
All these benefits lead to much lower costs, faster time-to-market and better service quality
compared with traditional methods.
The growth of this technology has created incredible demand for Cloud computing jobs, from
Cloud developers and Cloud DevOps roles to more specialized roles such as solutions architects
and Cloud security engineers. Regardless of the role, Cloud computing skills are in high
demand and have the potential to impact almost every industry.
2|Page
Table of Contents
Abstract:......................................................................................................................................................2
INTRODUCTION: Background......................................................................................................................4
Aims and Objective:.....................................................................................................................................5
Initial literature review:...............................................................................................................................6
Methodology and workplan:.......................................................................................................................7
Technologies and Resources:......................................................................................................................9
Ethics:..........................................................................................................................................................9
References:................................................................................................................................................10
3|Page
INTRODUCTION: Background
Simply put, "the cloud" consists of software and services that reside and operate on the Internet
instead of a local computer or on-site network of servers. Cloud adoption is a strategy used by
companies to improve scalability and eliminates costs and risks of Internet-based database
capabilities. To this end, businesses engage in the practice of cloud computing or remote servers
hosted on the Internet to store, manage and process critical data. While cloud computing has
been available to the general public for several years, hybrid cloud computing is a relatively new
concept that combines one or more cloud providers, such as Amazon Web Services, SAP HANA
Cloud Platform, VMWare, or Salesforce, with a private IT infrastructure designed for a specific
organization. The benefits of this strategy include the ability to store privileged data in a private
cloud while using public cloud technology to run applications that rely on private data. (Tafoya,
2020)
As business stakeholders see the advantages and outcomes of cloud adoption, more than one-
third of respondents (38%) reported that their IT department is under pressure to move 100% to
the cloud. Enterprise organizations (companies with 1,000 or more employees) feel more
pressure than their small and medium-sized counterparts (companies with fewer than 1,000
employees). Forty-four percent of enterprise organizations, compared to 31 percent of small to
medium-sized enterprises, feel pressure from executive management or individual business lines
to migrate 100 percent to the cloud. (Research, 2020) Thus we can understand that the demand of
cloud computing is escalating.
To state in a sentence, cloud computing is the on-demand distribution of IT services through the
Internet with pay-as-you-go pricing. Instead of acquiring, buying, and maintaining physical data
centers and servers, technology resources such as computing power, storage, and databases as
required are accessed from cloud providers such as Amazon Web Services (AWS).
Organizations of all kinds, sizes and sectors use the cloud for a wide range of purposes, such as
data storage, disaster recovery, email, virtual desktops, product creation and testing, big data
analytics, and customer-based web applications. (Research, 2020)
4|Page
Aims and Objective:
Cloud computing has numerous benefits which include agility, elasticity, cost savings, global
deployment in minutes and so on. With AWS being the best cloud service provider and DevOps
defined as the “need of the hour” implementation of software development life cycle, a Cloud
AWS DevOps Engineer has several aims and objectives in his/her role.
Deploy Static Website on AWS
The cloud is perfect for hosting static websites that only include HTML, CSS, and JavaScript
files that require no server-side processing. In this project, I will deploy a static website to AWS.
First, an S3 bucket will be created, the bucket for website hosting will be configured, and
secured using IAM policies. Next, I will upload the website files to S3 bucket and speed up
content delivery using AWS’s content distribution network service, CloudFront. I will access the
website in a browser using the unique S3 endpoint.
Deploy a high-availability web app using CloudFormation
In this project I will deploy web servers for a highly available web app using CloudFormation.
The code that creates and deploys the infrastructure and application for an Instagram-like app
from the ground up will be written. It will begin with deploying the networking components
followed by servers, security roles and software. The procedure I will follow here will become
part of a portfolio of cloud projects. I’ll do it exactly as it’s done on the job: following best
practices and scripting as much as possible.
Build CI/CD Pipelines, Monitoring & Logging
In this course, the process of taking software from source code to deployment and beyond will be
learnt, also about automated testing, choosing the right deployment strategy for business needs
and deploying an appropriate CI/CD pipeline. There is learning about monitoring and logging to
ensure that the application is running at peak performance and stays that way.
I will also learn to manage and make changes to the servers in an automated way, using Ansible,
a leading Configuration Management tool.
Operationalize a Machine Learning Microservice API
In this project I will continue to work on operationalizing microservices by deploying an elastic
and fault-tolerant Machine Learning inference API using Kubernetes. This microservice will be
configured to be highly available by using Kubernetes best practices. I will validate the design by
load testing the service and verifying that the application architecture performs as designed.
Capstone Project
The purpose of the Cloud DevOps Engineer capstone project. This project will be an important
part of portfolio, this will help me to achieve cloud development-related career goals.
5|Page
In the capstone project I will build a CI/CD pipeline for a microservices application for different
deployment strategies. The scope of the project and the right deployment strategy will be based
on different business requirements.
Initial literature review:
AWS is a secure cloud services platform offering compute power, database storage, content
delivery and other functionality to help businesses scale and grow.
In the process of a software development, there are many architectures to be dealt with. There are
requirements like computation power, specific RAM, a particular database storage, a certain
programming language. (Amazon Web Services | Performance Cloud, 2020) Orchestrating all
these into an architecture is tedious and a costly process. AWS does exactly this job for us. It lets
us utilize computation power, database services and various other services related to computing,
and provides these services as a package so we pay for only those services and for the time to use
those.
DevOps brings in an approach where development and operations should happen parallel where
there is continuous integration and continuous development of applications so that they can be
deployed to end users faster. (Continuous Delivery, Deployment & Integration: 20 Key
Differences, 2020) The approach can be expressed like a loop where there is planning, coding,
build and testing in the development phase and then release, deploy, operate and monitoring in
the operation phase.
IT organizations that adopt DevOps perform better due to following reasons:
• They experience 1/60th of the service failures
• They recover from failure 168 times faster than their lower-performing peers
• They deploy 30 times more frequently with 1/200th of the lead time
The Cloud AWS DevOps Engineer is geared towards operations and software engineering
professionals who want to build infrastructure that delivers product and services at both speed
and scale. Projects on how to create continuous integration and continuous delivery (CI/CD)
pipelines, deploy massive infrastructure securely using code, and operationalize micro services
using Kubernetes will prepare one to become a successful DevOps engineer.
The job duties of a Cloud AWS DevOps Engineer are as follows:
Building and scaling services in a cloud.
Configuration management.
Building automated systems/infrastructure and develop pipelines to make remote updates
to software eliminating any effort for users.
The Required Skills are as follows:
Programming Language (i.e. Python)
Infrastructure as Code
6|Page
CI/CD Tools (Jenkins)
Monitor Software & Infrastructure
Orchestration (i.e. Kubernetes)
Infrastructure Automation (i.e. Ansible)
Methodology and workplan:
DevOps is a widely-recognized software development technique designed to reduce the distance
between IT workers and developers. DevOps can allow organizations to implement small
features very quickly on the basis of feedback obtained. AWS DevOps job description is
designed to ensure limited software failures and lower lead time between fixes. The DevOps
engineer helps to eliminate the burden of limitations noted in the traditional waterfall model.
Various technologies for development, testing and implementation will assist in the production
of automated CI / CD pipelines. The different AWS DevOps engineer roles and responsibilities
has been outlined as:
• Building and scaling services in a cloud.
• Configuration management.
• Building automated systems/infrastructure and develop pipelines to make remote updates
to software eliminating any effort for users.
Thus, it is now essential to know how these can be accomplished.
Building and scaling services in a cloud:
As a framework for running a complex and demanding software product, AWS provides
versatility by leveraging resources at the scale required when required. It's on demand and
instant, allowing full control of the running environment. When offering a cloud computing
solution to the customer, the infrastructure offered and its price are highly dependent on the
specifications that need to be set up beforehand. (Building at Scale with AWS Cloud
Infrastructure, 2020)
These comprehensive steps can be used to build a production-ready devops solution.
Set up a Jenkins Build Server:
Jenkins is an open-source automation platform integrating a range of
AWS, including AWS CodeCommit, AWS CodeDeploy, Amazon EC2 Spot, AWS Services
And EC2 Fleet from Amazon. Amazon Elastic Computing Cloud (Amazon) can be used.
EC2) in a matter of minutes to deploy a Jenkins AWS program. (2020)
There are mainly four steps to this:
1. Setting up Prerequisites: An AWS account, an AWS Identity and
Access Management (IAM) user name and password, an Amazon EC2 key pair, and a
configured Virtual Private Cloud (VPC)
2. Launching an EC2 instance: The job is to launch a virtual server to host Jenkins. These virtual
servers are called EC2 instances. There are two tasks: create a security group for Amaon EC2
instance and then launch it.
7|Page
3. Installing and configuring Jenkins: Here, the work is to deploy Jenkins on the EC2 instance by
connecting to Linux Instance, downloading and installing Jenkins and then configuring it.
4. Clean up: It is essential to delete the AWS resources created so that you do not continue to
accrue charges.
Migrate a Git Respository to AWS:
In order to securely store and version your project with AWS CodeCommit, there are a number
of ways to migrate a Git repository to a CodeCommit repository. (Migrate to AWS CodeCommit
- AWS CodeCommit, 2020) As part of the process, there are 5 steps:
1. Setup for accessing CodeCommit
2. Create a CodeCommit repository
3. Clone the repository and push to the CodeCommit repository
4. View file in CodeCommit
5. Share the CodeCommit respository
Locally debug a serverless application:
The architecture of the application makes use of AWS Lambda, Amazon API Gateway, Amazon
DynamoDB, Amazon Cognito and AWS Amplify Console. Amplify Console provides ongoing
deployment and management of the static web resources including HTML, CSS, JavaScript, and
image files that are loaded into the user's browser. JavaScript running in the browser sends and
receives data from a public backend API designed using Lambda Gateway and API. To protect
the Backend API, Amazon Cognito offers user management and authentication functions.
Eventually, DynamoDB provides a layer of persistence in which data can be stored via the
Lambda function of the API. (How to Build a Serverless Web Application with AWS Lambda,
Amazon API Gateway, Amazon S3, Amazon DynamoDB, and Amazon Cognito | AWS, 2020)
Configuration management:
If Amazon Elastic Cloud Compute (EC2) instances have been deployed via AWS
CloudFormation, you will most likely want to install software or customize the instance's
operating system. For that, there is a simple and robust way of performing instance configuration
using AWS Systems Manager State Manager.
Systems Manager State Manager is a scalable configuration management software that
automates the process of maintaining your Amazon EC2 and on-premise infrastructure in a state
you determine. With State Manager, you can bootstrap EC2 instances with startup software,
configure network settings, enter Windows instances to a Microsoft Active Directory domain,
and run scripts on managed instances running Windows or Linux. You create an agreement to
perform these tasks with the State Manager, which maps an automation or order document to
target instances. We can run many of the same tasks with state manager as you can with cfn-init
but with many added advantages. (Using State Manager over cfn-init in CloudFormation and its
benefits | Amazon Web Services, 2020)
With AWS Systems Manager, Ansible becomes effortless which is a great tool, since it helps to
manage with minimum effort several complicated tasks.
8|Page
Building automated systems/infrastructure and develop pipelines to make
remote updates to software eliminating any effort for users:
To build an automated pipeline release software which deploys a live sample app. Using AWS
CodePipeline you can create the pipeline, a service that creates, checks, and deploys your code
whenever a code change occurs. You can use your GitHub account, a container for Amazon
Simple Storage Service (S3), or an AWS CodeCommit server as the root location for the code of
the sample app. Also, you'll use AWS Elastic Beanstalk as the sample device deployment guide.
Your completed pipeline will detect changes made to the source repository containing the sample
data, and then update your live sample data automatically. (How to set up a continuous
deployment pipeline - Amazon Web Services, 2020)
Continuous delivery helps to automatically distribute changes to a production system without a
developer's prior permission, thereby automating the entire software release process.
Technologies and Resources:
In order to succeed in this program, basic skills in any programming language is must needed.
You should also feel comfortable with the command line and using Github.
In some programming language
Using loops and conditional statements
• Working with various data structures
In the Command Line, you should feel comfortable:
• Navigating through folders and files
• Running scripts from the command line
• Installing packages
In Github, you should feel comfortable:
• Creating and cloning repositories
• Making commits to a repository
Additional Resources
• Python
• Command Line Essentials
• Git and Github
Ethics:
The project will be used as a possible helpful guideline for Cloud AWS DevOps Engineer. Thus,
it will be carried out on the advice of IT professionals and it will also be used alongside the
recommendation of IT expertise. No people will be harmed on this project and no ethical issue
will arise while working with the platforms as we will use publicly available platforms and cloud
service source tools. For literature review, the journals or other books will be collected from
9|Page
university library and other open online sources so there will be no ethical issues for these
sources either.
References:
Tafoya, F., 2020. What Is Cloud Adoption And Why Is It Important? | Itexico. [online]
Itexico.com. Available at: <https://www.itexico.com/blog/what-is-cloud-adoption> [Accessed 8
August 2020].
Research, I., 2020. Cloud Computing 2018: How Enterprise Adoption Is Taking Shape. [online]
InfoWorld. Available at: <https://www.infoworld.com/article/3297397/cloud-computing-2018-
how-enterprise-adoption-is-taking-shape.html> [Accessed 8 August 2020].
Performancecloud.nl. 2020. Amazon Web Services | Performance Cloud. [online] Available at:
<https://www.performancecloud.nl/partners/amazon-web-services> [Accessed 8 August 2020].
Stackify. 2020. Continuous Delivery, Deployment & Integration: 20 Key Differences. [online]
Available at: <https://stackify.com/continuous-delivery-vs-continuous-deployment-vs-c>
[Accessed 8 August 2020].
Toptal Engineering Blog. 2020. Building At Scale With AWS Cloud Infrastructure. [online]
Available at: <https://www.toptal.com/aws/aws-cloud-infrastructure-benefits> [Accessed 9
August 2020].
D1.awsstatic.com. 2020. [online] Available at:
<https://d1.awsstatic.com/Projects/P5505030/aws-project_Jenkins-build-server.pdf> [Accessed 9
August 2020].
Docs.aws.amazon.com. 2020. Migrate To AWS Codecommit - AWS Codecommit. [online]
Available at: <https://docs.aws.amazon.com/codecommit/latest/userguide/how-to-migrate-
repository.html> [Accessed 9 August 2020].
Amazon Web Services, Inc. 2020. How To Build A Serverless Web Application With AWS
Lambda, Amazon API Gateway, Amazon S3, Amazon Dynamodb, And Amazon Cognito |
AWS. [online] Available at: <https://aws.amazon.com/getting-started/hands-on/build-serverless-
web-app-lambda-apigateway-s3-dynamodb-cognito/> [Accessed 9 August 2020].
Amazon Web Services. 2020. Using State Manager Over Cfn-Init In Cloudformation And Its
Benefits | Amazon Web Services. [online] Available at:
10 | P a g e
<https://aws.amazon.com/blogs/mt/using-state-manager-over-cfn-init-in-cloudformation-and-its-
benefits/> [Accessed 9 August 2020].
Amazon Web Services, Inc. 2020. How To Set Up A Continuous Deployment Pipeline -
Amazon Web Services. [online] Available at: <https://aws.amazon.com/getting-
started/tutorials/continuous-deployment-pipeline/> [Accessed 9 August 2020].
11 | P a g e