Skip to main content

Command Palette

Search for a command to run...

AWS DevOps Team Strategy

Updated
3 min read

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.

12 views