What is Micro-service Orchestration(MsO)?

MsO  is the automated coordination and management of multiple independently deployed micro-services which, in turn, are simply logically separated software modules.

  • Together these micro-services form a larger application or solution.
  • They are deployed, scaled, communicate, and are sustainably recovered/restarted in a reliable and efficient manner.
  • Service discovery, networking, load balancing, configuration, restarts, canary deployments and fault tolerance, is then Orchestrated.
  • Kubernetes or Docker Swarm are the accepted engines/tool-set for Orchestration.
  • In this way complex, loosely coupled systems operate as a coherent solution or service. -At Scale-.

MsO Comparatives with Monolith deployments 

Dimension Monolith System MSO Deployment
Deployment Unit Single application deployed as one artifact. Many small services deployed independently under an orchestrator.
Scaling Scale the whole app, even if one part is hot. Scale only the bottleneck services; fine-grained autoscaling.
Change Velocity Updates often require redeploying the entire app. Update/rollback services individually with minimal blast radius.
Technology Stack Usually one stack for everything. Polyglot per service; fit-for-purpose stacks.
Coupling Tight in-process coupling; shared runtime. Loosely coupled via APIs; contracts enforced by the platform.
Resilience One failure can affect the whole system. Failures isolated; orchestrator restarts, reschedules, and load-balances.
Operations Simpler to start; complexity grows with size. Higher operational overhead (networking, CI/CD, policies) but scalable automation.
Observability Central logs/metrics for one process space. Distributed tracing, per-service metrics/logs aggregated by the platform.
Data Management Typically one shared database/schema. Service-owned data; careful handling of consistency and transactions.
Release Strategy Big-bang releases; Cannot do canary deployments. Blue/green, Canary, progressive delivery per service.
Team Structure Functional silos around a single codebase. Small, autonomous teams owning services end-to-end.
Typical Tools App server + VM/container; basic deploy scripts. Kubernetes/Docker Swarm + service mesh, GitOps, policy/secret managers.

Skills - Core Strengths

  

12 Factors for building scalable, maintainable web & service Apps:

(Modified by me for micro-service orchestration)

  1. Single Versioned codebase, multiple deploys.
  2. Explicitly declared and isolated dependencies.
  3. Configurations as environment variables, manifests → not code.
  4. Core Services (databases, external APIs, etc.) are attached (not implicit) resources.
  5. Segregated Build, Release & Run stages → Maximized automation.
  6. Stateless or obfuscated processes (i.e. share-nothing).
  7. Export-able or External services via port binding.
  8. Concurrency Patterned Load Balancers Scale out multiple executed code instances.
  9. Use Canary type Disposability to maximize safe, robust, measurable startups and graceful shutdowns.
  10. Dev/Test/Prod Parity using conformed development, staging, and production environments.
  11. Treat logs as events (streaming), not files.
  12. Admin/Automation Admin tasks conformed to one-off processes.
Skills - Core Strengths

  

Approximating Development to Deployment

In support of 12-Factor deployment principles, The use of a best-build development infrastructure allows developers to work on micro services in the same way as what the live deployments would occur.
This allows for quick testing and turnarounds. It also is a real-world test-bed for canary deployments.

Skills - Core Strengths

  

Paved Road Principles

Agreed & Standardized Tool-Sets & Processes that simplify development, reduce Code Debt, custom work and enhance team efficacy.

Skills - Core Strengths

  

Immutable infrastructure

  

Canary Deployments

In K8s, A canary deployment rolls out a new version of a micro service to a limited number of users.
A controlled small percentage of traffic is shipped to the Canary via a controller.
The Canary is then monitored in real-time.
It is then expanded in scope & rolled forward (success), replacing the previous version OR removed (failure) - rolling back.
In this way the solution is not shut down but minimally or not impacted at all.

Skills - Core Strengths

  

Domain‑Driven Design (DDD)

  • DDD   is a methodology and Team Approach where you center everything (architecture, tools, methods, models, code and team-structure) around the business domain.
  • Resulting deliveries reflect how the business actually works rather than how a toolset, database or framework wants it to works.
  • Understanding, managing & mitigating team - deficits is crucial.
Skills - Core Strengths

  

Kubernetes (K8s) & variants

  • K8s   is the large deployment, industry strength standard for MsO solutions. Kubernetes comes in a number of on-line cloud invocations such as GCP, AWS and Digital Ocean.
    It is also deployable on bare-metal solution sets and can also be Hybrid (I.e. cloud & DIY).
  • K3s, developed by Rancher, is a lightweight Kubernetes distribution designed for resource-constrained environments, simplifying cluster deployment and management.
    K3s works well for MsO bespoke solutions using the embedded AI systems and video solutions powered by AVerMedia NVIDIA Jetson modules, designed for edge computing and IoT applications.
  • I recently deployed a MsO solution on MicroK8s run in multipass VMs on AVerMedia NVIDIA units. This allowed me to deploy AMD MsO solutions on ARM architectures using AMD VMs.
Skills - Core Strengths