28
CIO’s guide to open application development

CIO’s guide to open application development€¦ · Application programming interfaces (APIs) let companies tap best-of-breed cloud services, promoting innovation by shifting focus

  • Upload
    others

  • View
    7

  • Download
    0

Embed Size (px)

Citation preview

Page 1: CIO’s guide to open application development€¦ · Application programming interfaces (APIs) let companies tap best-of-breed cloud services, promoting innovation by shifting focus

CIO’s guide to open application development

Page 2: CIO’s guide to open application development€¦ · Application programming interfaces (APIs) let companies tap best-of-breed cloud services, promoting innovation by shifting focus

CIO’s guide to machine learning and analytics

Table of contents

Introduction 1

The cloud’s open origins 5

Connected business platforms 9

Applications as lightweight, portable devices 15

Conclusion 22

Appendix 23

Page 3: CIO’s guide to open application development€¦ · Application programming interfaces (APIs) let companies tap best-of-breed cloud services, promoting innovation by shifting focus

CIO’s guide to open application development | 1

Introduction

Today, information pervades every interaction – and companies are grappling with how to extract business value from growing volumes of data. This need is driving faster software development cycles in which IT is expected to deliver new functionality continuously. Cloud computing makes this possible: it brings on-demand scalability and efficiency to computing, allowing companies to consume both software and infrastructure flexibly based on need.1 To meet ever-rising user expectations, software developers can deploy changes through the cloud to users anywhere in the world, instantaneously, from their laptops. Given this new reality, it’s no surprise that total spending on cloud services is expected to exceed $300 billion by 2020.2

But adopting cloud tools doesn’t always solve a company’s challenges. Today, nearly every IT organization must operate in a hybrid environment where applications take various forms: legacy systems that remain on-prem; existing applications migrated to the cloud; new applications built with cloud-native approaches (see “Three flavors of applications,” page 3). Each of these environments reflects a distinct era of enterprise application development. The combination makes for an increasingly complex IT landscape – one in which simply migrating to the cloud is not enough.3

Page 4: CIO’s guide to open application development€¦ · Application programming interfaces (APIs) let companies tap best-of-breed cloud services, promoting innovation by shifting focus

CIO’s guide to open application development | 2

These emerging challenges call for new approaches to software development. The most effective approaches treat the cloud as a fundamentally new kind of platform – one marked by highly connected, open environments. This new emphasis on openness has profound implications for business. Openness means the latest innovation is available to companies (and their competitors) instantly through the Web. Software is increasingly interoperable and portable, helping to free companies from the risk of vendor lock-in. Code can be packaged and deployed as small, manageable chunks so that teams can nimbly deliver new functionality to users, multiple times a day.

This CIO’s guide to open application development helps IT leaders meet today’s challenges by capitalizing on the historic shift toward open, connected environments. This shift represents an opportunity for companies to redefine how they interact with customers, partners, suppliers, and their own employees.

This guide explores how CIOs and IT leaders can realize the cloud’s agility promise by applying two key strategies:

➊ Using APIs to fuel innovation. Application programming interfaces (APIs) let companies tap best-of-breed cloud services, promoting innovation by shifting focus away from reinventing the wheel on commodified tasks.4 Instead, developers can focus on delivering new business value to users. Beyond consuming APIs, companies can participate in digital ecosystems and create new platforms (and, ultimately, new revenue) by exposing their own APIs for others to consume.

➋ Using containers to power fast, flexible application development. With containers, companies can build software in the form of lightweight, portable services that can be deployed consistently across environments – whether in a private data center or in the public cloud. Containers help to insulate organizations from vendor lock-in by separating applications from underlying infrastructure. The latest tools give IT a consistent framework to deploy, scale, and manage containers across any environment.

Page 5: CIO’s guide to open application development€¦ · Application programming interfaces (APIs) let companies tap best-of-breed cloud services, promoting innovation by shifting focus

CIO’s guide to open application development | 3

Today’s users expect seamless, instantaneous digital experiences. The approaches discussed in this guide help companies attain the levels of agility and responsiveness that modern consumers demand.

Three flavors of applications: legacy existing and cloud native

Legacy applications that will remain on-prem – together with applications that will migrate to the cloud – form important parts of an enterprise’s application portfolio. While modern “cloud-native” approaches position teams to deliver new applications with more agility, the key lies in carefully managing this trio of application types.

Existing applications may be migrated to VM-based infrastructure in the cloud (Infrastructure as a Service). These are x86-based applications running in Windows or Linux that can be migrated as is, including the ability to migrate existing software licenses in many cases.5

Post-migration, business priorities should determine which applications get refactored into cloud-native, container-based architectures – and which get forklifted intact. New applications driven by lines of business need to move as quickly as possible, without being encumbered by legacy systems that can slow development speed.6 Containers can hide much of the legacy implementation detail and complexity, exposing only what’s needed as an API. Cloud providers and trusted partners can help organizations choreograph what stays and what goes, helping to find the right architectural balance to let developers and ops teams hit the ground running.

