To be able to achieve speed and agility in the digital era it is necessary to change the slow, cumbersome ways of doing things which is deeply rooted in many organizations. Many companies are still using the waterfall model of software development, in which a project moves from development to testing to quality assurance to integration to production in slow sequential stages. That is why it is so important to break down the walls between development and operations (DevOps). DevOps enables software to be developed in shorter cycles and deployed into production faster.
There are three key areas that businesses need to focus on if they wish to disrupt themselves and undergo a digital transformation. These three key areas are Customer Experience, Operational processes and New business models. The common thread that runs through these key areas is innovation, and continuous innovation deployment is critical for today’s businesses. Innovative ideas need to be built, tested and deployed in rapid iterations for a business to remain competitive.
The main business driver for an agile IT is the need of the line of business leaders to experiment and quickly determine best alternatives for new business capabilities.
DevOps is an approach where business owners and the development, operations, and quality assurance teams collaborate to continuously deliver software. Business leaders require constant feedback to learn if market experiments are succeeding and to make quick adjustments. Technical teams need to learn early if there are performance issues with deployed applications. DevOps enables the business to experiment with entering new markets, introducing new products, and differentiate existing products with enhancements. DevOps encourages rapid delivery and rapid feedback for quick adjustments.
The requirements for an agile IT are speed to value, enhanced feedback, secure and managed APIs, and a flexible architecture. Enterprises require speed and predictable lead times for application delivery initiatives. The lead time for delivery of business capabilities relates directly to market opportunity. Business leaders require constant feedback to learn if market experiments are succeeding and to make quick adjustments. Technical teams need to learn early if there are performance issues with deployed applications. Digital platforms and the innovation edge of an enterprise require secure connections from cloud to backend systems and managed APIs to enable effective and controlled access from external applications. Application and services architecture must be flexible, de-coupled, and enable independent deployments of business capabilities.
The IBM Cloud Garage Method is IBM’s method to deliver applications by using DevOps. DevOps encompasses the full application lifecycle; the Garage Method describes it in seven phases. Each phase has a set of practices and related tools. The method describes how to pull together the right tools for your team to implement DevOps in your organization.
DevOps encompasses the full application lifecycle; the Garage Method describes it in seven phases. Each phase has a set of practices and related tools. The method describes how to pull together the right tools for your team to implement DevOps in your organization.
- Culture: Build trust and align your team with better communication and transparency.
- Think: Know your audience and meet its needs faster than the competition.
- Code: Collaborate to create and continuously integrate high-quality code.
- Deliver: Continuously build, test, and deploy code through an automated delivery pipeline.
- Run: Harness the power of the cloud to quickly get your minimum viable product (MVP)into production.
- Manage: Monitor and manage your applications to a high degree of quality and meet your service level agreements. Grow or shrink your resources based on demand.
- Learn: Gain insights from your users as they interact with your application.
The DevOps architecture of the IBM Cloud Garage method includes the best of Design Thinking, Lean Startup, Agile Development, DevOps, and Cloud to help enterprise organizations accelerate all phases of the application design, development and delivery lifecycle.
1. Collaborative development
Team members and stakeholders continually communicate plans, tasks, issues, and feedback. Collaboration tools enable a culture of innovation. Developers, designers, operations teams, and managers must communicate constantly. Development and operations tools must be integrated to post updates and alerts as new builds are completed and deployed and as performance is monitored. The team can discuss the alerts as a group in the context of the tool.
2. Track & Plan
Track work and team progress, create defects, see what's incoming, maintain project backlog, and plan work for future sprints. As the team brainstorms ideas, responds to feedback and metrics, and fixes defects, team members create work items and rank them in the backlog. The team works on items from the top of the backlog, delivering to production as they complete work.
3. Code editor
Tools used to write source code to implement the architecture. Developers write source code in a code editor to implement the architecture. They construct, change, and correct applications by using various coding models and tools.
4. Source control
Repository for sharing, storing source code, and versioning code drops. Developers manage the versions and configuration of assets, merge changes, and manage the integration of changes. The source control tool that a team uses should support social coding.
5. Build, test, and continuous integration
Build, scan, test, integrate, and package applications before deploying. Automates builds and deployments to the cloud. Developers compile, package, and prepare software assets. They need tools that can assess the quality of the code that is being delivered to source control. Those assessments are done before delivery, are associated with automated build systems, and include practices such as code reviews, unit tests, code quality scans, and security scans.
6. Artifact management
Artifact repositories manage binary files and other output from the build. Binary files and other output from the build are sent to and managed in a build artifact repository.
7. Release management
Help plan, execute, and track a complex release through every stage of the delivery lifecycle. The release is scheduled. The team needs tools that support release communication and managing, preparing, and deploying releases.
8. Deployment orchestration
Coordinates the manual and automated processes that are required for the solution to operate effectively. The team coordinates the manual and automated processes that are required for the solution to operate effectively. The team must strive towards continuous delivery with zero downtime. A/B deployments can help to gauge the effectiveness of new changes.
Includes the application and the options for the application's runtime environment, security, management, and release requirements. The team must understand the application and the options for the application's runtime environment, security, management, and release requirements.
10. Runtime and containers
Environment where the code will be developed, tested, staged, and run.
Enables data and application protection. Provides actionable security intelligence across cloud and enterprise environments. The team must ensure that all aspects of the application and its supporting infrastructure are secured.
12. Monitoring and metrics
Capture real time and historic application resource and performance metrics to optimize operation and diagnose problems. The team plans, configures, monitors, defines criteria, and reports on application availability and performance. Predictive analytics can indicate problems before they occur.
13. Alert notifications
The right people on the team or systems are notified when issues occur.
14. IT service management
The team manages the process for responding to operations incidents, and delivers the changes to fix any incidents.
15. Usage analytics
The team uses analytics to learn how users interact with the application and measure success through metrics.
16. Application consumers
When users interact with the application, they can provide feedback on their requirements and how the application is meeting them, which is captured by analytics as well.
17. DevOps engineers
DevOps engineers manage the entire application lifecycle while they respond to feedback and analytics from the running application.
18. Transformation and connectivity
Provides secure connectivity between services running in the cloud and data or applications running on premises or in other clouds. The enterprise network is protected by a firewall and must be accessed through transformation and connectivity services and secure messaging services.
19. Enterprise user directory
Provides storage and access to user information for authentication, authorization, or profile data. The security team uses the user directory throughout the flow. The directory contains information about the user accounts for the enterprise.
A Platform approach to DevOps is to use the DevOps services available in IBM Bluemix. This allows you to access everything you need to build all kinds of apps. You can work on your own or use the collaboration tools to work with a team. Using this platform can really speed up all development efforts and you can go go from source code to a running app in a very short time.
For more details on the IBM Bluemix platform, click here.
The IBM DevOps maturity model, which can help you assess your current practices, define your roadmap, and measure your improvement along a continuum as you adopt the IBM DevOps approach.
The IBM DevOps maturity model defines four levels of maturity that describe how well an organization can perform practices aligned to each adoption path. The levels consider: consistency, standardization, usage models, defined practices, mentor team or Center of Excellence (COE), automation, continuous improvement, and organizational or technical change management.
More details on the maturity model can be found here.
A business can benefit in several ways by following a DevOps approach. They can build a startup culture that brings business, development, and operations together. Businesses can respond to the market faster and build engaging user experiences. They can reduce development and operational costs by automating processes. They can deliver new features continuously without waiting for a convenient time to deliver major releases. Quality is ensured by enabling automated testing on a production-like environment before changes are pushed to the production site.
Rapid innovation, which is at the heart of of digital transformation, can only be achieved if it is supported by an Agile IT which includes the DevOps platform, the tools, the processes, the people and the transformation culture of the organization. DevOps are essential for any digital transformation initiative.