В этой статье я шаг за шагом покажу вам, как создавать динамическую и интерактивную визуальную документацию с помощью инструментов «Диаграмма как код». Вместо статических изображений мы будем создавать диаграммы программным способом, гарантируя, что они всегда актуальны и просты в обслуживании.
Диаграмма как код — это подход, который позволяет создавать диаграммы с помощью кода вместо традиционных графических инструментов. Вместо построения диаграмм вручную вы можете написать код в текстовом файле, чтобы определить структуру, компоненты и связи ваших диаграмм.
Затем этот код переводится в графические изображения, что упрощает интеграцию и документирование в программных проектах, где он особенно полезен для программного создания и обновления архитектурных и блок-схем.
Диаграммы — это ?библиотека Python, которая реализует подход «Диаграмма как код», позволяющий создавать диаграммы архитектурной инфраструктуры и другие типы диаграмм с помощью кода. С помощью диаграмм вы можете легко определить компоненты облачной инфраструктуры (такие как AWS, Azure и GCP), сетевые элементы, программные сервисы и многое другое, и все это с помощью всего лишь нескольких строк кода.
В настоящее время для этого урока я использовал версию «0.23.4».
!pip install diagrams=='0.23.4'
Библиотека позволяет программно создавать архитектурные диаграммы, используя узлы для представления различных компонентов и сервисов инфраструктуры.
Узлы на диаграммах представляют собой компоненты от разных поставщиков облачных услуг, а также другие архитектурные элементы. Вот основные категории доступных узлов:
Библиотека Диаграммы позволяет использовать разные узлы для представления различных языков программирования. Эти узлы полезны для указания на ваших диаграммах, если какая-либо часть вашей архитектуры использует сценарии или компоненты, разработанные на определенном языке программирования.
Ниже мы покажем все доступные языки в библиотеке. Если какой-либо язык отсутствует, вы можете добавить собственные узлы, загрузив соответствующий логотип в определенную папку.
# Create the diagram object with diagrams.Diagram("Programming Languages", show=False, filename="languages"): # Get all the languages available in this library languages = [item for item in dir(diagrams.programming.language) if item[0] != '_'] # Divide the representation in two lines mid_index = len(languages) // 2 first_line = languages[:mid_index] second_line = languages[mid_index:] # Add nodes in the first row prev_node = None for language in first_line: current_node = eval(f"diagrams.programming.language.{language}(language)") if prev_node is not None: prev_node >> current_node prev_node = current_node # Add nodes in the second row prev_node = None for language in second_line: current_node = eval(f"diagrams.programming.language.{language}(language)") if prev_node is not None: prev_node >> current_node prev_node = current_node Image("languages.png")
Мы можем использовать узлы Amazon, которые разделены на несколько категорий, например:
Далее мы представим одну из этих категорий для визуализации доступных узлов в aws.database.
from diagrams import Diagram from IPython.display import Image import diagrams.aws.database as aws_database database_components = [] for item in dir(aws_database): if item[0] != '_': if not any(comp.startswith(item) or item.startswith(comp) for comp in database_components): database_components.append(item) with Diagram("AWS Database", show=False, filename="aws_database"): mid_index = len(database_components) // 2 first_line = database_components[:mid_index] second_line = database_components[mid_index:] prev_node = None for item_database in first_line: current_node = eval(f"aws_database.{item_database}(item_database)") if prev_node is not None: prev_node >> current_node prev_node = current_node prev_node = None for item_database in second_line: current_node = eval(f"aws_database.{item_database}(item_database)") if prev_node is not None: prev_node >> current_node prev_node = current_node Image("aws_database.png")
Теперь давайте создадим простой план, соответствующий импорту набора данных и обучению модели машинного обучения на AWS.
from diagrams import Diagram, Cluster from diagrams.aws.storage import S3 from diagrams.aws.analytics import Glue, Athena import diagrams.aws.ml as ml from diagrams.aws.integration import StepFunctions from diagrams.aws.compute import Lambda from diagrams.aws.network import APIGateway from IPython.display import Image with Diagram("AWS Data Processing Pipeline", show=False): lambda_raw = Lambda('Get Raw Data') # Buckets de S3 with Cluster("Data Lake"): s3_rawData = S3("raw_data") s3_stage = S3("staging_data") s3_data_capture = S3("data_capture") athena = Athena("Athena") s3_rawData >> athena s3_stage >> athena s3_data_capture >> athena # Step Functions Pipeline with Cluster("Data Processing Pipeline"): step_functions = StepFunctions("Pipeline") # Glue Jobs in Step Functions with Cluster("Glue Jobs"): data_quality = Glue("job_data_quality") transform = Glue("job_data_transform") dataset_preparation = Glue("job_dataset_model") # Define Step Functions Flows step_functions >> data_quality >> transform >> dataset_preparation s3_rawData >> data_quality # SageMaker for model training and deployment with Cluster("SageMaker Model Deployment"): train_model = ml.SagemakerTrainingJob("job_train_model") eval_model = ml.SagemakerGroundTruth("job_evaluate_model") endpoint = ml.SagemakerModel("model_enpoint") # API Gateway and Lambda for the endpoint api_gateway = APIGateway("API_gateway") lambda_fn = Lambda("invoke_endpoint") # Connection lambda_raw >> s3_rawData s3_stage >> train_model >> eval_model >> endpoint endpoint >> lambda_fn >> api_gateway endpoint >> s3_data_capture dataset_preparation >> train_model Image("aws_data_processing_pipeline.png")
Ниже приведены ссылки на весь код. Если он окажется для вас полезным, вы можете поставить звездочку ⭐️ и подписаться на меня, чтобы получать уведомления о новых статьях. Это поможет мне расти в технологическом сообществе и создавать больше контента.
Диаграмма как код — это подход, который позволяет создавать диаграммы с помощью кода вместо традиционных графических инструментов. Вместо построения диаграмм вручную вы можете написать код в текстовом файле, чтобы определить структуру, компоненты и связи ваших диаграмм.
Затем этот код переводится в графические изображения, что упрощает интеграцию и документирование в программных проектах, где он особенно полезен для программного создания и обновления архитектурных и блок-схем.
Диаграммы — это ?библиотека Python, которая реализует подход «Диаграмма как код», позволяющий создавать диаграммы архитектурной инфраструктуры и другие типы диаграмм с помощью кода. С помощью диаграмм вы можете легко определить компоненты облачной инфраструктуры (такие как AWS, Azure и GCP), сетевые элементы, программные сервисы и многое другое, и все это с помощью всего лишь нескольких строк кода.
Если вы хотите узнать, как реализовать сайт документации с использованием этого конвейера, вы можете прочитать статью, которую я опубликовал по следующей ссылке
Отказ от ответственности: Все предоставленные ресурсы частично взяты из Интернета. В случае нарушения ваших авторских прав или других прав и интересов, пожалуйста, объясните подробные причины и предоставьте доказательства авторских прав или прав и интересов, а затем отправьте их по электронной почте: [email protected]. Мы сделаем это за вас как можно скорее.
Copyright© 2022 湘ICP备2022001581号-3