首页
学习
活动
专区
工具
TVP
发布
精选内容/技术社群/优惠产品,尽在小程序
立即前往

Zendesk与微服务维护的艺术

行业:软件 地点:美国 云类型:公有 挑战:速度 产品类型:安装程序 使用的CNCF项目:Kubernetes 挑战 Zendesk 是用 MySQL 数据库建立的单体 Rails 应用程序,公司自有硬件上的共址数据中心中运行...所有的产品和服务都在单体 Rails 应用上提供,该应用程序利用 MySQL 数据库,公司自有硬件上的共址数据中心中运行。 最初的7年,系统运行良好。...但“我们希望 Docker 树立起一个仅限开发者使用的形象;我们希望也能把它们用于登台和生产环境,”他说:“我们开始创建一个节点上运行的最小代理,依据 Consul 键值存储的数值运行 Docker...实现集群在生产中运行用了差不多一年时间(期间,公司也从数据中心迁移到了大约15个 AWS 的集群)。2017年初,第一个有真实客户流量的应用在 Kubernetes 部署成功。...最近 AWS 出现故障,造成大量 EC2 问题,导致一个域的可用性区域突然中断。Zendesk EC2 上运行 Kubernetes 和非 Kubernetes 任务。

1K10
您找到你想要的搜索结果了吗?
是的
没有找到

【推荐】50+有用的Docker工具

最初是作为Google项目开始的,成千上万的团队使用在生产中部署容器。谷歌声称,它每周使用Kubernetes运行数十亿个容器。...它旨在将一个数据中心内的多台计算机作为一个或多个集群来处理,无论是云中还是使用在前提下的软件。DC/OS可以同一环境中部署容器并管理无状态应用程序和有状态工作负载。...与“ Docker Swarm”和“Kubernetes”一起工作。 链接:https://dcos.io/ 费用:中间层DC/OS订阅包基于您环境的节点数(物理或虚拟)。...Syslog-ng是一种值得信赖的日志管理基础设施,它将高性能功能与丰富的消息解析和重写选项结合在一起。...测试检查在生产中部署Docker容器时常见的最佳安全实践。

4.1K01

如何使用Passenger和Nginx部署Rails

作为Rails的Web服务器,Passenger易于安装,配置和维护,可与Nginx或Apache一起使用本教程,我们将在Ubuntu上安装带有Nginx的Passenger。...第六步 - 部署 本教程,我们将直接在CVM上创建一个新的Rails应用程序。我们需要一个rails gem来创建新的应用程序。...要测试我们的设置,我们希望看到Rails Welcome aboard页面。但是,仅当应用程序开发环境启动时,此方法才有效。...默认情况下,Passenger在生产环境启动应用程序,因此我们需要使用passenger_app_env选项更改此选项。如果您的应用已准备好投放,则需要保留此设置。...如果您在生产环境,我建议您在给Nginx加上一层保护,使用腾讯云SSL证书。如何设置此证书取决于你是否拥有可解析该服务器的域名。

4.9K20

Nginx的源码结构和模块初始化