Page 6: CIO’s guide to open application development€¦ · Application programming interfaces (APIs) let companies tap best-of-breed cloud services, promoting innovation by shifting focus

CIO’s guide to open application development | 4

Our roots

Each week, Google launches more than two billion containers across its data centers around the world.7 Taken together, these containers house the full range of applications Google runs, including user-facing applications such as Search, Gmail, and YouTube.

For two decades, we’ve focused on serving our users effectively through the cloud: a unique model of computing that calls for a fundamentally different approach to deploying and managing applications. Customers value the scale and performance of Google Cloud as a platform for their applications. These qualities speak to innovations we’ve made internally in our data centers and in networking.8 Externally, one of our most promising innovations is Kubernetes, the container management platform we created and contributed into open source – now under the cross-company stewardship of the Cloud Native Computing Foundation.9 The incredible momentum of Kubernetes’s adoption inspired this CIO’s guide to open application development.

Kubernetes – the Greek word for the pilot or helmsman of a ship – was directly inspired by Google’s cluster manager, internally known as Borg.10 Borg allows Google to direct hundreds of thousands of software tasks across vast clusters of machines numbering in the tens of thousands. Borg and Kubernetes are the culmination of Google’s experience deploying resilient applications at scale. They are designed to remove complexity so that developers and ops teams can move fast and focus on delivering new features to users.

Most importantly, Kubernetes provides a foundation for modern application development and operations – called DevOps – one proven to keep pace with the responsiveness today’s users demand. Open by design, it places control firmly in the hands of customers, not vendors.

Page 7: CIO’s guide to open application development€¦ · Application programming interfaces (APIs) let companies tap best-of-breed cloud services, promoting innovation by shifting focus

CIO’s guide to open application development | 5

CHAPTER 1

The cloud’s open origins

Page 8: CIO’s guide to open application development€¦ · Application programming interfaces (APIs) let companies tap best-of-breed cloud services, promoting innovation by shifting focus

CIO’s guide to open application development | 6

In 1974, Vint Cerf and Bob Kahn – the two pioneering fathers of the Internet – shared their design of the Internet openly in the publication IEEE Transactions on Communications.11 “Our design was intended to be available anywhere, to everyone, with no barriers,” Cerf said. “Openness was important from the get-go.” Cerf and Kahn’s Transmission Control Protocol (TCP) became the foundation of the Internet.

Today’s hybrid IT environments reflect the same degree of connectedness among systems: software is capable of running anywhere, and any device connected to the Internet can exchange data via open standards.12

IT has traditionally focused on developing and deploying software to internal systems. Yet the most profound change in today’s operating environment is the opportunity to connect with external systems and data sources beyond the company. Modern IT leaders have an opportunity to shape the way applications reach customers and other external stakeholders to deliver profound business impact.

The economic payoff of openness

As IT teams focus on getting the technology right, it is easy to overlook what has changed most dramatically in the last decade: user expectations. Fast connectivity has created expectations of immediacy.13 From web search to streaming video, users expect near-instantaneous performance from familiar consumer products. They expect to move seamlessly between consumer and enterprise applications, without degradations in performance or quality.14

Users are task-driven: they care that systems fulfill their intent, regardless of whether the back-end systems are uniform or exist in silos – or whether systems are local or in the cloud. Interoperability is assumed, even if each back-end system comes from a different vendor running on a completely different platform. Users have little tolerance for poor experiences and take cues from popular consumer applications, where open connectivity is pervasive.

Consider the example of a ride-sharing app on a smartphone. A rich map interface shows nearby cars in real time. In a single trip, the ride-sharing app reaches out to one or more electronic payment systems to handle fare processing; messaging and telephony services enable communication between passenger and driver. Newer services let passengers order food delivery to coincide with their arrival. The same app surfaces ratings and indications of how busy surrounding restaurants are. And of course, the app integrates with the ride-sharing company’s own back-end systems, residing on-prem and in the cloud.

Page 9: CIO’s guide to open application development€¦ · Application programming interfaces (APIs) let companies tap best-of-breed cloud services, promoting innovation by shifting focus

CIO’s guide to open application development | 7

Each of these service providers – maps, electronic payments, messaging, Internet telephony, food delivery – participates in the ride-sharing company’s growth and success. The service providers are suppliers to the ride-sharing company; the goods along this supply chain just happen to be digital. Critically, each connection point in this journey is made possible by openness and interoperability on both sides.

Whether today’s applications handle ride-sharing, reservations, payments, or connecting to the systems of suppliers and partners, mastering how software talks to software is a core discipline. It is the foundation of digital ecosystems, which help companies to tap into the scale and network effects enjoyed by successful platforms like Uber and Airbnb.15 The key to these powerful ecosystems is the ability for third parties (external to the company) to contribute content organically, thereby growing the value of the platform for all users. These ecosystems, made possible by open, cloud-based systems, present new business opportunities that were impossible in the relatively closed environments of the past.

