Creating Applications in Bluemix Using the Microservices Approach

Similar documents
Creating Robust and Effective Claims Solutions with IBM Case Manager IBM Redbooks Solution Guide

Best practices. Deploying Your Service Package. IBM Platform Symphony

Migration Use Cases with the Migration Manager IBM Redbooks Solution Guide

Best practices. Troubleshooting your own application. IBM Platform Symphony

IBM SmartCloud Control Desk: High Availability and Disaster Recovery Configurations IBM Redbooks Solution Guide

Adding IBM LTFS EE tape tier to an IBM SCSA managed storage cloud

Tracking Payments and Securities with IBM Financial Transaction Manager V2 IBM Redbooks Solution Guide

IBM PowerHA SystemMirror for AIX Enhancements IBM Redbooks Solution Guide

IBM System z in a Mobile World IBM Redbooks Solution Guide

Creating High-Speed Content Archival and Retrieval Solutions Using IBM Content Manager OnDemand IBM Redbooks Solution Guide

IBM Financial Transaction Manager for SEPA Services IBM Redbooks Solution Guide

Solutions to Accelerate Compliance with Affordable Care Act (ACA) Mandates and HIPAA Standards IBM Redbooks Solution Guide

Agile Lifecycle Manager Version 1.1. Release Notes. 31 August 2017 IBM

IBM Tivoli Netcool Performance Manager Wireline Component Document Revision R2E1. Documentation Overview

IBM Predictive Maintenance and Quality (Version 2.0) IBM Redbooks Solution Guide

IBM Maximo Asset Health Insights Version 7 Release 6. Installation Guide IBM

The Era of the Now Embracing Two Speed Integration by IBM

IBM TRIRIGA Version 10 Release 4.0. Request Central User Guide

IBM Cloud Object Storage System Version FIPS Reference Guide IBM

IBM Watson IoT Maximo Asset Management Version 7.6 Release

IBM Rational Rhapsody - IBM Rational Software Architect RealTime edition. Integration

IBM Maximo Mobile Asset Manager Version 7 Release 5. User Guide

The solution for the Error message: KFWITM392E Internal error occurred during logon TEP

IBM Kenexa Lead Manager. IBM Kenexa Lead Manager Release Notes. January 2017 IBM

Secure Hybrid Cloud Architecture with the PureApplication Family

The Advanced Meter Data Management Solution for Next Generation Utility Service

IBM TRIRIGA Version 10 Release 5. Facility Assessment User Guide IBM

IBM Cognos Dynamic Query Analyzer Version Installation and Configuration Guide

IBM StoredIQ Data Script Version User Guide SC

IBM Maximo Asset Management Version 7 Release 6. Help Installation Guide IBM

IBM Kenexa BrassRing on Cloud. IBM Kenexa BrassRing on Cloud Release Notes. July 2016 IBM

IBM Tivoli Advanced Audit for DFSMShsm PTF UI39512: GFS/AFM TMS support. Version 2 Release 5 IBM

IBM TRIRIGA Version 10 Release 4.0. Facility Assessment User Guide

Bluemix Overview. Last Updated: October 10th, 2017

Redpaper. Maximize IBM System z ROI with Open Cloud Management and Policy-based Optimization. David Jackson David Handy Kershaw Mehta

IBM Configure Rational Insight for Rational Asset Manager

IBM TRIRIGA Version 10 Release 5.2. Document Management User Guide IBM

IBM TRIRIGA Version 10 Release 4.0. Inventory Management User Guide

IBM Cloud Garage Method Field Guide

IBM Maximo APM - Predictive Maintenance Insights SaaS. User Guide IBM

IT portfolio management template

IBM TRIRIGA Version 10 Release 4.0. Procurement Management User Guide

Integrating PDM and ERP Systems with IBM Manufacturing Release Management IBM Redbooks Solution Guide

Getting Started with FASB/IASB Support in TRIRIGA ISM Release

IBM Maximo Asset Health Insights Version 7 Release 6. Installation Guide IBM

Amsterdam. Accelerate digital transformation with the cloud for smarter business. Reimagining applications & data for growth and innovation

IBM Domino Applications in Bluemix. Martin Donnelly - IBM Ireland

IBM TRIRIGA Version 10 Release 5.2. Inventory Management User Guide IBM

