玩转云计算:教你在Akamai Linode上构建IT架构–定义项目

news2024/11/15 21:31:21

时至今日,选择以云计算方式来运维业务,已经成为大部分情况下的最优选。那么如果要从零开始开发一个新应用,并依托云平台来设计、开发、部害和远维,具体该从何处下手?这一系列文章将介绍如何基于Akamai Linode平台实现这个目标。

场景

假设有一家名叫“Vapor”的公司,这是一家只销售游戏并提供游戏下载的线上公司。该公司原本使用了一家托管服务提供商(MSP)的服务,由于相关服务的体验非常糟糕,他们转为向Akamai寻求帮助。

除了追求更高性能外,Vapor的DevOps团队还希望能有更多实践机会,能够对“表面之下”的东西进行调优,这样整个解决方案就可以重新架构,以适应新的云提供商。

项目分为两个主要阶段:

  1. (关键阶段)对当前平台进行平移(Lift and shift),以最小代价对其进行改进;随后引入监控和管理软件,并创建管道。当前使用的解决方案,其停机时间较长,直接导致了大量收入损失。
  2. 利用Akamai的Kubernetes托管服务(LKE)和计算能力对整个栈进行容器化和现代化。此外,Vapor还计划在不久的将来进驻亚太、欧洲、中东和非洲以及美洲,因此在设计基础架构时应考虑到这一要求。

目前的技术栈

基于PHP和MySQL开发的定制化应用程序,其中包含数千篇文章。

应用程序在负载均衡器之后的八台Web服务器上运行。使用独立主机运行MySQL数据库引擎,游戏数据则存储在200TB的对象存储中。

硬件规格:

  • 8台Web服务器:每台16个CPU内核,64GB内存,200GB SSD存储
    • CPU平均用量为70%
    • 内存用量为80%
    • 平均IOPS为400
  • 数据库服务器:32个CPU内核,128GB内存,500GB SSD存储
    • 数据库约300GB,每季度增大10%
    • 内存用量90%
    • 平均IOPS为5500,偶尔激增至10000 IOPS
  • 负载均衡器
    • 平均每秒1000个请求,偶尔激增至每秒2500个请求
  • 对象存储
    • 目前托管在另一个云提供商平台上

监控和管理由目前的MSP负责,因此在选择监控、访问、安全等技术时,有一个开放的竞争环境。

当前基础设施简单概述

未来目标是什么?

在开始编写任何代码(没错,要做的一切都将用代码完成)之前,我们需要定义项目目标、功能性和非功能性需求,并尝试预测一下未来。

首先是项目的主要目标

  • 改善可用性
  • 相比当前提供商,降低托管成本
  • 提高性能
  • 大规模构建
  • 适应正在进行的全新现代化改建工作
  • 支持全球化运行,并在未来支持边缘计算
  • 提高安全性
  • 更易于运行
  • 提高自动化程度
  • 让开发者更满意

新基础架构布局概述

如图所示,我们的基础架构布局可细分为经典的DT(A)P方法,以及管理和备份账户。

管理账户将运行基础架构运转所需的所有“操作”服务,如监控、构建和部署管道、安全工具、安全访问服务等,我们将为开发/测试和生产工作负载提供专门的开发、测试和生产账户。这样做的目标是使开发、测试和生产账户在规模以外的各方面都完全相同。这将确保运行的所有基础架构和应用测试都能提供真实的结果。

最后,我们将在不同地区使用专用的Akamai Connected Cloud账户,并通过这些账户运行备份软件和灾难恢复基础架构。此外,可能需要的任何Akamai Connected Cloud服务(如虚拟机、对象存储、LKE集群等)也将部署在相应的(DTAP)账户中。

这样做的目的是尽可能将所有环境在物理和逻辑上分开。

整个基础设施将使用代码构建,第一阶段主要使用Terraform和Ansible;到第二阶段,我们将研究使用Kubernetes和应用程序管理工具及管道。具体待定。

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处:http://www.coloradmin.cn/o/1549052.html

