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

Design and Deploy Microservice for GIS Applicat...

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
  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?
  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.
  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
  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.
  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.
  7. 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
  8. 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
  9. 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
  10. Frontend & Backend Services API Services & Process Services Map

    Server Services Data Store & Database Services New-way GIS applications Apply microservices architectures
  11. OGC API - Common OGC API - Features OGC API

    - Processes OGC Standard that we use? OGC API - Tiles
  12. 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
  13. 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
  14. 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
  15. 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
  16. 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
  17. 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