Smarter Environmental Analytics Solutions: Offshore Oil and Gas Installations Example IBM Redbooks Solution Guide

IBM TRIRIGA Version

Front cover Connecting Your Business to the Multichannel Customer with freedomone and IBM Worklight

IBM Kenexa Lead Manager. IBM Kenexa Lead Manager Release Notes. June 1, 2017 IBM

IBM Cloud White Paper. How to get the benefits of cloud behind your firewall: IBM Cloud Private

IBM TRIRIGA Version 10 Release 5.2. Procurement Management User Guide IBM

IBM TRIRIGA Version 10 Release 5.2. Procurement Management User Guide IBM

Using the IBM Cloud App Management Database Load Projections Spreadsheet

IBM Spectrum Scale. Transparent Cloud Tiering Deep Dive

IBM Rational System Architect Cognos Reports Quick Start Guide Release

MergingWorkOrderTracking(CM) Features into Work Order Tracking (Tr)

Deploy de aplicações na nuvem usando serviços de IoT e Computação Cognitiva

Release 2 Release Notes Patch 1

IBM Global Technology Services. Weaving the solution Dharanibalan Gurunathan 1 st August, Mumbai

IBM Planning Analytics Last updated: New Features Guide IBM

IBM Decision Optimization and Data Science

IBM Kenexa Lead Manager. IBM Kenexa Lead Manager Release Notes. July, 2017 IBM

Integration and infrastructure software Executive brief May The business value of deploying WebSphere Portal software in an SOA environment.

VP SECURITIES A/S cuts costs with modern development tools

DevOps architecture overview

IBM Cloud Operating Environment

IBM Db2 Warehouse. Hybrid data warehousing using a software-defined environment in a private cloud. The evolution of the data warehouse

IBM Kenexa Lead Manager. IBM Kenexa Lead Manager Release Notes. April 2017 IBM

Oracle Management Cloud

Release 2 Installation Guide

Using IBM UrbanCode Deploy to automate the migration and deployment of on-premise WebSphere application and configuration to IBM Bluemix

IBM Sterling B2B Integrator

BLOCKCHAIN CLOUD SERVICE. Integrate Your Business Network with the Blockchain Platform

IBM WebSphere Cast Iron Introduction and Technical Overview

IBM Kenexa Lead Manager. IBM Kenexa Lead Manager Release Notes. June 26, 2017 IBM

Realize More with the Power of Choice. Microsoft Dynamics ERP and Software-Plus-Services

On demand operating environment solutions To support your IT objectives Transforming your business to on demand.

Tivoli Netcool Performance Manager for Wireless Development Toolkit Release Notes Version 5.0.5

Benefits of Deploying Oracle E-Business Suite on Oracle Cloud At Customer O R A C L E W H I T E P A P E R D E C E M B E R 2017

Automate, manage and optimize business processes in the cloud

WEBCENTER PORTAL CLOUD. Create Engaging, Integrated Digital Experiences

Always On. Considerations When Adopting the Cloud. Redguide. Front cover. Bertrand Portier Edward Calusinski

IBM Marketing Cloud introduces IBM Real Time Personalization to enable marketers to deliver optimized content, tailored to each individual

IBM Sterling Gentran:Server for Windows

Release 2 Installation Guide

CONNECTIONS PINK. the future of sharing and collaboration. Petr Kunc IBM Collaboration Solutions November 2017

Hybrid Cloud Adoption: Transforming to Hybrid Cloud with DevOps, Microservices, Containers and APIs

MANAGEMENT CLOUD. Leveraging Your E-Business Suite

Cognitive enterprise archive and retrieval

Optimize your investments with IBM Tivoli Storage Productivity Center and IBM SmartCloud Virtual Storage Center IBM Redbooks Solution Guide

IBM United States Software Announcement , dated August 21, 2018

Adaptive work environments

Introduction to IBM Technical Computing Clouds IBM Redbooks Solution Guide

Microsoft Business Solutions Axapta Enterprise Portal makes it easy for you to connect with your business community over the Internet.

The Composable Business

IBM Runbook Automation and IBM Alert Notification deliver more agile, automated operations management

Oracle WebCenter Sites

Transcription:

Front cover Creating Applications in Bluemix Using the Microservices Approach Gucer Vasfi Shishir Narain Solution Guide

