Slide 1

Slide 1 text

Cloud Native Development 12 Factors to Cloud Success Pooja - IBM, Developer Advocate Mangesh - IBM, Developer Advocate Manisha - Infosys, Lead Principal, Education Balaji - Infosys, Principal, Education Training and Assessment

Slide 2

Slide 2 text

https://ibm.biz/cloudnative-gist

Slide 3

Slide 3 text

Cloud native development is about how apps are built and deployed 12 Factor is a methodology for building software Infosys and IBM have world class experience in cloud native development OpenShift is the most ideal platform for application deployment

Slide 4

Slide 4 text

Cloud Native Principles Real-world Use Cases IBM Cloud Native Toolkit Hands-on Lab: Deploy with Tekton Pipelines

Slide 5

Slide 5 text

Cloud native is about how an application is built and deployed, not where it resides.

Slide 6

Slide 6 text

A History Lesson Late 90’s Enterprise Application (EAI) Services and Models Addressed integration and transactional challenges primarily by using message oriented middleware. Mostly proprietary systems needing a proliferation of custom interfaces. Mid 00’s Service Oriented Architectures Based on open protocols like SOAP and WSDL making integration and adoption easier. Usually deployed on an Enterprise ESB which is hard to manage and scale. Early 10’s API Platforms and API Management REST and JSON become the defacto standard for consuming backend data. Mobile apps become major consumers of backend data. New Open protocols like OAuth become available further simplifying API development . 2015 and beyond Cloud Native and Microservice Architecture Applications are composed of small, independently deployable processes communicating with each other using language-agnostic APIs and protocols.

Slide 7

Slide 7 text

Cloud Native Building Blocks 7 Microservices Automated DevOps Containers Results in a lightweight, modular, highly automated approach

Slide 8

Slide 8 text

Key tenets of a cloud native application 1. Packaged as light weight containers 2. Developed with best-of-breed languages and frameworks 3. Designed as loosely coupled microservices 4. Centered around APIs for interaction and collaboration 5. Architected with a clean separation of stateless and stateful services 6. Isolated from server and operating system dependencies 7. Deployed on self-service, elastic, cloud infrastructure 8. Managed through agile DevOps processes 9. Automated capabilities 10. Defined, policy-driven resource allocation https://thenewstack.io/10-key-attributes-of-cloud-native-applications/ https://cloudnative101.dev/concepts/cloud-native/

Slide 9

Slide 9 text

12 Factor is a methodology for building software

Slide 10

Slide 10 text

12 Factor Apps https://12factor.net I. Codebase VII. Port Binding II. Dependencies VIII. Concurrency III. Config IX. Disposability IV. Backing Services X. Dev/Prod Parity V. Build, Release, Run XI. Logs VI. Processes XII. Admin Processes

Slide 11

Slide 11 text

Codebase Dependencies Configuration Backing Services Build Release Run Stateless Processes Port Binding Concurrency Disposability Dev Prod Parity Logs Admin Processes 12 Factors

Slide 12

Slide 12 text

Cloud Native Principles Real-world Use Cases IBM Cloud Native Toolkit Hands-on Lab: Deploy with Tekton Pipelines

Slide 13

Slide 13 text

Cloud Native Principles Real-world Use Cases IBM Cloud Native Toolkit Hands-on Lab: Deploy with Tekton Pipelines

Slide 14

Slide 14 text

Industry Challenges • Competing projects • Conflicting Terminology • Achieving the same goal Image from CNCF Landscape: https://landscape.cncf.io/

Slide 15

Slide 15 text

Local Dev/Text Release Deploy Operate Measure Plan Code Build Test Enterprise Grade Software Development Life Cycle (SDLC) CI CD Jenkins (Build) Zenhub (Project mgmt) Image Registry (Container Images) (Store assets and dependencies) (Analyze and test code) CodeReady Workspaces (Web IDE) Swagger Editor (API validation & documentation) Kubernetes Pact Testing (Test microservice contracts) Sysdig (View metrics and alerts) LogDNA (View logs) Argo CD (CD Release) NPS Jaeger (Container Images) Knative Tekton (Build pipeline) (Helpdesk) PagerDuty IBM Hyper Protect Services (Code signing, Keep your own key - KYOK) Deploy to Clusters or Serverless Github (Source code mgmt) IBM Key Protect (Certificate APIs for code signing) 15 IBM Cloud / © 2020 IBM Corporation

Slide 16

Slide 16 text

Red Hat OpenShift 4.5 Developer Experience with Enterprise Sandbox § Developer use native experience of OCP Developer Perspective § Integrated with Cloud Native Toolkit Tools § Integration with Cloud Pak § They follow the GSL Labs 301 Workshop/Activation Material § To get a full developer understanding of how to use this platform and tools § Mulit Tenant at Project/Namespace level

Slide 17

Slide 17 text

17 https://ibm-garage-cloud.github.io/ibm-garage-developer-guide/ Use assets with other teams to accelerate success

