Upgrade to Pro — share decks privately, control downloads, hide ads and more …

Design and Deploy Microservice for GIS Application apply OGC Standard

Design and Deploy Microservice for GIS Application apply OGC Standard

Design and Deploy Microservice for GIS Application apply OGC Standard
by Worrathep Somboonrungrod in FOSS4G ASIA 2023 Seoul

Microservices are an architectural and organizational approach to
software development where software is composed of small,
independent services that communicate over well-defined APIs.
These services are owned by a small, self-contained team.
Microservices architectures make applications simpler to scale
and faster to develop, enabling innovation and accelerating time-
to-market for new features

Prasong Patheepphoemphong

December 01, 2023
Tweet

More Decks by Prasong Patheepphoemphong

Other Decks in Technology

Transcript

  1. Design & Deploy Microservices for
    GIS Application Apply OGC Standards
    i-bitz company limited
    FOSS4G ASIA SOUL 28 Nov - 2 Dec 2023

    View full-size slide

  2. Content
    Introduction
    Old-way GIS applications
    What architecture did we use for
    building old-way GIS
    New-way GIS applications
    Applying microservices architecture
    for building GIS Application
    OGC Standard that we use?
    Which standards we choose to
    build GIS Application?
    Design GIS Application by Applying OGC Standards
    Design GIS Application with reference to
    the selected OGC Standard
    Deploying GIS Application with Tools?
    01
    02
    03
    04
    05
    06
    What are microservices?
    What tool we are using to deploy
    microservices for GIS Application?

    View full-size slide

  3. Introduction
    What are microservices?
    Microservices are an architectural and organizational approach to
    software development where software is composed of small,
    independent services that communicate over well-defined APIs.
    These services are owned by a small, self-contained team.
    Microservices architectures make applications simpler to scale
    and faster to develop, enabling innovation and accelerating time-
    to-market for new features.

    View full-size slide

  4. Introduction
    What are microservices?
    With a Microservices architecture, an application is built as
    independent components that run each application process as a
    service. These services communicate via an interface using
    lightweight APIs. Services are built for business capabilities and
    each service performs a single function. Because they are
    independently run, each service can be updated, deployed, and
    scaled

    View full-size slide

  5. Flexible Scaling
    Allow each service to
    be independently
    scaled up/down
    Easy Deployment
    Making it easy to try out
    new source code and
    roll back if something
    doesn’t work.
    Technological Freedom
    Teams have the
    freedom to choose the
    best tool for each job.
    Reusable Code
    A service written for a
    certain function can be
    used as a building
    block for another
    feature.
    Resilience
    Service independence
    increases an
    application’s resistance
    to failure.
    Introduction
    Benefits of Microservices
    Agility
    Microservices foster an
    organization of small,
    independent teams that take
    ownership of their services,
    shortening development cycle
    times.

    View full-size slide

  6. Old-way GIS applications
    The old way of designing and deploying GIS applications was based
    on a monolithic architecture, which could not scale service
    components and had the risk of making the entire application non-
    functional if any components failed.

    View full-size slide

  7. Old-way GIS applications

    View full-size slide

  8. The new GIS application is designed and deployed on base of micro
    services architecture, which separates services into small
    components. These services communication via a well-defined APIs,
    Protocol and each component can be scaled to accommodate
    usage, That new way following the Twelve-Factor APP. (https://
    12factor.net)
    New-way GIS applications

    View full-size slide

  9. The Twelve Factor
    1
    2
    3
    4
    5
    6
    One codebase tracked in revision control,
    Many deploys
    Codebase
    Explicitly declare and isolate
    dependencies
    Dependencies
    Store config in the environment
    Config
    Treat backing services as attached
    resources
    Backing services
    Strictly separate build and run stages
    Build, release, run
    Execute the app as one or more stateless
    processes
    Processes

    View full-size slide

  10. The Twelve Factor
    7
    8
    9
    10
    11
    12
    Export services via port binding
    Port binding
    Scale out via the process model
    Concurrency
    Maximize robustness with fast startup and
    graceful shutdown
    Disposability
    Keep development, staging, and
    production as similar as possible
    Dev/prod parity
    Treat log as event streams
    Log
    Run admin/management tasks as one-off
    processes
    Admin processes

    View full-size slide

  11. Frontend & Backend
    Services
    API Services & Process
    Services
    Map Server Services Data Store & Database
    Services
    New-way GIS applications
    Apply microservices architectures

    View full-size slide

  12. OGC API - Common
    OGC API - Features
    OGC API - Processes
    OGC Standard that we use?
    OGC API - Tiles

    View full-size slide

  13. Applying the OGC Standards when design GIS
    applications will ensure that applications are
    developed to store and serve data according to
    international standards accepted by the OGC.
    Design GIS Application by
    Applying OGC Standards

    View full-size slide

  14. OGC API - Processes
    OGC API - Features
    OGC API - Common
    Frontend Services Backend Services
    Database Service
    API Management
    Services
    API Service 3
    API Service 3
    OGC API - Tiles
    Processing Services
    Database Service
    Processing Services
    Processing Services
    Processing Services
    Database Services Datastore Services
    Processing Services
    Processing Services
    New-way GIS applications
    Apply microservices architectures

    View full-size slide

  15. Design GIS Application by
    Applying OGC Standards
    Reverse Proxy
    Kubernetes
    Master Node 1
    Kubernetes
    Worker Node 1
    Kubernetes
    Worker Node 2
    Kubernetes
    Worker Node 3
    Kubernetes Cluster
    Monitoring Service
    Database
    Production
    Node 1
    Database
    Production
    Node 2
    Database
    Production
    Node 3
    Object Storage
    Node 1
    Object Storage
    Node 2
    Object Storage
    Node 3
    Kubernetes
    Master Node 2
    External Storage
    For Kubernetes Cluster
    (NFS Server, Longhorn, Ceph)
    Pubilc User
    Public Network Accesses
    Ingress To
    API Gateway

    View full-size slide

  16. Design GIS Application by
    Applying OGC Standards
    External & Internal
    Data Store
    Database Service
    Reverse Proxy &
    Load Balancer Service API Gateway
    Vallaris Platform
    (OGC Standards Compliance)
    Kong API Gateway
    Frontend Services
    Frontend Application
    Backend Services
    Backend API
    MongoDB Master
    MongoDB Slave (1-2)
    Nginx
    Kubernetes Cluster
    Virtual Machine
    External & Internal Data Store
    Data Store Data Store
    Data Store
    Monitoring Service
    Grafana
    Uptime
    Kuma
    Node Export Prometheus
    Pubilc / Internal User
    Object Storage Service
    Object Storage 1
    Object Storage 2, 3
    Monitoring
    Monitoring
    Pulling Data
    External Storage
    For Kubernetes
    Cluster
    Monitoring
    Kubernetes Cluster
    Public / Internal
    Network Accesses

    View full-size slide

  17. Gitlab
    Gitlab Runner
    Containerd Kubernetes Rancher orchestrator
    dashboard
    Store source code and CI/CD
    processes
    Container Runtime for microservices Microservices Orchestration
    Tools
    Deploying GIS Application with Tools?
    Dashboard for
    Kubernetes cluster
    management

    View full-size slide

  18. Deploying GIS Application with Tools?

    View full-size slide

  19. Deploying GIS Application with Tools?

    View full-size slide

  20. Deploying GIS Application with Tools?

    View full-size slide

  21. GIS Application Applying Microservice Architecture and OGC Standards

    View full-size slide

  22. GIS Application Applying Microservice Architecture and OGC Standards

    View full-size slide

  23. If you have any question, Feel free to
    contact us any time on phone cell
    or contact us by email. We will get
    back to you as soon as we can
    I-bitz company limited
    56/3 Soi Bunyu, Dindang rd.
    Phayathai Bangkok, Thailand
    10400
    Office Hours
    Monday-Friday
    09.00-17.00
    Get In Touch
    (+66) 2278 7913
    More Information
    www.i-bitz.co.th
    [email protected]
    Thank You for
    Joining This Session

    View full-size slide