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
  2. 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
  3. 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.
  4. Cloud Native Building Blocks 7 Microservices Automated DevOps Containers Results

    in a lightweight, modular, highly automated approach
  5. 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/
  6. 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
  7. Codebase Dependencies Configuration Backing Services Build Release Run Stateless Processes

    Port Binding Concurrency Disposability Dev Prod Parity Logs Admin Processes 12 Factors
  8. Industry Challenges • Competing projects • Conflicting Terminology • Achieving

    the same goal Image from CNCF Landscape: https://landscape.cncf.io/
  9. 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
  10. 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
  11. 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.
  12. Lab

  13. • 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
  14. Tekton Concept: Step • The smallest building block • Specify

    images, commands, arguments • Is a container steps: - name: echo image: ubuntu command: - echo args: - "hello world"
  15. 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"
  16. 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
  17. 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
  18. 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
  19. 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
  20. • 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
  21. 35