The next section explores how organizations can realize the benefits of openness through these kinds of connected business platforms.

Page 10: CIO’s guide to open application development€¦ · Application programming interfaces (APIs) let companies tap best-of-breed cloud services, promoting innovation by shifting focus

CIO’s guide to open application development | 8CIO’s guide to open application development | 8

Chapter 1 recap

Public cloud computing’s basis in the Internet has allowed it to inherit key qualities of openness and interoperability. These qualities enable rapid innovation and sharp growth – and are vital for competitiveness in today’s enterprise environments.

Users care that systems fulfill their intent, regardless of whether the back-end systems are uniform or exist in silos. Open, interoperable systems make seamless experiences possible for users regardless of how or where they interact with your company.

Mastering how software talks to software is essential to participating in digital ecosystems, which helps companies to tap into the scale and network effects enjoyed by successful platforms like Uber and Airbnb.

Page 11: CIO’s guide to open application development€¦ · Application programming interfaces (APIs) let companies tap best-of-breed cloud services, promoting innovation by shifting focus

CIO’s guide to open application development | 9

CHAPTER 2

Connected business platforms

Page 12: CIO’s guide to open application development€¦ · Application programming interfaces (APIs) let companies tap best-of-breed cloud services, promoting innovation by shifting focus

CIO’s guide to open application development | 10

APIs let software talk to software, communicating through open standards.16 The concept of APIs in the enterprise is not new. In the first decade of the 2000s, service-oriented architecture (SOA) aimed to standardize services so they could be shared internally by business processes.17

The focus of APIs has since shifted from internal to external. In contrast with the internally focused integration efforts of the past, today’s service-oriented approaches communicate via the Web and face outward. In considering their API strategy, IT leaders should start with users external to the company – customers, partners, suppliers – and ask how the organization’s assets may be surfaced to these different groups selectively and securely. Data, algorithms, and the output of business processes are valuable digital assets to offer as external services. These assets – exposed as managed APIs – allow outside developers and companies to extend the value of an organization’s assets in fresh, unanticipated ways. A flywheel of innovation often ensues. For instance, the digital suppliers including maps, electronic payments, Internet telephony, and food delivery likely could not anticipate ride-sharing creating such large demand for their services.

Under this new model, a company’s services reflect external business value relevant to consumers – rather than simply reflecting internal system silos. An API serves as a public-facing contract that defines how the outside world derives value from an organization’s services.

For example, a financial services company might expose a data API that receives a stock ticker symbol as input, then returns the latest information about that stock. If the consumer supplies an optional date range, the system can surface more information, such as market events or SEC filings for that period. Information regarding how and from where the service actually sources this information is not accessible to the customer – by design. The sources are able to change freely without impact to the end user.

Yet exposing APIs forms only part of the solution. Modern API management provides a holistic mediation layer, enforcing discipline as systems interact locally and through the cloud.

Today’s API management systems can:

• Help to secure API endpoints through authentication, authorization, intrusion detection, and encryption

• Scale incoming API calls through load balancing and internal routing

• Provide monitoring that displays the health and uptime of services

• Run high-quality analytics, trends, and reporting on API consumption

• Provide proper version control to ensure that changes don’t break API consumers

• Perform protocol and data translation steps to ensure interoperability among systems

Page 13: CIO’s guide to open application development€¦ · Application programming interfaces (APIs) let companies tap best-of-breed cloud services, promoting innovation by shifting focus

CIO’s guide to open application development | 11

API management allows developers to tap services (both local and remote) in a way that’s centrally managed, auditable, and more secure. At the same time, developers work with the business to selectively expose data and processes to consumers externally. This enables companies to take part in – or create entirely new – digital ecosystems.18 Today’s top cloud providers have proven API management practices to help power these ecosystems, drawn from their experience managing some of the most popular services on the Internet.

APIs as business drivers

In industries where the primary product is information – broadcast and print media, advertising, entertainment, segments of banking and financial services – companies can deliver their products directly (and instantly) to customers. These industries were among the first to experience disruption as consumers broadly adopted digital technologies.

In traditional industries, digital leadership is often overlooked. Take Walgreens, a 115-year-old company: Its Photo Prints API allows any mobile app developer to include functionality for users to send photos to any of over 8,000 Walgreens locations for physical printing. With every photo order placed and picked up at a local store, the participating app developer can earn a revenue share.19 Walgreens also offers a Pharmacy Prescription API that allows users to order prescription refills within third-party mobile apps, such as health apps like Glow and WebMD.20

Page 14: CIO’s guide to open application development€¦ · Application programming interfaces (APIs) let companies tap best-of-breed cloud services, promoting innovation by shifting focus

