Slide 1

Slide 1 text

Higher level abstraction/orchestration with Crossplane and Open Application Model

Slide 2

Slide 2 text

Name: mita Role: Infrastructure Engineer Interest: - Improving Operator Experience - Cloud Native - KRM Ecosystems - Kubernetes Operators - Observability - Chaos Engineering - Infrastructure as Code

Slide 3

Slide 3 text

Cognitive load ೝ஌ෛՙ 🤯

Slide 4

Slide 4 text

No content

Slide 5

Slide 5 text

🤯 ֶश଎౓ < ֶͿίτ͕ ૿͑Δ଎౓ Computer Science, Programming Languages, Frameworks, Cloud Native, Observability, Container, Container Security, Cloud, Edge, IaC, Machine Learning, DevOps, Chaos Engineering, Service Mesh, WASM and eBPF, etc…

Slide 6

Slide 6 text

🤯 ֶश଎౓ < ֶͿίτ͕ ૿͑Δ଎౓ ͋͋͋͋͋͋͋͋͋͋͋ ೝ஌ෛՙߴ͗͢ Computer Science, Programming Languages, Frameworks, Cloud Native, Observability, Container, Container Security, Cloud, Edge, IaC, Machine Learning, DevOps, Chaos Engineering, Service Mesh, WASM and eBPF, etc…

Slide 7

Slide 7 text

Kubernetes ecosystem

Slide 8

Slide 8 text

# of App developed

Slide 9

Slide 9 text

Higher level abstraction/orchestration with Crossplane and Open Application Model ʹͯೝ஌ෛՙΛԼ͛ຊ࣭తͳ࡞ۀʹ஫ྗ͍ͨ͠

Slide 10

Slide 10 text

Cloud Native and Kubernetes

Slide 11

Slide 11 text

What’s Kubernetes

Slide 12

Slide 12 text

What’s Kubernetes

Slide 13

Slide 13 text

Kubernetes’s true power[1] KRM[2]͸ίϯςφઐ༻Ͱ͸ͳ ͍ CRDΛϑϨʔϜϫʔΫͱͯ͠༻ ͍Δ͜ͱͰKRM APIΛ֦ுՄೳ KRMΛඪ४తͳσʔλϞσϧ ͱͯ͠ѻ͏ΤίγεςϜ͕୆಄

Slide 14

Slide 14 text

KRM ecosystem[3] KRM(Kubernetes Resource Model) Tool A Tool B Tool C Tool D Controller A Controller B Controller C Controller D Tool A Tool B Tool C Tool D API 1 API 2 API 3 API 4 Kubernetes API API Call Interoperable Ecosystem with KRM Tightly coupled system 🤔 😊

Slide 15

Slide 15 text

Abstraction ந৅Խ

Slide 16

Slide 16 text

No content

Slide 17

Slide 17 text

Software, Orchestrator Alphabet, Character Food Bird, Creatures

Slide 18

Slide 18 text

Software, Orchestrator Alphabet, Character Food Bird, Creatures Pattern and Abstraction

Slide 19

Slide 19 text

Software, Orchestrator Alphabet, Character Food Bird, Creatures Pattern and Abstraction “ਓ͸ύλʔϯԽ͢ΔຊೳΛ͍࣋ͬͯΔ” ιϑτ΢ΣΞͷྺ࢙΋ྫ֎Ͱ͸ͳ͍

Slide 20

Slide 20 text

History of Software ≒ Abstraction[4] “ιϑτ΢ΣΞͷྺ࢙͸ɺ ͻͱͭͷந৅ͷ্ʹ͞Βʹ࣍ͷந৅Λ ॏͶ͍ͯ͘͜ͱͩͬͨ”

Slide 21

Slide 21 text

Separation of Concerns ؔ৺ͷ෼཭

Slide 22

Slide 22 text

Έͳ͞Μ͸ԿͷΤϯδχΞͰ͔͢ʁ ಥવͰ͕͢…

Slide 23

Slide 23 text

XXXX Engineers ͕ΞϓϦέʔγϣϯͷ։ൃΛߦ͍ɺΞϓϦͷӡ༻্ͷಛੑΛఆٛ͢Δ ͕ΞϓϦέʔγϣϯͷӡ༻ཁ݅Λຬͨ͢Α͏ͳΠϯϑϥΛબఆ͠؀ڥͷ؅ཧ౳Λߦ͏ ͕ΦϯϓϨɺΫϥ΢υɺΤοδɺKubernetesͳͲΠϯϑϥ෦෼ͷఏڙͱ؅ཧΛߦ͏ ? ? ? ? ? ?