Slide 18

Slide 18 text

Advanced Technologies Capabilities Foundation Infrastructure Blockchain Quantum Supply Chain Weather Cloud Pak for Applications Cloud Pak for Data Cloud Pak for Integration Cloud Pak for Automation Cloud Pak for Multicloud Mgmt Open Hybrid Multicloud Platform IBM public cloud AWS Microsoft Azure Google Cloud Edge Private IBM Z IBM LinuxOne IBM Power Systems Expertise Strategy Migration Development Management Watson IoT On-ramp to a large spectrum of IBM’s Cloud & Cognitive offerings AI Skills Cloud Pak for Security Multicluster Management Common Services Reduce devtime up to 84% Make dataready for AI in hours vs. days Eliminate 33% of integration cost Reduce manual process up to 80% Reduce ITOpex by up to75% Reduce data compliance & security costs up to 20% Build once. Deploy anywhere. Move freely. Optimize for cost savings. Innovate anywhere. With anyone’s technology.

Slide 19

Slide 19 text

Demo

Slide 20

Slide 20 text

Cloud Native Principles Real-world Use Cases IBM Cloud Native Toolkit Hands-on Lab: Deploy with Tekton Pipelines

Slide 21

Slide 21 text

Lab

Slide 22

Slide 22 text

• Open source governed by Continuous Delivery Foundation • Contributors from IBM, Google, Red Hat, and more • Cloud-native built upon Kubernetes • Pipelines, Tasks, PipelineRuns, etc. are CRDs • Formerly known as “Knative Build” and “Knative build- pipelines” • Parallel workflows, triggers, every step isolated in a container, etc. • Pipeline-as-code (yaml) • Pipeline portability across clouds and vendors • Trigger on Git commits, pull (merge) requests, webhook, manually, or specific times. • Fostering ecosystem of common pipelines and tasks, e.g. tool integrations, compliance process https://tekton.dev Tekton 22 IBM Cloud / © 2020 IBM Corporation

Slide 23

Slide 23 text

Tekton Concept: Step • The smallest building block • Specify images, commands, arguments • Is a container steps: - name: echo image: ubuntu command: - echo args: - "hello world"

Slide 24

Slide 24 text

Tekton CRD: Task • New CRD • Sequence of Steps • Run in sequential order • Reusable • Perform a specific task • Runs on the same k8s node apiVersion: tekton.dev/v1alpha1 kind: Task metadata: name: echo-hello-world spec: steps: - name: echo image: ubuntu command: - echo args: - "hello world"

Slide 25

Slide 25 text

Tekton CRD: Pipeline • Expresses Tasks • Sequentially • Concurrently • Links input and output • Execute Tasks on different nodes apiVersion: tekton.dev/v1alpha1 kind: Pipeline metadata: name: tutorial-pipeline spec: - name: build-app taskRef: name: build-push resources: outputs: - name: image resource: my-image - name: deploy-app taskRef: name: deploy-kubectl resources: inputs: - name: image resource: my-image from: - build-app

Slide 26

Slide 26 text

Tekton Runtime CRDs • Instances of Pipelines and Tasks: • PipelineRun • TaskRun • Runtime info such as registry information and git repo apiVersion: tekton.dev/v1alpha1 kind: PipelineRun metadata: name: tutorial-pipeline-run-1 spec: serviceAccountName: tutorial-service pipelineRef: name: tutorial-pipeline resources: - name: source-repo resourceRef: name: skaffold-git - name: web-image resourceRef: name: skaffold-image-leeroy-web

Slide 27

Slide 27 text

Putting it all together Linting Unit tests Setup test environment Build images Run integration tests Run end to end tests Publish images Deploy Pipeline Task Task Task Task Task Task Task Step Step Step Step Step Step Step Step Step

Slide 28

Slide 28 text

Getting Started with OpenShift Pipelines https://learn.openshift.com/middleware/pipelines/

Slide 29

Slide 29 text

https://learn.openshift.com/middleware/pipelines/

Slide 30

Slide 30 text

Cloud native development is about how apps are built and deployed 12 Factor is a methodology for building software Infosys and IBM have world class experience in cloud native development OpenShift is the most ideal platform for application deployment

Slide 31

Slide 31 text

• Cloud-Native Toolkit Guide • Cloud Native Bootcamp • All new Building Cloud Native and Multicloud Applications course now available • Microservices for beginners • Red Hat OpenShift on IBM Cloud • Getting Started with Containers Resources

Slide 32

Slide 32 text

Check out IBM Developer https://developer.ibm.com/components/redhat-openshift-ibm-cloud/

Slide 33

Slide 33 text

FREE IBM Cloud Essentials course with BADGE https://cognitiveclass.ai/courses/ibm-cloud-essentials

Slide 34

Slide 34 text

Subscribe to our Crowdcast.io https://www.crowdcast.io/ibmdeveloper

Slide 35

Slide 35 text

35