当前位置: 首页 > news >正文

在 Azure 中开发云原生应用程序:工具和技巧

Azure 中的云原生开发工具

Azure 包含一系列用于云原生应用程序开发的内置工具和服务。这里介绍的服务和工具是很好的入门选择。

发展

Azure 包括两个用于开发和构建云原生应用程序的主要工具:Visual Studio (VS) 和Azure应用服务。

VS 是一个集成开发环境(IDE),可用于任何平台或环境。它使您能够在云或本地开发、调试、部署和监控应用程序。

VS 与平台无关,但可以直接与 Azure 服务集成,并使您能够直接部署到 Azure。

Azure 应用服务是基于订阅的平台即服务 (PaaS),使你能够为 Web 和移动客户端构建应用程序。它提供了完全托管的云基础设施,使您能够将应用程序部署在容器中或直接作为代码部署。

应用服务包括可用作应用创建基础的预构建应用。它支持流行的框架和语言,包括.NET、Java、Python、PHP、Node.js 和 Ruby。

贮存

在 Azure 中开发云原生应用程序时,有许多存储选项可供您将应用程序绑定到。您可以从任何标准存储服务(包括磁盘、文件、队列、表或 blob)存储和检索数据。您还可以将应用程序连接到数据库服务。

Azure 包括针对结构化、半结构化和关系数据的按使用付费数据库服务。数据库服务均通过内置安全性和性能调整功能进行全面管理。这些服务还包括自动地理数据复制。

数据库选项包括:

  • CosmosDB——适用于非结构化和半结构化数据。提供低延迟、高可用性和可扩展性。
  • MariaDB——用于关系数据。为移动和 Web 应用程序提供高可用性和弹性扩展。
  • PostgreSQL——用于关系数据。提供地理空间支持和丰富索引的可扩展性和功能。
  • MySQL——用于关系数据。为移动和 Web 应用程序提供高可用性和弹性扩展。

SAP HANA 是一个面向列的关系数据库管理系统。它用于存储和检索应用程序请求的数据。

您可以使用 SAP 执行各种分析,包括预测分析、空间数据处理、文本搜索、图形数据处理和流分析。您还可以使用 SAP 作为应用程序服务器来创建和运行应用程序。

部署

在 Azure 中部署云原生应用程序通常在容器或无服务器应用程序中完成。

AKS 是一项免费、完全托管的服务,用于使用 Kubernetes 部署和管理容器。该服务在虚拟机 (VM) 上运行,您负责配置、管理和付费。它包括集成的持续集成/持续交付 (CI/CD) 管道。

ACI 是一种用于托管容器的服务。它使您能够运行容器,而无需配置虚拟机或管理基础设施。此服务的成本取决于容器运行的时间以及使用的计算资源。ACI 通常用于弹性管理来自 AKS 的流量、运行事件驱动的应用程序或数据处理作业。

Azure Functions允许您编写代码片段或整个应用程序并运行它们,而无需专用实例或资源。您的程序根据来自 HTTP 请求、Azure 服务事件或预定义计划的触发器运行。在 Functions 中,您的应用程序可以通过 API 与 Azure 和第三方服务进行通信。您可以使用 .NET、JavaScript 和 Java 编写函数。

在 Azure 中进行开发的技巧

有许多使用特定服务和工具的技巧和最佳实践。要找到这些,最好检查每个服务的文档。不过,无论您使用什么服务,以下提示对于任何应用程序开发过程都非常有用。

使用自动缩放

自动缩放功能可实现动态资源分配,仅在需要时使用您需要的资源。这可以帮助最大限度地降低运行应用程序的成本。为了获得最大的性能和成本优势,请将您的应用程序设计为可水平扩展。应用程序通常不需要更强大的处理器,只是一种分配工作负载的方法。

开发应用程序时,尽量不要将代码绑定到特定实例。这样做会限制可用性和可扩展性。如果您预计特定时间的流量较高,您可以创建计划的自动扩展策略。此策略可以在您的需求增加之前启动实例。