Creating Applications in Bluemix Using the Microservices Approach Across 2014 and into 2015, microservices became the new buzzword for application development style. So what exactly are microservices? Microservices is an architecture style in which large complex software applications are composed of one or more services. Microservices are narrowly focused, independently deployable, loosely coupled, language-agnostic services that fulfill a business capability. These multiple microservices, communicating with each other using language-agnostic APIs such as REST, work together to fulfill the business needs of the application. These microservices are also applications in themselves and are often owned by small teams. Unlike the normal practice of a separate application support team, the team that developed the microservices is generally also responsible for their support. Figure 1 shows an application developed using the microservices approach. Figure 1 Microservices approach Copyright IBM Corp. 2015. All rights reserved. ibm.com/redbooks 1

This IBM Redbooks Solution Guide describes how microservices solution addresses some of the business problems related to monolithic applications and why IBM Bluemix is a great platform for developing applications in a microservices approach. Did you know? One question that is often asked is how small should these microservices be? A good rule of thumb for sizing microservices is the two-pizza team rule: The teams that own the microservices shouldn t be larger than what two pizzas can feed! The reason for this rule of thumb is small teams make it easier to communicate more effectively among the team members. Business value Large monolithic applications were the de-facto standard for building large applications but practitioners noticed many problems with this approach: Difficult to maintain, modify, and become productive quickly, which results in long cycles of time-to-market to roll out new services Single deployment unit forces you to build/test/deploy the entire unit even for a small change Cannot scale a portion so you must scale the entire application Difficult to on-board new developers due to the large code base Managing code dependencies is a challenge Get stuck with a single choice of technology To overcome this problem, a few leading architects have tried partitioning the application into small microservices, with each microservice working as an independent application and being owned by a small team. Business owners saw the benefit of this approach quickly because they want their teams to be able to respond rapidly to new customer and market needs, but monolithic application development approach makes IT response slow. Microservices are much more aligned to business as they allow for more frequent delivery and faster delivery times. This allows business owners to get quicker feedback and adjust their investments. Microservices also provide other business value: Smaller focused teams enables business owners to more easily manage resources more effectively, for example move them from low impact business areas higher impact areas. Enables a better user experience by allowing to scale individual microservice for removing bottlenecks. Easy determination and elimination of duplicate services, thus reducing development costs. 2 Creating Applications in Bluemix Using the Microservices Approach

Solution overview The microservices architecture pattern suggests partitioning the application into many small microservices with following guidelines: Small and focused: Microservices should focus on doing one task and doing it well. These microservices should be small enough so that you can rewrite the entire microservice easily if needed. Each microservice is an application in itself and should have its own source code management repository and its own delivery pipeline for builds and deployment. Loosely coupled: Loose coupling is an essential characteristic of microservices. You need to be able to deploy a single microservice on its own. There must be zero coordination necessary for the deployment with other microservices. This loose coupling enables frequent and rapid deployments. Language-agnostic: Using the correct tool for the job is important. Microservices should be built using the programming language and technology that makes most sense for the task at hand. Communication with microservices is by language-agnostic APIs, typically an HTTP-based resource API such as REST. Bounded context: Microservices do not know anything about other microservices surrounding them. This ensures that the microservices have clearly defined boundaries. Figure 2 shows the microservices pattern. Compare it with the monolithic pattern in Figure 3 on page 4. Figure 2 Microservices architecture with multiple languages and data store technologies 3

Figure 3 shows the monolithic pattern. Figure 3 Typical monolithic application landscape What is a monolithic application?: A monolithic application is an application where all of the logic runs in a single app server. Typical monolithic applications are large and built by multiple teams, requiring careful orchestration of deployment for every change. We also consider applications monolithic if, while there are multiple API services providing the business logic, the entire presentation layer is a single large web app. In both cases, microservice architecture can provide an alternative. IBM Bluemix provides a well-rounded platform for building, running, and managing your applications that can alleviate much of the operational, networking, and other infrastructural requirements of the microservices architecture. Bluemix enables continuous delivery capabilities for application lifecycle management (ALM). Bluemix aims to simplify software development and management on the cloud by providing a complete set of flexible runtime environments, integrated services, and DevOps tools. Solution architecture IBM Bluemix is built on Cloud Foundry open source technology and provides a platform as a service (PaaS) environment for accelerating new application development. It also provides a DevOps toolset of concepts, practices, tooling, and team organizational structures that enable organizations to more quickly release new capabilities to their clients. Bluemix provides an array of runtime environments and pre-built services to rapidly create applications from a marketplace of IBM and third-party services. Figure 4 on page 5 shows a microservices application developed on Bluemix. IBM MQ Light for Bluemix is a cloud-based messaging service that provides flexible and easy-to-use messaging for Bluemix applications, including applications designed with the microservices approach. Applications using the REST API for inter-communication can use various runtime environments on Bluemix such as Liberty for Java or Node.js. 4 Creating Applications in Bluemix Using the Microservices Approach

