All Projects → paunin → soa-checklist

paunin / soa-checklist

Licence: other
Microservice Oriented Architecture checklist

Projects that are alternatives of or similar to soa-checklist

impress-cli
Impress Application Server Command line interface
Stars: ✭ 25 (-72.83%)
Mutual labels:  cluster, soa
Zato
ESB, SOA, REST, APIs and Cloud Integrations in Python
Stars: ✭ 889 (+866.3%)
Mutual labels:  cluster, soa
Rsf
已作为 Hasor 的子项目,迁移到:http://git.oschina.net/zycgit/hasor
Stars: ✭ 77 (-16.3%)
Mutual labels:  cluster, soa
Cluster Lifecycle Manager
Cluster Lifecycle Manager (CLM) to provision and update multiple Kubernetes clusters
Stars: ✭ 200 (+117.39%)
Mutual labels:  cluster
Tiup
A component manager for TiDB
Stars: ✭ 207 (+125%)
Mutual labels:  cluster
Raspi Cluster
Notes and scripts for setting up (yet another) Raspberry Pi computing cluster
Stars: ✭ 235 (+155.43%)
Mutual labels:  cluster
caddy-tlsconsul
🔒 Consul K/V storage for Caddy Web Server / Certmagic TLS data
Stars: ✭ 89 (-3.26%)
Mutual labels:  cluster
Cookim
Distributed web chat application base websocket built on akka.
Stars: ✭ 198 (+115.22%)
Mutual labels:  cluster
node-codis
Codis client for Node.js.
Stars: ✭ 18 (-80.43%)
Mutual labels:  cluster
Redis Cluster
Redis Cluster setup running on Kubernetes
Stars: ✭ 230 (+150%)
Mutual labels:  cluster
Coerce Rs
Coerce - an asynchronous (async/await) Actor runtime and cluster framework for Rust
Stars: ✭ 231 (+151.09%)
Mutual labels:  cluster
Oq Engine
OpenQuake's Engine for Seismic Hazard and Risk Analysis
Stars: ✭ 207 (+125%)
Mutual labels:  cluster
Lokomotive
Lokomotive is a 100% open-source, easy to use and secure Kubernetes distribution from the volks at Kinvolk
Stars: ✭ 233 (+153.26%)
Mutual labels:  cluster
Dcos
DC/OS - The Datacenter Operating System
Stars: ✭ 2,316 (+2417.39%)
Mutual labels:  cluster
Cukatify
Cukatify is a music social media project
Stars: ✭ 21 (-77.17%)
Mutual labels:  soa
K3d
Little helper to run Rancher Lab's k3s in Docker
Stars: ✭ 3,090 (+3258.7%)
Mutual labels:  cluster
Magento-2-aws-cluster-terraform
Magento 2 AWS autoscaling cluster with Terraform and Packer or ImageBuilder. Adobe Commerce Cloud alternative. The best ecommerce infrastructure. Drive more sales online. Transparent billing. Developer-friendly. No hidden bottlenecks.
Stars: ✭ 107 (+16.3%)
Mutual labels:  cluster
Reading And Comprehense Redis Cluster
分布式NOSQL redis源码阅读中文分析注释,带详尽注释以及相关流程调用注释,提出改造点,redis cluster集群功能、节点扩容、槽位迁移、failover故障切换、一致性选举完整分析,对理解redis源码很有帮助,解决了source insight中文注释乱码问题,更新完毕(redis源码学习交流QQ群:568892619)
Stars: ✭ 224 (+143.48%)
Mutual labels:  cluster
Pyslurm
Python Interface to Slurm
Stars: ✭ 222 (+141.3%)
Mutual labels:  cluster
Turing Pi Cluster
Turing Pi cluster configuration for Raspberry Pi Compute Modules
Stars: ✭ 233 (+153.26%)
Mutual labels:  cluster

SOA checklist

Disclaimer - Trust no one, use your brain! (Work continuously in progress)

Administrative (people, flows, responsibilities)

  • Blueprint/template for a new service
  • Documentation, standards, guides (how-to, know-how documents)
  • Team support
    • Understanding of the whole process by each member
    • Pro-active development and support
    • Accepted responsibilities and duties for each stage of a service
  • Plan for service live circle
    • Pre-production development
    • Launching
    • Rollout backward compatible version of a service
    • Hotfixing
    • Rollout backward incompatible version of a service
      • Data migration
      • Switchover
      • Service rollback

