Open toolchains provide an integrated set of tools to build, deploy and manage your apps, allowing you to select from IBM, open source, and third-party tools to make development and operations repeatable and easier to manage. Based on an open architecture, toolchains provide an API for integration of tools that can be hosted in the IBM Cloud or elsewhere. Toolchains can also be defined from textual templates that can be automatically instantiated and include support for analytics that can drive your DevOps intelligence. IBM Cloud Continuous Delivery provides a set of tools that can be integrated into an open toolchain: Gitlab-based repos and issue tracking help you manage your source code. A web IDE allows you to code from anywhere. Tekton-based Delivery pipelines automate builds, tests, and deployments in a repeatable way with minimal human intervention. And Deployment Risk Analysis ensures you have the information necessary to make sure that quality code is delivered to production. So let's get into the demo. Starting from the DevOps home page on the IBM Cloud, we can create a new toolchain. This will take us to the templates page which allows us to select from a variety of different toolchain templates, or create a blank toolchain to start from scratch. We'll select a simple toolchain to build, test, and deploy a sample app to a Kubernetes cluster. On the template's configuration page, we need to fill in some basic information, like the name of our toolchain, some Git parameters for the source code repository, Next, we'll provide or create an API Key - needed for us to securely access the IBM Cloud runtime. Once entered, we can add information about the cluster where we want the app to be deployed - if you already have a cluster, it will be pre-populated here. If you don't already have a cluster, you can create one using the IBM Cloud Command-line interface, or the web console. Clicking Create instantiates our toolchain. All the tools in the toolchain are now accessible from the toolchain's home page. For example, clicking on the Git tile will take us directly to our source code repository, where we can access and manage all of our app's files. Let's return to the toolchain page, and click on the delivery pipeline tile. Here, we can look at our pipeline's parameters, and edit any variables to customize our build, test, and deployment automation. On the definitions tab, we can view the tekton pipeline definitions that are stored in source repositories. It's a quick and easy way to validate our pipeline, if we've made any changes to the configuration. On the workers tab, we control how the pipeline is executed, either by adding and configuring a Private Worker tile on your toolchain, or by using the shared pool of IBM Managed Public Workers. Next, triggers specify what happens when a specified event occurs, and can be activated manually, by a git action, via a webhook, or at a specific time. Finally, the environment properties tab enables you to pass name:value pairs to the pipeline, allowing you to set up the variables needed for your pipeline runs. OK. Let's run the pipeline to see what happens. We'll use the manual trigger that was specified earlier, and we can also change any of the variables we're using if necessary. Once the pipeline run starts, we'll see a link that we can click on to get access to a step-by-step view of the run, with detailed logs. On the left, we'll see a list of the completed tasks. Clicking on a task show the steps included in the task, and clicking on each step takes us to detailed information about each step, and any log output. Our pipeline includes tasks that: sanity check the Dockerfile prior to attempting creating the image, build a container image on every Git commit, use a private image registry to store the built image, check container image for security vulnerabilities using IBM Vulnerability Advisor, deploy the image into the kubernetes cluster we specified, and finally checks to make sure the app is running. Once the pipeline has successfully completed, we can drill into the final task to see the URL of the deployed app. And there we are - just a basic web app. Let's go and modify the app to show an automated pipeline run based on a git trigger. Returning to the toolchain, we'll click on the Git tile again, and edit the javascript file that contains our welcome message. First I'll select the app.js file, then select edit to open the file editor, and modify the welcome message that appears on the app home page. Once done, Click commit to save the changes. Returning to the toolchain page, I can click on the delivery pipeline tab, and I should see the new pipeline run that was automatically started on the git commit. Once the run has successfully completed, we can return to our application homepage, refresh, and we can see the updated text. OK - let's return to the toolchain, and I'll show you how you can quickly add additional tools. Simply click on the "Add a Tool button", and it will take you to the integration catalog, containing dozens of pre-integrated tools across categories like testing, monitoring, and security. For example, let's choose to integrate with the IBM Cloud Security and Compliance Center. Each integration will have required parameters. Simply fill out the fields, and your tool will be integrated to your toolchain. That wraps up our quick overview of toolchains and IBM Cloud Continuous Delivery.