CIO’s guide to open application development | 12

Walgreens reports that a customer visiting a store following a digital interaction spends six times more than a customer who walks in cold. “Customers come in for the [prescription refill] and then buy Band-Aids, they buy the candy, they buy the soda pop, they buy anything else that we sell in our stores six times as much as they would’ve just walking in. This is really exciting for us because it’s grown not only the value of our store, but it’s grown the value of the API program which provides all these services,” says Drew Schweinfurth, Walgreen’s developer evangelist.21

Many of the most promising opportunities for APIs as business drivers remain untapped. Established industries that traditionally haven’t attracted digital-native talent have great potential: manufacturing, industrial goods, retail, public sector, and healthcare. Customer focus in these industries might manifest as connected products where physical devices send data to APIs in the cloud. It may take the form of delivering analytics to users, or making it easy for external entities to transact with the business efficiently.22 For service industries, APIs facilitate communication with customers through familiar web and mobile experiences.

As companies begin to incorporate APIs into their technology strategy, it’s crucial to remember that technology and business-model innovation go hand in hand. The real potential of cloud computing is in business-model innovation. To drive business impact, IT leaders should start with the business and ask where they can take the customer.

Page 15: CIO’s guide to open application development€¦ · Application programming interfaces (APIs) let companies tap best-of-breed cloud services, promoting innovation by shifting focus

CIO’s guide to open application development | 13

Google Maps is one of the industry’s most visible applications – and one of the most widely used sets of APIs in the world. Mapping-related use cases span industries, serving as the geographical engine behind everything from modern ride-sharing services to real estate apps to today’s most popular mobile games.

Behind the application facade, Google Maps offers a collection of APIs:

• Places API, connecting users to information about millions of places

• Embeddable maps that work natively in web, iOS, and Android platforms

• Street View Image API serving real-world imagery and panoramas

• Geocoding API that converts between addresses and geographic coordinates

• Distance Matrix API that shows travel time and distance between

Along with several other APIs – including a service that can tell you the elevation of any point in the world – it’s easy to see the wide-ranging applicability of these APIs. The impact of each of these APIs is amplified when applied to use cases the original team may never have imagined. As an ecosystem, developers and companies on both sides of these APIs win. Teams are able to amplify their productivity and have access to the best services available, just an API call away.

Page 16: CIO’s guide to open application development€¦ · Application programming interfaces (APIs) let companies tap best-of-breed cloud services, promoting innovation by shifting focus

CIO’s guide to open application development | 14CIO’s guide to open application development | 14

Chapter 2 recap

To create value, IT needs to move away from the static mindset of internal applications and harness the potential of platforms. Platforms allow external developers and organizations to build new value on top of existing assets.

APIs can serve as public-facing contracts that define how the outside world derives value from an organization’s services; modern API management creates a mediation layer to help ensure APIs are centrally managed, auditable, and more secure.

APIs can be powerful business drivers, especially in established industries where digital opportunities may be overlooked. Walgreens is a 115-year-old company using modern API management to drive engagement by connecting digital and physical experiences for its customers.

Page 17: CIO’s guide to open application development€¦ · Application programming interfaces (APIs) let companies tap best-of-breed cloud services, promoting innovation by shifting focus

CIO’s guide to open application development | 15

CHAPTER 3

Applications as lightweight, portable devices

Page 18: CIO’s guide to open application development€¦ · Application programming interfaces (APIs) let companies tap best-of-breed cloud services, promoting innovation by shifting focus

CIO’s guide to open application development | 16

APIs hold powerful potential for businesses. But to keep pace with the digital ecosystem, IT teams need ways to build and deploy applications tailored to – rather than working against – the connected, multi-platform nature of the cloud. Forklifting old methods onto newer platforms is unlikely to yield gains in development velocity or agility.

Containers allow teams to build and deploy applications as lightweight, portable services. They house application code and the dependencies needed to run it, providing fully self-contained modules that developers can use without fear of incompatibility or conflict. Designed to run anywhere and accommodate the wide diversity of enterprise applications, containers are an excellent match for today’s open, interconnected systems.

Contrast this modern approach with traditional VMs. At its core, hardware virtualization was never designed to address complexity at the higher levels of application development. Traditionally, software was delivered as one large unit of complex, entangled dependencies. Such monolithic applications are difficult to change and become increasingly difficult to reason about as projects grow. As a result, developer velocity slows, defects increase, and technical debt mounts.23 To realize the cloud’s benefits, IT teams must take a different approach.

Containers offer several important benefits to IT teams:

➊ Productivity from reduced complexity Because application code and dependencies are encapsulated into containers, teams needn’t worry about conflicts or inconsistent environments when deploying code – whether the deployment target is a private data center or a public cloud provider.

➋ Agility to respond to change Containers’ fine-grained footprint is a perfect fit for continuous development, integration, and deployment of software. Teams can ship smaller bits of new functionality to users more often.

