---
# System prepended metadata

title: Backend Onboarding

---

# 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)
