问题标签 [cloudcaptain]
For questions regarding programming in ECMAScript (JavaScript/JS) and its various dialects/implementations (excluding ActionScript). Note JavaScript is NOT the same as Java! Please include all relevant tags on your question; e.g., [node.js], [jquery], [json], [reactjs], [angular], [ember.js], [vue.js], [typescript], [svelte], etc.
cloudcaptain - How can I increase the healthcheck timeout when launching an instance with Boxfuse?
My instance fails to come up within 60 seconds. How can I increase the timeout?
The error I'm getting both locally and on AWS is:
ERROR: Time out: Payload of Instance vb-312f2f77 failed to come up within 60 seconds at http://127.0.0.1:8888/ !
cloudcaptain - 如何让 boxfuse 创建一个包含可执行 jar 和配置文件的图像,以在 main arg 中指定?
我正在玩boxfuse试图“融合”包含可执行 JAR 的图像。我的可执行 JAR 被赋予配置文件的路径作为它的主要方法的参数,如下所示:
java -jar my-executable.jar -conf /some/path/to/my/conf.json
文件conf.json
由 JAR 进程读入以配置例如端口、数据库连接属性等。
我了解如何使用 传递自定义参数-jvm.main.args="-conf /some/path/to/my/conf.json"
,但是,我不知道如何将配置文件放入图像本身。显然,路径必须指向图像中存在的有效文件。
在开发、测试和生产中,我想使用相同的可执行 JAR,但为每个环境使用不同的配置文件。我目前没有看到为每个环境提供不同图像的方法。我看到对使用 Dropwizard payloads打包特定配置有一些支持,但没有提到可执行 JAR 的类似内容。
有没有更通用的方法可以将任意文件打包到图像中,并且可以在jvm.main.args
?
PS 在我的情况下,可执行 JAR 恰好是Vert.x应用程序,但我认为一般情况适用。
cloudcaptain - boxfuse 的示例“hello”应用程序不起作用
创建帐户,尝试运行示例“hello”应用程序。
$ boxfuse 运行 hello-1.0.war
Boxfuse 客户端 v.1.8.6.659 版权所有 2015 Boxfuse GmbH。版权所有。
帐号:xxx (xxx)
正在下载 glibc 2.21 ... 正在下载 busybox 1.22.1.01 ... 正在
下载 openjdk 8.60.22 ... 正在
下载 libgcc 4.9.2 ...
正在下载 libpng 1.2.52 ... 正在
下载 zlib 1.2.8 ...正在
下载 freetype 2.6 。 ..正在
下载 ttf-bitstream-vera 1.10 ...正在
下载 cacerts 2014.11.17 ...
正在下载 tomcat 8.0.23 ... 正在
下载 linux 3.15.9 ...
为 hello-1.0.war 融合图像 ...
错误:两者http 和 https 端口被禁用。您必须至少指定一个才能使 Tomcat 工作。
cloudcaptain - “boxfuse scale”的文档?
试图弄清楚如何扩展使用 boxfuse 创建的应用程序。首先,我简单地运行应用程序:
然后我尝试对其进行缩放,如网页上的“slim”文档( https://cloudcaptain.sh/docs/commandline/scale.html )所示:
我得到一个:
我是 AWS 的新手,还没有在那里创建任何自动缩放组。我知道我可以这样做,但它迫使我首先创建一个启动配置,我需要在其中指定 AMI。在我看来,boxfuse 命令应该负责所有这些。我错过了什么吗?
附言。当我通过扩展到“2”个实例时,什么也没有发生。命令存在就好像它无关
cloudcaptain - 为 boxfuse 运送和部署工件
如果一家软件公司想开发一个软件,并为客户提供一个支持 boxfuse 的组件,以便他可以自己部署到 AWS,请问如何最好地做到这一点?
我想避免向客户发送 jar 文件并强迫他从该 jar 文件中构建。
cloudcaptain - 如何使用 boxfuse 在 AWS 上运行 scala 应用程序
Boxfuse 声称自己是在 JVM 上运行的所有东西的包装器。在文档中找不到如何包装 Scala 应用程序。
scala - 用于在云中托管 Java PLAY 应用程序的服务器架构
这是一组问题,而不是一个非常具体的问题。在过去的几周/几天里,我将有关如何正确托管“在云中”的 JAVA PLAY 应用程序的信息拼凑在一起,因为很多这些信息分散在不同的服务中,我想把所有这些小块收集起来,因为很多事情在完整的背景下很重要。但是,我将我的考虑移到了问题的底部,因为它们主要是我的意见和主观发现,我不想为此负责。如果我有什么问题,请不要犹豫,指出这一点。
在 AWS 上托管 Java PLAY + MySQL 以实现全球可访问性
我们的场景:我们有一个在 Java PLAY 框架 ( https://www.playframework.com/ ) 中编写的非常简单的应用程序,在 iOS 和 Android 以及后端系统(用于管理、内容管理和 API)上工作),将数据存储在 MySQL 数据库中。虽然大多数用户与服务器的交互都是快速和简单的(登录、同步一些数据),但还有一些数据密集型任务(下载一些 <100mb 的数据压缩包到手机,上传几个 mb 到服务器)。因此,我们正在寻找一种解决方案,为远离我们服务器的用户提供合理的响应时间。显而易见的下一步是在云中托管。
水平扩展:一开始,我们的应用程序中只有 1 个 EC2 实例将在 eu-1a 中运行。我们将需要评估一个实例实际需要多少资源,是否需要更多实例,以及是否更多实例实际上会受益于更快的响应时间。
跨区域水平扩展:一旦应用程序从另一个区域产生大量用户负载,整个 EC2 实例应该被复制并放到另一个区域,运行数据库只读副本(请参阅在亚马逊网络服务和https上设置全球可用的网络应用程序: //aws.amazon.com/de/blogs/aws/cross-region-read-replicas-for-amazon-rds-for-mysql/)。
EC2 实例的垂直扩展:在最近对旧托管设置的测试中,数据库被证明是瓶颈,而不是游戏应用程序及其服务器的硬件规格。因此,尚不完全清楚垂直缩放会影响响应时间的程度。如果 t2.micro 实例与 m3.xlarge 实例一样好,我们当然宁愿从这里的底部向上爬。
RDS 的垂直扩展:我们需要估计有多少流量到达数据库服务器以及需要多少 CPU/RAM/等。也许我们也会在这里工作。
全局重定向:使用 Amazon Route 53 (?) 完成。来自 Tokio 的用户应该被重定向到在亚洲运行的 EC2 实例;来自罗马的用户到欧洲的 EC2 实例。这不仅会影响应用程序内的 API 调用,还会影响内容交付(双向)。
关于设置的未决问题
- 这个设置是决定性的吗?我是否缺少关键组件?
- 关于全球重定向:Amazon Route 53 是正确的工具吗?它与 CloudFront 有何不同(这让我觉得纯粹是为了内容/媒体分发?)。
- 如何为我的应用程序定义正确的数据/api 端点?当然,我不想在应用部署期间定义数据库只读副本的数据库端点。在 AR53(问题 2)设置期间也会发生这种情况吗?API 调用也是如此,当然应用程序应该将它的调用定向到https://myurl.com/api并从那里重定向它。这是现实的吗?
我非常感谢各种想法(!),以及关于下面写的背景信息。如果您可以指点我进一步阅读以自行解决我的问题,我也非常感谢 - 有大量关于此的信息,但这使得很难缩小答案范围。我确实有托管/服务器方面的知识,但我很确定那里有真正的专家等着用知识给我耳光。:)
背景信息
当前主机设置:负载均衡器在 2 个根 Linux 服务器上分配流量,它们都运行 PLAY 应用程序,其中一个还保存 MySQL 安装。
当前的托管设置有 3 个大缺陷:
- 没有垂直可扩展性:托管公司会为每个扩展步骤花钱。目前服务器处于闲置状态,但如果应用程序蓬勃发展,我们可能很快就会出现容量不足的情况。闲置运行仍然是有偿的,就好像永久处于满负荷状态一样。这很贵!
- 不支持部署:目前我们通过SSH连接,手动将正确的文件夹部署到文件系统,在服务器上重新编译,设置权限,应用数据库演进;对第二台服务器执行相同操作(使用不同的数据库连接参数)。什么可能出错。;)
- 没有全球可用性:在世界的另一个地区设置另一台服务器将意味着巨大的努力。可以完成我们数据库的同步副本,但再次部署将意味着停机、错误空间以及时间和金钱。
Java PLAY 的托管选项: 有很多关于此的不同博客文章。简而言之:
- AWS:Amazon Web Services 是您最先开始寻找的地方之一。在这里,您可以以灵活的价格获得一切可能。您为自己设置了一个 EC2 实例、一个 MySQL RDS,一切顺利 - 所有这些都在免费层中,因此您可以试验、玩耍、测试您的东西。
- Microsoft Azure:在定价和可能性方面类似于 AWS。但是,我并没有深入研究设置和部署我们的应用程序以进行测试。
- Heroku:在 PLAY 中超级容易部署,可扩展的服务器。然而(乍一看?)缺乏为偏远地区提供高速内容的可能性。
- Jelastic:在 PLAY / IntelliJ IDEA 中更容易部署。您将应用程序映像推送到 jelastic,jelastic 将其进一步分发给他们的基础设施提供商。
- RedHat OpenShift ( https://www.openshift.com/ ):听起来很有希望,但不如 AWS 完整。
很多选择和可能的设置/价格。尤其是在了解了使用 boxfuse ( https://cloudcaptain.sh/ ) 进行部署之后,我选择了 AWS,因为它绝对提供了我们从 1 个来源所需要的一切。Boxfuse 的每月成本较低,但可以完美集成到 AWS。支持缩放以及 3 个常见环境(开发/测试/产品)。支持非常出色。
cloudcaptain - boxfuse 中的应用程序无法连接到本地 MariaDB
我无法让 Boxfuse 中的 Play 应用程序连接到同一台计算机(开发 PC)上的 MariaDB 实例。
为了让“包含”应用程序连接到“主机”端口,我缺少什么?
java - 使用 boxfuse 运行简单的可执行 jar
我想将当前与 docker 一起运行的应用程序转换为 boxfuse。
在 Maven 构建之后,我有这些相关文件:
在本地运行 jar 的命令很简单jar -jar target/my-app-shaded.jar server config-dev.yml
我能想到的是boxfuse run target/my-app-shaded.jar
运行 jar 文件,但是如何添加配置文件和命令行参数?