➌ Openness and preventing lock-in Companies can avoid technical and vendor lock-in by building software using widely adopted open-source tools. The coupling between applications and underlying infrastructure should be as tenuous as possible – allowing for seamless migration on and off of platforms. Container management tools like Kubernetes have portability and interoperability as core design goals

➍ Efficiency VMs must boot up entire operating systems in order to achieve isolation among applications. Containers start in a fraction of the time and consume far less CPU and memory resources.24 A single container measures in megabytes, while a VM must house a full copy of the operating system and measures in gigabytes, severely limiting portability and how quickly developers can make changes to applications.

Page 19: CIO’s guide to open application development€¦ · Application programming interfaces (APIs) let companies tap best-of-breed cloud services, promoting innovation by shifting focus

CIO’s guide to open application development | 17

How organizations remain in control

Technology and vendor lock-in can force organizations down complex, inflexible paths. Take, for example, the precursor to modern-day SaaS applications: packaged software products offered by vendors, sometimes called COTS (commercial off-the-shelf) software.25 Because no pre-packaged software could meet all of an organization’s custom needs, teams wrote custom code in-house that integrated deeply with the vendor’s software. Projects born of this approach quickly grew unwieldy, difficult to maintain, and in some cases impossible for the vendor to support. Customizations would break when vendors made product updates, and moving to a new vendor or platform grew more difficult as developers added code.

In today’s connected environments, the threat of lock-in can still loom. Custom applications written in-house depend on a broad ecosystem of cloud services to accomplish tasks.

Without explicit steps to separate applications from infrastructure, IT leaders can:

• Risk tying their technical (and their contractual) destiny to a single vendor;

• Sacrifice flexibility if any part of an application needs to migrate to another platform; and

• Face escalating complexity by requiring teams to employ different tools for each environment in which they deploy software.26

Organizations that adopt open strategies for their applications have a rare opportunity to get their foundational architecture right – from the beginning.

Page 20: CIO’s guide to open application development€¦ · Application programming interfaces (APIs) let companies tap best-of-breed cloud services, promoting innovation by shifting focus

CIO’s guide to open application development | 18

A new approach to building and deploying software

Modern container platforms take a different approach from the closed enterprise systems of the past (see “Rise of Kubernetes,” right). Rather than require developers and ops teams to work at the level of individual machines, they allow teams to work at higher levels of abstraction, independent of underlying infrastructure. Developers can break apart and modularize software, encapsulating bits of functionality into containers.27

Then, a container management platform like Kubernetes can automate the deployment, scaling, and management of this software onto any platform. Containerized applications deployed this way exhibit resiliency, able to heal automatically even if an underlying machine goes down. In fact, unreliability is assumed: when a machine fails, Kubernetes will simply assign a different, healthy node. The result for end users is a seamless, uninterrupted experience.

Modern container management platforms treat the data center as a cohesive “cloud” of machines on which to deploy applications. Using these platforms, teams develop and deploy applications using a consistent set of tools which remain consistent whether the deployment target is a private data center or a public cloud provider. Organizations can begin application development completely on-prem, then migrate their applications to any cloud provider based on business need.

Rise of Kubernetes

Kubernetes is an open-source platform for automating deployment, scaling, and operations of application containers across clusters of hosts. It is an open, portable platform on top of which developers can build applications. Google launched the Kubernetes project in 2014, and shortly after handed control of the project to the Cloud Native Computing Foundation, run by The Linux Foundation. Kubernetes builds upon more than 15 years of experience at Google running container-based applications in production. These container-based applications form the basis of popular Google applications, including Search, Maps, YouTube, and more.

With Kubernetes, developer and ops teams have a solid foundation to:

• Deploy applications quickly and predictably

• Scale applications seamlessly

• Roll out new features with no disruption to users

• Limit hardware usage to only the required resources

The goal of Kubernetes is to foster an open ecosystem of components and tools that relieve the burden of managing distributed applications – whether on a public cloud provider or locally in a private data center.

Page 21: CIO’s guide to open application development€¦ · Application programming interfaces (APIs) let companies tap best-of-breed cloud services, promoting innovation by shifting focus

CIO’s guide to open application development | 19

Cloud native computing foundation

The CNCF’s stated mission is “to create and drive the adoption of a new computing paradigm that is optimized for modern distributed systems environments capable of scaling to tens of thousands of self-healing, multi-tenant nodes.”

As one of the largest members of The Linux Foundation, the CNCF is an independent entity governed by cross-company membership. It was created to help companies participate and thrive in today’s digital environments by promoting the cloud-native style of application development.

According to the CNCF’s site, cloud-native computing uses open-source software and is:

• Container packaged Running applications and processes in software containers as an isolated unit of application deployment, and as a mechanism to achieve high levels of resource isolation. Improves overall developer experience, fosters code and component reuse, and simplifies operations for cloud-native applications.

