grpc + folly fibers https://github.com/leftyio/tortuga/search?q=fibers&unscoped_q=fibers
Istio grpc C++ https://github.com/Toeplitz/pwave_cloud/commit/fc5ae5a786fef80ad4afee7a98cb21db94a47ad2#diff-a055b85bab3694cc2083e4ae4a7d2b50 https://github.com/NVIDIA/tensorrt-laboratory/blob/f76e4b445f6a2a63485dbc4d8668159328868fcf/examples/12_FlatBuffers/server.cc#L58
Istio tensorrt-laboratory https://github.com/NVIDIA/tensorrt-laboratory/blob/2916998333aab2492da0d0c004fbd076d858b1ba/examples/90_Kubernetes/istio/README.md
Datadog OpenTracing C++ Client istio
Lwan in Performance and Scale @ Istio Service Mesh https://github.com/lpereira/lwan/tree/4bb64e2a7b46992249bff2afc8b582a5ce11b464
falcoAAupdate https://github.com/And03380/falcoAAupdate/search?q=Istio&unscoped_q=Istio
A social network with unidirectional follow relationships, implemented with loosely-coupled microservices, communicating with each other via Thrift RPCs.
wrk load generator
Jaeger C+
cpprest
- https://medium.com/audelabs/modern-c-micro-serivce-rest-api-part-ii-7be067440ca8
- https://medium.com/@ngerakines/dipping-a-toe-into-cpprestsdk-a40b063fe3f5
- https://christophep.wordpress.com/2018/08/29/a-windows-service-with-c-nosql-in-azure-container-instance/
- https://blog.binaryspaceship.com/2017/cpp-rest-api-frameworks-benchmark/
- https://wiki.acumos.org/display/MOB/Acumos-c-client+design
- https://heroiclabs.github.io/nakama-cpp/html/index.html
Boost & 0mq & thrift
thrift
Seastar
boost.Fiber
- http://www.romange.com/2018/12/15/introduction-to-fibers-in-c-/
- https://www.boost.org/doc/libs/1_70_0/libs/fiber/doc/html/index.html
- https://www.gdcvault.com/play/1022186/Parallelizing-the-Naughty-Dog-Engine & http://twvideo01.ubm-us.net/o1/vault/gdc2015/presentations/Gyrling_Christian_Parallelizing_The_Naughty.pdf
- https://github.com/Warchant/continuable-motivational-example/blob/master/fiber.cpp#L110
- http://www.open-std.org/jtc1/sc22/wg21/docs/papers/2018/p1364r0.pdf
- https://nikgrozev.com/2015/07/14/overview-of-modern-concurrency-and-parallelism-concepts/
Wangle
- https://github.com/facebook/wangle/commit/f5284c8f2978a205b4e2cbc9c7f0a45a40033859
- https://medium.com/swlh/starting-a-tech-startup-with-c-6b5d5856e6de
- https://medium.com/hackernoon/writing-high-performance-servers-in-modern-c-7cd00926828
- https://github.com/adlawren/Wangle-Examples
- https://medium.com/smyte/rate-limiter-df3408325846
folly/fibers
- https://medium.com/software-development-2/coroutines-and-fibers-why-and-when-5798f08464fd
- https://github.com/facebook/folly/tree/master/folly/fibers
- https://wiki.rice.edu/confluence/download/attachments/4425835/sharman-thesis-final.pdf
libcoro coroutines
continuable
- continuable-motivational-example https://github.com/Warchant/continuable-motivational-example/blob/master/fiber.cpp#L110
- https://meetingcpp.com/mcpp/slides/2018/Continuable.pdf
- https://naios.github.io/continuable/tutorial-creating-continuables.html
Obiew C++ & Java
- grpc cpp LogIn https://github.com/obieww/Obiew/blob/0ccfeb081f8d32e5c01e261033886ecf6b0cf590/DatabaseServer/obiew-service-impl.cc#L54 & https://github.com/obieww/Obiew/blob/6af58ef4ddce55850dd1c98353adfc4a35395637/LoadBalancer/src/main/java/com/obiew/Controllers/UserController.java#L22
Nakama C++ server
- grpc cpp authenticate Google/steam/... https://github.com/heroiclabs/nakama-cpp/blob/889c2b27b19c503506159760df2314832ce456f0/src/RestClient.cpp#L256
istio ws / socketio
- https://github.com/srinandan/istio-workshop/tree/7f8ebcebcc71bb0948ff8803444a70af1ef133f6/misc
- https://github.com/istio/istio/tree/master/samples/websockets
- https://gist.github.com/ymesika/c64326e3d8b4ff2c1e2b53c1e13ac72a
- https://stackoverflow.com/questions/53987459/websockets-on-gke-with-istio-gives-no-healthy-upstream-and-crashloopbackoff
- https://gist.github.com/blockspacer/0237dcdea981f78f8c3ea80b8b1d037d
TODO: read
- https://github.com/srinandan/istio-workshop &
- https://github.com/srinandan/istio-workshop/tree/master/misc
Istio HTTPS https://www.reddit.com/r/docker/comments/b2ojr6/istio_enduser_authentication_for_kubernetes_using/
envoy/Istio for JWT verification
- https://github.com/IBM/cloud-native-starter/blob/master/documentation/DemoAuthentication.md
- https://redhat-developer-demos.github.io/istio-tutorial/istio-tutorial/1.1.x/8jwt.html
- https://www.reddit.com/r/docker/comments/b2ojr6/istio_enduser_authentication_for_kubernetes_using/
- https://github.com/srinandan/istio-workshop/tree/7f8ebcebcc71bb0948ff8803444a70af1ef133f6#rbac
- Chapter 12: Securing microservices with Istio service mesh https://github.com/microservices-security-in-action/samples#chapter-12-securing-microservices-with-istio-service-mesh
- bookinfo rbac https://istio.io/docs/tasks/security/authz-http/
- https://github.com/nitinkau/Udemy-k8/blob/c056b0eee0c2d3e64fc03d951a8057c00b46b423/istio/helloworld-rbac-enable.yaml
- https://github.com/IBM/istio101/tree/master/workshop/exercise-7
- https://github.com/solsson/istio-access-control
- https://medium.com/google-cloud/back-to-microservices-with-istio-part-2-authentication-authorization-b079f77358ac
- https://blog.stack-labs.com/code/istio-auth/
- https://burrsutter.com/wp-content/uploads/2019/06/UtrechtJUG_Istio-on-Kubernetes.pdf
- https://blog.stack-labs.com/code/istio-auth/
- https://github.com/BrightLamp/test-grpc/blob/777043a003c7ec369cb54f8d9eabe479d216a807/third_party/data-plane-api/envoy/config/filter/http/jwt_authn/v2alpha/README.md
- https://programmaticponderings.com/2019/01/06/securing-kubernetes-withistio-end-user-authentication-using-json-web-tokens-jwt/
- https://istio.io/docs/ops/security/end-user-auth/
- https://jaxlondon.com/wp-content/uploads/slides/Service_meshes_-_Replay-proof_microservice_security.pdf
TODO:
- https://github.com/FairwindsOps/advanced-kubernetes-workshop/blob/master/docs/lab_guide.pdf & https://github.com/FairwindsOps/advanced-kubernetes-workshop/blob/3c2624031bd5eb735086d214a387c5dad44ae7be/lb/rate-limit-frontend.yaml
Istio rate limit (requestcountquota)
- https://github.com/FairwindsOps/advanced-kubernetes-workshop/blob/master/docs/lab_guide.pdf & https://github.com/FairwindsOps/advanced-kubernetes-workshop/blob/3c2624031bd5eb735086d214a387c5dad44ae7be/lb/rate-limit-frontend.yaml
- https://github.com/ZackButcher/istio-workshop/blob/master/exercise-10/README.md
- https://github.com/istio/istio/blob/master/samples/bookinfo/policy/mixer-rule-productpage-redis-quota-rolling-window.yaml
- https://istio.io/docs/tasks/policy-enforcement/rate-limiting/
- https://developpaper.com/using-envoy-as-sidecar-proxys-microservice-mode-5-rate-limiter/
Envoy rate limit
http_filters:
- name: envoy.rate_limit # enable the Rate Limit filter
https://venilnoronha.io/envoy-grpc-and-rate-limiting
Istio load balance
WxLogin auth server grpc C++
- https://github.com/shockerjue/wxlogin/blob/ad1dba244fb9d8887a88844a67d9f7b7f259c2ef/wxlogin_client.cc#L133
- https://github.com/shockerjue/wxlogin/blob/ad1dba244fb9d8887a88844a67d9f7b7f259c2ef/wxlogin_server.cc#L154
- IsValidateLogin https://github.com/shockerjue/wxlogin/blob/ad1dba244fb9d8887a88844a67d9f7b7f259c2ef/wxlogin_server.cc#L80
- redis GetCacheByAccount https://github.com/shockerjue/wxlogin/blob/ad1dba244fb9d8887a88844a67d9f7b7f259c2ef/cache/cache.cc#L37
pitaya
A login demo using grpc.
foobar-social - grpc - Colossus - Example Microservices
grpc
- A login demo using grpc. https://github.com/cs-jeason/grpc-cj-login
- https://github.com/topfreegames/libpitaya-cluster/blob/master/cpp-lib/src/pitaya_cluster.cpp#L116 *https://github.com/PaddlePaddle/Paddle/blob/3d19f44a89e82c7636fb75be6685d3f189ab6ca2/paddle/fluid/operators/distributed/CMakeLists.txt#L19
- https://docs.gaia-pipeline.io/develop-pipelines/cpp/
- cpp AccountService https://github.com/ppxpp/account/blob/63775ddb8de89cb40c92fe0dd125c0ad2064a021/svr/service/AccountService.cpp
- mysql++ & grpc++ https://github.com/search?q=%22mysql%2B%2B.h%22+%22grpcpp%22+grpc%2B%2B&type=Code https://github.com/shockerjue/wxlogin/search?q=OnSignup&unscoped_q=OnSignup
- grpc cpp chat qt https://github.com/C0D1UM/grpc-qt-example/tree/master/rpc_server
- Deploying a gRPC service written in C++ https://github.com/googlecloudrobotics/core/blob/master/docs/how-to/deploying-grpc-service.md & https://googlecloudrobotics.github.io/core/how-to/deploying-grpc-service.html
- exposing your gRPC APIs as REST+JSON, where they can then be easily consumed by browser clients, such as
grpc-gateway
. - Client-Server Applications: grpcWeb https://www.smoothterminal.com/articles/grpc-and-protocol-buffers-as-an-alternative-to-json-rest-apis
- https://chromium.googlesource.com/external/github.com/grpc/grpc/+/chromium-deps/2016-08-17/examples/cpp/helloworld/README.md & greeter_async_server.cc
- https://github.com/bitqiu/MedusaDetector/blob/master/src/fastnetmon.cpp#L556
- https://github.com/caijw/loginSystem/blob/master/src/server.cpp
- https://github.com/rsitko92/todo-list-app-microservices/blob/master/gateway/src/gatewayauthmetadataprocessor.cpp
- Microservice-to-Microservice https://tsh.io/blog/grpc-tutorial/
- https://github.com/grpc/grpc/tree/v1.20.0/examples/cpp
- https://venilnoronha.io/envoy-grpc-and-rate-limiting
- https://medium.com/@andrewvetovitz/grpc-c-introduction-45a66ca9461f
- https://git.mudu.tv/huheng/cutservice/blob/master/task_manager_impl.cpp
- https://github.com/NVIDIA/tensorrt-inference-server/blob/master/src/servers/http_server.cc#L150
- https://github.com/C0D1UM/grpc-qt-example/tree/master/rpc_server
- https://github.com/google/asylo/blob/master/asylo/examples/grpc_server/grpc_server_driver.cc
- https://www.qwiklabs.com/focuses/4101?locale=fr&parent=catalog
- https://googlecloudrobotics.github.io/core/how-to/deploying-grpc-service.html & https://googlecloudrobotics.github.io/core/ & https://github.com/googlecloudrobotics/core/tree/master/docs/how-to/examples/greeter-service
- https://www.gresearch.co.uk/2019/03/20/lessons-learnt-from-writing-asynchronous-streaming-grpc-services-in-c/
C++ google cloud
- https://github.com/manish-qlogic/google-cloud-cpp/blob/master/google/cloud/examples/gcs2cbt.cc
- https://github.com/manish-qlogic/google-cloud-cpp/tree/master/google/cloud/storage/examples
- https://github.com/NVIDIA/tensorrt-inference-server/blob/e1fd6f17de13f2d86dbfabd5eeee621e5762279d/src/core/filesystem.cc
- https://github.com/NVIDIA/tensorrt-inference-server/blob/master/src/servers/http_server.cc#L150
C++ k8s
- k8s_replicationcontroller_handler.cpp https://github.com/draios/sysdig/blob/cc3503ce87a6dd066a32903a600e18b9b6980068/userspace/libsinsp/k8s_replicationcontroller_handler.cpp
- https://github.com/lucperkins/colossus/blob/1a487d9768d80094939a8171645227b64fd76b67/userinfo/userinfo-server.cc
- https://github.com/googleforgames/agones/blob/master/examples/cpp-simple/server.cc
- https://github.com/NuxiNL/scuba/blob/cd98aa3f165abb282f40fb82c087cb51daed90e1/scuba/image_service/image_service.h
- https://github.com/hyperledger/iroha/tree/c2a814e1b96f4e84cd9288207242ec07995030c8/irohad/network/impl
- https://iroha.readthedocs.io/nl/latest/guides/k8s-deployment.html#deploying-iroha-on-the-cluster + https://buildmedia.readthedocs.org/media/pdf/iroha-de/master/iroha-de.pdf
Continuously build, test, and deploy.
- https://docs.gaia-pipeline.io/develop-pipelines/cpp/
- https://medium.com/@michelvocks/automatic-kubernetes-deployment-with-gaia-and-hashicorp-vault-73b882e40741
Cloud Bigtable
- https://cloud.google.com/bigtable/docs/samples-cpp-hello
- https://github.com/googleapis/google-cloud-cpp/tree/master/google/cloud/bigtable/examples
Istio
- https://redhat-developer-demos.github.io/istio-tutorial/istio-tutorial/1.1.x/4advanced-routerules.html#loadbalancer
- https://github.com/instana/robot-shop/blob/b5f98f625d73b67180b896b99642642a5a0cf387/K8s/README.md#istio
- https://github.com/GoogleCloudPlatform/istio-samples
- https://www.bogotobogo.com/DevOps/Docker/Docker_Kubernetes_Deploying_ASP_Net_Core_App_with_ISTIO_Configured_on_Kubernetes_Engine.php & https://www.bogotobogo.com/DevOps/Docker/Docker_Kubernetes_Deploying_ASP_Net_Core_App_with_ISTIO_Configured_on_Kubernetes_Engine_Part_2_More_On_ISTIO.php
- https://github.com/GoogleCloudPlatform/microservices-demo
- https://supergiant.io/blog/introduction-to-istio-service-mesh-for-kubernetes/
- Service Mesh: Moving from bare-bones Envoy to Istio https://hackernoon.com/service-mesh-moving-from-bare-bones-envoy-to-istio-e0fef88fc1e3
- https://programmaticponderings.com/2017/12/22/deploying-and-configuring-istio-on-google-kubernetes-engine-gke/
- Automatic load balancing for various protocols like HTTP, gRPC, WebSocket, and TCP https://github.com/linux-on-ibm-z/docs/wiki/Building-Istio-with-Kubernetes Sample Book Review Application
- https://velotio.com/blog/2018/5/how-to-set-up-istio-using-google-kubernetes-engine
- https://meteatamel.wordpress.com/2018/04/24/istio-101-with-minikube/
- NOTE: Istio has plans to support additional protocols such as AMQP in the future but for now, the idea of moving from a message based approach to an HTTP centric approach with Istio seems a bit premature. https://www.linkedin.com/pulse/kubernetes-exploring-istio-event-driven-architectures-todd-kaplinger
- https://github.com/blockspacer/webrtc-datachannels/blob/3622f145d426f755b33c63bd91fca6d6f874c13d/todo.txt#L173
- https://dev.to/sendilkumarn/easy-microservices-with-kubernetes-and-istio-3nl3
- https://developer.okta.com/blog/2019/04/01/spring-boot-microservices-with-kubernetes
- https://kublr.com/blog/implementing-a-service-mesh-with-istio-to-simplify-microservices-communication/
- https://istio.io/blog/2018/egress-tcp/
- https://dzone.com/articles/istio-service-mesh-the-step-by-step-guide-part-2-t
- https://docs.microsoft.com/en-us/azure/aks/istio-scenario-routing
- https://www.lynda.com/Developer-tutorials/Introduction-service-mesh-Istio/802854/5038257-4.html
- https://morganpeat.github.io/microservices/2018/08/30/cryptotracker-d.html
- https://github.com/EdwinVW/pitstop/wiki/Run%20the%20application%20using%20a%20Service%20Mesh
- https://github.com/CodepediaOrg/bookmarks/blob/362140a613b8e86cd1ead2db9914ddd36b194ba6/tagged/istio.md
Refactoring to microservices
Best practices for using Cloud Spanner as a gaming database
docker
minikube
- https://kubernetes.io/docs/setup/learning-environment/minikube/
- https://github.com/googleforgames/agones/blob/master/build/README.md#running-a-test-minikube-cluster
- https://redislabs.com/blog/local-kubernetes-development-using-minikube-redis-enterprise/
agones
- https://github.com/googleforgames/agones/blob/master/build/README.md
- https://github.com/googleforgames/agones/blob/master/examples/cpp-simple/server.cc
- https://github.com/googleforgames/agones/tree/master/site/content/en/docs
- https://tudip.com/blog-post/running-dedicated-game-servers-in-kubernetes-engine/
- https://www.compoundtheory.com/scaling-dedicated-game-servers-with-kubernetes-part-1-containerising-and-deploying/
- https://www.ovh.com/blog/deploying-game-servers-with-agones-on-ovh-managed-kubernetes/
- https://cloud.google.com/sdk/gcloud/reference/alpha/game-services/
- https://www.gdcvault.com/play/1026155
- https://github.com/santhh/gaming-agones-demo
- https://github.com/nikibobi/godot-agones-server
- https://github.com/nikibobi/godot-agones
- https://github.com/ntilborg/matchmaker
- https://github.com/wwitzel3/agones-websocket
- https://www.youtube.com/watch?v=acISlSEBhTw
- https://www.qwiklabs.com/focuses/2792?parent=catalog
gcloud compute firewall-rules allow udp
C++ Continuous Integration
- https://github.com/LearningByExample/ModernCppCI
- https://github.com/cginternals/cmake-init
Sanitizer
Reflection & Serialization
- libClang & cmake https://github.com/AustinBrunkhorst/CPP-Reflection/blob/master/Examples/Serialization.cpp
- https://ibob.github.io/dynamix/advanced.html#serializing
- https://github.com/Manu343726/tinyrefl
Plugin management library with static and dynamic plugins
- The dynamic reflection API can be used to load APIs from external libraries at runtime in a straightforward way + https://github.com/Manu343726/siplasplas
- https://github.com/iboB/dynamix/blob/master/doc/07_advanced.dox.template#L285 & https://www.codeproject.com/Articles/1229971/The-Interface-to-Component-Pattern-and-DynaMix & https://accu.org/index.php/journals/2487
- The lecture even consists of a demo showcasing loading and/or hotswapping a plugin at runtime and enriching the functionality of the program. https://www.youtube.com/watch?v=-s0zYXGCfJk reloadable .dll plugins (with the help of dynamix) - even with the ability to change the layout of types at runtime! (by serializing object state, recreating the instances and then deserializing the old state) https://github.com/onqtam/game/search?q=dynamix&unscoped_q=dynamix
- https://ibob.github.io/dynamix/examples.html#multi_dll
- http://onqtam.com/programming/2017-09-02-simple-cpp-reflection-with-cmake/
- https://www.reddit.com/r/cpp/comments/9c9kqz/do_cpp_users_wantneed_a_cross_platform_framework/
- https://www.boost.org/doc/libs/1_68_0/doc/html/boost_dll/tutorial.html#boost_dll.tutorial.searching_for_a_symbol_in_multiple_plugins & https://www.boost.org/doc/libs/1_64_0/doc/html/boost_dll/missuses.html
- https://github.com/jiwaharlal/cpp_experience/commit/ce3107487648c849712d3df777583e3cbc48da7a
- https://github.com/anttijuu/PluginDllDemo
- sourcey: Building a Simple C++ Cross-platform Plugin System https://sourcey.com/articles/building-a-simple-cpp-cross-platform-plugin-system
- sourcey pluga (LGPL sourcey/pluga#1): https://github.com/sourcey/pluga & + https://sourcey.com/pluga/ & https://github.com/jeremydumais/JedConsole/blob/master/libs/PluginBase/src/IPlugin.h
- static/dynamic + Signal/slot https://github.com/mosra/corrade & https://doc.magnum.graphics/corrade/plugin-management.html & https://doc.magnum.graphics/magnum/plugins.html & https://github.com/nuclearwhales/push-the-box/blob/master/src/Application.cpp#L23
Load testing
Statistics
TODO:
- PowerfulSeal adds chaos to your Kubernetes clusters, so that you can detect problems in your systems as early as possible. It kills targeted pods and takes VMs up and down. https://bcouetil.gitlab.io/academy/BP-kubernetes.html#powerfulseal
TODO:
- https://www.gamedev.net/forums/topic/702560-building-an-mmo-as-an-indie-developer-tackling-the-impossible/
- https://www.youtube.com/watch?v=GDxb21kEthM
- https://list.community/mfornos/awesome-microservices#c-1
TODO
https://www.theseus.fi/bitstream/handle/10024/73386/Artem_Moskalev_thesis.pdf;sequence=1
https://www.macs.hw.ac.uk/~hwloidl/publications/MScThesis_Bond.pdf
https://pdfs.semanticscholar.org/bbb7/9a87c7adab24d43c75f3bc3d815446778212.pdf
https://pdfs.semanticscholar.org/a654/dd5ccb210e2db99efec180d9eb73b047002a.pdf
https://www.academia.edu/37257029/Fault_Tolerance_For_Main-Memory_Applications_In_The_Cloud
https://www.niap-ccevs.org/MMO/Product/st_10831-agd2.pdf
https://pdfs.semanticscholar.org/2707/3c4bb344cd223b9aade02728f1bc323d1753.pdf
http://libres.uncg.edu/ir/uncc/f/Parker_uncc_0694D_10520.pdf
https://www.collectionscanada.gc.ca/obj/s4/f2/dsk3/QMM/TC-QMM-18200.pdf
http://dl.booktolearn.com/ebooks2/computer/gamedevelopment/9781138035454_Game_Engine_Architecture_Third_Edition_6dfa.pdf
https://www.contrib.andrew.cmu.edu/~ayahyavi/files/Yahyavi-CSUR13-P2PMMOG.pdf