如若内容造成侵权/违法违规/事实不符,请联系多彩编程网进行投诉反馈,一经查实,立即删除!

相关文章

通过Appium和Xcode Accessibility Inspector获取iOS应用元素定位的方法

在 iOS 移动应用程序上使用选择器查找元素定位是我们在移动端 UI 自动化测试的先决条件。 但是,由于应用程序内容在原生 iOS 应用程序中的呈现方式,我们可以用来定位应用程序元素的选择器与 Web 浏览器元素有很大不同。 在本文中,我们将了解 …

将markdown文档中的图床外链图片下载到本地文件夹

markdown图床外链图片下载到本地代码 前言 因为文章发到先知或者攻防社区需要本地图片,而我的图片从来都是上传到图床,所以编写了一个脚本实现了把markdown文章中所有含有外链图床的图片转储到本地的文件夹。 然后发布文章时再手动一个个上传图片。 详细…

STM32的IAP计数,BootLoader

来源 三种下载方式: 1、ICP:ST-Link, 2、ISP: FlyMcu, 3、IAP IAP简介 IAP技术的核心在于BootLoader程序的设计,这段程序预先烧录在单片机中,正常的APP程序可以使用BootLoader程序中的IAP功能写入,也可以两部分代码一…

comfyui 代码结构分析

comfyui的服务器端是用aiohtttp写的,webui是fastapi直接构建的,但是其实comfyui的这种设计思路是很好的,也许我们不需要在后端起一个复杂的前台,但是可以借助json结构化pipeline,然后利用node节点流把整个流程重新映射…

部署云原生边缘计算平台kubeedge

文章目录 1、kubeedge架构2、基础服务提供 负载均衡器 metallb2.1、开启ipvc模式中的strictARP2.2、部署metalb2.2.1、创建IP地址池2.2.2、开启二层转发,实现在k8s集群节点外访问2.2.3、测试 3、部署cloudcore3.1、部署cloudcore3.2、修改cloudcore的网络类型 4、部…

【ORB-SLAM3】在 Ubuntu20.04 上编译 ORM-SLAM3 并使用 D435i、EuRoC 和 TUM-VI 运行测试

【ORB-SLAM3】在 Ubuntu20.04 上编译 ORM-SLAM3 并使用 D435i、EuRoC 和 TUM-VI 运行测试 1 Prerequisites1.1 C11 or C0x Compiler1.2 Pangolin1.3 OpenCV1.4 Eigen3 2 安装 Intel RealSense™ SDK 2.02.1 测试设备2.2 编译源码安装 (Recommend)2.3 预编译包安装 3 编译 ORB-S…

cesium 创建实体