关注安全

由于使用隔离服务,云原生应用程序比传统应用程序更安全然而,这并不意味着它们在默认情况下更安全。进行渗透测试以确定您的应用程序和环境容易受到攻击的地方非常重要。确保记录您的应用程序活动并监控应用程序流量。这些数据可以帮助您识别威胁,并在您的应用程序不可用时向您发出警报。

如果您需要对应用程序进行故障排除,请注意完成后不要让远程调试功能处于活动状态。远程调试功能可以为攻击者提供修改应用程序代码的方法。进出应用程序的任何流量都应通过 HTTPS 传递。HTTPS 可以帮助确保传输的数据在传输过程中不会被重新路由或修改。

利用 Azure 资源

Microsoft Learn 为 Azure 和其他 Microsoft 产品举办实践实验室、视频课程和虚拟课程。开发人员内容包括构建和部署应用程序、构建自动化工作流程以及 Python 中的机器学习。您还可以通过该平台获得 Microsoft 认证。

Azure DevOps Labs 是另一种选择,其中包括带有教程和练习的迷你课程。DevOps 实验室专注于帮助您学习如何使用和集成 Azure 以及选择第三方服务。该平台包含的主题包括如何为 PHP 应用程序设置 CI/CD 管道以及如何在 VS Code 中处理拉取请求。

相关文章:

在 Azure 中开发云原生应用程序:工具和技巧

Azure 中的云原生开发工具 Azure 包含一系列用于云原生应用程序开发的内置工具和服务。这里介绍的服务和工具是很好的入门选择。 发展 Azure 包括两个用于开发和构建云原生应用程序的主要工具:Visual Studio (VS) 和Azure应用服务。 VS 是一个集成开发环境&#…...

【Redis】基础数据结构-字典

Redis 字典 基本语法 字典是Redis中的一种数据结构,底层使用哈希表实现,一个哈希表中可以存储多个键值对,它的语法如下,其中KEY为键,field和value为值(也是一个键值对): HSET key…...

平板第三方电容笔怎么样?便宜的ipad触控笔推荐

苹果原装的电容笔与国产的平替电容笔最大的区别在于,平替电容笔只有一个斜面压力感应,而苹果电容笔既有斜面压力感应,又有重力压力感应。但是,如果你不经常使用它来进行绘画的话,你也不必买选择这款苹果电容笔&#xf…...

pytorch_神经网络构建3

文章目录 卷积神经网络实现卷积层,池化层池化层:数据标准化AlexNet卷积网络深层网络结构vgggoogleNet网络结构ResNet网络结构DensNet网络结构训练卷积神经网络会遇到的一些问题学习率衰减 卷积神经网络 前面讲述了逻辑回归分类,模拟函数回归问题,单层,深层网络,它们以点和向量…...

遗传算法入门笔记

目录 一、大体实现过程 二、开始我们的进化(具体实现细节) 2.1 先从编码说起 2.1.1 二进制编码法 2.1.2 浮点编码法 2.1.3 符号编码法 2.2 为我们的袋鼠染色体编码 2.3 评价个体的适应度 2.4 射杀一些袋鼠 2.5 遗传--染色体交叉(crossover) 2.6 变异--基…...

【golang】go 返回参数 以及go中 裸返

一、Go 返回参数命名 在Golang中,命名返回参数通常称为命名参数。 Golang允许在函数签名或定义中为函数的返回或结果参数指定名称。或者可以说这是函数定义中返回变量的显式命名。基本上,它解决了在return语句中提及变量名称的要求。 通过使用命名返回参…...

elasticsearch深度分页问题

