Rethinking Scrum for Effective AWS Containerization Projects

Venkateswaran.N
7 min readJun 12, 2023

Introduction

Agile methodology has gained popularity as a flexible and iterative approach to software development. However, when it comes to AWS containerization projects, it may not always be the ideal choice. Containerization projects on AWS often involve complex infrastructure, lengthy deployment processes, and a focus on stability and reliability. In this article, we will explore the reasons why Agile methodology should be avoided in AWS containerization projects and suggest alternative approaches that may better suit the nature of these projects.

AWS Containerization

AWS provides a comprehensive ecosystem of services to address various aspects of containerization, from deployment and management to monitoring and security. AWS (Amazon Web Services) provides a range of services and tools that facilitate containerization and orchestration of applications. Here are some key AWS services related to containerization.

Amazon Elastic Container Service (ECS): Amazon ECS is a fully managed container orchestration service that allows you to run Docker containers on AWS. It simplifies the deployment, management, and scaling of containerized applications.

Amazon Elastic Kubernetes Service (EKS): Amazon EKS is a managed Kubernetes service that makes it easy to deploy, manage, and scale containerized applications using Kubernetes. It provides a fully managed Kubernetes control plane and integrates with other AWS services.

AWS Fargate: AWS Fargate is a serverless compute engine for containers. It allows you to run containers without managing the underlying infrastructure. Fargate integrates with ECS and EKS, providing a simplified experience for running containerized applications.

Amazon Elastic Container Registry (ECR): Amazon ECR is a fully managed container registry service. It provides a secure and scalable repository for storing, managing, and deploying Docker container images. ECR integrates with ECS, EKS, and other container services.

AWS App Runner: AWS App Runner is a fully managed service that simplifies the deployment of containerized applications. It automatically builds and deploys your containerized code from a source code repository or container image.

AWS CloudFormation: AWS CloudFormation is an infrastructure-as-code service that enables you to provision and manage AWS resources using templates. It can be used to define and deploy the infrastructure required for containerized applications.

AWS CloudWatch: AWS CloudWatch provides monitoring and observability for your containerized applications. It allows you to collect and analyze logs, metrics, and events from containers and container orchestration services.

AWS Identity and Access Management (IAM): IAM helps you manage access to AWS resources. It allows you to define fine-grained access control and permissions for users, groups, and roles interacting with your containerized applications.

Agile Methodology

Agile methodology is an iterative and incremental approach to project management and software development. It emphasizes flexibility, collaboration, and continuous improvement throughout the entire development process. The Agile methodology emerged as a response to traditional, sequential project management methodologies, commonly known as Waterfall.

image source : olaghesi

Concepts and principles

Iterative Development: Agile projects are divided into small, manageable iterations or time-boxed iterations, typically called sprints. Each sprint produces a working increment of the software product.

Adaptive Planning: Agile projects emphasize adaptability and embrace changing requirements. The planning process is flexible and allows for adjustments based on feedback and evolving needs.

Teams: Agile teams are typically small, self-organizing, and cross-functional. They include individuals with different skills and expertise who collaborate closely throughout the project.

Continuous Feedback: Regular feedback loops are crucial in Agile methodology. Stakeholders, including clients and end-users, provide continuous feedback, allowing for quick adjustments and improvement.

Prioritization and User Stories: Agile projects prioritize features and functionalities based on business value. User stories, brief descriptions of desired functionality from a user’s perspective, are used to capture requirements.

Continuous Integration and Testing: Agile teams integrate code frequently and perform continuous testing to ensure the quality and stability of the product throughout the development process.

Retrospectives: Agile encourages regular reflection and improvement. Retrospectives are held at the end of each iteration to evaluate the team’s performance and identify areas for enhancement.

Agile Manifesto: The Agile Manifesto is a foundational document that outlines the guiding principles of Agile methodology. It values individuals and interactions, working software, customer collaboration, and responding to change.

Some popular Agile frameworks and methodologies include Scrum, Kanban, Lean, and Extreme Programming (XP). These frameworks provide specific guidelines and practices to implement Agile principles effectively.

Scrums inadequacies for Containerization Projects

AWS containerization projects may not fit well into Scrum for several reasons:

The containers are deployed on Containerized cloud services like Amazon ECS, AWS ROSA, Amazon EKS, AWS FARGATE, etc., In ECS environment, they will be deployed as Containers directly and orchestrated using Tasks and can automatically scaled up or down.

Priority: Scrums priority has been preplanned and ordered according to the plan and seldom changes. In a containerization project, this is not the same and is dynamic in nature. This might be due to changes in the dependent applications as well.

Complexity: Containerization projects often involve various components and dependencies, such as container orchestration, networking, storage, security, and infrastructure management. The complexity of these projects can make it challenging to define and prioritize user stories in a Scrum backlog.

Technical Dependencies: Containerization projects often require coordination with multiple teams or external services. Integrating with container orchestration tools like ROSA may involve interactions with networking or security teams. These technical dependencies can make it difficult to deliver fully functioning increments of the product within short sprints.

