
Z shell搭配oh-my-zsh自定义配置已成为众多Linux/Macosx用户的标准terminal配置。 最近遇到在zsh中执行任意命令都变得特别慢(哪怕简单执行ls也要花费肉眼可见的1,2秒钟),这里记录下如何排查Z shell下启用oh-my-zsh的性能问题。 性能问题症状 突然某天起在终端中执行任意命令,都至少要花费1,2秒(肉眼计数),该命令才会完成执行并退出到终端开始接受新的输入。 我当前主要使用的终端是iTerm2,执行命令后,在终端Tab的title bar上能显式的看到git命令也被执行了。 尝试了其他的shell,比如bash,是没有这个问题。基本断定问题同zsh相关。更多问题描述乃至动画截屏,可以参见这 …
Read More
Github/Gitlab已经成为众多开发者非常熟悉的代码协作平台,通过他们参与开源项目或实施企业内部项目协作。 AWS也提供了托管的、基于Git、安全且高可用的代码服务CodeCommit。CodeCommit主要针对企业用户场景,所以他并没有社交功能以及代码仓库fork功能,是否CodeCommit就无法实现Github基于Pull Request的协同工作模式呢? 答案是,CodeCommit完全可以实现基于Pull Request的代码协作。由于Git的分布式代码管理特性,首先fork上游项目仓库,将修改后的代码提交到fork仓库,通过Pull Request申请修改请求合并。Github将这套协作流程推广开来并被开源项目广 …
Read More
AWS在3月12日正式发布了新一代的API网关 -- HTTP APIs。AWS发布的第一代API Gateway服务已经快5年了,通过这些年来大规模服务客户的心得以及客户反馈,由此重新构建了更快(相比第一代网关60%的延迟减少)、更便宜(至少节省71%的费用)、更易用的第二代网关服务。 除了性能、费用、易用性的大幅度改进之外,在HTTP APIs发布博客中着重介绍了以下新特性, HTTP APIs网关可同私有VPC内的负载均衡(ALB/NLB),服务发现(Cloup Map)集成。意味着可将目前最流行且普遍应用的容器服务作为API后端 可以将自定义域名的API路径混合映射到第一代的REST APIs和最新的HTTP APIs 请求 …
Read More
在re:Invent 2019之前,AWS Toolkit发布了Cloud Debugging beta功能。该功能支持在IntelliJ IDEs(IntelliJ, PyCharm, Webstorm, 以及 Rider)中远程调试 ECS Fargate 容器中执行的应用程序。 对ECS Fargate demo启用了远程调试并调试成功后,这里记录一下该功能的使用体验并且分享体验过程中掉进去过的一些坑。 试用体验 首先,该功能不适用于生产环境。因为对ECS Fargate类型的Service启用Cloud Debugging功能会将原始的ECS Services收缩为0个task副本,同时创建一个新的Service并启用新 …
Read More
AWS Batch是一个全托管的批处理调度服务,它可为用户管理所有基础设施,从而避免了预置、管理、监控和扩展批处理计算作业所带来的复杂性。当然AWS Batch已与 AWS 平台原生集成,让用户能够利用 AWS 的扩展、联网和访问管理功能。让用户轻松运行能够安全地从 AWS 数据存储(如 Amazon S3 和 Amazon DynamoDB)中检索数据并向其中写入数据的作业。AWS Batch可根据所提交的批处理作业的数量和资源要求预置计算资源并优化作业分配。能够将计算资源动态扩展至运行批处理作业所需的任何数量,从而不必受固定容量集群的限制。AWS Batch还可以利用 Spot 实例,从而进一步降低运行批处理作业产生的费用。 …
Read More
在拥有域名后,通常希望创建一些自有域名下的邮箱来收取不同用途的邮件,同时不希望为这部分功能付费😃。使用免费的企业邮箱(比如网易企业邮箱、阿里云企业邮箱)是一种选择。这时就需要配置邮件地址和邮件客户端来收取邮件,如果有多个邮箱地址,配置会特别麻烦。有时,这些企业邮箱的收件服务会莫名其妙的丢失一些邮件。 这种场景下,邮件转发服务是一种非常好的解决方案。无需搭建邮件服务器或申请免费邮件服务,只需要配置域名的邮件MX解析到转发邮件收发件服务,同时使用DNS TXT record配置转发规则,即可将所以发送的自有域名下的邮件转发到已有的邮箱地址!🆒 特别安利Forward Email服务,一个免费而且是开源的邮件转发服务。 如上面介绍的,只需 …
Read More
近期实践了将阿里云EDAS微服务应用迁移到AWS上,在这里分享一下迁移方案。 该方案涉及了以下三个方面, 微服务应用集群。在AWS上采用的ECS集群部署微服务应用,通过Cloudmap实现服务注册发现,App Mesh实现服务间流量控制。更加详尽的微服务迁移要点和对应方案,详见下面的deck。 Devops pipeline。使用托管的CodePipeline,CodeBuild实现CI/CD。 Infra as Code。利用AWS强大的Infra as Code能力,将云上的基础设施和微服务应用编排通过CDK代码实现。 下面是迁移方案的deck。完整且可部署的PoC代码,点这里。
Read More
托管的RDS数据库已经是云计算服务中非常成熟的服务,绝大部分的云计算用户会采用RDS服务来提升数据库服务的可用性同时减少数据库的各类运维事务。 AWS RDS服务支持开启和查询各类的数据库日志,包括常规日志、慢日志、错误日志和审计日志。但RDS服务默认提供的日志查看工具仅仅类似文本查看器,无法针对日志数据做统计和查看历史滚动的存档。 本文将介绍如何使用AWS上云原生的服务搭建无服务架构的实时日志分析报表系统。该系统的实现思路来自于AWS中国的一篇博客,该文介绍了使用 CloudWatch Logs,Kinesis Firehose,Athena 和 Quicksight 实现实时分析 Amazon Aurora 数据库审计日志。 这 …
Read More
业务上云之后,经常也有需求将多云、数据中心或办公室的私有网络同云端的私有网络建立连接。AWS Site-to-Site VPN正是AWS提供的托管VPN服务,我们可以在另一端的私有网络通过Openswan同AWS VPC网络建立基于IPSec协议的安全连接。 下面是配置的详细步骤, 如果是创建数据中心或办公室的连接,数据中心或办公室需要有公网IP。如果是在其他公有云上,需要创建带公网IP的EC2,或使用EIP。 如果使用AWS EC2配置Openswan,需要禁用 EC2 的 Source/Destination Check。 在AWS上创建Virtual Private Gateway 和 Customer Gateway(指定对 …
Read More
Infrastructure as Code(架构即代码)一直是衡量公有云是否支持良好运维能力的重要指标。作为云计算领先的AWS,通过服务CloudFormation来编排云环境中的基础设施资源。不过由于CloudFormation是使用YAML/JSON编写的声明式语言,不善于处理逻辑,编写繁琐且不利于调试排错,对于新上手的Devops工程师来说也有不小的学习曲线。三方开源的工具Terraform同样没有很好解决CloudFormation存在的这些问题。 AWS CDK的出现解决了目前CloudFormation存在的绝大部分问题,极大的提升基础设施编排代码的开发和维护效率。 AWS CDK是一种开源软件开发框架,开发者可以用自 …
Read More