Note: REST and messaging do not have to be an either/or proposition. These two approaches can complement each other. In some cases, it can be optimal to combine applications doing REST calls with applications that use message transport to combine the two techniques in the context of microservices. REST can pose a problem when services depend on being up-to-date with data that they do not own or manage. Having up-to-date information requires polling, which quickly can tax a system, especially with many interconnected services. For real-time data, it is often desirable to have the data sent when it changes rather than polling to ask if it has changed. A polling interval might even mean that you miss a change. In these types of situations, a messaging protocol can be better than REST to allow real-time event updates. Users interact with these web applications thorough browsers or mobile devices. These microservices can also communicate with other services on external systems. Figure 4 Developing applications using the microservices approach on Bluemix Why IBM Bluemix DevOps Services is your best friend in a microservices implementation When implementing a new business application in Bluemix, perform a top-down analysis and a functional decomposition to partition the application into services. These services can be created as individual microservices in Bluemix. When building microservices on Bluemix, you can treat each microservice as individual applications on Bluemix. Each application will have its own lifecycle and be managed independently. Each application typically should only have a small set of responsibilities, which usually results in a large set of applications. Usually this situation presents several operational and deployment challenges, which are where IBM Bluemix DevOps Services comes to the rescue. DevOps is an important set of practices and tools to improve efficiencies in software delivery. After deployment, there are additional tools for monitoring, logging, and analytics as well as the ability to easily scale up or down based on changes in the usage or load of your application. 5

Figure 5 shows a typical ALM cycle of a microservice application for a continuous delivery model. Figure 5 Management cycle of a microservice application for a continuous delivery model For more information about how you can develop microservices applications on Bluemix, see Microservices from Theory to Practice: Creating Applications in IBM Bluemix Using the Microservices Approach, SG24-8275. Usage scenarios A number of companies have adopted the microservices architectural patterns to address business challenges particular to their industries. This section describes some examples of microservices adoption. A traditional brick and mortar retailer A traditional brick and mortar retailer had a very large established Java services layer running on various platforms. The existing e-commerce systems were not designed to support mobile platforms nor to allow quick turnaround of changes required to adapt to business requirements. The e-commerce platform was monolithic, designed to construct a web page on the server and serve the entire experience to a browser. The legacy e-commerce layer was reaching end of life and the team decided to replace it with a platform more conducive to agile changes. The existing e-commerce platform had these issues, among others: High response time causing a diminished user experience Poor scalability Low reuse and high maintenance effort/cost High resources consumption 6 Creating Applications in Bluemix Using the Microservices Approach

The IT team chose the microservices pattern and implemented the solution using newer technologies that are more amenable for microservices. If complex changes were required, the request would be passed to the legacy API until a new service in node.js could be created. This approach allowed for the in-place migration of individual services, more control over the user experience due to better ability to detect client disconnects, improved performance due to caching productivity, and faster deployments compared to traditional Java builds. A large e-commerce company The website for a large e-commerce company was originally built as a Ruby on Rails application, but as the company expanded, the single Rails code base grew as well, becoming difficult to maintain and to incorporate new features. This original front-end layer exemplified the monolith pattern. The company embarked on a year-long project to migrate its US web traffic from a monolithic Ruby on Rails application to a new Node.js stack. At the initial phase of the transformation, the front-end layer was redesigned and split it into small, independent, and more manageable pieces. Each major section of the website was built as an independent application. The following are some of the benefits of this architectural transformation: Faster page loads across the site Faster release of new features with fewer dependencies on other teams Reuse of features in the countries where the e-commerce site is available Integration Bluemix platform has native integration with many IBM services such as DB2, BigInsights, and Watson. Your applications can therefore have immediate access to many leading applications from IBM and partners. In addition, you can connect your Bluemix apps to traditional IT (on-premises) systems with the IBM Cloud Integration for Bluemix service as part of a hybrid cloud solution. By using the Cloud Integration service, you can create a Cloud Integration API and publish the API as a private service for your organization. Supported platforms Bluemix has the following requirements: Hardware requirements: Accessing Bluemix requires an Internet connection and a browser. Software requirements: Accessing Bluemix requires an Internet connection and a browser. 7

