V2EX = way to explore
V2EX 是一个关于分享和探索的地方
现在注册
已注册用户请  登录
pence2019
V2EX  ›  程序员

什么是微服务 12 要素 The Twelve-Factor App 楞是没有看懂 麻烦大牛解释下

  •  
  •   pence2019 · 2019-12-16 15:32:00 +08:00 · 1187 次点击
    这是一个创建于 1812 天前的主题,其中的信息可能已经有所发展或是发生改变。
    Introduction
    In the modern era, software is commonly delivered as a service: called web apps, or software-as-a-service. The twelve-factor app is a methodology for building software-as-a-service apps that:

    Use declarative formats for setup automation, to minimize time and cost for new developers joining the project;
    Have a clean contract with the underlying operating system, offering maximum portability between execution environments;
    Are suitable for deployment on modern cloud platforms, obviating the need for servers and systems administration;
    Minimize divergence between development and production, enabling continuous deployment for maximum agility;
    And can scale up without significant changes to tooling, architecture, or development practices.
    The twelve-factor methodology can be applied to apps written in any programming language, and which use any combination of backing services (database, queue, memory cache, etc).

    Background
    The contributors to this document have been directly involved in the development and deployment of hundreds of apps, and indirectly witnessed the development, operation, and scaling of hundreds of thousands of apps via our work on the Heroku platform.

    This document synthesizes all of our experience and observations on a wide variety of software-as-a-service apps in the wild. It is a triangulation on ideal practices for app development, paying particular attention to the dynamics of the organic growth of an app over time, the dynamics of collaboration between developers working on the app’s codebase, and avoiding the cost of software erosion.

    Our motivation is to raise awareness of some systemic problems we’ve seen in modern application development, to provide a shared vocabulary for discussing those problems, and to offer a set of broad conceptual solutions to those problems with accompanying terminology. The format is inspired by Martin Fowler’s books Patterns of Enterprise Application Architecture and Refactoring.

    Who should read this document?
    Any developer building applications which run as a service. Ops engineers who deploy or manage such applications.

    The Twelve Factors
    I. Codebase
    One codebase tracked in revision control, many deploys
    II. Dependencies
    Explicitly declare and isolate dependencies
    III. Config
    Store config in the environment
    IV. Backing services
    Treat backing services as attached resources
    V. Build, release, run
    Strictly separate build and run stages
    VI. Processes
    Execute the app as one or more stateless processes
    VII. Port binding
    Export services via port binding
    VIII. Concurrency
    Scale out via the process model
    IX. Disposability
    Maximize robustness with fast startup and graceful shutdown
    X. Dev/prod parity
    Keep development, staging, and production as similar as possible
    XI. Logs
    Treat logs as event streams
    XII. Admin processes
    Run admin/management tasks as one-off processes
    1 条回复    2019-12-16 20:00:53 +08:00
    sleepm
        1
    sleepm  
       2019-12-16 20:00:53 +08:00 via Android
    关于   ·   帮助文档   ·   博客   ·   API   ·   FAQ   ·   实用小工具   ·   2835 人在线   最高记录 6679   ·     Select Language
    创意工作者们的社区
    World is powered by solitude
    VERSION: 3.9.8.5 · 22ms · UTC 12:22 · PVG 20:22 · LAX 04:22 · JFK 07:22
    Developed with CodeLauncher
    ♥ Do have faith in what you're doing.