Using a Java Platform as a Service to Speed Development and Deployment Cycles Dan Kirsch Senior Analyst Sponsored by CloudBees
Using a Java Platform as a Service to Speed Development and Deployment Cycles Introduction Systems integrators (SIs) are under increasing pressure to deliver high quality solutions in an era dominated by shrinking budgets and tight deadlines. It is common for SIs to leverage Java in many of these engagements because Java is both mature and open source. Economic pressures have forced Java systems integrators to rethink the way they approach projects. Typically, SIs evaluate the state of a customers existing infrastructure, their time and cost constraints and whether additional hardware, software, or IT staff is required. For Java systems integrators, Platform as a Service (PaaS) is a key technology approach that enables them to produce top quality solutions efficiently and effectively. In this paper we will discuss how PaaS changes the traditional development and deployment process and explore how one Java systems integrator was able to leverage PaaS to meet the challenges of three very different clients with very different business requirements. it is not surprising that Cloud Computing has become a vital technology for client engagements because of its compelling benefits, such as scalability, automation, and the ability to respond to changing client demands. Dealing with Economic Realities Creating innovative Java solutions that streamline business processes has become an imperative for systems integrators. Therefore, it is not surprising that Cloud Computing has become a vital technology for client engagements because of its compelling benefits, such as scalability, automation, and the ability to respond to changing client demands. However, building applications on a cloud vendor s Infrastructure as a Service (IaaS) can prove challenging because project teams must create a development environment before application building can start. Creating the environment takes time and staff with specialized skills -- resources that many organizations lack. No matter what development or deployment model a company uses, there are some common challenges. Some of the most important issues include: accessing computing and storage resources, managing complex middleware, development cycles, and team collaboration. Accessing and scaling compute and storage resources Before embarking on any project, a systems integrator must try to estimate the amount of compute and storage capacity that will meet the objectives and business requirements. If the SI underestimates or overestimates resources the project costs and process will suffer. This scenario is even more complicated when a system Integrator has to leverage a client s existing systems that may be inadequate to support complex software changes. Middleware complexities require highly skilled developers Every development group has their own preferred tools. As more tools are introduced, a complex and fragile stack of software tools and platforms is Page 2
formed, which requires skilled individuals for maintenance and management. If a developer with deep knowledge of a tool or scripts leaves the company, a project can be delayed or derailed. Additionally, bottlenecks occur when the person with most familiar with a certain tool is overwhelmed with requests for services from different groups. Managing fast-paced development cycles Mobile devices and web-based services have created a new generation of dynamic applications that are constantly updated. Companies make frequent changes to these applications in order to add new features and functionality and make improvements that address user feedback. While traditional applications would be updated several times a year, these new dynamic applications are often changed every few hours. In fact, users now expect their applications to be improved on a regular basis. This shift to frequently updated applications means that project teams must be able to make modifications in record time. Traditional development and deployment cycles wait to accumulate a large number of code changes to incorporate into periodic builds. This means that each new build is time consuming and error prone, not the type of always working software models required by today s businesses. Platform as a Service reduces many of the complexities of the development and deployment process and makes client engagements more approachable to teams with more general skill sets. In response to increased expectations, many organizations are striving for continuous delivery models where new functionalities are rolled out on a consistent basis. Systems integrators are therefore required to discover new software development and deployment strategies to keep pace with these dynamic application requirements. Collaboration and coordination across an organization Coordinating between teams across regions is a common challenge for systems integrators. Passing off assignments from one group to another and reporting on the state of development becomes more complicated as projects grow in complexity. As projects grow and teams become more distributed, it is inevitable that errors creep in. The errors that are introduced by different groups are often difficult to locate and time consuming to fix. How PaaS Changes the Traditional Development and Deployment Process Platform as a Service reduces many of the complexities of the development and deployment process and makes client engagements more approachable to teams with more general skill sets. PaaS provides a systems integrator with a managed environment that brings together integrated middleware and development services to support the development organization. Capabilities ranging from compilers, development tools, data management, security, and middleware are abstracted in a PaaS environment and hidden from the developer. In addition, a well-designed PaaS environment automates routine tasks, improves collaboration between development and operations teams and ultimately allows systems integrators to deliver solutions faster and at a more competitive price point. Page 3
For a Java systems integrator, a PaaS environment means that the platform provider manages all of the tools and services needed to build, run and manage an application. The managed PaaS environment sits on top of Infrastructure as a Service (Iaas). The IaaS can be in the form of an on-premises private cloud or a public cloud from a vendor such as Amazon Web Services (AWS), Rackspace, or HP. PaaS addresses many of the challenges that organizations encounter with traditional development and deployment. For example, a PaaS environment standardizes middleware, makes compute and storage resource more accessible, streamlines expenses so that the organization only needs to pay for what they use, and improves collaboration between development teams. Standardizing middleware infrastructure services PaaS provides hosted middleware such as databases and distributed caching technologies, to ensure zero data and transaction loss as a system dynamically scales. PaaS leverages Infrastructure as a Service (IaaS). PaaS on top of IaaS helps reduce complexities and ensure consistency and manageability of resources. Additionally, by having a standardized middleware layer, the chance of creating inadvertent errors is greatly reduced. With PaaS,... resources can be quickly acquired from a pool of shared software assets through a self-service process....securing highquality infrastructure can be achieved faster and at a lower cost than procuring and installing systems onpremises. Ease of service provisioning Systems integrators using a PaaS environment are provided with an easy provisioning process for development services, including build, test, and repository services. The bottlenecks associated with a non-standard environment are eliminated. This approach improves efficiency, reduces errors, and ensures consistency in the management of the development lifecycle. Improving control over IT resources With PaaS, additional resources can be quickly acquired from a pool of shared software assets through a self-service process. When a client engagement team no longer needs the resources they can be automatically returned to the resource pool. Being able to control resources is especially important for SIs who are working with a client s weak in-house IT infrastructure. Obtaining highquality infrastructure can be achieved faster and at a lower cost than procuring and installing systems on-premises. Improving collaboration PaaS changes the way that client engagement teams interact with resources. The traditional application development process requires significant coordination among different teams using many different tools. Therefore, it is difficult for client teams to assess the progress of a project. With PaaS, a project becomes more transparent and the state of software becomes more visible to the organization. For example, one team may report that a module of an application is complete even though that application was not tested against all the browsers being used by customers. With PaaS, the client team can immediately determine whether or not the software is working, and if it is ready to be released to manufacturing or staging across the entire application lifecycle. This lifecycle support is a native capability of PaaS. Page 4
Java Systems Integrators Using PaaS to Deliver Solutions On Time and Under Budget A European Java systems integrator that was feeling pressure from clients to deliver solutions in shorter time frames and at lower cost, began exploring ways to make development and deployment cycles more streamlined and efficient. One of the top priorities when the SI was searching for efficiencies was to make sure that any alternative would not only decrease project time and costs, but would also provide clients with a robust application. This meant that any alternative development and deployment methods needed to be highly scalable, reliable, and secure. In addition, the systems integrator s employees had extensive Java knowledge and retraining the developers would be costly. The search led the SI to the CloudBees Platform as a Service. The CloudBees PaaS supports a number of different JVM languages, allowing the SI to focus on Java application development rather than on the details of the development environment. The CloudBees PaaS supports a number of different JVM languages, allowing the SI to focus on Java application development rather than on the details of the development environment. Mid-sized client with brittle hardware Systems integrators must often work with an existing infrastructure that is not designed to handle modern workloads. The European systems integrator began a challenging engagement with a vehicle rental company. Not only did the rental company have a limited budget, but its IT environment only consisted of a static website, an aging, unreliable server, and no in-house IT capabilities. Because of the lack of a modern infrastructure, the company executed most of its rental transactions over the phone. The business goal was to improve the value of customer interactions, increase loyalty and ultimately drive more business through their website -- all without creating an entirely new infrastructure. In effect, what the rental agency needed was a new system that required little skill to maintain and at a cost the client could afford. Typically, a mandate from a client to dramatically change the way it engages with customers requires significant investments in infrastructure. However, a company like the rental agency that is relatively small, often lacks the required IT infrastructure. Traditionally, the SI would have had to procure and integrate new systems and software in order to create a reliable environment. However, PaaS allowed the European systems integrator to deliver a solution that fundamentally changed the way the rental company conducted business without requiring a large upfront cost or a lengthy implementation process. The SI used the CloudBees PaaS to, in essence, bring their own development environment rather than depending on the client s unreliable system. The systems integrator was able to focus its time and budget on creating a solution that could differentiate its business from competitors. Large complex client with a short time frame The same European systems integrator was able to use the CloudBees PaaS to fit the needs of a much larger, complex international transportation company that needed to quickly create an online travel transaction system. The company s customers were beginning to demand easier and faster ways to book travel from Page 5
any device they might be accessing. Therefore, the new system needed to serve both desktop and mobile users. Unlike the vehicle rental agency, this company had a large complex IT organization. However, the company needed to react to changing customer demands quickly because of competitive concerns. The in-house software development organization was unable to react because of complex internal processes and a long list of maintenance on existing systems. The systems integrator was able to bypass many of the internal software development and deployment issues by using a PaaS approach. Using the CloudBees platform, the SI was ready to immediately begin creating the application. The SI worked closely with the company s business strategy and innovation task force to create a solution that would best fit the customer s expectations. By circumventing the incumbent processes, the business was able to quickly rollout a new service to customers. The resulting e-booking system is able to handle customer demand during peak holiday travel times while also being able to scale down during less active times. Because the PaaS relied on common, standard tooling that all Java developers were familiar with, and the fact that a development platform was already in place, the entire system was operational within a week of the project inception. Born on the web start-up with little budget and time Born on the web start-ups have the challenge of needing to create reliable, sophisticated applications, that quickly interconnect data from a number of sources. They need a consistent and predictable environment that keeps customers coming back. In addition, many of these web-only companies have great innovative ideas, but must implement them with limited budgets. In this case, the systems integrator began working with an emerging mobile phone company. The company planned to sell its phones only through the web. There would be no IT infrastructure, no stores, no servers, and no system engineering staff. The plan called for completing the entire phone sale and activation process in the cloud. The startup needed a systems integrator that could help them quickly open the business, and a computing model that could grow as demand increased. Key to the company s business model was the need to outperform the competition on price by reducing costs wherever possible. The CloudBees PaaS allowed the systems integrator to meet the start-up s requirements while allowing them to provide savings to customers. Because the PaaS relied on common, standard tooling that all Java developers were familiar with, and the fact that a development platform was already in place, the entire system was operational within a week of the project inception. The start-up is now offering customers phones and mobile plans at nearly a third the price of its competitors. The resulting infrastructure provided the start-up with a highly sophisticated, polished application that operates consistently without surprises. The SI s solution provided this emerging company with a set of robust and feature-rich applications that are typically only within reach of large enterprises. Page 6
PaaS best practices Through many customer engagements, this systems integrator discovered some key best practices based on the use of the CloudBees PaaS environment. Three of the key best practices include: 1. Embrace a continuous delivery model. To remain relevant, successful applications must be updated regularly with new functionality and improvements. Customers expect their feedback to be addressed quickly and that new functionality will be made continuously available without business interruption. 2. Stick with the PaaS platform s predefined set of tools. If software development team members use tools that aren t part of the prescribed PaaS environment, they will lose some of the benefit of working with a PaaS. The development team can work more efficiently and with fewer errors by using the vendor s suggested tools. 3. Continually evaluate emerging standards. Cloud computing is still evolving and there are emerging standards that need to be constantly evaluated in order to avoid vendor lock-in. PaaS has emerged as a unified environment that gives client teams an effective way to satisfy customer requirements in a sophisticated, efficient, and cost effective manner. Conclusion As the cloud emerges as a development and deployment model, systems integrators have a huge opportunity to offer innovative solutions to a wide variety of customers. PaaS has emerged as a unified environment that gives client teams an effective way to satisfy customer requirements in a sophisticated, efficient, and cost effective manner. By lowering the cost of entry, speeding development, and decreasing the skill-level needed by client teams, PaaS allows system integrators to position themselves to create solutions that are highly tailored to solve business challenges and create new opportunities. Page 7
About Hurwitz & Associates Hurwitz & Associates is a strategy consulting, market research and analyst firm that focuses on how technology solutions solve real world customer problems. Hurwitz research concentrates on disruptive technologies, such as Big Data and Analytics, Cloud Computing, Service Management, Information Management, Application Development and Deployment, and Collaborative Computing. Their experienced team merges deep technical and business expertise to deliver the actionable, strategic advice clients demand. Additional information on Hurwitz & Associates can be found at www.hurwitz.com. Copyright 2013, Hurwitz & Associates All rights reserved. No part of this publication may be reproduced or stored in a retrieval system or transmitted in any form or by any means, without the prior written permission of the copyright holder. Hurwitz & Associates is the sole copyright owner of this publication. All trademarks herein are the property of their respective owners. 13A Highland Circle Needham, MA 02494 Tel: 617-597-1724 www.hurwitz.com