Managing production application databases has become more demanding than ever before not only due to the complexity of the applications they support, but also the very small margins for performance slowdowns or outages. Being proactive and resolving issues quickly in production requires the collaboration of the operations, DBA and development teams.
The Emergence of DevOps
Over the years a lot has changed when it comes to how newly developed application databases are deployed into production. There was a time where development teams would have worked for months on the latest and greatest additions to an application database only to involve the IT operations and DBAs at the very end when it came time to deploy them. This created a need for a cultural shift so-to-speak in IT and fostering more alignment between development, DBAs and operations throughout the application lifecycle to ensure deployments are successful. This no doubt became the genesis for what we know as DevOps today and it continues to evolve into a much more mature practice in the arena of database management.
Agile development has created a much more frequent roll out of new functionality; typically on a weekly or monthly cycle at most organizations. The longevity of any application database requires proper attention to the four continuous processes of DevOps which is:
- Continuous Integration
- Continuous Delivery
- Continuous Testing
- Continuous Monitoring
Out of the four mentioned above, the final goal is ultimately Continuous Monitoring. Continuous Integration and Delivery ensure that the application database code is in the correct state and in the appropriate environment while Continuous Testing and Monitoring provide validation to IT that the application database has been built right, while functioning and performing to the standards of the business it supports. While a frequent roll out of new features is exciting, it does involve risk in introducing performance issues and instability. This is why application databases today are becoming increasingly more challenging to support.
Monitoring is an essential part of DevOps
As mentioned earlier, the collaboration between development, DBA's and operations is crucial to keeping application databases performing well and ultimately the end users satisfied. Application support requires getting more people in IT involved and an effective way to prioritize and perform triage on any bottlenecks or issues at hand. Rather than working in silos, operations, DBA and development teams can benefit from sharing a common set of performance data to support production application databases. The data can and should be relevant to the stakeholders need, whether it is high level or granular.
- Complete operation monitoring (e.g. Up-time, Availability, Concurrency, Jobs, etc.)
- Aggregated and searchable alert and error log files
- Host level utilization trends (e.g. CPU, Memory, Storage)
- Pre and Post deployment baselines and comparisons
- Establish key performance metrics (KPI's)
- Profiling application database usage down to the statement level
- Tracking performance coincidental to changes in and around the application database
More often than not, we see organizations utilize different solutions to capture and maintain all of this data. This results in difficulty when it comes to correlation and identification of issues. The learning curve for the IT organization increases which also results in operational and economical inefficiency.
Foglight for Continuous Monitoring of Application Databases
Foglight provides developers, DBAs and IT operations access to all the data they need around monitoring and troubleshooting production application databases. From one web based console different stakeholders can see the current health, performance metrics, recent errors, alert logs and transactional workload. Foglight also supports all major relational and non-relational DB platforms as well as monitoring for both physical and virtualized infrastructure.
Learn more about database performance monitoring.