Which of the following helps you simplify integrating AWS services with your own application code?

At its core, DevOps makes delivery of applications more efficient. Amazon Web Services (AWS) has the platform and services to recognize a code change and automate delivery of that change from development, through the support environments, to production. However, delivery of code is just one aspect of DevOps.

What is DevOps?

The term “DevOps” refers to both a position and a combination of processes applied at a company. A DevOps Engineer is usually a system administrator with some specific programming knowledge. As a rule, a DevOps engineer is held responsible for:

  • Planning applications and their infrastructure;
  • Building and maintaining CI/CD pipelines;
  • Development security monitoring and provision;
  • Development process automation.

Having DevOps on the team ensures a smoother and easier release of a new product and supports the stability of the existing ones.

What is AWS DevOps?

AWS DevOps is Amazon’s contribution to DevOps culture and philosophy. They have created their very own cloud platform, specific tools, and services to operate the AWS platform. As AWS folks put it: “AWS provides a set of flexible services designed to enable companies to more rapidly and reliably build and deliver products using AWS and DevOps practices. These services simplify provisioning and managing infrastructure, deploying application code, automating software release processes, and monitoring your application and infrastructure performance.”

As my DevOps experience shows, Amazon sticks to the ideas they speak out. Their tools, services, and AWS cloud itself have proven to be efficient. AWS development tools allow safely storing the app’s source code and automatically creating, testing, and deploying it not only in the AWS cloud but locally. AWS core advantages include simplicity, scalability, automation, security, and package pricing.

AWS Toolbox

AWS offers a wide range of global cloud products that, among others, contain databases, storage, analytics, networks, mobile devices, DevOps development and management tools, Internet of Things, security. For convenience sake, AWS has divided its DevOps services according to their functionality. The abundance of DevOps tools and services AWS offers is a rich one. Here we’ll dive a bit into the core ones, available and popular for DevOps and not only purposes.

Continuous Integration and Deployment

AWS has four specialized tools for CI/CD:

  • AWS CodePipeline is used for code configuration, testing, and deployment each time it is altered.
  • AWS CodeBuild compiles the source code, collects, tests, and builds software packages ready for deployment.
  • AWS CodeDeploy automates code deployment for any instance, including Amazon EC2 and local services.
  • AWS CodeStar is a cloud service that provides DevOps tools for easy app development, creation, and deployment on AWS.
  • AWS Device Farm is an application testing service that lets you improve the quality of your web and mobile apps by testing them across real desktop browsers and real mobile devices.
  • AWS Cloud Development Kit is an open-source software development framework to define cloud infrastructure in code and provision it through AWS CloudFormation. It offers a high-level object-oriented abstraction to define AWS resources imperatively using the power of modern programming languages. (https://github.com/aws/aws-cdk)

AWS Microservices

There are two options when it comes to AWS microservices: containers and serverless computing.

  • Amazon Elastic Container Service is a service used for scaling containers that supports Docker and allows launching and running apps in an automatically managed instance cluster Amazon EC2.
  • Amazon Elastic Kubernetes Service runs up-to-date versions of the open-source Kubernetes software, so you can use all the existing plugins and tooling from the Kubernetes community. Applications running on Amazon EKS are fully compatible with applications running on any standard Kubernetes environment, whether running in on-premises data centers or public clouds.
  • Amazon Elastic Container Registry eliminates the need to operate and scale the infrastructure required to power your container registry.
  • AWS Fargate is a container management service that allows you to run serverless containers, so you don’t have worry about provisioning, configuring, and scaling clusters of virtual machines to run containers. With Fargate, you no longer have to worry about provisioning enough compute resources for your container applications. Fargate can launch tens of thousands of containers and easily scale to run your most mission-critical applications.
  • AWS Lambda provides code running without the dedicated servers. You simply upload your code and let Lambda take care of everything required to run and scale the execution to meet your actual demand curve with high availability. This means, there is no administration of infrastructure needed. Lambda supports several programming languages and can be triggered from other AWS services or be called directly from any web or mobile application. One of the biggest advantages of AWS Lambda is that you can move quickly: you can focus on your business logic because AWS manage security and scaling. Lambda’s opinionated approach drives the scalable platform.

Infrastructure as code

Infrastructure as code is an approach that consists of four parts for AWS management with the help of code and templates:

  • AWS CloudFormation creates groups of related AWS resources and manages them. One can use existing templates or create custom ones.
  • AWS OpsWorks is a configuration management service that provides such automation instances as Chef and Puppet.
  • AWS Systems Manager provides visibility and control for your AWS infrastructure. It can also help fix OS, create system prototypes, and set up Windows and Linux Operating Systems.
  • AWS Config helps to conduct audits, analyze security, manage changes, and fix any maintenance errors.

Monitoring

DevOps monitors it and keeps a logs register. To do it, Amazon offers three instruments:

  • Amazon CloudWatch is a monitoring service. It provides DevOps with the data and some other useful information for apps’ health monitoring and forming a comprehensive idea of their overall state.
  • AWS X-Ray is a DevOps service that monitors application traces and gives an overview of its basic components.
  • AWS CloudTrail is a web service that records AWS API calls for your account and stores log files. By the way, Slack is using this technology, too.

AWS Platform as a Service

AWS Elastic Beanstalk is used to deploy the app’s stack, specifically for products developed using Java, .NET, PHP, Node.js, Python, Ruby, Go и Docker, на серверах Apache, Nginx, Passenger и IIS.

AWS Versions Management

AWS CodeCommit can be helpful for version management. It allows storing and controlling the source code. This DevOps service also makes working with Git repositories easier and allows integrating your tools into GIT.

Which of the following AWS services can be used to integrate with other services?

Routing traffic to other AWS resources. You can use Amazon Route 53 to route traffic to a variety of AWS resources. Amazon API Gateway lets you create, publish, maintain, monitor, and secure APIs at any scale.

What is the service provided by AWS that allows developers to easily deploy and manage applications on the cloud?

Elastic Beanstalk is a service for deploying and scaling web applications and services. Upload your code and Elastic Beanstalk automatically handles the deployment—from capacity provisioning, load balancing, and auto scaling to application health monitoring.

Which tool is used to automate actions for AWS services and applications through scripts?

AWS Systems Manager allows you to centralize operational data from multiple AWS services and automate tasks across your AWS resources.

Which AWS service can be used in the application deployment process?

AWS CodeDeploy is a fully managed deployment service that automates software deployments to various compute services, such as Amazon Elastic Compute Cloud (EC2), Amazon Elastic Container Service (ECS), AWS Lambda, and your on-premises servers.