# Backend Onboarding
* Why Docker & Container
* Run the same thing between Develop / Testing / Deploy
* Like Virtual Machine([Comparison](https://www.atlassian.com/microservices/cloud-computing/containers-vs-vms))
* How in DeliveryHero
* Colima(Currently)
* Docker(Before)
* Why [CI & CD](https://www.redhat.com/en/topics/devops/what-is-ci-cd#:~:text=CI%2FCD%20tools-,Overview,continuous%20delivery%2C%20and%20continuous%20deployment.)
* Continuous Integrity
* new code changes to an app are regularly built, tested, and merged to a shared repository
* How
* Drone
* [Configuration File](https://github.com/deliveryhero/pd-dine-in-order-service/blob/master/.drone.yaml)
* [Example](https://drone-ci.deliveryhero.net/deliveryhero/pd-dine-in-order-service/3709)
* Continuous Delivery / Deployment
* Quick new code change delivery
* How
* [Drone Build & Push](https://github.com/deliveryhero/pd-dine-in-order-service/blob/17e84e36dd9c26fa2a73c766da7bc18bce3e1530/.drone.yaml#L117)
* [Morty](https://morty.infra.works/deployments)

* [Why microservice](https://about.gitlab.com/blog/2022/09/29/what-are-the-benefits-of-a-microservices-architecture/)

* Pro
* Team Optimization
* Scalability improvements
* Improved fault isolation
* Program language and technology agnostic
* Simpler to deploy / Faster time-to-market
* Reusability across different areas of business
* Clear Interface & Document -> all interactions between them are API
* Example: [Fintech Re-architecture](https://confluence.deliveryhero.com/display/WAL/Re-Architecture+Overview)
* Con
* A different kind of complexity
* Each microservice will have its own set of logs. This provides a minor headache when tracing the source of a problem in the code
* Why Kubernetics

* Resource Utilization
* Intelegentce from k8s control plane
* Deployment Management
* Automated rollouts and rollbacks
* Secret and configuration management([pd-app-config](https://github.com/deliveryhero/pd-app-config/tree/master))
* [K8s Config file example](https://github.com/deliveryhero/pd-dine-in-box/tree/master/scripts/grpc-experiment/k8s)
* [pd-app-charts](https://github.com/deliveryhero/pd-app-charts)
* [Helm](https://helm.sh/docs/): package manager for k8s config.
* Why Datadog
* Debug in microservices architecture is tricky
* Observability
* [Log](https://docs.datadoghq.com/logs/)
* [APM](https://www.datadoghq.com/product/apm/)
* [Metric](https://docs.datadoghq.com/metrics/)
* Dashboard
* [Dine-in business dashboard](https://app.datadoghq.eu/dashboard/m5h-xq6-d3h/dine-in-business-overview?tpl_var_country%5B0%5D=sg&from_ts=1691980111157&to_ts=1692584911157&live=true)
* [Dine-in reliablity dashboard](https://app.datadoghq.eu/dashboard/sjx-gys-cnx/dine-in-reliability-dashboard?from_ts=1692412157943&to_ts=1692584957943&live=true)
* Monitoring
* [pd-sre-terraform](https://github.com/deliveryhero/pd-sre-terraform)
* [Golden Signal](https://sre.google/sre-book/monitoring-distributed-systems/)
* Custom monitor
* [Duplicated Payment Monitor](https://app.datadoghq.eu/monitors/12346783)
* Why Data Platform
* [Pandata](https://confluence.deliveryhero.com/display/PHBI/Onboarding)
* [BigQuery](https://console.cloud.google.com/bigquery?project=pd-backend-274508&ws=!1m5!1m4!4m3!1sfulfillment-dwh-production!2spandata_curated!3sdio_orders&p=fulfillment-dwh-production&d=pandata_curated&page=dataset)