Upgrade to Pro — share decks privately, control downloads, hide ads and more …

Evolution of Architecture @ Kauche

Yuki Ito
September 04, 2022

Evolution of Architecture @ Kauche

Yuki Ito

September 04, 2022
Tweet

More Decks by Yuki Ito

Other Decks in Technology

Transcript

  1. What is Cloud Run Cloud Run is a managed compute

    platform that enables you to run containers that are invocable via requests or events. Cloud Run is serverless: it abstracts away all infrastructure management... https://cloud.google.com/run/docs
  2. Architecture - Key Concepts - e.g.) VS. Cloud Functions Trigger

    Run Pub/Sub Functions Run Firestore Functions
  3. Architecture ✅ Everything is Managed as API De fi nitions

    ✅ Reuse same implementation logic as APIs ✅ Use same Monitoring environments
  4. Architecture ✅ Everything is Managed as API De fi nitions

    ✅ Reuse same implementation logic as APIs ✅ Use same Monitoring environments
  5. gRPC gRPC is a modern open source high performance Remote

    Procedure Call (RPC) framework that can run in any environment. https://grpc.io/
  6. Modular Monolith Almost all the cases where I've heard of

    a system that was built as a microservice system from scratch, it has ended up in serious trouble. ... you shouldn't start a new project with microservices, even if you're sure your application will be big enough to make it worthwhile. MonolithFirst Martin Fowler https://martinfowler.com/bliki/MonolithFirst.html
  7. Modular Monolith ✅ Pros - Single Deployment Unit - Simple

    Design ❌ Cons - Independence - Autonomy
  8. O ffl oading Cross-Cutting Concerns to the API Gateway ✓

    Authentication / Authorization ✓ Transcoding ✓ Being Internet facing (TLS / Domain / CDN / IP ...) ✓ ...
  9. Envoy https://www.envoyproxy.io/docs/envoy/v1.23.0/intro/what_is_envoy Envoy is an L7 proxy and communication bus

    designed for large modern service oriented architectures. The project was born out of the belief that:ɹ The network should be transparent to applications. When network and application problems do occur it should be easy to determine the source of the problem.
  10. Why Envoy? • Extensibility with WebAssembly • Dynamic Con fi

    gurations • Widely used in the Cloud Native World
  11. Why Envoy? • Extensibility with WebAssembly • Dynamic Con fi

    gurations • Widely used in the Cloud Native World
  12. e.g. Fetching access tokens from Google Cloud Metadata Server API

    Gateway Upstream Microservice Metadata Server Access Token Access Token Get Access Token Request
  13. GraphQL Federation Commerce gRPC API Gateway Social GraphQL Customer GraphQL

    Federation (Apollo Router) Commerce GraphQL Social gRPC
  14. GraphQL Federation Commerce gRPC API Gateway Social GraphQL Customer GraphQL

    Federation (Apollo Router) Commerce GraphQL Social gRPC
  15. GraphQL Federation Commerce gRPC API Gateway Social GraphQL Customer GraphQL

    Federation (Apollo Router) Commerce GraphQL Social gRPC Platfrom Business