2017 guide to application modernization -...

43
E-guide 2017 Guide to Application Modernization Redesign or restructure? An expert compares methods and tools

Upload: others

Post on 20-May-2020

3 views

Category:

Documents


0 download

TRANSCRIPT

Page 1: 2017 Guide to Application Modernization - TechTargetmedia.techtarget.com/digitalguide/images/Misc/EA... · 2017-03-24 · and services for various platforms. Applications can treat

E-guide

2017 Guide to Application Modernization Redesign or restructure? An expert compares methods and tools

Page 2: 2017 Guide to Application Modernization - TechTargetmedia.techtarget.com/digitalguide/images/Misc/EA... · 2017-03-24 · and services for various platforms. Applications can treat

Page 1 of 42

In this e-guide

What's the best method of application modernization for your business? pg. 2

App modernization starts with knowing how to evaluate PaaS providers pg. 10

When assessing container management software, think interoperability pg. 17

To choose the right PaaS vendor, know thyself pg. 24

Evaluate and settle on the container software that's best for business pg. 32

Further reading

E-guide

In this e-guide: Cloud services, massive data collection and aggregation and big data analysis are pillars of today's modernized app. And businesses don't have to search hard for the benefits to justify a modernization initiative: In addition to the typical reasons (performance, features, usability, and reliability), moving applications to the cloud also improves application scalability, deployment flexibility, responsiveness for today's mobile users, and efficient use of IT resources.

But once your business determines the need for application modernization, you need to figure out which method fits best, whether it's restructuring with PaaS, redesigning with APIs, or replacing. As Kurt Marko explains, the right approach for you will depend on your existing application architecture.

Page 3: 2017 Guide to Application Modernization - TechTargetmedia.techtarget.com/digitalguide/images/Misc/EA... · 2017-03-24 · and services for various platforms. Applications can treat

Page 2 of 42

In this e-guide

What's the best method of application modernization for your business? pg. 2

App modernization starts with knowing how to evaluate PaaS providers pg. 10

When assessing container management software, think interoperability pg. 17

To choose the right PaaS vendor, know thyself pg. 24

Evaluate and settle on the container software that's best for business pg. 32

Further reading

E-guide

What's the best method of application modernization for your business?

Kurt Marko, Engineer and Technology Analyst, Marko Insights

In IT, each generational transition has called for modernizing and redesigning applications, business processes and IT infrastructure to exploit new capabilities and efficiencies. This occurred when PCs and LANs usurped the mainframe and drove client-server computing, eliminating expensive hardware and the issue of data scarcity. Innovation happened again when the internet and WANs disrupted client-server computing, and then subsequently tech modernized again when cloud computing gained popularity.

Consequently, the need for application modernization is a regular, if not entirely predictable occurrence in IT. App modernization isn't carried out as a fashion statement, status symbol or to keep up with nimble tech startups, but for cold, hard business reasons. Regardless of the era, the benefits of a periodic app overhaul include better performance, more features, greater usability and higher reliability. But while the need to modernize is obvious, it's unique to each business. And choosing the modernization approach to go with can be difficult because there are several options.

All the business reasons for application modernization are addressed in the current cycle of modernization. However, moving to the cloud, whether public or private, also provides much greater application scalability,

Page 4: 2017 Guide to Application Modernization - TechTargetmedia.techtarget.com/digitalguide/images/Misc/EA... · 2017-03-24 · and services for various platforms. Applications can treat

Page 3 of 42

In this e-guide

What's the best method of application modernization for your business? pg. 2

App modernization starts with knowing how to evaluate PaaS providers pg. 10

When assessing container management software, think interoperability pg. 17

To choose the right PaaS vendor, know thyself pg. 24

Evaluate and settle on the container software that's best for business pg. 32

Further reading

E-guide

deployment flexibility, responsiveness for today's mobile users and efficient use of IT resources.

The third platform: foundation of modern apps The third platform is one model for understanding modern application design. It derives its name as the successor to prior mainframe and client-server frameworks, and its impetus is the nexus of four primary technologies: mobile devices, social networks, cloud services and big data analytics. Together, these change nearly everything about applications: their features, UIs, internal instrumentation, how they are designed, developed and deployed, even the application lifecycle and update frequency.

The explosion of mobile devices and web users, along with the speed of information flow and memes that social networks can produce means public-facing apps must handle highly unpredictable workloads, demand spikes of unprecedented scale and users from all geographies accessing the web via public networks. Mobile and social technology have also changed the way that users interact with apps along with their expectations about usability, convenience and performance. All these factors affect app design and the related need for modernization.

The explosion of data collection, fueled by cheap storage and networking, enables aggregating so-called data lakes of immense capacity that require new database and software systems designed for the task. Smart devices (or the internet of things) and apps themselves contribute to the data deluge by logging data from remote sensors, app usage, performance telemetry

Page 5: 2017 Guide to Application Modernization - TechTargetmedia.techtarget.com/digitalguide/images/Misc/EA... · 2017-03-24 · and services for various platforms. Applications can treat

Page 4 of 42

In this e-guide

What's the best method of application modernization for your business? pg. 2

App modernization starts with knowing how to evaluate PaaS providers pg. 10

When assessing container management software, think interoperability pg. 17

To choose the right PaaS vendor, know thyself pg. 24

Evaluate and settle on the container software that's best for business pg. 32

Further reading

E-guide

and crash reports. All are useful to organizations seeking competitive advantage through analysis of previously unavailable data.

Big data analytics, machine learning and cognitive systems that can all make sense of massive, complex data sets that are seemingly meaningless have become powerful tools for improving business decisions. However, the scale and specialization of big data and machine learning infrastructure and software mean that it is best consumed as a service, not built into a monolithic app. While not limited to big data, the decomposition of apps into a mashup of independent microservices that can be reused, reconnected, widely distributed and simultaneously executed is another core tenet of modern, third-platform apps.

Although mobile and social interfaces have revolutionized app front ends, I focus on the infrastructure side where cloud services, massive data collection and aggregation and big data analysis are pillars of the modernized app.

Cloud benefits to enterprise modernization Cloud services are central to app modernization; however, we use them in the broader sense as defined by the NIST.

The NIST definition lists five essential characteristics of cloud computing: on-demand self-service, broad network access, resource pooling, rapid elasticity or expansion, and measured service. It also lists three "service models" (software, platform and infrastructure), and four "deployment

Page 6: 2017 Guide to Application Modernization - TechTargetmedia.techtarget.com/digitalguide/images/Misc/EA... · 2017-03-24 · and services for various platforms. Applications can treat

Page 5 of 42

In this e-guide

What's the best method of application modernization for your business? pg. 2

App modernization starts with knowing how to evaluate PaaS providers pg. 10

When assessing container management software, think interoperability pg. 17

To choose the right PaaS vendor, know thyself pg. 24

Evaluate and settle on the container software that's best for business pg. 32

Further reading

E-guide

models" (private, community, public and hybrid) that together categorize ways to deliver cloud services.

There are various deployment options that can include shared, public services such as AWS, private infrastructure based on something like VMware vCloud or a hybrid design using a mix of public and private infrastructure such as Microsoft Azure (public) with Azure Stack (private).

Although public clouds often get a toehold in the enterprise as a quick and dirty way to deploy software development and test systems, when incorporated as the foundation of modern applications, cloud computing provides many benefits, including:

• Rapid, virtually unlimited scalability • Higher utilization and resource efficiency via shared services • Growing portfolio of built-in, higher-level services for application

integration, data management and analysis, infrastructure automation and security

• Enhanced staff efficiency via APIs and scriptable CLIs for service automation and through a consolidated management portal for service administration, monitoring and reporting

• Fine-grained data about infrastructure use that can feed consumption-based billing by user or product

• Lower IT overhead by offloading hardware and low-level operations management

Together, these benefits percolate to the bottom line through lower costs for IT staff and infrastructure to run a given workload. Cloud services also

Page 7: 2017 Guide to Application Modernization - TechTargetmedia.techtarget.com/digitalguide/images/Misc/EA... · 2017-03-24 · and services for various platforms. Applications can treat

Page 6 of 42

In this e-guide

What's the best method of application modernization for your business? pg. 2

App modernization starts with knowing how to evaluate PaaS providers pg. 10

When assessing container management software, think interoperability pg. 17

