Software applications are more complex than ever. If your application is slow or down for even five minutes customers will blow up on Twitter for the whole world to see. To prevent this, developers and operations have to work together in lockstep when deploying and supporting applications. Preventing and fixing application problems quickly is critical to keep your outage from becoming a trending topic on Twitter.
The DevOps Movement Begins
For software developers, ensuring early success of your new application starts with keeping IT operations in the loop. Traditionally a lot of software development teams have worked for months on new projects and then thrown them at the IT operations team at the last minute when it came time to deploy them. If you want a good example of this, look no further than the big healthcare.gov debacle. The DevOps movement started originally to try and solve that problem. It fosters a culture of keeping development and IT operations working together from the beginning to the end of the project so software deployments go more smoothly.
Long-term success of your application depends on proper maintenance and monitoring of your applications as you continue to roll out new features. Thanks to agile development, that is usually a weekly or monthly cycle at most companies. A constant stream of new features is awesome, but with that comes some risk in introducing new bugs, performance problems, or instability. This constant stream of change coupled with the overall complexity of today’s applications makes them difficult to support.
Application Support: “It Takes a Village”
Collaboration between developers and IT operations is needed to keep your applications running and your customers happy. If you only have a couple senior developers who handle all the production support issues they will have little time to deal with more important issues like architecting new features.
The key to supporting production applications is removing the bottlenecks and getting more people involved in application support. Operations needs to make sure that the development team has visibility of basic troubleshooting information like errors, logs, and key metrics while ensuring security.. Without this information it is hard for developers to fix basic bugs and improve application performance. They must contact other developers or system administrators for help which creates a huge bottleneck. You could say “It takes a village.”
Granting access to production data raises both security concerns and fear of unauthorized changes to the servers without going through proper release processes. However, developers don’t really need administrator level access to servers (jumping between dozens of servers is not very efficient anyways), they just need visibility to the aggregated information. This will allow them to find the source of the problem fast, while not creating any security risks or letting developers create new issues while fixing others.
DevOps Should Include Monitoring & Production Application Support
The goal of DevOps is to create collaboration and improve the working relationships between development and operations. The DevOps movement initially started focusing on software deployment and continuous delivery. However, support of production applications is the second and equally important component in the application lifecycle that is sometimes overlooked. To solve production problems quickly, developers and operations can not be pointing fingers at each other. They need to work together as a team.
To help support production applications, developer need access to lots of data:
- Visibility and notifications around all application errors
- Access to centralized aggregated log files for viewing and searching
- Basic server utilization trends and stats. (e.g. CPU, memory, etc)
- Recording and alerting of key application metrics (KPIs)
- Tracking of application web page load times
- Ability to access the application database and run test queries
Most companies utilize several different tools to track all of this data. This makes it difficult to correlate and identify issues. It is also very hard to train all team members on how to effectively use all the available tools, not to mention the economic inefficiency. Companies should look for solutions that combine these features into one dashboard so that solving issues can be done quickly and with minimal training.
Stackify gives developers access to all the data they need to monitor and troubleshoot production applications, without giving them administrator type access to all the servers. From one application dashboard you can see where the app is deployed, the current health, performance stats, recent errors, full logs, and key metrics. Stackify makes it easy for companies to embrace DevOps when it comes to supporting production applications. Some of our customers have shared with us how DevOps affected their organization. We would love to hear how DevOps has affected your company.
Photo Credit: JD Hancock
- How to Use Web.Config customErrors for ASP.NET - April 26, 2017
- Best Practices for Error Handling in ASP.NET MVC - April 25, 2017
- What is NullReferenceException? Object reference not set to an instance of an object - April 17, 2017
- Understanding # of Exceps Thrown / Sec, and How to Find Exceptions - April 17, 2017
- How to Generate C# Random Numbers, Pseudo vs Secure Random Numbers - April 16, 2017