Successfully reported this slideshow.
We use your LinkedIn profile and activity data to personalize ads and to show you more relevant ads. You can change your ad preferences anytime.

Silicon Valley Code Camp 2019 - Reaching the Cloud Native World

145 views

Published on

The move to microservices enables developers to rapidly create and innovate by giving them autonomy to build and deploy applications using the languages, frameworks and technologies that they choose. However, such move requires a cost. Developers require a deeper set of skills to create apps that integrate fully with cloud-native capabilities. The additional complexity is one of the main reasons why most “cloud applications” are co-hosted. Only 38% of cloud developers are leveraging cloud services, and just 12% are building cloud-native applications. These statistics indicate that the majority of applications do not fully leverage and integrate with the additional capabilities that the platform provides. This session will introduce you how to modernize existing and build new cloud-native applications, and show how to utilize open source tools to rapidly develop and build new cloud-native applications with best practises built-in.

Published in: Software
  • DOWNLOAD THAT BOOKS INTO AVAILABLE FORMAT (2019 Update) ......................................................................................................................... ......................................................................................................................... Download Full PDF EBOOK here { https://urlzs.com/UABbn } ......................................................................................................................... Download Full EPUB Ebook here { https://urlzs.com/UABbn } ......................................................................................................................... Download Full doc Ebook here { https://urlzs.com/UABbn } ......................................................................................................................... Download PDF EBOOK here { https://urlzs.com/UABbn } ......................................................................................................................... Download EPUB Ebook here { https://urlzs.com/UABbn } ......................................................................................................................... Download doc Ebook here { https://urlzs.com/UABbn } ......................................................................................................................... ......................................................................................................................... ................................................................................................................................... eBook is an electronic version of a traditional print book that can be read by using a personal computer or by using an eBook reader. (An eBook reader can be a software application for use on a computer such as Microsoft's free Reader application, or a book-sized computer that is used solely as a reading device such as Nuvomedia's Rocket eBook.) Users can purchase an eBook on diskette or CD, but the most popular method of getting an eBook is to purchase a downloadable file of the eBook (or other reading material) from a Web site (such as Barnes and Noble) to be read from the user's computer or reading device. Generally, an eBook can be downloaded in five minutes or less ......................................................................................................................... .............. Browse by Genre Available eBooks .............................................................................................................................. Art, Biography, Business, Chick Lit, Children's, Christian, Classics, Comics, Contemporary, Cookbooks, Manga, Memoir, Music, Mystery, Non Fiction, Paranormal, Philosophy, Poetry, Psychology, Religion, Romance, Science, Science Fiction, Self Help, Suspense, Spirituality, Sports, Thriller, Travel, Young Adult, Crime, Ebooks, Fantasy, Fiction, Graphic Novels, Historical Fiction, History, Horror, Humor And Comedy, ......................................................................................................................... ......................................................................................................................... .....BEST SELLER FOR EBOOK RECOMMEND............................................................. ......................................................................................................................... Blowout: Corrupted Democracy, Rogue State Russia, and the Richest, Most Destructive Industry on Earth,-- The Ride of a Lifetime: Lessons Learned from 15 Years as CEO of the Walt Disney Company,-- Call Sign Chaos: Learning to Lead,-- StrengthsFinder 2.0,-- Stillness Is the Key,-- She Said: Breaking the Sexual Harassment Story That Helped Ignite a Movement,-- Atomic Habits: An Easy & Proven Way to Build Good Habits & Break Bad Ones,-- Everything Is Figureoutable,-- What It Takes: Lessons in the Pursuit of Excellence,-- Rich Dad Poor Dad: What the Rich Teach Their Kids About Money That the Poor and Middle Class Do Not!,-- The Total Money Makeover: Classic Edition: A Proven Plan for Financial Fitness,-- Shut Up and Listen!: Hard Business Truths that Will Help You Succeed, ......................................................................................................................... .........................................................................................................................
       Reply 
    Are you sure you want to  Yes  No
    Your message goes here

Silicon Valley Code Camp 2019 - Reaching the Cloud Native World

  1. 1. Speed, Modernize, Revitalize: Reaching the Cloud Native World Chris Bailey baileyc@uk.ibm.com @Chris__Bailey kitura.io appsody.dev cloudnativejs.io Chief Architect, Cloud Native Runtimes @IBM
  2. 2. #1 Cloud Programming Language
  3. 3. 3 #1 On IBM Cloud Using Cloud Foundry Node.js
  4. 4. 4 #1 On IBM Cloud Using Cloud Foundry Node.js
  5. 5. 5 #1 On Serverless Using AWS Lambda Node.js
  6. 6. 6 #1 On Serverless Using AWS Lambda Node.js https://thenewstack.io/what-aws-lambdas-performance-stats-reveal/
  7. 7. 12% 38% 100% 0% 20% 40% 60% 80% 100% Cloud Native Cloud Services Cloud Hosted Cloud Hosting vs Cloud Native Evans Cloud Development Survey 2017
  8. 8. 12% 38% 100% 0% 20% 40% 60% 80% 100% Cloud Native Cloud Services Cloud Hosted Cloud Hosting vs Cloud Native Evans Cloud Development Survey 2017
  9. 9. Cloud Hosting vs Cloud Native 12% 38% 100% 0% 20% 40% 60% 80% 100% Cloud Native Cloud Services Cloud Hosted Evans Cloud Development Survey 2017
  10. 10. 12% 48% 79% 0% 20% 40% 60% 80% 100% Kubernetes Docker Cloud Hosted Cloud Hosting vs Cloud Native Node.js Foundation Survey 2018 12% 38% 100% 0% 20% 40% 60% 80% 100% Cloud Native Cloud Services Cloud Hosted Evans Cloud Development Survey 2017
  11. 11. 12% 48% 79% 0% 20% 40% 60% 80% 100% Kubernetes Docker Cloud Hosted Cloud Hosting vs Cloud Native Node.js Foundation Survey 2018 12% 38% 100% 0% 20% 40% 60% 80% 100% Cloud Native Cloud Services Cloud Hosted Evans Cloud Development Survey 2017
  12. 12. Cloud Hosting vs Cloud Native 12% 48% 79% 0% 20% 40% 60% 80% 100% Kubernetes Docker Cloud Hosted Node.js Foundation Survey 2018 12% 38% 100% 0% 20% 40% 60% 80% 100% Cloud Native Cloud Services Cloud Hosted Evans Cloud Development Survey 2017
  13. 13. : Key Technologies
  14. 14. func add(_ a: Int, to b: Int) -> Void { print(a + b) } let a = ”5” let b = 3 FROM node:8 WORKDIR "/app" # Install OS updates RUN apt-get update && apt-get dist-upgrade -y && apt-get clean && echo 'Finished installing dependencies' # Install app dependencies COPY package.json /app/ RUN npm install —production COPY . /app ENV NODE_ENV production ENV PORT 3000 USER node EXPOSE 3000 CMD ["npm", "start"]
  15. 15. func add(_ a: Int, to b: Int) -> Void { print(a + b) } let a = ”5” let b = 3 FROM node:8 WORKDIR "/app" # Install OS updates RUN apt-get update && apt-get dist-upgrade -y && apt-get clean && echo 'Finished installing dependencies' # Install app dependencies COPY package.json /app/ RUN npm install —production COPY . /app ENV NODE_ENV production ENV PORT 3000 USER node EXPOSE 3000 CMD ["npm", "start"] Node.js 8 Docker Image
  16. 16. func add(_ a: Int, to b: Int) -> Void { print(a + b) } let a = ”5” let b = 3 FROM node:8 WORKDIR "/app" # Install OS updates RUN apt-get update && apt-get dist-upgrade -y && apt-get clean && echo 'Finished installing dependencies' # Install app dependencies COPY package.json /app/ RUN npm install —production COPY . /app ENV NODE_ENV production ENV PORT 3000 USER node EXPOSE 3000 CMD ["npm", "start"] Node.js 8 Docker Image Operating System Updates
  17. 17. func add(_ a: Int, to b: Int) -> Void { print(a + b) } let a = ”5” let b = 3 FROM node:8 WORKDIR "/app" # Install OS updates RUN apt-get update && apt-get dist-upgrade -y && apt-get clean && echo 'Finished installing dependencies' # Install app dependencies COPY package.json /app/ RUN npm install —production COPY . /app ENV NODE_ENV production ENV PORT 3000 USER node EXPOSE 3000 CMD ["npm", "start"] Node.js 8 Docker Image Operating System Updates package.json
  18. 18. func add(_ a: Int, to b: Int) -> Void { print(a + b) } let a = ”5” let b = 3 FROM node:8 WORKDIR "/app" # Install OS updates RUN apt-get update && apt-get dist-upgrade -y && apt-get clean && echo 'Finished installing dependencies' # Install app dependencies COPY package.json /app/ RUN npm install —production COPY . /app ENV NODE_ENV production ENV PORT 3000 USER node EXPOSE 3000 CMD ["npm", "start"] Node.js 8 Docker Image Operating System Updates package.json node_modules
  19. 19. func add(_ a: Int, to b: Int) -> Void { print(a + b) } let a = ”5” let b = 3 FROM node:8 WORKDIR "/app" # Install OS updates RUN apt-get update && apt-get dist-upgrade -y && apt-get clean && echo 'Finished installing dependencies' # Install app dependencies COPY package.json /app/ RUN npm install —production COPY . /app ENV NODE_ENV production ENV PORT 3000 USER node EXPOSE 3000 CMD ["npm", "start"] Node.js 8 Docker Image Operating System Updates package.json node_modules Application
  20. 20. func add(_ a: Int, to b: Int) -> Void { print(a + b) } let a = ”5” let b = 3 FROM node:8 WORKDIR "/app" # Install OS updates RUN apt-get update && apt-get dist-upgrade -y && apt-get clean && echo 'Finished installing dependencies' # Install app dependencies COPY package.json /app/ RUN npm install —production COPY . /app ENV NODE_ENV production ENV PORT 3000 USER node EXPOSE 3000 CMD ["npm", "start"] Node.js 8 Docker Image Operating System Updates package.json node_modules Application 716 MB
  21. 21. func add(_ a: Int, to b: Int) -> Void { print(a + b) } let a = ”5” let b = 3
  22. 22. func add(_ a: Int, to b: Int) -> Void { print(a + b) } let a = ”5” let b = 3 FROM node:8 WORKDIR "/app" # Install OS updates RUN apt-get update && apt-get dist-upgrade -y && apt-get clean && echo 'Finished installing dependencies' # Install app dependencies COPY package.json /app/ RUN npm install —production
  23. 23. func add(_ a: Int, to b: Int) -> Void { print(a + b) } let a = ”5” let b = 3 FROM node:8 WORKDIR "/app" # Install OS updates RUN apt-get update && apt-get dist-upgrade -y && apt-get clean && echo 'Finished installing dependencies' # Install app dependencies COPY package.json /app/ RUN npm install —production Node.js 8 Docker Image
  24. 24. func add(_ a: Int, to b: Int) -> Void { print(a + b) } let a = ”5” let b = 3 FROM node:8 WORKDIR "/app" # Install OS updates RUN apt-get update && apt-get dist-upgrade -y && apt-get clean && echo 'Finished installing dependencies' # Install app dependencies COPY package.json /app/ RUN npm install —production Node.js 8 Docker Image Operating System Updates
  25. 25. func add(_ a: Int, to b: Int) -> Void { print(a + b) } let a = ”5” let b = 3 FROM node:8 WORKDIR "/app" # Install OS updates RUN apt-get update && apt-get dist-upgrade -y && apt-get clean && echo 'Finished installing dependencies' # Install app dependencies COPY package.json /app/ RUN npm install —production Node.js 8 Docker Image Operating System Updates package.json
  26. 26. func add(_ a: Int, to b: Int) -> Void { print(a + b) } let a = ”5” let b = 3 FROM node:8 WORKDIR "/app" # Install OS updates RUN apt-get update && apt-get dist-upgrade -y && apt-get clean && echo 'Finished installing dependencies' # Install app dependencies COPY package.json /app/ RUN npm install —production Node.js 8 Docker Image Operating System Updates package.json node_modules
  27. 27. func add(_ a: Int, to b: Int) -> Void { print(a + b) } let a = ”5” let b = 3 FROM node:8 WORKDIR "/app" # Install OS updates RUN apt-get update && apt-get dist-upgrade -y && apt-get clean && echo 'Finished installing dependencies' # Install app dependencies COPY package.json /app/ RUN npm install —production # Copy the dependencies into a Slim Node docker image FROM node:8-slim WORKDIR "/app" # Install OS updates RUN apt-get update && apt-get dist-upgrade -y && apt-get clean && echo 'Finished installing dependencies' # Install app dependencies COPY --from=0 /app/node_modules /app/node_modules COPY . /app ENV NODE_ENV production ENV PORT 3000 USER node EXPOSE 3000 CMD ["npm", "start"] Node.js 8 Docker Image Operating System Updates package.json node_modules
  28. 28. func add(_ a: Int, to b: Int) -> Void { print(a + b) } let a = ”5” let b = 3 FROM node:8 WORKDIR "/app" # Install OS updates RUN apt-get update && apt-get dist-upgrade -y && apt-get clean && echo 'Finished installing dependencies' # Install app dependencies COPY package.json /app/ RUN npm install —production # Copy the dependencies into a Slim Node docker image FROM node:8-slim WORKDIR "/app" # Install OS updates RUN apt-get update && apt-get dist-upgrade -y && apt-get clean && echo 'Finished installing dependencies' # Install app dependencies COPY --from=0 /app/node_modules /app/node_modules COPY . /app ENV NODE_ENV production ENV PORT 3000 USER node EXPOSE 3000 CMD ["npm", "start"] node_modules package.json
  29. 29. func add(_ a: Int, to b: Int) -> Void { print(a + b) } let a = ”5” let b = 3 FROM node:8 WORKDIR "/app" # Install OS updates RUN apt-get update && apt-get dist-upgrade -y && apt-get clean && echo 'Finished installing dependencies' # Install app dependencies COPY package.json /app/ RUN npm install —production # Copy the dependencies into a Slim Node docker image FROM node:8-slim WORKDIR "/app" # Install OS updates RUN apt-get update && apt-get dist-upgrade -y && apt-get clean && echo 'Finished installing dependencies' # Install app dependencies COPY --from=0 /app/node_modules /app/node_modules COPY . /app ENV NODE_ENV production ENV PORT 3000 USER node EXPOSE 3000 CMD ["npm", "start"] node_modules Node.js 8 SLIM Docker Image package.json
  30. 30. func add(_ a: Int, to b: Int) -> Void { print(a + b) } let a = ”5” let b = 3 FROM node:8 WORKDIR "/app" # Install OS updates RUN apt-get update && apt-get dist-upgrade -y && apt-get clean && echo 'Finished installing dependencies' # Install app dependencies COPY package.json /app/ RUN npm install —production # Copy the dependencies into a Slim Node docker image FROM node:8-slim WORKDIR "/app" # Install OS updates RUN apt-get update && apt-get dist-upgrade -y && apt-get clean && echo 'Finished installing dependencies' # Install app dependencies COPY --from=0 /app/node_modules /app/node_modules COPY . /app ENV NODE_ENV production ENV PORT 3000 USER node EXPOSE 3000 CMD ["npm", "start"] node_modules Node.js 8 SLIM Docker Image Operating System Updates package.json
  31. 31. func add(_ a: Int, to b: Int) -> Void { print(a + b) } let a = ”5” let b = 3 FROM node:8 WORKDIR "/app" # Install OS updates RUN apt-get update && apt-get dist-upgrade -y && apt-get clean && echo 'Finished installing dependencies' # Install app dependencies COPY package.json /app/ RUN npm install —production # Copy the dependencies into a Slim Node docker image FROM node:8-slim WORKDIR "/app" # Install OS updates RUN apt-get update && apt-get dist-upgrade -y && apt-get clean && echo 'Finished installing dependencies' # Install app dependencies COPY --from=0 /app/node_modules /app/node_modules COPY . /app ENV NODE_ENV production ENV PORT 3000 USER node EXPOSE 3000 CMD ["npm", "start"] node_modules Node.js 8 SLIM Docker Image Operating System Updates package.json
  32. 32. func add(_ a: Int, to b: Int) -> Void { print(a + b) } let a = ”5” let b = 3 FROM node:8 WORKDIR "/app" # Install OS updates RUN apt-get update && apt-get dist-upgrade -y && apt-get clean && echo 'Finished installing dependencies' # Install app dependencies COPY package.json /app/ RUN npm install —production # Copy the dependencies into a Slim Node docker image FROM node:8-slim WORKDIR "/app" # Install OS updates RUN apt-get update && apt-get dist-upgrade -y && apt-get clean && echo 'Finished installing dependencies' # Install app dependencies COPY --from=0 /app/node_modules /app/node_modules COPY . /app ENV NODE_ENV production ENV PORT 3000 USER node EXPOSE 3000 CMD ["npm", "start"] node_modules Node.js 8 SLIM Docker Image Operating System Updates Application package.json
  33. 33. func add(_ a: Int, to b: Int) -> Void { print(a + b) } let a = ”5” let b = 3 FROM node:8 WORKDIR "/app" # Install OS updates RUN apt-get update && apt-get dist-upgrade -y && apt-get clean && echo 'Finished installing dependencies' # Install app dependencies COPY package.json /app/ RUN npm install —production # Copy the dependencies into a Slim Node docker image FROM node:8-slim WORKDIR "/app" # Install OS updates RUN apt-get update && apt-get dist-upgrade -y && apt-get clean && echo 'Finished installing dependencies' # Install app dependencies COPY --from=0 /app/node_modules /app/node_modules COPY . /app ENV NODE_ENV production ENV PORT 3000 USER node EXPOSE 3000 CMD ["npm", "start"] node_modules Node.js 8 SLIM Docker Image Operating System Updates Application package.json
  34. 34. 229 MB func add(_ a: Int, to b: Int) -> Void { print(a + b) } let a = ”5” let b = 3 FROM node:8 WORKDIR "/app" # Install OS updates RUN apt-get update && apt-get dist-upgrade -y && apt-get clean && echo 'Finished installing dependencies' # Install app dependencies COPY package.json /app/ RUN npm install —production # Copy the dependencies into a Slim Node docker image FROM node:8-slim WORKDIR "/app" # Install OS updates RUN apt-get update && apt-get dist-upgrade -y && apt-get clean && echo 'Finished installing dependencies' # Install app dependencies COPY --from=0 /app/node_modules /app/node_modules COPY . /app ENV NODE_ENV production ENV PORT 3000 USER node EXPOSE 3000 CMD ["npm", "start"] node_modules Node.js 8 SLIM Docker Image Operating System Updates Application package.json
  35. 35. $ docker build -t node-app -f Dockerfile-run .

  36. 36. $ docker build -t node-app -f Dockerfile-run .
 $ docker run -d —p 3000:3000 -t node-app
  37. 37. $ docker build -t node-app -f Dockerfile-run .
 $ docker run -d —p 3000:3000 -t node-app
  38. 38. : Key Technologies
  39. 39. func add(_ a: Int, to b: Int) -> Void { print(a + b) } let a = ”5” let b = 3 /config/deployment.yaml /config/service.yaml /config/hpa.yaml /config/istio.yaml
  40. 40. func add(_ a: Int, to b: Int) -> Void { print(a + b) } let a = ”5” let b = 3 /config/deployment.yaml /config/service.yaml /config/hpa.yaml /config/istio.yaml apiVersion: extensions/v1beta1 kind: Deployment metadata: name: my-microservice spec: replicas: 5 template: spec: containers: - name: my-microservice image: docker.io/my-image:1.1.0 imagePullPolicy: Always ports: - containerPort: 3000 resources requests: memory: 300Mi env: - name: PORT value : 3000 readinessProbe: httpGet: path: /ready port: 3000 livenessProbe: httpGet: path: /live port: 3000
  41. 41. func add(_ a: Int, to b: Int) -> Void { print(a + b) } let a = ”5” let b = 3 /config/deployment.yaml /config/service.yaml /config/hpa.yaml /config/istio.yaml apiVersion: extensions/v1beta1 kind: Deployment metadata: name: my-microservice spec: replicas: 5 template: spec: containers: - name: my-microservice image: docker.io/my-image:1.1.0 imagePullPolicy: Always ports: - containerPort: 3000 resources requests: memory: 300Mi env: - name: PORT value : 3000 readinessProbe: httpGet: path: /ready port: 3000 livenessProbe: httpGet: path: /live port: 3000
  42. 42. func add(_ a: Int, to b: Int) -> Void { print(a + b) } let a = ”5” let b = 3 /config/deployment.yaml /config/service.yaml /config/hpa.yaml /config/istio.yaml apiVersion: extensions/v1beta1 kind: Deployment metadata: name: my-microservice spec: replicas: 5 template: spec: containers: - name: my-microservice image: docker.io/my-image:1.1.0 imagePullPolicy: Always ports: - containerPort: 3000 resources requests: memory: 300Mi env: - name: PORT value : 3000 readinessProbe: httpGet: path: /ready port: 3000 livenessProbe: httpGet: path: /live port: 3000
  43. 43. func add(_ a: Int, to b: Int) -> Void { print(a + b) } let a = ”5” let b = 3 /config/deployment.yaml /config/service.yaml /config/hpa.yaml /config/istio.yaml apiVersion: extensions/v1beta1 kind: Deployment metadata: name: my-microservice spec: replicas: 5 template: spec: containers: - name: my-microservice image: docker.io/my-image:1.1.0 imagePullPolicy: Always ports: - containerPort: 3000 resources requests: memory: 300Mi env: - name: PORT value : 3000 readinessProbe: httpGet: path: /ready port: 3000 livenessProbe: httpGet: path: /live port: 3000
  44. 44. func add(_ a: Int, to b: Int) -> Void { print(a + b) } let a = ”5” let b = 3 /config/deployment.yaml /config/service.yaml /config/hpa.yaml /config/istio.yaml apiVersion: extensions/v1beta1 kind: Deployment metadata: name: my-microservice spec: replicas: 5 template: spec: containers: - name: my-microservice image: docker.io/my-image:1.1.0 imagePullPolicy: Always ports: - containerPort: 3000 resources requests: memory: 300Mi env: - name: PORT value : 3000 readinessProbe: httpGet: path: /ready port: 3000 livenessProbe: httpGet: path: /live port: 3000
  45. 45. func add(_ a: Int, to b: Int) -> Void { print(a + b) } let a = ”5” let b = 3 /config/deployment.yaml /config/service.yaml /config/hpa.yaml /config/istio.yaml apiVersion: extensions/v1beta1 kind: Deployment metadata: name: my-microservice spec: replicas: 5 template: spec: containers: - name: my-microservice image: docker.io/my-image:1.1.0 imagePullPolicy: Always ports: - containerPort: 3000 resources requests: memory: 300Mi env: - name: PORT value : 3000 readinessProbe: httpGet: path: /ready port: 3000 livenessProbe: httpGet: path: /live port: 3000
  46. 46. func add(_ a: Int, to b: Int) -> Void { print(a + b) } let a = ”5” let b = 3 /config/deployment.yaml /config/service.yaml /config/hpa.yaml /config/istio.yaml apiVersion: extensions/v1beta1 kind: Deployment metadata: name: my-microservice spec: replicas: 5 template: spec: containers: - name: my-microservice image: docker.io/my-image:1.1.0 imagePullPolicy: Always ports: - containerPort: 3000 resources requests: memory: 300Mi env: - name: PORT value : 3000 readinessProbe: httpGet: path: /ready port: 3000 livenessProbe: httpGet: path: /live port: 3000
  47. 47. func add(_ a: Int, to b: Int) -> Void { print(a + b) } let a = ”5” let b = 3 /config/deployment.yaml /config/service.yaml /config/hpa.yaml /config/istio.yaml apiVersion: extensions/v1beta1 kind: Deployment metadata: name: my-microservice spec: replicas: 5 template: spec: containers: - name: my-microservice image: docker.io/my-image:1.1.0 imagePullPolicy: Always ports: - containerPort: 3000 resources requests: memory: 300Mi env: - name: PORT value : 3000 readinessProbe: httpGet: path: /ready port: 3000 livenessProbe: httpGet: path: /live port: 3000
  48. 48. func add(_ a: Int, to b: Int) -> Void { print(a + b) } let a = ”5” let b = 3 /config/deployment.yaml /config/service.yaml /config/hpa.yaml /config/istio.yaml apiVersion: extensions/v1beta1 kind: Deployment metadata: name: my-microservice spec: replicas: 5 template: spec: containers: - name: my-microservice image: docker.io/my-image:1.1.0 imagePullPolicy: Always ports: - containerPort: 3000 resources requests: memory: 300Mi env: - name: PORT value : 3000 readinessProbe: httpGet: path: /ready port: 3000 livenessProbe: httpGet: path: /live port: 3000
  49. 49. func add(_ a: Int, to b: Int) -> Void { print(a + b) } let a = ”5” let b = 3 /config/deployment.yaml /config/service.yaml /config/hpa.yaml /config/istio.yaml apiVersion: v1 kind: Service metadata: annotations: prometheus.io/scrape: 'true' name: my-microservice—service” spec: type: NodePort ports: - name: http port: 3000 selector: app: my-microservice
  50. 50. func add(_ a: Int, to b: Int) -> Void { print(a + b) } let a = ”5” let b = 3 /config/deployment.yaml /config/service.yaml /config/hpa.yaml /config/istio.yaml apiVersion: v1 kind: Service metadata: annotations: prometheus.io/scrape: 'true' name: my-microservice—service” spec: type: NodePort ports: - name: http port: 3000 selector: app: my-microservice
  51. 51. func add(_ a: Int, to b: Int) -> Void { print(a + b) } let a = ”5” let b = 3 /config/deployment.yaml /config/service.yaml /config/hpa.yaml /config/istio.yaml apiVersion: v1 kind: Service metadata: annotations: prometheus.io/scrape: 'true' name: my-microservice—service” spec: type: NodePort ports: - name: http port: 3000 selector: app: my-microservice
  52. 52. func add(_ a: Int, to b: Int) -> Void { print(a + b) } let a = ”5” let b = 3 /config/deployment.yaml /config/service.yaml /config/hpa.yaml /config/istio.yaml apiVersion: v1 kind: Service metadata: annotations: prometheus.io/scrape: 'true' name: my-microservice—service” spec: type: NodePort ports: - name: http port: 3000 selector: app: my-microservice
  53. 53. func add(_ a: Int, to b: Int) -> Void { print(a + b) } let a = ”5” let b = 3 /config/deployment.yaml /config/service.yaml /config/hpa.yaml /config/istio.yaml apiVersion: v1 kind: Service metadata: annotations: prometheus.io/scrape: 'true' name: my-microservice—service” spec: type: NodePort ports: - name: http port: 3000 selector: app: my-microservice
  54. 54. func add(_ a: Int, to b: Int) -> Void { print(a + b) } let a = ”5” let b = 3 /config/deployment.yaml /config/service.yaml /config/hpa.yaml /config/istio.yaml apiVersion: autoscaling/v2beta1 kind: HorizontalPodAutoscaler metadata: name: “my-microservice-hpa-policy" spec: scaleTargetRef: apiVersion: apps/v1beta1 kind: Deployment name: "my-microservice" minReplicas: 5 maxReplicas: 10 metrics: - type: Resource resource: name: cpu targetAverageUtilization: 70 - type: Resource resource: name: memory targetAverageUtilization: 70
  55. 55. func add(_ a: Int, to b: Int) -> Void { print(a + b) } let a = ”5” let b = 3 /config/deployment.yaml /config/service.yaml /config/hpa.yaml /config/istio.yaml apiVersion: autoscaling/v2beta1 kind: HorizontalPodAutoscaler metadata: name: “my-microservice-hpa-policy" spec: scaleTargetRef: apiVersion: apps/v1beta1 kind: Deployment name: "my-microservice" minReplicas: 5 maxReplicas: 10 metrics: - type: Resource resource: name: cpu targetAverageUtilization: 70 - type: Resource resource: name: memory targetAverageUtilization: 70
  56. 56. func add(_ a: Int, to b: Int) -> Void { print(a + b) } let a = ”5” let b = 3 /config/deployment.yaml /config/service.yaml /config/hpa.yaml /config/istio.yaml apiVersion: autoscaling/v2beta1 kind: HorizontalPodAutoscaler metadata: name: “my-microservice-hpa-policy" spec: scaleTargetRef: apiVersion: apps/v1beta1 kind: Deployment name: "my-microservice" minReplicas: 5 maxReplicas: 10 metrics: - type: Resource resource: name: cpu targetAverageUtilization: 70 - type: Resource resource: name: memory targetAverageUtilization: 70
  57. 57. func add(_ a: Int, to b: Int) -> Void { print(a + b) } let a = ”5” let b = 3 /config/deployment.yaml /config/service.yaml /config/hpa.yaml /config/istio.yaml apiVersion: autoscaling/v2beta1 kind: HorizontalPodAutoscaler metadata: name: “my-microservice-hpa-policy" spec: scaleTargetRef: apiVersion: apps/v1beta1 kind: Deployment name: "my-microservice" minReplicas: 5 maxReplicas: 10 metrics: - type: Resource resource: name: cpu targetAverageUtilization: 70 - type: Resource resource: name: memory targetAverageUtilization: 70
  58. 58. $ cd ./config/ $ kubectl apply -f .
  59. 59. $ cd ./config/ $ kubectl apply -f .
  60. 60. $ cd ./config/ $ kubectl apply -f .
  61. 61. : Key Technologies Liveness Probes Readiness Probes
  62. 62. HTTP Requests & Live and Ready Probes
  63. 63. HTTP Requests GET: /ready GET: /ready & Live and Ready Probes
  64. 64. HTTP Requests GET: /ready 200 GET: /ready 200 & Live and Ready Probes
  65. 65. HTTP Requests GET: /ready 200 GET: /health 200 GET: /ready 200 GET: /health 200 & Live and Ready Probes
  66. 66. HTTP Requests GET: /ready 503 GET: /health 503 GET: /ready 200 GET: /health 200 & Live and Ready Probes
  67. 67. HTTP Requests GET: /ready 503 GET: /health 503 GET: /ready 200 GET: /health 200 SIGTERM & Live and Ready Probes
  68. 68. HTTP Requests GET: /ready 503 GET: /health 503 GET: /ready 200 GET: /health 200 SIGTERM SIGKILL & Live and Ready Probes
  69. 69. HTTP Requests GET: /ready 503 GET: /health 503 GET: /ready 200 GET: /health 200 SIGTERM SIGKILL & Live and Ready Probes
  70. 70. HTTP Requests GET: /ready 503 GET: /health 503 GET: /ready 200 GET: /health 200 & Live and Ready Probes
  71. 71. HTTP Requests GET: /ready 503 GET: /health 200 GET: /ready 200 GET: /health 200 & Live and Ready Probes
  72. 72. GET: /ready 200 GET: /health 200 GET: /ready 200 GET: /health 200 HTTP Requests & Live and Ready Probes
  73. 73. GET: /ready 200 GET: /health 200 GET: /ready 200 GET: /health 200 HTTP Requests & Live and Ready Probes
  74. 74. func add(_ a: Int, to b: Int) -> Void { print(a + b) } let a = ”5” let b = 3 const health = require(‘@cloudnative/health-connect'); let healthcheck = new health.HealthChecker();- & Live and Ready Probes
  75. 75. func add(_ a: Int, to b: Int) -> Void { print(a + b) } let a = ”5” let b = 3 const health = require(‘@cloudnative/health-connect'); let healthcheck = new health.HealthChecker(); app.use('/ready', health.ReadinessEndpoint(healthcheck)) app.use('/health', health.LivenessEndpoint(healthcheck))- & Live and Ready Probes
  76. 76. func add(_ a: Int, to b: Int) -> Void { print(a + b) } let a = ”5” let b = 3 const health = require(‘@cloudnative/health-connect'); let healthcheck = new health.HealthChecker(); const livePromise = new Promise(function (resolve, _reject) { resolve(); }); app.use('/ready', health.ReadinessEndpoint(healthcheck)) app.use('/health', health.LivenessEndpoint(healthcheck)) - & Live and Ready Probes
  77. 77. func add(_ a: Int, to b: Int) -> Void { print(a + b) } let a = ”5” let b = 3 const health = require(‘@cloudnative/health-connect'); let healthcheck = new health.HealthChecker(); const livePromise = new Promise(function (resolve, _reject) { resolve(); }); let liveCheck = new health.LivenessCheck("live", livePromise); app.use('/ready', health.ReadinessEndpoint(healthcheck)) app.use('/health', health.LivenessEndpoint(healthcheck)) - & Live and Ready Probes
  78. 78. func add(_ a: Int, to b: Int) -> Void { print(a + b) } let a = ”5” let b = 3 const health = require(‘@cloudnative/health-connect'); let healthcheck = new health.HealthChecker(); const livePromise = new Promise(function (resolve, _reject) { resolve(); }); let liveCheck = new health.LivenessCheck("live", livePromise); healthcheck.registerlivenessCheck(liveCheck); app.use('/ready', health.ReadinessEndpoint(healthcheck)) app.use('/health', health.LivenessEndpoint(healthcheck)) - & Live and Ready Probes
  79. 79. func add(_ a: Int, to b: Int) -> Void { print(a + b) } let a = ”5” let b = 3 const health = require(‘@cloudnative/health-connect'); let healthcheck = new health.HealthChecker(); const livePromise = new Promise(function (resolve, _reject) { resolve(); }); let liveCheck = new health.LivenessCheck("live", livePromise); const readyPromise = new Promise(function (resolve, _reject) { resolve(); }); let readyCheck = new health.ReadinessCheck("ready", readyPromise); healthcheck.registerlivenessCheck(liveCheck); healthcheck.registerReadinessCheck(readyCheck); app.use('/ready', health.ReadinessEndpoint(healthcheck)) app.use('/health', health.LivenessEndpoint(healthcheck)) - - & Live and Ready Probes
  80. 80. func add(_ a: Int, to b: Int) -> Void { print(a + b) } let a = ”5” let b = 3 const health = require(‘@cloudnative/health-connect'); let healthcheck = new health.HealthChecker(); const livePromise = new Promise(function (resolve, _reject) { resolve(); }); let liveCheck = new health.LivenessCheck("live", livePromise); const readyPromise = new Promise(function (resolve, _reject) { resolve(); }); let readyCheck = new health.ReadinessCheck("ready", readyPromise); const shutdownPromise = new Promise(function (resolve, _reject) { resolve(); }); let shutdownCheck = new health.ShutdownCheck(“shut”, shutdownProm); healthcheck.registerlivenessCheck(liveCheck); healthcheck.registerReadinessCheck(readyCheck); healthcheck.registerShutdownCheck(shutdownCheck); app.use('/ready', health.ReadinessEndpoint(healthcheck)) app.use('/health', health.LivenessEndpoint(healthcheck)) - - & Live and Ready Probes
  81. 81. : Key Technologies Liveness Probes Readiness Probes
  82. 82. GET: /ready 200 GET: /health 200 GET: /ready 200 GET: /health 200 HTTP Requests
  83. 83. GET: /ready 200 GET: /health 200 GET: /metrics GET: /ready 200 GET: /health 200 GET: /metrics HTTP Requests
  84. 84. func add(_ a: Int, to b: Int) -> Void { print(a + b) } let a = ”5” let b = 3 const prometheus = require(‘appmetrics-prometheus’).attach(); -
  85. 85. func add(_ a: Int, to b: Int) -> Void { print(a + b) } let a = ”5” let b = 3 const prometheus = require(‘appmetrics-prometheus’).attach(); -
  86. 86. : Key Technologies Liveness Probes Readiness Probes
  87. 87. PUBLIC NETWORK CLOUD NETWORK CATALOG ORDER INVENTORY USER MySQL MongoDB SPARK ELASTICSEARCH BACKEND FOR
 FRONTEND MICROSERVICES SERVICES LOAD
 BALANCER
  88. 88. CATALOG ORDER INVENTORY USER MySQL MongoDB SPARK ELASTICSEARCH BACKEND FOR
 FRONTEND MICROSERVICES SERVICES LOAD
 BALANCER PUBLIC NETWORK CLOUD NETWORK
  89. 89. CATALOG ORDER INVENTORY USER MySQL MongoDB SPARK ELASTICSEARCH BACKEND FOR
 FRONTEND MICROSERVICES SERVICES LOAD
 BALANCER PUBLIC NETWORK CLOUD NETWORK
  90. 90. CATALOG ORDER INVENTORY USER MySQL MongoDB SPARK ELASTICSEARCH BACKEND FOR
 FRONTEND MICROSERVICES SERVICES LOAD
 BALANCER PUBLIC NETWORK CLOUD NETWORK
  91. 91. CATALOG ORDER INVENTORY USER MySQL MongoDB SPARK ELASTICSEARCH BACKEND FOR
 FRONTEND MICROSERVICES SERVICES LOAD
 BALANCER PUBLIC NETWORK CLOUD NETWORK
  92. 92. CATALOG ORDER INVENTORY USER MySQL MongoDB SPARK ELASTICSEARCH BACKEND FOR
 FRONTEND MICROSERVICES SERVICES LOAD
 BALANCER PUBLIC NETWORK CLOUD NETWORK
  93. 93. CATALOG ORDER INVENTORY USER MySQL MongoDB SPARK ELASTICSEARCH BACKEND FOR
 FRONTEND MICROSERVICES SERVICES LOAD
 BALANCER PUBLIC NETWORK CLOUD NETWORK
  94. 94. func add(_ a: Int, to b: Int) -> Void { print(a + b) } let a = ”5” let b = 3 const zipkin = require(‘appmetrics-zipkin’);-
  95. 95. func add(_ a: Int, to b: Int) -> Void { print(a + b) } let a = ”5” let b = 3 const zipkin = require(‘appmetrics-zipkin’);-
  96. 96. func add(_ a: Int, to b: Int) -> Void { print(a + b) } let a = ”5” let b = 3 const zipkin = require(‘appmetrics-zipkin’);-
  97. 97. Create CloudCompose| |
  98. 98. : stacks Pre-built, Cloud Optimized Shared through AppsodyHub 100% Open Source, Built on Standard Technologies Appsody Build Cloud-Native Apps using any language or framework
  99. 99. : stacks > appsody : CLI Continuous, Containerized: dev | test | debug | build | deploy Pre-built, Cloud Optimized Shared through AppsodyHub 100% Open Source, Built on Standard Technologies Appsody Build Cloud-Native Apps using any language or framework
  100. 100. : deploy: stacks > appsody : CLI Continuous, Containerized: dev | test | debug | build | deploy Pre-built, Cloud Optimized Shared through AppsodyHub Production deploy to Kubernetes Server or Serverless Scaling 100% Open Source, Built on Standard Technologies Appsody Build Cloud-Native Apps using any language or framework
  101. 101. Appsody Stacks Demo
  102. 102. Cloud Configured Appsody Stacks Developer Workflow using Appsody Stacks Appsody Hub Developer > appsody
  103. 103. Cloud Configured Appsody Stacks Developer Workflow using Appsody Stacks Appsody Hub Developer Appsody Hub Discover available Appsody Stacks > appsody
  104. 104. Cloud Configured Appsody Stacks Developer Workflow using Appsody Stacks Appsody Hub Developer Appsody Hub Discover available Appsody Stacks > appsody appsody init Developer’s App
  105. 105. Cloud Configured Appsody Stacks Developer Workflow using Appsody Stacks Appsody Hub Developer Appsody Hub Discover available Appsody Stacks > appsody appsody init Developer’s App Develop in IDE Uses
 Appsody Stack run
 test debug
  106. 106. Cloud Configured Appsody Stacks Developer Workflow using Appsody Stacks Appsody Hub Developer Appsody Hub Discover available Appsody Stacks > appsody appsody init Developer’s App Develop in IDE Uses
 Appsody Stack run
 test debug git commit Developer's
 Git ProjectDeveloper’s App Save Changes
  107. 107. Cloud Configured Appsody Stacks Cloud Platform Developer Workflow using Appsody Stacks Appsody Hub Developer Appsody Hub Discover available Appsody Stacks > appsody appsody init Developer’s App Develop in IDE Uses
 Appsody Stack run
 test debug git commit Developer's
 Git ProjectDeveloper’s App Save Changes Appsody StackDeveloper’s App appsody build
  108. 108. Appsody Stack > appsody Developer Appsody Hub Discover available Appsody Stacks appsody init Developer’s App run
 test debugDevelop in IDE Uses
 Appsody Stack git commit Developer's
 Git ProjectDeveloper’s App Save Changes Cloud Configured Appsody Stacks Cloud Platform Developer’s App appsody build appsody deploy Developer Workflow using Appsody Stacks
  109. 109. Appsody Stacks nodejs-functionsnodejs nodejs-express
  110. 110. Appsody Stacks nodejs-functionsnodejs nodejs-express Application Functions Connect Application Functions Connect
  111. 111. Appsody Stacks nodejs-functionsnodejs nodejs-express Application Functions Connect Application Functions Connect DockerDockerCloud Packaged
  112. 112. Appsody Stacks Cloud Functions Cloud Native Cloud Packaged nodejs-functionsnodejs Application Functions Connect Application Functions Connect DockerDocker nodejs-express Docker Application Functions Connect Docker Application Functions Connect Docker Application Functions Connect Docker Application Functions Connect
  113. 113. Appsody Stacks Cloud Functions Cloud Native Cloud Packaged nodejs-functionsnodejs Docker Application Functions Connect Docker Application Functions Connect nodejs-express Application FunctionsApplication Functions Docker Connect Docker Connect Docker Application Functions Connect Docker Application Functions Connect
  114. 114. Appsody Stacks Demo
  115. 115. Eclipse Codewind Demo
  116. 116. http://github.com/appsody http://twitter.com/appsodydev https://appsody.dev Appsody Eclipse Codewind http://github.com/eclipse/codewind http://twitter.com/EclipseCodewind https://codewind.dev

×