DevOps in 2019 - Practices for Accelerating Software Delivery
Note: This post is over 6 years old. The information may be outdated.
DevOps in 2019 - Practices for Accelerating Software Delivery
DevOps has evolved from a niche approach to a mainstream methodology for software development and delivery. As organizations continue to embrace digital transformation, DevOps practices have become essential for achieving the speed, quality, and efficiency required to remain competitive. This comprehensive guide explores the state of DevOps in 2019, highlighting the most effective practices, tools, and cultural approaches that are helping organizations accelerate their software delivery while maintaining reliability and security.
The Current State of DevOps
The DevOps landscape continues to mature and expand:
- Mainstream Adoption: 77% of organizations have adopted DevOps practices to some degree
- Proven Business Impact: High-performing DevOps teams deploy 208 times more frequently with 106 times faster lead time
- Cultural Evolution: Growing recognition of the importance of organizational culture
- Tool Consolidation: Movement toward integrated toolchains and platforms
- Enterprise Adaptation: Large organizations developing specialized approaches for complex environments
These developments are shaping the specific practices we'll explore below.
Core DevOps Practices in 2019
The fundamental approaches driving DevOps success:
1. Continuous Integration and Delivery
Automating the software release process:
CI/CD Implementation
- Automated Build Pipelines: Compiling and testing code with every change
- Deployment Automation: Consistent, repeatable release processes
- Environment Parity: Ensuring consistency across development, testing, and production
- Feature Flags: Separating deployment from release for safer delivery
- Canary Deployments: Gradually rolling out changes to reduce risk
Implementation Example: Netflix deploys thousands of times per day using a sophisticated CI/CD pipeline that includes automated canary analysis, allowing them to quickly deliver new features while maintaining their 99.99% availability target.
2. Infrastructure as Code
Managing infrastructure through programmable configuration:
IaC Approaches
- Configuration Management: Tools like Ansible, Chef, and Puppet for system configuration
- Infrastructure Provisioning: Using Terraform, CloudFormation, or ARM templates
- Containerization: Docker for application packaging and isolation
- Container Orchestration: Kubernetes for managing containerized applications
- Immutable Infrastructure: Replacing rather than modifying infrastructure components
Implementation Example: Capital One uses infrastructure as code to manage thousands of AWS resources, enabling them to provision complete environments in minutes rather than weeks while ensuring compliance with security and regulatory requirements.
3. Microservices Architecture
Designing systems for independent deployment and scaling:
Microservices Implementation
- Service Decomposition: Breaking monoliths into focused, independent services
- API-First Design: Defining clear interfaces between services
- Decentralized Data Management: Service-specific databases and storage
- Independent Deployment: Releasing services without coordinating with other teams
- Resilience Patterns: Circuit breakers, bulkheads, and other fault tolerance approaches
Implementation Example: Uber's microservices architecture includes over 2,000 services that process millions of trips daily, allowing teams to develop and deploy independently while maintaining system reliability.
4. Monitoring and Observability
Gaining visibility into system behavior:
Observability Practices
- Distributed Tracing: Following requests across service boundaries
- Centralized Logging: Aggregating logs for analysis and troubleshooting
- Application Performance Monitoring: Tracking system behavior and user experience
- Synthetic Monitoring: Proactively testing critical paths
- Alerting and Incident Response: Detecting and addressing issues quickly
Implementation Example: Etsy uses a comprehensive observability platform that processes over 800 billion events per day, enabling them to detect and resolve issues before they impact users.
5. Security Integration (DevSecOps)
Embedding security throughout the delivery pipeline:
DevSecOps Approaches
- Automated Security Testing: Integrating vulnerability scanning into CI/CD
- Infrastructure Security Scanning: Validating configuration against best practices
- Secret Management: Securely handling credentials and sensitive information
- Compliance as Code: Automating regulatory and policy compliance
- Threat Modeling: Proactively identifying security risks during design
Implementation Example: Adobe has implemented a DevSecOps approach that includes automated security testing at multiple stages of their pipeline, reducing security vulnerabilities while maintaining rapid delivery.
DevOps Toolchain Evolution
How tooling is adapting to support modern practices:
1. CI/CD Platform Consolidation
Moving toward integrated delivery platforms:
Platform Approaches
- End-to-End Pipelines: Tools covering the entire delivery process
- Pipeline as Code: Defining delivery workflows programmatically
- Multi-Cloud Support: Consistent delivery across environments
- Governance Integration: Building compliance into pipelines
- Self-Service Capabilities: Empowering developers with automated workflows
Key Tools: Jenkins X, GitLab CI, GitHub Actions, CircleCI, and Spinnaker are evolving to provide more comprehensive pipeline capabilities.
2. Container and Kubernetes Ecosystems
Supporting containerized application delivery:
Container Tooling
- Container Registries: Storing and distributing container images
- Kubernetes Management Platforms: Simplifying cluster operations
- Service Mesh: Managing service-to-service communication
- Serverless Frameworks: Extending Kubernetes with event-driven capabilities
- Policy Enforcement: Ensuring compliance across containerized environments
Key Tools: Docker, Kubernetes, Istio, Knative, and Open Policy Agent are creating a comprehensive ecosystem for container-based applications.
3. Observability Platforms
Unifying monitoring and troubleshooting:
Observability Solutions
- Metrics, Logs, and Traces: Combining different data types
- AIOps Integration: Applying machine learning to operations
- Business Metrics Correlation: Connecting technical and business outcomes
- Custom Dashboarding: Creating role-specific views of system health
- Automated Remediation: Taking action based on monitoring data
Key Tools: Datadog, New Relic, Prometheus, Grafana, and Elastic Stack are expanding to provide comprehensive observability capabilities.
4. Infrastructure Automation
Managing complex environments programmatically:
Infrastructure Tools
- Multi-Cloud Management: Consistent operations across providers
- Policy as Code: Enforcing standards across infrastructure
- GitOps Workflows: Managing infrastructure through Git repositories
- Cloud Development Environments: Providing consistent developer experiences
- Cost Optimization: Managing and reducing cloud spending
Key Tools: Terraform, Pulumi, Ansible, Chef, and CloudFormation continue to evolve for managing increasingly complex infrastructure.
DevOps Organizational Practices
How teams are structuring for DevOps success:
1. Team Topologies
Organizing for effective software delivery:
Team Structures
- Stream-Aligned Teams: Focused on specific business domains
- Platform Teams: Creating self-service capabilities for other teams
- Enabling Teams: Supporting adoption of new technologies and practices
- Complicated Subsystem Teams: Managing specialized components
- Clear Team Interfaces: Defining how teams interact and collaborate
Implementation Example: Spotify's squad model organizes teams around business capabilities with platform teams providing shared services, enabling autonomous delivery while maintaining system cohesion.
2. Inner Source Practices
Applying open source principles internally:
Inner Source Approaches
- Internal Open Source: Making code visible and reusable across teams
- Pull Request Workflows: Standardizing code review and contribution
- Shared Component Libraries: Building reusable internal packages
- Documentation Culture: Making knowledge accessible and current
- Cross-Team Collaboration: Encouraging contributions across boundaries
Implementation Example: PayPal has implemented inner source practices across their engineering organization, resulting in improved code quality, reduced duplication, and faster onboarding for new team members.
3. Learning Culture
Building continuous improvement into operations:
Learning Approaches
- Blameless Postmortems: Learning from incidents without assigning fault
- Game Days: Simulating failures to build resilience
- Communities of Practice: Sharing knowledge across teams
- Experimentation Time: Allocating resources for exploration
- Skill Development Programs: Building capabilities systematically
Implementation Example: Google's Site Reliability Engineering teams conduct regular "Wheel of Misfortune" exercises where engineers practice responding to simulated incidents, building both technical skills and team coordination.
4. Metrics and Measurement
Tracking DevOps performance and impact:
Key Metrics
- Deployment Frequency: How often code is released to production
- Lead Time for Changes: Time from commit to deployment
- Mean Time to Recovery: How quickly incidents are resolved
- Change Failure Rate: Percentage of changes that cause incidents
- Customer-Centric Metrics: Connecting technical performance to user experience
Best Practice: Establish a balanced set of metrics that focus on both delivery speed and system stability, avoiding optimization of one dimension at the expense of others.
Industry-Specific DevOps Applications
How different sectors are adapting DevOps practices:
1. Financial Services
Balancing innovation with stability and compliance:
- Compliance Automation: Building regulatory requirements into pipelines
- Risk-Based Testing: Focusing verification on high-risk components
- Secure Deployment Patterns: Specialized approaches for sensitive systems
- Environment Segregation: Maintaining appropriate separation of duties
- Audit Trails: Comprehensive logging of all changes
Example: JPMorgan Chase has implemented DevOps practices across their organization while maintaining compliance with financial regulations, reducing time-to-market for new features by 71%.
2. Healthcare and Life Sciences
Adapting DevOps for regulated environments:
- Validation-Ready Pipelines: Supporting compliance documentation
- Traceability: Connecting requirements to implementation and testing
- Controlled Deployments: Managing releases in clinical environments
- Data Privacy Controls: Protecting sensitive patient information
- Quality Management Integration: Aligning with industry standards
Example: Philips Healthcare has implemented DevOps practices for their medical device software, reducing deployment time from months to weeks while maintaining compliance with FDA requirements.
3. Retail and E-commerce
Optimizing for customer experience and scale:
- Peak Season Readiness: Preparing for high-traffic periods
- Feature Experimentation: Testing new capabilities with user segments
- Performance Optimization: Ensuring responsive customer experiences
- Omnichannel Delivery: Coordinating releases across platforms
- Real-User Monitoring: Understanding actual customer experiences
Example: Walmart has built a DevOps platform that supports over 4,000 stores and their e-commerce operations, enabling them to deploy updates multiple times per day even during high-traffic periods.
4. Public Sector
Modernizing government software delivery:
- Procurement Adaptation: Working within existing contracting frameworks
- Security Clearance Considerations: Managing access to sensitive systems
- Legacy Modernization: Incrementally improving existing systems
- Cross-Agency Collaboration: Sharing tools and practices
- Citizen-Centric Metrics: Focusing on public service outcomes
Example: The UK Government Digital Service has implemented DevOps practices across multiple agencies, significantly reducing costs while improving service delivery to citizens.
Overcoming DevOps Challenges
Addressing common implementation obstacles:
1. Legacy System Integration
Applying DevOps to existing applications:
- Challenge: Difficulty implementing modern practices with older systems
- Solutions:
- Implement API layers to expose legacy functionality
- Create automated testing around existing systems
- Gradually refactor components for testability
- Apply strangler pattern for incremental modernization
- Focus on deployment automation even for monolithic applications
Example: Target has successfully applied DevOps practices to their mainframe systems, implementing automated testing and deployment while gradually modernizing components.
2. Organizational Resistance
Overcoming cultural barriers:
- Challenge: Entrenched processes and siloed responsibilities
- Solutions:
- Start with pilot projects to demonstrate value
- Focus on pain points that affect multiple teams
- Provide training and support for new ways of working
- Celebrate and publicize early successes
- Align incentives with desired behaviors
Example: ING Bank transformed their organization from traditional development and operations silos to cross-functional teams, significantly improving delivery speed and employee satisfaction.
3. Skill Gaps
Building necessary capabilities:
- Challenge: Insufficient expertise in modern practices and tools
- Solutions:
- Develop internal training programs
- Create mentoring relationships across teams
- Leverage external training resources and certifications
- Hire strategically to fill critical gaps
- Build communities of practice to share knowledge
Example: Capital One established a DevOps Center of Excellence that provides training, tools, and support for teams across the organization, accelerating adoption of modern practices.
4. Compliance and Governance
Maintaining control in fast-moving environments:
- Challenge: Balancing speed with appropriate oversight
- Solutions:
- Automate compliance checks within pipelines
- Implement policy as code for consistent enforcement
- Create pre-approved patterns and components
- Shift verification left in the development process
- Maintain comprehensive audit trails
Example: Fidelity Investments implemented automated compliance checks in their delivery pipelines, reducing manual review time by 70% while improving overall compliance.
Measuring DevOps Success
Approaches to evaluating effectiveness:
1. Technical Metrics
Assessing delivery performance:
- Deployment Frequency: How often code reaches production
- Lead Time: Duration from commit to deployment
- Mean Time to Restore: Recovery speed after incidents
- Change Failure Rate: Percentage of deployments causing issues
- Automation Coverage: Extent of automated testing and deployment
Best Practice: Track these metrics over time to identify trends and improvement opportunities, rather than focusing on absolute numbers or comparisons with dissimilar organizations.
2. Business Impact Metrics
Connecting DevOps to organizational outcomes:
- Time to Market: Speed of delivering new capabilities
- Feature Usage: Adoption of newly deployed functionality
- Customer Satisfaction: Impact on user experience
- Revenue Impact: Contribution to business growth
- Cost Efficiency: Operational savings from automation
Best Practice: Create a balanced scorecard that connects technical practices to business outcomes, demonstrating the value of DevOps beyond IT metrics.
3. Cultural Indicators
Assessing organizational health:
- Team Autonomy: Ability to make decisions and deliver independently
- Cross-Functional Collaboration: Effectiveness of team interactions
- Learning from Failure: How incidents are treated as learning opportunities
- Innovation Time: Resources allocated to exploration and improvement
- Employee Satisfaction: Team member engagement and retention
Best Practice: Use regular surveys and retrospectives to gauge cultural health, recognizing that sustainable improvement requires both technical and organizational change.
The Future of DevOps: 2019 and Beyond
Emerging trends that will shape DevOps evolution:
1. GitOps and Declarative Delivery
Managing systems through version control:
- Infrastructure as Code Evolution: Everything defined in repositories
- Declarative System State: Specifying desired outcomes rather than procedures
- Automated Reconciliation: Systems continuously aligning with defined state
- Audit and Compliance: Complete history of all changes
- Developer Self-Service: Empowering teams through standardized workflows
Strategic Implication: Organizations should invest in GitOps approaches that provide both developer autonomy and operational control through version-controlled configuration.
2. AIOps and Intelligent Automation
Applying machine learning to operations:
- Anomaly Detection: Identifying unusual patterns automatically
- Predictive Analytics: Anticipating issues before they impact users
- Automated Remediation: Resolving common problems without human intervention
- Capacity Forecasting: Predicting resource needs based on trends
- Intelligent Alerting: Reducing noise and prioritizing notifications
Strategic Implication: Teams should begin exploring how machine learning can enhance their operational capabilities, starting with focused use cases like anomaly detection or alert correlation.
3. Platform Engineering
Creating internal developer platforms:
- Self-Service Infrastructure: On-demand environments and resources
- Standardized Workflows: Consistent delivery processes
- Built-In Compliance: Governance embedded in platforms
- Developer Experience Focus: Reducing friction for engineering teams
- Internal Service Marketplace: Reusable components and capabilities
Strategic Implication: Organizations should consider establishing platform teams that create self-service capabilities for development teams, improving productivity while maintaining operational standards.
4. Edge and Distributed Operations
Managing systems beyond the data center:
- Edge Deployment: Delivering software to distributed locations
- Offline Operations: Managing systems with intermittent connectivity
- Local Autonomy: Balancing central control with edge independence
- Synchronized Updates: Coordinating changes across distributed systems
- Observability Challenges: Monitoring geographically dispersed components
Strategic Implication: As computing continues to distribute beyond centralized clouds, DevOps practices will need to adapt to manage systems across increasingly diverse and distributed environments.
Conclusion: DevOps as Competitive Advantage
As we progress through 2019, DevOps has evolved from a set of technical practices to a comprehensive approach for delivering software that provides significant competitive advantages. The most successful organizations will be those that:
- Embrace automation throughout the software delivery lifecycle
- Foster collaboration across traditionally separated functions
- Implement feedback loops that drive continuous improvement
- Build learning cultures that treat failures as opportunities
- Measure what matters by connecting technical practices to business outcomes
By approaching DevOps as a holistic business strategy rather than merely a set of technical tools, organizations can create the foundation for rapid, reliable software delivery that drives innovation and customer satisfaction.
Remember that DevOps transformation is not a destination but a journey of continuous evolution—one that requires ongoing adaptation, learning, and refinement as both technologies and business needs change.
This article was written by Nguyen Tuan Si, a DevOps transformation specialist with experience helping organizations develop and implement effective delivery practices across various industries.