Slide 24

Slide 24 text

XXXX Engineers ͕ΞϓϦέʔγϣϯͷ։ൃΛߦ͍ɺΞϓϦͷӡ༻্ͷಛੑΛఆٛ͢Δ ͕ΞϓϦέʔγϣϯͷӡ༻ཁ݅Λຬͨ͢Α͏ͳΠϯϑϥΛબఆ͠؀ڥͷ؅ཧ౳Λߦ͏ ͕ΦϯϓϨɺΫϥ΢υɺΤοδɺKubernetesͳͲΠϯϑϥ෦෼ͷఏڙͱ؅ཧΛߦ͏ Application Dev Application Ops Infrastructure Ops Application Dev Application Ops Infrastructure Ops

Slide 25

Slide 25 text

શ෦Զ ͕ΞϓϦέʔγϣϯͷ։ൃΛߦ͍ɺΞϓϦͷӡ༻্ͷಛੑΛఆٛ͢Δ ͕ΞϓϦέʔγϣϯͷӡ༻ཁ݅Λຬͨ͢Α͏ͳΠϯϑϥΛબఆ͠؀ڥͷ؅ཧ౳Λߦ͏ ͕ΦϯϓϨɺΫϥ΢υɺΤοδɺKubernetesͳͲΠϯϑϥ෦෼ͷఏڙͱ؅ཧΛߦ͏ Զ Զ Զ Զ Զ Զ

Slide 26

Slide 26 text

Platform Model for Separation of Concerns • DevOpsΛεέʔϧͤ͞ΔͨΊͷΞϓϩʔνͱͯ͠ɺ
 ”The 2020 State of DevOps Report “[5]ʹͯ঺հ͞Ε͍ͯΔ • Platform Model: ։ൃνʔϜ޲͚ʹɺΠϯϑϥ΍؀ڥͷ੔උɺσϓϩΠϝ ϯτύΠϓϥΠϯͳͲΛ༻ҙ͢ΔPlatform teamΛ༻ҙ͢Δ͜ͱͰΞϓϦ ։ൃΛՃ଎ͤͨ͞Γɺؔ৺ͷ෼཭Λߦ͑Δ • େ͖͘੒௕͍ͯ͠Δاۀͷଟ͘͸ɺ૊৫಺PlatformΛ׆༻͍ͯ͠Δ

Slide 27

Slide 27 text

Summary of Background • Ϋϥ΢υΑΓߴ࣍ϨΠϠʹ͓͚Δந৅Խ: Crossplane • ΞϓϦͷந৅Խͱؔ৺ͷ෼཭: OAM(Open Application Model) Ϋϥ΢υωΠςΟϒͷจ຺Ͱࠓޙ·͢·͢γεςϜ͕ߴ౓Խ͍ͯͨ͘͠Ίɺ ந৅Խ΍ؔ৺ͷ෼཭Λߦ͏͜ͱͰೝ஌ෛՙΛԼ͍͛ͨ

Slide 28

Slide 28 text

Crossplane

Slide 29

Slide 29 text

Crossplane is an Orchestration & Management tool for what?

Slide 30

Slide 30 text

Orchestrate any infrastructure

Slide 31

Slide 31 text

Build your own platform with providers

Slide 32

Slide 32 text

Crossplane • Launched in Dec 2018, by the creators of Rook
 (CNCF graduated project) released v1.0 in Dec 2020. 🎉 • Open source & Open governance with CNCF • Based on Kubernetes control plane • 3 main feature areas ◦ Provision infrastructure declaratively using the Kubernetes API ◦ O ff er your own declarative infrastructure APIs for teams to use ◦ Run and deploy applications alongside infrastructure 
 •

Slide 33

Slide 33 text

Crossplane fl ow AWS Azure GCP Cloud/Service Providers provider-aws Any providers Custom Resource/ Composite Resource api-server 3. Reconcile through AWS API provider-gcp provider-azure 2. watch desired states 1. Apply manifests Kubernetes

Slide 34

Slide 34 text

Crossplane Demo 1: Manage RDS through k8s API

Slide 35

Slide 35 text

Manage RDS through k8s API AWS Azure GCP Cloud/Service Providers provider-aws Any providers Custom Resource/ Composite Resource api-server 3. Reconcile through AWS API provider-gcp provider-azure 2. watch desired states 1. Apply manifests Kubernetes

Slide 36

Slide 36 text

Demo Session σϞ͢ΔΑ

Slide 37

Slide 37 text

Crossplane Demo 2: Interoperability of KRM

Slide 38

