
AWS CDK是编排部署AWS云上资源最佳的工具之一。基于AWS CDK的应用应该如何实践DevOps持续集成和部署呢? 通常我们有下面几种方法, 使用AWS CodePipeline来完成DevOps pipeline搭建。CodePipeline是AWS Code系列服务中的持续集成编排工具,它可以集成CodeBuild项目,在CodeBuild项目build中安装cdk,并执行cdk deploy命令来实现应用部署。 这种方法简单直接的实现了DevOps部署流水线。但缺少staging,将最新提交直接部署到生产是一种非常高风险的做法。 CDK近期发布了体验性的新特性CDK Pipelines来封装CDK应用持续部署流水线的配 …
Read More
Sonatype Nexus repository OSS is an artifact repository that supports most software repositories such as Maven, Pypi, Npmjs, Rubygems, Yum, Apt, Docker registry and etc. In the enterprise Nexus repository is widely used for storing proprietary artifacts and caching the artifacts for speeding up the devops. Building a …
Read More无服务器架构的Docker镜像数据分析应用

近期对Docker镜像做了些数据分析,这里分享一下利用云原生技术快速且低成本的实现任意数量的数据分析。 之前通过文章介绍了不用拉取Docker镜像就可获取镜像的大小的一种方法,通过其中的示例脚本,我们可以获取到待分析的原始数据。 比如nginx镜像的部分原始数据(csv格式)如下, 1 2 3 4 5 6 7 8 9 10 11 12 …
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
近期实践了将阿里云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