在 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触控笔推荐
苹果原装的电容笔与国产的平替电容笔最大的区别在于,平替电容笔只有一个斜面压力感应,而苹果电容笔既有斜面压力感应,又有重力压力感应。但是,如果你不经常使用它来进行绘画的话,你也不必买选择这款苹果电容笔…...
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中,高级分支策略是为了有效地管理和整合分支而设计的。其中一个关键方面是分支合并策略,它定义了如何将一个分支的更改合并到另一个分支。以下是几种常见的分支合并策略: 合并提交策略(Merge Commit Stra…...
【Qt控件之QDialog】使用及技巧
简介 QDialog是Qt中的一个类,继承自QWidget类,用于创建对话框窗口,可以显示模态(阻塞当前窗口)或非模态的对话框。对话框可以包含各种控件,如按钮、文本框等,用于与用户进行交互。 主要函数说…...
Transformer预测 | Python实现基于Transformer的股票价格预测(tensorflow)
文章目录 效果一览文章概述程序设计参考资料效果一览 文章概述 Transformer预测 | Python实现基于Transformer的股票价格预测(tensorflow) 程序设计 import numpy as np import matplotlib.pyplot...
spark sql如何行转列
在数据仓库中,行转列通常称为”变形”(Pivoting) 或 “透视”(Pivoting),可使用Spark SQL的pivot语句实现。下面是一个简单的示例: 假设我们有如下表格: -------------------- | name | brand | year | -------------------- |…...
Prompt-Tuning(一)
一、预训练语言模型的发展过程 第一阶段的模型主要是基于自监督学习的训练目标,其中常见的目标包括掩码语言模型(MLM)和下一句预测(NSP)。这些模型采用了Transformer架构,并遵循了Pre-training和Fine-tuni…...
谷歌浏览器插件
项目中有时候会用到插件 sync-cookie-extension1.0.0:开发环境同步测试 cookie 至 localhost,便于本地请求服务携带 cookie 参考地址:https://juejin.cn/post/7139354571712757767 里面有源码下载下来,加在到扩展即可使用FeHelp…...
在HarmonyOS ArkTS ArkUI-X 5.0及以上版本中,手势开发全攻略:
在 HarmonyOS 应用开发中,手势交互是连接用户与设备的核心纽带。ArkTS 框架提供了丰富的手势处理能力,既支持点击、长按、拖拽等基础单一手势的精细控制,也能通过多种绑定策略解决父子组件的手势竞争问题。本文将结合官方开发文档,…...
第25节 Node.js 断言测试
Node.js的assert模块主要用于编写程序的单元测试时使用,通过断言可以提早发现和排查出错误。 稳定性: 5 - 锁定 这个模块可用于应用的单元测试,通过 require(assert) 可以使用这个模块。 assert.fail(actual, expected, message, operator) 使用参数…...
Keil 中设置 STM32 Flash 和 RAM 地址详解
文章目录 Keil 中设置 STM32 Flash 和 RAM 地址详解一、Flash 和 RAM 配置界面(Target 选项卡)1. IROM1(用于配置 Flash)2. IRAM1(用于配置 RAM)二、链接器设置界面(Linker 选项卡)1. 勾选“Use Memory Layout from Target Dialog”2. 查看链接器参数(如果没有勾选上面…...
DBAPI如何优雅的获取单条数据
API如何优雅的获取单条数据 案例一 对于查询类API,查询的是单条数据,比如根据主键ID查询用户信息,sql如下: select id, name, age from user where id #{id}API默认返回的数据格式是多条的,如下: {&qu…...
【Nginx】使用 Nginx+Lua 实现基于 IP 的访问频率限制
使用 NginxLua 实现基于 IP 的访问频率限制 在高并发场景下,限制某个 IP 的访问频率是非常重要的,可以有效防止恶意攻击或错误配置导致的服务宕机。以下是一个详细的实现方案,使用 Nginx 和 Lua 脚本结合 Redis 来实现基于 IP 的访问频率限制…...
基于Springboot+Vue的办公管理系统
角色: 管理员、员工 技术: 后端: SpringBoot, Vue2, MySQL, Mybatis-Plus 前端: Vue2, Element-UI, Axios, Echarts, Vue-Router 核心功能: 该办公管理系统是一个综合性的企业内部管理平台,旨在提升企业运营效率和员工管理水…...
淘宝扭蛋机小程序系统开发:打造互动性强的购物平台
淘宝扭蛋机小程序系统的开发,旨在打造一个互动性强的购物平台,让用户在购物的同时,能够享受到更多的乐趣和惊喜。 淘宝扭蛋机小程序系统拥有丰富的互动功能。用户可以通过虚拟摇杆操作扭蛋机,实现旋转、抽拉等动作,增…...
uniapp 集成腾讯云 IM 富媒体消息(地理位置/文件)
UniApp 集成腾讯云 IM 富媒体消息全攻略(地理位置/文件) 一、功能实现原理 腾讯云 IM 通过 消息扩展机制 支持富媒体类型,核心实现方式: 标准消息类型:直接使用 SDK 内置类型(文件、图片等)自…...
【HarmonyOS 5】鸿蒙中Stage模型与FA模型详解
一、前言 在HarmonyOS 5的应用开发模型中,featureAbility是旧版FA模型(Feature Ability)的用法,Stage模型已采用全新的应用架构,推荐使用组件化的上下文获取方式,而非依赖featureAbility。 FA大概是API7之…...
