Digital Disruption with DevOps - Reference Architecture Overview

  • Published on
    23-Jan-2018

  • View
    941

  • Download
    4

Embed Size (px)

Transcript

<ul><li><p>Digital disruption with DevOps Reference Architecture Overview</p><p>IBM Cloud Architecture Center</p><p>Sanjeev SharmaGlobal CTO, DevOps AdoptionIBM Distinguished Engineer </p></li><li><p>ContinuousCustomer Feedback </p><p>&amp; Optimization</p><p>Collaborative Development</p><p>ContinuousMonitoring</p><p>Continuous Business Planning</p><p>ContinuousTesting</p><p>Operate Develop/ Test</p><p>Deploy</p><p>Steer</p><p>DevOpsContinuous Feedback </p><p>CultureFoundationalvalues and principles</p><p>ThinkConceptualization refinement, and prioritization of </p><p>capabilities CodeGeneration, </p><p>enhancement, optimization and </p><p>testing of features</p><p>DeliverAutomated </p><p>production and delivery of offerings</p><p>RunServices, options, and capabilities </p><p>required to run in the Cloud</p><p>ManageOngoing </p><p>monitoring, support, and recovery of offerings</p><p>LearnContinuously learn </p><p>based on outcomes from </p><p>experiments</p><p>Continuous Release&amp; Deployment</p><p>Acceleratesoftware delivery </p><p>for faster time to value</p><p>Balance speed, cost, quality and risk </p><p>for increased capacity to innovate</p><p>Reduce time to customer feedback for </p><p>improved customer experience</p><p>Process</p><p>Culture</p><p>Technology</p><p>Enterprise capability for continuous software delivery and management that enables organizations to innovate rapidly to capitalize on new market opportunities, and reduce the cycle </p><p>time to collect and react to customer feedback</p><p>Lean and Agile principles</p><p>Analytics &amp; Cognitive</p><p>https://www.ibm.com/devops</p><p>What is DevOps?</p></li><li><p>Key questions to ask and address in DevOps?</p><p>Development SCM BuildPackageRepo Deploy Testing Staging Production FeedbackPlanning Manage</p><p>What business metrics are defined for the app / service success?</p><p>How do we inject innovation and disruptive ideas into the requirements?</p><p>How do you turn business strategy into development plans?</p><p>How are requirements captured and managed?</p><p>How do you know you are building the right app / business service?</p><p>How do teams of developers collaborate on a single build?</p><p>What code repositories are used?</p><p>How do you ensure environment consistency between dev/test/prod?</p><p>How do you orchestrate changes across multiple components?</p><p>How are defects or incidents fed back to developers?</p><p>How is client feedback captured and acted upon?</p><p>How do you get operational feedback to dev?</p><p>What tools are used for fault finding and problem root-cause-analysis?</p><p>How can the business see that their critical app/service is operating normally?</p><p>What happens when an app or business service crashes?</p><p>How to you scale a live application or business service?</p><p>How do you add capacity to a live application or service?</p><p>How do you manage a service that spans across multiple cloud providers?</p><p>How do you know the environments are secure?</p><p>How are security requirements planned into the build?</p><p>How do you manage releases?</p><p>How do you break down one large release to smaller independent releases?</p><p>What KPIs are used to measure delivery?</p><p>How do you automate testing?</p><p>What percentage of dev budget should be spent on testing? How do you </p><p>reverse a change affecting a service or app and how do you verify service is back to normal?</p><p>How are apps or services monitored for health &amp; performance?</p><p>How do you know of architecture changes in real time?</p><p>How can you predict the performance or health of the app or service?</p><p>How do you track out of policy changes?</p><p>How do you manage test plans and test results?</p><p>What IDE tooling is used?</p><p>How do you do functional testing?</p><p>How do you do integration testing?</p><p>How do you branch and synchronize version control system for developing fixes or updates?</p><p>How do you assess quality of development?</p><p>How is operational excellence measured?</p><p>How do you build anti-fragile environments?</p><p>How do you do performance and operational testing?</p><p>How do you coordinate across multiple delivery pipelines?</p></li><li><p>DevOps applies across multiple application domains</p><p>Data &amp; Analytics Build solutions that gather data from any type of source, including web and social. With those solutions, you can store, analyze, and report on data by using analytic engines to drive actionable insights and visualization.</p><p>Hybrid Create applications whose components are split across cloud and on-premises environments, or across different clouds.</p><p>Microservices Provide the runtime and services to deploy microservice applications that are resilient, agile, and scalable.</p><p>Mobile Develop, deploy, and manage scalable native and hybrid apps for mobile devices while you are securely connected to back-end infrastructure on the cloud or in an enterprise.</p><p>IoT Connect to Internet of Things (IoT) devices and build scalable apps and dashboards to learn from IoT data by using IBM Bluemix IoT, Data, and Cognitive services.</p><p>Web App Build solutions that gather data from any type of source, including web and social. With those solutions, you can store, analyze, and report on data by using analytic engines to drive actionable insights and visualization.</p><p>Development SCM BuildPackageRepo Deploy Testing Staging Production FeedbackPlanning Manage</p></li><li><p>Significant architecture decisions</p><p>4</p><p>Application Type</p><p>Delivery pipeline</p><p>End-to-End Tool chains</p><p>Delivery platform</p><p> Requirements and lifecycle management</p><p> Integrated development environment</p><p> Source control management</p><p> Build / Artifact repository Continuous integration tool Service virtualization Deployment automation Orchestration Service management Defects management</p><p> On-premises Off-premises Hybrid Cloud Traditional IT Deployment automation Orchestration Security</p><p> On-premises Off-premises Hybrid Cloud Traditional IT # test environments # staging environments</p><p> Cloud Native app Cloud Ready app Monolithic app Hybrid app Mobile application Micro-services API / Integration Internet of Things Big Data &amp; Analytics</p></li><li><p>Garage Method</p><p>5</p><p>ContinuousCustomer Feedback &amp; </p><p>Optimization</p><p>Collaborative Development</p><p>ContinuousMonitoring</p><p>Continuous Business Planning</p><p>ContinuousTesting</p><p>Operate Develop/ Test</p><p>Deploy</p><p>Steer</p><p>DevOpsContinuous Feedback </p><p>CultureFoundational</p><p>values and principles</p><p>ThinkConceptualization refinement, and prioritization of </p><p>capabilitiesCode</p><p>Generation, enhancement, </p><p>optimization and testing of features</p><p>DeliverAutomated production </p><p>and delivery of offerings</p><p>RunServices, options, and capabilities required to </p><p>run in the Cloud</p><p>ManageOngoing monitoring, </p><p>support, and recovery of offerings</p><p>LearnContinuously learn based on outcomes from experiments</p><p>Continuous Release&amp; Deployment</p><p>https://www.ibm.com/devops/method/</p></li><li><p>Capabilities</p><p>6</p><p>Operate Develop/ Test</p><p>Deploy</p><p>Steer</p><p>DevOpsContinuous Feedback </p><p>CultureFoundational</p><p>values and principles</p><p>ThinkConceptualization refinement, and prioritization of </p><p>capabilities CodeGeneration, </p><p>enhancement, optimization and </p><p>testing of features</p><p>DeliverAutomated production </p><p>and delivery of offerings</p><p>RunServices, options, and capabilities required to run in the Cloud</p><p>ManageOngoing monitoring, </p><p>support, and recovery of offerings</p><p>LearnContinuously learn based on outcomes from experiments</p><p>Source Code Mgt</p><p>ConstructBuild &amp; Continuous </p><p>Integration</p><p>Code Testing</p><p>Artifact Mgt.</p><p>CODE</p><p>Business Strategy</p><p>Requirements</p><p>User Experience</p><p>Plan &amp; Track</p><p>Architecture</p><p>Technical Design</p><p>Concept Validation</p><p>THINK</p><p>Hybrid Connectivity</p><p>Hybrid Security</p><p>Autoscaling</p><p>Runtimes</p><p>RUN</p><p>Run Testing</p><p>Usage Analytics</p><p>Team Analytics</p><p>Business Analytics</p><p>LEARN</p><p>Business ValidationLogging</p><p>Monitoring &amp; Metrics</p><p>Event Mgt.</p><p>Alert Notification</p><p>RunbookAutomation</p><p>Root Cause Analysis</p><p>Incident Mgt.</p><p>Change Mgt.</p><p>MANAGE</p><p>Operational Testing</p><p>Environment ProvisioningMiddleware </p><p>ConfigurationApplication DeploymentOps Tooling Integration</p><p>Security Tooling Integration</p><p>A/B Deployment</p><p>Deployment Orchestration</p><p>Release Mgt.</p><p>DELIVER</p><p>Delivery Testing</p></li><li><p>Overall Architecture</p><p>7</p><p>https://www.ibm.com/devops/method/content/architecture/devOpsArchitecture</p></li><li><p>Overall Architecture - #1 Collaborative development</p><p>8</p><p>Collaborative development Collaboration tools enable a culture of innovation. Developers, designers, operations teams, and managers must communicate constantly. Development and operations tools must be integrated to post updates and alerts as new builds are completed and deployed and as performance is monitored. The team can discuss the alerts as a group in the context of the tool. </p><p>Cloud servicesSlack</p><p>On-premises productsIBM ConnectionsIBM Verse</p></li><li><p>Overall Architecture - #2 Track &amp; Plan </p><p>9</p><p>Track &amp; Plan As the team brainstorms ideas, responds to feedback and metrics, and fixes defects, team members create work items and rank them in the backlog. The team works on items from the top of the backlog, delivering to production as they complete work. </p><p>Cloud servicesGitHub Issues and Projects</p><p>On-premises productsIBM Rational Team Concert</p></li><li><p>Overall Architecture #3 Edit Code</p><p>10</p><p>Edit code Developers write source code in a code editor to implement the architecture. They construct, change, and correct applications by using various coding models and tools. </p><p>Cloud servicesAtom SublimeWeb IDE</p><p>On-premises productsEclipseIBM Rational Application Developer</p></li><li><p>Overall Architecture #4 Source Code</p><p>11</p><p>Source control Developers manage the versions and configuration of assets, merge changes, and manage the integration of changes. The source control tool that a team uses should support social coding. </p><p>Cloud servicesGitHubGit hosted on Bluemix</p><p>On-premises productsGitHub Enterprise</p></li><li><p>Overall Architecture #5 Build, test, and continuous integration</p><p>12</p><p>Build, test, and continuous integration Developers compile, package, and prepare software assets. They need tools that can assess the quality of the code that is being delivered to source control. Those assessments are done before delivery, are associated with automated build systems, and include practices such as code reviews, unit tests, code quality scans, and security scans. </p><p>Cloud servicesThe Build &amp; Deploy pipeline in IBM Bluemix DevOps ServicesSauce Labs</p><p>On-premises productsIBM Rational Test WorkbenchIBM Rational Team ConcertIBM Rational Functional TesterIBM Rational Performance TesterIBM UrbanCode BuildIBM UrbanCode Deploy</p></li><li><p>Overall Architecture #6 Artifact management </p><p>13</p><p>Artifact management Binary files and other output from the build are sent to and managed in a build artifact repository. </p><p>Cloud servicesIBM Bluemix DevOps Services</p><p>On-premises productsIBM Rational Asset ManagerIBM UrbanCode Deploy</p></li><li><p>Overall Architecture #7 Release management </p><p>14</p><p>Release management The release is scheduled. The team needs tools that support release communication and managing, preparing, and deploying releases. </p><p>On-premises productsIBM UrbanCode Release</p></li><li><p>Overall Architecture #8 Deployment orchestration </p><p>15</p><p>Deployment orchestration The team coordinates the manual and automated processes that are required for the solution to operate effectively. The team must strive towards continuous delivery with zero downtime. A/B deployments can help to gauge the effectiveness of new changes. </p><p>Cloud servicesThe Delivery Pipeline service on BluemixIBM Active DeployIBM Globalization Pipeline</p><p>On-premises productsIBM Cloud OrchestratorIBM UrbanCode Deploy</p></li><li><p>Overall Architecture #9-11 Application, Runtimes, Security</p><p>16</p><p>Security The team must ensure that all aspects of the application and its supporting infrastructure are secured. </p><p>Cloud servicesIBM Access TrailIBM Application Security on CloudIBM Single Sign On</p><p>Application The team must understand the application and the options for the applications runtime environment, security, management, and release requirements. </p><p>Runtime and containers Depending on the application requirements, some or all of the application stack must be considered, including middleware, the operating system, and virtual machines. </p><p>Cloud servicesBluemix runtimes (Node.js, Java, Liberty, &amp; more)IBM Auto-Scaling for BluemixIBM ContainersOpenStack virtual machines</p></li><li><p>Overall Architecture #12 Monitoring and metrics &amp; #13 Alerts</p><p>17</p><p>Monitoring and metrics The team plans, configures, monitors, defines criteria, and reports on application availability and performance. Predictive analytics can indicate problems before they occur. </p><p>Cloud servicesIBM Alert NotificationIBM Bluemix Availability MonitoringIBM Mobile Quality AssuranceIBM Monitoring and Analytics for BluemixNew Relic</p><p>On-premises productsIBM Application Performance Management</p><p>Alert notifications The right people on the team or systems are notified when issues occur. </p><p>Cloud servicesIBM Alert Notification</p></li><li><p>Overall Architecture #14 IT service management </p><p>18</p><p>IT service management The team manages the process for responding to operations incidents, and delivers the changes to fix any incidents. For more information, see the Cloud Service Management architecture.</p><p>Cloud servicesRunbook Automation</p><p>On-premises productsIBM Control DeskServiceNow</p></li><li><p>Overall Architecture #15 Usage analytics </p><p>19</p><p>Usage analytics The team uses analytics to learn how users interact with the application and measure success through metrics. </p><p>Cloud servicesGoogle Analytics</p><p>On-premises productsIBM Digital Analytics</p></li><li><p>Overall Architecture #16 Application Consumers &amp; #17 DevOps</p><p>20</p><p>Application consumers When users interact with the application, they can provide feedback on their requirements and how the application is meeting them, which is captured by analytics as well. </p><p>DevOps engineers DevOps engineers manage the entire application lifecycle while they respond to feedback and analytics from the running application. </p></li><li><p>Overall Architecture #18 Transformation and connectivity &amp; #19 Enterprise User Directory</p><p>21</p><p>Transformation and connectivity The enterprise network is protected by a firewall and must be accessed through transformation and connectivity services and secure messaging services. </p><p>Cloud servicesIBM API ConnectIBM Secure Gateway</p><p>Enterprise user directory The security team uses the user directory throughout the flow. The directory contains information about the user accounts for the enterprise. </p><p>On-premises productsIBM Security Directory Server</p></li><li><p>Client example: Bank</p><p>1. Developer creates code using IDE.2. Source code stored in SCM (Git).3. Gerrit (team collaboration &amp; pipeline) </p><p>manages isolated testing.4. Automated and manual testing </p><p>executed.5. Testing results merged into pipeline </p><p>once stage gates passed.</p><p>6. Build automation initiated (Jenkins), together with additional integration testing.</p><p>7. Build artefacts push to repository (Nexus).</p><p>8. UCD pulls build artefacts from Nexus and initiates platform deployment.</p><p>9. UCD deploys applications and configs to target platforms.</p><p>22</p></li><li><p>Client example: Healthcare. Hybrid cloud DevOps</p><p>23</p><p>Microsvc1.bluemix.org</p><p>Microsvc2.bluemix.org</p><p>Microsvc3.bluemix.org</p><p>UI.AppXXX.bluemix.org</p></li><li><p>Client example: Healthcare. Cloud native DevOps</p><p>24</p><p>Dev.AppXXX.bluemix.org QA.AppXXX.bluemix.org UAT.AppXXX.bluemix.org AppXXX.bluemix.org</p></li><li><p>DevOps Innovation Workshop</p><p>25</p><p>Review the current state1. Business goals, IT goals, current </p><p>initiatives2. DevOps3. Requirements4. Environments5. Repositories6. Roles / Organization7. Metrics8. Other</p><p>Prioritize challenges to be resolvedCreate a first pass at an improvement roadmap</p><p>The whiteboard</p></li><li><p>Available Now!</p><p>26</p><p>The DevOps Adoption Playbook</p><p>Available now at all major booksellers!</p><p>Order your copy today and receive 35% off with discount code VBN25 when you order on Wiley.com:</p><p>http://www.wiley.com/buy/9781119308744</p><p>More details: http://devopsadoptionplaybook.com</p></li><li><p>27</p><p>THANK YOU</p></li></ul>

Recommended

View more >