Since teams started creating applications and services, significant
challenges have continually hindered effective delivery and diminished
development team’s reputations. Common challenges include:
- Long IT solution lead times leading towards an inability to capitalize on business opportunities
- Complex and disjointed development processes hindering IT agility and degrading ability to meet business demand
- Inaccurate project forecasts, non-repeatable processes, and
rudimentary performance metrics leading to a persistent Business-IT
perception gap
- Perennial tension between management compliance mandates and development approach, which prevents improving app delivery
How do we change development processes, development tooling, and
run-time infrastructure to decrease time to market, streamline
development processes, deliver on-time and budget, and meet compliance
mandates?
To improve software delivery performance and effectiveness, teams
need automation, governance, architecture best practices, and increased
team collaboration. Unfortunately, improving IT performance and
effectiveness is not easy. Outdated infrastructure, processes, and
disjointed tooling impedes improving application delivery.
Application development tooling must continually evolve and
increase team productivity. Figure 1 below illustrates the historical
evolution from command line compilers and linkers towards development
forges. Development Forges unify application development tools and
promote collaboration, but they are often design and development time
environments disconnected from run-time infrastructure. The next
evolutionary step is Cloud DevOps Factories.
Figure 1. Dev Tools Evolution
A Cloud DevOps Factory provides a Cloud-based, automated, DevOps
approach to agile application design, delivery, and visibility. Key
goals reached by using a Cloud DevOps Factory include:
- Simplifying the development experience by delivering on-demand
self-service and Cloud provisioning. Seamlessly integrate development
and operations activities including continuous build, continuous
integration, continuous test, and continuous delivery.
- Obtaining governed, iterative lifecycle management across hybrid
clouds and composite applications by providing architecture templates,
application platform services, and surfacing IT business performance
metrics and analytics.
- Build a digital business ecosystem that enables a long tail of
application development and fosters cross-organization development
collaboration.
A Cloud DevOps Factory must include four distinct components (see Figure 2):
- A command dashboard (e.g. AppCommand) delivering visibility into development project activities and status
- A development forge integrating development lifecycle activities,
deployment activities, and development asset repositories (e.g. source
code management, issue tracking, project management, requirements
management, and test execution logs)
- A Cloud application Platform as a Service (aPaaS) delivering
on-demand access to application run-time environments (i.e. development,
test, and production) and simplifying project provisioning.
- An Application Store (e.g. AppStore) promoting the application
solution and enabling self-service subscription to the application.
Figure 2: Cloud DevOps Factory Components
A Cloud DevOps Factory unifies Open Source DevOps, Agile, and Cloud
Tooling to deliver a consistent, automated, governed, and unified
application development process. By leveraging popular open source
products and applying Cloud self service provisioning, multi-tenancy,
and elastic scalability, a Cloud DevOps Factory solution creates
on-demand access to development and run-time infrastructure. Figure 3
illustrate multiple development activities and open source development
tooling projects integrated through a Cloud DevOps factory:
Figure 3: Open Source DevOps, Agile, and Cloud Tooling
Cloud DevOps Factories relying on open source projects preserve
team investment in development and operations tooling. For example,
DevOps personnel familiar with Chef or Puppet can re-use existing
recipes and templates within the factory environment.
A Cloud DevOps Factory helps reduce time to market, facilitate
regulatory compliance, and increases re-use and visibility. When
starting a project, a Cloud DevOps Factory overcomes challenging
logistics and enables rapid access to server and application resources
within Development, Test, and Production environments. The factory
quickly provision Software Development Life-Cycle (SDLC) tools
(e.g. Issue Tracker, Source Code Repository, Test Harness), effectively
configure governance workflow best practices, and allows a team
to select an appropriate application platform. The factory facilitates
best practice workflow and productive collaboration with the right
people, at the right time.
Teams can define best practice workflow to enforce regulatory
compliance. Enterprise governance stakeholders may configure an
application approval process that includes review gates, approval
checklist items, and automated test execution. Because the Cloud DevOps
Factory automatically provisions design-time and run-time assets, the
tool can rapidly deploy projects into a pre-certified software design,
development, and delivery environment that ensures use of approved
assets (e.g. library, API, and services) and shares standard frameworks.
By delivering development dashboards and standard, approved
application building blocks, the Cloud DevOps Factory reduces technical
debt, minimizes project backlog, and constantly communicate project
status. The environment helps teams reduce application
proliferation, consolidate 100s and 1000s of assets based on business
domain, increase application re-use, and constantly communicate and
coordinate.
The Cloud DevOps Factory value proposition crosses developers,
managers, and C-level executives. For developers, the Cloud DevOps
Factory simplifies project setup, provisioning, and development
lifecycle activities. Ideally, the factory works with leading
development tooling (i.e. SVN, Git, Junit, Selenium, Maven, Jenkins,
Bamboo, and JIRA) and IDE (i.e. Eclipse, IDEA, Rational). Development
managers can better manage project lifecycle with well defined
checkpoints and phases, ensure projects follow governance model and best
practices, and deliver consistent frameworks and architectures.
The
Cloud DevOps Factory surfaces CIO and Executive IT
management dashboards that deliver an ‘at a glance view ‘of projects’
status, lifecycle, activity, and health, which will change Business-IT
conversations and dynamics
Cloud DevOps Factories will revolutionize application development
and delivery by increasing project visibility, enhancing team agility,
and introducing automated governance and best practices. The convergence
of application development dashboards, application development DevForge
tooling, Cloud application Platform as a Service (aPaaS), automated
workflow, governance policies, on-demand provisioning, and application
subscriptions will advance best practices, bridge the Business-IT gap,
and create an agile application development organization.
Comments