technical challenging in a MMAU SASS product, and how do we improve reliability in a microservice architecture with improving context passing, service mesh, etc.
Ronald Hsu presented on Carousell's migration from a monolithic architecture to microservices. Some key points:
- Carousell is a mobile-first classifieds app with over 185 million listings across 20+ cities in 7 markets.
- The goals of migrating were to improve productivity, reduce dependencies and server costs, and handle higher traffic.
- The strategy involved developing services independently, tying them together gradually, and ensuring zero downtime during rollout.
- Challenges included stabilizing GRPC connections, handling side effects, switching feature flags for a short time, backfilling data, and balancing performance against a good enough initial logic.
What we learnt at carousell tw for golang gathering #31Ronald Hsu
The document discusses the architecture and design of a payment and shipping system built using Golang. It covers topics like code structure, dependency injection, microservices communication using gRPC, gRPC status codes, and some gRPC tricks. The system includes features like payment methods, address preferences, order requests, delivery tracking, and wallet/bank integration. It also discusses responsibilities of the payment system, potential issues to watch out for like import cycles and decoupling services, and concludes with recommendations on service design and performance.
Slides for the talk in Ruby SG meetup. (Apr 2018)
https://github.com/sathiyaseelan/grpc-client-ruby
https://github.com/sathiyaseelan/grpc-client-go
https://github.com/sathiyaseelan/grpc-rails-api
This document compares REST and gRPC for microservices communication. It discusses how gRPC addresses limitations of REST like inefficient binary encoding and lack of bidirectional streaming. gRPC uses protocol buffers for interface definition and code generation. It supports multiple languages and platforms and uses HTTP/2 for performance. Companies like Google and Netflix use gRPC for its performance advantages. The document provides examples of unary, server streaming, client streaming and bidirectional streaming RPC calls in gRPC. It recommends using gRPC for microservices and client-server applications where performance is important.
gRPC is an open source high performance RPC framework that can connect services across data centers efficiently using pluggable support for load balancing, tracing, health checking and authentication. It supports languages like Go, Java, Python and C++ and can connect devices, mobile apps, and browsers to backend services. gRPC uses HTTP/2 for communication over TCP, supports Protocol Buffers and JSON, and offers features like request multiplexing and server push. Many large companies use gRPC in production including Google, Square, Dropbox, and Netflix.
Ronald Hsu presented on Carousell's migration from a monolithic architecture to microservices. Some key points:
- Carousell is a mobile-first classifieds app with over 185 million listings across 20+ cities in 7 markets.
- The goals of migrating were to improve productivity, reduce dependencies and server costs, and handle higher traffic.
- The strategy involved developing services independently, tying them together gradually, and ensuring zero downtime during rollout.
- Challenges included stabilizing GRPC connections, handling side effects, switching feature flags for a short time, backfilling data, and balancing performance against a good enough initial logic.
What we learnt at carousell tw for golang gathering #31Ronald Hsu
The document discusses the architecture and design of a payment and shipping system built using Golang. It covers topics like code structure, dependency injection, microservices communication using gRPC, gRPC status codes, and some gRPC tricks. The system includes features like payment methods, address preferences, order requests, delivery tracking, and wallet/bank integration. It also discusses responsibilities of the payment system, potential issues to watch out for like import cycles and decoupling services, and concludes with recommendations on service design and performance.
Slides for the talk in Ruby SG meetup. (Apr 2018)
https://github.com/sathiyaseelan/grpc-client-ruby
https://github.com/sathiyaseelan/grpc-client-go
https://github.com/sathiyaseelan/grpc-rails-api
This document compares REST and gRPC for microservices communication. It discusses how gRPC addresses limitations of REST like inefficient binary encoding and lack of bidirectional streaming. gRPC uses protocol buffers for interface definition and code generation. It supports multiple languages and platforms and uses HTTP/2 for performance. Companies like Google and Netflix use gRPC for its performance advantages. The document provides examples of unary, server streaming, client streaming and bidirectional streaming RPC calls in gRPC. It recommends using gRPC for microservices and client-server applications where performance is important.
gRPC is an open source high performance RPC framework that can connect services across data centers efficiently using pluggable support for load balancing, tracing, health checking and authentication. It supports languages like Go, Java, Python and C++ and can connect devices, mobile apps, and browsers to backend services. gRPC uses HTTP/2 for communication over TCP, supports Protocol Buffers and JSON, and offers features like request multiplexing and server push. Many large companies use gRPC in production including Google, Square, Dropbox, and Netflix.
In this talk we will discuss the use of gRPC to build a microservices-based application on Kubernetes. We’ll firstly focus on the basic concepts of gRPC: protocol buffers, code generation and HTTP 2.0. We’ll then discuss some more intermediate-level features, such as native Kubernetes load balancing, gRPC streaming, error propagation, HTTP tunneling and instrumentation. Finally we’ll touch on some of the newer, exciting developments in the space: middleware and context propagation for distributed tracing, gRPC Web for client-side rich web apps and gogoproto for blazing-fast generated code. This talk is based on my experience building a hosted, Prometheus-based monitoring service, which itself used gRPC for all intra-server communication and runs on Kubernetes. There’ll be live coding, real world examples and discussion of the benefits (and drawbacks) of gRPC.
Presented at GDG Devfest Ukraine 14th Oct 2017.
The document discusses gRPC, an open-source framework for building distributed applications and services. It was motivated by Google's experience with internal RPC systems handling over 1010 RPCs per second. gRPC uses HTTP/2 for transport, allowing it to take advantage of existing network infrastructure while enabling features like bidirectional streaming. It generates client and server code from IDL definitions, supporting multiple languages.
The document describes Uber's use of Kafka for reliable messaging. Kafka is used for inter-service messaging, stream processing, database changelog transport, data ingestion, and logging. It provides ordered, partitioned streaming and unordered queueing semantics. The summary describes Uber's consumer wrapper that implements features like acknowledgments, redelivery, delays between retries, dead letter queues, competing consumers, and multi-datacenter failover to support reliable messaging on top of Kafka.
Bringing Learnings from Googley Microservices with gRPC - Varun Talwar, GoogleAmbassador Labs
Varun Talwar, product manager on Google's gRPC project discusses the fundamentals and specs of gRPC inside of a Google-scale microservices architecture.
Presented at Stream Processing Meetup (7/19/2018)(https://www.meetup.com/Stream-Processing-Meetup-LinkedIn/events/251481797/).
At Uber, we operate 20+ Kafka clusters to collect system and application logs as well as event data from rider and driver apps. We need a Kafka replication solution to replicate data between Kafka clusters across multiple data centers for different purposes. This talk will introduce the history behind uReplicator and the high level architecture. As the original uReplicator ran into scalability challenges and operational overhead as the scale of Kafka clusters increased, we built the Federated uReplicator which addressed above issues and provide an extensible architecture for further scaling.
gRPC is a remote procedure call framework developed by Google that uses HTTP/2 for transport, Protocol Buffers as the interface definition language, and provides features such as authentication, bidirectional streaming and blocking or nonblocking bindings. It aims to be fast, lightweight, easy to use and supports many languages. Key benefits include low latency using HTTP/2, efficient serialization with Protocol Buffers and multi-language support.
Introduction to DevOps and the Practical Use Cases at Credit OKKriangkrai Chaonithi
The document provides an introduction to DevOps and practical use cases. It discusses what DevOps is, why it is popular, the skills required of DevOps engineers, and common DevOps technologies like version control, CI/CD pipelines, containers, and monitoring. It also summarizes Credit OK's use of DevOps practices like Docker, Kubernetes, and GitLab CI/CD pipelines for their credit scoring platform. Finally, it outlines some modern obstacles in software development and concludes that DevOps can help ensure quality, improve productivity, and automate infrastructure through practices like continuous integration, containerization, and logging/monitoring.
This document discusses learnings from Google's experience with microservices and the Stubby framework. It covers why HTTP/JSON is insufficient, the importance of establishing common protocols and data formats, designing for fault tolerance, collecting service analytics and tracing, and load balancing. It then introduces gRPC as an open source framework that addresses these lessons by providing language-independent service definitions, performance via HTTP/2, pluggable features, and usability across platforms and languages.
Hadoop summit - Scaling Uber’s Real-Time Infra for Trillion Events per DayAnkur Bansal
Building data pipelines is pretty hard! Building a multi-datacenter active-active real time data pipeline for multiple classes of data with different durability, latency and availability guarantees is much harder.
Real time infrastructure powers critical pieces of Uber (think Surge) and in this talk we will discuss our architecture, technical challenges, learnings and how a blend of open source infrastructure (Apache Kafka and Samza) and in-house technologies have helped Uber scale.
This document provides an introduction to modern DevOps technologies. It discusses DevOps concepts like source code management using Git, different methods of deploying programs including using bare metal servers, virtualization, containers, and cloud functions. Specific container and container orchestration technologies like Docker and Kubernetes are explained. Continuous integration and continuous delivery (CI/CD) practices are also introduced. The presentation includes an agenda with slides on these topics and ends with a question and answer section and announcement of a Docker workshop to deploy an HTTP server container.
This document contains a presentation about Elasticsearch and how it is used to power a search engine. It discusses Elasticsearch features for developers and DevOps, including its REST API, JSON storage, flexible schemas, and plugin architecture. It also demonstrates basic usage through CRUD operations and queries, as well as more advanced features like analyzers, autocomplete, and aggregations. The goal is to provide search capabilities for a healthcare provider directory by processing user queries with Elasticsearch and applying additional application logic.
Robert Kubis - gRPC - boilerplate to high-performance scalable APIs - code.t...AboutYouGmbH
The document discusses gRPC, an open source framework for building microservices. It was created by Google to be a high performance, open source universal RPC framework. gRPC uses HTTP/2 for transport, Protocol Buffers as the interface definition language, and generated client/server code for many languages to make cross-platform communications simple and efficient. The document provides an overview of gRPC's goals and architecture, how to define a service using .proto files, and examples of common RPC patterns like unary, streaming, and bidirectional calls.
Building data pipelines is pretty hard! Building a multi-datacenter active-active real time data pipeline for multiple classes of data with different durability, latency and availability guarantees is much harder. Real time infrastructure powers critical pieces of Uber (think Surge) and in this talk we will discuss our architecture, technical challenges, learnings and how a blend of open source infrastructure (Apache Kafka and Flink) and in-house technologies have helped Uber scale.
Presentation at NetPonto community: "We’re going to discuss gRPC, Google’s open-source RPC framework. I’ll dive a bit into the history of RPC as a protocol, and what its historical use has been. I’ll also highlight some benefits to adopt gRPC and how its possible to swap out parts of gRPC and still take advantage of gRPC’s benefits. Finally I’ll answer the question that has been on many lips since gRPC was announced — what does this mean for REST?"
Discover how GraphQL can help you building and evolve your business APIs.
GraphQL is a query language for APIs developed internally by Facebook. It allows the developers to ask for exactly what they need and nothing more, making it easier to evolve APIs over time and create powerful developer tools around an API.
Presented by Helder Vasconcelos and Luis Gonçalves on 21st May 2019 @ Reactor Innovation Hub.
Powered by https://taikai.network
Flink Forward San Francisco 2019: Building Financial Identity Platform using ...Flink Forward
Building Financial Identity Platform using Apache Flink
To power financial prosperity around the world, Intuit needs to create personalized product experience and new data centric products. Some of these use cases include Enabling 360 Customer View for Personalization and Targeting, building Ecosystem for Data Exchange between internal and 3rd party and personalize financial offerings, creating platform for Personalized security experience based on risk factors of people and devices.
Unlike workflow centric products (for example, tax processing, accounting transactions), these use cases are often information-intensive and require real-time access to a large amount of connected data associated with people, organizations and things they own.
To achieve this, we have created a platform called Unified Profile Service utilizing Flink. This platform is intended to provide the strategic data asset of a trusted, real-time, unified and connected view of people, organization and things they own. We have abstracted re-usable components such as sources, sinks, transformations etc and created a template. Utilizing this template our Product teams are able to rapidly test domain specific transformations and computations by creating and deploying Flink Jobs. This platform is running in production on AWS EMR, powering multiple use cases, ingesting and processing billions of events per day.
In this talk, we will be discussing the design details of this Platform built leveraging Flink and Flink APIs as well as challenges faced along the way. We will begin by talking about the various components of the pipeline such as Identity Stitching, Entity Resolution, Reconciliation and Data Persistence. We will then dig in to the technical details of how we abstracted away these common components and created a template. We will also talk about how we update Consumer’s Financial Identity Graph in real-time through custom built AWS Dynamodb and Neptune Sink using Flink’s Connector API.
Finally we will touch on lessons learnt along the way as we deployed the platform in production and offer advice on things to avoid as well as how to take things to the next level.
This document provides an overview of reading the source code of Presto, an open source distributed SQL query engine. It recommends starting on GitHub at prestosql/presto and exploring areas of interest like SQL interfaces to different data sources via connectors, the query engine core, distributed systems implementation, or extending Presto. Useful techniques for navigating the code with IntelliJ IDEA are presented. Specific code locations and concepts are highlighted for connectors, the query execution flow, parsing and analyzing SQL, and Presto's implementation as a distributed REST service. The document aims to help readers find their own interests to learn from Presto's codebase.
Temporal Performance Modelling of Serverless Computing Platforms - WoSC6Nima Mahmoudi
This presentation is an overview of the "Temporal Performance Modeling of Serverless Computing Platforms" paper published in Sixth International Workshop on Serverless Computing (WoSC6) 2020 as part of IEEE Middleware conference.
Authors: Nima Mahmoudi and Hamzeh Khazaei
Paper: https://www.serverlesscomputing.org/wosc6/#p1
Preprint and Artifacts: https://research.nima-dev.com/publication/mahmoudi-2020-tempperf/
Full Presentation: https://youtu.be/9r3j_1B5t8c
Lightning Talk (1 min): https://youtu.be/E5KigIq0Z1E
PACS Lab: https://pacs.eecs.yorku.ca/
This is a talk I gave to the late crew at the DevOps KC meetup outlining why/what/how of setting up a Graphite server using Python end-to-end for getting stats.
Angular (v2 and up) - Morning to understand - LinagoraLINAGORA
Slides of the talk about Angular, at the "Matinée Pour Comprendre" organized by Linagora the 22/03/17.
Discover what's new in Angular, why is it more than just a framework (platform) and how to manage your data with RxJs and Redux.
65% Performance Gains at Cryptocurrency Platform CoinGecko: An Argo Smart Rou...Cloudflare
Join Cloudflare and CoinGecko, a Singapore-based cryptocurrency ranking chart platform that serves over 100 million pages views per month, for an educational webinar. Learn about the steps CoinGecko took to improve the user experience of its cryptocurrency platform, and how Cloudflare’s Argo Smart Routing routed over 1.2 billion website requests per month to improve performance on average by 65%, while using caching to save CoinGecko up to 88% on bandwidth.
In this talk we will discuss the use of gRPC to build a microservices-based application on Kubernetes. We’ll firstly focus on the basic concepts of gRPC: protocol buffers, code generation and HTTP 2.0. We’ll then discuss some more intermediate-level features, such as native Kubernetes load balancing, gRPC streaming, error propagation, HTTP tunneling and instrumentation. Finally we’ll touch on some of the newer, exciting developments in the space: middleware and context propagation for distributed tracing, gRPC Web for client-side rich web apps and gogoproto for blazing-fast generated code. This talk is based on my experience building a hosted, Prometheus-based monitoring service, which itself used gRPC for all intra-server communication and runs on Kubernetes. There’ll be live coding, real world examples and discussion of the benefits (and drawbacks) of gRPC.
Presented at GDG Devfest Ukraine 14th Oct 2017.
The document discusses gRPC, an open-source framework for building distributed applications and services. It was motivated by Google's experience with internal RPC systems handling over 1010 RPCs per second. gRPC uses HTTP/2 for transport, allowing it to take advantage of existing network infrastructure while enabling features like bidirectional streaming. It generates client and server code from IDL definitions, supporting multiple languages.
The document describes Uber's use of Kafka for reliable messaging. Kafka is used for inter-service messaging, stream processing, database changelog transport, data ingestion, and logging. It provides ordered, partitioned streaming and unordered queueing semantics. The summary describes Uber's consumer wrapper that implements features like acknowledgments, redelivery, delays between retries, dead letter queues, competing consumers, and multi-datacenter failover to support reliable messaging on top of Kafka.
Bringing Learnings from Googley Microservices with gRPC - Varun Talwar, GoogleAmbassador Labs
Varun Talwar, product manager on Google's gRPC project discusses the fundamentals and specs of gRPC inside of a Google-scale microservices architecture.
Presented at Stream Processing Meetup (7/19/2018)(https://www.meetup.com/Stream-Processing-Meetup-LinkedIn/events/251481797/).
At Uber, we operate 20+ Kafka clusters to collect system and application logs as well as event data from rider and driver apps. We need a Kafka replication solution to replicate data between Kafka clusters across multiple data centers for different purposes. This talk will introduce the history behind uReplicator and the high level architecture. As the original uReplicator ran into scalability challenges and operational overhead as the scale of Kafka clusters increased, we built the Federated uReplicator which addressed above issues and provide an extensible architecture for further scaling.
gRPC is a remote procedure call framework developed by Google that uses HTTP/2 for transport, Protocol Buffers as the interface definition language, and provides features such as authentication, bidirectional streaming and blocking or nonblocking bindings. It aims to be fast, lightweight, easy to use and supports many languages. Key benefits include low latency using HTTP/2, efficient serialization with Protocol Buffers and multi-language support.
Introduction to DevOps and the Practical Use Cases at Credit OKKriangkrai Chaonithi
The document provides an introduction to DevOps and practical use cases. It discusses what DevOps is, why it is popular, the skills required of DevOps engineers, and common DevOps technologies like version control, CI/CD pipelines, containers, and monitoring. It also summarizes Credit OK's use of DevOps practices like Docker, Kubernetes, and GitLab CI/CD pipelines for their credit scoring platform. Finally, it outlines some modern obstacles in software development and concludes that DevOps can help ensure quality, improve productivity, and automate infrastructure through practices like continuous integration, containerization, and logging/monitoring.
This document discusses learnings from Google's experience with microservices and the Stubby framework. It covers why HTTP/JSON is insufficient, the importance of establishing common protocols and data formats, designing for fault tolerance, collecting service analytics and tracing, and load balancing. It then introduces gRPC as an open source framework that addresses these lessons by providing language-independent service definitions, performance via HTTP/2, pluggable features, and usability across platforms and languages.
Hadoop summit - Scaling Uber’s Real-Time Infra for Trillion Events per DayAnkur Bansal
Building data pipelines is pretty hard! Building a multi-datacenter active-active real time data pipeline for multiple classes of data with different durability, latency and availability guarantees is much harder.
Real time infrastructure powers critical pieces of Uber (think Surge) and in this talk we will discuss our architecture, technical challenges, learnings and how a blend of open source infrastructure (Apache Kafka and Samza) and in-house technologies have helped Uber scale.
This document provides an introduction to modern DevOps technologies. It discusses DevOps concepts like source code management using Git, different methods of deploying programs including using bare metal servers, virtualization, containers, and cloud functions. Specific container and container orchestration technologies like Docker and Kubernetes are explained. Continuous integration and continuous delivery (CI/CD) practices are also introduced. The presentation includes an agenda with slides on these topics and ends with a question and answer section and announcement of a Docker workshop to deploy an HTTP server container.
This document contains a presentation about Elasticsearch and how it is used to power a search engine. It discusses Elasticsearch features for developers and DevOps, including its REST API, JSON storage, flexible schemas, and plugin architecture. It also demonstrates basic usage through CRUD operations and queries, as well as more advanced features like analyzers, autocomplete, and aggregations. The goal is to provide search capabilities for a healthcare provider directory by processing user queries with Elasticsearch and applying additional application logic.
Robert Kubis - gRPC - boilerplate to high-performance scalable APIs - code.t...AboutYouGmbH
The document discusses gRPC, an open source framework for building microservices. It was created by Google to be a high performance, open source universal RPC framework. gRPC uses HTTP/2 for transport, Protocol Buffers as the interface definition language, and generated client/server code for many languages to make cross-platform communications simple and efficient. The document provides an overview of gRPC's goals and architecture, how to define a service using .proto files, and examples of common RPC patterns like unary, streaming, and bidirectional calls.
Building data pipelines is pretty hard! Building a multi-datacenter active-active real time data pipeline for multiple classes of data with different durability, latency and availability guarantees is much harder. Real time infrastructure powers critical pieces of Uber (think Surge) and in this talk we will discuss our architecture, technical challenges, learnings and how a blend of open source infrastructure (Apache Kafka and Flink) and in-house technologies have helped Uber scale.
Presentation at NetPonto community: "We’re going to discuss gRPC, Google’s open-source RPC framework. I’ll dive a bit into the history of RPC as a protocol, and what its historical use has been. I’ll also highlight some benefits to adopt gRPC and how its possible to swap out parts of gRPC and still take advantage of gRPC’s benefits. Finally I’ll answer the question that has been on many lips since gRPC was announced — what does this mean for REST?"
Discover how GraphQL can help you building and evolve your business APIs.
GraphQL is a query language for APIs developed internally by Facebook. It allows the developers to ask for exactly what they need and nothing more, making it easier to evolve APIs over time and create powerful developer tools around an API.
Presented by Helder Vasconcelos and Luis Gonçalves on 21st May 2019 @ Reactor Innovation Hub.
Powered by https://taikai.network
Flink Forward San Francisco 2019: Building Financial Identity Platform using ...Flink Forward
Building Financial Identity Platform using Apache Flink
To power financial prosperity around the world, Intuit needs to create personalized product experience and new data centric products. Some of these use cases include Enabling 360 Customer View for Personalization and Targeting, building Ecosystem for Data Exchange between internal and 3rd party and personalize financial offerings, creating platform for Personalized security experience based on risk factors of people and devices.
Unlike workflow centric products (for example, tax processing, accounting transactions), these use cases are often information-intensive and require real-time access to a large amount of connected data associated with people, organizations and things they own.
To achieve this, we have created a platform called Unified Profile Service utilizing Flink. This platform is intended to provide the strategic data asset of a trusted, real-time, unified and connected view of people, organization and things they own. We have abstracted re-usable components such as sources, sinks, transformations etc and created a template. Utilizing this template our Product teams are able to rapidly test domain specific transformations and computations by creating and deploying Flink Jobs. This platform is running in production on AWS EMR, powering multiple use cases, ingesting and processing billions of events per day.
In this talk, we will be discussing the design details of this Platform built leveraging Flink and Flink APIs as well as challenges faced along the way. We will begin by talking about the various components of the pipeline such as Identity Stitching, Entity Resolution, Reconciliation and Data Persistence. We will then dig in to the technical details of how we abstracted away these common components and created a template. We will also talk about how we update Consumer’s Financial Identity Graph in real-time through custom built AWS Dynamodb and Neptune Sink using Flink’s Connector API.
Finally we will touch on lessons learnt along the way as we deployed the platform in production and offer advice on things to avoid as well as how to take things to the next level.
This document provides an overview of reading the source code of Presto, an open source distributed SQL query engine. It recommends starting on GitHub at prestosql/presto and exploring areas of interest like SQL interfaces to different data sources via connectors, the query engine core, distributed systems implementation, or extending Presto. Useful techniques for navigating the code with IntelliJ IDEA are presented. Specific code locations and concepts are highlighted for connectors, the query execution flow, parsing and analyzing SQL, and Presto's implementation as a distributed REST service. The document aims to help readers find their own interests to learn from Presto's codebase.
Temporal Performance Modelling of Serverless Computing Platforms - WoSC6Nima Mahmoudi
This presentation is an overview of the "Temporal Performance Modeling of Serverless Computing Platforms" paper published in Sixth International Workshop on Serverless Computing (WoSC6) 2020 as part of IEEE Middleware conference.
Authors: Nima Mahmoudi and Hamzeh Khazaei
Paper: https://www.serverlesscomputing.org/wosc6/#p1
Preprint and Artifacts: https://research.nima-dev.com/publication/mahmoudi-2020-tempperf/
Full Presentation: https://youtu.be/9r3j_1B5t8c
Lightning Talk (1 min): https://youtu.be/E5KigIq0Z1E
PACS Lab: https://pacs.eecs.yorku.ca/
This is a talk I gave to the late crew at the DevOps KC meetup outlining why/what/how of setting up a Graphite server using Python end-to-end for getting stats.
Angular (v2 and up) - Morning to understand - LinagoraLINAGORA
Slides of the talk about Angular, at the "Matinée Pour Comprendre" organized by Linagora the 22/03/17.
Discover what's new in Angular, why is it more than just a framework (platform) and how to manage your data with RxJs and Redux.
65% Performance Gains at Cryptocurrency Platform CoinGecko: An Argo Smart Rou...Cloudflare
Join Cloudflare and CoinGecko, a Singapore-based cryptocurrency ranking chart platform that serves over 100 million pages views per month, for an educational webinar. Learn about the steps CoinGecko took to improve the user experience of its cryptocurrency platform, and how Cloudflare’s Argo Smart Routing routed over 1.2 billion website requests per month to improve performance on average by 65%, while using caching to save CoinGecko up to 88% on bandwidth.
This document summarizes the key steps involved in processing a web request from a browser to a server and back. It discusses the TCP/IP protocol suite which handles packaging and transmission of data, URLs which identify web resources, HTTP which is the protocol for requesting and receiving web pages, web caching for reusing stored resources, DNS which translates domain names to IP addresses, TCP connections for transmitting data between devices, and the response from applications on web servers. The document also provides information about career opportunities at Google, focusing on engineering roles.
AWS Techniques and lessons writing a minimal cost gitlab runnerAnthony Scata
This document provides an overview of Digio and Mantel Group, two Australian technology consulting companies. It then discusses the problem of managing GitLab runners at scale and the solution developed using AWS services like Lambda, EventBridge, and auto-scaling groups to dynamically scale the runners based on workload. Cost estimates are provided showing the solution can cost $0.19-0.79 per month depending on usage. Benefits over alternative approaches like Docker Machine are also outlined. The document concludes with some Terraform best practices and a demonstration of the GitLab runner scaling solution.
Not my problem - Delegating responsibility to infrastructureYshay Yaacobi
Slides for for my talk, appeared on Code-Europe Poznan 12.06.2018
(https://www.codeeurope.pl/en/speakers/yshay-yaacobi)
https://github.com/yshayy/not-my-problem-talk
https://github.com/Yshayy/not-my-problem-talk/blob/master/slides/demo.md
1) Mercari has transitioned some services to microservices architecture running on Kubernetes in the US region to improve development velocity.
2) Key challenges in operating microservices include deployment automation using Spinnaker, and observability of distributed systems through request tracing, logging, and metrics.
3) The architecture is still evolving with discussions on service mesh and chaos engineering to improve reliability in the face of failures. Microservices adoption is just beginning in the JP region.
OGF actively collaborates with other standards organizations through cooperative agreements to develop standards for distributed computing. OGF has relationships with groups like DMTF, ISO, SNIA, ETSI, ITU-T, and NIST to jointly develop standards for areas like cloud computing, identity management, and data formats. These collaborations help drive innovation while avoiding duplication of efforts between organizations.
gRPC, GraphQL, REST - Which API Tech to use - API Conference Berlin oct 20Phil Wilkins
The document discusses different API technologies including gRPC, GraphQL, and REST. It provides overviews of each technology, describing their origins, key concepts, pros, and cons. gRPC was developed by Google and uses protocol buffers for messages and HTTP/2 for transport. GraphQL was created by Facebook and uses a query language for clients to specify the exact data they need. REST is the more established standard based on HTTP and uses URIs for identification of resources.
How to Reduce Latency with Cloudflare Argo Smart RoutingCloudflare
The Internet is inherently unreliable, a collection of networks connected to each other where things break all the time; cables get cut, bogus routes get advertised, routers crash. Today, to fix all of this, Cloudflare launched Argo, a “virtual backbone” for the modern Internet. Just as Waze can tell you which route to take to avoid congested or blocked roads, Argo can route connections across the Internet efficiently by avoiding packet loss, congestion, and outages.
The working architecture of NodeJS applications, Виктор ТурскийSigma Software
The document discusses the working architecture of NodeJs applications. It begins by introducing the speaker Viktor Turskyi and his experience. It then discusses why architecture is important and shares their battle-tested approach. The presentation addresses whether to use monolith or microservices architectures, and recommends starting with a monolith in most cases. It also discusses domain models, services, and controllers. The presentation provides an example of a service class and user registration process to demonstrate the architecture in practice.
The working architecture of node js applications open tech week javascript ...Viktor Turskyi
We launched more than 60 projects, developed a web application architecture that is suitable for projects of completely different sizes. In the talk, I'll analyze this architecture, will consider the question what to choose “monolith or microservices”, will show the main architectural mistakes that developers make.
Scaling Prometheus Metrics in Kubernetes with Telegraf | Chris Goller | Influ...InfluxData
Scaling Prometheus in Kubernetes seems easy with service-discovery, but quickly devolves into manual DevOps snowflake setup. Additionally, a single developer is able to overwhelm a federated Prometheus setup and impact the system as a whole without being able to self-service debug. In this talk, Chris will focus on a variety of architectures using Telegraf to scale scraping in Kubernetes and empower developers.
He’ll describe his experiences around scaling /metrics in the microservices of InfluxData’s Cloud 2.0 Kubernetes system…as he was the single developer that added just one more label…
"How overlay networks can make public clouds your global WAN" by Ryan Koop o...Cohesive Networks
The presentation "How overlay networks can make public clouds your global WAN" presented by Ryan Koop on Oct 24, 2013 at LASCON in Austin, TX.
Enterprises, organizations and governments are realizing the benefits of cloud flexibility, cost savings, scalability and connectivity. Yet the traditional approach focuses too much on the underlying infrastructure, instead of the applications.
So who is making solutions for the people who work at the application layer? Are software-defined things secure?
With a focus on application-layer integration, governance and security, overlay networks let developers, and the enterprise apps they work with, use the public clouds as a global WAN network, not just extra storage.
Developers can build on top of overlay networking to extend traditional networks to the cloud with added security such as encryption, IPsec connections, VLANs and VPNs into the public cloud networks.
Prime examples are the previously cost-prohibitive projects can now use public clouds as global points of presence to create cloud WAN to partners and customers.
TrustLeap GWAN - The multicore Future requires Parallelism Programming toolsTWD Industries AG
With 1 GHz in 2000 and 3GHz in 2002 100 GHz CPUs were expected in 2005. A decade later, we still run 3 GHz CPUs:
"We're not going to have faster processors. Instead, making software run faster in the future will mean using parallel-programming techniques. This will be a huge shift."
- The Economist, "Parallel bars"
As time goes, multicore growing, software applications will be increasingly CPU-bound, making efficiency increasingly important:
G-WAN App. server (one single ~200 KiB executable) makes all programming languages scale higher than other solutions.
Cisco has developed a comprehensive approach, the Mass Scale Networking (MSN) Transformation Journey, that covers both aspects. On the technology front, technologies such as Segment Routing, EVPN, orchestration, automation, HW/SW disaggregation are covered. On the operating model side, the use of advanced APIs, model driven operations, Infrastructure as Code (IaC), and others are also covered. The primary objective of this session being to create a methodical and structured approach to drive an SP’s MSN Journey.
This document discusses micro front-ends, which are the technical representation of a business subdomain in a microservices architecture. It covers the principles of micro front-ends such as modeling around business domains and decentralization. Implementation techniques discussed include using HTTP/2, a publish/subscribe communication method between micro front-ends, and edge server includes. Frameworks for building micro front-ends like Single-SPA, Mosaic9, and Open Components are also mentioned. The document provides an overview of micro front-ends in the context of migrating monolithic applications to a microservices architecture.
Develop, deploy, and operate services at reddit scale oscon 2018Gregory Taylor
The last few years have been a period of tremendous growth for Reddit. Process, tooling, and culture have all had to adapt to an organization that has tripled in size and ambition. Greg Taylor discusses Reddit's evolution and explains how one of the world’s busiest sites develops, deploys, and operates services at significant scale.
Presented at OSCON 2018 in Portland, Oregon
Similar to 202104 technical challenging and our solutions - golang taipei (20)
Digital Twins Computer Networking Paper Presentation.pptxaryanpankaj78
A Digital Twin in computer networking is a virtual representation of a physical network, used to simulate, analyze, and optimize network performance and reliability. It leverages real-time data to enhance network management, predict issues, and improve decision-making processes.
This presentation is about Food Delivery Systems and how they are developed using the Software Development Life Cycle (SDLC) and other methods. It explains the steps involved in creating a food delivery app, from planning and designing to testing and launching. The slide also covers different tools and technologies used to make these systems work efficiently.
We have designed & manufacture the Lubi Valves LBF series type of Butterfly Valves for General Utility Water applications as well as for HVAC applications.
Levelised Cost of Hydrogen (LCOH) Calculator ManualMassimo Talia
The aim of this manual is to explain the
methodology behind the Levelized Cost of
Hydrogen (LCOH) calculator. Moreover, this
manual also demonstrates how the calculator
can be used for estimating the expenses associated with hydrogen production in Europe
using low-temperature electrolysis considering different sources of electricity
Impartiality as per ISO /IEC 17025:2017 StandardMuhammadJazib15
This document provides basic guidelines for imparitallity requirement of ISO 17025. It defines in detial how it is met and wiudhwdih jdhsjdhwudjwkdbjwkdddddddddddkkkkkkkkkkkkkkkkkkkkkkkwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwioiiiiiiiiiiiii uwwwwwwwwwwwwwwwwhe wiqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqq gbbbbbbbbbbbbb owdjjjjjjjjjjjjjjjjjjjj widhi owqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqq uwdhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhwqiiiiiiiiiiiiiiiiiiiiiiiiiiiiw0pooooojjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjj whhhhhhhhhhh wheeeeeeee wihieiiiiii wihe
e qqqqqqqqqqeuwiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiqw dddddddddd cccccccccccccccv s w c r
cdf cb bicbsad ishd d qwkbdwiur e wetwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwww w
dddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddfffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffw
uuuuhhhhhhhhhhhhhhhhhhhhhhhhe qiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiii iqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqq eeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeee qqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccc ccccccccccccccccccccccccccccccccccc bbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbu uuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuum
m
m mmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmm m i
g i dijsd sjdnsjd ndjajsdnnsa adjdnawddddddddddddd uw
Height and depth gauge linear metrology.pdfq30122000
Height gauges may also be used to measure the height of an object by using the underside of the scriber as the datum. The datum may be permanently fixed or the height gauge may have provision to adjust the scale, this is done by sliding the scale vertically along the body of the height gauge by turning a fine feed screw at the top of the gauge; then with the scriber set to the same level as the base, the scale can be matched to it. This adjustment allows different scribers or probes to be used, as well as adjusting for any errors in a damaged or resharpened probe.
Null Bangalore | Pentesters Approach to AWS IAMDivyanshu
#Abstract:
- Learn more about the real-world methods for auditing AWS IAM (Identity and Access Management) as a pentester. So let us proceed with a brief discussion of IAM as well as some typical misconfigurations and their potential exploits in order to reinforce the understanding of IAM security best practices.
- Gain actionable insights into AWS IAM policies and roles, using hands on approach.
#Prerequisites:
- Basic understanding of AWS services and architecture
- Familiarity with cloud security concepts
- Experience using the AWS Management Console or AWS CLI.
- For hands on lab create account on [killercoda.com](https://killercoda.com/cloudsecurity-scenario/)
# Scenario Covered:
- Basics of IAM in AWS
- Implementing IAM Policies with Least Privilege to Manage S3 Bucket
- Objective: Create an S3 bucket with least privilege IAM policy and validate access.
- Steps:
- Create S3 bucket.
- Attach least privilege policy to IAM user.
- Validate access.
- Exploiting IAM PassRole Misconfiguration
-Allows a user to pass a specific IAM role to an AWS service (ec2), typically used for service access delegation. Then exploit PassRole Misconfiguration granting unauthorized access to sensitive resources.
- Objective: Demonstrate how a PassRole misconfiguration can grant unauthorized access.
- Steps:
- Allow user to pass IAM role to EC2.
- Exploit misconfiguration for unauthorized access.
- Access sensitive resources.
- Exploiting IAM AssumeRole Misconfiguration with Overly Permissive Role
- An overly permissive IAM role configuration can lead to privilege escalation by creating a role with administrative privileges and allow a user to assume this role.
- Objective: Show how overly permissive IAM roles can lead to privilege escalation.
- Steps:
- Create role with administrative privileges.
- Allow user to assume the role.
- Perform administrative actions.
- Differentiation between PassRole vs AssumeRole
Try at [killercoda.com](https://killercoda.com/cloudsecurity-scenario/)
Tools & Techniques for Commissioning and Maintaining PV Systems W-Animations ...Transcat
Join us for this solutions-based webinar on the tools and techniques for commissioning and maintaining PV Systems. In this session, we'll review the process of building and maintaining a solar array, starting with installation and commissioning, then reviewing operations and maintenance of the system. This course will review insulation resistance testing, I-V curve testing, earth-bond continuity, ground resistance testing, performance tests, visual inspections, ground and arc fault testing procedures, and power quality analysis.
Fluke Solar Application Specialist Will White is presenting on this engaging topic:
Will has worked in the renewable energy industry since 2005, first as an installer for a small east coast solar integrator before adding sales, design, and project management to his skillset. In 2022, Will joined Fluke as a solar application specialist, where he supports their renewable energy testing equipment like IV-curve tracers, electrical meters, and thermal imaging cameras. Experienced in wind power, solar thermal, energy storage, and all scales of PV, Will has primarily focused on residential and small commercial systems. He is passionate about implementing high-quality, code-compliant installation techniques.
2. About me
● Tech Lead (SSEII) - Carousell@TW
● Senior SE - Uber@AMS
● SSE - Carousell@TW/SG
● CTO & Co-Founder @ Backer-Founder
● A girl’s father
● 在旋轉拍賣 carousell 一年看到的後端架構 -挑戰與生活 (11.5K claps)
● 2017 後端工程師面試以及準備經驗 (1.7K claps)
3. Snap, list, sell
List any item for sale in 30 seconds
In-app chat
Chat directly with sellers without
revealing personal information
Photo-centric
Core focus of the app on photos
Social
Share listings on social media channels
and join groups of people with similar
interests
4. In 8 years, we have grown to become
South East Asia’s #1 classifieds marketplace
2012 2013 2014 2015 2016 2017 2018 2019
Founded
Carousell
in SG
Raised
USD800K
Series Seed
Raised USD6M
Series A
Launched in MY,
ID, TW
Launched
web platform
Launched HK
+ PH
Raised
USD35M
Series B
Acquired
Caarly,
launched Autos
+ Coins &
Bumps
+ Property
Launched
Spotlight +
Carousell
Protection
Acquired OLX PH,
Naspers invests,
received funding
from Telenor,
merged with 701
Search entities,
Mudah, Cho Tot
and OneKyat
Phase III
Verticalization & monetization
Phase I
Foundation
Raised
USD85M
Series C
Phase II
Internationalization
2020
Carousell
announces
US$80M
investment from
Naver, Mirae
Asset-Naver Asia
Growth Fund and
NH Investment &
Securities
10. schematic diagram of architecture in 2021
gateway
listing
recom
search
third-parties
Logistics
order
offer
ads
90+
services
Payment
homescreen
11. Share our improvement first
● Around 1.8% error rate in one of our systems (Payment & shipping, 7+
services tied to each other) at the beginning of 2020 -> Bad UX
● `Something went wrong` to users if one of call in the chain failed.
12. As having more and more services, what challenging
● The SLA would be 95%, meaning 2160 minutes of downtime / month
● Overall 99% needs three-nine on each
● The reliability of every request made is really important
● Reasons of failure
○ Network issues
○ Capacity (DB/CPU/Memory/Concurrency/etc.)
○ Performance/Latency
○ Services connection sustainability
■ Infra-level (e.g. HAProxy, Envoy)
■ Application-level
○ Wrong logic/Bad code
gateway service4
service2
service1 service3
.99 .99 .99 .99 .99
*
* * *
13. Application-level - the request made
Hystrix
CallerContext
Load Balancer
Server
CalleeContext
Hystrix caps at 2 seconds,
but newrelic shows avg
latency can up to 5 seconds
(capped at infra level)
how Golang projects handle timeout
14. Common mistakes - timeout handling
Hystrix
CallerContext
Load Balancer
Server
CalleeContext
how Golang projects handle timeout
● Somehow passing
context.Background() in goroutine
jobs and blocking
● Didn’t set hystrix to cap long requests
● grpc.WithTimeout(timeout) is set for
dialing not general timeout of
requests
https://play.golang.org/p/Nrhu5nhvaa3
18. Observability + Workflow: maintain the level of
reliability
gateway service2
service1
Hyst
rix
Hyst
rix
Hyst
rix
Distributed tracing
Error reporting
Main alerting (Programmability)
Monitoring (alert channels)
Workflow - Support Rotation/Weekly
Sync
19. Case study about the importance of context
passing and tracing
● High error rate alert of one endpoint on gateway
● Same error spike on service 1 but not on service 4
● No proper egress metrics on service 1 and 2 (e.g.
hystrix) but seeing error rate on gRPC server
● Based on the good enough evidence, checked with the
corresponding team. Confirmed it’s the outage related.
● If we have had tracing and appropriate context passing,
we would have noticed the root cause on Jaeger very
quickly.
● Demo
gateway
service1
service2
service3
service4
service5
20. The type of business and product of Carousell
determines the focus
● Core and synchronous flows in Carousell
○ Homefeed
○ Search
○ Make an offer
○ Chat
○ Make an order
○ ...
● There are still a lot of configurations/components could impact overall
reliability, why mostly about wrapper and communications
○ Read volume is larger than write traffic
○ Statibility is more important than performance for now
○ Browsing is the majority of user behaviors
21. Introducing service-mesh with multi-tenancy
● Technical challenging as having more and more microservices and teams
○ Staging environment is very unstable
○ Productivity of all types of testing is needed to be improved.
○ The needs of built-in routing is increasing
Reference: https://eng.uber.com/multitenancy-microservice-architecture/
23. Conclusion
● Context is the critical component in Golang projects
○ Metadata propagation
○ Distributed tracing
○ Service Mesh with tenancy
○ Timeout handling
○ …
● From Golang document
○ Incoming requests to a server should create a Context, and outgoing calls to servers should
accept a Context. The chain of function calls between them must propagate the
Context, optionally replacing it with a derived Context created using WithCancel,
WithDeadline …... Do not store Contexts inside a struct type; instead, pass a Context
explicitly to each function that needs it. The Context should be the first parameter,
typically named ctx
● Service-mesh plays a role in micro-service architecture.
● We’re hiring, join us if you’re also interested in the journey :)
24. 目前職缺 Current Position
Transactional GC Team
Sr. Software Engineer, Backend
Buyer Experience Team
Sr. Software Engineer, Frontend
資深後端工程師 資深前端工程師