Home
D

DevOps

DevOps is the blending of tasks performed by a company's application development and systems operations teams.

DevOps is the blending of tasks performed by a company's application development and systems operations teams.

The term DevOps is being used in several ways.

In its most broad meaning, DevOps is an operational philosophy that promotes better communication between development and operations as more elements of operations become programmable.

In its most narrow interpretation, DevOps describes the part of an organization’s information technology (IT) team that creates and maintains infrastructure.

The term may also be used to describe a culture that strategically looks at the entire software delivery chain, overseeing shared services and promoting the use of new development tools and best practices.

Traditionally in the enterprise, the development team tested new code in an isolated development environment for quality assurance (QA) and -- if requirements were met -- released the code to operations for use.

The operations team deployed the program and maintained it from that point on.

One of the problems with this approach, which is known as waterfall development, is that there was usually a long time between software releases and because the two teams worked separately, the development team was not always aware of operational roadblocks that might prevent the program from working as anticipated.

The DevOps approach seeks to meld application development and deployment into a more streamlined process that aligns development, quality assurance (QA) and operations team efforts.

This approach also shifts some of the operation team’s responsibilities back to the development team in order to facilitate continuous development, continuous integration, continuous delivery and continuous monitoring processes.

The necessity for tearing down the silos between development and operations has been expedited by the need to release code faster and more often in order to help the organization respond in a more agile manner to changing business requirements.

Other drivers for breaking down the silos include the increasing use of cloud computing and advances in software-defined infrastructures, microservices, containers and automation.

The DevOps toolchain

Although marketers have jumped on the DevOps bandwagon, there is really no such thing as a “DevOps product.”

There is only software that will help the development and operations team work together more efficiently and respond to changing requirements more flexibly.

New software tools have sprung up to help organizations automate testing and create a more streamlined development and release pipeline.

Such tools include GitHub for storing code, Puppet and Chef for configuration management, Nagios for monitoring how changes to code affect the environment and Splunk for operational intelligence.

DevOps as a Service is a delivery model for a set of tools that facilitates collaboration between an organization's software development team and the operations team.

In this delivery model, the DevOps as a Service provider collects disparate tools that cover various aspects of the overall process and connects these tools to work together as one unit.

The role of DevOps engineers

The role of DevOps engineer does not fall along one career track; professionals evolve into the position from a variety of backgrounds.

DevOps is often said to be more of a philosophy or a collaborative IT culture rather than a strictly-defined job description or skill set.

Because the area is so broad, DevOps positions may be more suited to IT generalists than specialists.

For example, a DevOps engineer may start as a software developer that oversees aspects of operations.

Conversely, a DevOps engineer may move up from a system administrator role because he or she has gained knowledge about coding, scripting, integration and testing.

There can be some overlap between DevOps and SysOps engineering roles depending on the individual organization and its technical needs, but it's the DevOps engineer whose responsibilities include changing business processes as needed to solve organizational problems and improve business outcomes.

Related Proficiencies

[object Object]

Amazon API Gateway

Amazon API Gateway is a fully managed service that makes it easy for developers to create, publish, maintain, monitor, and secure APIs at any scale.

[object Object]

Amazon CloudFront

Amazon CloudFront is a content delivery network offered by Amazon Web Services.

[object Object]

Amazon CloudWatch

Monitor AWS resources and custom metrics generated by your applications and services

[object Object]

Amazon ECS

Amazon EC2 Container Service is a container management service that supports Docker containers

[object Object]

Amazon Guard​Duty

Intelligent threat detection and continuous monitoring to protect your AWS accounts and workloads

[object Object]

Amazon Inspector

Automated security assessment service to help improve the security and compliance of applications deployed on AWS.

[object Object]

AWS CloudFormation

Model and provision all your cloud infrastructure resources

[object Object]

AWS CloudTrail

Record AWS API calls for your account and have log files delivered to you

[object Object]

AWS CodeBuild

Build and test code with continuous scaling.

[object Object]

AWS CodeCommit

AWS CodeCommit is a fully-managed source control service that hosts secure Git-based repositories.

[object Object]

AWS CodeDeploy

Automate code deployments to maintain application uptime

[object Object]

AWS CodePipeline

Continuous delivery service for fast and reliable application updates

[object Object]

AWS Elastic Beanstalk

AWS Elastic Beanstalk is an orchestration service offered from Amazon Web Services for deploying infrastructure which orchestrates various AWS services, including EC2, S3, Simple Notification Service (SNS), CloudWatch, autoscaling, and Elastic Load Balancers.

[object Object]

AWS Lambda

AWS Lambda lets you run code without provisioning or managing servers.