精华内容
下载资源
问答
  • 云原生应用开发框架Quarkus介绍 1. 概述 Quarkus 是一个为 Java 虚拟机(JVM)和原生编译而设计的全堆栈Kubernetes云原生Java框架,用于专门针对容器优化的Java开发框架,并使其成为 serverless、cloud和Kubernetes...

    云原生应用开发框架Quarkus介绍

    1. 概述

    Quarkus 是一个为 Java 虚拟机(JVM)和原生编译而设计的全堆栈Kubernetes云原生Java框架,用于专门针对容器优化的Java开发框架,并使其成为 serverless、cloud和Kubernetes环境下的高效开发平台

    Quarkus 可与常用Java标准、框架和库协同工作,例如:Eclipse MicroProfile、Spring、Apache Kafka、RESTEasy (JAX-RS)、Hibernate ORM (JPA)、Infinispan、Camel 等

    Quarkus 的使用CDI作为依赖注入解决方案,且包含一个Quarkus扩展框架来扩展功能并将其配置、引导并集成到您的应用中。添加扩展程序就像添加依赖项一样容易;或者您可以使用 Quarkus 工具。

    此外, Quarkus还支持GraalVM AOT编译 ;传统的Java编译模式采用JIT(Just in time,即时编译,边运行边编译)而AOT(Ahead Of Time,运行前编译)可以把Java应用进行原生编译极大的提高应用性能,并允许直接在目标机器上直接运行。

    2. Quarkus 特性

    2.1 专为开发人员而设计

    Quarkus 的设计从一开始就立足于简单易用,其功能几乎不需要配置即可正常使用。

    开发人员可以为其应用选择所需的 Java 框架,而这些应用可以在 JVM 模式下运行,也可以在原生模式下进行编译和运行

    为了方便开发人员的工作,Quarkus 还包含以下功能:

    - 实时编码,旨在让开发人员能够即时检查代码更改的影响并快速进行故障排除
    - 带有嵌入式托管事件总线的统一命令式和响应式编程
    - 统一配置
    - 简单的原生可执行文件生成
    

    2.2 容器优先

    无论是将应用托管在公共云上还是内部托管的 Kubernetes 集群中,快速启动和低内存消耗等特性对于降低总体主机成本来说都至关重要。

    Quarkus 的开发遵从了容器优先的原则,这意味着它已通过以下方式针对降低内存使用和加快启动时间进行了优化:

    - 完全支持 Graal/SubstrateVM
    - 构建时元数据处理
    - 减少反射的使用
    - 本机映像预启动
    

    因此,Quarkus 构建的应用其内存消耗只有传统 Java 的 1/10,而且启动时间更快(快了 300 倍),这些都大大降低了云资源的成本。


    2.3 命令式和响应式编码

    在设计上,Quarkus 能够在开发应用时无缝地结合熟悉的命令式代码和非阻塞、响应式样式。

    这对于习惯使用命令式模型而不想切换风格的 Java 开发人员以及使用云原生/响应式方法的开发人员都非常有用。

    Quarkus 开发模型可以适应您正在开发的任何应用。

    对于在新的无服务器架构、微服务、容器、Kubernetes、功能即服务(FaaS)和云环境中运行 Java 而言,Quarkus 堪称是一个有效的解决方案,因为在创建它时就充分考虑了所有这些因素。


    2.4 提供优异系统性能和研发效率

    Quarkus是一个开源的kubernets-native Java框架,允许开发人员优化容器中的云原生应用程序以获得最佳性能。Quarkus提供:

    • 快速启动时间
    • 低内存消耗
    • 降低整体主机成本
    • 改进了Java应用程序的性能
    • 提高开发人员的生产率

    3. 云原生开发选择Quarkus的4大理由

    Quarkus是一个开源的、kubernets原生的Java框架,专为GraalVM和OpenJDK量身定制。它提供了一个完整的全栈框架,使用业界知名的Java类库和标准。有了Quarkus, Java可以成为Kubernetes和无服务器环境的领先平台,同时为开发人员提供统一的响应式和命命令式编程模型,以解决更广泛的分布式应用架构挑战。红帽公司是Quarkus项目的发起人,也是Quarkus社区的主要贡献者。
    下面详细说明使用Quarkus作为编程工具的四个原因。


    3.1 应用在云,容器,serverless 环境中部署

    低内存消耗和快速的首次响应时间使Quarkus成为云、容器和无服务器环境的理想选择。使用Quarkus,您可以:

    • 使用GraalVM和HotSpot的编译时引导方法定制您的应用程序。
    • 首次启动毫秒级别的响应速度
    • 减少驻留集大小(RSS)内存,与传统云应用相比所需内存只有前者的十分之一
    • 在Kubernetes等容器编排平台上获得几乎即时的扩展性和高密度内存利用率
    • 实现更高的工作负载密度,降低硬件和云计算和内存的总体成本

    3.2 提高生产力

    Quarkus内置了很多自动化功能,允许开发人员更快地完成他们的工作。Quarkus功能特点:

    • 统一配置
    • 零配置和实时加载
    • 简化80%的通用代码和配置
    • 简化Java代码编译为机器语言的命令
    • 兼容流行的框架,如Eclipse MicroProfile, Spring Dependency Injection (DI), Hibernate等,允许开发者使用和集成其它开源框架和JAVA标准

    3.3 支持多种开发模式

    Quarkus无缝地将命令式模型和反应式模型结合在一起,因此开发人员可以使用最适合他们的技术来开发应用。Quarkus支持如下几种开发模式:

    • 反应式开发模式
    • 命令开发模式
    • 或者在同一个框架中使用两种模式

    3.4 Java 优化

    Quarkus对Java进行了优化,并通过内存消耗优化和快速的首次响应时间使其对容器、云和无服务器环境提供优异性能。

    • 对Java开发人员来说,学习曲线很低
    • 使Java可与本机编译、获得高级编程语言
    • 集成很多成熟框架——从数据库访问到集成和业务自动化
    • 支持微服务架构和开发

    4. 容器优先策略

    从一开始Quarkus就围绕容器第一的理念设计。这意味着Quarkus通过以下方式优化了低内存使用和快速启动时间:

    4.1 优先支持Graal/SubstrateVM

    Substrate技术从一开始就是Quarkus设计的重要组成部分。当应用程序被编译为本机映像时,它启动得更快,并且可以在比标准JVM小得多的堆中运行。Quarkus都是在Substrate中测试的,可以在没有-H:+ReportUnsupportedElementsAtRuntime标志的情况下运行。

    4.2 构建时元数据处理

    让尽可能多的处理在构建时完成,因此你的应用程序将只包含运行时实际需要的类。在传统模型中,执行初始应用程序部署所需的所有类在应用程序的整个生命周期中都存在,即使它们只使用一次。使用Quarkus时,它们甚至不会加载到生产JVM中。这导致内存使用更少,而且启动时间更快,因为所有元数据处理都已经完成。

    4.3 减少反射的使用

    Quarkus尽可能地避免反射,减少启动时间和内存使用。

    4.4 本机镜像预启动

    在本地映像中运行时,Quarkus会在本地映像构建过程中预启动尽可能多的框架。这意味着生成的本机映像已经运行了大部分启动代码,并将结果序列化到可执行文件中,从而导致启动速度更快

    5. 结论

    本文中,介绍了Quarkus的特性,以及它如何使我们的JAVA应用减少内存占用和毫秒级的首次启动时间的原理;Quarkus作为云,无服务器,K8s云原生开发框架值得我们研究尝试

    展开全文
  • 点击下载《Knative 云原生应用开发指南》 自 2018 年 Knative 项目开源后,就得到了广大开发者的密切关注。Knative 在 Kubernetes 之上提供了一套完整的应用 Serverless 编排服务,让应用开发者可以不用为底层的基础...

    点击下载《Knative 云原生应用开发指南》

    自 2018 年 Knative 项目开源后,就得到了广大开发者的密切关注。Knative 在 Kubernetes 之上提供了一套完整的应用 Serverless 编排服务,让应用开发者可以不用为底层的基础设施分心,把更多的精力投入到业务逻辑上。
    Knative 的一个很重要的目标就是制定云原生、跨平台的 Serverless 编排标准。它的优势在于:

    • 基于 Kubernetes 实现 Serverless 编排;
    • 基于 Istio 实现服务的接入、服务路由的管理以及灰度发布等功能。

    今年 5 月份,我们推出了 Knative 系列文章,由阿里云容器平台技术专家牛秋霖(冬岛)及阿里云容器平台高级开发工程师李鹏(元毅)结合自身的实践经验,由浅入深的介绍了 Knative 的使用、剖析其内部实现。

    为了进一步方便大家理解 Knative,我们整理了系列文章中的 25 篇重点内容编排成书《Knative 云原生应用开发指南》,并开放分享给大家,希望能够帮助更多技术爱好者快速掌握 Knative 的应用 Serverless 编排技能,揭开 Knative 的神秘面纱。

    为什么你要读这本书?

    对于开发者而言,本书可以让你快速掌握 Knative 的应用 Serverless 编排技能;对于管理者或决策者而言,可以通过本书的介绍和案例深入了解企业为什么需要应用的 Serverless 编排;如何对普通应用进行 Serverless 编排;应用编排和 IaaS 无服务器计算的关系以及为什么会是 Knative 等问题。

    本书主要分为入门、进阶和实战三个部分。

    • 入门篇可以帮助你快速掌握 Knative 的核心理念和关键设计,让你对应用的云原生编排应该具备什么能力有一个清晰的认识;
    • 进阶篇会对 Knative 各大核心模块的高级功能进行更深入的介绍,剖析 Knative 是如何构建在 Kubernetes 之上的;
    • 实战篇给出了很多基于 Knative 的云原生实战,让你对 Knative 的使用有一个更直观的体感。


    《Knative 云原生应用开发指南》目录 点击可查看大图

    在 All in Cloud 的时代,对云的驾驭能力已经成为企业的核心竞争力,云正在重塑企业 IT 架构。每个企业都在思考如何最大化利用“云”的能力,最大化发挥“云”的价值。而企业上云的过程中是要直接面对众多的云厂商和各种繁杂的云产品,比如最基本的 IaaS 资源,同样是 VM 在不同的云厂商就有不同的特性、不同的 OpenAPI 和不同的创建与销毁方式。

    这给企业上云带来了巨大的复杂度,大大打击了企业上云的积极性。所以对于上云的企业和提供云服务的厂商而言都在摸索寻找一个折中的平衡点,既能帮助企业上云,又能帮助云厂商释放云的能力。

    云原生理念的形成与完善

    云原生理念是在以上过程中逐渐形成和完善的。这套理念是协调所有参与方对服务上云逐渐形成的统一标准,它可以很好地帮助企业上云、帮助云厂商释放云的能力。云原生旨在以更标准化的方式衔接云厂商和上云企业:

    • 这种方式对于企业而言降低了上云和跨云的成本,让企业始终保有和云厂商议价的能力;
    • 对于云厂商而言,因为企业跨云迁移的成本低,所以只要能提供性价比更高的云服务,就能很容易的聚集大量用户。

    云原生是在不断促进整个系统的良性循环:既能让企业始终保有选择的能力,又能让优秀的云厂商快速服务更多的客户。如果客户的业务服务能像水一样低成本在不同云厂商之间流动,那么云厂商提供的服务就能像货币一样在客户之间流通。这是一个多赢的局面。

    Kubernetes 已经成为分布式资源调度和资源编排的事实标准,它屏蔽了底层基础架构的差异,帮助应用轻松运行在不同的基础设施之中。

    目前云原生生态已经在 Kubernetes 之上构建了大量的上层服务支撑框架。比如:服务网格 Istio、 Kubeflow 、各种上层服务的 Operator 等等。我们可以看到构建在 Kubernetes 之上的云原生操作系统的雏形开始出现,这是开发者最好的时代,极大地提升了业务创新的速度。

    无服务器(Serverless)的出现

    随着 Kubernetes 的普及,开发者已经不需要关心基础设施,有了更多的精力放在业务的核心逻辑上,随之而来的就是无服务器计算的出现。

    无服务器首先是在 IaaS 层的变革,用户无需提前准备冗余的 IaaS 资源,只需要在使用的时候自动扩容不用的时候自动缩容。因为应用真正需要的是 IaaS 资源的按需分配按量计费,而不是长期保有 IaaS 资源。

    无服务器这个词是从 Serverless 翻译过来的,其实 Serverless 除了基础 IaaS 资源的按量分配以外还有一层就是对应用的 Serverless 编排。

    Knative 出现的必然性

    IaaS 资源可以按需分配只是一个开始,当 IaaS 完成了 Serverless 进化以后,应用层应该如何做呢?比如:一个普通应用需要具备什么能力才能按量使用 IaaS 资源呢?对应用进行 Serverless 编排是否能保证应用可以很容易的在不同的云厂商之间跨云迁移?

    Knative 就是应用 Serverless 编排的云原生解决方案。

    Knative 建立在 Kubernetes 和 Istio 之上,通过 Kubernetes 的跨云能力能够让企业应用原生具备跨云迁移的能力。在多云、混合云以及云边端互通的时代,基于 Knative 的应用 Serverless 云原生编排能力可以极大降低企业上云的成本。

    云原生时代,如何在云上玩转 Knative?

    《Knative 云原生应用开发指南》一书中共收录了 8 篇具体的 Knative 开发实践案例,给出了很多基于 Knative 的云原生实战,借此讲述了如何正确使用 Knative 中的 Build、Serving 以及 Eventing 三大组件来发挥其作用,逐渐精简我们的代码;直观地展示了如何使用 Knative 来一步步简单高效地开发云原生应用,让你对通过  Knative 来实践 Serverless 有一个更全面的体感。

    期待《Knative 云原生应用开发指南》能够帮助更多的开发者真正开启云原生时代的 Serverless 之门,轻松解决迎面难题,避免踩坑!

    点击下载《Knative 云原生应用开发指南》

    knative海报.png

     

    本文作者:阿里巴巴云原生小助手

    原文链接

    本文为阿里云内容,未经允许不得转载。

    展开全文
  • 如何依托Bluemix的PaaS服务,开发云原生应用,并深入的讲解cloudfoundry app生命周期,全面讲述stack和buildpack的内部构造。 欢迎注册Bluemix 体验开发在云端:...
    浅析云平台底层架构 进行云原生应用开发 系列课程—2892人已学习 
    课程介绍    
    201705221145086922.jpg
        如何依托Bluemix的PaaS服务,开发云原生应用,并深入的讲解cloudfoundry app生命周期,全面讲述stack和buildpack的内部构造。 欢迎注册Bluemix 体验开发在云端:https://developer.ibm.com/sso/bmregistration?lang=zh_CN&ca=dwchina-_-bluemix-_-CSDN-_- onlineeventQ22017
    课程收益
        (一)了解云平台底层架构,学习原生应用开发。 (二)深入浅出讲解 cloudfoundry app生命周期
    讲师介绍
        薛海涛更多讲师课程
        IBM攻程院院士。二十年软件行业工作经验,专注于云计算技术推广和应用。精通基于业界主流公有云、混合云的解决方案架构设计。参与过多家大型企业的云计算解决方案咨询,迁移实施和技术支持项目。目前就职于世纪互联集团上海蓝云网络科技有限公司,从事混合IT解决方案研发和推广工作。
    课程大纲
        1.如何依托Bluemix的PaaS服务,快速开发云原生应用。  15:02
        2.深入浅出cloudfoundry app  14:01
    大家可以点击【查看详情】查看我的课程
    展开全文
  • 云原生微服务应用平台 我们都听说过“云原生”数据库,安全性,治理,存储,人工智能以及云提供商可以提供的几乎所有其他功能。 这是我对云本机应用程序的定义:利用托管它们的公共云的本机系统的应用程序。 一般...

    云原生微服务应用平台

    我们都听说过“云原生”数据库,安全性,治理,存储,人工智能以及云提供商可以提供的几乎所有其他功能。 这是我对云本机应用程序的定义:利用托管它们的公共云的本机系统的应用程序。

    一般建议是:“云原生:好。 非本机升降:很糟糕。”

    [发现用于软件开发,云计算,数据分析和机器学习的最佳开源软件: InfoWorld的2019年Bossie Award获奖者 | 通过InfoWorld的云计算新闻通讯了解云计算的最新发展。 ]

    这是有道理的。 通过使用本机服务,我们可以利用核心系统,其中包括使用本机目录服务的本机安全性,本机置备系统以及本机管理和监视。 在公共云上使用非本机应用程序类似于在碎石路上驾驶超级跑车。

    现在,我们将本机服务的概念带入新平台,包括容器编排(即Kubernetes)。 Kubernetes有一个由“本机”专用系统组成的大型生态系统,其中包括数据库,存储,安全性,治理,devops工具等。 这里有两种思想流派:

    首先,原生是好的。 这些工具可能会提供更好的性能。 Kubernetes本地存储系统每分钟可以扩展到数千个节点和数千个并行操作。 这是因为它是内部人员,使用本地接口与本地Kubernetes应用程序一起工作。

    当您需要使用非本机系统与外界联系来满足数据库,存储或安全性等需求时,仅通信转换会带来大量的延迟。 对于这种思维方式,Kubernetes本机总是更好,并且通常是首选。

    第二种思想是,我们可能会全盘以赴,从而增加过多的复杂性。 尽管有优势,但迁移到Kubernetes原生系统意味着至少拥有所有两种功能。 迁移到Kubernetes驱动的基于容器的应用程序的企业正在寻找一种通用的数据库系统,该系统跨越Kubernetes内部和外部的应用程序。 与安全性,原始存储和其他云原生的系统相同,但不是Kubernetes。

    正确的路径是什么? 多年来,我吸取的教训之一是,最好的,适合用途的技术通常是正确的选择。 这意味着一切都是原生的,而一切都是原生的,但是您仍然需要明智地选择可以长期运行的解决方案,无论是否使用本机。

    会有更多的复杂性吗? 当然,但是考虑到向多云和基于IoT的应用程序的迁移,这实际上是您的后顾之忧。 无论您是否使用本地Kubernetes解决方案,事情都会变得复杂。 我们也可能擅长于复杂性,并在第一时间就将事情做好。

    翻译自: https://www.infoworld.com/article/3449226/going-cloud-native-all-in-or-not.html

    云原生微服务应用平台

    展开全文
  • 云原生技术应用产生了新的云安全需求,CISO 要在竞争激烈的云原生市场中确保业务安全。传统的防火墙、反病毒、服务器监控、终端检测响应和SIEM等安全产品,与云原生的适配性较好,容易部署上云。但工作负载安全、...
  • Cloud Foundry是业界比较“资深”的PAAS云平台,它不仅支持多种框架、运行时环境,还支持在多种环境进行部署,包括:AWS, Azure, GCP, OpenStack等。本文分享,基于阿里进行开发、运维的实战经验。 部署Cloud ...
  • 原文转自InfoQ云原生应用的基本概念云原生应用,是指原生为在云平台上部署运行而设计开发的应用。公平的说,大多数传统的应用,不做任何改动,都是可以在云平台运行起来的,只要云平台支持这个传统应用所运行的...
  • 云原生与云原生应用概念解析

    千次阅读 2018-09-25 17:10:35
    什么是云原生云原生(Cloud Native)是由 Pivotal 的Matt Stine在2013年提出的一个概念,...云原生是面向“云”而设计的应用,因此技术部分依赖于在传统云计算的3层概念(基础设施即服务(IaaS)、平台即服务(Pa...
  • 今天跟大家分享的是阿里内部资料,帮助大家开启云原生时代Serverless之门,文末下拉获取网盘链接 一、快速入门 1.初识 Knative: 跨平台的 Serverless 编排框架 2.在阿里云上一键安装 Knative 3.手动安装 Knative ...
  • VMware的云原生应用技术揭秘

    千人学习 2016-07-25 13:44:52
    本次分享将主要介绍VMware全面开放的云原生应用平台,在演讲中将分别从开发栈、生产栈和DevOps等方面做具体的介绍,揭密相关的技术细节,包括Harbor企业级容器镜像Registry、企业级容器运行平台vSphere Integrated ...
  • Rainbond是一个云原生且易于使用的应用程序管理平台,是交付云原生应用程序的最佳实践,并且易于使用。 专注于以应用程序为中心的概念。 使企业能够构建云原生开发云,云原生交付云。 对于企业: Rainbond是可以...
  • 云原生应用是企业实现转型的必经之路。使用LEO平台,将帮助企业快速从传统架构向互联网架构转型,加速创新业务市场布局。完整软件生命周期管理通过平台轻松帮您实现开发、测试、发布、升级,下架等应用相关操作。您...
  • 什么是云原生应用

    2020-08-07 11:05:48
    云原生应用越来越多,其是指原生为在云平台上部署运行而设计开发的应用。公平的说,大多数传统的应用,不做任何改动,都是可以在云平台运行起来的,只要云平台支持这个传统应用所运行的计算机架构和操作系统。只不过...
  • 云原生应用概念解析

    2020-03-26 00:35:07
    什么是云原生云原生(Cloud Native)是由 Pivotal 的Matt Stine在2013年提出的一个概念,是他...云原生是面向“云”而设计的应用,因此技术部分依赖于在传统云计算的3层概念(基础设施即服务(IaaS)、平台即服务...
  • 微软最有价值专家(MVP)/腾讯最有价值专家(TVP) 在技术领域拥有超过18年的经验 技术作者和演讲者 运营微信公众号dotnet跨平台 和移动开发和机器学习 ;Docker 容器 容器化的困境 K8s 协调器 Core 容器化实例 ;Docker...
  • 这不仅有助于增强我们的.NET社区,而且可以提高全球.NET开发人员的云原生应用程序开发技能。 非常感谢你 :thumbs_up: 查看我的或在招呼! 产品特点 简单的库。 没有框架。 一点抽象。 使用“技术选择启用和启用...
  • Gartner于2019年发布报告表示:云原生时代已经到,在未来三年中将有75%的全球化企业使用容器化的应用云原生到底解决什么问题?云原生具有诸多优势,如系统弹性带来用户体验提升、研发效能提升、低成本运维或免运维...
  • “云原生”是用于描述基于容器的环境的术语,而Kubernetes是一个运行云原生应用程序工作负载的理想平台开发人员在设计云原生应用程序时,一定要牢记本文内这10个关键属性! “云原生(Cloud Native)”是用于...
  • 写在前面随着Go在中国越来越多的应用场景,我们中国的Gopher开发的开源项目也越来越多,目前在github上面有大量的Go写的开源项目,但是很多时候一个好的项目让别人获知,同时让大家了...
  • OAM是构建云原生应用程序的规范 专注于分离开发和运营需求,Open Application Model将模块化, 可扩展和可移植的设计引入到Kubernetes等平台上,以构建和交付应用程序。 rudr是开放应用模型规范(oam)的Kubernetes...
  • Kubernetes平台的设计开发者以及Kubernetes社区的技术人员,在不断推进Kubernetes作为容器管理平台的快速发展的同时,也在探索如何帮助应用的设计开发者更好地运用容器技术进行云原生应用开发云原生应用本身必然...
  • WeCenter 是一款知识型的社交化...WeCenter 含有多项创新功能,遵循 MVC 架构,充分利用当下最新技术,对于开发者来说都会大有帮助,二次开发,更强定制,更易上手;WeCenter 让你用你喜欢的方式,更灵活地定制 UR...

空空如也

空空如也

1 2 3 4 5 ... 20
收藏数 683
精华内容 273
关键字:

云原生应用开发平台