To choose the right PaaS vendor, know thyself pg. 24

Evaluate and settle on the container software that's best for business pg. 32

Further reading

E-guide

provide greater flexibility and agility in application provisioning, whether for development, testing or production deployment. By using a consistent set of services and APIs, the cloud inserts a portable abstraction layer between applications and infrastructure that allows apps to be easily moved to new locations, cloned for testing or non-disruptively updated. Such ease of app modification, testing and deployment also enable new processes such as Agile development, DevOps and continuous integration and delivery.

Core application modernization strategy: Going cloud Microsoft's Azure execs are fond of characterizing the cloud as a model, not a place. This is an important distinction to remember throughout this series. The cloud is a way of presenting, deploying and consuming information and application services, not just some computing capability one rents over the internet. The initial cloud experience at most organizations will be on a public service such as AWS, Azure or Google Cloud Platform, but there are other options for bringing the cloud infrastructure service model in-house. So the core architecture won't change when moving between platforms, although modernized apps may need some redesign to use different APIs and services for various platforms.

Applications can treat clouds like a traditional hypervisor with the core application running on a virtual machine (VM) such as AWS EC2. An increasingly popular technique involves deconstructing the app into a set of microservices that run in separate software containers. Containers, also known as OS-level virtualization, allow multiple applications to run in isolated

Page 8: 2017 Guide to Application Modernization - TechTargetmedia.techtarget.com/digitalguide/images/Misc/EA... · 2017-03-24 · and services for various platforms. Applications can treat

Page 7 of 42

In this e-guide

What's the best method of application modernization for your business? pg. 2

App modernization starts with knowing how to evaluate PaaS providers pg. 10

When assessing container management software, think interoperability pg. 17

To choose the right PaaS vendor, know thyself pg. 24

Evaluate and settle on the container software that's best for business pg. 32

Further reading

E-guide

environments on the same OS, which increases resource efficiency, reduces load time and simplifies deployment and management of distributed applications that are spread across multiple systems and locations. Because containers can be rapidly instantiated and scaled, they are a perfect fit for a modularized application design composed of microservices. Managing clusters of containers distributed across multiple systems is the job of a container orchestrator such as Kubernetes or Docker Swarm.

Moving to the cloud Moving apps to the cloud can happen in a couple of ways. One way is to migrate existing virtualized apps to use cloud services. The other is building cloud-native, service-oriented apps that essentially replace the features and services available through a server OS with cloud services accessed via APIs. The latter is done using several techniques that I explore in depth throughout this series, but I'll share the highlights below.

Rearchitecting to be cloud-friendly Enterprises typically run most applications on a VM using virtualization management systems like VMware vCenter or Microsoft System Center to handle configuration, provisioning and monitoring of VMs and associated storage. Most virtualized apps can move to the cloud by running their VM image on cloud computing instances, then migrating their associated storage to object, file or block storage services. From this base level of

Page 9: 2017 Guide to Application Modernization - TechTargetmedia.techtarget.com/digitalguide/images/Misc/EA... · 2017-03-24 · and services for various platforms. Applications can treat

Page 8 of 42

In this e-guide

What's the best method of application modernization for your business? pg. 2

App modernization starts with knowing how to evaluate PaaS providers pg. 10

When assessing container management software, think interoperability pg. 17

To choose the right PaaS vendor, know thyself pg. 24

Evaluate and settle on the container software that's best for business pg. 32

Further reading

E-guide

cloud operation, apps can be transformed into something more cloud-native by opportunistically using higher-level infrastructure as a service databases, load balancers, in-memory caches, search and load balancers to replace software running within the VM.

Redesigning cloud-native apps Some organizations already have apps born in the cloud, but those apps might have been built around specific cloud services that make them difficult to migrate to other environments. For these, app modernization isn't a reconstruction project but more like minor remodeling that eliminates the use of proprietary features, inserts service abstraction layers and develops functional APIs that can plug into multiple cloud implementations.

Full stack redesign using cloud platform services Virtualization abstracts application interactions with the OS from the underlying hardware. For example, a MySQL database running on CoreOS can be deployed as a machine image on an x86 system running VMware vSphere, a Power8 server running Kernel-based VM or an AWS EC2 instance running Xen. Platform as a service (PaaS) extends the concept by abstracting application services such as databases, identity management systems, a message queue, load balancing and auto-scaling as consumable services. PaaS instances typically run in a container and include a development runtime environment like Java, Python or Go. Like all cloud

Page 10: 2017 Guide to Application Modernization - TechTargetmedia.techtarget.com/digitalguide/images/Misc/EA... · 2017-03-24 · and services for various platforms. Applications can treat

Page 9 of 42

In this e-guide

What's the best method of application modernization for your business? pg. 2

App modernization starts with knowing how to evaluate PaaS providers pg. 10

When assessing container management software, think interoperability pg. 17

To choose the right PaaS vendor, know thyself pg. 24

Evaluate and settle on the container software that's best for business pg. 32

Further reading

E-guide

services, PaaS technology automatically updates code and features without user intervention or management.

Using PaaS can significantly reduce the complexity of building cloud-native apps, thus speeding up the development cycle. PaaS is particularly useful when building cloud back ends for mobile or web apps by allowing developers to focus on the user experience, features and interface instead of the server-side plumbing. Many software as a service applications like Salesforce expose features through a PaaS to enable customization or to extend their packaged software. Using PaaS this way can help non-developers such as business analysts or end users create cloud-native custom apps that automate business processes or fill specific niches.

Technology improves, languages emerge, new provisioning and deployment methods arise and users adopt new clients with vastly different workload characteristics. Application modernization is the rubric for reacting to the changing environment and exploiting new technologies to provide innovative new features and significantly better performance at a lower capacity-normalized cost. The present generation of application modernization offers many approaches to meet those goals, but as we've seen, a common denominator exploits the availability of infrastructure and platform functions encapsulated as cloud services. One's preferred modernization strategy is a function of the existing conditions for both IT infrastructure and legacy applications, an organization's tolerance for risk and enthusiasm for fundamentally new application designs.

Next article

Page 11: 2017 Guide to Application Modernization - TechTargetmedia.techtarget.com/digitalguide/images/Misc/EA... · 2017-03-24 · and services for various platforms. Applications can treat

Page 10 of 42

In this e-guide

What's the best method of application modernization for your business? pg. 2

App modernization starts with knowing how to evaluate PaaS providers pg. 10

When assessing container management software, think interoperability pg. 17

To choose the right PaaS vendor, know thyself pg. 24

Evaluate and settle on the container software that's best for business pg. 32

Further reading

E-guide

App modernization starts with knowing how to evaluate PaaS providers

Kurt Marko, Engineer and Technology Analyst, Marko Insights

Platform as a service occupies the vast gray area between raw infrastructure, things like virtual machines, object storage or various flavors of databases, and packaged software delivered as a subscription service. This ambiguity largely explains why there are so many PaaS variants. With a number of options, it's difficult for enterprises to know which kind of PaaS technology they should procure when trying to modernize their legacy applications.

When evaluating platform as a service (PaaS) providers for legacy application modernization, the most important criteria to consider are deployment models, product features, language and integrated development environment (IDE) support, ease of integration with existing on-premises applications, and the security features of both the development platform and the resulting applications.

PaaS overview and deployment models Due to the ambiguous definition of PaaS, there's much disagreement about what true PaaS is. Some PaaS stacks take a bottom-up approach, building on infrastructure as a service (IaaS) technology with developer-oriented

Page 12: 2017 Guide to Application Modernization - TechTargetmedia.techtarget.com/digitalguide/images/Misc/EA... · 2017-03-24 · and services for various platforms. Applications can treat

Page 11 of 42

In this e-guide

What's the best method of application modernization for your business? pg. 2

App modernization starts with knowing how to evaluate PaaS providers pg. 10

When assessing container management software, think interoperability pg. 17

To choose the right PaaS vendor, know thyself pg. 24

Evaluate and settle on the container software that's best for business pg. 32

Further reading

E-guide

services; while some are top-down, extending software as a service (SaaS) products with programmability and exposed APIs. One thing all PaaS products have in common, though, is that they are made for application developers, not IT administrators or application users. They provide developers with the tools and flexibility they need to build applications successfully. Indeed, many offerings from PaaS providers resemble cloud-era versions of client-server IDEs.