• Dynamically managed Actively scheduled and actively managed by a central orchestrating process. Radically improves machine efficiency and resource utilization while reducing the cost associated with maintenance and operations.

• Micro-services oriented Loosely coupled with dependencies explicitly described (e.g., through service endpoints). Significantly increases the overall agility and maintainability of applications. The foundation will shape the evolution of the technology to advance the state of the art for application management, and to make the technology ubiquitous and easily available through reliable interfaces.

Page 22: CIO’s guide to open application development€¦ · Application programming interfaces (APIs) let companies tap best-of-breed cloud services, promoting innovation by shifting focus

CIO’s guide to open application development | 20

Philips Lighting, a global leader in lighting based in the Netherlands, wanted to transform the way people use lighting in their homes. The company aimed to connect light bulbs to the Internet, tie them to usage data, and make them interactive to offer benefits beyond basic lighting – for creating amazing experiences, home security, or to support well-being, like providing the right light for daily activities.

To do that, Philips Lighting launched Philips Hue connected lighting. “With Philips Hue, we don’t just sell light bulbs – we sell a way for lighting to change your home and life,” says George Yianni, head of technologyconnected lighting for the home at Philips Lighting and inventor of Hue.

Google Container Engine (powered by Kubernetes) and Google Compute Engine handle 200 million transactions every

day, including 18 million remote lighting commands. “Google Container Engine provides the infrastructure that allows our lighting bridge to connect to any number of apps and devices,” Yianni says. “It delivers a high-performing, flexible infrastructure that lets us independently scale components for maximum efficiency.”

Philips Hue is also using the Apigee API management platform to help manage their Container Engine and Kubernetes APIs.

“With the help of Google Cloud Platform, we are changing the fundamental business model of selling lighting to consumers. We’re providing an entirely new set of value-based services that transform the home, rather than just replacing bulbs that burn out,” Yianni says.

CASE STUDY

Philips Hue: Lighting the way to home transformation

“With the help of Google Cloud Platform, we are changing the fundamental business model of selling lighting to consumers. We’re providing an entirely new set of value-based services that transform the home, rather than just replacing bulbs that burn out.”

Read more ›

Page 23: CIO’s guide to open application development€¦ · Application programming interfaces (APIs) let companies tap best-of-breed cloud services, promoting innovation by shifting focus

CIO’s guide to open application development | 21

Chapter 3 recap

To benefit from digital ecosystems, IT teams must approach application development in ways that take advantage of the cloud’s connected, multi-platform nature – rather than trying to forklift old models and practices into the cloud.

Containers house application code and the dependencies needed to run it, providing self-contained modules developers can use without fear of incompatibility or conflict. Developers can build applications as lightweight, portable services that are inherently smaller in scope and easier to change, and can run anywhere.

In today’s connected environments, the threat of lock-in can still loom. Organizations must take steps to explicitly separate applications from infrastructure.

Open-source container management platforms like Kubernetes automate the deployment, scaling, and management of applications. They create a layer of abstraction on top of underlying infrastructure, allowing IT to deploy and run applications consistently in any environment.

Page 24: CIO’s guide to open application development€¦ · Application programming interfaces (APIs) let companies tap best-of-breed cloud services, promoting innovation by shifting focus

CIO’s guide to open application development | 22

Conclusion

Today, companies have the opportunity to deliver new value to their customers – faster and more efficiently than previously possible. For the first time, three driving factors are coming together in ways that are accessible to every business:

➊ Cloud technology provides a foundation for faster, cheaper, more efficient computing.

➋ APIs allow companies to spend less time reinventing standard functionality, and more time innovating. A business’s valuable data and processes can in turn be surfaced for others to consume, creating new business opportunities.

➌ Containers usher in software practices based on openness, helping to accelerate development speed and free organizations from vendor lock-in. Container management platforms like Kubernetes provide companies a consistent foundation to build and deploy applications – locally or in the private and public clouds.

Since the very early days, Google has pushed what’s possible in distributed computing to serve our users. We’ve delivered applications to users in a way that has led to consistent performance and resilience. Having encountered and solved the hard technical issues early, Google Cloud is a comprehensive platform on top of which today’s companies can base their critical digital initiatives.

We look forward to collaborating with you – engineer to engineer – as you transform what’s possible for your customers in today’s digital environments. Contact us for a consultation to learn how Google Cloud’s experience in building open, connected systems can help your company.

Learn more about what Google Cloud can do for your business.

› Storage & databases › Big data solutions › Machine learning & AI

Page 25: CIO’s guide to open application development€¦ · Application programming interfaces (APIs) let companies tap best-of-breed cloud services, promoting innovation by shifting focus

CIO’s guide to open application development | 23

Appendix

1. For the survey question “What were your top reasons to adopt cloud services?”

global enterprise software decision-maker respondents cited “ease of scalability”

(33%) and “improved IT infrastructure manageability and flexibility” (31%) as top

