Agile development has been increasingly evolving since the creation of the Manifesto for Agile Software Development in 2001. The desire to create better development methods has introduced a methodology that promotes efficiency, collaboration, flexibility, and fast turnaround. Now, eighteen years later, agile development is rising in popularity and might soon replace the traditional waterful approach.
This article explores the methods in which Amazon WorkSpaces can be used to promote an agile Development Operations (DevOps) environment.
What Is Amazon WorkSpaces
Amazon WorkSpaces provides access to cloud-based desktop services, including Windows and Linux. Amazon WorkSpaces replaces Virtual Desktop Infrastructure (VDI) and traditional desktops on-premises with virtual desktops.
Amazon WorkSpaces Use Cases
You can use Amazon WorkSpaces for a variety of uses. At the basic level, Amazon WorkSpaces can simplify your processes and reduce the scope of your desktop lifecycle management tasks. The service offers monthly subscriptions and on-demand pricing that promote scalable growth.
The following use cases review the benefits of using Amazon WorkSpaces in DevOps environments to promote agile development in as many pipelines as possible.
1) Infrastructure as Code (IaC)
Infrastructure as code (IaC) is the practice of managing computing resources through code rather than manual procedures. The goal of IaC is to provide faster and effective procedures for supporting the overall IT infrastructure, including physical servers and virtual machines.
Among Amazon WorkSpaces services, the following features provide use cases for a DevOps-focused infrastructure:
- AWS CloudFormation—provides a unified procedure for automating all your infrastructure resources. The first step requires using the CloudFormation template code for creating a single source of truth for all the infrastructure. Once your code is ready you can run it in the CloudFormation let the system automate your resources based on your configurations.
- AWS AMI—an Amazon Machine Image (AMI) is a virtual appliance unit that can provision Amazon Elastic Compute Cloud (EC2) instances. An AMI contains software configurations and can be used to deploy services delivered via EC2. AWS AMI can be created for public use, for Amazon DevPay subscribers, or for private use.
2) Continuous Deployment
Continuous deployment initiates an automated testing phase before releasing the code into the production environment. Continuous deployment eliminates manual testing during the last stages of the continuous delivery pipeline in favor of efficient automated procedures.
Amazon WorkSpaces provide the following functionalities for supporting a continuous deployment strategy:
- AWS CodeDeploy—a fully managed and user-friendly service for automating software deployment. The platform can integrate with any application and can integrate with existing pipelines.
- AWS CodePipeline—a fully managed and simple service for automating continuous delivery pipelines. The service provides a simple, fast, and configurable process for automation.
- AWS CodeCommit—a fully managed and highly scalable source control service for Git-based repositories. AWS CodeCommit ensures secure and fast development cycles.
Securing resources is crucial in any environment, especially in times when non-compliance with data protection regulation entities like the General Data Protection Regulation (GDPR) often incurs fines and loss of brand authority.
Amazon WorkSpaces provides extensive cloud security controls as part of the AWS Cloud Security service, including:
- Identity and Access Management (IAM)—a service for managing access to AWS services and resources. AWS IAM provides authorization controls such as granular role-based access for defining how, when, and where users use AWS resources. AWS IAM enables the management of users, roles, and federated users, while integrating existing corporate directories.
- Data encryption—provided within AWS services, including encryption functionalities in Amazon EBS and S3 storage, and server-side encryption (SSE) for Amazon SQS for protecting sensitive data. AWS offers a key management service for managing encryption keys and a service for cryptographic keys storage to ensure compliance.
Automation enables technology to perform tasks with minimal human assistance. Automation is a key practice in DevOps because it enables fast and efficient procedures. Automation takes over repetitive tasks, simplifies complex procedures, and fast-track processes.
Many Amazon WorkSpaces contain an element of automation. The following services are fully dedicated to making automation simpler and easier:
- AWS Elastic Beanstalk—for deploying and scaling web resources. Elastic Beanstalk knows many languages. Once you upload the code, Elastic Beanstalk can automatically handle all stages of the deployment.
- AWS OpsWorks—for automating operations with automation platforms Chef and Puppet. OpsWorks enables automation of configuration, deployment and management of servers across Amazon EC2 instances and on-premises computing centers.
Monitoring is the practice of ensuring resources work properly by keeping track of the performance and activity of the resource. You can monitor a system by logging user activity and “keeping an eye” for inside and outside threats, or logging resource performance and keeping track of possible system errors.
Amazon WorkSpaces provide the following services for simple and cost-effective monitoring:
- Amazon CloudWatch— a monitoring and management service that provides visibility of all cloud resources and applications. CloudWatch keeps tracks of operational data, provides insights for optimization, and initiates automated actions for troubleshooting when pre-configured alarms are detected.
- AWS CloudTrail—a service that provides robust functionalities for tracking user activity and API usage. CloudTrail logs AWS account activities throughout your infrastructure, stores and encrypt the log files in an Amazon S3 bucket of your choosing. CloudTrail logs activity from any API calls regardless of their origin, and all AWS services, including AWS Management Console and command line tools.
Author Bio: Gilad David Maayan is a technology writer who has worked with over 150 technology companies including SAP, Oracle, Zend, CheckPoint and Ixia, producing technical and thought leadership content that elucidates technical solutions for developers and IT leadership. You can find him on LinkedIn and Twitter.
Gilad Maayan is a guest blogger, all opinions are his own.