Ordering information This product is available by using IBM Passport Advantage or IBM Cloud Services Agreement. It is not available as shrinkwrap. Ordering information is shown in Table 1. Table 1 Ordering part numbers and feature codes Program name Program number Charge unit description IBM Bluemix Platform Subscription and Support 5725-S00 Pay Per Use, Per Month, Per Month with Support, Partial Month, Overage Related information For more information, see the following resources: Microservices from Theory to Practice: Creating Applications in IBM Bluemix Using the Microservices Approach, SG24-8275 http://www.redbooks.ibm.com/abstracts/sg248275.html IBM Bluemix Architecture Series: Web Application Hosting on IBM Containers, REDP-5181 http://www.redbooks.ibm.com/abstracts/redp5181.html?open IBM Bluemix Architecture Series: Web Application Hosting on Java Liberty, REDP-5184 http://www.redbooks.ibm.com/abstracts/redp5184.html?open IBM Bluemix product page http://www-01.ibm.com/software/bluemix/ IBM Offering Information page (announcement letters and sales manuals) http://www.ibm.com/common/ssi/index.wss?request_locale=en On this page, enter Bluemix, select the information type, and then click Search. On the next page, narrow your search results by geography and language. Authors This Solution Guide was produced by a team of specialists from around the world working at the International Technical Support Organization, Raleigh Center. Gucer Vasfi is an IBM Redbooks Project Leader with the IBM International Technical Support Organization. He has more than 18 years of experience in the areas of systems management, networking hardware, and software. He writes extensively and teaches IBM classes worldwide about IBM products. His focus has been on cloud computing for the last three years. Vasfi is also an IBM Certified Senior IT Specialist, Project Management Professional (PMP), IT Infrastructure Library (ITIL) V2 Manager, and ITIL V3 Expert. Shishir Narain is an Open Group certified Master IT Specialist with deep skills in IBM middleware products. He works in IBM Software Services for WebSphere at India Software Lab, Bangalore. He has 16 years of experience in developing solutions for multiple clients. He has led several end-to-end IT implementations based on SOA. He holds a Master of Technology degree from Indian Institute of Technology, Kanpur. 8 Creating Applications in Bluemix Using the Microservices Approach

Now you can become a published author, too! Here s an opportunity to spotlight your skills, grow your career, and become a published author all at the same time! Join an ITSO residency project and help write a book in your area of expertise, while honing your experience using leading-edge technologies. Your efforts will help to increase product acceptance and customer satisfaction, as you expand your network of technical contacts and relationships. Residencies run from two to six weeks in length, and you can participate either in person or as a remote resident working from your home base. Find out more about the residency program, browse the residency index, and apply online at: ibm.com/redbooks/residencies.html Stay connected to IBM Redbooks publications Find us on Facebook: http://www.facebook.com/ibmredbooks Follow us on Twitter: http://twitter.com/ibmredbooks Look for us on LinkedIn: http://www.linkedin.com/groups?home=&gid=2130806 Explore new Redbooks publications, residencies, and workshops with the IBM Redbooks weekly newsletter: https://www.redbooks.ibm.com/redbooks.nsf/subscribe?openform Stay current on recent Redbooks publications with RSS Feeds: http://www.redbooks.ibm.com/rss.html 9

10 Creating Applications in Bluemix Using the Microservices Approach

