Upgrade to Pro — share decks privately, control downloads, hide ads and more …

Cloud Native Development - 12 Factors to Cloud Success

Cloud Native Development - 12 Factors to Cloud Success

Cloud-Native Development -12 Factors to Cloud Success

Pooja Mistry

March 16, 2021
Tweet

More Decks by Pooja Mistry

Other Decks in Technology

Transcript

  1. 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

    View Slide

  2. https://ibm.biz/cloudnative-gist

    View Slide

  3. 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

    View Slide

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

    View Slide

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

    View Slide

  6. 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.

    View Slide

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

    View Slide

  8. 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/

    View Slide

  9. 12 Factor is a
    methodology for
    building software

    View Slide

  10. 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

    View Slide

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

    View Slide

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

    View Slide

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

    View Slide

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

    View Slide

  15. 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

    View Slide

  16. 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

    View Slide

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

    View Slide

  18. 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.

    View Slide

  19. Demo

    View Slide

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

    View Slide

  21. Lab

    View Slide

  22. • 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

    View Slide

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

    View Slide

  24. 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"

    View Slide

  25. 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

    View Slide

  26. 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

    View Slide

  27. 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

    View Slide

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

    View Slide

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

    View Slide

  30. 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

    View Slide

  31. • 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

    View Slide

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

    View Slide

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

    View Slide

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

    View Slide

  35. 35

    View Slide