1、 entity 1.1 entity类型整理 Entity分类 1.2 entity添加 椭圆 const ellipse new Cesium.Entity({position: Cesium.Cartesian3.fromDegrees(114.3, 39.9, 100),ellipse: {semiMinorAxis: 30000, //椭圆的短半轴semiMajorAxis: 40000, //椭圆的长半轴extrudedHeight: 0…

FPGA工程师及其相关岗位招聘~

社区的招聘功能上线之后,许多企业都在上面发布了招聘岗位。 目前有30企业,岗位围绕FPGA工程师,涵盖嵌入式软件工程师、射频工程师、C语言开发、BMC工程师等等,入口放在这里:F学社-全球FPGA技术提升平台 登录账号后&a…

Swift知识点(二)

6. 闭包表达式与闭包 闭包表达式(Closure Expression) 闭包表达式是一种在简短行内就能写完闭包的语法 也就是,闭包表达式,只是一种简洁、快速实现闭包的语法 Swift 的闭包表达式拥有简洁的风格,鼓励在常见场景中实现…

VLAN的原理及配置

文章目录 一、VLAN的概述1、VLAN的概念2、VLAN的优势 二、静态VLAN三、静态VLAN的配置1.VLAN的范围2.VLAN基本配置 四、Trunk和access的作用参考 一、VLAN的概述 1、VLAN的概念 VLAN就是将网络从逻辑上划分为若按个小的网络,也就是虚拟局域网。 2、VLAN的优势 使…

KingSCADA|如何实现文本显示设备的实时通讯状态?

哈喽,你好啊,我是雷工! 在SCADA项目中,有些要求在界面上实时显示SCADA系统与设备的实时通讯状态,来及时了解PLC或其他设备与SCADA系统的通讯状态是否正常,以及简单的通讯异常分析,在KingSCADA中该如何实现通讯状态的文本显示呢? 接下来用简单的样例介绍KingSCADA如何实…

Vue3尚硅谷张天禹笔记

1. Vue3简介 2020年9月18日,Vue.js发布版3.0版本,代号:One Piece(n 经历了:4800次提交、40个RFC、600次PR、300贡献者 官方发版地址:Release v3.0.0 One Piece vuejs/core 截止2023年10月,最…

整数的反转

给定一个整数,请将该数各个位上数字反转得到一个新数。新数也应满足整数的常见形式,即除非给定的原数为零,否则反转后得到的新数的最高位数字不应为零。 public class _01数字反转 {public static void main(String[] args) {Scanner input n…

二叉树|701.二叉搜索树中的插入操作

力扣题目链接 class Solution { public:TreeNode* insertIntoBST(TreeNode* root, int val) {if (root NULL) {TreeNode* node new TreeNode(val);return node;}if (root->val > val) root->left insertIntoBST(root->left, val);if (root->val < val) r…

【HTWATER】海绵城市关键控制指标一键分析,一键获得整体、单个汇水子面积的年径流总量控制率及污染物削减率的结果

慧天[HTWATER]软件简介 针对城市排水系统基础设施数据管理的需求&#xff0c;以及水文、水力及水质模拟对数据的需求&#xff0c;实现了以数据库方式对相应数据的存储。可以对分流制排水系统及合流制排水系统进行地表水文、管网水力、水质过程的模拟计算。可以对城市低影响开发…

《区块链技术:解锁数字时代的无限可能》

区块链技术作为近年来备受瞩目的创新技术&#xff0c;正以崭新的姿态改变着我们的世界。从技术进展到行业应用&#xff0c;再到面临的挑战与机遇&#xff0c;以及未来的发展趋势&#xff0c;本文将全面剖析区块链技术的发展现状和潜力。 区块链技术原理 区块链技术原理是指构成…

大数据入门(一)

大数据主要要解决&#xff1a;海量数据的采集&#xff0c;存储&#xff0c;分析计算问题。 大数据的特点&#xff1a;大量&#xff08;数据量大&#xff09;&#xff0c;高速&#xff08;数据量的累积越来越快&#xff09;&#xff0c;多样&#xff08;结构化数据和非结构化数…

HTML静态网页成品作业(HTML+CSS+JS)——中华美食八大菜系介绍(1个页面)

&#x1f389;不定期分享源码&#xff0c;关注不丢失哦 文章目录 一、作品介绍二、作品演示三、代码目录四、网站代码HTML部分代码 五、源码获取 一、作品介绍 &#x1f3f7;️本套采用HTMLCSS&#xff0c;使用Javacsript代码实现图片轮播切换&#xff0c;共有1个页面。 二、…

逐步学习Go-并发通道chan(channel)

概述 Go的Routines并发模型是基于CSP&#xff0c;如果你看过七周七并发&#xff0c;那么你应该了解。 什么是CSP&#xff1f; "Communicating Sequential Processes"&#xff08;CSP&#xff09;这个词组的含义来自其英文直译以及在计算机科学中的使用环境。 CSP…

PTA L2-037 包装机

一种自动包装机的结构如图 1 所示。首先机器中有 N 条轨道&#xff0c;放置了一些物品。轨道下面有一个筐。当某条轨道的按钮被按下时&#xff0c;活塞向左推动&#xff0c;将轨道尽头的一件物品推落筐中。当 0 号按钮被按下时&#xff0c;机械手将抓取筐顶部的一件物品&#x…