Development Operations (DevOps)

The key to following the continuous delivery path is to continually question your own assumptions about what’s possible

What is DevOps

In today's modern world, every business actor is required to be able to continue to develop and follows the latest innovations quickly but also required in reducing existing risks, both from a technical and commercial perspective. A combination of "development" and "operations," DevOps is a set of practices for agile software design. It's a simplified methodology, so consequently, there are many different varieties to choose from. DevOps combines cultural philosophies, practices, and tools that increases an organization’s ability to deliver applications and services at high velocity at anytime.

We help our customers on their journey to achieve digital transformation smoothly by leveraging AWS DevOps Solutions. AWS provides a set of flexible services designed to enable companies to more rapidly and reliably build and deliver products using AWS and DevOps practices. These services simplify provisioning and managing infrastructure, deploying application code, automating software release processes, and monitoring your application and infrastructure performance.

DevOps in AWS

AWS and DevOps are two major technologies in Cloud Computing, imagine the benefits of both combined.

AWS DevOps is a technology created to allow organizations to be able to implement DevOps with the support of many services, features and tools offered by this Cloud Platform. AWS offers a versatile flexible services, designed to allow organizations to developed and deliver their products more reliable and faster with the help of AWS and DevOps. AWS DevOps features simplify the business process, such as application monitoring, managed infrastructure, and automate software, application in a code deployment and many other features.

AWS did a great job in providing DevOps professionals to have a set of tools they require to deploy faster environment, scalable and secure. As the pioneer of Cloud Computing, Amazon provides services that fully programable, configured and accessed with rich CLI. In a simple way to say, AWS is the right place to automate your DevOps.

If we look again to the DevOps cycle, they were all integrated in AWS services.

DevOps consists of several phases that collectively form the DevOps life cycle.

  • Continuous Development
  • Continuous Integration
  • Continuous Testing
  • Continuous Feedback
  • Continuous Monitoring
  • Continuous Deployment
  • Continuous Operations

Continuous Development

To support Continuous Development, the developer’s environment could use AWS Cloud9 IDE and IDE toolkits. Developer could easily access the AWS environment and develop, without installing any supporting application on their environment. AWS also provides AWS SDKs in many programmable languages , enabling developers to integrate their developed applications with AWS services.

Continuous Integration

In Continuous Integration, to integrate and collaborate between developers we could use AWS CodeCommit. With Pay as you go method, we don’t have to provision the compute instances to run git tools. We also don’t have to spend monthly cost to subscribe the git hosting. With granular access integrated with AWS IAM your team also could share the authorization for each repository and projects. To store AWS CodeCommit, we could use AWS S3 services, to save the source with high security and high availability.

Continuous Testing

To do Continuous Testing we could use Amazon CodeGuru services, to detect vulnerabilities in security area and automate code reviews. AWS Device Farm improves the quality of your web and mobile applications by testing across desktop browsers and real mobile devices hosted in the AWS Cloud. AWS CodeBuild services allows integration testing with other tools outside AWS services.

Continuous Feedback

For Continuous Feedback we could AWS SNS, we could choose the feedbacks between Email, SMS, http endpoint or other AWS services.

Continuous Monitoring

Other important thing is Continuous Monitoring, in AWS it’s not only monitor the application but also do observability. In control theory, observability is one of the indicators of how well an internal system is, where we could conclude from the external results. If the monitoring results shows why a system is working, Observability shows why it is not working. For monitoring you could use Amazon X-Ray and centralized it with Amazon CloudWatch, to provide you data when an issue occurs in the application. Troubleshoot actions, MTTR-Mean Time to Resolution in the environment, where we detect, identify, fix and verify could be done easily and in a shorter period.

Continuous Deployment

For Continuous Deployment we could use AWS CodePipeline which consist of a series of processes. Automatic Testing and sending  allows verified features to be launched to production once it’s ready. This increase innovation cycle and also delivery process. For deployment we could use AWS CodeDeploy that support EC2 instances deployment or Lambda Serverless.

Continuous Operations

The last one is Continuous Operations, this is not only reduce planned downtime but also eliminate it, such as maintenance schedule or even doing rollbacks. The deployment strategy with Canary or Blue Green with AWS CodeDeploy helps us decide which methods suitable with the organization strategy. This could be done while testing the new application before replacing the existing application.

Case Studies