The DevOps Ice cream:
6 flavors that you should taste!
Juan Manuel Gomez
Published: 13 Oct 2020
Flavor 1: Infrastructure as Code
Flavor 2: Configuration Management
Flavor 3: Continuous Integration
Flavor 4: Continuous Deployment (a.k.a Continuous Delivery)
This practice is what makes it possible to ship all the latest changes with all their integration’s validations passed into an available target environment to make it available for QA and give quick feedback to the developers and stakeholders teams about what is happening with the development of the new features and having them ready for production.
In most cases, this practice will generate a “deployment artifact” before updating the target environment which allows us to track all changes and have a tagging system that will provide more tracking information for the results of applying this into the live applications.
This will also open the possibility to do quick rollback changes with less effort in case things get complicated with any update. This step is usually made in the CI tools as a final step along with helpful notifications about the deployment results.
Flavor 5: Automated Testing
This practice is about mastering the use of specialized testing tools that are able to do a complete automated workflow of testing for specific kinds of software, trace all the results, and give quick feedback to the developer and the QA engineers based on the results of the automated tests programmed through the tool. There are several kinds of automated testing tools for UIs, APIs, ETLs processes, ML applications, or any BackEnd software that can cover testing of all these kinds:
- Unit
- Component
- Integration
- End to end
- Performance
- Security
- 508 Compliance
There are a lot of tools for many purposes around this practice, some popular names are Selenium, Locust, and EggPlant.
Flavor 6: Continuous Monitoring
This is the angular stone of any stable system. When we talk about monitoring, we are talking about the measurement of all possible data or states across our applications and systems. We need to monitor at least the most critical scenarios in our infrastructure and services like database outages, application URLs not responding, bad HTTP response codes, non-expected
API response or anything that literally will make an application or system not work well.
Monitoring can cover anything from error logging, TCP ports not responding or any network related issue, evaluate patterns in API responses or SQL queries, and also predict some behaviors. If all the data is centralized and processed to generate helpful IA based monitoring systems (Forecasting) or dashboards that can help to evaluate patterns and some interesting behavior around a metric.
Combining all the health checks that can be done to any application or system with some alerting / communication tools like PagerDuty or Slack can make all the teams more proactive and being updated in real-time about the state of every monitored system, providing the capacity to troubleshoot as soon as possible if any emergency happens.
There are many cool and powerful monitoring tools. Some popular names are DataDog, Splunk, ELK, Big Panda, AWS CloudWatch, AWS EventBridge, Prometheus, Sumologic, and many others.