Slide 38 text

Interoperability of KRM KRM(Kubernetes Resource Model) kubectl provider- aws provider- gcp provider- azure Crossplane Kubernetes API Interoperable Ecosystem with KRM 😊 Terraform Kubernetes provider for Terraform(Alpha)

Slide 39

Slide 39 text

Interoperability of KRM AWS Azure GCP Cloud/Service Providers provider-aws Any providers api-server 3. Reconcile through AWS API provider-gcp provider-azure 2. watch desired states Kubernetes Terraform Kubernetes provider for Terraform(Alpha) 1.3. Apply manifests 1.1. Apply manifests
 written in HCL 1.2. Convert HCL to KRM

Slide 40

Slide 40 text

Demo Session σϞ͢ΔΑ

Slide 41

Slide 41 text

Crossplane Components 
 and Architecture[6] ※࣌ؒͷ౎߹্εΩοϓ

Slide 42

Slide 42 text

OAM (Open Application Model)

Slide 43

Slide 43 text

OAM: Platform agnostic application model • ʮΞϓϦέʔγϣϯ͕ͲͷϓϥοτϑΥʔϜʹσϓϩΠ͞ΕΔ͔
 Λҙࣝ͠ͳͯ͘Α͍ʯΞϓϦέʔγϣϯϞσϧ • MicrosoftͱAlibaba Cloud͕2019೥ʹOpen Web Foundation഑ԼͰൃද[8] • ݱঢ়ɺv0.1ͱv0.2ͱ͍͏ҟͳΔspec͕ଘࡏ • v0.2͔ΒKRMʹରԠ[7] • ΞϓϦ։ൃऀɺΞϓϦӡ༻ऀɺΠϯϑϥӡ༻ऀͷ໾ׂΛ໌֬ʹ෼཭ 🎉

Slide 44

Slide 44 text

OAM Implementations • Rudr: Implementation of OAM spec v0.1.0(previously named v1.0.0-alpha1 release) • Kubevera: Implementation of OAM spec v.0.2.0 • EDAS(Enterprise Distributed Application Service)

Slide 45

Slide 45 text

Separation of Concerns Providing Applications and describing Operational Characteristics Traf fi c Mgmt, Deploy Policy, Auto-scaling, Identity Mgmt, Recovery… Infrastructure Capabilities: 
 On-premise? Cloud? Edge? Kubernetes? Application Dev Application Ops Infrastructure Ops

Slide 46

Slide 46 text

Separation of Concerns ΞϓϦέʔγϣϯࣗମͱ ͦͷӡ༻্ͷಛੑʹؔ৺ ͲͷΑ͏ʹΞϓϦέʔγϣϯ܈͕ ӡ༻ཁ݅Λຬ͔ͨ͢ʹؔ৺ ૊৫શମͷΠϯϑϥ͕ͲͷΑ͏ʹ ؅ཧ͞ΕΔ͔ͳͲͷશମ૾ʹؔ৺ Application Dev Application Ops Infrastructure Ops

Slide 47

Slide 47 text

Area of Concerns[8]

Slide 48

Slide 48 text

Area of Concerns Application=Componentes Application ScopeʹΑͬͯෳ਺ ͷComponentΛάϧʔϐϯά

Slide 49

Slide 49 text

Area of Concerns Πϯϑϥͷ࣋ͭಛੑΛTraitsͱ ͯ͠ఆٛ͠ParametersʹͯՄม ʹ͢Δ Traits: • Tra ffi c Mgmt • Deploy Policy • Auto-scaling • Identity Mgmt • Recovery • etc

Slide 50

Slide 50 text

Area of Concerns ApplicationͱTraitsͷܨ͗ࠐΈ ΛApplication Con fi gurationʹ هࡌͯ͠ରԠ෇͚

Slide 51

Slide 51 text

How great OAM is ΞϓϦपΓͷΈʹूதͰ͖Δɻ KubernetesͳͲPlatformपΓΛ ஌Βͳͯ͘ྑ͍ Traitsͷத͔Βඞཁͳӡ༻ಛੑΛ બ୒ͯ͠ద༻Ͱ͖Δ Traits୯ҐͰӡ༻্ͷCapability ΛఆٛͰ͖Δɻ ΞϓϦपΓݟͳ͍͍ͯ͘ Application Dev Application Ops Infrastructure Ops

Slide 52

Slide 52 text

How Crossplane and OAM collaborate

Slide 53

Slide 53 text

Towards standard k8s app model[9] • Deploy K8s app with cloud service - entirely from k8s API

Slide 54

Slide 54 text

