Characteristics of Legacy DevOps (called DelOps)
- No CI (No Unit Tests, No Mocking)
- All Quality Gates are right-shifted (UAT/AC Testers, Load and Performance Tests, Security, …)
- Proprietary IDE and command line tools without CI functionalities
- DVCS not present or plays a unimportant role (See SYM and CVS)
- Package-Centric deployment (No Microservices)
- Many different package types/package content with different deployment plan
- Change Management and no machine readable release notes
- Complex dependencies to sub-systems
- Outage Handling
- PROD deployment different to PREPROD deployment
- Distributed Application Configuration Managemenet
- Segragation of Duty
- Historically complex (Need process changes)
- Monolithic Domains
- No DDD therefore almost impossible to introduce Micro-services
- No SOA approach
- Package-oriented deployment pipeline
- Differentiation between managed and unmanaged environments
- Often Bare-metal Infrastructure
- Infrastructure is and was never part of Legacy Code Life Cycle owned by Dev Team
- Often External Vendor sending packages to deploy on-premise at consumers site (Process-Break lead to DelOps)
Characteristics of Mainstream DevOps
- Greenfield view
- Almost legacy-free value streams with almost no complex dependencies
- Seamless transition from CI to CD via specific plugin support
- Micro-services
- Independent deployment to production
- Microservices allow easy rollback
- Container (Docker) and Unikernel Technology enabled
- PREPROD easy cloneable from PROD
- App Config Management can be handled right from the start (CI)
- Full trust in core-teams (you develop it, you build it, you run it)
- All processes are shifted left (No UAT Testers and no OPS anymore) and fullautomated
- Virtual Infrastructre Automation is part of Development