# 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) ![](https://hackmd.io/_uploads/Hy34aVxT3.png) * [Why microservice](https://about.gitlab.com/blog/2022/09/29/what-are-the-benefits-of-a-microservices-architecture/) ![](https://hackmd.io/_uploads/r1nvYrgT2.png) * 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 ![](https://hackmd.io/_uploads/HJrTqrea3.png) * 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)