AWS DevOps: Tools and Features
April 11, 2020 / Nirav S
“DevOps is not a Goal, But a never-ending process of continual improvement” – Jez Humble
In this blog we will share with you some DevOps tools which are available in the market. But before we start let me explain briefly about DevOps.
DevOps = Dev (Development) + Ops (Operations)
Different people define DevOps in a variety of ways.
But we define as per Wikipedia Knowledgebase:
“DevOps is a software engineering culture and practice that aims at unifying software development (Dev) and software operation (Ops). DevOps aims at shorter development cycles, increased deployment frequency, more dependable releases, in close alignment with business objectives”
DevOps is first a Culture of collaboration between developers and operations people
and if you want to check and read DevOps history follow this link:
Now take a look at the below DevOps diagram with various DevOps Tools,
These tools has been categorized into various stages of DevOps.and the DevOps Lifecycle can be broadly broken down into the below DevOps Stages:
- Continuous Development
- Continuous Integration
- Continuous Testing
- Continuous Monitoring
We will not deep dive about all DevOps stages because this blog is about the DevOps tools too, but if you want to learn more about it, please follow this link: https://www.janbasktraining.com/blog/what-is-devops-lifecycle/
The following is a list of tools used at various DevOps lifecycle stages.
- Plan: it helps define business value and requirements.
- Tools: jira or Git to help track known issues and perform project management.
- Code: This phase involves software design and the creation of software code.
- Tools: GitHub, GitLab, Bitbucket, or Stash.
- Build: In this phase, you manage software builds and versions, and use automated tools to help compile and package code for future release to production. You use source code repositories or package repositories that also “package” infrastructure needed for product release.
- Tools: Docker, Ansible, Puppet, Chef, Gradle, Maven, or JFrog Artifactory.
- Test: It involves continuous testing (manual or automated) to ensure proper code quality.
- Tools: JUnit, Codeception, Selenium, Vagrant, TestNG, or BlazeMeter.
- Deploy: This phase can include tools that help manage, coordinate, schedule, and automate product releases into production.
- Tools: Puppet, Chef, Ansible, Jenkins, Kubernetes, OpenShift, OpenStack, Docker, or Jira
- Operate: This phase manages software during production.
- Tools: Ansible, Puppet, PowerShell, Chef, Salt, or Otter.
- Monitor: In this phase involves identifying and collecting information about
issues from a specific software release in production.
- Tools: New Relic, Datadog, Grafana, Wireshark, splunk, Nagios, or Slack
AWS DevOps Features
Amazon EC2 (Elastic Compute Cloud)
- Easily scalable.
- Full control over your cloud infrastructure.
- Integrates with tons of tools: both AWS and 3rd-party.
AWS Elastic Beanstalk:
- Out-of-the-box load balancing and autoscaling.
- Can still access underlying AWS resources with full control.
Continuous Integration, Delivery, and Deployment:
- AWS CodeBuild – continuous integration.
- AWS CodeDeploy – continuous deployment.
- AWS CodePipeline – full code pipeline from build to deploy.
- AWS CodeStar – integrates all parts of the process with project management tools and JIRA issue tracking.
Infrastructure as Code:
- CloudFormation – Stack templating engine, YAML or JSON-based.
- OpsWorks – IaC with Chef.
Serverless / FaaS:
- AWS Lambda – run serverless functions on AWS
- Amazon Cloudwatch – track metrics and logs, set alarms, and automate responses to monitoring data.