行业:软件 地点:美国 云类型:公有 挑战:速度 产品类型:安装程序 使用的CNCF项目:Kubernetes 挑战 Zendesk 是用 MySQL 数据库建立的单体 Rails 应用程序,在公司自有硬件上的共址数据中心中运行...所有的产品和服务都在单体 Rails 应用上提供,该应用程序利用 MySQL 数据库,在公司自有硬件上的共址数据中心中运行。 最初的7年中,系统运行良好。...但“我们不希望 Docker 树立起一个仅限开发者使用的形象;我们希望也能把它们用于登台和生产环境,”他说:“我们开始创建一个在节点上运行的最小代理,依据 Consul 键值存储中的数值运行 Docker...实现集群在生产中运行用了差不多一年时间(期间,公司也从数据中心迁移到了大约15个在 AWS 的集群中)。2017年初,第一个有真实客户流量的应用在 Kubernetes 部署成功。...最近 AWS 出现故障,造成大量 EC2 问题,导致一个域的可用性区域突然中断。Zendesk 在 EC2 上运行 Kubernetes 和非 Kubernetes 任务。
在生产中部署Rails应用程序时,开发人员可以从几个流行的应用程序服务器中进行选择,包括Puma,Unicorn和Passenger。...确保在Gemfile中安装与Rails版本兼容的Ruby版本。.../etc/nginx/sites-available/default在文本编辑器中打开并default_server从server块的前两行中删除: 在/ etc / nginx的/网站可用/默认1 2.../etc/nginx/sites-available/railsapp在文本编辑器中创建并添加以下内容: 在/ etc / nginx的/网站可用/ railsapp1 2 3 4 5 6 7 server...重启NGINX: sudo systemctl restart nginx 在Web浏览器中,导航到您的Linode的公共IP地址。
最初是作为Google项目开始的,成千上万的团队使用它在生产中部署容器。谷歌声称,它每周使用Kubernetes运行数十亿个容器。...它旨在将一个数据中心内的多台计算机作为一个或多个集群来处理,无论是在云中还是使用在前提下的软件。DC/OS可以在同一环境中部署容器并管理无状态应用程序和有状态工作负载。...与“ Docker Swarm”和“Kubernetes”一起工作。 链接:https://dcos.io/ 费用:中间层DC/OS订阅包基于您环境中的节点数(物理或虚拟)。...Syslog-ng是一种值得信赖的日志管理基础设施,它将高性能功能与丰富的消息解析和重写选项结合在一起。...测试检查在生产中部署Docker容器时常见的最佳安全实践。
作为Rails的Web服务器,Passenger易于安装,配置和维护,可与Nginx或Apache一起使用。在本教程中,我们将在Ubuntu上安装带有Nginx的Passenger。...第六步 - 部署 在本教程中,我们将直接在CVM上创建一个新的Rails应用程序。我们需要一个rails gem来创建新的应用程序。...要测试我们的设置,我们希望看到Rails Welcome aboard页面。但是,仅当应用程序在开发环境中启动时,此方法才有效。...默认情况下,Passenger在生产环境中启动应用程序,因此我们需要使用passenger_app_env选项更改此选项。如果您的应用已准备好投放,则需要保留此设置。...如果您在生产环境,我建议您在给Nginx加上一层保护,使用腾讯云SSL证书。如何设置此证书取决于你是否拥有可解析该服务器的域名。
请务必在root权限下执行以下步骤或者使用sudo前缀或执行以下步骤。有关权限的更多信息,请参阅“ 用户和组”指南。...你可以查阅关于在Ubuntu 16.04上使用apt源安装Passenger和NGINX的详细文档。...您必须配置NGINX以确保它正确使用Passenger: 取消注释/etc/nginx/nginx.conf中的include /etc/nginx/passenger.conf;行。...安装插件 Redmine可与插件一起使用。插件将被安装到redmine/plugins。...如果您打算在生产中使用它,请探索对您的团队有用的插件。请查看下面的一些指南,为您的团队自定义Redmine。 更多信息 有关此主题的其他信息,您可能需要参考以下资源。
上一篇(Nginx初探 )已经介绍了Nginx的基本功能,也介绍了在Windows下的安装和简单的实现负载均衡,下边主要学习一下Nginx的源码结构。...Nginx的源码src目录结构(未进行编译安装) 环境:nginx-1.8.0 + Cent OS 7.0 (可以使用 yum install tree 来安装tree命令,就可以显示出文件的树结构)...从上边的源码中可以看出共有10 directories, 265 files,Nginx的主要模块是Core、event、http、mail、misc(杂项,包含多种功能)、os这几个部分,并且根据源代码的命名也可以大致的猜测出其所代表的功能...同样的在编译之后,会在原来的Nginx代码包中生成一个objs的目录,其中,生成的ngx_modules.c文件中,重新集中申明(使用extern关键字)了nginx配置的所有模块,这些模块可通过编译前的...例如,ngx_core_module模块便是在./src/core/nginx.c文件中定义并进行静态初始化。实际上,ngx_core_module是一个全局的结构体对象,其他模块类同。如下: ?
Envoy和Istio紧密结合 虽然Envoy在Kubernetes ingress代理上远远落后于领导者Nginx(Envoy为19%,而NGINX为62%),但在将Istio应用到生产环境的受访用户中有...在受访的17个serverless托管平台中,受访者描述了817个种不同的部署方式,CNCF报告称432个受访者中,AWS Lambda的使用率达到53%。...但是在排除不选用无服务器的受访者之后,我们发现67%的无服务器受访者使用AWS Lambda(615中的411)。...根据我们的分析,有39%的受访者在生产中使用service mesh技术,另有46%的受访者正在评估。深入研究数据,我们发现了一些有趣的趋势。如上所述,受访者经常会同时使用Envoy和Istio。...以下包括CI/CD工具和云原生存储选项的使用情况的图表。可能与其他研究中的排名不同,但靠前的选择应该是准确的。如果在下一次经济衰退中面临削减技术投资的抉择,哪些技术/公司具有持久力?
它旨在将数据中心内的多台机器视为一个或多个群集,无论是在云中还是使用内部部署软件。DC / OS可以在相同的环境中部署容器并管理无状态应用程序和有状态工作负载。...工具链接:https://dcos.io/ 使用成本:Mesosphere DC / OS的包月套餐基于你环境中的节点(物理或虚拟)的数量收费。 4. Amazon ECS ?...不仅仅是一个容器编排器,还是一个用于在生产环境中运行Docker的完整的容器管理平台。...一个值得信赖的日志管理基础架构,syslog-ng将高性能功能与丰富的消息解析和重写选项结合在一起。...在生产中常见的测试检查部署Docker容器的最佳安全实践。
它旨在将数据中心内的多台机器视为一个或多个群集,无论是在云中还是使用内部部署软件。DC / OS可以在相同的环境中部署容器并管理无状态应用程序和有状态工作负载。...工具链接:https://dcos.io/ 使用成本:Mesosphere DC / OS的包月套餐基于你环境中的节点(物理或虚拟)的数量收费。 4. Amazon ECS ?...不仅仅是一个容器编排器,还是一个用于在生产环境中运行Docker的完整的容器管理平台。...使用syslog-ng从各种来源收集日志,并在将它们路由到不同的目的地之前,几乎实时地处理它们。一个值得信赖的日志管理基础架构,syslog-ng将高性能功能与丰富的消息解析和重写选项结合在一起。...在生产中常见的测试检查部署Docker容器的最佳安全实践。 工具链接:https://hub.docker.com/r/docke … rity/ 使用成本:免费 38.
负载均衡器会根据各 EC2 计算实例的负载状态将请求转发到不同的实例上的 Ruby On Rails 应用上。每一个应用都是一个典型的 MVC Web 应用。...EC2 上的应用会将一部分数据存储在关系型数据服务(AWS RDS,Relational Database ServiceS)上,一部分存储在本地文件里。...如果不走运的话,两三天都无法完成一次成功的构建,真是依靠人品构建。 基础设施即代码(Infrastructure As Code)建立在一个混合的遗留的 Ruby 代码库上。...(PS: AWS 已经有专门的 AI 和大数据服务了,所以不需要和自己过不去) 对于我们的应用场景而言,上文中的 Ruby On Rails 应用中的主要功能(至少60% 以上)实际上只是一个数据转换适配器...CDN 会拦截访问请求,使得请求在 nginx 处理之前就会把对应的请求转发到 API Gateway。 当然,如果你想做灰度发布的话,就不能按上面这种方式搞了。
最初作为Google项目开始,许多团队使用它在生产中部署容器。谷歌每周使用Kubernetes运行数十亿个容器。 Kubernetes 可以自动在一个容器集群中选择一个工作容器供使用。...无论在云中或使用内部部署软件,它旨在将数据中心内的多台计算机视为一个或多个集群,DC / OS可轻松的部署和运行有状态和无状态的容器、大数据以及传统应用。...链接:https://dcos.io/ 4、Amazon ECS Amazon Web Services是对容器编排的答复,Amazon ECS是一种高度可扩展的管理服务,允许开发人员在EC2实例上运行容器化应用程序...,它将高性能功能与丰富的消息解析和重写完美结合在一起。...链接:http://www.blockbridge.com/ 成本:免费 联网 30、flannel flannel是专为Kubernetes设计的,它是一种通过在集群中的多个节点之间使用第3层IPv4
如果你需要一个数据库,可以直接从他们所支持的许多数据库中挑选一个。如果应用程序前端使用Django或Rails,而在后端使用Java,也是可以的。...如果存在,说明正在生产环境中,所以使用json里的设置,如果不存在,说明在本地调试模式,可以本地设置。...下面讲述如何设置数据库,以在dotcloud上使用博客。以MySQL数据库为例。使用Django框架,需要在settings.py中设置数据库。...如果您正在dotCloud上运行生产环境中的应用,建议扩展所有服务,以便能够承受EC2服务器崩溃和其他不可预见的问题。...这将有助于避免发生故障(EC2实例崩溃)导致长时间停止运转。理想情况下,在生产环境中运行时,所有服务都应按照“高可用性”进行扩展。 有两种类型的服务,有状态的,无状态的。有状态服务是有持久数据的服务。
───9*[nginx] └─svlogd 可以看到整个树精简了不少,和上文一样,在等待应用 Web 界面正常提供服务后,使用 docker stats...隐藏界面中不需要的功能 在 GitLab 官方社区中,曾经有用户提到过这样一个问题: 需要一个选项能够关闭界面中的 “ Security and Operations ” 选择卡 用户A:Operations...不推荐调整的配置:Gitaly 前文提到不推荐对 Gitaly 服务进行配置调整,因为这个服务对于环境变量的获取和判断使用在逻辑上有一些小问题。...在早些时候的《容器方式使用轻量的 GitLab 低版本》 一文中,我分享过如何使用低版本的 GitLab ,那篇文章中的 GitLab 的进程树状况如下。...在不发广告的情况下,我们在里面会一起聊聊软硬件、HomeLab、编程上的一些问题,也会在群里不定期的分享一些技术沙龙的资料。 喜欢折腾的小伙伴欢迎扫码添加好友。
服务可用不同的语言开发,使用不同的数据存储技术。 在 AWS 现有的服务情况下,AWS Lambda 满足了上面的第 1、3、5 点,这只是一个微服务的处理单元,非管理单元。...1 06 根据 API 契约构建出新的微服务 在构建微服务的最初,我们当时有两个选择: 采用 Sinatra (一个用来构建 API 的 Ruby gem) 构建一个微服务 ,这样可以复用原先 Rails...(PS: AWS 已经有专门的 AI 和大数据服务了,所以不需要和自己过不去) 对于我们的应用场景而言,上文中的 Ruby On Rails 应用中的主要功能(至少60% 以上)实际上只是一个数据转换适配器...1 08 把原应用的请求导向新的微服务 这时候在 CDN 上给新的微服务配置 API Gateway 作为一个新的源(Origin),覆盖原先写在 route.rb 和 nginx.conf 里的 API...CDN 会拦截访问请求,使得请求在 nginx 处理之前就会把对应的请求转发到 API Gateway。 当然,如果你想做灰度发布的话,就不能按上面这种方式搞了。
实践: 使用Docker容器化服务 采用Docker Compose运行测试 准则: 构建适合团队的持续部署流水线 版本化一切 容器化一切 1 使用Docker容器化服务 我们在构建和发布服务的时候...2 使用Docker Compose运行测试 在整个持续部署流水线中,我们需要在持续集成服务器上部署服务、运行单元测试和集成测试Docker Compose为我们提供了很好的解决方案。...在服务需要访问数据库时,我们可以通过Docker Compose将服务的Image和数据库的Image组合在一起,然后使用Docker Compose在持续集成服务器上进行部署并运行测试。...通常我们使用Jenkins或者Bamboo来搭建配置持续部署流水线,每次创建流水线需要手动配置,这些手动操作不易重用,并且可读性很差,每次对流水线配置的改动并不会保存在历史记录中,也就是说我们无从追踪配置的改动...下图描述了一个服务在AWS EC2 Instance上面的运行环境: 在服务部署到AWS EC2 Instance时,我们需要为日志配置收集服务,需要为服务配置Nginx反向代理。
───9*[nginx] └─svlogd 可以看到整个树精简了不少,和上文一样,在等待应用 Web 界面正常提供服务后,使用 docker stats...至于 Gitaly ,实测之后,不建议进行调整,一来节约资源非常非常有限,二来 Gitaly 运行数量如果被过分限制会直接影响使用体验,详见下文。...隐藏界面中不需要的功能 在 GitLab 官方社区中,曾经有用户提到过这样一个问题: 需要一个选项能够关闭界面中的 “ Security and Operations ” 选择卡用户A:Operations...不推荐调整的配置:Gitaly 前文提到不推荐对 Gitaly 服务进行配置调整,因为这个服务对于环境变量的获取和判断使用在逻辑上有一些小问题。...在早些时候的《容器方式使用轻量的 GitLab 低版本》 一文中,我分享过如何使用低版本的 GitLab ,那篇文章中的 GitLab 的进程树状况如下。
Amazon Elastic Compute Cloud (EC2) 等早期云产品允许更快地启动(和关闭)机器;使用packer制作并使用cloud-init自定义的机器镜像,使配置稍微容易一些;puppet...这将导致应用程序可能在您安装的 Debian 机器上本地运行,但由于缺少依赖项而无法在生产中的 vanilla CentOS 上启动。...相反,在本地安装应用程序的依赖项可能会遇到一些麻烦,但由于资源需求高,为每个服务运行预配置的虚拟机进行开发将是不可行的。 即使在生产中,虚拟机的庞大也是一个问题。...从扩展的角度来看,这意味着我们需要一起扩展(和缩减)一些容器。部署也需要同步进行。新版本的 Web 应用程序容器可能会开始使用新的端口号,并与旧版本的反向代理容器不兼容。...现在,回到那个nginx + web app例子,在 Kubernetes 中,您可以简单地将反向代理和应用程序本身放在一个盒子中,而不是为 Web 应用程序容器运行额外的 Pod: apiVersion
于是搭建了ngnix+mediawiki+nodebb+everything(这个是别人配置好的,只是在ngnix中设置了代理)。 后来又添上了gitlab。整理安装记录如下。...mysql-server 注:在安装过程中,会要求你输入MySQL的root账号的密码,输入并记住。...安装过程中,在插件选择时勾上WikiEditor,这个能让编辑器更友好一些,其他的插件也可以根据需要勾一些。.../nodebb start 现在就可以在http://127.0.0.1:4567/使用论坛了。 然后需要用ngnix代理。...:8080可以使用的,目前只需要在nginx中增加配置文件,代理一下。
需要一个在前端使用Django或Rails的应用程序,而在后端使用Java,那也是可以的。...这使我们不必在我们的settings.py文件编码中写入用户名/密码和服务器URL,而且它也使我们更安全一些,因为我们不需要在我们的源代码仓库中写入这些信息。 这是我们如何使用它。...使用Django,您需要在settings.py中设置数据库设置。这就是我们在settings.py中设置mysql数据库连接的方法。请注意,数据库的名称不是来自env,而是您自己选择的。...在您的requirements.txt文件中,您需要添加django-redis == 1.4.5,以便这些库可供Django使用。...这将有助于避免发生故障(EC2实例崩溃)的停机时间。理想情况下,在生产环境中运行时,您的所有服务都应按照“高可用性”进行扩展。 有两种服务,有状态的,无状态的。有状态服务是持有持久数据的服务。
例如,一个模块可能会执行 CPU 密集型图像处理逻辑,理想情况下是部署在 Amazon EC2 Compute Optimized 实例中。...另一个模块可能是一个内存数据库,最适合部署到 EC2 Memory-optimized 实例。然而,由于这些模块被部署在一起,您必须在硬件选择上做出妥协。 单体应用的另一个问题是可靠性。...例如,您可以在 EC2 Compute Optimized 实例上部署一个 CPU 密集型图像处理服务,并且在 EC2 Memory-optimized 实例上部署一个内存数据库服务。...而且,如本章所述,NGINX 可以自动化部署微服务。 此外,NGINX 还提供了必要的功能来支撑 NGINX 微服务参考架构中的三大模型。...代理模型使用 NGINX 作为 API 网关;网格路由模型使用一个额外的 NGINX 作为进程间通信中枢;Fabric 模型中的每个微服务使用一个 NGINX 来控制 HTTP 流量,在微服务之间实现
领取专属 10元无门槛券
手把手带您无忧上云