上一篇(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是一个全局的结构体对象,其他模块类同。如下: ?

50730

CNCF用户调查年度报告

Envoy和Istio紧密结合 虽然EnvoyKubernetes 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工具和云原生存储选项的使用情况的图表。可能与其他研究的排名不同,但靠前的选择应该是准确的。如果在下一次经济衰退面临削减技术投资的抉择,哪些技术/公司具有持久力?

55420

50+ 个有用的 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.

1.5K31

Serverless 微服务架构案例无服务器架构 (Serverless Architectures) 简介AWS Lambda 的编程模型Amazon API Gateway + AWS Lamb

负载均衡器会根据各 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。 当然,如果你想做灰度发布的话,就不能按上面这种方式搞了。

2.3K10

最全的30+个开源免费的Docker工具

最初作为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

3K30

使用dotCloud云端部署Django应用程序

如果你需要一个数据库,可以直接从他们所支持的许多数据库挑选一个。如果应用程序前端使用Django或Rails,而在后端使用Java,也是可以的。...如果存在,说明正在生产环境,所以使用json里的设置,如果不存在,说明本地调试模式,可以本地设置。...下面讲述如何设置数据库,以dotcloud上使用博客。以MySQL数据库为例。使用Django框架,需要在settings.py设置数据库。...如果您正在dotCloud上运行生产环境的应用,建议扩展所有服务,以便能够承受EC2服务器崩溃和其他不可预见的问题。...这将有助于避免发生故障(EC2实例崩溃)导致长时间停止运转。理想情况下,在生产环境运行时,所有服务都应按照“高可用性”进行扩展。 有两种类型的服务,有状态的,无状态的。有状态服务是有持久数据的服务。

3.6K110

GitLab 14 轻量化运行方案

───9*[nginx] └─svlogd 可以看到整个树精简了不少,和上文一样,等待应用 Web 界面正常提供服务后,使用 docker stats...隐藏界面不需要的功能 GitLab 官方社区,曾经有用户提到过这样一个问题: 需要一个选项能够关闭界面的 “ Security and Operations ” 选择卡 用户A:Operations...推荐调整的配置:Gitaly 前文提到推荐对 Gitaly 服务进行配置调整,因为这个服务对于环境变量的获取和判断使用在逻辑上有一些小问题。...早些时候的《容器方式使用轻量的 GitLab 低版本》 一文,我分享过如何使用低版本的 GitLab ,那篇文章的 GitLab 的进程树状况如下。...不发广告的情况下,我们在里面会一起聊聊软硬件、HomeLab、编程上的一些问题,也会在群里不定期的分享一些技术沙龙的资料。 喜欢折腾的小伙伴欢迎扫码添加好友。

2.8K40

Serverless 风格微服务的持续交付(上):架构案例

服务可用不同的语言开发,使用不同的数据存储技术。 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。 当然,如果你想做灰度发布的话,就不能按上面这种方式搞了。

1K30

GitLab 14 轻量化运行方案

───9*[nginx] └─svlogd 可以看到整个树精简了不少,和上文一样,等待应用 Web 界面正常提供服务后,使用 docker stats...至于 Gitaly ,实测之后,建议进行调整,一来节约资源非常非常有限,二来 Gitaly 运行数量如果被过分限制会直接影响使用体验,详见下文。...隐藏界面不需要的功能 GitLab 官方社区,曾经有用户提到过这样一个问题: 需要一个选项能够关闭界面的 “ Security and Operations ” 选择卡用户A:Operations...推荐调整的配置:Gitaly 前文提到推荐对 Gitaly 服务进行配置调整,因为这个服务对于环境变量的获取和判断使用在逻辑上有一些小问题。...早些时候的《容器方式使用轻量的 GitLab 低版本》 一文,我分享过如何使用低版本的 GitLab ,那篇文章的 GitLab 的进程树状况如下。

4.6K21

持续部署Microservices的实践和准则

实践: 使用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反向代理。

1.4K40

Kubernetes 如何重塑虚拟机

Amazon Elastic Compute Cloud (EC2) 等早期云产品允许更快地启动(和关闭)机器;使用packer制作并使用cloud-init自定义的机器镜像,使配置稍微容易一些;puppet...这将导致应用程序可能在您安装的 Debian 机器上本地运行,但由于缺少依赖项而无法在生产中的 vanilla CentOS 上启动。...相反,本地安装应用程序的依赖项可能会遇到一些麻烦,但由于资源需求高,为每个服务运行预配置的虚拟机进行开发将是不可行的。 即使在生产中,虚拟机的庞大也是一个问题。...从扩展的角度来看,这意味着我们需要一起扩展(和缩减)一些容器。部署也需要同步进行。新版本的 Web 应用程序容器可能会开始使用新的端口号,并与旧版本的反向代理容器兼容。...现在,回到那个nginx + web app例子, Kubernetes ,您可以简单地将反向代理和应用程序本身放在一个盒子,而不是为 Web 应用程序容器运行额外的 Pod: apiVersion

56410

使用dotCloud云端部署Django应用程序

需要一个在前端使用Django或Rails的应用程序,而在后端使用Java,那也是可以的。...这使我们不必我们的settings.py文件编码写入用户名/密码和服务器URL,而且它也使我们更安全一些,因为我们不需要在我们的源代码仓库写入这些信息。 这是我们如何使用它。...使用Django,您需要在settings.py设置数据库设置。这就是我们settings.py设置mysql数据库连接的方法。请注意,数据库的名称不是来自env,而是您自己选择的。...您的requirements.txt文件,您需要添加django-redis == 1.4.5,以便这些库可供Django使用。...这将有助于避免发生故障(EC2实例崩溃)的停机时间。理想情况下,在生产环境运行时,您的所有服务都应按照“高可用性”进行扩展。 有两种服务,有状态的,无状态的。有状态服务是持有持久数据的服务。

3.3K70

1、微服务简介

例如,一个模块可能会执行 CPU 密集型图像处理逻辑,理想情况下是部署 Amazon EC2 Compute Optimized 实例。...另一个模块可能是一个内存数据库,最适合部署到 EC2 Memory-optimized 实例。然而,由于这些模块被部署在一起,您必须在硬件选择上做出妥协。 单体应用的另一个问题是可靠性。...例如,您可以 EC2 Compute Optimized 实例上部署一个 CPU 密集型图像处理服务,并且 EC2 Memory-optimized 实例上部署一个内存数据库服务。...而且,如本章所述,NGINX 可以自动化部署微服务。 此外,NGINX 还提供了必要的功能来支撑 NGINX 微服务参考架构的三大模型。...代理模型使用 NGINX 作为 API 网关;网格路由模型使用一个额外的 NGINX 作为进程间通信中枢;Fabric 模型的每个微服务使用一个 NGINX 来控制 HTTP 流量,微服务之间实现

65810
领券