在 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 中处理拉取请求。

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处:http://www.mzph.cn/news/99207.shtml

如若内容造成侵权/违法违规/事实不符,请联系多彩编程网进行投诉反馈email:809451989@qq.com,一经查实,立即删除!

相关文章

【Bond随你温故Azure Architecture】之HADR篇

上次复盘数据保护策略还是在《数据需要找回怎么办?我们如何选择正确的恢复/退回方式?》探讨了在application&DB层面上,不同level的数据保护有不同策略。而它也恰好是今天HA&DR版图的一角(RDBMS部分)&#xff0…

CI/CD工具中的CI和CD的含义

CI/CD工具中的CI和CD的含义? CI/CD 是现代软件开发方法中广泛使用的一种方法。其中,CI 代表持续集成(Continuous Integration),CD 则有两层含义,一是持续交付(Continuous Delivery)…

.net framework中webapi使用swagger进行接口文档展示

第一步:在nuget程序包管理中搜索“Swashbuckle”包,然后进行安装(注:如果是.net core api请安装Sawshbuckle aspnetcore)。 第二步:打开项目App_Start文件夹,修改SwaggerConfig.cs配置文件 我这…

mp4视频太大怎么压缩变小?

mp4视频太大怎么压缩变小?确实,很多培训和教学都转向了线上模式,这使得我们需要下载或分享大量的在线教学视频。然而,由于MP4视频文件通常较大,可能会遇到无法打开或发送的问题。为了解决这个问题,我们可以…

[C++ 网络协议] IOCP(Input Output Completion Port)

1.什么是IOCP IOCP(Input Output Completion Port)输入输出完成端口。其实就是基于重叠I/O的一种改进的模型。 重叠I/O具有缺点:重复调用非阻塞模式的accpet函数和以进入alertablewait状态为目的的SleepEx函数会影响程序性能。 而IOCP提供…

聊聊分布式架构02——Http到Https

目录 HTTP通信协议 请求报文 响应报文 持久连接 状态管理 HTTPS通信协议 安全的HTTPS HTTP到HTTPS的演变 对称加密 非对称加密 混合加密机制 证书机构 SSL到底是什么 HTTPS是身披SSL外壳的HTTP HTTP通信协议 一次HTTP请求的通信流程:客户端浏览器通过…

环形缓冲RingBuffer和无锁

环形缓冲 环形缓冲区,也被称为循环缓冲区或者环形队列,是一种数据结构类型,它在内存中形成一个环形的存储空间。环形缓冲区的特点是其终点和起点是相连的,形成一个环状结构。这种数据结构在处理流数据和实现数据缓存等场景中具有…

【MySQL】内置函数——日期函数

函数名称描述current_date()当前日期current_time()当前时间current_timestamp()当前时间戳date(datetime)返回datetime的日期部分date_add(date,interval d_value_type)在date中添加日期或时间。interval后的数值可以是:year,day,minute&…

【Linux升级之路】7_进程信号

目录 一、【Linux初阶】信号入门 | 信号基本概念信号产生核心转储二、【Linux初阶】信号入门2 | 信号阻塞、捕捉、保存 一、【Linux初阶】信号入门 | 信号基本概念信号产生核心转储 链接: 【Linux初阶】信号入门 | 信号基本概念信号产生核心转储 二、【Linux初阶】…

java学习--day22(进程线程)

文章目录 1.什么是进程2.什么是线程3.线程和进程的区别【面试题】4.并发和并行5.创建线程的两种方式【重点】1.继承Thread2.实现Runnable接口 6.线程下面的几个方法7.线程的同步和锁【重要】 1.什么是进程 是独立的运行程序 ​ 比如咱们电脑软件,你启动起来以后&…

Ubuntu LabelMe AI 识别

1.创建虚拟环境 conda create -n labelme python3.9 2.激活虚拟环境 conda activate labelme 3.安装labelme pip install pyqt5 -i https://pypi.tuna.tsinghua.edu.cn/simple pip install pillow -i https://pypi.tuna.tsinghua.edu.cn/simple pip install labelme -i ht…

【数据结构-字符串 三】【字符串转换】字符串解码

废话不多说,喊一句号子鼓励自己:程序员永不失业,程序员走向架构!本篇Blog的主题是【字符串转换】,使用【字符串】这个基本的数据结构来实现,这个高频题的站点是:CodeTop,筛选条件为&…

RPC分布式网络通信框架项目

文章目录 对比单机聊天服务器、集群聊天服务器以及分布式聊天服务器RPC通信原理使用Protobuf做数据的序列化,相比较于json,有哪些优点?环境配置使用项目代码工程目录vscode远程开发Linux项目muduo网络库编程示例CMake构建项目集成编译环境Lin…

【计算机网络黑皮书】传输层

【事先声明】 这是对于中科大的计算机网络的网课的学习笔记,感谢郑烇老师的无偿分享 书籍是《计算机网络(自顶向下方法 第6版)》 需要的可以私信我,无偿分享,课程简介下也有 课程链接 目录 传输服务与协议网络层与传输…

Linux 指令心法(十)`head` 显示文本文件的开头部分

文章目录 命令的概述和用途命令的用法命令行选项和参数的详细说明命令的示例命令的注意事项或提示 命令的概述和用途 head 是一个用于显示文本文件的开头部分的命令。它在 Linux 和 Unix 系统中非常有用,因为它允许用户查看文件的前几行,以便快速预览文…

常见排序算法Java版(待续)

冒泡排序O(n^2) public class Main {public static void main(String[] args) {Random random new Random();int[] nums new int[]{random.nextInt(100), random.nextInt(100), random.nextInt(100), random.nextInt(100), random.nextInt(100), random.nextInt(100)};for (i…

英特尔参与 CentOS Stream 项目

导读红帽官方发布公告欢迎英特尔参与进 CentOS Stream 项目,并表示 “这一举措不仅进一步深化了我们长期的合作关系,也构建在英特尔已经在 Fedora 项目中积极贡献的基础之上。” 目前,CentOS Stream 共包括以下特别兴趣小组(SIG&a…

汽车冲压车间的RFID技术设计解决方案

一、RFID技术的基本原理 RFID技术是一种利用非接触式自动识别的技术,通过将RFID标签放置在被识别物品上,并使用RFID读写器对标签进行扫描和识别,实现对物品的自动识别和追踪。RFID标签分为被动式和主动式两种。被动式标签无内置电源&#xf…

23.3 Bootstrap 框架4

1. 轮播 1.1 轮播样式 在Bootstrap 5中, 创建轮播(Carousel)的相关类名及其介绍: * 1. carousel: 轮播容器的类名, 用于标识一个轮播组件. * 2. slide: 切换图片的过渡和动画效果. * 3. carousel-inner: 轮播项容器的类名, 用于包含轮播项(轮播图底下椭圆点, 轮播的过程可以显…

HTTP协议的请求协议和响应协议的组成,HTTP常见的状态信息

HTTP协议 什么是协议 协议实际上是某些人或组织提前制定好的一套规范,大家只要都按照这个规范来就可以做到沟通无障碍 HTTP协议是W3C(万维网联盟组织)制定的一种超文本传输通信协议(发送消息的模板和数据的格式),除了传送字符串,还有声音、视频、图片等流媒体等超文本信息 …