Continuous Integration and Delivery (CI/CD): Typically involve implementing CI/CD pipelines for automated build, test, and deployment of containers. The continuous integration and delivery processes may require significant setup and configuration, which can extend beyond the scope of a single sprint.

Infrastructure Considerations: Infrastructure provisioning and management require collaboration with infrastructure teams to ensure the availability and stability of the underlying infrastructure. Infrastructure-related tasks can be time-consuming and may not align well with the time-boxed nature of Scrum sprints.

Longer Iteration Cycles: Some containerization projects may have longer iteration cycles compared to traditional software development projects. Containerizing an application and optimizing it for production may involve multiple stages, such as local development, testing, staging, and production deployment. These longer cycles may not align well with the shorter sprint durations typically followed in Scrum

Learning Curve: Containerization technologies like Docker and Kubernetes require a certain level of expertise and understanding. If the development team is relatively new to containerization, there may be a learning curve involved in acquiring the necessary skills and knowledge. This learning process may not align well with the fixed timeframes of Scrum sprints.

Experimentation and Exploration: Containerization projects often involve exploring and experimenting with different containerization strategies, tools, and configurations. These activities may require a more exploratory and flexible approach rather than the structured and predictable nature of Scrum.

Long-Term Infrastructure Considerations: Infrastructure planning and considerations for long-term maintenance and scalability aspects may require ongoing adjustments and adaptations throughout the project lifecycle, which may not fit neatly into the time-boxed iterations of Scrum.

External Dependencies: Coordinating and integrating with these external dependencies may introduce additional complexities and challenges that may not align well with the sprint-based approach of Scrum.

Emphasis on Operational Considerations: Containerization projects typically involve not only development activities but also operational considerations such as monitoring, logging, security, and scalability. These operational aspects may require ongoing attention and adjustments throughout the project, which may not be adequately addressed within the Scrum framework.

Solution

DevOps and AWS containerization go hand in hand, as DevOps practices can greatly enhance the effectiveness of containerization on AWS. Let us see how DevOps fits into AWS containerization and the DevOps tools provided by AWS ensures this.

Image source: AWS

Continuous Integration and Delivery (CI/CD): DevOps promotes automation of build, test, and deployment processes. With AWS containerization, DevOps practices are leveraged to set up CI/CD pipelines that automates the building, testing, and deployment of containerized applications. AWS services like AWS CodePipeline, AWS CodeBuild, and AWS CodeDeploy can be used to create CI/CD workflows that integrate with containerization platforms (Amazon ECS or Amazon EKS or ROSA).

Infrastructure as Code (IaC): DevOps emphasizes the use of infrastructure as code, where infrastructure resources are defined and provisioned using code. AWS provides services like AWS CloudFormation and AWS CDK (Cloud Development Kit), which allows to define and manage container infrastructure as code with version control, repeatability, and easier management of containerized environments.

Automation and Orchestration: DevOps practices focus on automating repetitive tasks and optimizing processes. In the context of AWS containerization, this involves automating container deployment, scaling, and management. AWS services like AWS Elastic Beanstalk, Amazon ECS, and Amazon EKS provide built-in capabilities for automating container orchestration, enabling to scale containers and manage deployments easily.

Infrastructure Scalability and Resilience: DevOps principles encourage designing and deploying containerized applications in a scalable and resilient manner. AWS services like Auto Scaling, Elastic Load Balancing, and Amazon RDS can be integrated with containerized applications to ensure high availability, fault tolerance, and efficient resource utilization.

Monitoring and Logging: DevOps emphasizes observability and continuous monitoring of applications. AWS provides services like Amazon CloudWatch, AWS X-Ray, and AWS App Mesh for monitoring containerized applications running on AWS enabling to collect logs, metrics, traces and gain insights into the performance and health of containers, which can be used to identify and resolve issues quickly.

Security and Compliance: DevOps promotes “security as code” approach, where security measures are integrated into the development and deployment processes. With AWS containerization, teams can apply security best practices, such as leveraging AWS Identity and Access Management (IAM) for fine-grained access control, integrating security scanning tools in CI/CD pipelines, and implementing network and application-level security measures using AWS security services.

Conclusion

By adopting DevOps practices in conjunction with AWS containerization services, leveraging AWS devops tools we can achieve streamlined and efficient software delivery, rapid deployment, scalability, and improved overall application performance and reliability on the AWS Container platforms. Scrum methodology and sprints should not be applied in Devops project for timely delivery of containerized applications.

Sign up to discover human stories that deepen your understanding of the world.

Free

Distraction-free reading. No ads.

Organize your knowledge with lists and highlights.

Tell your story. Find your audience.

Membership

Read member-only stories

Support writers you read most

Earn money for your writing

Listen to audio narrations

Read offline with the Medium app

Venkateswaran.N
Venkateswaran.N

Written by Venkateswaran.N

Lead Architect (Application modernization/Containerization - AWS cloud practice , IBM India )

Responses (1)

Write a response

Process explained in simple language. Nice Work Venkat.