Notices This information was developed for products and services offered in the U.S.A. IBM may not offer the products, services, or features discussed in this document in other countries. Consult your local IBM representative for information on the products and services currently available in your area. Any reference to an IBM product, program, or service is not intended to state or imply that only that IBM product, program, or service may be used. Any functionally equivalent product, program, or service that does not infringe any IBM intellectual property right may be used instead. However, it is the user's responsibility to evaluate and verify the operation of any non-ibm product, program, or service. IBM may have patents or pending patent applications covering subject matter described in this document. The furnishing of this document does not grant you any license to these patents. You can send license inquiries, in writing, to: IBM Director of Licensing, IBM Corporation, North Castle Drive, Armonk, NY 10504-1785 U.S.A. The following paragraph does not apply to the United Kingdom or any other country where such provisions are inconsistent with local law: INTERNATIONAL BUSINESS MACHINES CORPORATION PROVIDES THIS PUBLICATION "AS IS" WITHOUT WARRANTY OF ANY KIND, EITHER EXPRESS OR IMPLIED, INCLUDING, BUT NOT LIMITED TO, THE IMPLIED WARRANTIES OF NON-INFRINGEMENT, MERCHANTABILITY OR FITNESS FOR A PARTICULAR PURPOSE. Some states do not allow disclaimer of express or implied warranties in certain transactions, therefore, this statement may not apply to you. This information could include technical inaccuracies or typographical errors. Changes are periodically made to the information herein; these changes will be incorporated in new editions of the publication. IBM may make improvements and/or changes in the product(s) and/or the program(s) described in this publication at any time without notice. Any references in this information to non-ibm Web sites are provided for convenience only and do not in any manner serve as an endorsement of those Web sites. The materials at those Web sites are not part of the materials for this IBM product and use of those Web sites is at your own risk. IBM may use or distribute any of the information you supply in any way it believes appropriate without incurring any obligation to you. Any performance data contained herein was determined in a controlled environment. Therefore, the results obtained in other operating environments may vary significantly. Some measurements may have been made on development-level systems and there is no guarantee that these measurements will be the same on generally available systems. Furthermore, some measurements may have been estimated through extrapolation. Actual results may vary. Users of this document should verify the applicable data for their specific environment. Information concerning non-ibm products was obtained from the suppliers of those products, their published announcements or other publicly available sources. IBM has not tested those products and cannot confirm the accuracy of performance, compatibility or any other claims related to non-ibm products. Questions on the capabilities of non-ibm products should be addressed to the suppliers of those products. This information contains examples of data and reports used in daily business operations. To illustrate them as completely as possible, the examples include the names of individuals, companies, brands, and products. All of these names are fictitious and any similarity to the names and addresses used by an actual business enterprise is entirely coincidental. COPYRIGHT LICENSE: This information contains sample application programs in source language, which illustrate programming techniques on various operating platforms. You may copy, modify, and distribute these sample programs in any form without payment to IBM, for the purposes of developing, using, marketing or distributing application programs conforming to the application programming interface for the operating platform for which the sample programs are written. These examples have not been thoroughly tested under all conditions. IBM, therefore, cannot guarantee or imply reliability, serviceability, or function of these programs. Copyright IBM Corp. 2015. All rights reserved. 11

This document, REDP-5271-00, was created or updated on September 5, 2015. Trademarks IBM, the IBM logo, and ibm.com are trademarks or registered trademarks of International Business Machines Corporation in the United States, other countries, or both. These and other IBM trademarked terms are marked on their first occurrence in this information with the appropriate symbol ( or ), indicating US registered or common law trademarks owned by IBM at the time this information was published. Such trademarks may also be registered or common law trademarks in other countries. A current list of IBM trademarks is available on the Web at http://www.ibm.com/legal/copytrade.shtml The following terms are trademarks of the International Business Machines Corporation in the United States, other countries, or both: BigInsights Bluemix DB2 IBM Passport Advantage Redbooks Redbooks (logo) WebSphere The following terms are trademarks of other companies: ITIL is a registered trademark, and a registered community trademark of The Minister for the Cabinet Office, and is registered in the U.S. Patent and Trademark Office. IT Infrastructure Library is a registered trademark of the Central Computer and Telecommunications Agency which is now part of the Office of Government Commerce. Java, and all Java-based trademarks and logos are trademarks or registered trademarks of Oracle and/or its affiliates. Other company, product, or service names may be trademarks or service marks of others. 12 Creating Applications in Bluemix Using the Microservices Approach

Back cover REDP-5271-00 ISBN 0738454478 Printed in U.S.A. ibm.com/redbooks