一、深度分页方式from size es 默认采用的分页方式是 from size 的形式,在深度分页的情况下,这种使用方式效率是非常低的,比如我们执行如下查询 1 GET /student/student/_search 2 { 3 "query":{ 4 "match_all":…...

32、Flink table api和SQL 之用户自定义 Sources Sinks实现及详细示例

Flink 系列文章 1、Flink 部署、概念介绍、source、transformation、sink使用示例、四大基石介绍和示例等系列综合文章链接 13、Flink 的table api与sql的基本概念、通用api介绍及入门示例 14、Flink 的table api与sql之数据类型: 内置数据类型以及它们的属性 15、Flink 的ta…...

Java练习题-用冒泡排序法实现数组排序

✅作者简介:CSDN内容合伙人、阿里云专家博主、51CTO专家博主、新星计划第三季python赛道Top1🏆 📃个人主页:hacker707的csdn博客 🔥系列专栏:Java练习题 💬个人格言:不断的翻越一座又…...

【SV中的多线程fork...join/join_any/join_none】

SV中fork_join/fork_join_any/fork_join_none 1 一目了然1.1 fork...join1.2 fork...join_any1.3 fork...join_none 2 总结 SV中fork_join和fork_join_any和fork_join_none; Note: fork_join在Verilog中也有,只有其他的两个是SV中独有的; 1 一目了然 1.…...

翻译:网站整站翻译 / 网站国际化 / 极简实现

一、本文目标 以极简单的方法实现整站翻译,轻松实现国际化。 二、js 文件 https://res.zvo.cn/translate/translate.js 三、代码 代码放在浏览器控制台即可实现 var head document.getElementsByTagName(head)[0];var script document.createElement(script);sc…...

深度森林(deep-forest)安装

深度森林(deep-forest)安装 1、打开https://pypi.org/,搜索deep-forest,下载wheel文件 在下载好之后,打开文件下载的位置 首先对下载好的wheel文件进行改名,原名是: deep_forest-0.1.7-cp39-c…...

ping.pe ping 检测IP全球延迟

可以把结果保存为照片 https://ping.pe/全球ping ping ip端口检测 IP:PORT路由追踪 mtr IP 参考 ping.pe...

nodejs 16版本

Index of /download/release/latest-v16.x/...

NSSCTF做题(7)

[第五空间 2021]pklovecloud 反序列化 <?php include flag.php; class pkshow { function echo_name() { return "Pk very safe^.^"; } } class acp { protected $cinder; public $neutron; …...

【GIT版本控制】--高级分支策略

一、分支合并策略 在Git中&#xff0c;高级分支策略是为了有效地管理和整合分支而设计的。其中一个关键方面是分支合并策略&#xff0c;它定义了如何将一个分支的更改合并到另一个分支。以下是几种常见的分支合并策略&#xff1a; 合并提交策略&#xff08;Merge Commit Stra…...

【Qt控件之QDialog】使用及技巧

简介 QDialog是Qt中的一个类&#xff0c;继承自QWidget类&#xff0c;用于创建对话框窗口&#xff0c;可以显示模态&#xff08;阻塞当前窗口&#xff09;或非模态的对话框。对话框可以包含各种控件&#xff0c;如按钮、文本框等&#xff0c;用于与用户进行交互。 主要函数说…...

Transformer预测 | Python实现基于Transformer的股票价格预测(tensorflow)

文章目录 效果一览文章概述程序设计参考资料效果一览 文章概述 Transformer预测 | Python实现基于Transformer的股票价格预测(tensorflow) 程序设计 import numpy as np import matplotlib.pyplot...

spark sql如何行转列

在数据仓库中&#xff0c;行转列通常称为”变形”(Pivoting) 或 “透视”(Pivoting)&#xff0c;可使用Spark SQL的pivot语句实现。下面是一个简单的示例&#xff1a; 假设我们有如下表格&#xff1a; -------------------- | name | brand | year | -------------------- |…...

Prompt-Tuning(一)

一、预训练语言模型的发展过程 第一阶段的模型主要是基于自监督学习的训练目标&#xff0c;其中常见的目标包括掩码语言模型&#xff08;MLM&#xff09;和下一句预测&#xff08;NSP&#xff09;。这些模型采用了Transformer架构&#xff0c;并遵循了Pre-training和Fine-tuni…...

域信息收集

DMZ&#xff0c;是英文“demilitarized zone”的缩写&#xff0c;中文名称为“隔离区”&#xff0c;也称“非军事化区”。它是为了解决安装防火墙后外部网络的访问用户不能访问内部网络服务器的问题&#xff0c;而设立的一个非安全系统与安全系统之间的缓冲区。该缓冲区位于企业…...

MySQ 学习笔记

1.MySQL(老版)基础 开启MySQL服务: net start mysql mysql为安装时的名称 关闭MySQL服务: net stop mysql 注: 需管理员模式下运行Dos命令 . 打开服务窗口命令 services.msc 登录MySQL服务: mysql [-h localhost -P 3306] -u root -p****** Navicat常用快捷键 键动作CTRLG设…...

pdf文档内容提取pdfplumber、PyPDF2

测试pdfplumber识别效果好些&#xff1b;另外pdf这两个如果超过20多页就没法识别了&#xff0c;结果为空 1、pdfplumber 安装&#xff1a;pip install pdfplumber -i http://mirrors.aliyun.com/pypi/simple --trusted-host mirrors.aliyun.com代码&#xff1a; import pdfpl…...

运算符

目录 算术运算符 比较运算符 逻辑运算符 位运算符 运算符的优先级 MySQL从小白到总裁完整教程目录:https://blog.csdn.net/weixin_67859959/article/details/129334507?spm1001.2014.3001.5502 数据库中的表结构确立后&#xff0c;表中的数据代表的意义就已经确定。而…...

利用freesurfer6进行海马分割的环境配置和步骤,以及获取海马体积

利用freesurfer6进行海马分割的环境配置和步骤 Matlab Runtime 安装1. 运行recon-all:2. 利用 recon-all -s subj -hippocampal-subfields-T1 进行海马分割3. 结束后需要在/$SUBJECTS_DIR/subject/的文件夹/mri路径下输入下面的代码查看分割情况4. 在文件SUBJECTS_DIR路径下输…...

haproxy使用

haproxy使用 安装使用yum安装 配置文件global 全局配置Proxies配置Proxies配置-defaultsProxies配置-listen 简化配置 安装 社区版官网链接&#xff1a;http://www.haproxy.org CentOS 7 的默认的base仓库中包含haproxy的安装包文件&#xff0c;但是版本比较旧&#xff0c;是1…...

轻松实现时间录入自由!如何在Microsoft Word中轻松插入格式化的日期和时间

在文档中插入当前日期和时间有几个原因。你可能希望将其插入信函或页眉或页脚中。无论是什么原因&#xff0c;Word都可以轻松地将日期和时间插入文档。 如果希望在打开或打印文档时自动更新日期和时间&#xff0c;可以将其作为自动更新的字段插入。该字段也可以随时手动更新。…...

【排序算法】选择排序

文章目录 一&#xff1a;基本介绍1.1 概念1.2 算法思想1.3 思路分析图1.4 思路分析1.5 总结1.5.1 选择排序一共有数组大小-1轮排序1.5.2 每一轮排序&#xff0c;又是一个循环&#xff0c;循环的规则如下&#xff08;在代码中实现&#xff09;&#xff1a; 二&#xff1a;代码实…...

Netty深入浅出(无处不在的IO)

为什么要有Netty Netty是为了解决网络编程的复杂性和提供易于使用、高性能和可扩展的框架而开发的。它通过提供一组可重用的组件来处理网络通信的低级细节&#xff0c;例如套接字管理、线程和缓冲&#xff0c;简化了开发网络应用程序的过程。这使开发人员可以专注于应用程序逻…...

华为C语言编程规范(2W字总结)

1、代码总体原则 1、清晰第一 清晰性是易于维护、易于重构的程序必需具备的特征。代码首先是给人读的&#xff0c;好的代码应当可以像文章一样发声朗诵出来。 目前软件维护期成本占整个生命周期成本的40%~90%。根据业界经验&#xff0c;维护期变更代码的成本&#xff0c;小型…...