【译】在Azure上开发云原生应用——工具与技巧

原文连接数据库

天天都有愈来愈多的企业迁移到云上,云原生应用的开发需求急速增长。云原生应用可以提供传统应用所没有的优点,包括自动资源配置,自动伸缩,高可用性。这些应用能够为企业和开发者提供绝对竞争优点。安全

在这篇文章中,你将了解到在Azure上开发云原生应用的一些资源以及技巧。服务器

在Azure上开发云原生应用的工具

Azure包含了一系列内建的工具与服务,完整的列表请查看微软的Azure开发指南架构

开发

Azure有两个开发和生成云原生应用的工具:Visual Studio以及Azure App Service。app

VS是一个集成开发环境,能够针对云或内部集群,开发,调试,部署并监管程序。框架

能够选择免费社区版本或两个付费版本——专业版和企业版。VS是平台无关的,能够直接与Azure服务集成,容许你直接部署到Azure。机器学习

Azure App Service是一个订阅式的平台即服务(PaaS)容许为Web及手机生成应用。它提供了对云架构的彻底控制,能够在容器或直接以代码形式部署应用。ide

App Service包含了一些预生成的应用,能够做为建立应用的基础。支持流行的框架和语言,包括.NET,Java,Python,PHP,Node.js以及Ruby。工具

存储

有多种存储选项能够选择,能够从任意标准的存储服务中存取数据,包括磁盘,文件,消息队列,表以及二进制对象。也能够将你的应用链接到数据库服务。性能

Azure为结构化的,半结构化的以及关系型的数据提供了按需付费的数据库服务。数据库服务包含内建的安全与性能调优功能,还包括自动的数据备份。

数据库的选择包括:

  • CosmosDB——针对非结构化或半结构化的数据,低延迟,高可用性与可伸缩性。
  • MariaDB——针对关系型数据。高可用性,弹性伸缩,适用于手机及Web应用。
  • PostgreSQL——针对关系型数据。可伸缩,支持地理位置和丰富的索引。
  • MySQL——针对关系型数据库。高可用性,弹性伸缩,适用于手机及Web应用。

还可使用SAP HANA。SPA HANA是面向列的,关系型数据管理系统。

可使用SAP作一些分析,包括预测分析,空间数据处理,文本搜索,图数据处理,以及流分析。也能够将SAP做为应用服务器建立并运行应用程序。

部署

在Azure上部署原生应用既能够是容器形式也能够是无服务器的形式。可使用Azure Kubernetes Service (AKS)或 Azure Container Instances (ACI)运行并管理容器化应用。使用Azure Functions运行无服务器应用。

AKS是免费的,利用Kubernetes部署并管理容器。这个服务运行在虚拟机上,由你负责配置,管理,固然还有续费。它含有一个集成的持续集成/持续交付(CI/CD)管道。VS Code中也能够集成AKS。

ACI是一个托管容器的服务。不须要开通虚拟机就能运行你的容器。服务的收费模式基于你的容器运行了多久,以及你使用了什么计算资源。ACI一般用于弹性地管理来自AKS的浏览,运行事件驱动的应用,或数据处理工做。

Azure Functions用于无服务器的形式,你的程序基于HTTP请求,Azure服务事件或预约义好的计划运行。在Functions中,你的程序经过API与Azure和第三方服务通讯。Functions支持.NET,JavaScript和Java。

在Azure中开发的技巧

使用自动伸缩

自动伸缩可以动态分配资源,仅使用你须要的资源。这能让运行应用的开销最小化。要得到最好的性能和成本效益,请将你的应用设计成能够水平伸缩的。应用一般不须要更强大的处理器,只是须要一种分配负载的方式。

开发应用时,不要将你的代码与具体的实例绑定。不然会限制可用性与扩展性。若是在某个时刻你须要一个更大的流量值,你能够建一个计划任务来自动实现,这个任务在你须要流量增加时启动更多实例。

关注安全

因为使用了独立的服务,云原生应用会比传统应用更加安全。但这并不意味着默认就是安全的。渗透测试很重要。要确保记录你的应用程序的活动并监控流量。这些数据能够帮助你识别威胁。

若是你须要排查问题,记住在完成之后将远程调试关闭。远程调试可能会被利用来修改你的应用程序代码。使用HTTPS,HTTPS能够确保传输安全。

利用Azure资源

微软有许多资源能够帮助开发云原生应用,包括Azure最佳实践

微软为Azure和微软的其余产品提供实践实验室,视频课程和虚拟课程,开发者内容包括建立发布应用,建立自动化工做流,Python机器学习。能够经过这个平台得到微软认证。

Azure DevOps Labs也是一个选择,含有许多微课程。DevOps Labs致力于帮你学习如何使用Azure以及如何选择第三方服务。包含如何在PHP中创建CI/CD管道,以及在VS Code中推送请求等。

相关文章
相关标签/搜索