AWS DevOps Team Strategy
In this article, I will briefly define what is DevOps, then we will discuss the suggested strategy to manage and automate DevOps teamwork in the context of AWS Team.
What is DevOps?
DevOps is the combination of cultural philosophies, practices, and tools that increases an organization’s ability to deliver applications and services at high velocity: evolving and improving products at a faster pace than organizations using traditional software development and infrastructure management processes. This speed enables organizations to better serve their customers and compete more effectively in the market. Below are the main benefits of DevOps:
Collaboration
Improved delivery
Security
Speed
Scale
Reliability
The Strategy
In order to automate and manage the AWS DevOps teamwork, we would need to split our strategy into below main parts:
Part 1: The AWS Technology Stack
As an AWS Team, we need to focus on the below AWS native services:
Continuous Integration / Continuous Deployment (CI/CD):
AWS CodeCommit: Fully managed SCM service
AWS CodeBuild: To build and test the code
AWS CodeDeploy: For application deployment within AWS infrastructure
AWS CodePipeline: Is the glue which binds these services together. It's a orchestration tool which links all these products and automates the process end-to-end
Continuous Monitoring and Improvement:
- Amazon CloudWatch: Fully managed monitoring service for AWS applications and resources. It can be used to collect and track metrics and logs, create alarms and automatically react to any change in AWS resources.
AWS X-Ray: Is a tracing service for analyzing the performance of applications/services and helps identify any issues.
AWS CloudTrail: Is a product which logs API calls and account events. It is used to diagnose security or performance issues, or to provide quality account level traceability.
Infrastructure and Application Deployment:
AWS CloudFormation: To automate infrastructure provisioning. This can avoid human errors and can be used repeatedly and at scale.
AWS Elastic Beanstalk: To deploy web applications at scale without managing the underlying infrastructure
Configuration Management:
AWS OpsWorks: Provides managed implementations of Puppet and Chef in a product which integrates with other AWS Products and services.
AWS Systems Manager: Allows you to manage applications and infrastructure running in AWS
DevSecOps: Security checks should be embedded in every below step of the CI/CD pipeline
Code
Build
Test
Deploy
Provision
Monitor
Part 2: DevOps Team Skills Development
The DevOps landscape is constantly evolving and there are new and updated tools being developed all the time. Hence, the DevOps team should be always in a continuous learning mode.
Although the below is not a comprehensive list and is subject to change for the above mentioned reason, these are the main technologies that should be focused on by the DevOps team for continuous upskilling in my humble opinion:
Programming and Scripting Languages:
Python
Go
Bash Scripting
Containerization - Docker / ECS
Container Orchestration - Kubernetes / EKS
Version Control - Git
IaC:
Terraform
Pulumi
AWS CDK
Configuration Management - Ansible
Monitoring and Observability:
Prometheus - Monitoring
Grafana - Visualization
ELK Stack - Log Management
AWS Serverless Products:
Lambda
API Gateway
SQS
SNS
DynamoDB
Fargate
Etc..
CI/CD Tools:
Jenkins
GitLab
GitHub Actions
CircleCI
TravisCI
GitOps - ArgoCD
System Design
Part 3: Project Management
For the project management aspect, the focus should be on Agile and Scrum methodologies. Below are one of the main tools that would be beneficial for managing DevOps team workflow:
JIRA
Asana
Trello
Slack - Collaboration
On the other hand, a good recommendation when hiring is to mix experienced people having a variety of backgrounds with new team members so that they can share their knowledge for the benefit of all.