reasons for adopting public cloud services. See Forrester Data, Global Business

Technographics® Software Survey, 2016.

2. In February 2017, Gartner projected the worldwide public cloud services market

to grow to a total US$383.4 billion. See Goasduff, Lawrence and Pettey, Christy,

“Gartner Says Worldwide Public Cloud Services Market to Grow 18 Percent in

2017,” Gartner, 22 February 2017 (link).

3. For the survey question “What challenges have you faced/expect to face

deploying/using multiple cloud platforms/environments?” 22% of global enterprise

respondents cite “migration of apps and data between clouds” as challenges

faced in hybrid cloud use. See Forrester Data, Global Business Technographics®

Infrastructure Survey, 2016.

4. “Build with Google Cloud,” Google, 2017 (link).

5. “x86,” Wikipedia (link).

6. The use of containers to “wrap” or containerize existing legacy applications comes

with a few advantages, including the ability to reduce complexity by leveraging

container abstractions. The containers remove the dependencies on the underlying

infrastructure services, which reduces the complexity of dealing with those

platforms. This means that we can abstract the access to resources, such as

storage, from the legacy application itself. This makes the application portable,

but also speeds the refactoring of the legacy applications, since the containers

handle much of the access to native cloud resources. See Linthicum, David, “From

Containers to Microservices: Modernizing Legacy Applications,” TechBeacon (link).

7. From Gmail to YouTube to Search, everything at Google runs in containers.

Containerization allows our development teams to move fast, deploy software

efficiently, and operate at an unprecedented scale. Each week, we start over two

billion containers. We’ve learned a lot about running containerized workloads

in production over the past decade, and we’ve shared this knowledge with the

community along the way: from the early days of contributing cgroups to the Linux

kernel, to taking designs from our internal tools and open-sourcing them as the

Kubernetes project. We’ve packaged this expertise into Google Cloud Platform so

that developers and businesses of any size can easily tap the latest in container

innovation. See “Containers at Google,” Google Cloud Platform, 2017 (link).

8. Google’s data-center networks deliver unprecedented speed at the scale of entire

buildings. They are built for modularity, constantly upgraded to meet the insatiable

bandwidth demands of the latest generation of our servers. They are managed

for availability, meeting the uptime requirements of some of the most demanding

Internet services and customers. Most importantly, our data-center networks

are shared infrastructure. This means that the same networks that power all of

Google’s internal infrastructure and services also power Google Cloud Platform. We

are most excited about opening this capability up to developers across the world

so that the next great Internet service or platform can leverage world-class network

infrastructure without having to invent it. See Vahdat, Amin, “A Look Inside Google’s

Data Center Networks,” Google Cloud Platform Blog, 17 June 2015 (link).

Page 26: CIO’s guide to open application development€¦ · Application programming interfaces (APIs) let companies tap best-of-breed cloud services, promoting innovation by shifting focus

CIO’s guide to open application development | 24

9. For more information on Kubernetes, Google’s container management platform,

see the Cloud Native Computing Foundation (“CNCF”) Charter, The Linux

Foundation, 28 March 2017 (link).

10. Google’s Borg system is a cluster manager that runs hundreds of thousands of

jobs, from many thousands of different applications, across a number of clusters,

each with up to tens of thousands of machines. It achieves high utilization by

combining admission control, efficient task-packing, overcommitment, and

machine sharing with process-level performance isolation. It supports high-

availability applications with runtime features that minimize fault-recovery time,

and scheduling policies that reduce the probability of correlated failures. Borg

simplifies life for its users by offering a declarative job specification language,

name service integration, real-time job monitoring, and tools to analyze and

simulate system behavior. See Verma, Abhishek et al, “Large-Scale Cluster

Management at Google with Borg,” Google, 2015 (link).

11. For more information from this publication, see Cerf, Vinton G. and Kahn, Robert

E., “A Protocol for Packet Network Intercommunication,” IEEE Transactions on

Communications, 5 May 1974 (link).

12. For a definition of the Web Services Architecture as well as the functional

components and the relationships of these components, see the W3C Working

Group Note. This is a public Working Group Note produced by the W3C Web

Services Architecture Group, which is part of the W3C Web Services Activity. See

“W3C Working Group Note,” W3C Web Services Architecture Working Group, 11

February 2004 (link).

13. Google’s research shows that if search results are slowed by even a fraction of a

second, people search less (seriously: a 400-millisecond delay leads to a 0.44%

drop in search volume). And this impatience isn’t just limited to search: four

out of five Internet users will click away if a video stalls while loading. But even

though the human attention span has become remarkably fickle, much of the

Web remains slow. The average web page takes 4.9 seconds to load—in a world

where fractions of a second count, that’s an eternity. See Hoezle, Urs, “The Google

Gospel of Speed,” think with Google, Google, January 2012 (link).

14. There is a big, important change happening in digital product design. For a

