DevOps for SaaS Developers
July 04, 2015
When implementing a service it is not about code only, but more about code execution on production. You deal with dozen of scripts, middleware, operating systems and servers. Usually a service consists of many components and every of them should be checked for availability, unhandled exceptions, errors and any kind of performance metrics.
Applications and middleware are upgraded systematically, thus new issues appear always and should be resolved by your team. Issues related to your service make technical debt your team should be aware of and should reduce in order to keep high level of service quality. Simultaneously you need to adjust features deployed and implement new ones. Thus you've got huge amount of tasks and limited resources to complete it.
The only way to not fail is
- to remove all boring and time wasted activities,
- to have single relevant and prioritized backlog of tasks for the whole of your team.
Let's have a look at minimum survival kit of a startup who has launched a software as a service:
- Application monitoring tool (APM) is used to watch on application internal metrics like transactions per second, slow queries, errors logged, etc.
- Server monitoring tool is used to watch on server resources like CPU, memory and disk space.
- Exception monitoring tool is used to handle errors and exceptions from any level of application stack.
- Help Desk tool allows customers to report on issues and ask for questions about the service.
- Task management tool to organize relevant backlog and allocate tasks across the team.
Use Proper Management System
It's wrong time to build silos and separate team members by their skillset. Developers should be aware of how application is deployed and middleware is configured, what metrics are gathered, how to deal with the service components. Developers are responsible to configure application, exceptions and server monitoring tools, to get bug reports automatically as soon as possible. DevOps culture is the most appropriate to startup teams. Automation is the key of how to save time and build complex software.
Cross-functional team is more productive and build more qualitative product. Self-management team responds better to customers needs and the market changes. Software Kanban allows to streamline the process of reducing technical debt along with implementing new features. Kanban is full of simple metrics which allow to analyze and optimize the process in order to increase its efficiency.
Eliminate Time Wasted Activities
When you deal with several monitoring dashboards you have to walk around them periodically to find urgent and important issues. It takes time and increase lead time to recover, so customers should wait for team member look through corresponding dashboard and find an issue there. If an issue was found on monitoring dashboard it should be put into backlog. It takes time to submit a task into backlog. There is no way to find if an issue is in progress or not. Thus if any team member is looking at monitoring dashboard then duplicate tasks may appear in backlog.
When it is required to pass a customer request into development you have to submit a task into backlog. If developer is required additional info then he should switch to help desk application and ask there for details. When corresponding task is done developer should switch into help desk app and close original ticket there too. All these boring activities should be automated too.
Don't Pay More
We build DevOpsBoard service to help teams use proper management system based on software Kanban and automate all boring activities required to fill backlog with relevant issues. DevOpsBoard replaces multipurpose help desk tool, task management software and exception monitoring tool with the single service focused on DevOps activities. Why to pay for each of multipurpose services if you can pay less and once for the service which eliminates time wasted and brings effectivity of Kanban management system?