当前位置: 首页 > 科技观察

几行代码就能搞定一个高端的云系统架构图

时间:2023-03-14 12:03:52 科技观察

如果你想知道如何用Python代码画出云系统架构图,那么,你一定喜欢源美想要的这个开源项目今天与大家分享——图表。Diagrams是一种工具,无需使用任何设计工具,只需几行代码即可创建令人惊叹的云系统架构图。它的诞生是为了在没有任何设计工具的情况下设计新的系统架构。对于原型设计,您可以使用它来描述或可视化现有的系统架构。Diagrams目前支持AWS、Azure、GCP、Kubernetes、阿里云、Oracle云等,同时还支持内置架构图组件、SaaS及主流编程框架和语言。图即代码还允许用户跟踪任何版本控制系统中模式图的更改。除此之外,如果你熟悉Go,你可以使用go-diagrams。(项目地址:https://github.com/blushft/go-diagrams)目前,diagrams在Github上已被标记14.5K星,共有795个分支(Github地址:https://github.com/mingrammer/diagrams)安装要求diagrams支持Python3.6及以上版本。它使用Graphviz来渲染图表,因此您需要安装Graphviz才能使用它。首先确保这两项符合要求,然后才能安装图。macOS用户可以通过以下方式下载Graphviz:#usingpip(pip3)$pipinstalldiagrams#usingpipenv$pipenvinstalldiagrams#usingpoetry$poetryadddiagrams快速开始#diagram.pyfromdiagramsimportDiagramfromdiagrams.aws.computeimportEC2fromdiagrams.aws.databaseimportRDSfromdiagrams.aws.networkimportELBwithDiagram("WebService",show=False):ELB("lb")>>EC2("web")>>RDS("userdb")Thiscodegeneratesthefollowingdiagram:$pythondiagram.pyItwillsaveweb_service.pnginyourworkingdirectory.AWS上的分组工作人员fromdiagramsimportDiagramfromdiagrams.aws.computeimportEC2fromdiagrams.aws.databaseimportRDSfromdiagrams.aws.networkimportELBwithDiagram("GroupedWorkers",show=False,direction="TB"):ELB("lb")>>[EC2("worker1"),EC2("worker2"),EC2("worker3"),EC2("worker4"),EC2("worker5")]>>RDS("events")群网络服务fromdiagramsimportCluster,Diagramfromdiagrams.aws.computeimportECSfromdiagrams.aws.databaseimportElastiCache,RDSfromdiagrams.aws.networkimportELBfromdiagrams.aws.networkimportRoute53withDiagram("ClusteredWebServices",show=False):dns=Route53("dns")lb=ELB("lb")withCluster("服务"):svc_group=[ECS("web1"),ECS("web2"),ECS("web3")]withCluster("DBCluster"):db_main=RDS("userdb")db_main-[RDS("userdbro")]memcached=ElastiCache("memcached")DNS>>lb>>svc_groupsvc_group>>db_mainsvc_group>>memcached