Successfully reported this slideshow.
We use your LinkedIn profile and activity data to personalize ads and to show you more relevant ads. You can change your ad preferences anytime.

Microservice Builder: A Microservice DevOps Pipeline for Rapid Delivery and Promotion

1,748 views

Published on

Presentation from IBM InterConnect 2017.
Abstract: Acceleratate your microservice delivery and promotion with an out-of-box DevOps pipeline! In this session, you'll learn how to use the Project Liber8 DevOps pipeline. We will explore its anatomy, operation, visualization, customization and ecosystem integration. We will further examine its use in deploying to IBM Cloud and on-premise deployments. A live demo will be used to reinforce concepts.

Published in: Software
  • Be the first to comment

  • Be the first to like this

Microservice Builder: A Microservice DevOps Pipeline for Rapid Delivery and Promotion

  1. 1. InterConnect 2017 Microservice Builder: A Microservice DevOps Pipeline for Rapid Delivery and Promotion David Currie @dcurrie david_currie@uk.ibm.com Jeremy Hughes jeremy.hughes@uk.ibm.com
  2. 2. Please note IBM’s statements regarding its plans, directions, and intent are subject to change or withdrawal without notice at IBM’s sole discretion. Information regarding potential future products is intended to outline our general product direction and it should not be relied on in making a purchasing decision. The information mentioned regarding potential future products is not a commitment, promise, or legal obligation to deliver any material, code or functionality. Information about potential future products may not be incorporated into any contract. The development, release, and timing of any future features or functionality described for our products remains at our sole discretion. Performance is based on measurements and projections using standard IBM benchmarks in a controlled environment. The actual throughput or performance that any user will experience will vary depending upon many factors, including considerations such as the amount of multiprogramming in the user’s job stream, the I/O configuration, the storage configuration, and the workload processed. Therefore, no assurance can be given that an individual user will achieve results similar to those stated here.
  3. 3. Agenda Introducing Microservice Builder (Beta) On-Prem DevOps Pipeline Demo
  4. 4. Introducing Microservice Builder (Beta)
  5. 5. The world is becoming more connected than ever Businesses must be ready to face the challenge 5 6.2 TB of data for each person on earth 25+ million apps available 4.5 billion connected people • A better, more compelling customer experience • An infrastructure that scales out autonomously • To bring teams together across a partner ecosystem • Continuous innovation to deliver software faster, consistently, and reliably We need: To win in the connected economy, enterprises are focusing on interactions and value exchange across a partner ecosystem
  6. 6. Software delivery is at the heart of today’s top trends Most CxOs view cloud computing, mobile solutions and the Internet of Things (IoT) – technologies already in play today - as likely to predominate in the coming three-to-five years.* 6 % 8 think IT security is the top risk Mobile solutions Internet of Things (IoT) Cloud computing Kazuo Hirai, CEO, Sony Corporation, Japan “Disruptive technologies could change the fundamentals of our business.” Resiliency built within the app itself – not just the infrastructure 24 7 6 * Redefining Boundaries, 2015 Global C-Suite Study, IBM Institute for Business Value 6
  7. 7. The Microservices Revolution Connecting people and digital apps better than ever before 7 ✓ Decomposed into small pieces ✓ Loosely coupled ✓ Easier to scale development ✓ Improved fault isolation ✓ Each service can be developed and deployed independently ✓ Eliminates any long-term commitment to a technology stack Why? A microservices architecture is gaining traction for developing and delivering cloud-native workloads across public, private, and hybrid application environments 60% of new apps will use cloud-enabled continuous delivery and cloud-native application architectures to enable faster innovation and business agility** (Bluemine) 60%
  8. 8. 8 An application architecture designed to leverage the strengths and accommodate the challenges of a standardized cloud environment, including concepts such as elastic scaling, immutable deployment, disposable instances, and less predictable infrastructure. Cloud-Native Microservices DevOps Containers Cloud Native Access to Services
  9. 9. Cloud Native and Microservices: The journey Single Container Single Service Microservices App Single Developer (experimentation) A Single Team Multiple Teams Collaborating a A A B C Problem Solved Docker Containers Pods , Clusters Stagesof Maturity Platform Services Technology /Ecosystem Portability Orchestration Clustering Integration Collaboration Innovation k8 swarm 9
  10. 10. Adopting Microservices architecture requires a scale-out infrastructure Target 2020 Architecture So software delivery teams can rapidly build and scale applications as services to interconnect enterprise systems of record, mobile systems and IoT apps Scale Out Systems Hardware Infrastructure 10 Container Cloud ✓ Microservices ✓ Auto Scaling ✓ CI/CD ✓ DevOps ✓ Docker ✓ Linux ✓ PaaS ✓ Open Source ✓ ISV Containers IBM Bluemix
  11. 11. 11 Why to define the programming models? • Provide guidance on developing microservices • Consistent qualities of service (scaling, health, analytics) across all envs • Make Java microservices portable and interoperable • Ensure applications have overall control over the environment provided similar checks Trace Correlation: A model to provide vendor and application specific data A model to build a robust microservices A model of isolating config source from microsvcs code Monitoring: Fault Tolerance: Config: A loose-coupling model for developing microservicesCDI: Java programming model: - Collaborate in MicroProfile.io- led evolution of Java EE focused on microservices. Open collaboration led by IBM & Red Hat The Java programming model for microservices A model to correlate trace Health Check: A model to provide health check data Security: A model to secure microservices
  12. 12. Key Concepts -> Bringing Resiliency To Programming Model • Retry – execute the same operation multiple times on failures • Fallback – provide an alternative result for a failed execution. Can be used to suppress exceptions and provide a default result. • Timeout – When making a service invocation, the request must have a timeout in order to prevent from indefinite wait. • CircuitBreaker – provide a way to avoid repeating timeouts. • Bulkhead – failure in one part doesn’t take down the whole app. ….I would like to retry the same operation on some failure 12 As a developer, …. …..I would like to fall back to a secondary service if the primary service is down. ….I would like to get timeout on request instead of waiting indefinitely. ….I would like to fail fast after a repeating failure instead of waiting for timeout to occur. ….I would like to make sure one service failure does not cause the whole application to fail.
  13. 13. 13 Cloud Native Developer Experience IBM Project Generators IBM Developer CLI: create, run, test, deploy Application Patterns: 1) Web 2) Mobile 3) Backend-4-Frontend 4) Microservice Downloaded Projects IBMDeveloperHub
  14. 14. Developer CLI Workflow IBM Developer CLI Developer “dev” Plugin Developer Local Containers Container Svc ”cs” Plugin MiniKube Armada / Kubernetes IBM Project Generator Developer “dev” Plugin Developer “dev” Plugin Local Containers In a basic env, Docker can be used to manage single container, using all remote services. A more advanced and proper env is to use MiniKube locally to easily manage multiple interrelated containers. Note: DevOps flow not shown Docker 14
  15. 15. 15 Microservice Integration Fabric Runtime (Liberty, Swift, Node…) Cloud-native and Microservices Run Environments Enable A/B tesing, Canary and resiliency testing in production. Integrate with pipeline and control gates for security and quality. Seamlessly integrated with on Bluemix / Containers or on-prem Kubernetes Polyglot integration fabric Common OSS architecture IBM Spectrum Conductor for Containers X86, Power & Z On Premise Focus Customer-managed IBM-managed IBM Bluemix Container Service Bluemix Cloud DevOps using: Jenkins (or Udeploy) On Premise Focus IBM Bluemix Container Service using Open Tool Chain
  16. 16. Business benefits: 1. Frictionless application lifecycle and user experience from laptop through production 2. Accelerate software delivery leveraging Continuous Delivery Pipeline 3. Easily connect existing assets with Watson Cognitive services to discover actionable insights Standardization of programming model for microservices Innovate through ease of connecting w/Watson & Connect Services Dev Tools 4. Real-time diagnosis and resolution of app infrastructure: minimizing downtime and maintaining SLAs Monitoring services for real-time visibility Automation through IBM DevOps 5. Achieve cost optimization in any cloud with “seamless” portability across popular cloud providers, public, dedicated, private, and hybrid IBM’s approach: Providing a A Turnkey Solution to Build Microservices collectives Application Dev Env Fabric Pipeline On-Off premise Virtualization through abstraction of service discovery & scaling across infra. service offerings End-to-end user experience for development and deployment of Microservice and hybrid apps! 16
  17. 17. On-Prem DevOps Pipeline
  18. 18. Deploy via Helm CLI or Conductor for Containers App Center Required values: GitHub organization(s) GitHub OAuth User/Token GitHub App ID and Secret GitHub IDs for admin users Jenkins email address Optionally: Regex for repositories Deployed as Helm Chart
  19. 19. Pipeline – Deploy on Green GitHub/GitHub Enterprise ▾ my-org ► service-a ▾ service-b ► src ▾ manifests Jenkinsfile pom.xml deploy.yaml Dockerfile ► my-org ► service-b ► master Deploy
  20. 20. Pipeline – Gated Deployment GitHub/GitHub Enterprise ▾ my-org ► service-a ► service-a-deploy ▾ service-b ▾ service-b-deploy ► src ▾ manifests Jenkinsfile pom.xml deploy.yaml Dockerfile ► my-org ► service-b ► master ► my-org ► service-b-deploy ► master Jenkinsfile
  21. 21. Build Jenkinsfile node('master') { def utils = load "/scripts/buildUtils.groovy" stage ('Extract') { checkout scm } stage ('Build') { utils.mavenBuild ('clean', 'package', 'docker:build') } stage ('PushToRepo') { utils.pushToRepo ('back-end') } }
  22. 22. Deploy Jenkinsfile/YAML node('master') { def utils = load "/scripts/buildUtils.groovy" stage ('Extract') { checkout scm } stage ('deployFromRepo') { utils.deploy() } } spec: containers: - name: back-end image: registry/service:5e3e666 ports: …
  23. 23. Demo
  24. 24. Microservice Builder (Beta) End-to-End user experience to develop and deliver microservices, hybrid and containerized apps 2 4 In 3 steps Create and Run your microservices, hybrid and containerized apps Set up your environment, fabric and DevOps pipeline in Minutes https://developer.ibm.com/microservice-builder Innovate with
  25. 25. Questions?
  26. 26. Summary Introducing Microservice Builder (Beta) On-Prem DevOps Pipeline Demo
  27. 27. Notices and disclaimers Copyright © 2017 by International Business Machines Corporation (IBM). No part of this document may be reproduced or transmitted in any form without written permission from IBM. U.S. Government Users Restricted Rights — use, duplication or disclosure restricted by GSA ADP Schedule Contract with IBM. Information in these presentations (including information relating to products that have not yet been announced by IBM) has been reviewed for accuracy as of the date of initial publication and could include unintentional technical or typographical errors. IBM shall have no responsibility to update this information. This document is distributed “as is” without any warranty, either express or implied. In no event shall IBM be liable for any damage arising from the use of this information, including but not limited to, loss of data, business interruption, loss of profit or loss of opportunity. IBM products and services are warranted according to the terms and conditions of the agreements under which they are provided. IBM products are manufactured from new parts or new and used parts. In some cases, a product may not be new and may have been previously installed. Regardless, our warranty terms apply.” Any statements regarding IBM's future direction, intent or product plans are subject to change or withdrawal without notice. Performance data contained herein was generally obtained in a controlled, isolated environments. Customer examples are presented as illustrations of how those customers have used IBM products and the results they may have achieved. Actual performance, cost, savings or other results in other operating environments may vary. References in this document to IBM products, programs, or services does not imply that IBM intends to make such products, programs or services available in all countries in which IBM operates or does business. Workshops, sessions and associated materials may have been prepared by independent session speakers, and do not necessarily reflect the views of IBM. All materials and discussions are provided for informational purposes only, and are neither intended to, nor shall constitute legal or other guidance or advice to any individual participant or their specific situation. It is the customer’s responsibility to insure its own compliance with legal requirements and to obtain advice of competent legal counsel as to the identification and interpretation of any relevant laws and regulatory requirements that may affect the customer’s business and any actions the customer may need to take to comply with such laws. IBM does not provide legal advice or represent or warrant that its services or products will ensure that the customer is in compliance with any law.
  28. 28. Notices and disclaimers continued 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 in connection with this publication 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. IBM does not warrant the quality of any third-party products, or the ability of any such third-party products to interoperate with IBM’s products. IBM expressly disclaims all warranties, expressed or implied, including but not limited to, the implied warranties of merchantability and fitness for a particular, purpose. The provision of the information contained herein is not intended to, and does not, grant any right or license under any IBM patents, copyrights, trademarks or other intellectual property right. IBM, the IBM logo, ibm.com, Aspera®, Bluemix, Blueworks Live, CICS, Clearcase, Cognos®, DOORS®, Emptoris®, Enterprise Document Management System™, FASP®, FileNet®, Global Business Services®, Global Technology Services®, IBM ExperienceOne™, IBM SmartCloud®, IBM Social Business®, Information on Demand, ILOG, Maximo®, MQIntegrator®, MQSeries®, Netcool®, OMEGAMON, OpenPower, PureAnalytics™, PureApplication®, pureCluster™, PureCoverage®, PureData®, PureExperience®, PureFlex®, pureQuery®, pureScale®, PureSystems®, QRadar®, Rational®, Rhapsody®, Smarter Commerce®, SoDA, SPSS, Sterling Commerce®, StoredIQ, Tealeaf®, Tivoli® Trusteer®, Unica®, urban{code}®, Watson, WebSphere®, Worklight®, X-Force® and System z® Z/OS, are trademarks of International Business Machines Corporation, registered in many jurisdictions worldwide. Other product and service names might be trademarks of IBM or other companies. A current list of IBM trademarks is available on the Web at "Copyright and trademark information" at: www.ibm.com/legal/copytrade.shtml.
  29. 29. InterConnect 2017

×