Private versus public infrastructure The IaaS versus SaaS orientation isn't the only way to categorize and understand PaaS products. They can also differ by means of deployment. Some are distributed as traditional software products, like IDEs and software development kits (SDKs). These are installed locally and run either on an internal cloud infrastructure, like OpenStack, or as a standalone commercial product, like Apprenda, Mendix or Stackato.

The more familiar option entails using PaaS as an online, pay as you go service -- like a SaaS for developers. Here, the PaaS provider operates the infrastructure and platform stack, stores data and runs jobs on shared infrastructure. Since major PaaS providers like Amazon Web Services (AWS), Microsoft Azure and Google also operate IaaS, they can provide tight integration between software development services and applications built on their PaaS stacks and lower-level infrastructure, like storage, databases, identity management systems and cloud service management portals. Although tightly coupling the application runtime environment with a particular IaaS can simplify the development and deployment of complex,

Page 13: 2017 Guide to Application Modernization - TechTargetmedia.techtarget.com/digitalguide/images/Misc/EA... · 2017-03-24 · and services for various platforms. Applications can treat

Page 12 of 42

In this e-guide

What's the best method of application modernization for your business? pg. 2

App modernization starts with knowing how to evaluate PaaS providers pg. 10

When assessing container management software, think interoperability pg. 17

To choose the right PaaS vendor, know thyself pg. 24

Evaluate and settle on the container software that's best for business pg. 32

Further reading

E-guide

multi-tier applications, it can also hamper portability, since features and APIs aren't compatible across the major IaaS providers.

Some PaaS products embrace a hybrid model by offering both public and private implementation options. Notably, Microsoft Azure Stack, currently in preview release, promises to bridge the deployment gap between private and public PaaS by allowing organizations to run a subset of the Azure public cloud on internal servers. Red Hat uses a similar strategy for OpenShift by offering both a cloud-hosted service and downloadable software sharing the same features, as well as providing full compatibility to run applications developed on either infrastructure.

The obvious difference between private and public PaaS is the former's need for investment in capital equipment and software licenses, along with higher overhead in ongoing software maintenance and system administration. In contrast, public PaaS operates like other public cloud services, with no upfront costs and a usage-based billing model. As with the public versus private cloud decision, the choice of PaaS deployment model requires that you build a cost model comparing the amortized cost of equipment and software and ongoing support and maintenance (generally a cost associated with private PaaS) with total service usage over a given project lifecycle.

Pricing for private and public PaaS Pricing for on-premises PaaS technology does vary vendor to vendor. This price is on top of the cost of the systems used to run the environment. But

Page 14: 2017 Guide to Application Modernization - TechTargetmedia.techtarget.com/digitalguide/images/Misc/EA... · 2017-03-24 · and services for various platforms. Applications can treat

Page 13 of 42

In this e-guide

What's the best method of application modernization for your business? pg. 2

App modernization starts with knowing how to evaluate PaaS providers pg. 10

When assessing container management software, think interoperability pg. 17

To choose the right PaaS vendor, know thyself pg. 24

Evaluate and settle on the container software that's best for business pg. 32

Further reading

E-guide

with today's testing and development systems hardware, that is probably less than the software -- $20,000 buys a lot of server or workstation capacity. Deploying an application where the back-end system requirements are dependent on the mix of compute, storage and network workloads is another matter, and costs can vary widely. For example, a four-node, two sockets per node hyper-converged appliance with local storage will run around $50,000-$100,000.

The price for developing and deploying on public PaaS is highly variable; this is a function of resource usage for both PaaS development and IaaS runtime resources. For example, a basic Azure installation with one single core instance of App Service, a single SQL database, 50 GB of Azure Blob storage and 50 GB of file storage, a single D1 virtual machine (VM) with 50 GB of local solid-state drive, all running 24/7 will cost $170 per month, or just over $2,000 annually. Given that it's unlikely you would operate these 24/7 unless doing a globally distributed, follow the sun development project (in which case, each would be shared by several developers), it's entirely possible to run at least 50 of these Azure configurations for the price of, for example, a small private PaaS installation.

SaaS-based application development environments often have an even simpler subscription pricing model, albeit one that can get expensive, since it is based on the number of application users, not developers. For example, Salesforce App Cloud costs $75 per month, per end user for a package that includes the use of up to 100 Salesforce data objects per user. The upside to the expense is that Salesforce, like other customizable SaaS products, doesn't require any programming to produce an app, since piecing together app objects is done via a GUI.

Page 15: 2017 Guide to Application Modernization - TechTargetmedia.techtarget.com/digitalguide/images/Misc/EA... · 2017-03-24 · and services for various platforms. Applications can treat

Page 14 of 42

In this e-guide

What's the best method of application modernization for your business? pg. 2

App modernization starts with knowing how to evaluate PaaS providers pg. 10

When assessing container management software, think interoperability pg. 17

To choose the right PaaS vendor, know thyself pg. 24

Evaluate and settle on the container software that's best for business pg. 32

Further reading

E-guide

PaaS product features Of all the criteria to evaluate when researching PaaS technology, the most fundamental are the choice of programming languages and IDEs, because it's important to fit a PaaS to a development team's expertise and work style, not the other way around.

Most products support several programming environments. For example, AWS has SDKs for most popular programming environments and application targets, including Android, iOS, Java, Node.js (JavaScript), .NET, Python, PHP and Ruby, while Azure is similarly agnostic.

Online services shine in areas requiring a lot of back-end infrastructure, most notably big data storage and analysis. For example, Azure has relational, NoSQL and distributed big data (Hadoop) databases to suit a variety of application needs. It and other similar PaaS providers can be paired with services like Azure HDInsight for data analysis using various tools, including Apache Hadoop and Spark, the R statistics language or even Excel. IaaS-based PaaS stacks from the big three mega cloud players, AWS, Microsoft Azure, and Google, also support application containers that provide lightweight, efficient application isolation without the overhead of a full VM.

PaaS products also provide a variety of mechanisms for integrating with legacy, on-premises infrastructure and applications, including database connectors using Java Database Connectivity (JDBC), Open Database

Page 16: 2017 Guide to Application Modernization - TechTargetmedia.techtarget.com/digitalguide/images/Misc/EA... · 2017-03-24 · and services for various platforms. Applications can treat

Page 15 of 42

In this e-guide

What's the best method of application modernization for your business? pg. 2

App modernization starts with knowing how to evaluate PaaS providers pg. 10

When assessing container management software, think interoperability pg. 17

To choose the right PaaS vendor, know thyself pg. 24

Evaluate and settle on the container software that's best for business pg. 32

Further reading

E-guide

Connectivity or .NET, API gateways and management services, message queue, and federated identity management.

PaaS provider and product considerations Potential PaaS customers should consider how the technology will connect with their existing applications, infrastructure and identity management directories. PaaS technology lets businesses develop new apps, but it's also important that a PaaS match up well with your existing apps and infrastructure. Businesses should ensure that PaaS stacks can access legacy APIs and data either through standard protocols (like server message block, network file system or JDBC) or custom-developed API calls.

Platform openness and the ease of migration are also important. Migrating to and from the platform, the availability of source code and documentation, the completeness of APIs, and support for different access methods (RESTful API calls, scriptable command line interface, etc.) are vital to modernizing legacy software. Application development inherently entails a degree of lock-in (i.e., you are committed to a particular language and target client); however, buyers want to minimize the friction of moving data and code to another PaaS stack. In fact, lock-in is one of the primary reasons organizations opt for PaaS stacks running on an open, portable platform like OpenStack.

Buyers should also look into vendor stability and what they offer for support for cloud services, extending to the performance, reliability and security of

Page 17: 2017 Guide to Application Modernization - TechTargetmedia.techtarget.com/digitalguide/images/Misc/EA... · 2017-03-24 · and services for various platforms. Applications can treat

Page 16 of 42

In this e-guide

What's the best method of application modernization for your business? pg. 2

App modernization starts with knowing how to evaluate PaaS providers pg. 10

When assessing container management software, think interoperability pg. 17

To choose the right PaaS vendor, know thyself pg. 24

Evaluate and settle on the container software that's best for business pg. 32

Further reading

E-guide

