原文连接数据库
天天都有愈来愈多的企业迁移到云上,云原生应用的开发需求急速增长。云原生应用可以提供传统应用所没有的优点,包括自动资源配置,自动伸缩,高可用性。这些应用能够为企业和开发者提供绝对竞争优点。安全
在这篇文章中,你将了解到在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为结构化的,半结构化的以及关系型的数据提供了按需付费的数据库服务。数据库服务包含内建的安全与性能调优功能,还包括自动的数据备份。
数据库的选择包括:
还可使用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。
自动伸缩可以动态分配资源,仅使用你须要的资源。这能让运行应用的开销最小化。要得到最好的性能和成本效益,请将你的应用设计成能够水平伸缩的。应用一般不须要更强大的处理器,只是须要一种分配负载的方式。
开发应用时,不要将你的代码与具体的实例绑定。不然会限制可用性与扩展性。若是在某个时刻你须要一个更大的流量值,你能够建一个计划任务来自动实现,这个任务在你须要流量增加时启动更多实例。
因为使用了独立的服务,云原生应用会比传统应用更加安全。但这并不意味着默认就是安全的。渗透测试很重要。要确保记录你的应用程序的活动并监控流量。这些数据能够帮助你识别威胁。
若是你须要排查问题,记住在完成之后将远程调试关闭。远程调试可能会被利用来修改你的应用程序代码。使用HTTPS,HTTPS能够确保传输安全。
微软有许多资源能够帮助开发云原生应用,包括Azure最佳实践。
微软为Azure和微软的其余产品提供实践实验室,视频课程和虚拟课程,开发者内容包括建立发布应用,建立自动化工做流,Python机器学习。能够经过这个平台得到微软认证。
Azure DevOps Labs也是一个选择,含有许多微课程。DevOps Labs致力于帮你学习如何使用Azure以及如何选择第三方服务。包含如何在PHP中创建CI/CD管道,以及在VS Code中推送请求等。