February 8, 2015 | Written by: IBM Cloud Staff
Share this post:
By Mihai Criveti and Catalin Rusu
As cloud adoption and born-on-cloud applications are on the rise, we need to change and accelerate the way we develop, test and manage software, and move toward software-defined infrastructure. While most businesses have established processes and tools for software development, aspects such as QA, technical debt management and operations automation are often left out of the continuous delivery pipeline. If you are not able to manage your technical debt, you will continuously deliver low quality code.
DevOps represents a shortcut to achieve this. But first, it may be helpful to understand DevOps as a concept.
DevOps is an enterprise capability for continuous service delivery that enables businesses to seize market opportunities and provide customers quicker feedback. It sits at the intersection of software engineering and development, technology operations, and quality assurance (QA).
Aspects and tools to consider
There are a variety of areas where DevOps can automate to make your life easier. We’ve highlighted 10 of those areas below, along with the tools that can help you along the way:
1. Business processes: To design and manage your business processes, consider using IBM Blueworks Live and Business Process Model and Notation workflows.
2. Manage requirements: To track, plan and manage requirements, look at IBM DevOps Services Track and PlanTrack and Plan.
3. Revision control: Keep code and artifacts under version control and configuration management using IBM DevOps Services with Rational Team Concert software configuration management, Git or external GitHub repositories.
4. Writing code: Write your code with IBM DevOps Services web user interface or Eclipse.
5. Technical debt/code analysis: Manage your technical debt and perform static code analysis with IBM Security AppScan SourceSource on IBM SoftLayer.
6. Code building: Build your code using Jazz Build Engine.
7. Deployment: Automatically deploy your software to IBM Bluemix and IBM SoftLayer using IBM DevOps Services or IBM UrbanCode Deploy.
8. Testing: Test your software with IBM Rational Functional Tester and IBM Rational Performance Tester.
9. Scaling: Automatically scale out using the Auto-Scaling for Bluemix Add-on, which provides policy-based automatic increases or decreases of the compute capacity of your application
10. Monitor/analysis: Continuously monitor and analyze with Bluemix Monitoring and Analytics.
How do you decide what to start automating first?
To identify, rank and manage your automation targets, you should set up a product backlog, prioritized according to value and risk by a product owner (with reviews and feedback from relevant stakeholders) based on the 80/20 rule. The backlog can consist of user stories with acceptance criteria scenarios, and can be ranked according to the MoSCoW method to get you started. That way you can track your progress and work on the most important items first. Concepts from Scrum can help here.
Check out this excellent tutorial on how you can manage and prioritize requirements in IBM DevOps Services and Bluemix.
How did you begin your DevOps journey in the cloud? Comment, subscribe or engage in a discussion on Twitter with @CrivetiMihai and @_CatalinRusu.