Slide 1

Slide 1 text

Platform Engineering on Kubernetes Learning in the Open @Salaboy KCD São Paulo - Brazil Feb 2024

Slide 2

Slide 2 text

Why I am here? - Mauricio Salatino aka @Salaboy - Working on OSS for 10+ years - Dapr, Knative, Keptn, Crossplane, vcluster, etc. - https://diagrid.io

Slide 3

Slide 3 text

Agenda - Connecting the dots - Working with People - Dealing with Changes Check my blog post: - https://salaboy.com - https://www.salaboy.com/2024/02/22/learning-in-the-open/

Slide 4

Slide 4 text

Connecting the dots

Slide 5

Slide 5 text

Mapping tools to problems - Kubernetes (is not enough) - Ecosystem + Common Challenges - Provisioning Cloud Resources - CI (building and distributing containers) - GitOps - Observability - Developer Experience

Slide 6

Slide 6 text

Ecosystem challenges / Things that I didn’t knew when I started ● Tools designed with a set of use cases in mind ● Making tools working together is not as easy as it should ● Understanding the combination of tools that map to your specific scenarios is hard and time consuming

Slide 7

Slide 7 text

Demo - Creating Development Environments ● Crossplane.io: provision cloud resources using Kubernetes resources ● vcluster.com: create virtual clusters to improve isolation between workloads ● Try it out: https://github.com/salaboy/platforms-on-k8s/tree/main/chapter-6

Slide 8

Slide 8 text

Salaboy’s tips 1. Identify and scope down the problem that you are trying to solve 2. Get hands-on experience. Create Proof of Concepts to gain deeper insights 3. Check if “Project X” integrates with other tools in the ecosystem 4. Check if other companies are using the project, and for which use cases 5. Check for case studies by the CNCF or companies using the projects 6. Keep an open mind, and do not get too biased by the hype of specific projects. 7. Reach out to maintainers and contributors; they are always willing to help

Slide 9

Slide 9 text

Let’s practice ● Try the free step-by-step tutorials provided by the book ● All tutorials are community-driven and free to use: https://github.com/salaboy/platforms-on-k8s/ ● Help me translating them into Portuguese: https://github.com/salaboy/platforms-on-k8s/issues/26

Slide 10

Slide 10 text

Working with People

Slide 11

Slide 11 text

The importance of making connections ● People is the most important aspect of open source ● People is globally distributed ● People work for companies ● Companies have goals and motivations to invest in open source

Slide 12

Slide 12 text

People Challenges / Things that I didn’t knew when I started ● People created open source projects for fun, but those are hobby projects ● Open source projects targeting commercial use cases require to have full time maintainers ● Companies sponsoring these key maintainers (most of the times) have clear goals and objectives ● Understanding these motivations is key to protect your time investment

Slide 13

Slide 13 text

Engage with companies that sponsor Open Source ● Companies behind open source projects are not evil ● Understanding their products can save you time and help your adoption journey ● Providing feedback to these companies can help to maintain a healthy project

Slide 14

Slide 14 text

Tekton, GitHub Actions and Dagger - Context: - Tekton.dev provides a very Kubernetes-native way to create pipelines - GitHub Actions has massive adoption, it requires you to run only remotely (on Azure Cloud) - Dagger.io: run pipelines everywhere, local, Kubernetes (with Tekton) and GitHub Actions. https://github.com/salaboy/platforms-on-k8s/tree/main/chapter-3

Slide 15

Slide 15 text

Salaboy’s tips 1. Actively engage with open-source communities by using their tools, and providing feedback. 2. Actively engage with companies behind open-source projects and check what they are building, provide feedback. 3. Go to conferences and meetups and share what you learn. Conferences give you great insights into projects and where companies are going. 4. Reach out, don’t be shy, and make new friends. Most people working on open-source are always welcoming to help new people and answer questions

Slide 16

Slide 16 text

Let’s practice - Sign up and provide feedback to the products that we are building Diagrid’s Conductor Diagrid’s Catalyst

Slide 17

Slide 17 text

Dealing with change

Slide 18

Slide 18 text

Change is a feature, not an edge case ● Design and build future proof by choosing the right interfaces (APIs) ● Delay decisions to enable applications to be truly independent from their environment ● Crossplane.io and Dapr.io are perfect examples for this. ○ Check my blog post: https://blog.crossplane.io/crossplane-and-dapr

Slide 19

Slide 19 text

Challenges with Change / Things that I didn’t knew when I started - Choosing a cloud provider, a database or a message broker for your applications is a binding contract.. It is difficult to change later on - Team members need to become familiar with these decisions - Issues start to pop up - Running the cloud services for local development is not possible - Testing in the cloud might be tricky - Having local Kubernetes clusters, might not work for everyone

Slide 20

Slide 20 text

Dapr, abstract your infrastructure away

Slide 21

Slide 21 text

A very active project 12th position in the top growing projects in the CNCF landscape

Slide 22

Slide 22 text

Dapr, abstract your infrastructure away - API-driven approach to decouple your application from infrastructure - APIs for: - Storing and retrieving application state - Emitting and consuming async messaging - Configuration/Secrets - Workflows and orchestration - Best practices and cross-cutting concerns implemented out-of-the-box behind these APIs - APIs Implementations provided for all cloud providers

Slide 23

Slide 23 text

Example https://github.com/salaboy/platforms-on-k8s/tree/main/chapter-7

Slide 24

Slide 24 text

Salaboy’s tips ● Make sure that tools provide interfaces that support multiple implementations, down the road you might need to plug in your own ● Make sure that tools provide hook points to be able to customize their default behavior ● Always ask yourself, how is this project going to work for local development ● Look for tools that provide ecosystems, such as marketplaces with community-driven integrations or catalogs with pre-made configurations

Slide 25

Slide 25 text

Takeaways - Connecting the dots: - Making sense of a large ecosystem by exploring new tools and joining communities - Working with People: - Making friends can help you to navigate the industry, Open Source is a big part of that - Dealing with Changes: - Learning to adapt is key for success, choose your tools wisely All tutorials are community-driven and free to use: https://github.com/salaboy/platforms-on-k8s/

Slide 26

Slide 26 text

Questions? @salaboy / https://salaboy.com

Slide 27

Slide 27 text

No content

Slide 28

Slide 28 text

What position is Dapr in the top growing projects in the CNCF?

Slide 29

Slide 29 text

It will mean a world to me if you sign up and give feedback Diagrid’s Conductor Diagrid’s Catalyst