[ 翻译 ] 微服务不是终点站

所谓微服务指的是一些由API驱动的小型应用程序,它们在追求一个共同目标的前提下负责把一件事情做好。 该定义总结了微服务当下最流行的常见说法。再者,如果处理得当的话,微服务真的可以做到它们想要做到的所有美好的事情。从架构和程序的角度来说,相比于更加单体化的方案而言,微服务在应用开发方面拥有许多有意义的优势。看看那些像Amazon和Netflix这样成功的企业,发现自己有这样的想法也就很合情合理了,"微服务!一定是它!" 不过,我并不是很喜欢这个松散的定义,因为它完全忽略了构建微服务背后的一个关键动机:让团队能够更快地交付功能到生产环境,并且摩擦变得更少。微服务只有在正确的软件文化到位时才能发挥最大效果。一个关注微服务的组织也应该像重视开发和运维生产力那样接受并实现一些文化方面的重大转变。 从整…

Read More

[ 翻译 ] 高度安全环境下的Docker和Kubernetes

【编者的话】本文作者讨论了容器和虚拟机的隔离问题,并提出了采用虚拟机沙盒作为k8s节点搭配一套分类机制来解决容器隔离的安全问题 这是笔者研究生论文的部分内容和基于此得出的结论的一个简要总结。本文侧重于探讨容器化应用程序的隔离问题。论文里还介绍了Kubernetes集群网络的部分,这里不做讨论。 你可以在这里找到笔者完整的论文,它是公开可以访问的: Container Orchestration in Security Demanding Environments at the Swedish Police Authority 。 近年来,容器编排和云原生计算获得了许多人的关注。行业内的采用率甚至已经高到金融、银行和国企单位都感兴趣的程度。与其他企业相比,他们在信息安全和IT安全方面有着更为广…

Read More

[ 翻译 ] 即便一个小项目也有它的CI/CD流水线

【编者的话】本文作者通过一个简单的小项目详细介绍了如何使用Docker, GitLab, Portainer等组件搭建一套CICD流水线 长文预警 现如今,使用市面上的一些工具配置一套简单的CI/CD流水线并不是一件难事。给一个副项目弄一套这样的流水线也是一个学习许多东西的好方法。Docker,Gitlab,Portainer这些优秀的组件可以用来搭建这个流水线。 示例项目 作为一名法国索菲亚科技园区(位于法国南部)的技术活动组织者,我经常被问到是否有办法知道所有即将举行的活动(会议,灌水,由当地协会组织的聚会等...)。由于此前并没有一个单独的地方列出所有的这些活动,我便开发了 https://sophia.events ,这是一个非常简单的网站页面,它会尝试维护一份最新的活动列表。此项目…

Read More

[ 翻译 ] WePay服务网格系统的高可用

在本系列的前面两篇文章,在Webpay中使用Linkerd作为服务网格代理以及Sidecar和DaemonSet: 容器模式之争中,我们深入探讨了一些服务网格的细节,分别是服务网格代理( Linkerd)和这些代理的容器模式。 在本系列的第三部分中,我们将站在一个更高层面来看待服务网格系统。具体来说,我们将会从监控和告警两个角度来查看服务网格系统的健康性,并讲述如何使用各组数据来定义WePay基础设施中服务网格架构的高可用。 全景图 和我们在本系列中前面讨论的服务网格设定一样,这里给出的例子是一个跑在Google Kubernetes Engine(GKE)的Kubernetes集群上的高可用及模块化的服务网格。 我们在此之前经历了几次服务网格架构设计的迭代,而支持模块化的那个最能满足我们的…

Read More

[ 翻译 ] Sidecar和DaemonSet: 容器模式之争

在我们最近的文章中,我们介绍了使用Linkerd作为服务网格代理,并发起了一系列的文章,记录了WePay工程团队对于将服务网格和gRPC这样的模式和技术引入到基础设施的看法。 针对本系列的第二部分,我们将重点介绍一些我们一直在试验并且在Google Kubernetes Engine(GKE)中使用的容器模式。具体来说,我们将基础架构的一些服务(服务网格代理和其他代理等)引入到一个面向服务架构(SOA)的Kubernetes集群时用到了sidecar和DaemonSet两种模式。 战场 很久以前,在非常早期的Kubernetes集群中,许多微服务都是诞生自Google Cloud Platform项目,它们需要借助基础设施来完成日志采集,请求路由,监控度量及其他类似的工具集或者流程。随着时间…

Read More

[ 翻译 ] 在WePay中使用Linkerd作为服务网格代理

在接下来的几个月里,我们将会编写一系列的文章,记录WePay工程团队从传统的负载均衡迁移到Google Kubernetes Engine(GKE)上的服务网络的历程。 在本系列的第一部分里,我们不妨一起来看看之前使用过的一些路由和负载均衡方案,把它们和我们看过的可能作为服务网格代理的服务做个对比,以及它们是如何改变我们基础设施的操作模式。 图1: 使用sidecar代理模式的数据面板 图1展示了一个数据面板的简化版,这是服务网格里的术语,其中服务X通过它的sidecar代理向服务Y发送请求。由于服务X是通过它的代理发送请求,因此请求将首先传递给服务X的代理(PX),然后在到达本次请求的目的地,服务Y之前会先发送给服务Y的代理(PY)。在大多数情况下,PX会通过一个服务发现的服务找到PY,例…

Read More