long time, there has been a clear split between business software (often called

Enterprise or B2B), and consumer software (B2C, or simply “products”). That split

is becoming increasingly irrelevant. See Kolko, Jon, “Make Enterprise Software

People Actually Love,” Harvard Business Review, 12 February 2015 (link).

15. Platform strategists call the cycle in which an ecosystem of developers attracts

more end users—which in turn attracts more developers (and so on)—a “network

effect.” Network effects often generate hockey-stickshaped growth curves, like

those of Windows and iOS, respectively. See Kirschner, Bryan, “Survival of the

Fittest: Platforms Beat Products,” CIO, IDG, 8 October 2015 (link).

16. The latest buzz is around web APIs, but APIs are neither a new concept nor

unique to modern distributed computing. APIs have been used with procedural

languages since well before personal computing and were typically delivered

as libraries (first used in the 1960s). The separation between the user and

implementation of function was achieved, but libraries still created strong

dependencies between the API consumer and the API producer. See Frye, Alan, “A

Bit of API History,” Benefitfocus, 15 April 2015 (link).

17. For more information on using SOA to enhance application portfolios, see

Altman, Ross and Knoernschild, Kirk, “SOA and Application Architecture Key

Initiative Overview,” Gartner, 12 June 2013 (link).

Page 27: CIO’s guide to open application development€¦ · Application programming interfaces (APIs) let companies tap best-of-breed cloud services, promoting innovation by shifting focus

CIO’s guide to open application development | 25

18. According to Forrester Research, integrating capabilities and customer data into

a flexible platform that allows business stakeholders and developers to assemble

new experiences easily is precisely the unique value that the CIO’s organization

should deliver. For more information on the business value of digital ecosystems

and the technologies that comprise them, see Forrester, “Maximize Business

Value with Fast, Connected Technology,” 15 July 2017 (link).

19. “APIs,” Walgreens (link).

20. Schweinfurth, Drew, “WebMD: New Platform Balance Rewards and Prescription

API Integration,” Walgreens, adschwein’s blog, 27 April 2015 (link). Schweinfurth,

Drew, “Introducing Glow: Now with Walgreens Rx Refill!” Walgreens, adschwein’s

blog, 28 April 2015 (link).

21. “Walgreens, API Management, and the Evangelist’s Tool Belt,” Apigee, 22 February

2017 (link).

22. Digital transformation initiatives are unfolding differently across verticals and

organizations based on specific business needs. For more information for

CIOs and CTOs on how enterprises from across different verticals are using the

product organization as the catalyst for their digital transformations and how that

decision is improving their relationships with customers, see Forrester’s “Vertical

Needs Set the Course for Digital Product Transformations and Strategies,” 7 June

2017 (link).

23. For more information on technical debt as a motivation for refactoring applications,

see Ward Cunningham, “Debt Metaphor,” YouTube video, 4:44, 2009 (link).

24. In a study measuring the average boot time for both Docker and VM, Docker’s

average boot time was 1.5 seconds, while that of VM was 11.48 seconds. See

Seo, Kyoung-Taek et al, “Performance Comparison Analysis of Linux Container

and Virtual Machine for Building Cloud,” Advanced Science and Technology

Letters 66, 2014 (link). Also, Owen Rogers and Jay Lyman of 451 Research report

that “451 Research believes containers are better placed, at least theoretically,

to achieve lower TCO (total cost of ownership) than traditional hardware

virtualization. In fact, we have found that double-digit resource savings are

achievable even with relatively simple implementations.” See Butler, Brandon,

“Which Is Cheaper: Containers or Virtual Machines?” NetworkWorld, IDG, 29

September 2016 (link).

25. Every organization has a perceived software buy-versus-build policy. But one

policy cannot fit all situations, and more nuanced options are available, such

as borrow (open-source software) or rent (Software-as-a-Service). For more

information on guidelines that organizations can use on sourcing software so

that they can make form-factor decisions that match their architecture principles,

requirements, and constraints, see Richard and Thomas, Anne, “Decision Point for

the Build vs. Buy Software Sourcing Decision,” Gartner, 3 July 2012 (link).

26. For more information on ways to prevent or minimize the impacts of vendor lock-

in without refusing to use the IaaS provider’s high-value services, see Kavis, Mike,

“Don’t Let Vendor Lock-In Fears Devalue Your Cloud Initiative,” Forbes, 21 January

2016 (link).

27. For microservice-based applications, developers can choose from a variety

of generalized and specialized container and cloud platform services to best

implement each microservice. For more information on the business benefits of

building a service-oriented architecture using containers and cloud platforms, see

Forrester’s “Designing Microservice Apps for Containers and Cloud Platforms,” 27

July 2017 (link).

Page 28: CIO’s guide to open application development€¦ · Application programming interfaces (APIs) let companies tap best-of-breed cloud services, promoting innovation by shifting focus