OAM & Crossplane Composition[10]

Slide 55

Slide 55 text

History of Crossplane and OAM

Slide 56

Slide 56 text

History of OAM & Crossplane Microsoft and Alibaba Cloud Announce OAM v0.1 & Rudr Oct 2019[12] Microsoft and Alibaba Cloud Join Crossplane community May 2020[13] Rook creators launch Crossplane[11] Dec 2018 Rudr deprecation[14] And OAM v0.2 release Rudr’s succesor KubeVela 1.0 March 2021 Crossplane 1.0 Dec 2020 Crossplane adopt OAM at Crossplane v0.11 May 2020 🎉 🎉 🎉

Slide 57

Slide 57 text

Key takeaway • CrossplaneͱOAMͷ֓ཁͱղܾ͢Δ՝୊ͷཧղ • CrossplaneʹΑͬͯɺΫϥ΢υ/αʔϏεϓϩόΠμͷҰஈ্ʹ
 ಠࣗͷந৅ԽϨΠϠ/ϓϥοτϑΥʔϜΛߏங • OAMʹΑͬͯந৅Խͱؔ৺ͷ෼཭Λߦ͏͜ͱͰPlatform ModelΛ
 ࣮ݱ͠DevOpsʹڧ͍૊৫࡞ΓΛଅਐ • Production ReadyͳCrossplaneͱOAMʹΑΔߴ࣍ͷந৅Խ͕
 KRMͷΤίγεςϜͰ࣮ݱ͞Εඪ४Խ͕ਐΉ͜ͱͷ঺հ

Slide 58

Slide 58 text

Higher level abstraction/orchestration with Crossplane and Open Application Model

Slide 59

Slide 59 text

3rd Crossplane Community Day Third Crossplane community day: KubeCon EU co-located event will be held in May 4, 2021[15] 2nd Crossplane Community Day[16]

Slide 60

Slide 60 text

References • [1] Infrastructure as Code ――Ϋϥ΢υʹ͓͚Δαʔό؅ཧͷݪଇͱϓϥΫςΟε: https://www.oreilly.co.jp/books/ 9784873117966/ • [2] Cloud Native Ecosystemͷ੒ख़౓͔ΒݟΔ2021೥ͷಈ޲: https://qiita.com/iaoiui/items/6e1293d656735b062ed2 • [3] CNCF Cloud Native Landscape: https://landscape.cncf.io • [4] Crossplane: https://crossplane.io • [5] https://puppet.com/resources/report/2020-state-of-devops-report/ • [6] https://zenn.dev/iaoiui/articles/fd8417b9fba25ad29e8f • [7] https://github.com/oam-dev/spec/blob/master/SPEC.md#versioning • [8] https://azure.microsoft.com/en-us/resources/videos/ignite-2019-mark-russinovich-presents-the-future-of-cloud- native-applications-with-oam-and-dapr/

Slide 61

Slide 61 text

References • [9] https://sched.co/ZelS • [10] https://docs.google.com/presentation/d/1PxZweRpB6HElxd9qGK1McboGZ1kluCDCS5qxgYnX5f0/ edit#slide=id.g536db6d9f2_0_86 • [11] Crossplane CNCF Project Overview: https://docs.google.com/presentation/d/ 1PxZweRpB6HElxd9qGK1McboGZ1kluCDCS5qxgYnX5f0/edit#slide=id.g9303db1085_1_55 • [12] https://cloudblogs.microsoft.com/opensource/2019/10/16/announcing-open-application-model/ • [13]https://blog.crossplane.io/welcome-microsoft-and-alibaba-to-the-crossplane-community/ • [14]https://github.com/oam-dev/rudr/issues/559 • [15]Crossplane community day 2020: https://events.crossplane.io/crossplane-community-day-modernizing-with-api-centric- control-plane-post • [16]Crossplane community day 2021: https://events.linuxfoundation.org/crossplane-community-day-europe/

Slide 62

Slide 62 text

References • https://github.com/kubernetes/community/blob/master/contributors/design-proposals/architecture/ resource-management.md • Growth and Design Patterns in the KRM API Ecosystem: https://static.sched.com/hosted_ fi les/ kccncna19/5e/eric-tune-kcon-slides- fi nal.pdf • Kubevela: https://github.com/oam-dev/kubevela • https://static.sched.com/hosted_ fi les/kccncna19/5e/eric-tune-kcon-slides- fi nal.pdf • Kubernetes as a Framework for Control Planes featuring Brian Grant, Google: https://blog.upbound.io/how-the- kubernetes-resource-model-enables-con fi guration-as-data/