Harness APIs to Deliver Competitive Applications in the ‘Cloud of Clouds’
Re‐evaluate your service delivery cycle to see how APIs, cloud, and DevOps can help
Jan. 2, 2014 08:45 AM
Based on Andi Mann's presentation at Cloud Expo 2013 Silicon Valley
IT organizations face a growing demand for faster innovation and new applications to support emerging opportunities in social, mobile, growth markets, Big Data analytics, mergers and acquisitions, strategic partnerships, and more. This is great news because it shows that IT continues to be a key stakeholder in delivering business service innovation. However, it also means that IT must deliver new innovation despite flat budgets, while maintaining existing services that grow more complex every day.
The 'Cloud of Clouds'
This is where cloud computing can help to deliver business outcomes, especially if you look beyond just one or two cloud providers, to the almost limitless variety of interconnected and intermediated cloud services - what I call the 'cloud of clouds'. This is true especially for foundational capabilities - like compute infrastructure, data storage, content delivery, or financial management; and cloud-native services like social media, mobile interfaces, or Big Data analytics. Indeed, it makes little sense today to waste time and resources to rewrite existing code every time you need one of these foundational or cloud-native services. By leveraging the cloud of clouds, developers can instead focus on writing new and unique application code that delivers the competitive advantage the business needs.
APIs in the Cloud of Clouds
This is what a range of innovative startups and services already do. For example:
- A mashup of the data from cyclists' GPS devices with the Google Maps API has given us the explosively popular cycling tracker, Strava, a new way to track your progress, compete with friends and strangers, follow pros, and manage your own personal records.
- New York State's Metropolitan Transit Authority (MTA) opened up its APIs to developers in a hackathon-style contest called App Quest, enabling developers to build new mobile apps to help enhance the transit experience of MTA's 8.5 million daily riders.
- Connecting and mining the cloud newsfeeds of AP, Reuters, AFP, and many others new services around the world via their open APIs and other data feeds, allowed NewsMap to deliver one of my favorite news applications, a dynamic graphical worldwide news 'heat map.'
The key to rapid development of new applications is finding services that fill foundational needs; accessing these services efficiently and safely; and building innovative capabilities on top of them.
Identifying Opportunities in the Cloud of Clouds
Initially, you must identify cloud services that can help you speed your time to value. This means you need to know where your gaps are and where your core competencies are. Project and Portfolio Management (PPM) is a mature discipline with new relevance in the cloud of clouds. PPM solutions like CA Clarity PPM allow you to compare your available internal applications and code with best practices in the external cloud; and to detect and analyze your current cloud service usage to find the 'known good services' that are already delivering value. Using PPM tools that account for cost, risk, performance, uniqueness, criticality, compliance, quality, and more, you can quickly see, for example:
- Where you have unique and competitive core competencies internally
- Which existing internal capabilities you should lean on for new development
- What existing capabilities you should move to the cloud of clouds
- Where you should double-down on external cloud services you already use
- What additional services you should source from the cloud of clouds
A formal portfolio analysis allows you to narrow your search and find the best services in the cloud of clouds, beyond the 'usual suspects' (like Amazon Web Services, Google App/Compute Engine, Force.com, or Akamai). Look also at new cloud marketplaces like AppDirect or CloudCommons, at emerging cloud service brokers, and of course at your existing internal IT services.
You can then focus on accessing those services for commodity, mundane, or routine services, and connecting them to your unique code development to deliver competitive new applications. Key elements here include:
- Integration and interoperability: Making external compute, cloud, and applications look like internal code to your developers is often an integration challenge
- Security and compliance: Opening up to public or outsourced private cloud will introduce some repeat challenges in moving data and workloads
- Governance and management: Defining and enforcing policies for how your enterprise consumes interacts with cloud services
Accessing APIs in the Cloud of Clouds
Inevitably, access to these cloud services will be via APIs, so you will need to manage and secure API access. An integrated API security and management solution like CA Layer 7 Gateway accelerates application ROI by addressing a range of API needs - like security, performance, scalability, flexibility, and extensibility. This approach to leveraging APIs helps you to:
- Connect partners and divisions with each other and with external cloud services
- Provide secure integration to multiple platforms including mobile and back-end systems
- Enable internal and external developers to collaborate on code seamlessly
This last point is particularly important. Two-way integration extracts even more value out of your existing capabilities by exposing your existing code to external developers and systems. They can then leverage your strengths and build entirely new services around your core capabilities.
This approach to leveraging the cloud of clouds via existing APIs to deliver new competitive applications will enable multiple business goals - from reach and revenue to agility and access. You can build applications that can reach your customers wherever they are. You can accelerate the pace and quality of new disruptive innovation, improving IT efficiency through reuse and agility. You can enable new applications to fuel the fire of employee mobility, or simply deliver new applications to support new products and services that drive new revenue.
Accelerating Development with a DevOps Approach
However, merely accessing cloud services via open APIs does not ensure rapid application delivery. The final part of this approach is to speed the application development lifecycle, integrating APIs from the cloud of clouds with new approaches to the software development lifecycle (SDLC). By adopting a DevOps approach to the SLDC, you can bring the application portfolio forward to meet market challenges with collaboration and efficiency from design to deployment.
A holistic devops approach to application delivery is a topic for an entirely different post, but the following capabilities will certainly help you on your way:
- Collaborative Product Planning: Business leaders, development engineers, and system administrators working together to improve collaboration and reduce delays
- Infrastructure Abstraction and Automation: To automate change, configuration, and provisioning and save time on mundane infrastructure activities
- Service Virtualization: Virtualizing the entire environment for development, test, and QA so every developer and tester can have every resource they need, all the time
- Continuous Delivery: Automated code drop (and rollback) to enable rapid iteration that delivers new capabilities in hours, not weeks (or months) to production
- End‐to‐End Operational Monitoring: Enabling DevOps professionals to detect, diagnose, and resolve problems faster by accelerating problem tracking, identification, and fix
This all fits together into a reiterative closed-loop application delivery lifecycle. Shared portfolio gaps and application requirements feed an agile development process including accelerated test and quality assurance, released rapidly and integrated continuously into production, with real-time operations monitoring to mine performance and capacity data, feeding requirements back into portfolio analysis, ready for the next iteration of the application development.
There is no doubt that a DevOps approach to application delivery helps to deliver better code into production, faster and cheaper. For example, independent research has shown that organizations with a DevOps approach to application delivery have:
- Improved quality of our deployed applications by 22%
- Reduced time-to-market for software/services by 20%
- Reduction spend on development and operations by 18%
- And increased frequency of software/services deployments by 17%
Where can you start on this transformative journey to delivering new, competitive applications by harnessing APIs and the cloud of clouds? Some of my recommendations would include:
- Re‐evaluate your service delivery cycle to see how APIs, cloud, and DevOps can help
- Evaluate how APIs to cloud and internal services can support new innovation
- Evaluate new processes to connect business, development, and operations teams
- Evaluate new technologies to support a devops approach to application delivery
- Improve education, communications, collaboration, and cross‐skilling in both dev and ops
- Try cloud and API development in a small part of your org, a new project, or skunkworks
- Leverage cloud APIs in a critical new application that you need to deliver yesterday
Once you see how you can harness APIs to deliver competitive applications in the "cloud of clouds," you will see how this approach will help you support your business partners in their quest for more rapid innovation, delivered through new competitive applications, to support critical new business opportunities.