GithubHelp home page GithubHelp logo

salaboy / platforms-on-k8s Goto Github PK

View Code? Open in Web Editor NEW
149.0 10.0 77.0 52.93 MB

Platform Engineering on Kubernetes :: Book Examples

Home Page: https://www.salaboy.com

License: Apache License 2.0

Go 25.02% JavaScript 25.91% CSS 11.76% HTML 34.83% Dockerfile 0.45% Makefile 1.71% Shell 0.33%
argocd cloud-native cluster dagger dapr engineering k8s knative kubernetes open-source

platforms-on-k8s's Introduction

Platform Engineering on Kubernetes :: Book Code / Tutorials / Examples

This repository contains all the source code, tutorials, and examples from the Platform Engineering on Kubernetes Book.


K8s Tutorials

Available in: English | 中文 (Chinese) | Português (Portuguese) | Español

Note: Such language diversity is brought to you by contributors from a fantastic cloud-native community. Huge thanks! 🚀

Each chapter of the book refers to a step-by-step tutorial that you can run to get your hands dirty with some Open Source projects.

Next, you can find information about the application used in the tutorials and mentioned on the book.

Code

The code for the Conference Application (walking skeleton) and other related artifacts, such as Helm charts and configuration files, can be found inside the conference-application directory. All these examples can be built from source, and I encourage you to explore and change these applications.

Comments / Suggestions / Questions

If you have any comments, suggestions, or questions please open an issue, drop me a comment on my blog https://www.salaboy.com, or contact me via Twitter @Salaboy.

platforms-on-k8s's People

Contributors

asarenkansah avatar esala avatar fleeto avatar jbw976 avatar joseadanof avatar kmacedovarela avatar marcosnils avatar mcruzdev avatar salaboy avatar sevikarakose avatar thisthat avatar zouyingjie avatar

Stargazers

 avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar

Watchers

 avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar

platforms-on-k8s's Issues

Implement reconnects integrated with health checks

@mcruzdev, here is a quick checklist to document progress on the reconnect implementation:

  • Frontend:
    • reconnect functionality to connect with Kafka,
    • readiness endpoint should return non-200 if the service cannot connect to Kafka
    • readiness probe should be configured to wait at least 20 seconds before trying to check if it is connected and then retry every 10 seconds
  • C4P:
    • all the steps for Kafka described for the Frontend
    • reconnect to PostgreSQL
    • integrated with the readiness endpoint if cannot connect to PostgreSQL, the service shouldn't be marked as ready
  • Agenda:
    • all the steps for Kafka described for the Frontend
    • reconnect to Redis
    • integrated with the readiness endpoint if cannot connect to Redis, the service shouldn't be marked as ready
  • Nofications:
    • all the steps for Kafka described for the Frontend

Instructions can be polished for a smoother walkthrough experience

Currently, the awesome guide you've put together is super helpful to learners. I do notice potential ways to enhance the reader's hands-on experience and make it easier for different levels of audiences to follow through.

Feel free to drop suggestions that are not aligned with the project's original objectives.

Some overall enhancements would be:

  • Usage of admonitions where appropriate, instead of mostly raw text
  • A list of the environments currently supported (e.g., currently only sh scripts are available, so it would be cool to share it's been tested only on e.g., Unix, etc and that PRs for windows are welcome)
  • #39
  • #38
  • #36

( As I move forward on trying out the examples, I may add more items to the list).

I will send PRs related to items above considering it won't impact existing translations.

If enhancements like these are welcome, I believe the current early stage would be the best moment to add them.

Chapter-02: Docker disk resource limit & typo

  1. I'm running the service with a MacBook Pro m2 and I get the following error if the Docker disk space setting is too small.
$ > kind load docker-image -n dev bitnami/kafka:3.4.1-debian-11-r0                                                                                         base
Image: "bitnami/kafka:3.4.1-debian-11-r0" with ID "sha256:30edbaed7de3..." not yet present on node "dev-control-plane", loading...
...
Command Output: Error response from daemon: write /var/lib/docker/.../layer.tar: no space left on device

After adjusting the disk settings, the issue can be resolved. Would it be helpful to include a note about this in the documentation?

image
  1. The command kubect get pods contains a typo. kubect should be changed to kubectl.

If there are any similar typo errors in the future, may I submit a PR directly?

Use WireMock with Testcontainers or Dagger to test C4p Services

@mcruzdev Look into this: https://testcontainers.com/guides/testing-rest-api-integrations-using-wiremock/#_using_testcontainers_wiremock_module

Right now, the C4p Service is starting the Agenda Service and the Notification Service to run its tests (to avoid local mocks) but with WireMock and Docker integration we can start a mocked version of the services instead of the real ones (that require redis and Kafka to be started). It will be interesting to see if we can get this working to improve those tests, as right now bootstrapping agenda and notifications with all the infra dependencies is way too much.

Recommend Projects

  • React photo React

    A declarative, efficient, and flexible JavaScript library for building user interfaces.

  • Vue.js photo Vue.js

    🖖 Vue.js is a progressive, incrementally-adoptable JavaScript framework for building UI on the web.

  • Typescript photo Typescript

    TypeScript is a superset of JavaScript that compiles to clean JavaScript output.

  • TensorFlow photo TensorFlow

    An Open Source Machine Learning Framework for Everyone

  • Django photo Django

    The Web framework for perfectionists with deadlines.

  • D3 photo D3

    Bring data to life with SVG, Canvas and HTML. 📊📈🎉

Recommend Topics

  • javascript

    JavaScript (JS) is a lightweight interpreted programming language with first-class functions.

  • web

    Some thing interesting about web. New door for the world.

  • server

    A server is a program made to process requests and deliver data to clients.

  • Machine learning

    Machine learning is a way of modeling and interpreting data that allows a piece of software to respond intelligently.

  • Game

    Some thing interesting about game, make everyone happy.

Recommend Org

  • Facebook photo Facebook

    We are working to build community through open source technology. NB: members must have two-factor auth.

  • Microsoft photo Microsoft

    Open source projects and samples from Microsoft.

  • Google photo Google

    Google ❤️ Open Source for everyone.

  • D3 photo D3

    Data-Driven Documents codes.