their infrastructure. Those in regulated industries will also need to investigate a cloud service's compliance with relevant regulations (e.g., Heath Insurance Portability and Accountability Act, Payment Card Industry, Federal Risk and Authorization Management Program, Federal Information Processing Standard and local data privacy sovereignty laws).

Before using locally installed PaaS software based on open source projects like Cloud Foundry, OpenShift or Apache Stratos, an enterprise should consider its development team's ability and inclination to use a do it yourself product. If it makes more sense to opt for a commercial implementation, consider the vendor's commitment to the open source project by looking at the number of developers contributing, timely support of new releases and product support services.

Next article

Page 18: 2017 Guide to Application Modernization - TechTargetmedia.techtarget.com/digitalguide/images/Misc/EA... · 2017-03-24 · and services for various platforms. Applications can treat

Page 17 of 42

In this e-guide

What's the best method of application modernization for your business? pg. 2

App modernization starts with knowing how to evaluate PaaS providers pg. 10

When assessing container management software, think interoperability pg. 17

To choose the right PaaS vendor, know thyself pg. 24

Evaluate and settle on the container software that's best for business pg. 32

Further reading

E-guide

When assessing container management software, think interoperability

Kurt Marko, Engineer and Technology Analyst, Marko Insights

Much like the transition from client-server applications on discrete physical servers to the virtualized data center, containers represent a significant shakeup in the technology landscape. Working with them requires a rethinking of existing infrastructure architectures, processes and policies. This also means that IT organizations should consider ways of incorporating containers into their application modernization strategy.

It's not easy working with containers, a technology that seemingly changes by the month. There are two important steps to take to use this technology at its utmost capabilities The first step is gaining an understanding of the complete container ecosystem, which includes parts like container orchestrators and container repositories. The second step is assessing container management software compatibility with existing system management software and processes, its potential security risks, and the interoperability and integration challenges.

An overview of the container ecosystem Containers are a new technology that is built upon a nearly 40-year-old idea of compartmentalization. Containers allow multiple applications to run in

Page 19: 2017 Guide to Application Modernization - TechTargetmedia.techtarget.com/digitalguide/images/Misc/EA... · 2017-03-24 · and services for various platforms. Applications can treat

Page 18 of 42

In this e-guide

What's the best method of application modernization for your business? pg. 2

App modernization starts with knowing how to evaluate PaaS providers pg. 10

When assessing container management software, think interoperability pg. 17

To choose the right PaaS vendor, know thyself pg. 24

Evaluate and settle on the container software that's best for business pg. 32

Further reading

E-guide

isolated environments on the same OS. This increases resource efficiency, reduces load time and simplifies deployment and management of distributed applications that are spread across multiple systems and locations.

Hype around containers often obscures important distinctions. Containers themselves are just the source code description of application components, system libraries and configuration that can be turned into a binary image which is deployed and executed on an OS and container runtime. The container runtime provides logical separation of application environments, but adds process isolation and limitations on resource usage.

Containers and their runtime engines provide a foundation for application and infrastructure modernization, but require many other subsystems to create a production environment. Though many have tried, the nascence and dynamic nature of container development mean there are no universally accepted standard categorizations for the container management software. However, IBM offers a "Taxonomy of Building Blocks for Container Lifecycle and Cluster Management" that is useful for understanding the various components of individual application containers:

• A container runtime engine deploys (spawns), starts, stops, clones, suspends (snapshots) and decommissions containers.

• The container driver is a library file (e.g., liblxc, rkt) that provides the linkage between the container runtime and underlying OS and handles execution of kernel-level functions.

• Container images and image descriptions -- for example, a Dockerfile -- are the collection of application code, OS libraries and OS configurations required to run a containerized application.

Page 20: 2017 Guide to Application Modernization - TechTargetmedia.techtarget.com/digitalguide/images/Misc/EA... · 2017-03-24 · and services for various platforms. Applications can treat

Page 19 of 42

In this e-guide

What's the best method of application modernization for your business? pg. 2

App modernization starts with knowing how to evaluate PaaS providers pg. 10

When assessing container management software, think interoperability pg. 17

To choose the right PaaS vendor, know thyself pg. 24

Evaluate and settle on the container software that's best for business pg. 32

Further reading

E-guide

• The container repository is like a source-code version control system or container app store that provides a central location for publishing, storing, finding, downloading and managing container images. The repository also mitigates the risk of container sprawl.

Running multiple containers in a cloud data center requires components to manage deployment on one or more machines, job scheduling and monitoring, networking, and the working state of each instance. IBM categorizes these other pieces of the pieces of the container management software:

• Container orchestrators automate container deployment across one or more systems forming a container cluster. A container orchestrator works with or includes a container scheduler that identifies the optimal location for new workloads, restarts cashed containers and provisions new instances as needed according to workload scaling policies.

• Container discovery services provide a registry of available containers, including the location of actively running instances, for use by composite applications built from a collection of microservices.

• The resource monitor provides usage and application status information that enables the orchestrator and scheduler to optimize cluster utilization and container placement.

• As with virtual machines (VMs), containers require an overlay network because they share physical resources on a host including network interfaces. An overlay network allows containers to communicate both within and across hosts.

Page 21: 2017 Guide to Application Modernization - TechTargetmedia.techtarget.com/digitalguide/images/Misc/EA... · 2017-03-24 · and services for various platforms. Applications can treat

Page 20 of 42

In this e-guide

What's the best method of application modernization for your business? pg. 2

App modernization starts with knowing how to evaluate PaaS providers pg. 10

When assessing container management software, think interoperability pg. 17

To choose the right PaaS vendor, know thyself pg. 24

Evaluate and settle on the container software that's best for business pg. 32

Further reading

E-guide

• State storage provides the container scheduler with knowledge of the state, location and configuration of running instances, which is often implemented, like in Apache Zookeeper, as an in-memory, key-value store. Note that state storage is distinct from persistent storage for containerized applications themselves, which can be provided by a generic (e.g., libStorage) or vendor-specific plug-in library that works with scale-out storage systems like network-attached storage arrays.

