应用程序弹性设计
AWS架构的完善(AWS Well-Architected)框架涉及了五大支柱, 其中可靠性支柱要求侧重于确保工作负载在预期的时间内正确、一致地执行其预期功能。 这要求应用程序系统具备弹性设计,可从故障中快速恢复,以便满足业务和客户需求。 然而设计、开发、且验证具备弹性设计的应用程序,对经验和实践能力都有很高的要求。 利用成熟的经验和良好的工具将加快构建符合预期的弹性应用程序。 Application Resilience Workshop是一套课程和动手实践学习如何进行实验来观察系统的行为, 例如,极端系统负载和网络中断情况下,使用不同的软件模式来减轻这些实验对系统稳态的影响。 整个实验也是分为假设、方法、观测和缓解等步骤,同混沌 …
Read More混沌工程是一种帮助系统满足弹性需求的技术,它起源于Netflix的工程实践,著名的猴子军团。 AWS一直提倡架构的完善(AWS Well-Architected),混沌工程正是卓越运营和可靠性支柱的实践。 因此在 re:Invent 2020 AWS发布了Fault Injection Simulator服务来简化开发者在AWS上的混动工程实践。 AWS FIS作为AWS上原生的混沌工程服务,目前已同EC2,ECS,EKS,RDS,CloudWatch,甚至是IAM Role API集成,可以触发这些服务中资源的变更来假设故障, 例如,重启或终止EC2实例,重启RDS实例等。 Chaos Engineering on AWS是一份非 …
Read MoreI met a case to mirror existing Helm charts to another repository. It might be caused by network availability or compliance requirements. There are multiple ways to host a Helm repository, for example, Nexus OSS Repository, Github Pages, AWS ECR and so on. Amazon Elastic Container Registry (Amazon ECR) is a fully …
Read MoreAmazon Neptune is a managed Graph database on AWS, whose compute and storage is decoupled like Amazon Aurora. Neptune leverages popular open-source APIs such as Gremlin and SPARQL, and easily migrate existing applications. After exploring Neptune few months in solution, I have below few learnings, Bulk loading Always …
Read MoreLast year I shared the production-ready, cloud native solution to deploy Sonatype Nexus Repository OSS on AWS. The solution has an update with below notable changes, support specifying EKS version, v1.20, v1.19, and v1.18 are supported versions support provisioning to existing VPC support provisioning to existing …
Read More本方案的起因是,一个源代码托管在Github上的项目fix一个重要的bug后,在AWS上的持续部署流水线一直失败。分析日志后,发现流水线中的数个步骤需要克隆源代码,但是访问Github的网络非常不稳定,这数个流水线任务持续因连接超时,连接拒绝等网络错误而失败。而流水线任务大量使用了CodeBuild, Lambda等AWS托管服务,无法为执行环境配置可靠的网络连接。 本方案思路如下, 在 VPC public subnets 中创建 NAT instance 即 EC2 虚拟机, 配置 NAT instance,使用 tunnel 网络访问 github, 修改 private subnets 的路由表,添加 github …
Read MoreInfrastructure as Code is the trend to manage the resources of application. AWS CloudFormation is the managed service offering the IaC capability on AWS since 2011. CloudFormation uses the declarative language to manage your AWS resources with the style what you get is what you declare. However there are cons of …
Read MoreAWS 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 MoreSonatype 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