Upgrade to Pro
— share decks privately, control downloads, hide ads and more …
Speaker Deck
Features
Speaker Deck
PRO
Sign in
Sign up for free
Search
Search
Platforms Demystified: Cloud Foundry, Kubernete...
Search
Sponsored
·
Ship Features Fearlessly
Turn features on and off without deploys. Used by thousands of Ruby developers.
→
Matthias Haeussler
October 10, 2019
Technology
0
61
Platforms Demystified: Cloud Foundry, Kubernetes, Eirini, and Knative
2019 - Spring One Platform, Austin, USA
Matthias Haeussler
October 10, 2019
Tweet
Share
More Decks by Matthias Haeussler
See All by Matthias Haeussler
Standardized Observability with OpenTelemetry
maeddes
1
35
What's new with Spring Boot and Containers?
maeddes
1
320
Cloud Technologies & Services - Past, Present & Future
maeddes
0
81
Cloud and Container-based Integrated Development Environments
maeddes
0
400
Distributed Systems patterns - Spring Cloud, Service Mesh & eBPF
maeddes
3
1.3k
A guide to observability for Java apps in Kubernetes
maeddes
7
1.6k
Options Galore: From Source Code to Container Image
maeddes
1
830
Seacon 2020 - Cloud Plattformen entmystifiziert
maeddes
0
54
Cloud-Plattformen entmystifiziert: Was können Docker, Kubernetes, Cloud Foundry & Knative?
maeddes
2
180
Other Decks in Technology
See All in Technology
AWS Systems Managerのハイブリッドアクティベーションを使用したガバメントクラウド環境の統合管理
toru_kubota
1
180
Microsoft Fabricで考える非構造データのAI活用
ryomaru0825
0
370
ThetaOS - A Mythical Machine comes Alive
aslander
0
210
【Oracle Cloud ウェビナー】データ主権はクラウドで守れるのか?NTTデータ様のOracle Alloyで実現するソブリン対応クラウドの最適解
oracle4engineer
PRO
3
120
Change Calendarで今はOK?を仕組みにする
tommy0124
1
130
【AWS】CloudTrail LakeとCloudWatch Logs Insightsの使い分け方針
tsurunosd
0
120
会社紹介資料 / Sansan Company Profile
sansan33
PRO
16
410k
パワポ作るマンをMCP Apps化してみた
iwamot
PRO
0
210
なぜarray_firstとarray_lastは採用、 array_value_firstとarray_value_lastは 見送りだったか / Why array_value_first and array_value_last was declined, then why array_first and array_last was accpeted?
cocoeyes02
0
220
RGBに陥らないために -プロダクトの価値を届けるまで-
righttouch
PRO
0
130
Physical AI on AWS リファレンスアーキテクチャ / Physical AI on AWS Reference Architecture
aws_shota
1
170
20260323_データ分析基盤でGeminiを使う話
1210yuichi0
0
190
Featured
See All Featured
WENDY [Excerpt]
tessaabrams
9
37k
How to Create Impact in a Changing Tech Landscape [PerfNow 2023]
tammyeverts
55
3.3k
Exploring the relationship between traditional SERPs and Gen AI search
raygrieselhuber
PRO
2
3.8k
A better future with KSS
kneath
240
18k
DBのスキルで生き残る技術 - AI時代におけるテーブル設計の勘所
soudai
PRO
64
53k
The SEO Collaboration Effect
kristinabergwall1
0
410
Become a Pro
speakerdeck
PRO
31
5.9k
Navigating Algorithm Shifts & AI Overviews - #SMXNext
aleyda
1
1.2k
Practical Tips for Bootstrapping Information Extraction Pipelines
honnibal
25
1.8k
Believing is Seeing
oripsolob
1
97
Building Experiences: Design Systems, User Experience, and Full Site Editing
marktimemedia
0
460
The Art of Delivering Value - GDevCon NA Keynote
reverentgeek
16
1.9k
Transcript
Platforms Demystified: Cloud Foundry, Kubernetes, Eirini, and Knative October 7–10,
2019 Austin Convention Center Matthias Haeussler, Novatec Consulting GmbH & Dr. Nic Williams, Stark & Wayne LLC
Hype & Reality
Hype & Reality
Apps Services Push Start/ Stop Scale Delete Routes Create/Delete Map/Unmap
Create/Delete Bind/Unbind Minimal Concepts
Deployment s Services NetworkPolici es LoadBalancer NodePort ReplicaSet StatefulSet Bind/Unbind
Ingress Pods Container IngressControllers HPA ConfigMaps Secrets apply YAML YAML YAML Minimal Concepts Docker Image
None
Speakers Dr. Nic Williams, CEO, Stark & Wayne @drnic Matthias
Haeussler, Principal Advocate, Novatec @maeddes
LXC Container/Platform history 2018 2017 2014 2013 2011 2008 1979
…. … … 2012 chroot Virtualization and isolation in subsystems. Examples: FreeBSD Jails, Linux VServer cgroups (2007) namespaces (2002) garden eirini warden diego istio knative kubernetes cf push
App Dev DB Systems Admin PivNet Platform Admin Secrets/Config Source
Code Build Artifact Buildpacks / Images Containers Git CI/CD
None
Agenda Extending with Databases Deploy Building from Source Running a
Platform How to choose? ?
Agenda Extending with Databases Deploy Building from Source Running a
Platform How to choose? ?
cf push $ cf push sample-app $ cf scale sample-app-java
-i 4 $ cf ssh sample-app-java
$ cf push sample-app $ kubectl get pods -n scf-eirini
NAME READY STATUS sample-app-dev-bb89da1431-0 1/1 Running $ cf scale sample-app-java -i 4 $ kubectl get pods -n scf-eirini NAME READY STATUS sample-app-dev-bb89da1431-0 1/1 Running sample-app-dev-bb89da1431-1 0/1 ContainerCreating sample-app-dev-bb89da1431-2 0/1 ContainerCreating sample-app-dev-bb89da1431-3 1/1 Running $ kubectl exec -ti -n scf-eirini \ sample-app-dev-bb89da1431-0 bash cf push eirini
$ cf scale sample-app-java -i 10 cf scale eirini
$ cf scale sample-app-java -i 10 cf scale eirini
$ kubectl get pods -n scf NAME READY STATUS cf-operator-894886ff9-5s4zx
1/1 Running scf-adapter-v1-0 5/5 Running scf-api-v1-0 17/17 Running scf-bits-v1-0 7/7 Running scf-cc-worker-v1-0 5/5 Running scf-database-v1-0 5/5 Running scf-diego-api-v1-0 6/6 Running scf-doppler-v1-0 11/11 Running scf-eirini-v1-0 6/6 Running scf-log-api-v1-0 8/8 Running scf-nats-v1-0 5/5 Running scf-router-v1-0 6/6 Running scf-scheduler-v1-0 10/10 Running scf-singleton-blobstore-v1-0 7/7 Running scf-uaa-v1-0 7/7 Running update-all-cf-buildpacks-8d9lb 0/1 Completed cf push quarks
kn service create $ kn service create \ sample-app-nodejs -n
test-app \ --image starkandwayne/sample-app-nodejs $ bootstrap-system-knative kwt test-app $ curl http://sample-app-nodejs.test-app.example.com Hello World! $ kubectl get pods -n test-app NAME READY STATUS kwt-net 1/1 Running sample-app-nodejs-1-deployment-nbg2j 2/2 Running … wait… $ kubectl get pods -n test-app NAME READY STATUS kwt-net 1/1 Running sample-app-nodejs-1-deployment-nbg2j 2/2 Terminating
istio knative $ kubectl get pods -n istio-system NAME READY
STATUS cluster-local-gateway-5c566fd544-86wfw 1/1 Running cluster-local-gateway-5c566fd544-tx2p7 1/1 Running istio-ingressgateway-6c6cbf558b-kh6l8 2/2 Running istio-ingressgateway-6c6cbf558b-r6vpb 2/2 Running istio-pilot-7b6d979db8-vtmj9 1/1 Running $ kubectl get pods -n knative-serving NAME READY STATUS activator-68d9f95cd-9z4nz 1/1 Running autoscaler-5655c9fcfd-6x4jp 1/1 Running autoscaler-hpa-8668fc6f68-9vsfr 1/1 Running controller-5b77c5596c-qckcm 1/1 Running networking-istio-6d7d44d879-gz6j6 1/1 Running webhook-75b4fc9999-gwrp9 1/1 Running
kubectl apply !!!!!!!"!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!! # kubectl apply -f deployment.yaml !!!-!!!$!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!! 1
# apiVersion: apps/v1 2 # kind: Deployment 3 # metadata: 4 # name: sample-app-nodejs 5 # spec: 6 # selector: 7 # matchLabels: 8 # app: sample-app-nodejs 9 # replicas: 3 10 # template: 11 # metadata: 12 # labels: 13 # app: sample-app-nodejs 14 # spec: 15 # containers: 16 # - name: sample-app-nodejs 17 # image: index.docker.io/starkandwayne/sample-app-nodejs:latest 18 # --- 19 # apiVersion: v1 20 # kind: Service 21 # metadata: 22 # name: sample-app-nodejs 23 # spec: 24 # selector: 25 # app: sample-app-nodejs 26 # type: LoadBalancer 27 # ports: 28 # - protocol: TCP 29 # port: 80 30 # targetPort: 8080 !!!!!!!%!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!
Agenda Extending with Databases Deploy Building from Source Running a
Platform How to choose? ?
pack build $ pack build starkandwayne/sample-app-java ===> DETECTING [detector] skip:
[email protected]
[detector] pass:
[email protected]
[detector] pass:
[email protected]
[detector] pass:
[email protected]
[detector] pass:
[email protected]
[detector] pass:
[email protected]
[detector] skip:
[email protected]
[detector] skip:
[email protected]
[detector] Resolving plan... (try #1) [detector] Success! (7) … [builder] Cloud Foundry OpenJDK Buildpack 1.0.0-RC02 [builder] OpenJDK JDK 11.0.4: Contributing to layer $ docker run -ti -p 8080:8080 \ starkandwayne/sample-app-java
@d kpack image kP pack build starkandwayne/sample-app-nodejs --builder cloudfoundry/cnb:cflinufs3 \
--path sample-app-nodejs/ \ --publish Similar to:
Agenda Extending with Databases Deploy Building from Source Running a
Platform How to choose? ?
@d cf bind-service $ cf create-service smtp shared outbound-email $
cf bind-service my-node-app outbound-email $ cf env my-node-app "VCAP_SERVICES": { "smtp": [ { "binding_name": null, "credentials": { "host": "mail.authsmtp.com", "password": "special-secret", "port": 2525, "username": "ac123456" }, "instance_name": "outbound-email", "label": "smtp", "name": "outbound-email", "plan": "shared",
$ kn service update \ sample-app-nodejs -n test-app \ --image
starkandwayne/sample-app-nodejs:latest $ curl http://sample-app-nodejs.test-app.example.com Hello S1P! $ kn service list -n test-app NAME GENERATION CONDITIONS READY sample-app-nodejs 2 3 OK / 3 True $ kubectl get pods -n test-app NAME READY STATUS kwt-net 1/1 Running sample-app-nodejs-1-deployment-nbg2j 2/2 Terminating sample-app-nodejs-2-deployment-c6mrm 2/2 Running kn service update
knative secrets kubectl create secret generic smtp -n test-app \
--from-literal=SMTP_USER=devuser \ --from-literal=SMTP_PASSWORD='S!B\*d$zDsb' \ --from-literal=SMTP_HOST=10.11.12.14 kn service update show-env \ --image lhitchon/show-env:latest \ --namespace test-app \ --env-from secret:smtp
Agenda Extending with Databases Deploy Building from Source Running a
Platform How to choose? ?
Not Invented Here Platform Just because you didn't buy it
doesn't mean its not a Platform If you start with Kubernetes you will build a bespoke Platform No one else will know how your K8s environment should work Enjoy someone else's standardised Platform
Try at home up --google --cf github.com/starkandwayne/ bootstrap-kubernetes-demos up --google
up --google --knative up --google --kpack
Buy for work $ Pivotal Function Service Pivotal Container Service
Pivotal Application Service for Kubernetes Pivotal Build Service
We help build and run your platforms We help build
and run your applications How to choose?