The container management software market is quite diverse and fragmented; however, vendors like Apprenda (which acquired Kismatic's cluster management software), CoreOS, Docker, Mesos and Rancher Labs have assembled most of the pieces necessary to run a container environment in production. These often include popular open source projects like Google-backed Kubernetes, which is becoming a de facto standard for container orchestration. Complete container environments are also available from major infrastructure-as-a-service providers including Amazon Web Services (AWS), Azure, Google Cloud Platform and IBM Softlayer.

Key features to assess before purchasing container management software When assessing container management software to assist in executing an application modernization strategy, there are key factors that businesses need to consider.

Page 22: 2017 Guide to Application Modernization - TechTargetmedia.techtarget.com/digitalguide/images/Misc/EA... · 2017-03-24 · and services for various platforms. Applications can treat

Page 21 of 42

In this e-guide

What's the best method of application modernization for your business? pg. 2

App modernization starts with knowing how to evaluate PaaS providers pg. 10

When assessing container management software, think interoperability pg. 17

To choose the right PaaS vendor, know thyself pg. 24

Evaluate and settle on the container software that's best for business pg. 32

Further reading

E-guide

Usage and workflow

Initial implementations of container systems, including Docker, use an entirely new set of software and management tools that don't typically integrate with existing virtualization platforms and are quite disruptive. This isn't a problem if an organization plans on building a greenfield environment or using public cloud services for new containerized applications; however, recent developments from VMware (e.g., vSphere integrated containers, or VIC) and Microsoft (Hyper-V containers) allow containers to run on legacy server platforms using existing workflows that reduce the learning curve and greatly simplify process integration.

Container networks use the virtual networking concepts introduced with server virtualization in that the container runtime engine creates an overlay network and virtual switch to move packets between container instances on the same cluster (e.g., Docker Swarm). Networking capabilities built into container engines like Docker are adequate for self-contained clusters. Connecting a container network to a public cloud service or across data centers, however, is difficult without a network overlay controller. Products from CoreOS, Weaveworks and Project Calico provide a routable, Layer 3 network fabric that can span multiple locations but come with a learning curve and require careful implementation planning.

Security and policy

As a relatively new technology, the vulnerabilities and overall security of containers is notably tenuous. While containers do provide greater application isolation than user-mode system processes, they aren't as

Page 23: 2017 Guide to Application Modernization - TechTargetmedia.techtarget.com/digitalguide/images/Misc/EA... · 2017-03-24 · and services for various platforms. Applications can treat

Page 22 of 42

In this e-guide

What's the best method of application modernization for your business? pg. 2

App modernization starts with knowing how to evaluate PaaS providers pg. 10

When assessing container management software, think interoperability pg. 17

To choose the right PaaS vendor, know thyself pg. 24

Evaluate and settle on the container software that's best for business pg. 32

Further reading

E-guide

impenetrable as VMs on a Type 1 hypervisor. Potential attack vectors include OS exploits, container breakouts, denial of service, embedded malware and credential theft.

Many of these exploits can be mitigated by running single containers within a lightweight VM like Microsoft Nano Server or VMware Photon OS, albeit with some loss of efficiency due to running a full guest OS, even a small one, for each application.

Central control of access policies is another area where container management software is wanting. Microsoft recently made a significant investment in Israeli security startup Aqua Security with software that automates and monitors policy enforcement throughout the container lifecycle.

Interoperability

Most modern OSes -- including various flavors of Linux, Windows Server, VMware ESXi (via VIC) and even IBM PowerLinux -- have a Docker-compatible container runtime. Although Docker gets most of the attention as the de facto standard for application containers, it's not the only one, and tensions between Docker and other open source developers led to the creation of the Open Container Initiative (OCI). The OCI set industry standards for container image formats and runtime that allows running a container image on any runtime, including AWS, Google Cloud Platform, Kubernetes, Mesos, rkt or the Docker engine. Docker itself was the first to ship a runtime based on OCI technology. Container vendors and developers also must work to improve interoperability via creating standards for image

Page 24: 2017 Guide to Application Modernization - TechTargetmedia.techtarget.com/digitalguide/images/Misc/EA... · 2017-03-24 · and services for various platforms. Applications can treat

Page 23 of 42

In this e-guide

What's the best method of application modernization for your business? pg. 2

App modernization starts with knowing how to evaluate PaaS providers pg. 10

When assessing container management software, think interoperability pg. 17

To choose the right PaaS vendor, know thyself pg. 24

Evaluate and settle on the container software that's best for business pg. 32

Further reading

E-guide

distribution and discovery (via a registry protocol) and APIs between back-end services like the orchestrator/cluster manager and resource monitors.

Containers are a great technology for hosting cloud-native, distributed applications that can automatically scale across dozens of physical hosts with much less system overhead than a VM appliance. However, containers can also be used to wrap legacy applications not designed for virtual environments in a package that can be easily distributed and deployed on public or private cloud infrastructure.

Next article

Page 25: 2017 Guide to Application Modernization - TechTargetmedia.techtarget.com/digitalguide/images/Misc/EA... · 2017-03-24 · and services for various platforms. Applications can treat

Page 24 of 42

In this e-guide

What's the best method of application modernization for your business? pg. 2

App modernization starts with knowing how to evaluate PaaS providers pg. 10

When assessing container management software, think interoperability pg. 17

To choose the right PaaS vendor, know thyself pg. 24

Evaluate and settle on the container software that's best for business pg. 32

Further reading

E-guide

To choose the right PaaS vendor, know thyself

Kurt Marko, Engineer and Technology Analyst, Marko Insights

A critical enabler of enterprise application modernization is development automation products broadly described as platform as a service. These are public or private cloud services that build upon low-level infrastructure services and consist of a collection of middleware services. PaaS offerings target a broad spectrum of users, from traditional developers to spreadsheet jockeys and Salesforce gurus. This dichotomy makes it difficult to assess a PaaS vendor.

PaaS vendors roughly fit into two categories: the developer-focused PaaS, where products target application developers building custom applications from the ground up; and the user-focused PaaS, which adds extensible features to existing software products that enable nondevelopers to create custom applications using cloud services and back-end infrastructure. Below are popular and representative examples of each and explanations of how they can help those looking to expand their business through building cloud-native applications.

The benefit for developers in using PaaS is the reduced complexity of building cloud-native apps, since the PaaS vendor assembles and maintains most of the underlying infrastructure and toolchain. As such, PaaS can offload much of the coding and infrastructure assembly for mobile and web

Page 26: 2017 Guide to Application Modernization - TechTargetmedia.techtarget.com/digitalguide/images/Misc/EA... · 2017-03-24 · and services for various platforms. Applications can treat

Page 25 of 42

In this e-guide

What's the best method of application modernization for your business? pg. 2

App modernization starts with knowing how to evaluate PaaS providers pg. 10

When assessing container management software, think interoperability pg. 17

To choose the right PaaS vendor, know thyself pg. 24

Evaluate and settle on the container software that's best for business pg. 32

Further reading

E-guide

back-end services, as well as enable developers to focus on differentiating features and the user interface, not back-end plumbing. By removing developers from the task of infrastructure and tool management and allowing them to work at higher levels of programming abstraction, PaaS can significantly decrease the development cycle and enable Agile methodologies, such as continuous integration and delivery.

Although PaaS is often used by traditional software developers, the concept has been embraced by software vendors like Oracle, Salesforce, SAP and others to allow customization of their packaged software by business application users. A top-down PaaS vendor -- one with a product that turns a sophisticated piece of packaged software into a platform for custom enterprise apps -- enables users like business analysts, who aren't experienced programmers, to develop cloud-native applications that automate business processes, build custom information dashboards or fill other application niches not targeted by packaged software.

The developer versus application-user PaaS vendor PaaS technology that works best for developers takes care of coding and infrastructure setup to allow developers to program at higher levels and not worry about the back end. Businesses must pay attention to the supported environments and operating systems of each PaaS vendor to see what best fits their technology and processes.

Page 27: 2017 Guide to Application Modernization - TechTargetmedia.techtarget.com/digitalguide/images/Misc/EA... · 2017-03-24 · and services for various platforms. Applications can treat

Page 26 of 42

In this e-guide

What's the best method of application modernization for your business? pg. 2

App modernization starts with knowing how to evaluate PaaS providers pg. 10

When assessing container management software, think interoperability pg. 17

To choose the right PaaS vendor, know thyself pg. 24

Evaluate and settle on the container software that's best for business pg. 32

Further reading

E-guide

Developer-focused PaaS Apprenda is a software package for private PaaS that provides an application server and container for .NET and Java applications. It works across both Linux and Windows, although it targets Windows developers. Apprenda includes an execution environment for application components using a distributed, scalable server architecture, with a central management console for the underlying infrastructure, users and operations; a developer portal; and a host of APIs, services and database connectors. Earlier this year, Apprenda acquired Kismatic to provide Kubernetes support for containerized, cloud-native applications. Apprenda is well-suited for organizations building on-premises applications that want to exploit cloud-native technologies, such as distributed cluster management, without piecing together open source components and integrating them with existing data sources and security or user account infrastructure.

The Cloud Foundry ecosystem is an open source PaaS project that originated at Pivotal Labs -- an EMC-VMware spinout -- and is now governed by an independent foundation. Cloud Foundry is designed for cloud-native applications that use a microservices architecture, containers and RESTful APIs. It runs on a variety of both private and public virtualized infrastructure, including VMware, OpenStack, Amazon Web Services, Azure and Google Cloud. Notable features include service brokers for registration and application binding, service routers to direct traffic to the right component, and cloud controllers for system and application management. There is also a message bus, blob store for application code and packaged

Page 28: 2017 Guide to Application Modernization - TechTargetmedia.techtarget.com/digitalguide/images/Misc/EA... · 2017-03-24 · and services for various platforms. Applications can treat

Page 27 of 42

In this e-guide

What's the best method of application modernization for your business? pg. 2

App modernization starts with knowing how to evaluate PaaS providers pg. 10

When assessing container management software, think interoperability pg. 17

To choose the right PaaS vendor, know thyself pg. 24

Evaluate and settle on the container software that's best for business pg. 32

Further reading

E-guide

builds, an authentication engine, and various logging and monitoring components.

Cloud Foundry is the basis for many commercial products and online services from Pivotal itself, Atos, CenturyLink (AppFog), GE (Predix, targeting internet-of-things applications), Hewlett Packard Enterprise (Stackato), IBM (Bluemix) and Mendix. Each of these may bundle added components to the base Cloud Foundry release and be optimized or more tightly integrated with particular infrastructure-as-a-service (IaaS) platforms -- e.g., IBM Bluemix with SoftLayer.

Google App Engine (GAE) is the PaaS companion to the Google Cloud Platform IaaS suite. Unsurprisingly, being from Google, it is designed for web applications and mobile back ends -- just the things you'd expect to see on a Chromebook or Android phone. App Engine uses containers that are preconfigured with a supported runtime environment, with a choice of Java, Python, PHP or Go. Teams who specialize in languages other than these four, such as C++, should keep in mind that code will have to be refactored into one of the supported languages.

The platform includes various persistent storage services, including NoSQL, SQL and in-memory caches; automatic instance scaling and load balancing; asynchronous task queues, like a message bus; task scheduling; search --no surprise, being from Google; and tight integration with Google cloud and APIs for its other products, including use of Google accounts and its authentication engine.

Page 29: 2017 Guide to Application Modernization - TechTargetmedia.techtarget.com/digitalguide/images/Misc/EA... · 2017-03-24 · and services for various platforms. Applications can treat

Page 28 of 42

In this e-guide

What's the best method of application modernization for your business? pg. 2

App modernization starts with knowing how to evaluate PaaS providers pg. 10

When assessing container management software, think interoperability pg. 17

To choose the right PaaS vendor, know thyself pg. 24

Evaluate and settle on the container software that's best for business pg. 32

Further reading

E-guide

Like GAE, Microsoft's Azure App Service has extended its infrastructure stack with higher-level application services that streamline the process of building cloud-native apps. The focus of Azure App Service is mobile and web applications using .NET, Node.js JavaScript, Java, PHP or Python. Aside from web and mobile back ends, App Service can also be used for service interfaces between clients and servers, which is what Microsoft calls API or Logic Apps.

Like GAE, App Service automatically scales and load-balances client application traffic, and it's tightly integrated with the underlying Azure IaaS services like SQL, NoSQL and object storage. But it also has connections with over 50 software-as-a-service (SaaS) products, including Office 365, Salesforce, Slack and Dropbox. Microsoft shops with seasoned Windows developers will naturally gravitate to Azure due to its use of Window infrastructure, tight integration with the Visual Studio toolchain, and support for .NET and Windows APIs.

Oracle Cloud is the umbrella term for the database giant's as-a-service products, including applications like ERP and human capital management, along with raw infrastructure. Its hosted PaaS stack exploits Oracle's core database technology and targets data-driven applications with services for SQL, NoSQL, big data -- Hadoop and Spark -- and real-time data pipelines and event streaming (Apache Kafka). Given Oracle's Sun DNA, it's no surprise Java is the preferred programming environment with a cloud service for development and testing; staging and production; and support for WebLogic, mobile back ends and JavaScript/Node.js. Like other PaaS technology, Oracle provides API management, infrastructure and service monitoring, log analysis and task automation.

Page 30: 2017 Guide to Application Modernization - TechTargetmedia.techtarget.com/digitalguide/images/Misc/EA... · 2017-03-24 · and services for various platforms. Applications can treat

Page 29 of 42

In this e-guide

What's the best method of application modernization for your business? pg. 2

App modernization starts with knowing how to evaluate PaaS providers pg. 10

When assessing container management software, think interoperability pg. 17

To choose the right PaaS vendor, know thyself pg. 24

Evaluate and settle on the container software that's best for business pg. 32

Further reading

E-guide

Red Hat OpenShift, the commercial implementation of the OpenShift Origin open source project, is a container-based PaaS that combines Docker packaging and Kubernetes cluster management. It is available as a shared or dedicated managed service, or as on-premises packaged software. The platform supports applications in Java, Ruby, Node.js, Python, PHP and other languages through add-on modules that use the OpenShift API, called cartridges. It includes MongoDB, MySQL, PostgreSQL and SQLite databases, as well as JBoss middleware, including the Red Hat BPM Suite, web server, business rules management and push notification service.

PaaS is a growing market, but still dwarfed by IaaS PaaS is the smallest of the three primary as-a-service categories, with roughly only one-third the revenue as IaaS; however, it is growing just as fast. According to the 451 Group, PaaS revenue is projected to grow 25% per year, with revenue doubling by 2020. Despite such growth, PaaS will still be a much smaller market than IaaS and dominated by the mega-cloud players like Amazon Web Services -- which is adding many application-layer services -- Google, IBM and Microsoft.

User-focused PaaS Business application users must look for a PaaS vendor with a stack that extends existing application platforms like Oracle, SAP or Salesforce, since these will provide the easiest access to data, metadata, user accounts and

Page 31: 2017 Guide to Application Modernization - TechTargetmedia.techtarget.com/digitalguide/images/Misc/EA... · 2017-03-24 · and services for various platforms. Applications can treat

Page 30 of 42

In this e-guide

What's the best method of application modernization for your business? pg. 2

App modernization starts with knowing how to evaluate PaaS providers pg. 10

When assessing container management software, think interoperability pg. 17

To choose the right PaaS vendor, know thyself pg. 24

Evaluate and settle on the container software that's best for business pg. 32

Further reading

E-guide

higher-level application services to create custom dashboards, data visualizations or form-based collaborative workflows.

Oracle Application Builder is a browser-based visual development environment that allows nonprogrammers to build applications by connecting prebuilt components using a GUI. Applications can use Oracle SaaS applications via REST APIs to create customized forms and dashboards. As with any PaaS stack, Application Builder is typically used to build custom extensions to existing applications, as well as integrate packaged and custom applications by sharing data or passing calling functions from one to another. App extensions are often new, custom web or mobile UIs that can be created with a drag-and-drop interface.

SAP HANA Cloud Platform is a managed service providing a set of application services that simplify development using any SAP application, including its HANA in-memory database. Typical use cases include building customized dashboards that can integrate HANA and on-premises data sources, mobile front ends and internet-of-things data analytics.

Salesforce App Cloud is the umbrella service for the Salesforce's Force.com and Heroku development platforms. It features a GUI, drag-and-drop environment -- Lightning -- for quickly assembling custom apps from prebuilt components. Built upon the Salesforce customer relationship management application, App Cloud combines core infrastructure services like databases, storage and containers with platform services like a workflow engine, social collaboration, reporting and dashboards, a mobile back end and application UIs. Although developers can code microservices in Heroku DX, Node.js, Ruby, Python, Java and PHP, App Cloud targets

Page 32: 2017 Guide to Application Modernization - TechTargetmedia.techtarget.com/digitalguide/images/Misc/EA... · 2017-03-24 · and services for various platforms. Applications can treat

Page 31 of 42

In this e-guide

What's the best method of application modernization for your business? pg. 2

App modernization starts with knowing how to evaluate PaaS providers pg. 10

When assessing container management software, think interoperability pg. 17

To choose the right PaaS vendor, know thyself pg. 24

Evaluate and settle on the container software that's best for business pg. 32

Further reading

E-guide

business users without formal programming experience. Typical use cases include mobilizing existing Salesforce apps, integrating one or more Salesforce apps -- such as customer-facing and employee apps -- and building data analytics dashboards from Salesforce activity.

The right PaaS vendor depends on development team Selection of a PaaS product is highly dependent on an organization's existing infrastructure, new application requirements, and the target audience of both the applications and developers. Those using experienced developers to build greenfield, cloud-native applications should focus on the developer-centric PaaS frameworks and their associated infrastructure.

Conversely, cloud-first startups often prefer GAE for its container support and automatic scalability. They also gravitate toward an OpenStack-Cloud Foundry combination due to the vibrant open source community and ability to use both on-premises systems or a multitude of cloud services.

Next article

Page 33: 2017 Guide to Application Modernization - TechTargetmedia.techtarget.com/digitalguide/images/Misc/EA... · 2017-03-24 · and services for various platforms. Applications can treat

Page 32 of 42

In this e-guide

What's the best method of application modernization for your business? pg. 2

App modernization starts with knowing how to evaluate PaaS providers pg. 10

When assessing container management software, think interoperability pg. 17

To choose the right PaaS vendor, know thyself pg. 24

Evaluate and settle on the container software that's best for business pg. 32

Further reading

E-guide

Evaluate and settle on the container software that's best for business

Kurt Marko, Engineer and Technology Analyst, Marko Insights

Container software is the hottest new technology for running applications on shared, cloud infrastructure. However, as with any emerging and dynamic market, it's like the Wild West, with new products, technologies, vendors and alliances popping up every month.

Among the most important subsystem in the container ecosystem is the container orchestrator, a tool designed to wrangle resources and herd container instances into the most efficient system. For companies heading into uncharted territory of using containers, it's beneficial to examine orchestrators and the key features of the important and popular products.

Explore the new frontier of container software While simple in concept, the contemporary use of containers to build cloud-native applications requires a complex supporting cast of software management components. A container orchestrator manages such a cast. The container infrastructure consists of a cluster of physical systems that can be used by dozens or hundreds of applications. The orchestrator, often called a cluster manager, treats the clustered hosts as a single, logical resource pool and automates deployment across one or more systems.

Page 34: 2017 Guide to Application Modernization - TechTargetmedia.techtarget.com/digitalguide/images/Misc/EA... · 2017-03-24 · and services for various platforms. Applications can treat

Page 33 of 42

In this e-guide

What's the best method of application modernization for your business? pg. 2

App modernization starts with knowing how to evaluate PaaS providers pg. 10

When assessing container management software, think interoperability pg. 17

To choose the right PaaS vendor, know thyself pg. 24

Evaluate and settle on the container software that's best for business pg. 32

Further reading

E-guide

As new containers are requested, the orchestrator's scheduling engine finds the best system based on workload requirements and resource availability. It then provisions new container instances to the right cluster node or nodes, adds instances as needed according to application resource usage and restarts crashed instances. A container orchestrator decommissions containers when a batch job completes, or when they are no longer needed by running applications. Orchestrators also propagate container updates and patches to all instances in a cluster.

Orchestrators come in many varieties. Depending on a company's container implementation -- for example, when using public cloud container services or an OS virtualization product with built-in container management -- it may not need to set up a discrete orchestrator at all, since the choice is implicit in the selection of cloud service.

The container software market at a glance Container software garners a lot of attention among IT analysts, press, developers and system architects. But they still primarily appeal to those building cloud-native applications. A survey by 451 Research found less than 10% of developers are using container orchestration for applications that are not cloud-native, although 36% plan to do so in the next two years. The majority of those doing anything with containers use them for application development, followed by engineering or technical computing and web infrastructure, with only 22% using containers for line-of-business applications.

Page 35: 2017 Guide to Application Modernization - TechTargetmedia.techtarget.com/digitalguide/images/Misc/EA... · 2017-03-24 · and services for various platforms. Applications can treat

Page 34 of 42

In this e-guide

What's the best method of application modernization for your business? pg. 2

App modernization starts with knowing how to evaluate PaaS providers pg. 10

When assessing container management software, think interoperability pg. 17

To choose the right PaaS vendor, know thyself pg. 24

Evaluate and settle on the container software that's best for business pg. 32

Further reading

E-guide

In contrast, among cloud-native developers, container use is the norm. According to one survey of mostly developers and those in DevOps teams, 76% of respondents were already using containers in production, double the rate from the same survey a year ago. Even when the results were filtered for those in large organizations, the share using containers in production was 73%.

The survey found Docker to be the most popular container engine and packaging format, with 94% penetration. When it comes to the choice of orchestrators, the results show organizations are experimenting with multiple products, with Kubernetes being the most widely deployed, followed by Docker Swarm, internally developed tools and Apache Mesos. A developer-focused industry analyst firm, RedMonk, conducted a separate, much larger and more diverse survey of developers that found most aren't using any orchestrator, meaning it's unlikely that they have yet to do more than just experiment with containers. Of the rest, most use Swarm or Kubernetes, with Mesos a distant third.

Rounding up the important container orchestrators and managers The orchestration market is confusing, because there are so many commercial container software products that incorporate orchestrators into container management suites, along with several using proprietary orchestrators. Below are highlights of some important products.

Page 36: 2017 Guide to Application Modernization - TechTargetmedia.techtarget.com/digitalguide/images/Misc/EA... · 2017-03-24 · and services for various platforms. Applications can treat

Page 35 of 42

In this e-guide

What's the best method of application modernization for your business? pg. 2

App modernization starts with knowing how to evaluate PaaS providers pg. 10

When assessing container management software, think interoperability pg. 17

To choose the right PaaS vendor, know thyself pg. 24

Evaluate and settle on the container software that's best for business pg. 32

Further reading

E-guide

Docker Swarm was the native cluster manager for the Docker platform that has since been integrated into the core Docker Engine. This makes it the natural and most convenient choice for organizations using the Docker runtime and other tools, such as Registry, Compose -- for multicontainer application bundles -- and Kitematic management UI. Swarm handles cluster management using a decentralized design with automatic workload scaling; support for virtual network overlays; service discovery -- by assigning unique domain-name-system names to each service in a cluster; load balancing; and incremental, rolling updates.

Kubernetes is a container manager originally developed by Google. The technology is based on Google's experience and deployment model of running billions of containers a week. Kubernetes provides automatic workload placement -- what it calls binpacking -- based on resource requirements; available capacity and other constraints, like latency; and programmatic -- via GUI or command-line interface (CLI) -- or automatic scaling based on CPU usage.

Kubernetes also performs automatic container restart and replace for nodes that die; batches jobs using CLI scripts; executes version control with automated rollbacks -- in the event that a deployment fails; and hosts service discovery, like Docker using DNS and load balancing. Kubernetes supports Docker containers and runs on many cloud services, including Azure and Google Cloud, and it's supported by VMware. Because of this, Kubernetes could become the de facto standard for container cluster management. Holding it back is the complexity of configuring Kubernetes, which is an area both the open source project and cloud implementations continue to improve.

Page 37: 2017 Guide to Application Modernization - TechTargetmedia.techtarget.com/digitalguide/images/Misc/EA... · 2017-03-24 · and services for various platforms. Applications can treat

Page 36 of 42

In this e-guide

What's the best method of application modernization for your business? pg. 2

App modernization starts with knowing how to evaluate PaaS providers pg. 10

When assessing container management software, think interoperability pg. 17

To choose the right PaaS vendor, know thyself pg. 24

Evaluate and settle on the container software that's best for business pg. 32

Further reading

E-guide

Apache Mesos is a distributed operating system for compute clusters that provides resource management and scheduling with APIs that allow applications like Hadoop, Spark or Elasticsearch to run across hundreds or even thousands of nodes. Mesos is also the foundation for platform-as-a-service (PaaS) stacks and container frameworks, including the Marathon orchestrator, which provides the usual features of container placement, monitoring, instantiation, disposal and scaling.

Mesosphere sells a commercial product, DC/OS, based on Mesos and Marathon that adds service discovery, load balancing, user and service authentication and authorization, and both CLI and GUI management interfaces. DC/OS also supports packaged services that simplify the installation of distributed applications, like Cassandra, Jenkins, Spark and Storm, on a Mesos substrate. Mesos is the default cluster manager for Azure and makes a good choice for organizations building hybrid, private-public architectures with Azure that need to move workloads between the two environments.

Apcera Trusted Cloud Platform is a proprietary container-based system that provides a complete set of application management features, including orchestration, package and job management; health and performance monitoring; a message bus; authentication and policy management; and management console.

Apcera recently introduced features that can automatically containerize and deploy legacy applications that currently run on traditional virtual machines (VMs) without any modifications. Once containerized, traditional applications can be deployed to multiple cloud services, like Amazon EC2 Container

Page 38: 2017 Guide to Application Modernization - TechTargetmedia.techtarget.com/digitalguide/images/Misc/EA... · 2017-03-24 · and services for various platforms. Applications can treat

Page 37 of 42

In this e-guide

What's the best method of application modernization for your business? pg. 2

App modernization starts with knowing how to evaluate PaaS providers pg. 10

When assessing container management software, think interoperability pg. 17

To choose the right PaaS vendor, know thyself pg. 24

Evaluate and settle on the container software that's best for business pg. 32

Further reading

E-guide

Service (ECS), Google Compute Engine or local OpenStack infrastructure. Apcera is a good choice for organizations not afraid of committing to a proprietary container stack and that want to deploy on multiple clouds, both private and public.

VMware Photon Platform is a full container stack built on top of VMware's core virtual infrastructure -- namely ESXi for compute and VMs, NSX for networks and services, and VSAN for storage. It includes a lightweight Linux container host (Photon OS) with a container runtime engine; a clustering engine and manager (Photon Controller) that can use several orchestration platforms, including Pivotal CF and Lattice, Kubernetes, Docker Swarm, and Mesos and Marathon; and a management layer with GUI and APIs.

Photon's key advantage for large enterprises building private container clusters is its use of VMware core technology as the infrastructure substrate, which allows IT teams to reuse systems for cloud-native applications, manage the infrastructure with vSphere or vCenter management consoles and use existing admin processes. VMware shops should strongly consider Photon. Although it's new and still developing, Photon is tightly integrated with VMware's management suite and allows adding container clusters to one's existing virtualization infrastructure.

Rancher is something of a meta-orchestrator in that it supports all the popular container management frameworks, including Docker Swarm, Kubernetes and Mesos. Like Apcera, it inserts an infrastructure management layer that works with either physical or virtual Linux hosts, which can also be public cloud instances like Amazon Web Services (AWS) Elastic Compute Cloud or a bare-metal colocation server.

Page 39: 2017 Guide to Application Modernization - TechTargetmedia.techtarget.com/digitalguide/images/Misc/EA... · 2017-03-24 · and services for various platforms. Applications can treat

Page 38 of 42

In this e-guide

What's the best method of application modernization for your business? pg. 2

App modernization starts with knowing how to evaluate PaaS providers pg. 10

When assessing container management software, think interoperability pg. 17

To choose the right PaaS vendor, know thyself pg. 24

Evaluate and settle on the container software that's best for business pg. 32

Further reading

E-guide

Rancher appeals to a similar constituency of those building multicloud architectures. Rancher adds an overlay network, persistent storage and load balancer to virtual or physical hosts. It also includes other components of a container ecosystem, such as user and security policy management and an application or service catalog.

CoreOS Fleet and Tectonic are complementary clustering and orchestration software analogous to Mesos and Marathon. Fleet provides system aggregation and distributed workload deployment. It also supports several orchestration technologies, including Kubernetes. Tectonic is a commercialized version of CoreOS with the rkt container engine and Kubernetes that includes a GUI management console, regular software updates and technical support.

Joyent Triton Data Center is a commercial implementation of the Docker engine that includes a lightweight OS and hypervisor (SmartOS), orchestration software (ContainerPilot), a management portal and external APIs. ContainerPilot works with Triton -- or other container managers, including Kubernetes and Marathon -- to deliver the standard features of an orchestrator, including container service registration, discovery, configuration and monitoring.

HashiCorp Nomad is a Docker-compatible container scheduler designed to work with the HashiCorp Terraform and its other DevOps products, although the orchestrator itself is open source. HashiCorp promises a packaged enterprise version of Nomad to complement the rest of its ecosystem.

Page 40: 2017 Guide to Application Modernization - TechTargetmedia.techtarget.com/digitalguide/images/Misc/EA... · 2017-03-24 · and services for various platforms. Applications can treat

Page 39 of 42

In this e-guide

What's the best method of application modernization for your business? pg. 2

App modernization starts with knowing how to evaluate PaaS providers pg. 10

When assessing container management software, think interoperability pg. 17

To choose the right PaaS vendor, know thyself pg. 24

Evaluate and settle on the container software that's best for business pg. 32

Further reading

E-guide

Cloud services that put container software to work Each major infrastructure-as-a-service (IaaS) vendor offers container platforms that layer on a mix of proprietary and open source container software to their core infrastructure.

Amazon ECS is a Docker-compatible container service the uses EC2 instances with Amazon's proprietary orchestration engine, although APIs allow users to integrate third-party schedulers, like Marathon. ECS deployments can be automated through APIs or using CloudFormation. The service automatically applies software updates, restarts failed containers and load-balances -- using Elastic Load Balancing.

ECS integrates with existing AWS offerings, allowing containers to forward logs to CloudWatch, use Identity and Access Management for user authentication and security policy, and store data and container images in Simple Storage Service. ECS is the simplest way for AWS users to run containerized applications. Although ECS has built-in orchestration software, AWS recently open-sourced the Blox management software to enable users to integrate external container clusters controlled by Kubernetes, Mesos and more into an ECS cluster.

Microsoft's Azure Container Service adds a Docker-compatible container runtime to Azure VMs and uses either Docker Swarm or Mesos DC/OS (Marathon) for orchestration, making it compatible with most container development tool chains. As with ECS, applications using the Azure

Page 41: 2017 Guide to Application Modernization - TechTargetmedia.techtarget.com/digitalguide/images/Misc/EA... · 2017-03-24 · and services for various platforms. Applications can treat

Page 40 of 42

In this e-guide

What's the best method of application modernization for your business? pg. 2

App modernization starts with knowing how to evaluate PaaS providers pg. 10

When assessing container management software, think interoperability pg. 17

To choose the right PaaS vendor, know thyself pg. 24

Evaluate and settle on the container software that's best for business pg. 32

Further reading

E-guide

Container Service can access other services in the Azure portfolio and are managed through the service's central console, Azure Resource Manager.

Google Container Engine (GKE) is another Docker-compatible container service -- detecting a theme yet? -- that uses Google-developed Kubernetes for cluster management and orchestration. GKE provides a container registry, autoscaling of container instances, logging, and it works with Google Cloud's identity and access management and hybrid, VPN-based networking services. As with other container services, GKE can be managed through the Google Cloud Console GUI or a Cloud Shell CLI. Like ECS, Azure's container service and GKE are the low-friction way of running containerized applications on their respective cloud services and will appeal to existing users.

How to survive in the new frontier There are no easy answers when it comes to selecting a container platform for building modern applications, and the choice will depend on many factors, including an organization's:

• Expertise in containerized, 12-factor applications; • Use of IaaS and strategy, if any, for PaaS; • Comfort with open source software and DIY implementations; and • Infrastructure strategy and the roles of cloud services versus building

internal platforms.

Page 42: 2017 Guide to Application Modernization - TechTargetmedia.techtarget.com/digitalguide/images/Misc/EA... · 2017-03-24 · and services for various platforms. Applications can treat

Page 41 of 42

In this e-guide

What's the best method of application modernization for your business? pg. 2

App modernization starts with knowing how to evaluate PaaS providers pg. 10

When assessing container management software, think interoperability pg. 17

To choose the right PaaS vendor, know thyself pg. 24

Evaluate and settle on the container software that's best for business pg. 32

Further reading

E-guide

Given these constraints, businesses should use the following rules of thumb: When initially investigating containerized application architectures and container software, start with the cloud. All of the major services offer environments compatible with the most common container formats, runtimes and orchestration engines that make excellent test and development platforms. Also, companies should look to their current IaaS vendors to see what container service they offer. If a company isn't already using IaaS, it should look first at GKE, since that has a compelling feature set with probably the best Kubernetes implementation and is complemented by a strong PaaS stack -- Google App Engine.

If considering an on-premises implementation, businesses should assess their comfort with DIY implementations, since many container software products are just bundles of open source software. Those looking for a turnkey, greenfield deployment should start with a packaged suite like Apcera, Rancher or Triton.

Further reading

Page 43: 2017 Guide to Application Modernization - TechTargetmedia.techtarget.com/digitalguide/images/Misc/EA... · 2017-03-24 · and services for various platforms. Applications can treat

Page 42 of 42

In this e-guide

What's the best method of application modernization for your business? pg. 2

App modernization starts with knowing how to evaluate PaaS providers pg. 10

When assessing container management software, think interoperability pg. 17

To choose the right PaaS vendor, know thyself pg. 24

Evaluate and settle on the container software that's best for business pg. 32

Further reading

E-guide

About SearchMicroservices.com

Over 4 million programmers, architects, IT managers, and developers turn to our site for industry news, expert advice and peer-to-peer learning opportunities around managing microservices and service-oriented architecture (SOA), application modernization and digital transformation, Business Process Management (BPM), application integration and APIs, software containers and microservices design and development, DevOps, and more.

Whether you’re looking to solve a specific application architecture problem or just trying to stay on top of recent industry developments, our site is your online portal for in-depth and relevant information.

For further reading, visit us at: http://searchMicroservices.techtarget.com

Images; Fotalia

©2017 TechTarget. No part of this publication may be transmitted or reproduced in any form or by any means without written permission from the publisher.