Automated processes

  • Continuous development
    • Tests
      • Automated
        • Unit tests
        • Functional tests
        • Code style (lints and sniffers)
        • Code quality monitoring (Sonar, Scrutinizer)
        • Code coverage checks
      • Manual
        • Feature acceptance/Business acceptance
        • A/B tests
    • Conditions of integration
      • Code style checks
      • Test results
      • Code coverage percentage
    • Conditions of disintegration a feature
      • Error rate after deploy live
      • Healthchecks
    • Storing a new tested snapshots/artefact of a service
      • Artefact storage (Docker registry)
        • Cleanup policy (Delete old tags with timeout)
  • Continuous delivery of stable artefacts

Implementation

  • System layers
    • Hardware: Servers and networks
      • Scaling (adding new nodes) should not affect consistency of other layers
      • Degradation (removing nodes) should not affect consistency of other layers
      • Monitoring
        • Hardware
        • Network
        • Resources and load
      • Alerting policy
    • Cluster: Services management system (Kubernetes, alternatives: OpenShift,Apache Mesos/Apache Karaf)
      • Monitoring
        • Availability of each node in the cluster
        • All services up and running
        • Connectivity between different pods and services
        • Public endpoints accessibility
      • Alerting policy
      • Restart (full or partial) should bring cluster and systems up without destruction
      • Log aggregation system - collect all logs from all containers
      • Execution environment
        • Meta-project with topology of the system
          • Showroom + Staging
            • Separate namespace for each showroom
            • Fixed showroom for the staging (last stable pre-release)
          • Production
            • Configuration
              • Secrets
              • Configs should be a part of the meta-project
    • Service: Application and any service
      • Service itself (Docker image)
        • Backward compatibility for a few generations
          • Cleanup policy for deprecated/unused:
            • Logic branches
            • Data structures (RDBMS/NoSql)
        • One container - one process
          • Segregated commands even in one image (management layer can pick any to run)
          • Built in commands
            • Test service/source code (docker compose to setup required test ENV)
          • DEV/DEBUG mode
        • Logging
          • Writing in stdout (without using containers’ file system) will enforce cluster layer to keep all logs
        • Monitoring
          • Application and business checks (New Relic: throughput, metrics)
          • Self health checks (metrics+Prometeus+Grafana)
            • Queues content (amount of messages)
            • Db content (custom checks)
            • Cache utilization check
        • Alerting policies (Prometeus, NewRelic)
        • Tracing system agent (zipkin)
        • Self-sufficiency
          • Interfaces documentation
            • Restful API
            • Port and service description (README.md files)
          • Service should be able to set itself up
            • Wait for required related services and ports (dockerize)
            • Configuring from environment variables (confd)
            • Warming up
              • Run data migration (needed maintenance service)
              • Cache fulfilment
      • Replication, balancing and scaling on service level
      • Failover and self-reorganisation in case of:
        • Service crashed
        • Physical node out of cluster
        • Resources problems on specific node
      • Logs system
        • Service to collect and access logs grabbed from Cluster layer
          • ELK stack/Gray Log/etc
      • Persistent volumes to keep data
        • EBS AWS
        • Ceph
        • NFS
  • Common services
    • Tracing system (Zipkin)
    • Single sign-on service
      • Authentication service (JWT)
      • Authorization requests from all services
    • Detached processing (CQRS)
      • Request-Queue-Processor schema
      • Stream data addressing and processing (Reactor)
    • Real Time data requests processing
      • Reliable data provider/API gateway (sync data retrieving)
        • Request-Manager-Service solution
    • Reliable data-bus for events
      • Event-Broker-Subscriber solution (Apache Camel)
        • Http/TCP API endpoint to accept events
        • Event fulfilment (Earn required information for subscribers)
        • Event delivery
        • Event delivery policies
          • Retry
          • Reque
          • Giveup
    • RDBMS: Postgres cluster
    • DB backups: PG backupper
    • Key-value + Queue: Redis cluster
    • Messages system: Rabbit MQ cluster
    • Healthcheck system
    • Alerting system
Note that the project description data, including the texts, logos, images, and/or trademarks, for each open source project belongs to its rightful owner. If you wish to add or remove any projects, please contact us at [email protected].