Host code, build, test, and deploy your applications quickly and effectively with AWS developer tools. Leverage core tools like software development kits (SDKs), code editors, and continuous integration and delivery (CI/CD) services for DevOps software development.
- AWS CloudFormation
- Amazon Beanstalk
- AWS CodeDeploy
- Amazon Systems Manager
- AWS OpsWorks
- AWS CodeCommit
- Amazon Web Services CodePipeline
- AWS CodeArtifact
- Amazon CodeStar
- AWS Cloud9
- AWS CDK
AWS CloudFormation is a service that gives developers and businesses an easy way to create a collection of related AWS and third-party resources and provision and manages them in an orderly and predictable fashion.
• CloudFormation is a declarative way of outlining your AWS Infrastructure for any resources (most of them are supported).
• For example, within a CloudFormation template, you say:
• I want a security group
• I want two EC2 instances using this security group
• I want an S3 bucket
• I want a load balancer (ELB) in front of these machines
• Then CloudFormation creates those for you, in the correct order, with the exact configuration that you specify.
What is CloudFormation suitable for?
• Infrastructure as code
• No resources are manually created, which is excellent for control • Changes to the infrastructure are reviewed through code
• Each resource within the stack is tagged with an identifier so you can quickly see how much a stack costs you
• You can estimate the costs of your resources using the CloudFormation template
• Savings strategy: In Dev, you could use automation deletion of templates at 5 PM and recreate at 8 AM, safely
• Ability to destroy and re-create an infrastructure on the cloud on the fly
• Automated generation of diagrams for your templates!
• Declarative programming (no need to figure out ordering and orchestration)
• Don’t re-invent the wheel
• Leverage existing templates on the web! • Leverage the documentation
• Supports (almost) all AWS resources:
• Everything we’ll see in this course is supported
• You can use “custom resources” for resources that are not supported
If a user wants to deploy a service to the AWS Cloud by using infrastructure-as-code (IaC) principles, then AWS CloudFormation can be used to meet this requirement.
- AWS CloudFormation – Reviews, Pros & Cons (stackshare.io)
- AWS CloudFormation: Concepts, Templates, EC2 Use Case and (www.simplilearn.com)
- AWS CloudFormation – Digital Cloud Training – Donuts (digitalcloud.training)
- What is AWS CloudFormation? | Benefits of AWS CloudFormation (www.gangboard.com)
- AWS CloudFormation Tutorial: Concepts, Workflows, and a (www.beabetterdev.com)
AWS Elastic Beanstalk is an easy-to-use service for deploying and scaling web applications and services developed with Java, NET, PHP, NodeJS, Python, Ruby, Go, and Docker on familiar servers such as Apache, Nginx, Passenger, and IIS.
• Elastic Beanstalk is a developer-centric view of deploying an application on AWS
• It uses all the components we’ve seen before: EC2, ASG, ELB, RDS, etc.
• But it’s all in one view that’s easy to make sense of!
• We still have complete control over the configuration
• Beanstalk = Platform as a Service (PaaS)
• Beanstalk is free, but you pay for the underlying instances
AWS Elastic Beanstalk works for a company that wants the ability to quickly upload its applications to the AWS Cloud without needing to provision underlying resources. When deploying applications in the AWS Cloud as quickly as possible and minimizing the complexity that is related to the management of AWS resources, a company should use the AWS Elastic Beanstalk service to meet the requirements.
• Managed service
• Beanstalk handles instance configuration / OS
• Deployment strategy is configurable but performed by Elastic Beanstalk • Capacity provisioning
• Load balancing & auto-scaling
• Application health-monitoring & responsiveness
• Just the application code is the responsibility of the developer
• Three architecture models:
• Single Instance deployment: good for Dev
• LB + ASG: great for production or pre-production web applications • ASG only: great for non-web apps in production (workers, etc..)
• Support for many platforms:
• Java SE
• Java withTomcat
• .NET on Windows Server with IIS
• Packer Builder
• Single Container Docker • Multi-Container Docker • Preconfigured Docker
• If not supported, you can write your custom platform (advanced)
- Getting started using Elastic Beanstalk – AWS Elastic (docs.aws.amazon.com)
- AWS Elastic Beanstalk Getting Started – Amazon Web (aws.amazon.com)
- Getting started with Beanstalk • Beanstalk Guides (guides.beanstalkapp.com)
- How can I use Thin with Amazon Beanstalk? – Stack (stackoverflow.com)
- Introduction to AWS Elastic Beanstalk – YouTube (www.youtube.com)
- How to use Elastic Beanstalk with Amazon VPC? (technical-qa.com)
- What is Amazon Elastic Beanstalk? – W3Schools (www.w3schools.com)
- How to Launch AWS Elastic beanstalk using Terraform (automateinfra.com)
- Deploy Django App in AWS Using Elastic Beanstalk and (www.cloudlaya.com)
AWS CodeDeploy is a service that automates code deployments to any instance, including Amazon EC2 and on-premises instances. AWS CodeDeploy makes it easier to release new features rapidly, helps you avoid downtime during deployment, and handles the complexity of updating your applications.
• We want to deploy our application automatically
• Works with EC2 Instances
• Works with On-Premises Servers
• Hybrid service
• Servers / Instances must be provisioned and configured ahead of time with the CodeDeploy Agent
- What is CodeDeploy? – AWS CodeDeploy (docs.aws.amazon.com)
- AWS CodeDeploy | Automated Software Deployment (aws.amazon.com)
- AWS CodeDeploy: What It Is and How It Works – cloudacademy.com (cloudacademy.com)
- What is AWS CodeDeploy? | TechRadar (www.techradar.com)
- AWS CodeDeploy vs Concourse | What are the differences? (stackshare.io)
- Pros and Cons of AWS CodeDeploy 2022 – trustradius.com (www.trustradius.com)
- What is AWS CodeDeploy? | TechRadar (theangstguy.com)
- AWS CodeDeploy – Automating Deployment of Applications (www.sndkcorp.com)
Amazon Systems Manager
AWS Systems Manager centralizes operational data from multiple AWS services and automates tasks across your AWS resources. You can create logical groups of resources such as applications, different layers of an application stack, or production versus development environments.
• Helps you manage your EC2 and On-Premises systems at scale • Another Hybrid AWS service
• Get operational insights about the state of your infrastructure • Suite of 10+ products
• Most essential features are:
• Patching automation for enhanced compliance
• Run commands across an entire fleet of servers
• Store parameter configuration with the SSM Parameter Store
• Works for both Windows and Linux OS
- Step 3: Try Systems Manager tutorials and walkthroughs (docs.aws.amazon.com)
- AWS Systems Manager Getting Started – Amazon Web (aws.amazon.com)
- AWS Systems Manager | Introduction to Amazon SSM (k21academy.com)
- Using AWS Systems Manager for Software Deployment (www.cloudhesive.com)
- AWS Systems Manager Introduction – YouTube (www.youtube.com)
- AWS Systems Manager – Tutorials Dojo (tutorialsdojo.com)
- AWS Systems Manager – Digital Cloud Training – Donuts (digitalcloud.training)
- Free AWS DevOps Tutorial – AWS Systems Manager – Udemy (www.udemy.com)
- How to work with AWS Simple System Manager on CoreOS (medium.com)
AWS OpsWorks is a configuration management service that provides managed instances of Chef and Puppet. Chef and Puppet are automation platforms that allow you to use code to automate the configurations of your servers.
• Chef & Puppet help you perform server configuration automatically, or repetitive actions
• They work great with EC2 & On-PremisesVM
• AWS OpsWorks = Managed Chef & Puppet
• It’s an alternative to AWS SSM
• Only provision standard AWS resources:
• EC2 Instances, Databases, Load Balancers, EBS volumes…
AWS CodeCommit is a secure, highly scalable, managed source control service that hosts private Git repositories. It makes it easy for teams to securely collaborate on code with contributions encrypted in transit and at rest.
• Before pushing the application code to servers, it needs to be stored somewhere
• Developers usually store code in a repository, using the Git technology
• A famous public offering is GitHub; AWS’ competing product is CodeCommit
• Source-control service that hosts Git-based repositories • Makes it easy to collaborate with others on code
• The code changes are automatically versioned
• Fully managed
• Scalable & highly available
• Private, Secured, Integrated with AWS
If a developer is working on enhancing applications at AWS and needs a service that can securely host GitHub-based code, repositories, and version controls, the developer can use the AWS CodeCommit service.
- AWS CodeCommit | Managed Source Control Service (aws.amazon.com)
- What is AWS CodeCommit? – AWS CodeCommit (docs.aws.amazon.com)
- AWS CodeCommit – Tutorials Dojo (tutorialsdojo.com)
- AWS CODECOMMIT CREATION AND ACCESS IT FROM AWS CLI (devops81.com)
- AWS CodeCommit as CI Tool – Full Tutorial – YouTube (www.youtube.com)
- AWS CodeCommit vs GitHub: Which will Shine in 2022 – APPWRK (appwrk.com)
- VScode AWS CodeCommit | Guide – Bobcares (bobcares.com)
- PowerShell Gallery | AWS.Tools.CodeCommit 4.1.170 (www.powershellgallery.com)
AWS CodeCommit is a way a company that wants to host a private version control system for its application code in the AWS Cloud can meet the requirement.
Amazon Web Services CodePipeline
AWS CodePipeline is a continuous delivery service you can use to model, visualize, and automate the steps required to release your software. You can quickly model and configure the different stages of a software release process. CodePipeline automates the steps necessary to release your software changes continuously.
• Orchestrate the different steps to have the code automatically pushed to production • Code => Build => Test => Provision => Deploy
• Basis for CICD (Continuous Integration & Continuous Delivery)
• Fully managed, compatible with CodeCommit, CodeBuild, CodeDeploy, ElasticBeanstalk, CloudFormation, GitHub, 3rd-party services (GitHub…) & custom plugins.
• Fast delivery & rapid updates
AWS CodeArtifact is a fully managed artifact repository service that makes it easy for organizations of any size to securely store, publish, and share software packages used in their software development process.
• Software packages depend on each other to be built (also called code dependencies), and new ones are created
• Storing and retrieving these dependencies is called artifact management
• Traditionally, you need to set up your artifact management system
• CodeArtifact is a secure, scalable, and cost-effective artifact management for software development
• Works with standard dependency management tools such as Maven, Gradle, npm, yarn, twine, pip, and NuGet
• Developers and CodeBuild can then retrieve dependencies straight from CodeArtifact
AWS CodeStar is a cloud‑based development service that provides the tools you need to develop, build, and deploy applications on AWS quickly. With AWS CodeStar, you can set up your entire continuous delivery toolchain in minutes, allowing you to start releasing code faster.
• Unified UI to easily manage software development activities in one place
• “Quick way” to get started to correctly setup CodeCommit, CodePipeline, CodeBuild, CodeDeploy, Elastic Beanstalk, EC2, etc
• Can edit the code” in-the-cloud” using AWS Cloud9
A company that wants to set up an entire development and continuous delivery toolchain for coding, building, testing, and deploying code can use AWS CodeStar to meet their requirements.
AWS Cloud9 is a cloud-based integrated development environment (IDE) that lets you write, run, and debug your code with just a browser. It combines an IDE’s rich code editing features, such as code completion, hinting, and step-through debugging, with access to an entire Linux server for running and storing code.
• AWS Cloud9 is a cloud IDE (Integrated Development Environment) for writing, running, and debugging code
• “Classic” IDE (like IntelliJ, Visual Studio Code…) are downloaded on a computer before being used
• A cloud IDE can be used within a web browser, meaning you can work on your projects from your office, home, or anywhere with the internet with no setup necessary
• AWS Cloud9 also allows for code collaboration in real-time (pair programming)
The AWS Cloud Development Kit (AWS CDK) is an open-source software development framework to define your cloud application resources using familiar programming languages.
Learn more about AWS DevOps
- DevOps – Amazon Web Services (AWS) (aws.amazon.com)
- Aws Devops Tools List – AP2V (www.ap2v.com)
- What is AWS DevOps and Tools Required to Develop a (www.simplilearn.com)
- Best DevOps Tools for AWS – CloudySave (www.cloudysave.com)
- Introduction to DevOps on AWS – AWS Whitepaper (docs.aws.amazon.com)
- Top AWS DevOps Tools for Cloud Build and Deployment (www.softwaretestinghelp.com)
- Tools of AWS DevOps Explained | AWS Cloud 101 (awscloud101.com)
- Introduction to AWS DevOps: Skills + Tools You Need | Varonis (www.varonis.com)
- AWS DevOps Tools and Best Practices – Aspire Systems (blog.aspiresys.com)
- AWS DevOps- Architecture, Tools, and Best Practices – ProjectPro (www.projectpro.io)
- AWS DevOps: The Skills and Tools You Need for Effective Cloud … (hotcerts.com)
- 3 AWS Testing Tools and Services for QA Testers | TechMagic (www.techmagic.co)
- What Are Different DevOps Tools Available In AWS | CloudAffaire (cloudaffaire.com)