ACloudGuru-博客中文翻译-三-

ACloudGuru 博客中文翻译(三)

原文:ACloudGuru Blog

协议:CC BY-NC-SA 4.0

如何将 AWS 安全性左移:增强开发人员能力的 10 种方法

原文:https://acloudguru.com/blog/business/how-to-shift-aws-security-left-10-ways-to-empower-your-developers

在这篇文章中, 【唐·麦咭】——资深云架构师、杰出的安全工程师和 Stedi 的云安全负责人——分享了一些重要的左倾安全策略和围绕构建更好的安全态势所吸取的经验教训。此内容基于 d on 的保护您的 AWS 环境 ACG 网络研讨会。任何错误都是编辑的责任。

你可以尽你所能减少你的爆炸半径确保合规保护你的环境。但是提高安全性的最好方法之一是帮助开发者做出正确的选择和可靠的 IT 培训项目

让开发者做出正确选择的最好方法是让正确的选择变得更容易——让正确的方法比错误的方法更容易。通过这种方式,你可以授权给你的开发者,并在你的 AWS 环境中把 AWS 安全转移到左边。


保护您的 AWS 环境

在这个免费点播的网络研讨会中,唐·麦咭给出了复杂 AWS 环境从零到安全的详细分解。


提高 DevOps 安全性的左移策略

为什么要授权给你的开发者?因为集中管理导致开发人员参与和部署的减少。

我们不希望安全团队接管开发人员的部分工作,或者为他们制定规则。这降低了开发人员的速度,也让他们的工作更加困难。

相反,要找到让开发人员的生活更轻松的工具。目标是停止集中化,确保开发人员成为流程的一部分。你可以通过给团队直接反馈来实现这一点。

开发者能自己做决定的时候是最好的。不要只是说“不”。要透明地说明正在做什么以及为什么要做。然后,审核结果,并根据需要进行重定向。


云安全是您关心的问题吗?凭借 AWS 安全认证,您的团队将具备阿宁级别的安全技能,并为任何复杂的 AWS 项目做好准备。


1.使用云层防护

CloudFormation Guard 易于使用,允许你编写规则(有点类似于 AWS 配置)。工程师可以在本地或在 CI/CD 流程中运行 CloudFormation Guard。

  • 允许工程师在本地或管道中检查合规性
  • 符合 AWS 配置规则
  • 可以自动生成某些类型的规则

2.提供参考示例

  • 使用默认安全配置构建公共资源的 IaC 模板
  • 将模块用于更复杂的项目,如 VPC

在 Stedi,他们建立了许多可供工程师参考的例子。这包括最常见的 10 种错误配置以及如何修复它们。

3.调查边界权限

边界权限对工程师可以创建的 IAM 角色进行限制。

这些边界权限本质上是一个“不能做”的策略,必须附加到您在团队中扮演的任何角色上。所以你可以说,“你可以扮演任何你想扮演的角色。。。只要附上这个边界许可。”

这些权限可以是你知道你不希望你的工程师进入的所有事情——比如创建可以具有管理员访问权限的角色。你相信你的员工会做正确的事情,但你可以帮助确保他们不会意外地做错事。

4.使用 scp 通过限制 EC2 实例大小或禁止区域来防止错误

在最后一点的基础上,您可以使用 scp 更进一步。

在 Stedi,所有的拒绝都被传送到 Slack,这样工程师就可以看到什么时候出了问题。这样,他们就不必说,“我无法部署。这是怎么回事?”他们可以在频道中看到,“哦,我刚刚试图在 EU-西部 2 部署,这是一个禁止的区域。”他们可以看到他们在错误的地区,然后改变它。

5.确保开发人员在其部署中内置警报

我们希望确保开发者为他们的系统和健康建立警报。他们要对他们负责。所以才是 DevOps 。但是任何投入生产的系统都需要是可观察的。

6.看看 AWS 之外的安全性

这里涉及的内容很多,但是这里有一个需要考虑的事情的快速列表。

  • 使用秘密检测工具
  • 为机密管理、加密和部署工具等敏感事物提供通用路径
  • 以代码的形式管理一切,即使这意味着构建自己的资源提供者
  • owasp.org回顾 OWASP 前 10 名
  • 对所有员工进行安全意识培训
  • 使用 AWS 组织划分敏感系统
  • 利用第三方云安全工具
  • 利用第三方评估
  • 建立一个漏洞管理程序

7.从写文档开始

那么你从哪里开始呢?你从写作开始。如果你不能解释它并得到认同,你很可能无法建造它。写下你将如何实现安全并建立安全——控制,一切。

亚马逊有一些很好的例子,比如他们的 PR/FAQ 流程以及他们的一页和六页。你也可以找到这方面的视频。试试看——这很有效!

8.将所有基础设施排除在管理账户之外

管理帐户中没有基础架构。没有!

9.使用组织结构

org- formation 可能是管理 AWS 账户的最大的开源软件。看看吧!

  • 标准化的关键基础设施和账户创建
  • 实施最低安全策略
  • 允许 Stedi 在不到 10 分钟的时间内提供完全合规的新帐户

10.使用云安全态势管理(CSPM)

使用 CSPM。Config 与此类似。但是有很多第三方、开源和付费的选择。这将为您提供审核日志和对所有资源、合规性规则的全面了解,以及对关键问题的自动补救。

保护 AWS 环境需要记住的规则

  • 记住:你不能保护你看不见的东西。
  • 默认情况下减少公共访问。
  • 在配置或你喜欢的 CSPM 中建立规则。
  • 直接向您的工程师获取反馈。
  • 信任,但要核实。
  • 为任何规模的运营效率而设计。
  • 构建具有随时间自我改进的组件的系统。
  • 不要采取非常措施。
  • 仅针对当前需求构建。
  • 建造非凡的东西。

改变职业,改变企业

学得更快。动作快点。利用我们的课程和真正的技术以及 AWS、Microsoft Azure、Google Cloud 等领域的 IT 实践实验室转变您的团队。

如何在线教学:录制高质量的音频

原文:https://acloudguru.com/blog/business/how-to-teach-online-recording-quality-audio

你好!我是马蒂亚斯·安德森。我是一位云计算大师的讲师,我将教你如何为你的在线教学课程捕捉高质量的声音。这是一个多部分系列的第三课,所以请随意重温第 1 课第 2 课以获得更广泛的背景知识和更有用的提示。

将声音置于视觉之上

现在,我想从最重要的功能开始,那就是音频。没有任何声音,视频变得令人困惑,但没有视频,音频仍然可以讲述一个故事。这适用于你的在线教学,因为它强调你捕捉的声音比你的视频更重要。

也就是说,请不要认为你的视频不重要。因为视频也很重要——只是没有你的声音重要。如果你不同时关注这两者,那你就太傻了,对吗?你应该记住的指导方针是,清晰的音频比好的视频更重要,所以通常投资改善你的声音捕捉比让事情看起来完美更好。

距离造成了差异

那么,让我们开始解决音频方面问题。 当我为 ACG 学习者制作在线视频时,你会经常看到我身上带着一个特殊的麦克风,而不是依赖我相机内置的音频。这是为什么呢?嗯,因为我想优先考虑音频,而我相机上的麦克风只能做这么多。为了打造清晰、高品质的音频,我选择领夹式或翻领式话筒。它有助于创造广播质量的声音,因为它比我相机的麦克风更靠近我的嘴。

这并不意味着你需要购买像我这样的麦克风,因为你的情况可能不同,但扬声器和音频设备之间的距离是贯穿你的录音需要考虑的一个重要因素。即使在日常的电话会议中,了解电脑内置麦克风的限制以及它离你的声音有多远也很重要。

当麦克风靠近我的嘴时,它捕捉到的声音要比远离时清晰得多。但是太近也可能是不好的,可能会捕捉到一些声音,比如咂嘴声和强调爆破音,比如 Peter Piper picked a peck of 腌辣椒中的 P。

使用完美的比例

捕捉声音全靠比率。实际上,它主要是一个特定的比率:信噪比,或 SNR。在 SNR 中,信号是您想要捕捉的声音,比如您的声音。噪音是所有其他的声音——你不想捕捉的东西。这可能是外面路上的汽车,或者是一个设备发出的嗡嗡声,或者是你周围的其他人在说话。

现在,想象一个其他人在说话的情景——我肯定你以前经历过,对吗?如果你在一个繁忙的房间里谈话,而有人很难听到你的话,你会怎么做?一种选择是大喊大叫。如果你的声音比其他噪音都大,那么你的听众就能听到你的声音。这是你可以应用到自己的在线教学中的。

我并不是说你真的应该大声喊你的课,但是说得太小声会让麦克风更难听到你的声音。用饱满的声音说话与我们在其他剧集中讨论的其他事情有关,需要确保你说话时有足够的能量让你的学生参与到你的教学中。

但是,为了让别人听到,你还会本能地做另一件事:你们站得更近。即使你尽你所能大声喊叫,你的听众也永远不会在城镇的另一边听到你的声音,对吗?那显然太远了。即使是在一个繁忙的房间的另一边,你也不可能被听到。你需要靠近听众。事实上,有时你甚至可以把嘴凑到他们的耳边,把手握成杯状——这样,即使是你的低语也能在噪音中被听到。

找到适合你的方法

当然,这与麦克风的概念完全相同。这就是为什么我把麦克风靠近我的嘴,但不接触它。你也可以这样做。麦克风不需要很贵也不需要很花哨。它只需要靠近你的嘴。最好的方法之一是买一个便宜的有线麦克风,你可以夹在你的衬衫上,靠近你的衣领。一些翻领麦克风甚至直接插入你的相机,一些可以在你的智能手机上录制音频。

我的意思是,这是假设你在拍摄视频,学生会看到你的脸。如果你只是在录制音频——在幻灯片或其他东西上——那么就没有必要为一个夹式麦克风而烦恼。我们中的几个人在一个云专家那里用麦克风录制了我们的第一次课程,花费了我们不到 50 美元。我今天还留着我的。只要确保你的脸靠近你要用的东西。但是不要太近,记住。而且你可以通过自己录音和听来搞清楚什么是太近。以说“彼得·派珀摘了许多腌辣椒”开始。

当你听的时候,你也应该确定你没有得到不好的回音。如果你的嘴离麦克风足够近,并且不在墙边,那么这对你来说根本不是问题,因为回声噪声比你的语音信号离麦克风远很多倍。但是如果你确实听到了回声,你可以试着放一些柔软的东西——比如在你的墙上挂毯子或者毛衣。

同步音频和视频

我给新的在线教师的另一个建议是,如果可能的话,把你的麦克风直接插到记录你课程的显示部分的计算机或摄像机上。这样做的好处是,将音频和视频一起录制会使编辑变得更容易,因为它们是同步的。

你看过什么拍电影的幕后花絮吗?通常你会看到他们用来标记每个镜头开始的拍板。但是他们不仅仅是拍摄拍板——他们还从拍板中说出信息,并一起拍板。那个拍手就是让编辑同步音频轨道和视频的东西。因为如果它们不同步,那感觉就真的不对了。

所以,如果你正在分别录制你的音频和视频,总是开始两个都录制,然后你的手在一起。记得要确保你在相机的框架内,否则没用。然后,在编辑时,将手碰到的视频帧与拍手的音频波形中的凸起相匹配。如果你还不完全明白我的意思,也不要担心;第一次尝试的时候会更有意义。

Mattias Andersson with Clapper

理想增益,解释

关于麦克风,我想提到的另一个重要特性是增益。增益是麦克风的灵敏度,有点像音量,但用于录音方面。

如果麦克风增益设置得太低,那么它将听不到任何声音。这就像一个用完电池或被关闭的助听器。如果你试图放大一个非常低增益的信号,这就像从外太空用你的手机拍摄的照片中试图放大并数某人头上的头发一样。好的,这个例子可能不是你或我亲身经历过的,但希望你能想象它并记住这是行不通的。如果你试图这样做,你的声音会失真,可能还会非常嘈杂。

但是相反的一端也一样糟糕:当增益设置得太高时,声波会被“削波”,你录下的声音听起来很糟糕。也许有可能听懂你说的话,但充其量还是会让你的学生耳朵紧张。在最坏的情况下,这将是完全无用的音频。

你需要设置你的增益**“刚刚好”**。想象一下金发女孩来到你家,为你支起麦克风。我知道她会怎么做。她会进入您麦克风的测试模式,查看声音水平记录在哪里,让您在录音时尽可能大声地说话,然后确保麦克风的信号反弹得很高,但不会变红或达到最大可能。就是这样!实际上,你甚至不需要金发姑娘的帮助;我相信你自己也能做到。

今天计划,明天少做编辑

最后,我想简单谈谈降噪。我指的是软件。事情是这样的。在编辑阶段,对你的音频信号进行降噪处理是完全可能的。有时会有帮助。但毫无疑问,它听起来不会像你在录音阶段消除噪音那样好。

这有点像把一片面包扔进泥里——当然,你可以试着把它清理干净,去掉大部分污垢,或者用水清洗,处理它有点湿的问题。但是你难道不想让它保持干净吗?本杰明·富兰克林(Benjamin Franklin)说:“一盎司的预防抵得上一磅的治疗”时,他可能不是在谈论为互联网录制视频,但它肯定适用于这里。

既然你是音频专家,我们接下来可以看看视频。明白了吗? 看视频?啊哈?

好吧……对不起。

不过这一课已经涵盖了足够多的好东西了,是时候歇歇了,让你消化一下。听起来不错吧?想想你自己的情况:你有哪些话筒可供选择?使用哪一个对你来说最省事?录音的时候哪个能离你的嘴最近?如果你已经试过了,你觉得哪一个最好听?尤其是当你调整增益和嘴巴的位置时。

我希望这能帮助你为你的在线教学录制更好的音频。如果你有更多的建议想要分享,请在 YouTube 视频上留下评论来帮助他人。保持安全,继续牛逼!

ACG 的老师精心设计每一门课程,让你在学习过程中保持投入和动力。探索我们的课程库

I hope this helps you record better audio for your online teaching.  And if you have any more tips you’d like to share, please leave a comment on the YouTube video to help others. Stay safe, and keep being awesome!


ACG instructors craft each course to keep you engaged and motivated on your learning journey. Explore our course library.

如何使用 AWS 跟踪、分析和可视化数据

原文:https://acloudguru.com/blog/engineering/how-to-track-analyze-and-visualize-user-group-data-using-aws

在本帖中,我们将讨论如何使用亚马逊定位服务对地址进行地理编码,如何使用亚马逊 EventBridge 和 AWS Lambda 每天将数据转换和加载到 S3,如何使用亚马逊 QuickSight 可视化和共享存储的数据,以及如何使用 SAM 自动化和协调整个解决方案

使用 AWS 了解用户群数据的趋势

新冠肺炎疫情已经将许多面对面的社区聚会转变为虚拟活动。发表在《应用心理学杂志》上的新研究表明,在虚拟会议、聚会和社交活动的时代,“变焦疲劳”是真实存在的。

社区总是询问支持用户组的方法。为此,我一直在寻找一种快速、有效、可靠的方法来分析用户组数据,并将其可视化到仪表板中。该解决方案有助于以多种方式获得洞察力:

  • **跟踪活跃的会议:**了解哪些用户组在过去 12 个月、6 个月或 3 个月一直活跃。

  • **可视化成员的位置:**使用地图查看我们团队的位置,以及他们的足迹有多大。

  • **跟踪事件:**使用一个按最后事件时间戳排序的表,查看哪些组最近发生了事件


加速您的职业发展

从 ACG 开始通过 AWS、Microsoft Azure、Google Cloud 等领域的课程和实际动手实验室改变你的职业生涯。


解决方案概述

这篇文章描述了我是如何构建这个解决方案的,从地理编码地址数据到在亚马逊 QuickSight 上的最终可视化。

在这个解决方案中,我从开发 Python 代码开始,从 Meetup 收集用户组数据。

为了在地图上标出每次聚会,需要地理位置数据。我使用亚马逊定位服务将地址地理编码为经度和纬度坐标。

然后,转换后的数据被发布到一个亚马逊简单存储服务(亚马逊 S3)桶中。

我使用 Amazon EventBridge 设置了一个每日作业来触发一个 lambda 函数来收集用户组数据。报告和可视化层是使用 QuickSight 构建的。最后,使用 AWS SAM 部署整个管道。

下图说明了这种体系结构。

收集用户组数据

AWS 用户组是定期聚会以分享想法、回答问题并了解新服务和最佳实践的社区。用户组使用 meetup.com 组织他们的活动。我对美洲页面的用户组中列出的加拿大和美国的用户组很好奇。

我使用了BeautifulSoup和 requests 库从 AWS 用户组网站抓取内容。

该脚本首先通过get_user_group_data函数获取每个用户组的 meetup URL。基于某些 div 属性的存在,它将相关的 meetup URL 和名称存储在一个要废弃的列表中。

接下来,get_meetup_info函数遍历列表并解析每个 meetup 页面上的信息,比如成员数量和 meetup 位置。原始数据保存为 CSV 格式,以便进一步处理。

本文中的解决方案仅用于演示目的。我们建议在与管理这些脚本的团队协商后,仅在您自己的网站上运行类似的脚本,或者确保遵守您试图抓取的网站的服务条款。

下面显示了该脚本的一个示例。

meetup_json = {}
	page = requests.get(meetup_url)
	usergroup_html = page.text
	soup = BeautifulSoup(usergroup_html, "html.parser")

	# Get Meetup Name
	meetup_name = soup.findAll("a", {"class": "groupHomeHeader-groupNameLink"})[0].text

	# Meetup location
	meetup_location = soup.findAll("a", {"class": "groupHomeHeaderInfo-cityLink"})[
    	0
	].text

	# Number of members
	meetup_members = (
    	soup.findAll("a", {"class": "groupHomeHeaderInfo-memberLink"})[0]
    	.text.split(" ")[0]
    	.replace(",", "")
	)

	# Past events
	past_events = (
    	soup.findAll("h3", {"class": "text--sectionTitle text--bold padding--bottom"})[
        	0
    	]
    	.text.split("Past events ")[1]
    	.replace("(", "")
    	.replace(")", "")
	)

地理编码用户组

为了在地图上绘制每个 meetup 组,我们需要 meetup 组中每个城市的经度和纬度。我可以使用亚马逊定位服务,通过地点索引将每个城市的名称地理编码成经度和纬度坐标。有关创建地点索引的更多信息,请参见亚马逊位置服务开发者指南

以下是使用地点索引进行地理编码的示例 Python 代码。

import boto3

def get_location_data(location: str):
	"""
	Purpose:
    	get location data from name
	Args:
    	location - name of location
	Returns:
    	lat, lng -  latitude and longitude of location
	"""
	client = boto3.client("location")
	response = client.search_place_index_for_text(
    	IndexName="my_place_index", Text=location
	)

	print(response)
	geo_data = response["Results"][0]["Place"]["Geometry"]["Point"]

	#  Example output for Arlington, VA:   'Results': [{'Place': {'Country': 'USA', 'Geometry': {'Point': [-77.08628999999996, 38.89050000000003]}, 'Label': 'Arlington, VA, USA', 'Municipality': 'Arlington', 'Region': 'Virginia', 'SubRegion': 'Arlington County'}}
	lat = geo_data[1]
	lng = geo_data[0]

	print(f"{lat},{lng}")

	return lat, lng 

使用 SAM 来协调部署

在本地测试脚本之后,下一步是创建一个机制来每天运行脚本并将结果存储在 S3。我使用 AWS 无服务器应用程序模型(SAM)创建了一个无服务器应用程序,它执行以下操作。

  1. 创建 S3 存储桶
  2. 创建每 24 小时触发一次的 CloudWatch 事件
  3. 部署 Python lambda 函数来运行数据抓取代码

下面是用于部署无服务器应用程序的大纲,突出显示了我使用的示例代码。

1。从终端窗口,初始化一个新的应用
sam init

2。更改目录: cd ./sam-meetup

**3。**更新依赖关系
*更新 my_app/requirements.txt

requests
pandas

4。更新代码
将您的代码添加到示例my_app/app.py

import json
import logging

import get_meetup_data

def lambda_handler(event, context):

	logging.info("Getting meetup data")

	try:
    	get_meetup_data.main()
	except Exception as error:
    	logging.error(error)
    	raise error

	return {
    	"statusCode": 200,
    	"body": json.dumps(
        	{
            	"message": "meetup data collected",
        	}
    	),
	}

5。更新模板. yml〔t1〕

Globals:
  Function:
	Timeout: 600
Resources:
  S3Bucket:
	Type: 'AWS::S3::Bucket'
	Properties:
  	BucketName: MY_BUCKET_NAME
  GetMeetupDataFunction:
	Type: AWS::Serverless::Function
	Properties:
  	CodeUri: my_app/
  	Handler: app.lambda_handler
  	Policies:
    	- S3WritePolicy:
        	BucketName: MY_BUCKET_NAME
  	Runtime: python3.9
  	Architectures:
    	- x86_64
  	Events:
    	GetMeetupData:
      	Type: Schedule
      	Properties:
        	Schedule: 'rate(24 hours)'
        	Name: MeetupData
        	Description: getMeetupData
        	Enabled: True

6。跑``sam build

7。将应用程序部署到 AWS sam deploy --guided

有关开发 SAM 应用程序的更多详细信息,请查看AWS SAM 入门


自动化 AWS 成本优化
AWS 为您的企业提供了前所未有的价值,但经济高效地使用它可能是一项挑战。在这个免费点播的网络研讨会中,您将了解 AWS 成本优化工具和策略的概况。


使用 QuickSight 可视化数据

为了共享用户组数据,我选择使用亚马逊 S3 的 QuickSight 作为数据源。

QuickSight 是一项原生 AWS 服务,可与其他 AWS 服务无缝集成,如亚马逊红移、雅典娜、亚马逊 S3 和许多其他数据源。

作为一项完全托管的服务,QuickSight 使团队能够轻松创建和发布交互式仪表盘。除了构建强大的可视化功能,QuickSight 还提供了数据准备工具,可以轻松过滤数据并将其转换为所需的数据集。有关创建数据集的更多信息,请参见使用亚马逊 S3 文件创建数据集

以下是仪表板的屏幕截图示例。


参加 Amazon QuickSight 速成班,学习如何使用这款 AWS BI 工具 查看您的数据。


结论

在本帖中,我们讨论了如何成功实现以下目标:

  • 使用亚马逊定位服务对地址进行地理编码
  • 使用 Amazon EventBridge 和 AWS Lambda 每天将数据转换并加载到 S3
  • 使用 Amazon QuickSight 可视化和共享存储的数据
  • 使用 SAM 自动化和协调整个解决方案

该解决方案可用于深入了解与技术社区的互动。如果你有兴趣加入当地社区,请点击这里查看 AWS 用户组页面。

关于作者

Banjo 是 AWS 的一名高级开发人员,他在那里帮助开发人员对使用 AWS 感到兴奋。Banjo 热衷于将数据操作化,并围绕利用数据启动了一个播客、一个 meetup 和开源项目。当没有建造下一个大东西时,Banjo 喜欢通过玩视频游戏特别是 JRPGs 和探索他周围发生的事件来放松。

如何解决 3 个常见的 Azure AD Connect 错误

原文:https://acloudguru.com/blog/engineering/how-to-troubleshoot-3-common-azure-ad-connect-errors

在你的科技职业生涯中,你可能会听到类似这样的话:“我们希望利用云和我们现有的基础设施。我们如何做到这一点?”

有几种不同的方法可以使用微软 Azure 来帮助实现这个目标,但在我看来,Azure AD Connect 是最有用的方法之一。该服务使您能够将内部身份与 Azure 同步。

在这篇文章中,我们将探讨如何解决 Azure AD Connect 可能不时出现的一些问题。

什么是 Azure AD Connect?

Azure AD Connect 使您能够将本地身份与 Azure 同步,以创建一个单一的混合身份。我们为什么要这么做?

好吧,除非你喜欢你的终端用户在他们不记得他们的两个或三个帐户中的哪一个是用来访问云应用程序还是本地应用程序时对你大喊大叫,这是非常有用的!

好奇 Active Directory 和 Azure AD 的区别?

Azure AD Connect 故障诊断

首先,让我描述一下我们所处的情况和环境。你在一家蓬勃发展的电动汽车公司 Beep-Beep Incorporated 担任云工程师。

您已经在主 Windows Active Directory 域控制器上实施了带有直通身份验证的 Azure AD Connect,并且它已经将您的内部部署身份同步到 Azure Active Directory 几周了,没有出现任何问题。

然而,就像 IT 世界中的大多数事情一样,它在某个时候肯定会崩溃。

所以,让我们开始深入研究,看看你在使用 Azure AD Connect 时可能遇到的一些错误,如何对其进行故障排除,以及这些错误的修复方法!


获得痛苦的云词典
说云不一定要努力。我们分析了数以百万计的回复,找出了最容易让人犯错的概念。抓住这个云指南获取一些最痛苦的云术语的简洁定义。


错误# 1–同步帐户问题

上周,哔哔公司的安全团队要求所有域用户帐户密码重置。他们要求系统管理员执行这些更改,在密码重置后,一切都运行顺利。或者看起来是这样…

今天早上,您试图在内部域上为一名新员工创建一个用户帐户。不幸的是,它没有出现在 Azure AD 中。你的终端用户仍然可以通过 Azure 门户登录,所以这似乎是一个同步问题。我们来看看吧!

在对 AD connect 问题进行故障诊断时,我喜欢检查的第一个地方是 Azure 门户,所以现在让我们检查一下。

嗯,Azure AD Connect 主页上没有报告任何问题。让我们检查 AD Connect 运行状况页面中的同步错误。

那里也没有运气!如果门户未能报告错误,下一个最佳检查位置是安装了 AD Connect 代理的 Active Directory 域控制器上的 AD Connect Sync 服务管理器。

啊哈!我们终于看到了一些没有启动凭证的错误,所以让我们打开其中的一个,看看我们是否能找到更多的信息。

这就是:由于凭证无效,身份验证失败。太好了,现在我们知道到底是什么问题了!

但是等等,你可能会说,什么账号,哪些凭证是无效的?

这是一个很好的问题。在 Azure AD connect 的安装过程中,默认情况下,它会创建一个新的 Active Directory 帐户,AD connect 使用该帐户连接并同步到 Active Directory 林。这里有一个指向 MS 文档的链接,以获取更多信息:https://docs . Microsoft . com/en-us/azure/active-directory/hybrid/how-to-connect-install-custom # connect-your-directory

有了这些知识,系统管理员似乎更新了该帐户的密码(在我们的例子中,该帐户名为 MSOL_2abd5ac8a8dd ),但没有意识到它也需要在 AD Connect 设置中更新。让我们继续更新密码,以便我们可以再次开始同步!

转到同步服务管理器中的连接器选项卡,双击活动目录域服务连接器。在打开的“属性”窗口中,选择左侧窗格中的“连接到 Active Directory 林”选项,最后,在“密码”框中键入系统管理员使用的更新密码,然后单击“确定”。

干得好。现在,如果您再次检查同步服务管理器,您应该看到全面成功!


想提高您的 Azure Active Directory 技能吗?看看 ACG 为微软 Azure 广告新设的动手实验室。


错误 2——服务问题

哔哔公司又过了一周,当你周一早上到达时,你会收到服务台技术团队发来的一系列电子邮件和通知。您的最终用户报告,当他们尝试使用混合身份登录 Azure 时,会收到一条登录失败的错误消息。呀!

周五登录还好好的,现在,周一早上,一切都坏了。周末发生了什么?你记得域控制器在周日晚上被打了补丁并重启了,所以也许这与此有关?

是时候喝杯咖啡,上车,开始故障排除了!首先,我们将在进入 VM 之前检查 Azure 门户的错误。在我们深入进行故障排除之前,检查 Azure 是否有中断也是一个好主意:https://status.azure.com/en-us/status

主 AD connect 页面上没有报告任何问题,Azure 也没有中断。让我们检查并查看 Azure AD Connect 健康门户是否显示任何同步问题。

这里也没有错误。和上次一样,下一站是同步服务管理器应用程序中的域控制器。

嗯,这里也没有显示任何错误…当你到了这个阶段,你仍然没有看到任何错误,最好的检查点是广告连接服务,然后是 Windows 事件查看器。

让我们通过 Win key + R 和打字服务打开 Windows 服务。我们将检查并确保 AD Connect 服务正在运行。

嘿,身份验证代理服务没有运行!让我们右键单击那个家伙并启动它。

好消息。启动该服务后,您要求您的最终用户再次尝试登录,他们报告说他们现在可以访问 Azure 了!

那么,为什么这项服务会导致用户登录问题呢?

在这种情况下,AD Connect 通过传递身份验证进行设置。当用户尝试登录时,它将直接根据您的 Active Directory 域验证他们的密码。如果您的域控制器上的身份验证代理服务关闭,AD Connect 将无法对您的域进行身份验证,并且不会发生任何用户登录。

错误# 3-属性错误

哔哔公司又过了几个星期没有发生任何事故,但是现在又出现了另一个问题!今天早些时候,您要求系统管理员为新员工玛丽·安德森创建一个用户帐户。

不幸的是,她的用户帐户还没有显示在 Azure AD 中,并且她的帐户已经创建了几个小时。是时候排除故障了!

同样,主页上没有问题,所以现在是时候前往广告连接同步健康页面。

啊哦。看起来我们有一个数据验证失败!让我们点击那个框并进行调查。我还想提到的是微软有很好的关于 AD connect 故障排除的文档。

但是,为了获得完整的故障排除体验,我们将按照逻辑、渐进的顺序继续前进。

看起来我们的问题是你要求系统管理员创建的用户帐户,所以这就解释了为什么我们还没有在 Azure AD 中看到它。让我们点击玛丽·安德森的名字在这里,并看到更多关于错误的细节。

太好了。让我们把这个分解一下,看看我们有什么。在描述下,我们看到她的帐户未能同步,因为属性不符合验证要求。不幸的是,在 property 部分下,属性被列为 N/A…那么,哪个属性没有满足验证要求呢?(如果您已经能够识别问题,将获得加分!)

由于门户中没有更多信息,让我们进入我们的 VM,看看是否能发现任何错误。

我们的第一站是拉起我们值得信赖的广告连接同步服务管理器。看起来我们有一个错误要查看!让我们仔细看看,看看它是否能帮助我们缩小属性范围。

在那里!第一句话:the attribute [userPrincipalName], is not valid。我们看到有问题的属性是userPrincipalName,它是该用户的登录名。

有了这些知识,让我们看看 Mary 在 Active Directory 中的帐户,看看她的登录名有什么问题。

啊哈!她的用户名中有一个 Azure AD connect 不支持的&。(当创建包含&的帐户时,Active Directory 也不会警告您。)

这很好,但是我怎么知道不支持&字符呢?微软有关于各种属性允许和不允许的文档。因此,如果我们打开文档,向下滚动到用户主体名称部分,我们会看到有几个无效字符,例如:& < > * +和其他字符。

(这是另一个证明阅读文档的职业改变艺术的案例。)

现在我们知道了应该避免哪些字符,让我们继续删除&,保留 Mary 的登录名为MaryAnderson。单击“属性”选项卡底部的“确定”后,我们可以通过同步服务管理器启动同步,或者等待大约每 30 分钟开始一次同步。

同步发生后,我们看到 Mary 的用户帐户现在显示在 Azure AD 中,我们不再有任何数据验证失败!

干得好,我的朋友!

摘要

保持 Beep-Beep Incorporated 运行及其用户满意的伟大工作!在这篇文章中,我们看到了 Azure AD Connect 可能出现的几个不同的问题,这些错误看起来像什么,如何对它们进行故障排除,以及如何修复它们。

如果你想更多地了解混合环境,以及如何利用 Azure AD Connect 等 Azure 服务来支持你的组织,请查看我的课程Azure 上的混合环境简介。在这篇文章中,我介绍了几种有助于混合环境场景的 Azure 服务。


提升您的云计算事业。

加入云专家并获得课程、动手实验、测验和学习路径,这些将带你一步一步地从新手成为你所选择的云领域的专家。获得 7 天免费试用或查看我们的免费课程

Terraform 故障排除:5 个常见错误

原文:https://acloudguru.com/blog/engineering/how-to-troubleshoot-5-common-terraform-errors

关于 Terraform 有很多值得爱的地方——terra form 是我们去年在搜索最多的话题——但没有什么是完美的。出现错误,需要排除故障。我们可以帮忙。

在本帖中,我们将详细介绍您在使用 Terraform 管理基础设施时可能遇到的一些常见 Terraform 错误,并提供故障排除技巧。我们走吧!


通往更好职业的钥匙

立即开始 ACG 通过 AWS、Microsoft Azure、Google Cloud 等领域的课程和实际动手实验室来改变你的职业生涯。


Terraform 故障排除

在对有缺陷的 Terraform 配置进行故障排除时,您很可能会遇到以下四类错误之一:

  1. 语言错误 —你遇到的大多数错误很可能属于这一类。这些是您的配置中的语法错误,Terraform 会打印出行号和错误的简要说明。
  2. 状态错误 —这也是在使用 Terraform 时很可能遇到的常见错误。这些错误大多来自于您的状态被锁定或不同步。如果您的状态不同步,Terraform 可能会破坏或改变现有资源。当您遇到这些错误时,您的配置总是第一个要查看的地方。在您修复了任何配置错误之后,查看一下您的状态,并确保那里的一切都考虑到了。如果您的配置或状态中缺少任何东西,您会希望通过刷新、导入或替换资源来确保一切都是同步的。
  3. 核心错误 —这些级别的错误通常意味着你已经发现了一个 bug,甚至可能会产生一个编写 Terraform 的 Go 语言的恐慌错误。这些错误通常意味着当您与 Terraform 核心开发团队在 GitHub 上提交问题时,您将把日志转储到一个文件中,并将其附加到一个模板化的错误报告中。
  4. 提供者错误 —提供者错误也是如此。这些错误围绕着提供者插件和不同版本插件的可能问题。通常这会导致在 GitHub 中向该提供者插件的开发团队提交一个问题。

我们将重点关注您在使用 Terraform 管理基础设施时可能遇到的五个常见错误。这些错误属于我们的前两类。我们将看看如何修复每一个错误,并检查寻找什么,希望在未来避免它们。让我们来看看我们的第一个错误。


获取 Terraform 备忘单
查看排名前十的 Terraform 命令,并在我们的 Terraform 备忘单中获得您需要的所有基本命令的完整摘要,以充分利用这一直观的 IaC 工具。


1.地形变量插值误差

当试图在不使用正确的插值语法的情况下向输入变量追加内容时,会出现 Terraform 变量插值错误。使用terraform fmt命令可以捕捉到这个错误。这将产生一个类似于下面示例的错误:

$ terraform fmt
Error: Invalid character

  on main.tf line 46, in resource "aws_instance" "web_app":
 46:     Name = $var.name-web_app

This character is not used within the language.

Error: Invalid expression

  on main.tf line 46, in resource "aws_instance" "web_app":
  46:     Name = $var.name-web_app

Expected the start of an expression, but found an invalid expression token.

这里你可以看到我们得到了两个错误。一个通知您无效的字符,另一个通知您无效的表达式。两者在同一条线上。

修复?

改变这一点:

 tags = {
      Name = $var.name-web_app
   }
 }

对此:

 tags = {
      Name = "${var.name}-web_app"
   }
 }

只要您在编写 Terraform 配置代码时记住使用必要的插值语法,此错误是常见的,并且很容易修复和避免。

2.地形循环误差

在你的地形配置中,循环错误被认为是循环逻辑的一个实例。当一个资源依赖于另一个首先被创建的资源,但是那个资源依赖于另一个被创建的资源时,它在 Terraform 中导致一个失败创建的循环。让我们看一个使用 AWS 安全组的例子。

当您运行一个terraform validate命令时,错误如下:

$ terraform validate

Error: Cycle: aws_security_group.sg_ping, aws_security_group.sg_8080

除了导致问题的资源之外,在这个错误中没有什么可说的。如果我们看一下下面的配置,并寻找 AWS 安全组,我们可以看到问题是什么。您可以看到,我们要创建的两个安全组正在寻找要首先创建的另一个安全组。它们相互依赖,由于这种依赖关系,Terraform 不能创建任何一种资源。

 resource "aws_security_group" "sg_ping" {
   name = "Allow Ping"

   ingress {
     from_port       = -1
     to_port         = -1
     protocol        = "icmp"
     security_groups = [aws_security_group.sg_8080.id]
   }
 }

 resource "aws_security_group" "sg_8080" {
   name = "Allow 8080"

   ingress {
     from_port       = 8080
     to_port         = 8080
     protocol        = "tcp"
     security_groups = [aws_security_group.sg_ping.id]
   }
 }

要解决这个问题,我们可以简单地将我们的安全组资源和安全组规则分离到单独的资源中。这样,我们的安全组就在需要使用依赖关系的规则创建之前创建,而安全组是在创建之后创建的,如下例所示。

resource "aws_security_group" "sg_ping" {
   name = "Allow Ping"
}

resource "aws_security_group" "sg_8080" {
   name = "Allow 8080"
}

resource "aws_security_group_rule" "allow_ping" {
    type = "ingress"
    from_port = -1
    to_port = -1
    protocol = "icmp"
    security_group_id = aws_security_group.sg_ping.id
    source_security_group_id = aws_security_group.sg_8080.id
}

resource "aws_security_group_rule" "allow_8080" {
    type = "ingress"
    from_port = 80
    to_port = 80
    protocol = "tcp"
    security_group_id = aws_security_group.sg_8080.id
    source_security_group_id = aws_security_group.sg_ping.id
}

3.每个错误的平台

Terraform for_each 属性允许您根据您定义的标准创建一组相似的资源。

在下面的例子中,我们创建了一组相似的实例,每个实例被分配给不同的安全组。Terraform 无法解析 aws_security_group。*.id,因为 splat 表达式只插入列表类型,而 for_each 属性是为映射类型保留的。因此,我们需要替换*并添加一个本地值来实现这一点。

$ terraform validate
Error: Invalid reference

  on main.tf line 44, in resource "aws_instance" "web_app":
  44:   for_each               = aws_security_group.*.id

A reference to a resource type must be followed by at least one attribute
access, specifying the resource name.

Error: Invalid "each" attribute

  on main.tf line 47, in resource "aws_instance" "web_app":
  47:   vpc_security_group_ids = [each.id]

The "each" object does not have an attribute named "id". The supported
attributes are each.key and each.value, the current key and value pair of the
"for_each" attribute set.

首先,我们将更改下面的资源块:

 resource "aws_instance" "web_app" {
   for_each               = aws_security_group.*.id
   ami                    = data.aws_ami.ubuntu.id
   instance_type          = "t2.micro"
   vpc_security_group_ids = [each.id]
   user_data              = <<-EOF
               #!/bin/bash
               echo "Hello, World" > index.html
               nohup busybox httpd -f -p 8080 &
               EOF
   tags = {
     Name = "${var.name}-learn"
   }
 }

对此:

resource "aws_instance" "web_app" {
   for_each               = local.security_groups
   ami                    = data.aws_ami.ubuntu.id
   instance_type          = "t2.micro"
   vpc_security_group_ids = [each.value]
   user_data              = <<-EOF
               #!/bin/bash
               echo "Hello, World" > index.html
               nohup busybox httpd -f -p 8080 &
               EOF
   tags = {
     Name = "${var.name}-learn-${each.key}"
   }
 }
}

请注意,我们已经将 for_each 值从*更改为local.security_groups,并将 vpc_security_groups_ids 从[each.id]更改为[each.value]。我们还需要对我们的标签做一个快速的更改,这样它也可以显示通过将”${var.name}-learn”更改为”${var.name}-learn-${each.key}”而创建的每个 web 应用程序,这将把虚拟机的编号附加到标签名称的末尾。

接下来,我们将创建一个本地块,它将把安全组列表转换成一个映射类型,如下例所示:

locals {
  security_groups = {
    sg_ping   = aws_security_group.sg_ping.id,
    sg_8080   = aws_security_group.sg_8080.id,
  }
}

现在,当您运行terraform validate时,for_each 错误应该会得到解决。

4.Terraform 输出错误

Terraform 输出错误可能有几种不同的原因,但最常见的原因是没有捕获您尝试捕获的所有资源。以下面的错误为例。

在这个例子中,因为在我们的主配置文件中使用了 for 表达式,所以我们的输出变量需要更新,这样我们的输出就可以获取我们试图显示的所有资源。让我们来看看。

$ terraform validate

 Error: Missing resource instance key

   on outputs.tf line 3, in output "instance_id":
    3:   value       = aws_instance.web_app.id

 Because aws_instance.web_app has "for_each" set, its attributes must be
 accessed on specific instances.

 For example, to correlate with indices of a referring resource, use:
     aws_instance.web_app[each.key]

 Error: Missing resource instance key

   on outputs.tf line 8, in output "instance_public_ip":
    8:   value       = aws_instance.web_app.public_ip

 Because aws_instance.web_app has "for_each" set, its attributes must be
 accessed on specific instances.

 For example, to correlate with indices of a referring resource, use:
     aws_instance.web_app[each.key]

 Error: Missing resource instance key

   on outputs.tf line 13, in output "instance_name":
   13:   value       = aws_instance.web_app.tags

 Because aws_instance.web_app has "for_each" set, its attributes must be
 accessed on specific instances.

 For example, to correlate with indices of a referring resource, use:
     aws_instance.web_app[each.key]

在上面的错误中,我们试图输出应用 id、公共 ip 和实例的标签。由于我们有多个这样的变量,Terraform 抛出了一个错误,因为我们的变量只需要一个,而 Terraform 不知道应该从输出中获取哪一个。下面是我们的 outputs.tf 文件的样子:

 output "instance_id" {
   description = "ID of the EC2 instance"
    value       = aws_instance.web_app.id
 }

 output "instance_public_ip" {
   description = "Public IP address of the EC2 instance"
    value       = aws_instance.web_app.public_ip
 }

output "instance_name" {
   description = "Tags of the EC2 instance"
   value        = aws_instance.web_app.tags
}

在这里,您可以看到我们的输出变量只是为了获取单个 id、单个公共 ip 和单个标签而编写的。

下面是我们用来修复此错误的代码示例:

 output "instance_id" {
   description = "ID of the EC2 instance"
    value       = [for instance in aws_instance.web_app: instance.id]
 }

 output "instance_public_ip" {
   description = "Public IP address of the EC2 instance"
    value       = [for instance in aws_instance.web_app: instance.public_ip]
 }

output "instance_name" {
   description = "Tags of the EC2 instance"
   value        = [for instance in aws_instance.web_app: instance.tags.Name]
}

在上面的例子中,我们将通过使用for表达式来捕获所有实例 id、公共提示和每个实例的标签,从而修复错误。

5.地形状态误差

您的 Terraform 状态文件存储了有关已配置资源的信息。它会将资源映射到您的配置,然后跟踪所有相关的元数据。如果状态不同步,Terraform 可能会改变你现有的资源。排除任何配置错误后,最好检查一下您的状态。通过刷新、导入或替换资源,确保您的配置同步。

使用 Terraform 状态时,您可能会收到的一个错误是 Terraform 正在获取状态锁。下面是一个错误示例:

Acquiring state lock. This may take a few moments…

  Error: Error acquiring the state lock

  Error message: ConditionalCheckFailedException: The conditional request failed
  Lock Info:
    ID:        c2024f2b-b615-05bf-e516-e49ed2852087
    Path:      <…>
    Operation: OperationTypePlan
    Who:       <…>
    Version:   1.0.2
    Created:   2021-07-28 14:54:32.498842 +0000 UTC
    Info:      

  Terraform acquires a state lock to protect the state from being written
  by multiple users at the same time. Please resolve the issue above and try
  again. For most commands, you can disable locking with the “-lock=false”
  flag, but this is not recommended.

这种情况偶尔会发生,通常意味着另一个团队成员正在对基础设施进行更新。有时候锁会卡住。为了解决这个问题,我们可以尝试一些事情。

首先,我们可以运行带有-lock=false标志的apply命令,就像错误告诉我们的那样。以下是该命令的一个示例:

terraform force-unlock <ID>

有时候这个命令不起作用。你可以通过一个-force标志到命令上来尝试,如果第一个命令不工作就强制解锁如下:

terraform force-unlock -force <ID>

您可以在错误消息中找到这些命令的 ID。

如果两个命令都不能解锁状态,您可以等待几分钟左右,然后再试一次。最后,尽量杀死悬挂 terraform 进程。如果你在 Windows 机器上运行 Terraform,在任务管理器中找到进程,杀死它。如果您在 Linux 或 Mac 上运行 Terraform,请运行以下命令:

ps aux | grep terraform
kill -9 <process_id>

如果其他方法都失败了,这应该可以解决锁的问题。


读作:云状,地形,还是 CDK?AWS 上的 IAC 指南 概述 AWS 中可用的 IaC 工具,以及如何在它们之间进行选择。


动手排除 Terraform 故障

这就是了,大师们!这些只是您在使用 Terraform 时可能会遇到的一些常见错误。每个错误通常很容易修复,你只需要知道你在看什么。

Terraform 很好地解释了错误,并直接指出了配置中的问题。我发现对 Terraform 进行故障诊断比我用过的其他工具更容易。错误消息的详细程度给我留下了深刻的印象,我非常喜欢它告诉您哪个配置文件有问题,以及在文件的哪里可以找到问题。

希望这篇文章能帮助你容易地识别和修复你在使用 Terraform 时遇到的一些常见错误。保持威严,大师们——让我们继续地球化!

想了解更多有关如何排除 Terraform 故障的信息?查看我的使用 Terraform 课程的动手故障排除。

您还可以浏览我们的 Terraform 培训顶尖开发技能和技术以及本月在 ACG 有什么免费的。

通过在推特上关注 ACG、关注 T2、关注脸书、关注 YouTube 上的云专家,或者加入我们令人敬畏的不和谐社区。

使用 EventBridge 集中 AWS 组织事件

原文:https://acloudguru.com/blog/engineering/how-to-use-eventbridge-to-centralize-aws-organizations-events

Amazon EventBridge 是一种无服务器的事件路由服务,允许我们实时对传入的事件做出反应。在本帖中,我们将采用一个场景,展示如何在 AWS 组织内实现跨帐户通知,然后利用 EventBridge 将集中的事件流转发到第三方 SaaS 工具。


加速您的云计算职业生涯

云专家让你轻松(也很棒)提升你的云事业——即使你对技术完全陌生。查看 ACG 的免费课程现在就开始免费试用。


什么是亚马逊 EventBridge?

Amazon EventBridge 是 AWS 提供的原始 CloudWatch Events 服务的演变。它允许我们利用无服务器事件总线,根据我们帐户内的传入事件实时执行操作任务。

这项服务的美妙之处在于我们可以完全定制实现。以前,当我们必须使用 CloudWatch 事件时,我们只能利用默认的事件总线,并且集成选项非常有限。

然而,使用 Amazon EventBridge 允许我们从头到尾完全定制选项和设置。

  • 您的团队想要几个定制的事件总线用于不同的用例?亚马逊 EventBridge 提供了这种服务。
  • 您想要配置多个规则以允许在单个事件总线上并行处理事件吗?亚马逊 EventBridge 也提供这种服务。
  • 哦,你还希望能够在 AWS 帐户和地区之间发送事件?!亚马逊 EventBridge。😉

第三方 SaaS 供应商

Amazon EventBridge 为我们提供了许多默认的集成,截至本文发布时,共有 34 个认证合作伙伴。相当令人印象深刻!

这些受支持的集成使我们能够轻松地将我们的事件总线与我们选择的 SaaS 供应商连接起来——比如 DataDog、PagerDuty 和 MongoDB 等等。

当使用这些支持的平台时,我们根据发送到 Amazon EventBridge 和从 Amazon event bridge 接收的数据执行我们自己的自定义操作。

一个完美的例子是传呼机责任。我们可以轻松监控我们帐户中的特定事件模式,当匹配时,利用一个使用 PagerDuty 连接的规则,以便我们的运营团队可以接收警报并采取适当的补救措施或步骤。


Hands On Cloud Blog Header

学习 AWS 的 10 个有趣的动手项目 学习 AWS 没有比使用所提供的服务来构建真实世界的应用程序更好的方法了。看看这些 10 个好玩的 AWS 项目,难度各不相同。


AWS 默认服务

你会问,我们可以在 EventBridge 中使用多少 AWS 服务?嗯,简单来说,一个 lot

下面是当前支持的 AWS 服务的详细列表,这些服务可以生成默认的服务事件,这些事件很容易与 EventBridge 一起使用:来自 AWS 服务的事件

如您所见,有许多服务可供我们使用!

让我们以这个示例架构为场景:

方案

我们有一个托管在 EC2 compute 上的简单内部应用程序,它运行在一个自定义软件上,该软件在一个私有的 S3 存储桶中存储和更新。

早些时候,在实现 EventBridge 之前,每当我们想要更新软件时,都会花费运营团队数小时的时间。

现在,使用 EventBridge,我们可以将这个过程从几个小时缩短到仅仅几分钟(T3)。通过利用来自托管我们的定制软件的特定私有存储桶的 S3 PutObject API 调用,我们可以在我们的事件总线上创建 EventBridge 规则,并进行模式匹配。一旦生成了PutObject事件,我们就利用 EventBridge 规则来监视特定资源( S3 桶)上的特定事件( PutObject )。

使用我们创建的规则,我们可以设置一个定制 Systems Manager 自动化文档的目标,该文档使用RunCommand功能在目标 EC2 实例上执行软件更新 EventBrige 允许我们完全自动化那些需要花费大量时间才能完成的繁琐任务。

EventBridge 允许我们实施一个完全无服务器的解决方案来自动化我们的定制软件更新!🚀

AWS 组织

我们前面提到的 EventBridge 提供的一个令人惊叹的功能是使用跨帐户和跨地区设计来利用服务的能力。由于这个强大的功能,我们可以利用 EventBridge 来帮助我们根据 AWS 组织内任何帐户中发生的事件采取行动。

以下面的图表为例:

方案

通过在安全帐户的 SecOps 事件总线上设置一个资源策略,SecOps 小组可以很容易地允许组织内的所有帐户(或特定的组织单位)向集中的事件总线发送事件。然后,他们可以通过事件总线上的规则进行模式匹配,该规则查找从组织帐户中生成的需要审查和潜在解决的特定事件。

对于上面的这个例子,我们有一个初级工程师,他恶意地或意外地从他们的开发帐户中删除了一个 Amazon 弹性容器注册映像。SecOps 不希望任何初级工程师能够清除图像;相反,他们只希望高级工程师这样做。

为了识别此类问题,他们与组织共享其事件总线,创建允许组织跨帐户和跨区域发送事件的资源策略,然后在每个子 AWS 帐户的默认事件总线上实现一个规则。

此默认规则将是传入 ECR 事件中删除操作类型字段的模式匹配。一旦匹配,它会将该事件发送到 SecOps 帐户事件总线,然后他们可以按照自己认为合适的方式处理该事件。

在本例中,他们只需使用社交网络向 SecOps 工程师团队发送警报。然而,我们也可以集成一个像 PagerDuty 这样的 SaaS 来处理警报和通知。

了解更多关于 Amazon EventBridge 的信息

如果你准备好了解更多关于亚马逊 EventBridge 服务及其提供的所有惊人功能,一定要查看亚马逊 EventBridge 课程的介绍。

在本课程中,我们将介绍服务本身的基础知识,并对其工作原理有一个深入的了解。在基础之上,我们将在更深的层次上深入一些中间话题。我们将讨论诸如事件源、事件规则和目标或 API 目的地之类的东西。甚至会有一个部分显示我们可以在何处以及如何实施基于跨帐户资源的策略,该策略允许我们利用跨帐户和跨区域 EventBridge 架构。

跟上所有云的步伐

在 YouTube 上订阅云专家的每周云新闻和更新。您也可以在脸书上喜欢我们,在 Twitter 上关注我们,或者在 Discord 上加入对话!


Complete guide to the Cloud and Dictionary

获得痛苦的云词典
说云不一定要努力。我们分析了数以百万计的回复,找出了最容易让人犯错的概念。抓住这个云指南获取一些最痛苦的云术语的简洁定义。

如何使用 GitHub 操作来自动化 Terraform

原文:https://acloudguru.com/blog/engineering/how-to-use-github-actions-to-automate-terraform

在这篇博文中,我们将看一个使用 GitHub Actions 来自动化 Terraform 的例子,并为您提供一个快速简单的 CI/CD 解决方案。

我相信大多数管理员都会同意, Terraform 是在您的环境中部署和管理基础架构的非常强大和高效的工具。但是你知道你可以用 GitHub 动作让它变得更好并自动化吗?

GitHub Actions 将持续集成添加到 GitHub 库,以自动化您的软件构建、测试和部署。

当使用 CI/CD 自动化 Terraform 时,它将实施配置最佳实践,促进协作,并自动化 Terraform 工作流。在这篇博客中,我将带领你使用 Terraform 和 GitHub 操作创建一个 AWS S3 网站。


加速您的职业发展

从 ACG 开始通过 AWS、Microsoft Azure、Google Cloud 等领域的课程和实际动手实验室改变你的职业生涯。


先决条件

因此,在能够使用 GitHub 操作来自动化 Terraform 之前,首先需要设置和配置这三样东西:

  1. Terraform CLI 已下载并安装。
  2. 您将需要一个 AWS 帐户,有一个 AWS 访问密钥和秘密密钥,以及授予用户的 AmazonS3FullAccess IAM 权限。您还需要创建一个 S3 存储桶来远程存储 Terraform 状态。
  3. 最后,您需要建立一个具有以下结构的 GitHub 存储库:
  • 一个名为 src 的目录,你将在其中存储你的网站代码。
  • 答。 github 目录,然后您将在其中创建一个工作流目录并存储您的 github 动作配置文件。
  • 一个 terraform 目录,您将在其中存储您的 terraform 配置文件。

想从 Terraform 中获得最大收益的所有基本命令列表吗?查看我们的 Terraform 备忘单

配置您的 AWS 提供商和远程状态

假设您已经配置了所有的先决条件,接下来您必须做的就是配置 Terraform 来引用您的 AWS 帐户。

您需要在 GitHub repo 中的 terraform 目录下创建一个名为 main.tf 的文件,配置如下:

terraform {
  required_providers {
    aws = {
      source = "hashicorp/aws"
      Version = "~>3.27"
    }
  }

  required_version = ">=0.14.9"

}

provider "aws" {
  version = "~>3.0"
  region  = "east-us-1"
}

该代码块将告诉 Terraform 我们想要提供 AWS 资源,并且我们将资源创建默认为 AWS 内的 east-us-1 区域。(您可以将其更改为适合您的任何地区。)

接下来,您需要将远程状态添加到我们的配置中。您需要将下面的代码块添加到 main.tf 文件中,就在下面的 required_version 值之后,并用您的 bucket 名称和 bucket 键替换占位符值:

required_version = ">=0.14.9" 

   backend "s3" {
       bucket = "[Remote_State_S3_Bucket_Name]"
       key    = "[Remote_State_S3_Bucket_Key]"
       region = "east-us-1"
   }
}

状态是 Terraform 用来比较基础设施的当前状态和期望状态的。默认情况下,Terraform 在本地存储状态。

这对于测试和诸如此类的事情来说很好,但是对于大多数生产级别或大型基础设施来说,出于安全和协作的目的,您真的应该考虑远程存储状态。

此外,由于我们使用 GitHub 操作,状态将需要远程创建。如果没有远程状态,Terraform 会生成一个本地文件,但不会提交给 GitHub,因此我们会丢失状态数据。这可能会导致自动化的各种问题,因为 Terraform 非常依赖状态数据。

完成你的地形配置

现在,您已经将远程后端添加到了您的配置中,我们现在可以添加资源块,它将定义您希望 Terraform 将哪些资源部署到您的基础架构中。您需要添加以下代码块来创建网站所需的 S3 资源:

resource "aws_s3_bucket" "s3Bucket" {
     bucket = "[BUCKET_NAME_HERE]"
     acl       = "public-read"

     policy  = <<EOF
{
     "id" : "MakePublic",
   "version" : "2012-10-17",
   "statement" : [
      {
         "action" : [
             "s3:GetObject"
          ],
         "effect" : "Allow",
         "resource" : "arn:aws:s3:::[BUCKET_NAME_HERE]/*",
         "principal" : "*"
      }
    ]
  }
EOF

   website {
       index_document = "index.html"
   }
}

设置 GitHub 动作

既然我们已经解决了这个问题,现在我们可以继续设置我们的 GitHub 操作了。

现在你可能会问,“为什么我要把我们的 Terraform 配置添加到 GitHub 动作或其他 CI/CD 管道中?”以下是一些原因:

  • 管道创造更多可见性。在团队中使用 Terraform 管理基础设施时,您可以轻松查看正在运行的内容以及运行时间。在本地运行时,只有您拥有这种可见性。
  • 管道创造可追溯性。当在管道中运行 Terraform 时,它们通常存储日志。这允许您在方便的时候回顾旧的构建及其输出。
  • 流水线创造重复性。当您配置管道时,它应该每次都执行相同的操作。这将使调试和故障排除更加容易。
  • 最后,他们创造了简单性。管道本质上可以取代本地实例。这样你就不用设置本地的依赖关系什么的了。

在 GitHub 动作可以运行之前,您需要做的第一件事是将您的 AWS 凭证添加到存储库中。为此,您需要遵循以下步骤:

  1. 导航到您的存储库并选择设置选项卡。
  2. 一旦你看到左边有一个秘密部分,从列表底部数第三个,点击它。
  3. 点击新建储存库密码按钮。
  4. 添加您的 AWS_SECRET_ACCESS_KEY 并点击添加秘密按钮。
  5. 重复步骤 3,添加您的 AWS_ACCESS_KEY_ID ,并点击添加秘密按钮。

接下来,在中创建 actions.yaml 文件。github/workflows 目录下有如下代码:

name: Deploy Infrastructure

on:
  push:
    branches:
      - master

jobs:
  tf_fmt:
    name: Deploy Site
    runs-on: ubuntu-latest
    steps:

    - name: Checkout Repo
      uses: actions/checkout@v1

    - name: Terraform Init
      uses: hashicorp/terraform-github-actions/init@v0.4.0
      env:
        GITHUB_TOKEN: ${{ secrets.GITHUB_TOKEN }}
        TF_ACTION_WORKING_DIR: 'terraform'
        AWS_ACCESS_KEY_ID:  ${{ secrets.AWS_ACCESS_KEY_ID }}
        AWS_SECRET_ACCESS_KEY:  ${{ secrets.AWS_SECRET_ACCESS_KEY }}

    - name: Terraform Validate
      uses: hashicorp/terraform-github-actions/validate@v0.3.7

    - name: Terraform Apply
      uses: hashicorp/terraform-github-actions/apply@v0.4.0
      env:
        GITHUB_TOKEN: ${{ secrets.GITHUB_TOKEN }}
        TF_ACTION_WORKING_DIR: 'terraform'
        AWS_ACCESS_KEY_ID:  ${{ secrets.AWS_ACCESS_KEY_ID }}
        AWS_SECRET_ACCESS_KEY:  ${{ secrets.AWS_SECRET_ACCESS_KEY }}

    - name: Sync S3
      uses: jakejarvis/s3-sync-action@master
      env:
        SOURCE_DIR: './src'
        AWS_REGION: 'us-east-1'
        AWS_S3_BUCKET: '[BUCKET_NAME_HERE]'
        AWS_ACCESS_KEY_ID: ${{ secrets.AWS_ACCESS_KEY_ID }}
        AWS_SECRET_ACCESS_KEY: ${{ secrets.AWS_SECRET_ACCESS_KEY }}

我们在这里声明,任何时候有推送到 src 目录的时候,都会启动一个动作,让 Terraform 部署对你的网站所做的更改。您需要确保使用您的 bucket 名称更新 yaml 文件。你还需要确保你已经创建了 src 目录,并在其中添加了一个index.html文件。

成功!

就是这样!您已经使用 Terraform 和 GitHub 操作成功创建了一个 CI/CD 管道。想想这种可能性,以及这样的过程能为您节省多少时间,尤其是当您的站点或基础设施增长时。使用 Terraform 和 GitHub 操作确实可以帮助创建一个简化的、易于管理的、可重复的流程,从而节省时间并减少麻烦。下次见,大师们!

了解有关使用 Terraform 管理应用程序和基础设施的更多信息

请查看我的新课程使用 Terraform 管理应用程序和基础设施,体验 Terraform 的奇妙世界!

我们将探讨管理员如何使用 Terraform 轻松地向各种提供商部署基础设施。无论是单一的简单配置,还是包含多个提供商的更复杂配置,本课程都将展示从一个位置管理基础架构是多么简单。


获得痛苦的云词典
说云不一定要努力。我们分析了数以百万计的回复,找出了最容易让人犯错的概念。抓住这个云指南获取一些最痛苦的云术语的简洁定义。

在云上使用 Redis?以下是你应该知道的十件事

原文:https://acloudguru.com/blog/engineering/how-to-use-redis-on-cloud

大规模操作有状态分布式系统是很难的,Redis 也不例外。托管数据库通过承担大量繁重的工作使生活变得更容易,但是您仍然需要一个良好的体系结构并应用最佳实践——无论是在服务器(Redis)上还是在客户机(应用程序)上。

这篇博客文章涵盖了一系列与 Redis 相关的最佳实践、技巧和诀窍,包括集群可伸缩性、客户端配置、集成和指标。虽然我会不时地引用亚马逊 memory db T1 和 T2 elastic cache T3 来描述 Redis,但是大多数(如果不是全部)都适用于 Redis 集群。

这绝不意味着是一份详尽的清单。我只是选择了 10,因为这是一个很好的,有益健康的数字!

让我们直入主题,从您在扩展 Redis 集群方面有哪些选择开始。


通往更好职业的钥匙

立即开始 ACG 通过 AWS、Microsoft Azure、Google Cloud 等领域的课程和实际动手实验室来改变你的职业生涯。


1。可扩展性选项

你可以将放大或者将缩小:

  • 纵向扩展(纵向)–您可以增加单个节点/实例的容量,例如从亚马逊 EC2 db.r6g.xlarge type升级到db.r6g.2xlarge
  • 横向扩展(水平)–您可以向群集中添加更多节点

向外扩展的需求可能由几个原因驱动。

如果您需要处理读取繁重的工作负载,您可以选择添加更多副本节点。这适用于 Redis 集群设置(如MemoryDB)或非集群主副本模式,如集群模式禁用的elastic cache

如果您想增加容量,您会发现自己受到主副本模式的限制,应该选择基于 Redis 集群的设置。您可以增加集群中碎片的数量——这是因为只有主节点可以接受写入,并且每个碎片只能有一个主节点。

这还具有提高整体高可用性的额外好处。

图 1: Redis(禁用集群模式)和 Redis(启用集群模式)集群——Redis 文档的 ElastiCache】

2。在扩展您的集群之后,您最好使用这些副本!

大多数 Redis 集群客户端(包括redis-cli)的默认行为是将所有读取重定向到节点。如果您添加了读取副本来扩展读取流量,它们将处于闲置状态!

您需要切换到 READONLY 模式,以确保处理所有读取请求的副本不仅仅是被动的参与者。确保正确配置 Redis 客户端——这将因客户端和编程语言而异。

例如,在 Go Redis 客户端中,您可以将ReadOnly设置为 true:

client := redis.NewClusterClient(
	&redis.ClusterOptions{
		Addrs:     []string{clusterEndpoint},
		ReadOnly:  true,
		//..other options
	}) 

要进一步优化,还可以使用RouteByLatencyRouteRandomly,两者都会自动开启ReadOnly模式。

你可以参考一下 Java 客户端比如莴苣

3。使用读取副本时要注意一致性特征

您的应用程序可能会从副本中读取陈旧数据——这是最终一致性在起作用。由于主节点到副本节点的复制是异步,因此您发送到主节点的写入可能尚未反映在读取的副本中。

当您有大量读取副本时,尤其是跨多个可用性分区时,很可能会出现这种情况。如果这对于您的用例来说是不可接受的,那么您将不得不求助于使用主节点进行读取。

MemoryDB 或 ElastiCache for Redis 中的 ReplicationLag 指标可用于检查副本在应用主节点的更改方面落后多少(以秒为单位)。

强一致性呢?

MemoryDB的情况下,主节点的读数是强一致的。这是因为客户端应用程序只有在写入(到主节点)到持久多 AZ 事务日志之后才会收到成功的写入确认。

4。请记住,您可以影响您的键在 Redis 集群中的分布方式

Redis 没有使用一致散列(像许多其他分布式数据库一样),而是使用散列槽的概念。总共有 16384 个槽,散列槽的范围被分配给集群中的每个主节点,并且每个键属于特定的散列槽(从而被分配给特定的节点)。如果键属于不同的哈希槽,在 Redis 集群上执行的多键操作将无法工作。

但是,你并不完全受集群的支配!可以通过使用散列标签来影响密钥的放置。因此,您可以确保特定的键具有相同的哈希槽。

例如,如果您将客户 ID 42 的订单存储在名为customer:42:orders的散列中,将客户概要信息存储在customer:42:profile中,那么您可以使用花括号来定义将被散列的特定子串。

在这种情况下,我们的键是{customer:42}:orders{customer:42}:profile{customer:42}现在驱动散列槽的放置。现在我们可以确信这两个键都在同一个散列槽中(因此是同一个节点)。

5。你考虑过缩小规模吗?

你的应用是成功的,它有很多用户和流量。您横向扩展了集群,但事情仍然进展顺利。厉害!

但是如果你需要缩减规模呢?

在这样做之前,您需要注意几件事情:

  • 每个节点上都有足够的空闲内存吗?
  • 非高峰时段可以这样吗?
  • 它将如何影响您的客户端应用程序?
  • 在此阶段,您可以监控哪些指标?(如CPUUtilizationCurrConnections等。)

参考 MemoryDb for Redis 文档中的一些最佳实践,以更好地规划扩展。

6。当事情出错时…

面对现实吧,失败是令人羡慕的。重要的是你是否为他们做好了准备?对于 Redis 集群,需要考虑以下几点:

  • 面对失败,您是否测试过您的应用/服务行为?如果没有,请做!使用 MemoryDB 和 ElastiCache for Redis,您可以利用故障转移 API 来模拟主节点故障并触发故障转移。
  • 您有副本节点吗?如果您只有一个带有单个主节点的碎片,那么如果该节点出现故障,您肯定会停机。
  • 你有多个碎片吗?如果您只有一个碎片(包含主碎片和副本碎片),那么在该碎片的主节点出现故障的情况下,群集将无法接受任何写入。
  • 您的碎片是否跨越多个可用性区域?如果你有跨多个 AZ 的碎片,你将更好地准备处理 AZ 故障。

在所有情况下,MemoryDB 确保在节点替换或故障转移期间不会丢失数据

无法连接 Redis,求助!

Tl;DR:可能是网络/安全配置

这是一件经常让人犯错的事情!使用 MemoryDB 和 ElastiCache,您的 Redis 节点在一个 VPC 中。如果您有一个部署到计算服务的客户端应用程序,如 AWS LambdaEKSECSApp Runner 等。,您需要确保您拥有正确的配置,特别是在 VPC 和安全组方面。

这可能因您使用的计算平台而异。例如,你如何配置一个 Lambda 函数来访问 VPC 中的资源,与 App Runner 如何做(通过一个 VPC 连接器)或者甚至 EKS(尽管从概念上来说,它们是相同的)相比,会有些许不同。

8。Redis 6 带有访问控制列表——使用它们!

没有理由不对您的 Redis 群集应用身份验证(用户名/密码)和授权(基于 ACL 的权限)。MemoryDB符合 Redis 6,且支持 ACL 。然而,为了与旧的 Redis 版本保持一致,它为每个帐户配置了一个默认用户(用户名为默认)和一个不可变的 ACL,称为开放访问。如果您创建了一个MemoryDB集群并将其与该 ACL 相关联:

  • 客户端可以连接而无需认证
  • 客户端可以在任何键上执行任何命令(也没有权限或授权)

作为最佳实践:

  • 定义显式 ACL
  • 添加用户(以及密码),以及
  • 根据您的安全要求配置访问字符串。

您应该监控身份验证失败。例如,MemoryDB 中的 AuthenticationFailures 指标为您提供了失败的身份验证尝试的总数——设置警报以检测未授权的访问尝试。

别忘了外围安全

如果您已经在服务器上配置了 TLS,不要忘记在您的客户机上也使用它!例如,使用 Go Redis:

client := redis.NewClusterClient(
	&redis.ClusterOptions{
		Addrs:     []string{clusterEndpoint},
		TLSConfig: &tls.Config{MaxVersion: tls.VersionTLS12},
		//..other options
	}) 

不使用它会给你带来不太明显的错误(比如一个普通的i/o timeout)并使事情难以调试——这是你需要小心的事情。

9。有些事情你不能做

作为托管数据库服务,MemoryDB 或 elastic cache限制对某些 Redis 命令的访问。例如,你不能使用集群相关命令的子集,因为集群管理(缩放、分片等。)是由服务本身负责的。

但是,在某些情况下,你也许可以找到替代方案。以监控运行缓慢的查询为例。虽然您无法使用配置集latency-monitor-threshold进行配置,但是您可以在参数组中设置slowlog-log-slower-than setting,然后使用slowlog get 对其进行比较。

10。使用连接池

您的 Redis 服务器节点(即使是强大的节点)资源有限。其中之一是支持一定数量的并发连接的能力。大多数 redis 客户机提供连接池,作为有效管理 Redis 服务器连接的一种方式。重用连接不仅有利于 Redis 服务器,而且由于开销更少,客户端性能也得到提高——这在高容量场景中非常重要。

ElastiCache 为提供了一些您可以跟踪的指标:

  • CurrConnections:客户端连接的数量(不包括读取副本的数量)
  • NewConnections:特定时间段内服务器已经接受的连接总数。

11。(奖励)使用合适的连接模式

这是一个显而易见的错误,但我还是要把它说出来,因为这是我见过的最常见的“入门”错误之一。

您在客户端应用程序中使用的连接模式将取决于您是否使用独立的 Redis 设置,即 Redis 集群(很可能)。大多数 Redis 客户对它们进行了明确的区分。例如,如果您使用的是启用了MemoryDBElasticache集群模式的 Go Redis 客户端,则需要使用 NewClusterClient (不是 NewClient ):

redis.NewClusterClient(&redis.ClusterOptions{//....})

有意思的是,还有universal client选项哪个更灵活一点(在写这篇文章的时候,这是在 Go Redis v9)

如果你没有使用正确的连接模式,你会得到一个错误。但有时,根本原因会隐藏在一般的错误信息后面——所以您需要保持警惕。

结论

您做出的架构选择最终将由您的特定需求驱动。我建议您浏览以下博客文章,深入了解 MemoryDB 和 ElastiCache for Redis 的性能特征,以及它们如何影响您设计解决方案的方式:

Abhishek 目前是 AWS 的首席开发人员,专注于数据库。在他的职业生涯中,他身兼数职,包括工程、产品管理和开发者权益。他的大部分工作都围绕着开源技术,包括分布式数据系统和云原生平台。Abhishek 也是一名开源贡献者、热心的博客作者和作家。

使用和声明 Terraform 输出-输入指南

原文:https://acloudguru.com/blog/engineering/how-to-use-terraform-inputs-and-outputs

Terraform 是一个非常强大和高效的工具,用于在您的环境中部署和管理基础架构。有了这么多的提供者和模块,没有什么是 Terraform 做不到的。

Terraform 的最大吸引力在于,您可以使用相同的配置在多个环境中创建资源,或者随着基础架构的增长和变得更加复杂,使用变量的需求也会增长。实现这一点的方法是使用输入和输出变量。

在这篇文章中,我们将探讨什么是变量,以及如何在你的地形配置中使用它们。

什么是 Terraform 输出变量

将输出变量视为 Terraform 模块的返回值。输出变量有几种用途。以下是一些例子:

  • 我们可以使用输出向父模块公开子模块资源属性的子集。
  • 在运行terraform apply之后,我们可以在 CLI 输出中使用输出来打印根模块的值。
  • 如果使用远程状态,其他配置可以通过terraform_remote_state数据源访问根模块的输出

这些只是我们为什么要使用输出变量的几个例子。要声明输出值,必须在输出块中声明它们,如下例所示。

 output "instance_ip_addr" {
  value = aws_instance.server.private_ip
} 

声明输出变量时,有三个可选参数可供使用。

  • 描述–您可以使用此参数描述每个值的用途。
 output "instance_ip_addr" {
  value       = aws_instance.server.private_ip
  description = "The private IP address of the main server instance."
} 
  • 敏感–使用该选项时,Terraform 将隐藏terraform planterraform apply命令输出中标记为敏感的值。
 output "db_password" {
  value       = aws_db_instance.db.password
  description = "The password for logging in to the database."
  sensitive   = true
} 
  • Depends _ on–当父模块访问其子模块之一导出的输出值时,该选项非常有用。该输出值的依赖性允许 Terraform 正确地确定在其他模块中定义的资源之间的依赖性。
 output "instance_ip_addr" {
  value       = aws_instance.server.private_ip
  description = "The private IP address of the main server instance."

  depends_on = [
    # Security group rule must be created before this IP address could
    # actually be used, otherwise the services will be unreachable.
    aws_security_group_rule.local_access,
  ]
} 

在构建配置时,输出变量非常有用。尤其是当任何部署基础设施或基础设施中的资源的人需要特殊的指令或登录信息时。让我们来总结一下使用变量的第三种方式。

如何使用局部变量

局部变量为表达式指定一个名称,这样它就可以在一个模块中多次使用而不会重复。如果您熟悉大多数编程语言,局部变量就像函数的临时局部变量。下面是一个如何声明局部变量的例子。

 locals {
  # Common tags to be assigned to all resources
  common_tags = {
    Service = local.service_name
    Owner   = local.owner
  }
} 

然后,您可以通过在配置的资源块中引用类似于 so : tags = local.common_tags的表达式来调用局部变量。局部值只能在声明它的模块内的表达式中访问。

你可能会问,我什么时候使用局部变量!局部变量有助于避免在一个配置中多次重复相同的值或表达式。但是,如果它们被过度使用,它们还会隐藏实际使用的值,使配置很难被未来的配置参与者阅读。建议适量使用。

什么是 Terraform 输入变量?

我们已经谈了很多输出变量,但现在让我们谈谈输入变量及其用途。

输入变量是将参数应用于 Terraform 配置的主要方式。它允许在不改变 Terraform 模块自己的源代码的情况下定制配置的各个方面,并允许在不同的配置之间共享模块。

您可以在配置的根模块中声明变量。您可以使用 CLI 选项和环境变量来设置它们。如果您熟悉大多数编程语言,Terraform 模块可以与函数定义相媲美:

  • 输入变量类似于函数参数。
  • 输出值类似于函数返回值。
  • 局部值类似于函数的临时局部变量。

Terraform Cheatsheet

需要更多地形技巧?查看我们的终极地形命令备忘单


我们如何声明一个输入变量?

需要在地形配置中使用variable block声明输入变量。下面的例子是一个variable block的样子:

 variable "image" {
  type = string
}

variable "availability_zone_names" {
  type = list(string)
  default = ["us-east-1]
} 

在这个例子中,我们声明了两个变量。变量名称后的标签是该变量的名称。这需要在声明的所有其他变量中是唯一的。

如果你想添加另一个图像变量,你需要做类似于image_0image_1 这样的事情。

接下来,您将定义类型,在第一个例子中是string类型约束。下一个变量是定义可用性区域。你可以在这里看到list(string中的类型,如果没有定义us-east-1则有一个默认值。这样做的目的是,如果变量没有提供值,那么它将使用默认值。

以下是可以使用的可选参数和类型约束的列表:

自变量:

  • default–默认值,使变量可选。
  • type–指定变量可接受的值类型。
  • description–指定输入变量的文档。
  • validation–定义验证规则,通常除了类型约束之外。
  • sensitive–当变量在配置中使用时,这将限制 Terraform UI 输出。

类型约束

可用于类型约束的类型构造函数

  • list(<TYPE>)
  • set(<TYPE>)
  • map(<TYPE>)
  • object({<ATTR_NAME> = <TYPE>, … })
  • tuple([<TYPE>, …])

在变量块中,type 参数允许您限制作为变量值接受的值。如果不设置约束,则类型参数将接受任何值。类型约束是可选的,但鼓励使用。类型约束允许 Terraform 在解决问题时返回有用的错误消息。

云状、地形或 CDK?查看我们在 AWS 上的 IaC 指南。

使用变量

可通过使用var.<variable_name>从 terraform 模块块内访问变量值。下面我们有一个例子来证明这一点。

 resource "aws_instance" "example" {
  instance_type = "t2.micro"
  ami           = var.image_id
} 

变量值只能在声明它的模块内的表达式中访问。

在 Terraform 中分配变量的多种方式

我们已经复习了一些关于输入变量的基础知识。现在让我们看几个如何声明变量的例子。

下面的例子说明了如何从命令行声明变量。

 $ terraform apply -var="image_id=ami-abc123"
$ terraform apply -var='image_id_list=["ami-abc123","ami-def456"]' -var="instance_type=t2.micro"
$ terraform apply -var='image_id_map={"us-east-1":"ami-abc123","us-east-2":"ami-def456"}' 

这里你可以看到我们通过-var选项向terraform apply命令提供变量来指定我们的变量。如果我们有多个变量,我们可以创建一个扩展名为.tfvars.tfvars.json的变量文件,然后在命令行中指定该文件,如下例所示。

 $ terraform apply -var-file="testing.tfvars" 

变量定义文件使用与其余 Terraform 配置文件相同的语法。

我们也可以使用环境变量来设置 Terraform 中的变量。你可以像下面的例子一样简单的导出你的变量。

 $ export TF_VAR_image_id=ami-abc123 

事情是有顺序的!

在声明变量时,您需要知道变量定义的优先级。Terraform 以特定的顺序加载变量。顺序如下:

  • 环境变量
  • terraform.tfvars文件(如果存在)
  • terraform.tfvars.json文件(如果存在)
  • 任何*.auto.tfvars*.auto.tfvars.json文件(如果存在)
  • 命令行上的任何-var-var-file选项。

这将有助于构建一些较大的配置文件,或者尝试使用一个配置将基础架构部署到多个云环境。

这是一堂关于什么是输入、输出和局部变量以及如何在 Terraform 中使用它们的速成课。它们在构建你的地形配置时非常有用,并且会在你开始构建更复杂的,我指的是有趣的地形配置时帮助你。玩得开心点,我的 Terraform gurus,让我们继续一次在 Terraform block 上建造未来吧!


Taylor Dolezal

WATCH: Kubernetes + Azure,哈希公司之道 有没有想过创建一种标准化的方法来部署您的应用程序,以及如何安全地这样做?在 Azure 上使用 HashiCorp 堆栈是一个很好的起点!观看此免费点播网络研讨会,HashiCorp 的 Taylor Dolezal 将介绍使用地形、拱顶和航路点的潜力。


想要提升你的地形技能吗?查看我们的 HashiCorp 认证 Terraform 助理课程


What are Terraform Output Variables?

将输出变量视为 Terraform 模块的返回值。输出变量有几种用途。在这里看例子!

How to use local variables in terraform?

局部变量为表达式指定一个名称,这样它就可以在一个模块中多次使用而不会重复。如果您熟悉大多数编程语言,局部变量就像函数的临时局部变量。

What are Terraform Input Variables?

输入变量是将参数应用于 Terraform 配置的主要方式。它允许在不改变 Terraform 模块自己的源代码的情况下定制配置的各个方面,并允许在不同的配置之间共享模块。

How to declare variables in Terraform?

您可以通过-var 选项来指定我们的变量,从而为 terraform apply 命令提供变量。如果我们有多个变量,我们可以用。tfvars 或. tfvars.json 文件扩展名,然后在命令行上指定该文件。

获得更好职业所需的技能。

掌握现代技术技能,获得认证,提升您的职业生涯。查看我们当前的免费课程获得 7 天免费试用。无论您是新手还是经验丰富的专业人士,您都可以在 ACG 的帮助下推进您的云计算职业生涯。

如何使用手机测试 Azure 物联网解决方案

原文:https://acloudguru.com/blog/engineering/how-to-use-your-phone-to-test-azure-iot-solutions

在这篇文章中,我们将讨论如何使用您的手机来测试 Azure IoT Hub PaaS 解决方案功能,包括遥测路由、twin 更新和直接方法执行、自动设备管理(ADM)以及通过设备供应服务(DPS)的自动供应。请继续阅读!


加速您的云计算职业生涯

云专家让你轻松(也很棒)提升你的云事业——即使你对技术完全陌生。查看 ACG 目前的免费课程立即开始免费试用。


当这一切走到一起…

你还记得你第一次在一列火车的最后一条轨道上抓拍,看着火车头开始它的第一圈吗?或者可能是你第一次走出练习室,与其他 50 位音乐家合奏?如何看待你第一次成为三名球员中的一员完成完美的双人包夹?即使是拼板游戏的最后一部分也是非常令人满意的。

当这一切汇集在一起,这是一个神奇的时刻。您可以在物联网(IoT)项目的早期体验这种魔力。

代码或 web 界面中的模拟设备都很好,但没有什么比将物理设备握在手中,看着它连接并向云中的物联网解决方案发送遥测数据更好的了。你的智能手机和 Azure 物联网中心可以交付货物。

微软提供了描述如何将手机连接到 Azure IoT Central 的文档和教程,Azure IoT Central 是微软的物联网 SaaS 选项。然而,这感觉有点像产品演示,而不是真正的开发工具。这是有用武之地的,但是物联网即插即用应用为物联网开发者提供了更多。

继续阅读,我们将探索如何在您的手机上设置和使用此应用程序来测试 Azure 物联网中心 PaaS 解决方案功能,包括:

  • 遥测路由
  • 双重更新和直接方法执行
  • 自动设备管理
  • 通过设备配置服务(DPS)实现自动配置

出于这些测试场景的目的,我假设您知道如何围绕我选择用于测试的各种特性构建解决方案。如果你没有,这是我宣传我的课程和相关实验室的机会:AZ-220-微软认证:Azure 物联网开发人员专业,在这里你可以学习如何使用这些功能,作为准备 AZ-220 Azure 认证考试的一部分。

在手机上设置物联网即插即用并测试遥测路由

在测试更高级的解决方案之前,你需要在你的 IOSAndroid 移动设备上安装物联网即插即用,并通过简单连接到你的 Azure 物联网中心来熟悉它的功能。

您应该在非生产环境中执行这些测试。

请注意,我对 hub 资源的说明都在 Azure 门户中,但是您可以使用 Azure CLI 或自定义代码来执行您的测试。

在 Azure IoT Hub 中设置路线和设备

  1. 如果您还没有为测试设置中心,请使用 Azure 门户或 Azure CLI 设置一个基本中心,保留大多数默认设置。选择自由层或 S1 标准层(默认),含一个单位。不要选择基本层,因为它不允许您执行所有的测试。
  2. 在 hub 中,有一个带有 Azure 存储队列端点的路由。确保启用了集线器回退路由。
  3. 使用对称密钥认证(默认)将设备添加到集线器,并保留所有其他默认设置。
  4. 复制设备的主连接字符串(不是连接),然后通过电子邮件或空投到你的手机上。(是的,我知道对称密钥认证不是生产的最佳实践,用电子邮件发送密钥更是一个糟糕的主意。您应该在非生产环境中完成所有这些工作,并在完成后拆除测试资源。)

将设备安装并连接到集线器

  1. 在手机应用商店中,找到并安装物联网即插即用。如果提示,让它广泛访问您的电话上的其他功能,以启用大多数遥测和其他功能。
  2. 当你第一次打开应用程序时,你应该在一个欢迎屏幕上。如果没有,点击右上角的设置“cog”图标,选择注册
  3. 我们不会使用二维码,但会在出现提示时选择扫描二维码和
  4. 在扫描窗口下方,选择“手动连接”
  5. 在“您希望如何连接?”,选择物联网集线器设备连接字符串。粘贴您复制到手机的连接字符串。
  6. 选择连接并等待几秒钟。
  7. 你的物联网设备将连接到集线器,并开始以加速度计和陀螺仪(运动探测器)、磁力计的形式发送遥测数据,从而为你提供方向或数字指南针、气压计读数、地理位置,甚至电池电量。电池电量显示遥测数据可以以传感器读数的形式出现,但也可以是关于设备状态的数据。
  8. 导航到您在物联网中心路线上设置的存储帐户队列,以验证数据正从您的设备流向您的目标。神奇!
  9. 在其余的测试中,保持设备与集线器的连接。根据您的手机配置,您可能需要在某些时候重新连接。对称密钥已保存,因此您不需要再次执行该设置。

测试 Twin 更新和直接方法执行

物联网即插即用设备模拟器包括双更新和直接方法执行的处理程序,如更改交付间隔或打开手机手电筒。

执行设备双更新

  1. 将您的设备/手机连接到 hub,导航到 hub 上的设备详细信息,然后选择 Device Twin 以访问 twin JSON *。*查看“报告”属性的“设备信息”部分。请注意,“readOnlyProp”属性的值为“editable”,这有点令人困惑。只需忽略属性如何命名;这是您可以用来双向测试 twin 更新的属性:来自 hub 后端的所需属性和来自设备的报告属性。
  2. 在你的设备/手机上选择屏幕底部的属性,将“可编辑属性”编辑成你想要的任何字符串,然后选择发送。我改成了“这是我编辑的。”

  1. 回到 hub 中的设备 twin,刷新 twin。在设备信息下,值仍然显示为“可编辑”,因为这是连接时的配置。但是在那下面,你可以看到只读提示,现在说,“我编辑了这个。”或者你用的任何字符串。魔法。
  2. 让我们去另一个方向。在 twin JSON 中,在 desired properties 下,在“$version”属性后添加一个逗号,并添加(或从报告的属性中复制粘贴)“readOnlyProp”键值对。将该值更改为其他值。我用了"变戏法"
  3. 将更改保存在设备 twin 上。注意,系统可能会“美化”您的 JSON,甚至在您刚刚添加的属性周围移动。
  4. 不要眨眼。当您回到设备/电话上时,设备上的 editable 属性可能已经改变,以反映来自 hub 的设备 twin 更改。

  1. 回到 hub,刷新设备 twin,您将看到报告的属性现在与设备同步。魔法。

执行直接方法

  1. 将您的设备/电话连接到集线器后,导航到集线器上的设备详细信息并选择直接方式。
  2. 方法名称下输入“lightOn”
  3. 在有效负载中输入:

{duration: 3,
delay: null,
pulses: 2

  1. 选择面板左上角的调用方法,查看你的手机。不要直视正在闪烁的灯光。这可能会破坏魔法——就一点点。

测试自动设备管理(ADM)

这不是自动设备管理的教程,所以我假设您知道设置 ADM 配置的基础知识。这个测试非常类似于 twin updates 测试。

1.在您的 ADM 配置中,通过选择“报告”属性下的“设备信息”属性之一来定位您的电话/设备。我选择了“制造商”键值对。如果您使用的是 Android 手机,显然需要使用现有的键值对。

2.在配置中,添加所需的属性“readOnlyProp ”,并为其分配一个字符串。我选了,“被 ADM 改了。”

3.保存您的配置并导航至设备 twin。你应该马上在你的设备中看到新的属性。没有就刷新。

4.在 Azure IoT 中,报告的属性由设备更新。如果在您导航到 twin 时,设备已经连接并应用了 ADM 配置,则报告的属性也可能已经更改。如果没有,请检查您的电话/设备属性,以查看“可编辑属性”更改为“由 ADM 更改”。然后,刷新中心中的 twin,直到您看到报告的属性更改。你的心还能承受更多的魔法吗?让我们来了解一下;还有一个测试。

通过设备配置服务(DPS)测试自动配置

这不是针对 DPS 的教程,所以我假设您知道在 DPS 中设置注册的基础知识。

  1. 在 hub 中,设置设备供应服务(DPS)的实例,并确保您的测试物联网 hub 链接到 DPS。
  2. 添加注册组,将对称密钥用于证明机制。个人注册也很好,但是我使用了注册组进行说明。
  3. 从注册组详细信息中复制主密钥,并通过电子邮件或空运将其发送到您的手机。我将重复我前面说过的话:我知道对称密钥认证不是生产的最佳实践,用电子邮件发送密钥更是一个糟糕的主意。您应该在非生产环境中完成所有这些工作,并在完成后拆除测试资源。
  4. 从 DPS 概述部分,收集 ID 范围并通过电子邮件或空投或任何对你有效的方式将其传输到你的手机上。
  5. 在您的设备/手机上,选择右上角的设置“cog ”,并选择注册返回注册详情。清除“物联网集线器设备连接字符串”并切换到“注册组信息”选项。
  6. 输入设备 ID。它可以是您想要的任何字符串,只要确保它不同于您之前在直接连接到集线器时测试的设备名称/ID。
  7. 粘贴从 DPS 元数据收集的 ID 范围字符串,对于 SAS 键,粘贴从注册组复制的主键。
  8. 选择连接。这将比之前的连接时间稍长,因为设备首先向 DPS 注册,然后 DPS 在中心设备注册表中自动配置设备。
  9. 一旦看到遥测流动,检查 DPS 注册组,查看您的“新”装置是否是注册组的成员。然后导航到集线器,并在设备下检查,以查看您的设备已在该集线器上自动配置。一次测试,双倍魔力。我们应该在领先的时候退出。

拆除您的测试资源

不要忘记清理您的测试环境。要快速防范使用那些讨厌的对称密钥的意外或恶意连接,请删除中心中的设备注册,并删除您创建的注册组(或单个注册)。更好的办法是,删除 hub 和 DPS 以实现全面覆盖。卸载物联网即插即用应用程序以确保万无一失。你看到了重新安装它是多么容易。

了解有关物联网和 Azure 的更多信息

有关物联网即插即用应用的更多功能的更多信息,如文件上传和日志记录,请在这里查看微软文档: Azure 物联网手机应用。如果你想了解更多关于如何在 Azure 中构建物联网解决方案的信息,请查看我的课程,AZ-220-微软认证:Azure 物联网开发者专业


观察:后 COVID DevOps:加速未来 COVID 如何影响——甚至加速——工程团队的 DevOps 最佳实践?观看与 DevOps 领导者的免费点播小组讨论,我们将探索后 COVID 时代的 DevOps。

如何使用 Bash 编写备份脚本

原文:https://acloudguru.com/blog/engineering/how-to-write-a-backup-script-with-bash

Linux 系统管理员经常有许多手动任务需要日常处理。让这些工作变得更容易的一个方法是自动化。Bash 脚本是一种灵活而简单的方法,可以利用您现有的命令行知识来自动化您经常运行的任务,并且以其他管理员可以合理地帮助维护的方式来实现。例如,让我们一起来看一个备份脚本。

自从 shells 出现以来,Bash 脚本就一直存在。理解其中的原因非常简单:自动化使管理员的工作变得更容易。说真的,谁想让自己的工作变得更难呢?

What’s in store for Linux in 2021? Check out Linux This Month for that and all the latest in all things Linux.

首先,我想说清楚,我的方法不是完美的、没有改进余地的、必须这样做的方法。我的脚本清晰易读,易于维护,但它们不是做事的唯一方式。

让我们来看看下面的脚本:

https://raw.githubusercontent.com/linuxacademy/the-system-admin-guide-to-bash-scripting/master/backup-blog.sh

第一部分是这样开始的:

-----
#!/bin/bash

#####
# This is a script given to users on a machine when they want to back 
# up their work to a specific backup directory (/home/$USER/work_backup)
# 
# The script requires two parameters - the first is where the log file 
# will be and the second is what directory will be backed up.
#####
-----

本质上要求 shebang 是第一行。它让 shell 知道我们将使用什么二进制文件来执行下面的代码。(例如,如果您要编写一个 python 脚本,将 python 二进制文件的路径放在那里是合适的)。

下一部分是一些完全被注释掉的文本,所以 shell 不会将其解析为代码(行首的#)。我用那个区域来解释脚本做什么,以及是否有任何参数需要传递给脚本。

-----
if [ -z "$1" ] || [ -z "$2" ]; then
	echo "You have failed to pass a parameter."
	echo "Reminder that all required files will be copied to /home/\$USER/work/work_backup."
	echo "USAGE: ./backup.sh LOGFILE DIRECTORY-TO-BACKUP"
	exit 255;
fi

MYLOG=$1
BACKUP_FROM=$2
-----

在这里,我们验证是否传递了所需的参数——如果没有,则使用一些用法信息退出脚本。之后,我们可以将参数赋给名字更有意义的变量。毕竟,如果您的脚本只有几百行,您是否愿意记住日志文件变量叫做 MYLOG 或 1?

这不是处理参数的唯一方法,但却是最简单的方法。对于这个简短的剧本来说,我认为这是完全合适的。你怎么想呢?

-----
function ctrlc {
	rm -rf /home/$USER/work/work_backup
	rm -f $MYLOG
	echo "Received Ctrl+C"
	exit 255
}

trap ctrlc SIGINT
-----

在这一部分,我们会问这样一个问题“如果有人试图在脚本运行时取消它,我们该怎么办?”当用户点击 Ctrl+C 时,脚本将捕获该信号并运行我们的函数,该函数将撤销到目前为止所做的所有工作,并确保用户知道脚本意外停止的原因。

-----
echo "Timestamp before work is done $(date +"%D %T")" >> $MYLOG

echo "Creating backup directory" >> $MYLOG
if ! (mkdir /home/$USER/work/work_backup 2> /dev/null)
then
	echo "Directory already existed." >> $MYLOG
fi
-----

在这里,我们确保在开始工作时进行日志记录,因为日志记录对于故障排除至关重要。如果您的系统日志在上午 10:30 开始出现磁盘错误,而您的脚本在上午 10:31 开始运行并生成错误,这可能不是脚本的错。

接下来,我们创建要将文件复制到的目录。我们使用 if 语句来实现这一点,该语句表示“如果我们未能创建目录,它将

因为它已经存在。“如果我们在一个没有权限创建目录/文件的地方运行脚本,可能会出现问题,这当然是该脚本可以改进的地方,但该设置将正常使用。

-----
echo "Copying Files" >> $MYLOG
cp -v $BACKUP_FROM/* /home/$USER/work/work_backup/ >> $MYLOG
echo "Finished Copying Files" >> $MYLOG
echo "Timestamp after work is done $(date +"%D %T")" >> $MYLOG
-----

最后,我们到达大部分工作发生的地方。首先,我们记录我们将要实际做的工作,然后运行我们的 copy 命令。至于对该脚本的潜在改进,您可以用一个循环来替换它,该循环将重命名所有文件,或者添加"-backup "标记、文件复制的日期等等。然而,在大多数情况下,这种方法就足够了。

完成后,我们记录我们完成的工作,然后记录时间戳—同样,这有助于故障排除。

就是这样!感谢你阅读这篇文章,并和我一起关注我写剧本的思考过程。从长远来看,使用 Bash 编写脚本并自动化常见任务可以(并且将会)节省时间。您可以随意使用这个脚本,并根据需要进行修改。

查看系统管理员的 Bash 脚本指南

想学习更多关于 Bash 脚本的技巧和诀窍吗?看看我新发布的课程Bash 脚本的系统管理员指南。我很乐意成为你学习冒险的一部分。

有问题吗?欢迎联系我


提升您的 Linux 知识水平

通过接触云专家来学习 Linux 技能。看看为什么我们 85%的学习者说他们通过做能记住更多。

我们如何在云专家 ACG 减少λ冷启动

原文:https://acloudguru.com/blog/engineering/how-we-reduced-lambda-cold-starts-at-acg

从第一天开始,云专家就是一家完全没有服务器的公司。

Sam Kroonenburg 在创建云专家时选择无服务器的原因是为了缩短上市时间。五年后,无服务器已经成为该组织不可思议的生产力助推器。它实现了小而精的产品团队每天多次向产品交付特性的梦想。无服务器架构意味着这些团队可以花更少的时间管理基础设施,花更多的时间构建功能。

但是,正如他们所说,天下没有免费的午餐。在无服务器的情况下,这意味着我们必须专门设计我们的应用程序来解决随之而来的性能问题。我们提高性能的方式?最小化冷启动的影响和 lambda 函数之间的通信。以下是方法。

我们如何通过 GraphQL 模式拼接减少 Lambda 冷启动的影响并缩短交付周期

什么是冷启动?这里是一个极好的解释。

Feedback from students that performance is important

当谈到管理冷启动的影响时,首先要考虑的是驱动前端行为的请求-响应 API。对于云专家来说,我们的 API 层是用 GraphQL 编写的。

缓慢的响应速度是我们研究改进 GraphQL 层的主要原因。第二点,我们想提高开发人员的满意度。这可以通过减少生产时间(交付周期)来实现。对于像扩展或取消 API 这样的常见更改,我们不希望开发人员在两个地方进行更改,这可能需要对每个步骤进行额外的部署和代码审查。

让我们回顾一下架构的发展,以及这些变化是如何减少性能问题并缩短交付周期的。

使用 web 系列的 GraphQL 初级读本

GraphQL 的主要吸引力是在一个请求中获取单个页面所需的所有数据。这个决定尤其重要,因为我们同时也在构建我们的第一个移动应用程序。为了让 GraphQL 能够在一个请求中获取数据,必须有一个端点能够解析整个应用程序数据图。那个入口点就是我们的网关。我们的网关只是用作一个单一的入口点,并且在设计上不包含业务逻辑。

A typical request that would be used for loading our web series page. For example, this landing page.

Systems architecture / entity association of microservices involved in resolving web series.

GraphQL 只是一个查询格式的规范。它没有规定一些关键的细节:模式定义应该存在于何处,数据如何在微服务内解析(域内),以及数据如何在服务间解析(域间)。两种不同的架构方法调整这两个变量。

Graphql 网关调用的 Lambda 函数

代码

模式定义的位置:位于网关上

数据解析:网关执行 Lambda 调用进入微服务解析数据;网关拥有内部和内部类型的连接。

Service to service was managed through AWS SDK Lambda Invoke.

这种架构方法只是在网关上使用了 GraphQL.js。这个网关将拥有整个模式,并管理我们后端的查询解析。这样,网关将使用 AWS SDK 的 Lambda Invoke 来访问每个微服务。

An example AWS Lambda Invoke call the the gateway would make. (Reference)

Data resolution for query is orchestrated by the gateway.

数据的分辨率如下:

  • 网关解析所有系列
  • 当系列已知时,网关然后要求该系列中的所有剧集
  • 由于剧集实体拥有访问权限,它拥有关于某人是否应该观看该剧集的业务逻辑
  • 一旦剧集被解析,只有这样,网关才能从我们的身份服务中解析作者

A sequence diagram illustrated with XRay. Series + Identity called on gateway, and content called on series.

XRay 说明了两件关键的事情:初始化一个冷 lambda 函数所花费的时间,以及获取数据所花费的时间。每个 lambda 容器只需进行一次初始化,因为相同的容器将被后续请求重用(直到容器被回收)。

我们注意到这个查询跨越了五个 lambda 函数来解析所有需要的数据。有两种类型的 lambda 函数:频繁调用的 lambda 函数(网关 lambda)和可能不调用的 lambda 函数(2x 系列、1x 内容、1x 身份)。

上面的例子是 lambda 函数的最佳例子。(它们很少依赖代码,因为代码依赖会导致更长的冷启动时间。)在典型的例子中,大多数 lambda 冷启动大约是一秒钟。这意味着用户点击四个 lambdas 不热的页面(15 分钟内没有被调用)可能会经历五秒钟的延迟。哎哟。

这种架构方法还有几个其他问题:

  • GraphQL 模式存在于网关上。这需要在更改 API 时进行两次部署——增加了交付时间,降低了开发人员的满意度
  • 通信与 lambda 相关联,这意味着我们不能拥有不使用 Lambda 功能的微服务。(这在从 Linux Academy 平台整合实验室和操场时变得非常重要。)

模式拼接

代码

模式定义的位置:在每个微服务中

数据解析:网关将查询解析委托给微服务;网关拥有域间类型的连接;微服务拥有域内类型的连接。

Now communicating from the gateway to the downstream services using schema delegation / stitching. RPCs also managed through connecting via GraphQL.

Stitching the schemas together and doing a cross domain link between episode and author entities together on the gateway. (Reference)

We delegate sub queries to responsible microservices

数据的分辨率如下:

  • 网关将查询的 web 系列部分委托给系列服务
  • 由于剧集实体拥有访问权限,它具有关于某人是否应该观看剧集的业务逻辑,因此它仍然管理内容服务的解析
  • 一旦剧集的解析发生,只有这样,网关才能通过身份服务委托作者的解析

Sequence diagram illustrated with XRay. Cold-start initialization omitted due to the likeliness of the lambda being warm.

用 x 射线说明的序列图。在网关上调用系列+标识;系列上调用的内容。由于λ可能变暖,冷启动初始化被省略。

使用这种方法,每个微服务的 API 现在被表示为单个 lambda 函数。这做了两件事:

  • 域内连接(例如,连续剧+剧集解析发生在同一个 lambda 函数内,而不是跨越两个 lambda 函数)。这减少了可能的启动次数+服务到服务的调用时间
  • lambda 可能会更热,因为整个服务只有一个 lambda 函数

我们已经从五个可能的冷启动减少到四个(网关、系列+剧集、内容、作者),尽管每个 lambda 都不太可能有冷启动,因为 API lambda 正在为该微服务处理许多不同的操作。

从拥有模式的网关过渡到模式拼接解决了第一种方法中的一些问题:

  • 对 API 和服务的更改可以在一次部署中完成,从而缩短了我们的交付时间
  • 不再耦合到 AWS lambda,因为我们使用 HTTP 进行通信

这种方法确实存在一些问题,尽管它也有一些缺点:

  • 网关仍然必须管理域间连接(尽管与域内连接相比可能性较小)
  • 使用 API 网关增加了额外的延迟(从技术上讲,Lambda Invoke 仍然可以做到这一点)
  • 安全性由 x-api-keys 而不是 IAM 管理

监控变得更加困难,因为一个服务处理的所有 API 请求只有一个 GraphQL lambda。我们已经决定使用一个特定于 GraphQL 的服务来解决这个问题(阿波罗引擎)。添加一个额外的服务并不意味着我们现在有多个地方可以搜索 API 请求的问题。

为了让网关知道如何委托请求微服务,我们必须查询每一个微服务。(此时我们有 40 多个。)查询服务微服务将引入更长的冷启动或高速缓存无效问题。我们最终通过添加内部服务发现解决了这个问题。每次有请求进来,网关都会向服务发现工具发出一个请求,以获取每个微服务的整个模式、url 和 api 键。注意:服务发现没有包含在示例代码中,增加了三个额外的自省调用。

冷启动分析

为了比较不同的方法,我们使用 ApacheBench,然后将结果导出到 Excel 中。为了捕捉冷启动的效果,之前所有功能都被重新部署。需要考虑的是,这个 ApacheBench 测试是完全合成的(一次完成),并不代表真实世界的流量(在一天中交错进行)。

ApacheBench running performance testing (Reference)

Gateway Invoke vs. Schema Stitching (Raw Results)

数据结果中似乎有两个关键差异。

在这个特定的查询模式中,拼接有低 20%的 p99(五秒到四秒)。较低的 p99 是由于在解析系列数据时少了一个 lambda 函数调用/冷启动。在综合测试中不容易显示的是冷启动的减少,因为 lambda 函数被对这些微服务的其他调用保持温暖。我们怀疑,与网关方法拥有的许多 lambda 函数相比,单个 API lambda 函数的利用率更高。这意味着随着时间的推移,冷启动次数会明显减少。

网关调用性能在 p60-p70 标志之间较好。在模式拼接方法中,我们在微服务之间通信时引入了 API 网关。似乎添加 API 网关会给结果增加额外的差异。如果我们决定继续使用 lambda invoke 进行模式拼接,而不是 API Gateway,这可能会减少不一致性。

提前期分析

要确定我们的网关上发生的 API 变化的确切数量有点困难。不过,我们可以通过使用从我们的 Apollo Studio changelog 中提取的数据进行一些粗略的计算。我们可以看到,在 9 月份,我们对 GraphQL 模式进行了大约 230 次更改。

Apollo Studio calculating GraphQL schema diff

通过查看 diff 中包含的内容,似乎大约有 20 个部署中有模式更改。一个模式的改变可能需要大约三个工程小时,一个 PR(另一个审查代码的工程师的上下文切换)和部署网关,这不是没有道理的。这意味着,通过捆绑和部署模式变更以及代码变更,我们可能每月节省 60 个小时。

结论

为了提高整体学生体验,我们进行了一些重大的架构更改。

模式拼接允许更少的冷启动,当它们发生时,它们的影响会更小(至少 20%)。迁移到 schema stitch 还大大减少了从开发到生产的 API 变更的交付时间(我们所有的工程师,大约每月 60 小时)。

下一步是什么?改进是永无止境的努力。因此,我们认为通过利用 Apollo Federation ,我们可以将我们的性能和交付时间向前推进一步。

关于作者

Dale 自 2015 年以来一直是一名无服务器开发者,当时无服务器框架仍被称为 Jaws。他对无服务器系统如何帮助开发人员减少构建高弹性系统的时间特别感兴趣,尽管他们说戴尔喜欢无服务器的真正原因是因为他可以舒服地睡一整夜。

“我的工资在 3 个月内翻了一倍”——从服务台到云,与云专家 ACG 一起

原文:https://acloudguru.com/blog/engineering/i-doubled-my-salary-in-3-months-from-help-desk-to-cloud-with-acg

学习云技能有可能开启一些高薪的云工作。但是,如果你是云新手,你如何快速启动你的职业生涯,从云新手变成云新手?

为了从求职大军中真正了解如何找到云计算工作,我们采访了 ACG 大学的学生泰德·麦克马伦。

当一些人在去年开始滑冰、烘焙或神奇宝贝时,萨德在 2020-2021 年取得了巨大的成就。在几个月的时间里,他从一个服务台的工作跳到了一个云角色——并且基本上在这个过程中他的工资翻了一番。

如果你正在寻找一些类似职业发展的指导(或者只是欣赏那些聪明、勤奋的人做令人敬畏的事情的故事),看看萨德的旅程。

这次采访是通过电子邮件进行的。为了清楚起见,一些部分可能已经被编辑。


阅读:我需要多少认证才能获得云工作?


入门指南

泰德来自迈阿密,他在那里做了两年左右的服务台工作。在此之前,他在 QA 分析师等其他职位上辗转。Thad 知道他想进入云计算领域。那时候他试了一个云宗师。

“很多人向我推荐一位云计算专家,”他说。“我的前雇主实际上支付并支持了该计划,我收到了亚马逊 AWS 布道者和一些我认识的云工程师和架构师对 ACG 的推荐。”

在与 ACG 一起了解云技术的同时,萨德在谷歌上做了一些研究,寻找常见的面试问题和热门的云工具。他以此为基础进行研究。

“我在网上寻找云工程和架构方面的热门技能,并把自己放在那里,联系我认识的人,以把握市场的脉搏,”萨德说。“在面试过程中,我发现容器容器编排工具是最常被评估的技能,仅次于对 Linux 的扎实基础和理解。”

过去的经验,未来的机会

萨德利用以前的职位为自己谋利,与那些拥有他想要的工作的人搭讪,从而为自己的成功铺平了道路。

“我总是试图通过收集与我一起工作的用户的想法来利用任何新信息。我有机会与云工程师、系统管理员和软件工程师深入交谈,了解他们对最佳实践、市场方向、学习和认证策略等的看法。”

为了积累经验,萨德一有机会就把自己的手弄脏。

“在任何一个附带项目中,我都尽可能地利用云。我会做一些事情,比如建立网站,使用 EC2 实例、Route 53 DNS 和弹性负载平衡器。或者创建 VPC 并尝试模仿多层应用程序的架构。”

从那里,萨德利用他的关系网,寻求推荐,并为一些随机的工作投上了自己的帽子。经过几次面试,萨德找到了一份合适的工作。他的未来雇主让他参加了一系列的三场面试,包括性格评估和技术面试,以评估他对团队使用的工具的熟悉程度。

当他离开服务台的世界时,萨德利用他的服务台经验帮助他获得了这份工作。

“从事支持工作后,我不断接触新技术和新软件,以便为最终用户安装和提供支持……我发现我丰富的经验使我成为一名适应性强的候选人,能够在管理全部工作量的同时掌握新技术。”


没有工作,你无法获得经验。没有经验谁会雇佣你?谜题!观看这个免费点播的网络研讨会,该研讨会就云计算职业进行了小组讨论,包括帮助数十人获得第一份云计算工作的 ACG 挑战赛的见解。


三个月后…

在注册了一个云专家大约三个月后,Thad 在一家财富 500 强公司获得了一份工作,该公司迁移到 Microsoft Azure 并利用云来支持国际旅行的全球分布式网络。

除了在职业阶梯上攀升,萨德还看到了薪水的大幅增长。

“如果算上奖金,我的收入将是以前的两倍左右,”他说。

萨德列举了在求职过程中,与云专家一起培训帮助他的几个关键方法。

“ACG 让我对云技术有了全面的了解,这不仅仅是要点。AWS 认证解决方案架构师助理(AWS SAA)课程中的课程让我们深入了解了市场的发展方向以及公司利用云所使用的工具。动手实验室非常有用,因为我可以通过参考我已经完成的实验室/项目来提供我的技能在现实世界中的应用,”他说。“除此之外, ACG Discord 聊天室里满是专业人士,他们提供真实世界的见解,分享我可以模仿的项目或问题。”

至于下一步,萨德计划继续与 ACG 一起提高他的技能,并努力获得他的 AWS 解决方案架构师助理认证。

“现在比以前更有必要,因为我需要对开发团队使用的所有工具有一个坚实的理解。我已经在用 Kubernetes 深潜课程厨师课程复习了

Thad 对那些希望从服务台转向云计算的人有以下建议。

“建啊,建啊,建啊,读啊,读啊,”他说。“创建一个投资组合,了解公司使用的技术。熟悉容器并开始使用 Linux 作为日常驱动程序,这样你就可以像操作图形桌面一样轻松地操作命令行。。。我建议浏览所有的 ACG 实验室,在互联网上搜索关于潜在副业的时事通讯和文章。此外,有一点很有帮助,那就是确保我在控制台中做的任何事情,也可以通过 CLI 来完成。”


掌握最受欢迎的技能

无论您是云新手还是经验丰富的专家,云专家都可以让您轻松(而且非常棒)地提升您的云职业生涯。查看 ACG 目前的免费课程立即开始免费试用。

我在这里告诉你真相,好的,坏的和丑陋的 AWS X 射线和λ

原文:https://acloudguru.com/blog/engineering/im-here-to-tell-you-the-truth-the-good-the-bad-and-the-ugly-of-aws-x-ray-and-lambda

AWS 早在 5 月份就宣布了对 AWS X-Ray 的 AWS Lambda 支持的全面可用性——我花了一些时间来尝试它。虽然我看到了大量的价值,但它目前的局限性极大地限制了它在复杂系统中的有用性。

特定于 AWS Lambda 的文档有点支离破碎,所以我依赖一些实验,并从几个来源拼凑线索:

我发现记录注释和元数据并不像在样本中宣传的那样工作——尽管我可能做错了什么。

2017 年 07 月 03 日更新: 这篇文章发表后,AWS 的人取得了联系,并友好地澄清了这里强调的一些问题,这些问题是由糟糕的文档引起的,他们将在不久的将来纠正这些问题。向下滚动以查看相关部分的说明。

示例应用程序

我创建的示例项目以一个名为service-a的 Lambda 函数为中心,这个函数调用了许多下游系统:

  • 发布到 SNS 主题
  • 在 S3 得到和放置一个物体
  • 获取并在 DynamoDB 中放置一行
  • 使用 Lambda API 调用另一个 Lambda 函数(service-c)
  • 向由另一个 Lambda 函数支持的 API 网关端点发出 HTTP 请求——图中的service-berrortimeout函数分别表示成功、错误和超时的情况

好人

一旦我破解了魔法咒语,我就能得到结果。这花费了更多的时间和精力——但总的来说,大多数功能在第一次(或第二次)询问时就像宣传的那样工作了。

下面是对service-a函数的跟踪,包括 Lambda 初始化该函数所花费的时间,以及它与之对话的各种下游系统——所有这些都嵌套在自定义子段下。

它甚至包括使用 Lambda API 调用的service-c函数的踪迹——以及它发布到 SNS 所花费的时间。

service-a的服务地图包括作为下游依赖的service-c,以及service-c对 SNS 的依赖。

坏消息是——它总是一个 200 的响应代码

当通过 API 网关端点和错误调用service-a函数时,相应的跟踪仍然报告 200 响应代码。

大概 X 射线看到的是一个200 response from the Lambda service whose payload indicates a 502 response to the API Gateway invocation,所以它认为“嘿,这是一个 200!”。

Showing the service-a endpoint erred with 502 response to the API Gateway invocation.

The service-a endpoint errored with 502

The trace timeline reported a 200 response code because the AWS Lambda service itself reported a 200.

But the trace reported a 200 response code because (presumably) the AWS Lambda service itself reported a 200

奇怪的是,error函数的跟踪也报告 200,尽管它自己的状态字段表明它出错了。

这种行为对我来说既困惑又矛盾——也许我误解了它是如何工作的。可悲的是,x 光片的概念页面也没有解释ErrorFault.之间的区别

虽然这现在看起来有点麻烦,但是当您需要诊断生产中的问题时,无法快速识别错误跟踪将对您造成最大的伤害。最有可能的是,当你时间压力最大的时候。


**更新 2017 年 7 月 03 日:**AWS 确认错误被报告为 200 的原因是由于 Lambda 服务返回了 200 响应(带有指示错误的有效载荷)。一种解决方法是使用过滤表达式 service() { fault } ,它返回包含故障的所有轨迹。


跟踪不会跨越 API 网关

service-a函数向 API 网关端点发出 HTTP 请求时,跟踪会在 API 网关端点处停止,并且不会扩展到由 API 网关触发的 Lambda 函数。

这种行为与我测试的所有 3 个端点一致—  service-berrortimeout

对于这个测试,在发出 HTTP 请求时,我遵循了 X-Ray 文档并使用 X-Ray SDK 来包装 Nodejs https模块。

我可以看到跟踪 id 在传出的 HTTP 请求中被正确传递,并被处理 Lambda 函数接收。

Trace IDs are passed along the HTTP headers in the GET request to the timeout function invocation.

Trace IDs are passed along the HTTP headers in the GET request to the timeout function invocation.

The root trace ID correctly match the segment ID of the originating function’s trace.

The root trace ID correctly match the segment ID of the originating function’s trace.

这是我期望在这种情况下看到的服务地图——其中service-a的跟踪通过 HTTP 请求到达 ap I 网关,并包括对timeout函数的调用。

This is a composed image of what I would like to see — where traces follow through to Lambda invocations behind the failing HTTP request.

WARNING: this is not a screenshot! This is a composed image of what I would like to see — where traces follow through to Lambda invocations behind the failing HTTP request

相反,实际的服务映射在 API 网关处停止。

Service graph showing the trace does not follow through to the Lambda function behind the outgoing HTTP request.

The trace does not follow through to the Lambda function behind the outgoing HTTP request

然而,当直接调用另一个 Lambda 函数时(使用 Lambda API 和包装的 AWS SDK ),跟踪按预期工作。

也许限制在于 API 网关?

下面您可以看到直接调用service-c所花费的时间,但是对service-b的跟踪停止在 API 网关层。

The breakdown of time spent in service-c when it’s invoked directly, but the tracing to service-b stopped at the API Gateway layer.

丑陋的-no 采样

根据 Lambda 关于 X 射线的文档,请求应该以每分钟 1 个请求的速度进行采样。

There are two modes of tracing for Lambda function, pass through and active.

然而,在我的实验中情况并非如此。每个请求都被采样,从下面截图中的age痕迹可以看出。当通过 API 网关和 Lambda 管理控制台调用 Lambda 时,这种行为是一致的。

虽然 X 射线服务本身并不昂贵(每百万次追踪 5 美元),但如果你不愿意通过系统追踪每一个请求,这仍然是一笔很容易就会出现在你身上的费用。

例如,我在 Gamesys 用大约 100 万 DAU 开发了一款相当成功的社交游戏。按照每天大约 2 . 5 亿次用户请求计算,X-Ray 的成本为 5 * 250 * 30 天= 37500 美元,超过了我们当时的整个 AWS 账单!

2017 年 07 月 03 日更新: 这原来是文档的问题,它没有提到采样是基于量的,只有当你达到一定量的请求时才开始。


想要深入了解 AWS X-Ray 等 AWS 开发工具吗?看看这些云专家课程!


注释和元数据仅适用于子段

有一件事就是拒绝工作——尽管我已经遵循了示例——向根段添加注释和元数据:

module.exports.handler = (event, context, callback) => {
  ...
  let segment = AWSXRay.getSegment();
  let n = Math.random() * 3;
  segment.addMetadata('random', `${n}`);      // this doesn't work
  segment.addAnnotation('path', event.path);  // this doesn't work
  ...
}

Annotations subsegment for Lambda X-Ray.Metadata subsegment Lambda X-Ray.

有趣的是,给子段添加注释和元数据效果很好。

let publishSNS = segment => {
  return new Promise((resolve, reject) => {
    console.log('publishing to SNS topic');

    let f = co.wrap(function* (subsegment) {
      ...
      subsegment.addAnnotation('topic', topicArn);
      subsegment.addMetadata('message', 'test');
      let req = {
        Message: message,
        TopicArn: topicArn
      };
      yield sns.publishAsync(req);
      subsegment.close();
      resolve();
    });

    AWSXRay.captureAsyncFunc("## publishing to SNS", f, segment);
  });
};

Annotations subsegment publishing to SNS.Metadata subsegment publishing to SNS.

查看日志,我发现了一些有趣的事情:根段的段 ID 与 X 射线跟踪中的段 ID 不匹配。

例如,我在处理程序中获取我的函数的根段,并将其记录到 CloudWatch 日志中。

const AWSXRay = require('aws-xray-sdk');
module.exports.handler = (event, context, callback) => {
  ...
  // this should be the root segment for my function
  let segment = AWSXRay.getSegment();
  console.log(JSON.stringify(segment));
  ...
}

在日志中,我可以看到段 ID 是 05b2b9ac6c9e5682

但是在 X 射线跟踪中,根段的段 ID 是2 b 7 D5 B4 a2 d 96 e 9

The segment ID of the root segment doesn’t match the one the function fetched at runtime.

The segment ID of the root segment doesn’t match the one the function fetched at runtime.

此外,跟踪 ID 也不同:

  • 在日志中是1–59504311-d 765 e 7 accb 8558871 fa 89 d6d
  • 在 X 射线控制台中是1–59504312–5e F2 a3 EDA 0 C1 B2 C4 d 64 DD a00

这很奇怪,所以我决定在 X 射线控制台的日志中跟踪跟踪 ID,从冷启动开始。

The data showing  AWSXray.getSegment() returns the root segment from the previous invocation.

From the data it’s clear to see that AWSXray.getSegment() returns the root segment from the previous invocation

答对了。看起来这是 Nodejs 的 X-Ray SDK 中的一个错误,其中AWSXray.getSegment()从之前的调用中返回根段。

2017 年 07 月 03 日更新: 虽然 X-Ray SDK wrt 在跟踪 trace-id 时有一个 bug,但根本不支持向根段添加注释和元数据,文档中没有明确说明。您可以通过创建一个覆盖整个函数调用的子段来解决这个问题,作为您的自定义根段,并在那里附加任何与调用相关的注释和元数据

真相

所以你有它,我的周末与 AWS X 射线和λ的恶作剧🙂

“我来这里告诉你真相好的、坏的和丑陋的。”—奥利弗·诺斯

总的来说,我对我所看到的印象深刻,并认为 X 射线会给我在 Yubl 建造的无服务器架构增加很多价值。然而,无法跨越 API 网关端点的跟踪使得它对我们的生态系统来说用处不大。

此外,X 射线服务侧重于执行时间,并帮助您识别性能瓶颈。然而,分布式跟踪还有一个 X 射线不关心的重要方面——通过确保在所有日志消息中捕获一组相关 id 来帮助您调试系统。

虽然您可能可以使用 X-Ray 提供的跟踪 id,但是您仍然有责任在所有日志消息中捕获它们,并将您的所有日志传播到一个易于搜索的位置。我们在 Yubl 的无服务器架构中投入了一些精力来实现分布式跟踪,你可以在这个帖子中读到详细信息。

您在生产中使用 X 射线吗?我很乐意听到你对这项服务的想法和反馈,以及在评论区寻找任何陷阱!


获得更好职业所需的技能。

掌握现代技术技能,获得认证,提升您的职业生涯。无论您是新手还是经验丰富的专业人士,您都可以通过实践来学习,并在 ACG 的帮助下推进您的云计算职业生涯。


感谢阅读!如果你喜欢你所读的,点击下面的❤按钮,以便其他人可以找到它。可以 在 Twitter 上关注我

Kubernetes 和云本地助理(朝鲜中央通讯社)认证考试印象

原文:https://acloudguru.com/blog/engineering/impressions-of-the-kubernetes-and-cloud-native-associate-kcna-certification-exam

Kubernetes 是云原生世界中的一个有用工具。越来越多的公司在使用它。它也是一个具有很大深度和潜在复杂性的工具。简单来说,谈到 Kubernetes,你可以学到很多东西

到目前为止,Kubernetes 认证的前景主要集中在计划使用 Kubernetes 的工程师的高度技术性的角度,无论是作为管理员、开发人员还是安全人员。但是对于那些可能不太关心这个工具的深层技术方面的人呢?如果您对高级功能及其在我们现在称之为“原生云”的世界中的作用更感兴趣呢?

最新的 Kubernetes 认证填补了这一空白。 Kubernetes 和云原生助理 ( 朝鲜中央通讯社)认证考试 侧重于 Kubernetes 的基础知识,以及与云原生相关的一般概念。也许最重要的是,它旨在展示云原生是什么以及 Kubernetes 如何适应的工作知识。


通往更好职业的钥匙

立即开始 ACG 通过 AWS、Microsoft Azure、Google Cloud 等领域的课程和实际动手实验室来改变你的职业生涯。


参加朝鲜中央通讯社考试

与其他 Kubernetes 考试不同,这次考试更具概念性,所以它使用选择题而不是动手场景。考试的时间限制是 90 分钟,我发现这个时间足够我认真地回答问题,而不需要太匆忙。如果你想报名参加考试,你可以在这里报名。

朝鲜中央通讯社考试涵盖哪些内容?

当然,我不能详细分享考试内容,但我可以提供一些一般性的观察,如果你决定参加朝鲜中央通讯社认证考试,可能会有所帮助。

工作量资源

工作负载资源是 Kubernetes 对象,允许您以动态方式管理工作负载。像复制集、部署、守护集和克隆作业。对 Kubernetes 中几乎所有工作负载管理资源的一些一般知识可能会派上用场。你至少应该熟悉每一个角色,并且能够区分它们。

体系结构

另一个重点领域是 Kubernetes 本身的架构。我建议了解集群的总体架构,即控制平面和工作节点。

您还需要对 Kubernetes 的各种组件有一个高层次的了解。像 API 服务器、调度器和 kubelet 之类的东西。如果你能看到 Kubernetes 的架构图,并简要地阐明每个组件所扮演的角色,那么在考试时,你可能会在这方面做得很好!

Not just Kubernetes …

正如公开的朝鲜中央通讯社课程所揭示的那样,这项考试不仅仅只涉及库伯内特人。它还包含关于云原生的一般材料。

在参加考试之前,最好先熟悉一下 cloud native 是什么,以及它的一些实践。不要假设课程中的主题,如无服务器、自动缩放和遥测,是纯粹从 Kubernetes 的角度来看的。您应该对这些主题与原生云的关系有所了解。当然,我会在我的朝鲜中央通讯社课程中介绍所有这些内容-下面会详细介绍!

云本地计算基金会(CNCF)

云原生计算基金会(CNCF) 支持朝鲜中央通讯社认证,但他们也是云原生社区的重要组成部分。了解一下 CNCF 是做什么的,以及它是如何工作的,对朝鲜中央通讯社考试可能会有帮助。


本月观看 Kubernetes 这个节目让你随时了解 Kubernetes 世界发生的一切!


这些只是一些观察,帮助你获得朝鲜中央通讯社认证。如果你想更深入地准备考试,我的新 Kubernetes 和云本地助理(朝鲜中央通讯社)课程可以帮助你做到这一点!


通过责任合作伙伴提高云计算的包容性和多样性

原文:https://acloudguru.com/blog/engineering/increasing-inclusion-and-diversity-in-the-cloud-through-accountability-partners

我们需要更多像安妮-珍妮特这样的#女人

在 2016 AWS re:Invent 的一次闪电谈话中,Anne-Jeanette 分享了她在 Capital One 担任云架构师的经历。她描述了导致她失去家园的卡特里娜飓风的破坏,Capital One 提供的惊人支持,以及她在灾后恢复系统时了解到的云计算的价值。

听 Anne-Jeanette 说,很明显她非常专注、有弹性且技术敏锐,因此毫不奇怪她获得了 AWS 解决方案架构师认证,这是他们大规模云采用和人才转型工作的一部分。

作为云架构师,Anne-Jeanette 与交付团队密切合作,为复杂的业务问题设计和实施云原生解决方案。作为一名从业者,她拥有丰富的经验,对整个软件开发生命周期有着深刻的理解。Anne-Jeanette 非常重视持续交付和集成的 DevOps 实践。

Anne-Jeanette 也是一个“实干家”,她被相对较少的获得 AWS 认证的女性所激励。在最近的一篇博客中,她创建了# WomenWhoCloud challenge,以鼓励其他女性与她一起参加 AWS re:Invent 2017 认证休息室。

我不是女工程师,我是一名工程师——我从机械师到 AWS 认证解决方案架构师的旅程——acloudguru.com

作为# WomenWhoCloud 挑战的一部分,她建立了一个由 20 名女性组成的学习团队,名为“Rev It Up”,是她们的指定责任伙伴。她正在指导她的团队学习云计算的基础知识——并使用云专家的课程帮助每个参与者在 re:Invent 之前获得 AWS 认证。

Anne-Jeanette 希望通过 AWS 认证项目让成千上万的高技能女性涌入市场,从而为云计算行业创造公平的竞争环境。除了学习当今市场相关技能的教育益处外, AWS 认证解决方案架构师在薪酬最高的 IT 认证名单中名列榜首

理想情况下,云中有如此多的女性,以至于不再需要#WomenWhoCloud。

她以团队为基础的指导方法的一个重要部分是问责制。她创建了一个 Slack 频道来检查参与者,帮助回答问题并鼓励他们进步。根据她的方法和反馈,一位云专家正在努力进一步增强我们的学习平台,以促进更多基于团队的学习功能。

如果你对团队功能有什么建议,请在下面留言给我的兄弟,Sam krooneburg和他的 ace 开发团队!

A Cloud Guru 团队期待在 2017 AWS re:Invent 上看到 Anne-Jeanette,并在认证休息室与多元化和包容性的云大师社区一起交流。干杯!


为了支持 Anne-Jeanette 的努力,并帮助鼓励其他领导者赞助学习团队,我们创建了一个新的团队订阅。

A Cloud Guru is now offering a special subscription rate to support sponsors of the #WomenWhoCloud movement

要获得#WomenWhoCloud 群组的特别优惠:

  1. 访问我们的新的云专家“团队”页面
  2. 点击“告诉我们”
  3. 提交表格时提及# WomenWhoCloud

云专家 课程 由对云计算有着共同热情的行业专家讲授。我们努力为我们不断增长的云大师社区服务,他们在我们的 论坛 、研讨会、聚会和 会议 中慷慨地贡献他们的见解。跟上一个云宗师剧组@ acloudguru

国际妇女节

原文:https://acloudguru.com/blog/news/international-womens-day

国际妇女节旨在庆祝女性在社会、经济、文化和政治方面取得的成就。它提醒我们还有多少工作要做,并呼吁我们所有人在加速性别平等方面发挥作用。

你知道吗,只有 17%的技术人员是女性,而且不到 10%的人处于领导岗位。随着技术在我们生活中扮演的重要角色,我们需要更多的人成为积极的创造者,帮助塑造技术在未来可以和应该是什么样子。


只有 17%的技术人员是女性,其中不到 10%处于领导岗位。


今天为我们所有人提供了一个绝佳的机会,让我们参与到打造工作场所的平等中来。现在是我们加强建设一个包容性世界的承诺的时候了。

虽然国际妇女节是一年中的一天,但 ACG 致力于全年持续关注公平、多样性和包容性。我们的创始人萨姆·克鲁尼堡和瑞安·克鲁尼堡一直坚信要为生活中的每个人创造一个公平的竞争环境——这就是他们创建 ACG 的原因。在这里,我们相信你能给予的最大礼物是教育,因为它能带来机会和成功。这就是为什么 Sam 和 Ryan 在建立云专家时开始着手教育民主化。

在 ACG,我们希望为女性提供有吸引力的前景,让她们在职业生涯中取得非凡的成功,从而为她们创造公平的竞争环境。此外,我们希望营造一种环境,表彰女性的工作和成就,让她们继续激励他人发挥全部潜力。


阅读更多:了解女性如何在云专家那里改变科技的面貌。


我们的目标是让每个人都能使用云学习。我们希望打破科技行业众所周知的“兄弟”文化,通过我们的产品和平台打开大门,为我们社区的女性提供新的机会。

为了庆祝今年的 IWD,我们鼓励所有 ACG 员工参与#选择挑战 国际妇女节挑战。我们呼吁那些想要打造一个性别中立的世界、保持性别平等的心态、挑战性别陈规定型观念和偏见、塑造女性的正面形象并庆祝女性成就的人高举双手,展示团结!

除了 #choosetochallenge 活动,我们还组织了一次内部炉边谈话,与我们鼓舞人心的首席人事官洛林·瓦加斯·汤森。这次谈话将由我们另一位鼓舞人心的女性领导人萨拉·扎布克维奇主持,她是参谋长。

炉边谈话的主题是女性领导:在新冠肺炎世界实现平等的未来这一主题庆祝世界各地的妇女和女孩为塑造一个更加平等的未来所做的巨大努力。

新冠肺炎对妇女和女孩产生了深远的影响,加剧了她们每天面临的不平等。女性失业的速度比男性快。妇女进入疫情时面临着更加不稳定的就业,临时工比率更高,工资更低,就业不足率更高。

至关重要的是,不同妇女的声音和经历是国家和全球复苏计划的核心。促进新冠肺炎世界更加平等的一个关键因素是增加妇女担任领导职务的机会。不幸的是,妇女在获得领导权方面仍然面临巨大的文化、社会经济和政治障碍。你可以向致力于提高妇女和女孩地位的注册慈善机构或非营利机构捐款。


看看你在云计算大师中的位置

销售。产品管理。划桨。办公室琐事。无论你是哪方面的大师,和云大师一起成为大师。申请紧张?不要!如果我们的使命和价值观与你对话,我们也想与你对话。学位不是必需的,职业空缺或转换是受欢迎的。

从项目管理到 AWS 培训架构师

原文:https://acloudguru.com/blog/engineering/interview-craig-arcuri

在我们最近的采访中,我们与 Linux Academy 的 AWS 培训架构师 II Craig Arcuri 讨论了他最近的认证、学习 AWS 的技巧以及他的一门新课程。Craig 的职业生涯始于医疗保健 IT,后来成为项目管理人员,现在正在为我们的学生创建 AWS 课程。了解更多有关他如何走到今天这一步的信息!

克雷格,你能告诉我一些你的背景吗?你是怎么走到现在这一步的?

是啊,当然。在我进入 AWS 之前,我的职业生涯可以大致分为三个部分。我从医疗保健 IT 开始做起,这是一份很棒的第一份工作。我算是个多面手,做一些网络工程、系统工程和一些软件开发。这是大学毕业后的第一份很酷的工作。然后我转向了国防承包,主要是软件开发。我逐渐成为了一名技术主管,并开始接触项目管理。然后,在那之后,我转向了项目管理——从财富 500 强公司到银行业,甚至是一家初创公司。所以在 AWS 之前,这差不多是我职业生涯的长度。我喜欢我的大部分工作,但我发现我热爱云计算。

你职业生涯的大部分时间都在科技行业,但并非每个人都是如此。是什么技术吸引你进入这个领域?不仅仅是 AWS,而是整个技术。

在大学里,我进入了电子工程领域,这可能是一个非常多样化的领域。在那里我开始了一些 C 开发,一些 Fortran,我只是被它的计算机工程方面所吸引。这才是真正点燃我的火花。

你提到你毕业时进入了医疗 IT 行业。你做过什么样的项目?

伙计,我有一些非常酷的项目——比如把病人入院系统和饮食系统连接起来。像这样的一个项目,从一些 UNIX,一些 shell 脚本,一点点 Visual BASIC,我必须做一些屏幕抓取。这有点像回到了你不得不拼凑东西的时代。那是我的第一个项目,我怀疑它还在那里,但我知道他们用了整整八九年。

从那以后,你进入了国防承包行业,并继续从事软件开发。但你也进入了项目管理。那是怎么发生的?

作为一名软件开发人员,我越来越资深,并开始领导团队。我成了技术主管,我们的许多项目经理也负责业务开发。因此,当他们在路上努力招揽业务时,项目管理的职责通常会落到技术负责人身上。我就是这样掉进去了。我当然喜欢这种挑战,尤其是当我刚刚起步,经验很少的时候。

我听说向管理角色的转变可能是一个真正的挑战——你从管理完全按照你说的去做的计算机到管理人,在那里有一种完全不同的给出指令和互动的方式。那段时间你学到了什么?

其中一件大事是,你团队中的伙伴现在由你管理。这是一种不同的动力——你是项目经理,你必须推动项目,你必须激励你的团队。当然,你可以在你的团队中建立友谊,但最终,你要对项目及其成功完成负责。你必须让每个人都朝着正确的方向行驶。这是一个小小的转变,但是我很享受这种挑战。

从那以后,你进入了几个不同的角色,经历了一些变化,最后你进入了 Linux 学院。作为一名培训架构师,你不再确切地做项目管理了——至少不是以你可能习惯的方式——那么你是如何在这里结束的呢?

我发现我从未失去技术动力和好奇心。我不想成为一个不了解他们项目技术方面的项目经理。我认为自己是一个技术项目经理,在大多数情况下,我是,通过标题。基本上,我在技术方面涉水,管理服务器之类的东西。通常,你会在团队中人手不足,而我总是抓住机会进入技术领域。在此过程中,我发现了一些与 AWS 合作的机会——创建一些 EC2 实例来完成一个快速项目,诸如此类。我会完成一项主要任务,只花 80 美元左右,这让我很惊讶。使用 AWS,您可以以惊人的速度加速工作。

我一直对它有点兴趣,然后我发现了认证。我不得不看 AWS 的全貌,而不是零零碎碎地看,我很喜欢它。我获得了全部三个助理认证: AWS 认证解决方案架构师AWS 认证开发人员AWS 认证系统管理员。我只是喜欢看着它,和它一起工作。在来这里之前,我做了一些合同工作,为 AWS 培训收集样本测试。我听说 Linux Academy 有一个机会,我想,是的 听起来很酷。

所以你提到了一些我不常听到的东西——将认证作为一门课程。作为项目经理或团队领导,您可能在一个项目中只接触到五六项服务。要看项目,当然有时候会不止这些。但是考试的时候,什么都要一下子学会。你认为 AWS 认证的价值是什么?

我觉得是双重的。让我很快地跳回来——我曾经做过一些 Java 开发,我有一些在 Java 开发方面非常出色的朋友。但是当你去考 Java 证书时,它并不总是现实的和与工作相关的。我发现 AWS 认证与工作非常相关。这当然是一个热门的认证。如果你决定要去获得它——就像我们在 Linux 学院所说的——你可以改变你的生活,改变你的职业生涯。机会就在那里。获得 AWS 认证是值得的,因为它是基于你在获得新工作时实际使用的技能。

是什么把你吸引到 Linux 学院的?你为什么选择来这里?

这是一个很好的学习平台。我可以说每个人都非常关注学生,当我接到电话来这里面试时,我肯定想成为其中的一员。底线是我喜欢亚马逊网络服务。我绝对没有完成我的 AWS 学习,但我喜欢 Linux Academy 的一点是,我可以涉猎谷歌云AzureLinux 等等。

课程非常广泛。亚马逊的什么不仅把你吸引到他们的平台上,还让你留在那里?现在我们有谷歌云和 Azure 在做类似的事情,它们也越来越受欢迎。你喜欢亚马逊网络服务的什么?

我有三个助理级别的证书,我刚刚获得了我的第一个专业级别(解决方案架构师),这是一个非常坚实的平台。我不认为我花在学习上的任何时间是浪费的——任何东西都有实际用途。到目前为止,亚马逊是该领域的领导者,尽管我认为这一差距最终会缩小。但是在这场比赛中,有一个方面是想和冠军在一起。另一件事是事情变化有多快。他们一直致力于 AWS 并不断改进。我每周都会收到一封电子邮件,他们每周做出的改变之多令人难以置信。我把我想补上的事情列了一个清单,这个清单是不断变化和不断增长的。

这是我想问的另一件事——你最近刚刚获得了专业解决方案架构师认证。

是的。很明显,我白天确实有工作,但专业的 DevOps 工程师是我清单上的下一个,我希望找到时间做下一个。我对这东西百听不厌,我喜欢学习它。有一种达到一定水平的动力,所以这是我的下一个议程。

你如何比较同事的专业水平?许多学生可能刚刚开始并准备获得助理证书,但我们也有很多人已经在考虑下一步并获得专业证书。你会给他们什么建议,或者你会对这些水平做什么比较?

很有意思。在助理级别潜水本身就是一个艰难的挑战,而提升到专业级别几乎是指数级的困难。我这么说并不是要阻止任何人去追求它,但我给你的建议是不要匆忙。

拥有这个证书很好,当然对你的职业生涯也有好处,但是随之而来的还有一种学徒期。如果你操之过急,通过考试几乎是不可能的。享受旅行——到达那里并不需要很长时间,但我的总体看法是,要达到下一个水平,有一个学徒的方面。

这是你至少在一篇博文中提到过的——“享受旅行”能说说自己的旅行吗?你是如何准备专业级证书的?

解决方案架构师专业级别,您正在处理复杂的混合云场景,并且您正在移动大量数据。当你考试的时候,你可能会得到一个两段长的问题。这可能很吓人。我采取的角度是这样的:我详细描述了可能出现在专业水平考试中的每一个服务,并且从那开始,我想知道每一个服务的用例。不仅仅是用例,还有它们如何与其他服务交互。例如,想想实时数据。实际上,让我补充一下,我很喜欢关键词。所以当你想到“实时数据”的时候,对我来说,那就是 Kinesis。你建立这种联系——kine sis 处理实时数据,如果在中间进行分析,它可能需要将数据传输到 S3,你需要什么?可能是弹性 MapReduce。只看这些海量的场景问题,你需要知道如何从这些问题中挑出关键词和用例。我想说的是不必阅读每个单词就能理解这些问题。他们有点言过其实,在现实世界中,客户可能会更简洁地告诉我我需要什么。这些问题本来就很难,你必须找到一种方法来解读它们。

听起来你为这次考试做了很多准备。一旦你决定去获得职业水平认证,你还做了什么?你是如何准备参加考试的?

我列出了考试中我能想到的所有服务。很明显,我不会走进这种寒冷的环境中——我有一个很好的想法,于是我去了产品页面。我也使用了 Linux 学院的专业认证课程,但是课程甚至提到你可以做一些额外的事情。例如,阅读白皮书。有一些白皮书对考试至关重要,如安全性、数据存储等。我想消除任何疑问。我想超越自我。我访问了所有这些服务的产品页面,对于关键部分,我将其剪辑到 OneNote 中。对于每一个问题,我都进入了常见问题。仅仅知道“好的,这是 S3,我可以在这里存储对象”是不够的您必须真正了解您可能遇到的每个用例,以及何时使用 S3,而不是 RDS 或弹性块存储。总而言之,我会把重点放在我的学习上,首先是 Linux 学院课程。第二个问题是常见问题。第三,可能是白皮书。

这是准备和参加考试的绝佳建议。但就像你之前提到的,这更像是 AWS 生态系统的全貌。我们有一些非常好的课程即将推出,它们专注于平台的非常具体的部分,我想你们在这方面有一些东西要宣布……

我对我的一门新课程感到兴奋,那就是云层形成深度潜水。几个月和几个小时后,它终于出来了——这总是团队的努力,一路上我得到了很多帮助。当然,深入探究将会非常彻底地涵盖云构造、模板和堆栈的真正核心和灵魂。它将涵盖模板内引导、使用助手脚本、等待条件、更新策略等概念。我将介绍更新堆栈的各种技术,比如跨区域部署堆栈的堆栈集、基于 CloudWatch 事件回滚堆栈的回滚触发器,以及使用 AWS Config 监控堆栈。

AWS Lambda 是一项令人兴奋的服务,其中还包含了通过 CloudFormation 定制资源对 Lambda 进行的全面介绍。我不想忽视核心的命令行人员,所以我也做了一个关于 CloudFormation CLI 的部分。CloudFormation 促进了 AWS 和其他伟大技术之间的交互,如 Chef、Puppet、Docker 和 Kubernetes。因此,我在一节中概述了这些技术,并介绍了如何使用 CloudFormation 来配置它们。最后,我加入了一个关于云形成最佳实践、故障排除和灾难恢复的部分(通过 Lambda 演练实现灾难恢复自动化!).这门课有许多动手实验、测验和抽认卡,我希望这些能对那些想真正掌握材料的学生有所帮助。

CloudFormation 是一项很酷的服务,我相信人们会对这门新课程感到兴奋。什么时候能买到?

如果你有兴趣详细了解云形成的来龙去脉,你可以在课程页面上注册,现在就开始。或者,如果您拥有 Linux Academy 会员资格,您已经可以访问本课程以及我们的其他课程。

我不想占用你太长时间,但是在我们结束之前,我必须问一下——如果有人是新学生,只是想进入 AWS,你有什么建议吗?

AWS 中有一些很好的机会。它的好处是节奏非常快。你不会对 AWS 感到厌烦,但是 AWS 有很多。你得给自己时间,不要对自己太苛刻,并接受一些适当的训练。

人们有一种趋势,想一头扎进去,在几个月内获得认证。我并不是说那是不可能的,但重要的是享受过程并继续前进。六个月后,你会惊讶自己走了多远,一年后你会惊讶。曾经看起来不可能的事情,你会回头看,你已经做到了。

听起来是个很棒的建议。你还有什么要告诉我们学生的吗?

是的,我确实有一个故事想分享。在 Linux 学院,我们谈论任务和挑战,我也有自己的任务,要实现它当然是一个挑战。从 2010 年开始,我就一直在计划一次旅行——从那以后就不是真的计划了,而是想想就想去。这个即将到来的夏天,我终于要去法国和意大利的阿尔卑斯山,骑着自行车登上这些著名的山峰——可以说是在云端。这是我的一个追求,这很像进入 AWS。这很吓人,但是可以做到。希望如此。

祝贺你终于实现了这一目标。我认为你的追求是对那些不仅想改变职业生涯,而且如果他们已经在技术领域工作,还想迈出下一步的人的一个很好的比喻。AWS 是推动自己学习新技术的好方法。

绝对的。可以做到。


查看克雷格的最新课程, AWS 认证 DevOps 工程师-专业(2018) ,并确保订阅我们的博客以获得更多来自该男子本人的博客帖子!


7 月,我们发布了三个新的 AWS 课程更新、一个新的 AWS 课程和四个新的 AWS 挑战!我们在 300 多个小时的 AWS 实践实验室和课程中添加了大量新内容,请点击此处查看!

亚马逊 S3 简介:AWS 动手实验室播放列表

原文:https://acloudguru.com/blog/engineering/intro-to-amazon-s3-the-aws-hands-on-labs-playlist

这篇文章重点介绍了实践实验室,它将帮助你获得建立亚马逊 S3 技能的实际经验。

手。他们玩石头剪子布或者做一个完全没有说服力的狗皮影都很棒。但是手对于学习云计算也是很方便的。怎么会?通过 ACG 的动手实验。

我们的动手实验室是一些练习,指导您在真实的安全云环境中解决实际情况中的问题。在本帖中,我们将涵盖一系列动手实验,这些实验将帮助你掌握入门亚马逊 S3(简单存储服务)所需的技能。


把你的手弄脏

边做边学。无论您是技术新手还是经验丰富的专业人士,我们都会通过实践学习让新技能触手可及。


亚马逊 S3 简介动手实验室播放列表

要开始下面的动手实验,您需要有一个 ACG 帐户。没有户口?不要烦恼!开始免费试用并进行为期 7 天的试驾,体验全面的 ACG 实践。或者创建一个免费账户——不需要信用卡!

其中一些实验室可能会成为我们每月轮流免费课程和内容的一部分。

**等级:**修炼者
实验室数量 : 5 实验室
完成时间 : 3 小时

S3 是一个大人物。亚马逊 S3 在世界上最大的全球云基础设施上运行,并从头开始设计,以提供 99.999999999%的耐用性。有些人甚至宣称 S3 是有史以来最伟大的云服务

准备好亲身体验 S3 入门速成班了吗?我们开始吧!

建议的音乐配对


1。亚马逊 S3 介绍(简单存储服务)

持续时间 : 30 分钟

目标:

  • 创建公共和私有亚马逊 S3 存储桶,并向每个存储桶上传一个文件
  • 在公共存储桶上启用版本控制
  • 验证对同名文件的不同版本的访问

描述 : 这个动手实验室将带你开始学习亚马逊 S3 的旅程。在本实验中,您将使用 AWS 管理控制台。

登录您的 ACG 帐户?在这里开始这个实验室


2。使用亚马逊 S3 创建一个静态网站

持续时间 : 30 分钟

目标:

  • 创建 S3 存储桶
  • 启用静态网站托管
  • 应用存储桶策略

描述:在这个 AWS 动手实验中,您将创建并配置一个简单的静态网站。我们将指导您使用自定义错误页面配置站点。这将演示如何为包含 HTML、CSS、JavaScript、字体和图像等文件的网站创建经济高效的主机。

你已经是 ACG 会员了吗?在这里启动这个实验室。


3。创建基本的亚马逊 S3 生命周期政策

持续时间 : 30 分钟

目标:

  • 创建一个 S3 存储桶并上传一个对象
  • 创建生命周期策略

描述:数据往往只需要短时间频繁访问。一旦这段时间过去了,你可能只保留这些数据,以防你再次需要它。这种类型的数据可以存档,这比保持其快速可访问性要经济高效得多。AWS 提供 Glacier 作为长期存档存储服务,成本较低。可以使用生命周期策略在 S3 存储类别之间自动移动数据。在 这个动手实验中,您将创建一个生命周期策略。

ACG 会员?现在就开始这个实验室。


看点:自动化 AWS 成本优化
经济高效地使用 AWS 可能是一个挑战。在这个免费点播的网络研讨会中,您将了解 AWS 成本优化工具和策略的概况,如数据存储优化


4。 把你的 S3 斗个落花流水

时长 : 75 分钟

目标:

  • 更新 IAM 策略
  • 附加 IAM 和 S3 时段策略
  • 测试并验证 IAM 和 S3 存储桶策略
  • 在 S3 存储桶中启用阻止公共访问
  • 为 SNS 事件通知配置 CloudTrail 和 CloudWatch

描述:在这个动手实验中,您将实施 S3 存储桶策略和 IAM 策略,以了解保护 S3 存储桶及其内数据的各种方法。您还将看到可以利用哪些服务来审计和修复安全问题。

已经是 ACG 会员了?在这里动手


5。 高级 S3 安全配置

持续时间 : 90 分钟

目标:

  • 调查实验室环境
  • 提供适当的团队和用户访问权限
  • 测试权限

描述:在这个动手 实验中,您将为所提供的 S3 bucket 配置权限,以便为 S3 bucket 中的一组用户和一个公共前缀提供适当的访问权限。

ACG 会员?点燃这个实验室这里


推荐的后续步骤了解更多关于 S3 的信息

  • 准备好让你的 S3 知识更上一层楼了吗?深入 S3,在这个全面的 S3 大师班中学习你需要知道的一切!它会在 9 小时内把你从 S3 新手变成大师。

  • 本周继续关注我们的原创系列AWS中的所有 AWS。

  • 不确定下一步去哪里?查看我们的学习路径获取指导,在你从新手到大师的过程中,学习什么来不断提高你的 AWS 技能。

相关资源

查看我们的其他动手实验播放列表

面向有抱负的数据工程师的数据库介绍

原文:https://acloudguru.com/blog/engineering/intro-to-databases-on-azure-basics-for-aspiring-data-engineers

如何开始使用 Azure 数据库?作为一个数据库新手或微软 Azure 的新手,有太多的选择,很难知道从哪里开始。在你开始成为一名数据工程师的道路上,哪一个适合你?

让我们把问题转过去,从不同的角度研究所有这些产品,试图理解每个选项在数据库技术的大计划中的作用。

为了做到这一点,让我们通过一个例子来讨论如何跟踪顾客在你的商店购买产品时的订单。我们将尽可能少地使用数据库术语,您会发现这些概念比您想象的更加普遍。我们将研究这个问题,并在此过程中提出一些问题,我将为您提供一些可以进一步研究的文档。我们开始吧!

对数据库有了更多的经验?使用微软 Azure 数据库服务查看一位云专家的中级课程**。这是本月的免费课程之一。**

数据的多种形式:关系数据与非关系数据

也许当今数据库的一大区别不是数据库本身,而是它们可以轻松处理的数据类型。即:数据库是否具备处理关系型 vs 非关系型数据的能力。是的,您可以让数据库适应不同形式的数据,但这最终可能会损害应用程序的性能。这意味着您需要确定您想要如何建模您的数据,然后决定哪个数据库是这项工作的最佳工具。

考虑以下假设。假设你有个客户想要通过下订单来购买的产品。因此,您需要将它们建模到您的数据库中,就像这样:

Customer: Customer ID, Customer Name, Customer Address
Product: Product ID, Product Name, Description

在使用这些数据下订单时,您有几种选择。例如,每个订单可以为订单中的每一行存储完整的客户产品信息,或者您可以为每个产品添加一个唯一的标识符,然后从订单表中引用该标识符。大概是这样的:

Order: Order ID, Customer ID, Product ID, Quantity

问题是:这些选项中哪一个是首选?如果您想跟踪交易并保持数据完整性,那么将客户产品订单实体存储在不同的表中可能是您的最佳选择。

在这种情况下,我们所说的正直是什么意思?如果每次将产品放入订单时,您都要添加完整的产品信息,那么如果产品描述发生变化,您就必须为订单表中该产品的每个实例更新信息。这将是非常昂贵的计算和容易出错!另一方面,如果您只跟踪产品的惟一 ID,那么如果您需要更新产品描述,只需在一个地方完成即可。听起来很简单,对吗?没那么快…

如果你想显示数据会发生什么?说生意兴隆,你有成千上万的订单!现在您需要创建一个显示订单列表的报告,这样您的股东就可以看到最新的业务报告。这意味着您对数据库的查询不仅要从订单表中获取信息,还要从产品表中获取信息。因此,也许把两个实体,订单产品,存放在同一个地方并不是一个坏主意?你怎么想呢?

数据工程师知道决策伴随着权衡

随着您在数据工程师职业生涯中的进步,您将了解到每一个决定都伴随着取舍。如上所述,您获得了数据完整性,但是显示信息可能最终会更加昂贵。您可以将所有数据插入到同一个表中,但是之后可能需要跨数据库手动复制更新。面对这类问题时,有没有解决方案和最佳实践可以遵循?当然啦!

到目前为止,我一直避免使用特定于数据库的术语,因为我想以一种您可以在没有太多干扰的情况下进行推理的方式来介绍这个问题。是时候揭开那些行话并给你学习资源了,这样你就可以更深入地钻研那些话题了。让我们看看。

数据库和数据工程术语解释

我们在上面展示了在数据库中存储业务实体的一种方法是将它们跨表拆分。我们一方面有产品表,另一方面有订单表。我们称之为正常化

订单表通过只存储其 ID 来跟踪产品时,我们称之为关系。在关系数据库术语中,存储在 Orders 表中的产品 id 是一个外键,它引用或关联到存储在 Products 表中的 id 。您可以在微软学习模块描述关系数据的概念中了解更多关于这些想法的信息,特别是在标题为探索关系数据的特征的部分。

然后,当我们跨表拆分数据时,我们面临着一个权衡:现在我们有一个问题,当我们想要在一个报告中呈现这些数据时,我们需要从多个表中获取数据。这可能很麻烦,并且会导致性能问题,因为您需要跨包含大量数据的表运行查询。虽然我们可以使用非关系数据模型来解决这个问题,就像在文档数据库中一样,但是没有必要脱离关系数据模型。

当使用关系数据库时,您可以使用视图。使用视图,您可以混合两个或多个表的数据,并将其呈现为同一个虚拟表的一部分。在微软学习版块探索关系数据结构中,您可以了解更多关于视图的内容——了解如何创建视图以及如何从视图中检索数据。

我们已经谈了很多关于插入数据、检索数据等等,但是我们忘记了一个至关重要的方面:如何查询数据。

SQL 入门

在关系数据库中,您通常使用 SQL 语言;无论你使用 MySQL、PostgreSQL 还是 SQL Server,你都需要学习 SQL。(云专家的 SQL 深度课程是一个很好的起点。)

在你成为数据工程师的职业生涯中,提高你的 SQL 能力是必不可少的,因为大多数数据库都将使用 SQL——或它的一种形式。

为了让你开始使用 SQL,Microsoft Learn 在 Azure 中提供了模块查询关系数据。这将指导您学习从关系数据库中查询、插入、更新和删除数据。

最后一个提示:请记住,在您的数据工程师职业生涯的这个阶段,您需要理解什么是基本概念以及您需要学习的关键词,如关系、规范化、视图等。把它们记在你的笔记本上,作为搜索术语,以后再用。通过这种方式,你可以在走自己的数据工程师之路时继续探索。

结论

在本文中,您看到了一个问题(比如跟踪产品、订单和客户)是如何以多种方式存储的。我们选择走关系数据的道路,在这里我们最终使用外键、视图、进行数据规范化等等。我们的目标是展示日常问题如何映射到这些概念,所以你知道行话。这将是至关重要的,因为如果你不知道要搜索什么,你就无法开始学习。与此同时,我们为您提供了几个链接,让您可以根据自己的进度深入了解和学习。

想了解更多?有一个名为Azure Data Fundamentals:Explore core Data concepts的 Microsoft Learn 学习路径可以帮助你开始使用 Azure 上的数据库。你还可以通过云专家的 Azure 培训阵容深入了解 Azure 所能提供的一切。

关于作者

阿尔瓦罗·维德拉是微软的一名开发者拥护者,他组织了 DuraznoConf。他是 RabbitMQ in Action 的合著者,并为计算机器协会撰写文章。你可以在推特上找到他的名字是 @old_sound


无论你的经验水平如何——无论你在简历中的技术经验一栏中列出“微软办公”,还是你是一名寻求学习新东西的资深 IT 专业人士,一位云专家都将帮助你掌握 Azure 技能。

为 S3 存储镜头介绍 CloudWatch publishing

原文:https://acloudguru.com/blog/engineering/introducing-amazon-cloudwatch-publishing-for-s3-storage-lens

随着我们从 AWS re:Invent 2021 向前迈进,新闻和公告尘埃落定,我们剩下了这么多新的服务、功能和玩具可以玩。但我想说的是,亚马逊 CloudWatch publishing 为 S3 存储镜头增加了一个公告,这个公告可能没有引起人们的注意。


加速您的职业发展

从 ACG 开始通过 AWS、Microsoft Azure、Google Cloud 等领域的课程和实际动手实验室改变你的职业生涯。


什么是 S3 存储镜头?

亚马逊 S3 存储镜头是一款存储分析工具,可让您了解对象存储的使用情况和活动。它现在支持亚马逊 CloudWatch。(查看AWS 博客了解更多信息。)

当您的 S3 使用和成本变得越来越难以监控和了解时,您将需要开始使用 S3 存储镜头。 S3 存储镜头有助于深入了解您的使用和活动趋势,并提出可行的建议,以确保您以符合最佳实践的经济高效的方式使用 S3。

S3 存储镜头增加了云手表支持

Storage Lens 允许您使用交互式仪表板来汇编来自整个组织、特定客户、区域或时段的数据。到目前为止,您还不能将这些仪表盘中的任何一个带入 CloudWatch,必须在两个仪表盘选项之间切换。

那么,AWS 已经提供了人们想要的:一站式仪表板查看!

S3 存储镜头现在能够连接到 CloudWatch,以便您的仪表盘都在一个地方。不再需要在仪表板视图之间来回切换!

前缀级报告

除了这项新功能之外,还有一种新的方法可以更深入地挖掘数据。您将能够使用 S3 的第一个也是唯一的前缀级报告!这有助于您深入了解特定的对象组,这些对象组可能在同一个存储桶中,但是属于不同的项目,并且由前缀分隔。

这一新的合并将允许总共 29 个使用和活动指标、15 个月的历史趋势和交互式图表。

您将能够享受 CloudWatch 的警报和基于您设置的指标触发的操作,并通过 SSO、电子邮件地址或公开共享您的仪表盘。您将能够使用 CloudWatch API 访问存储镜头指标。

"但是使用 S3 存储镜头和云手表不会增加成本吗,杰西?"你可能会问。(我要提醒你,我无法通过博客听到你的声音,但这是一个好问题!)没有!

当您在 Storage Lens 中启用 CloudWatch 发布时,CloudWatch 的成本包括在 Storage Lens 成本中。请参见下图,了解更多信息。

为了能够选择使用 CloudWatch 发布,您必须升级到 Storage Lens advanced。但在我看来,这很值得。

总而言之,这是一个伟大的公告,将有助于您监控、管理和维护您的 S3 使用。提示起立鼓掌!要了解完整的细节,请在这里阅读 AWS 文档

更多 S3 相关新闻,请查看我们的新 S3 冰川即时检索存储类的深度潜水。继续牛逼吧,云大师们!


保持在云的顶端

Twitter 上关注 ACG脸书,在YouTube 上订阅一个云专家来获取你能处理的所有云更新!此外,加入我们令人敬畏的 Discord 社区,与训练有素的架构师和其他志同道合的阴云密布的人进行数字交流。

为云专家的动手实验室引入挑战模式

原文:https://acloudguru.com/blog/news/introducing-challenge-mode-for-a-cloud-gurus-hands-on-labs

作为实践学习的领导者,云专家致力于扩大学习者的选择,以学习、检查和测试他们跨多云和开源技术的实践技能。这就是为什么我们很高兴宣布为动手实验室提供新的挑战模式选项!

新的挑战模式满足了学习者提升其亚马逊网络服务(AWS)微软 Azure谷歌云平台(GCP) 云技能的需求,他们希望挑战自己并展示自己的大师级技能。

挑战模式旨在真正测试学习者的实践技能-教学视频和指南将无法访问,学习者也无法检查他们的工作,直到他们提交实验室,使挑战模式分数成为学习者执行真实世界云任务能力的重要指标


观看:提升您的云员工水平这个免费的点播演示中,了解更多关于我们的挑战模式实验室以及您的组织如何利用 ACG 的实践学习功能来更快、更好、更便宜地构建云。


初始版本将为所有三家云提供商的一小部分实验室提供挑战模式选项。我们将在持续的基础上向更多的实验室添加评分,因此随着时间的推移,学员将会看到越来越多的实验室处于挑战模式。凭借最大的动手实验室目录,这将为学习者提供一个测试其动手技能的绝佳机会。

其他提供商提供的挑战实验室允许学生在提交他们的实验之前无限次数地检查他们的工作。如果学生或管理员真的想测试动手能力,最好的方法就是不要重做。这就是我们对动手实验的新挑战模式选项如此兴奋的原因。

此外,对于持续学习的学生来说,定期检查先前所学技能的保留情况是一个重要的选择。当一个学生没有在日常生活中积极运用以前学到的技能时,这一点尤其重要。在挑战模式下进行动手实验将为检查和重新检查所学技能提供一个有价值的选择,这样学生就知道他们可能需要在哪里温习知识。

随着挑战模式下实验室评分的增加,学生还可以选择在指导模式下的动手实验中完成目标时检查自己的进度

指导模式是指我们现有的动手实验室体验,包括访问教学视频和指南。在引导模式下检查进度的选项也适用于挑战模式下的相同实验。

作为实践学习的领导者,云专家致力于扩大学习者学习、检查和测试实践技能的选择。新的挑战模式和指导模式的发布将支持所有学习者,无论他们在学习旅程的哪个阶段。

要查看实际操作实验室的挑战模式,登录 ACG 平台,点击顶部导航栏中的“实验室”,然后选择“实验室模式”下的“挑战”

在任何具有挑战模式的动手实验中,您都可以通过单击左侧的下拉菜单在指导模式和挑战模式之间切换。(见下文。)


掌握最受欢迎的技能

无论您是云新手还是经验丰富的专家,云专家都可以让您轻松(而且非常棒)地提升您的云职业生涯。查看 ACG 目前的免费课程立即开始免费试用。

商业云游乐场来到 ACG:动手学习

原文:https://acloudguru.com/blog/business/introducing-cloud-playground-for-business

提高你的团队技能的最好方法是让他们参与进来。但是让人们访问真实的环境和服务器可能是一件痛苦的事情。他们需要等待 it 部门调配培训环境,担心持续运行的资源带来的意外账单,以及有人破坏生产环境的潜在风险。这就是为什么我们很高兴宣布面向 ACG 企业的云操场。它为团队提供了无风险、可实际操作的云学习工具,旨在帮助人们边做边学。

你玩云,你会学到东西

光看一件事不会让你成为那方面的专家。(相信我。我看过每一部速度与激情的电影,连平行泊车都不会。)无论你是一次过四分之一英里的生活,还是试图提升团队的云计算能力,实践对于学习都是必不可少的。这就是云游乐场的用武之地。

有了 Cloud Playground,学习者可以动手磨练他们的云技能——跟随 ACG 课程,尝试新技术,并在无忧无虑的安全环境中犯错。它将 ACG 令人敬畏、引人入胜的云技能发展内容与完美的实践空间相结合,对您的生产环境没有风险,没有隐藏费用,也没有管理员或 It 的麻烦。这套高级培训工具包括 real AWS、Azure 和 GCP 实践环境以及可定制的培训服务器。

Cloud Playground 在 ACG 的商业推广是对 ACG 平台的众多增强之一,这是由一位云专家和 Linux 学院联手实现的。

把你的手弄脏

云游乐场取代了 ACG 的沙盒环境。但是云游乐场不仅仅是沙盒。这是一个完整的游乐场。(由此得名!)下面是组成 Cloud Playground 的三个工具以及它们让学习者做的事情。

  • 云沙箱 —这些是真实世界的 AWS、Azure 和 GCP 实践环境,供您的团队使用。保持运行的资源不会产生意外费用,管理员或 IT 人员不会因为访问或扩展而烦恼,组织的生产环境也不会有任何风险。
  • 云服务器 —这些可定制的预配置、自动供应的服务器运行不同的发行版和工具,非常适合培训。学员可以仔细阅读我们的配置套件或尝试一些新的东西。每个用户都可以获得一定的信用额度来兑换云服务器,这样他们就可以运行一堆小型服务器,或者把所有的钱都花在一个内存巨大的服务器上。
  • 即时终端 —这种浏览器内终端让您的员工可以访问任何提供商的任何实例,甚至是在公司防火墙之后。没有下载、扩展,也不需要打开 SSH 端口,这带来了安全性和合规性风险。(你的系统管理员谢谢你。)

这是个好机会

有了 Cloud Playground,人们可以自由地边做边学,与我们的课程一起学习,测试驾驶技术,打破常规,尝试新事物——甚至尝试愚蠢的事情。基本上除了故意坏事。我们积极监控 Cloud Playground 的滥用、禁止或其他不良行为。(想想:比特币挖矿,上传恶意软件,或者黑服务器。)

准备好开始了吗?正如本叔叔所说,伟大的新功能带来伟大的新术语。在您进入云领域之前,您组织中的管理员必须接受新的使用条款


这将教会他们

您的团队可以通过使用 Cloud Playground 了解更多信息。将我们出色的课程、实验室、测验和学习路径与 Cloud Playground 配对,在构建 cloud fluency 的过程中让您的双手变得模糊。


介绍#CloudGuruChallenge

原文:https://acloudguru.com/blog/news/introducing-the-cloudguruchallenge

2020 年 4 月,我以 AWS 无服务器英雄的身份发起了一项名为云简历挑战的社区倡议。这是一种尝试,通过提供一个策划好的投资组合项目,以及一些代码审查、指导和网络,来帮助关系不太好的人在云中找到工作。

这项挑战出人意料地取得了成功,建立了一个由数百名积极参与者组成的多元化社区,其中许多人是非传统背景的真正的职业改变者。

挑战并不容易;当我第一次推出它时,有人预测没有重要的 it 背景的人将无法完成它。然而,我们已经注册了来自 6 大洲 20 多个国家的数十位冠军,而且人数还在增加。许多人获得了面试机会,还有一些人获得了他们的第一份云计算工作。

出于这个原因,越来越多的挑战者在问:下一步是什么?你有我能做的另一个项目吗?

到目前为止,这个挑战对我来说太大了,以至于我自己无法管理,即使有几个优秀的志愿者导师的帮助。所以今天,我很兴奋地宣布,一位云大师已经开始了云简历挑战的精神继承者,这是一个名为#CloudGuruChallenge 的每月项目。

你需要知道的是

每个月,一位云计算大师讲师将介绍一个需要使用云服务、技术和技能的项目。你现在就可以开始 2020 年 9 月的项目了。

您可以根据自己的意愿或快或慢地完成项目需求,可以自己完成,也可以与他人合作完成。欢迎在论坛或社交媒体上使用#CloudGuruChallenge 标签提问

当你完成项目的所有步骤后,在指定的论坛帖子中发布你的 GitHub 资源库链接和你的 LinkedIn 个人资料。ACG 的讲师将会在 LinkedIn 上为你在这个项目中展示的技能背书!(您还将有机会赢得一些超酷的奖品!)

最重要的是,#CloudGuruChallenge 是免费的,每个人都可以使用;你所需要的就是一个 ACG 免费会员来发表你的论坛帖子。

挑战成功的原因

是什么让#CloudGuruChallenge 格式不同于大多数教程或项目式学习呢?它并没有告诉你具体要做什么。像真正的工作分配一样,挑战是基于规格的。你必须打开谷歌标签,进入兔子洞,找出每一步。

这是边做边学到了一个可笑的极端。它帮助人们通过面试并被录用,因为这个项目在工作面试中是很好的谈话素材。这似乎也产生了宜家效应:学习者对社区和挑战充满热情,因为他们在项目中投入了大量自己的工作和创造力。

绝大多数招聘经理表示,在评估求职者时,展现出来的实践技能对他们来说是最重要的。#CloudGuruChallenge 项目旨在建立您的项目组合,将您与其他充满激情的专业人士联系起来,并提升您的职业生涯。

我们迫不及待地想看到你迎接挑战

使用 Diff 和 Patch 的介绍

原文:https://acloudguru.com/blog/engineering/introduction-using-diff-and-patch

命令 diff 和 patch 形成了一个强大的组合。它们被广泛用于获得原始文件和更新文件之间的差异,这样,只有原始文件的其他人可以通过仅包含差异的单个补丁文件将它们转换成更新文件。本教程解释了如何使用这些伟大的命令的基础。

难度: *中等本教程假设一些基本的 Linux 和命令行知识,像改变目录、复制文件和编辑文本文件。*Linux 就业市场继续增长和扩大,我们的 LFCS 课程将帮助你准备一个标准的行业 Linux 管理认证。

使用 diff 创建简单补丁

使用 diff 最简单的方法是获取两个文件之间的差异,一个原始文件和一个更新的文件。例如,您可以在普通文本文件中写几个词,进行一些修改,然后将修改后的内容保存到另一个文件中。然后,您可以使用 diff 比较这些文件,如下所示:

[rechosen@localhost ~]$ diff originalfile updatedfile

当然,用适合您的情况的文件名替换 originalfile 和 updatedfile。您很可能会得到如下输出:

1c1< These are a few words. No newline at end of file---> These still are just a few words. No newline at end of file

注意:为了演示一个简单补丁的创建,我使用了文件 originalfile,其内容为“这是一些单词”文件 updatedfile 的内容是“这些仍然只是几个词。”。如果您想运行教程中的命令并获得相同的输出,您可以自己创建这些文件。1c1 是一种指示行号和指定应该做什么的方式。请注意,这些行号也可以是行范围(12,15 表示第 12 行到第 15 行)。“c”告诉 patch 替换这些行的内容。还有另外两个有意义的字符:“a”和“d”,“a”表示“添加”或“附加”,“d”表示“删除”。语法是(行号或范围)(c,a 或 d)(行号或范围),尽管当使用“a”或“d”时,其中一个(行号或范围)部分可能只包含一个行号。

  • 当使用“c”时,它左边的行号是原始文件中应该被包含在补丁中的文本替换的行,它右边的行号是内容应该在文件的补丁版本中的行。
  • 当使用“a”时,左边的行号可能只是单个数字,意味着在文件的补丁版本中添加行的位置,而它右边的行号是内容在文件的补丁版本中应该在的行。
  • 当使用“d”时,它左边的行号是应该被删除以创建文件的修补版本的行,而右边的行号可能只是单个数字,告诉如果这些行没有被删除,它们在文件的修补版本中应该在哪里。您可能认为最后一个数字是多余的,但是请记住,补丁也可以以相反的方式应用。我将在本教程的后面对此进行更多的解释。

“”表示应该添加该符号后的字符。当替换内容时(行号之间有一个“c”),您会看到两个< and the >符号。添加内容时(行号之间有一个“a”),您只会看到>符号,而删除内容时(行号之间有一个“d”),您只会看到

1c1< These are a few words.---> These still are just a few words.

你可能已经注意到了,我省略了解释 3 -的含义。它们指示应该被替换的行的结束和应该替换它们的行的开始。它们将旧线和新线分开。您只会在替换内容时看到这些内容(行号之间有一个“c”)。如果我们想创建一个补丁,我们应该把 diff 的输出放到一个文件中。当然,您可以通过从您的控制台复制输出,并在将其粘贴到您最喜欢的文本编辑器中后,保存文件来做到这一点,但有一种更短的方法。我们可以这样让 bash 将 diff 的输出写到一个文件中:

[rechosen@localhost ~]$ diff originalfile updatedfile > patchfile.patch

同样,用适合您情况的文件名替换文件名。您可能想知道,告诉 bash 使用>将命令的输出写入文件适用于所有命令。这对于将命令输出保存到(日志)文件非常有用。

应用我们创建的简单补丁

那么,我们刚才是不是创造了一个补丁?简短的回答是:是的,我们做到了。我们可以使用 patchfile 将 originalfile 的副本更改为 updatedfile 的副本。当然,在我们创建补丁的文件上应用补丁没有多大意义。因此,将原始文件和补丁文件复制到另一个地方,并转到那个地方。然后,尝试以这种方式应用补丁:

[rechosen@localhost ~]$ patch originalfile -i patchfile.patch -o updatedfile

同样,在必要的地方替换文件名。如果一切顺利,patch 刚刚创建的 updatedfile 文件应该与您最初用 diff 创建补丁时的文件相同。您可以使用 diff 的-s 选项对此进行检查:

[rechosen@localhost ~]$ diff -s updatedfile [/path/to/the/original/updatedfile]/updatefile

用原始更新文件的路径替换[和]之间的部分。例如,如果创建修补程序时使用的 updatedfile 位于当前目录的父目录中,请将“[/path/to/the/original/updated file]”替换为“..”(bash 将此理解为当前工作目录的父目录)。当然,也要在适当的地方替换文件名。恭喜你!如果 diff 报告文件相等,那么您就成功地创建并使用了一个补丁!然而,我们刚刚使用的补丁格式并不是唯一的。在下一章,我将解释另一种补丁格式。

上下文修补

在第一章中,我们使用 diff 的标准格式创建了一个补丁。然而,这种格式不提供任何围绕要被替换的行的上下文,因此,行号的改变(某处的一个或多个额外的换行符,或一些删除的行)将使补丁程序很难确定改为改变哪些行。此外,如果一个被意外修补的不同文件在正确的位置包含与原始文件相同的行,patch 会很高兴地将 patchfile 的更改应用到这个文件。这可能会导致代码崩溃和其他不必要的副作用。幸运的是,diff 支持普通格式之外的其他格式。让我们为相同的文件创建一个补丁,但是这次使用上下文输出格式:

[rechosen@localhost ~]$ diff -c originalfile updatedfile

到目前为止,应该很清楚应该在必要的地方替换文件名=)。您应该得到这样的输出:

*** originalfile        2007-02-03 22:15:48.000000000  0100--- updatedfile 2007-02-03 22:15:56.000000000  0100****************** 1 ****! These are a few words.--- 1 ----! These still are just a few words.

如您所见,文件名也包括在内。这将节省我们在应用补丁时的一些输入。您可以在文件名旁边看到的时间戳是文件最后一次修改的日期和时间。带 15 *的线表示一个大块的开始。一大块描述了应该对某个文本块进行哪些更改,如替换、添加和删除。这两个数字 1 是行号(同样,它们也可以是行范围(12,15 表示第 12 行到第 15 行))、和!意味着该线应该被替换。带 a 的线!在三个字母之前(嘿,我们以前在哪里见过?)第二行应该换成 a!,在三个-'s 之后(当然,the!本身不会被包括在内;这是上下文格式语法)。如你所见,这里没有 c,a 和 d。要执行的操作由该行前面的字符决定。的!如所解释的,意味着该行应该被替换。其他可用的字符有+、–和" "(空格)。+表示添加(或追加),–表示删除,而“”表示什么也不做:补丁将只使用它作为上下文,以确保它正在修改文件的正确部分。应用这个补丁稍微容易一些:在与之前相同的情况下(让 bash 再次将 diff 输出写入一个文件,然后将补丁文件和原始文件复制到另一个位置),您需要运行:

[rechosen@localhost ~]$ patch -i patchfile.patch -o updatedfile

您现在可能会想:为什么我们仍然需要指定新的文件名?嗯,那是因为补丁的目的是更新现有的文件,而不是创建新的更新文件。这通常在修补程序的源代码树时很方便,这是 patch 的主要用途。这就把我们带到了下一个主题:要修补整个源代码树,patchfile 中应该包含多个文件。下一章将讲述如何做到这一点。

获取多个文件之间的差异

获得多个文件之间的差异的最简单的方法是将它们都放在一个目录中,并让 diff 比较整个目录。您可以只指定目录而不是文件,diff 会自动检测您给它的是文件还是目录:

[rechosen@localhost ~]$ diff originaldirectory/ updateddirectory/

*注意:如果你比较的目录也包括子目录,你应该添加-r 选项让 diff 也比较子目录中的文件。*这将产生如下输出:

diff originaldirectory/file1 updateddirectory/file11c1< This is the first original file.---> This is the first updated file.diff originaldirectory/file2 updateddirectory/file21c1< This is the second original file.---> This is the second updated file.14d13< We're going to add something in this file and to delete this line.26a26> This is line has been added to this updated file.

注意:对于这个例子,我创建了一些示例文件。可以在这里下载包含这些文件的存档:https://www . linuxtutorialblog . com/post/introduction-using-diff-and-patch-tutorial/diffpatchamplefiles . tar . gz*。*正如你所看到的,当比较多个文件时,正常的输出格式只指定文件名。您还可以看到添加和删除行的示例。现在,让我们来看看上下文格式的相同比较的输出:

diff -c originaldirectory/file1 updateddirectory/file1*** originaldirectory/file1     2007-02-04 16:17:57.000000000 +0100--- updateddirectory/file1      2007-02-04 16:18:33.000000000 +0100****************** 1 ****! This is the first original file.--- 1 ----! This is the first updated file.diff -c originaldirectory/file2 updateddirectory/file2*** originaldirectory/file2     2007-02-04 16:19:37.000000000 +0100--- updateddirectory/file2      2007-02-04 16:20:08.000000000 +0100****************** 1,4 ****! This is the second original file.SO--- 1,4 ----! This is the second updated file.SO****************** 11,17 ****CE- We're going to add something in this file and to delete this line.SO--- 11,16 ----****************** 24,28 ****--- 23,28 ----CE+ This is line has been added to this updated file.Something will be added above this line.

你应该注意的第一件事是长度的增加;上下文格式提供了比普通格式更多的信息。这在第一个例子中并不明显,因为没有包含任何上下文。然而,这一次有了背景,这无疑延长了补丁很多。您可能还注意到,文件名每次都被提到两次。这样做可能是为了让 patch 更容易识别何时开始修补下一个文件,或者是为了提供更好的向后兼容性(或者两者兼而有之)。让 diff 比较多个文件的另一种方法是编写一个 shell 脚本,多次运行 diff,并将所有输出正确地添加到一个文件中,包括带有 diff 命令的行。我不会告诉你如何做到这一点,因为另一种方法(把文件放在一个目录中)更容易,而且被广泛使用。用 diff 创建这个补丁相当容易,但是目录的使用带来了一个新的问题:patch 是只修补当前工作目录中提到的文件,而忘记它们在创建补丁时所在的目录,还是修补补丁中指定的目录中的文件?看看下一章就知道了!

修补多个文件

在这一章之前的章节中,我们创建了一个可以用来修补多个文件的补丁。如果您还没有这样做,请将 diff 的输出保存到一个实际的补丁文件中,如下所示:

[rechosen@localhost ~]$ diff -c originaldirectory/ updateddirectory/ > patchfile.patch

*注意:我们将在这里使用上下文格式补丁,因为使用提供上下文的格式通常是一种好的做法。*是时候尝试使用我们的补丁文件了。将原始目录和修补文件复制到另一个位置,转到该位置,并使用以下命令应用修补程序:

[rechosen@localhost ~]$ patch -i patchfile.patch

啊?它报告说找不到要修补的文件!是的,没错。它试图在当前目录中查找文件 file1(默认情况下,patch 会删除文件名前面的所有目录)。当然,这个文件不在那里,因为我们试图更新 originaldirectory 目录中的文件。因此,我们应该告诉 patch 不要删除文件名中的任何目录。可以这样做:

[rechosen@localhost ~]$ patch -p0 -i patchfile.patch

注意:您可能认为您也可以移动到 originaldirectory 并在那里运行 patch 命令。不要!这是一种不好的做法:如果 patchfile 在子目录中包含任何要修补的文件,patch 将在工作目录中查找它们,显然,找不到它们或者找到错误的文件。使用-p 选项使修补程序在子目录中正常运行。-p 选项告诉 patch 应该在文件名前去掉多少斜线(包括它们前面的内容,通常是目录)(注意,在我们的例子中,当使用-p0 选项时,patch 在 originaldirectory 和 updateddirectory 中查找要修补的文件)。在这种情况下,我们将其设置为 0(不删除任何斜杠),但您也可以将其设置为 1(删除第一个斜杠及其之前的所有内容),或 2(删除前两个斜杠及其之前的所有内容),或任何其他数量。如果你有一个使用不同目录结构的补丁,这将非常有用。例如:如果您有一个使用如下目录结构的补丁:

(...)*** /home/username/sources/program/originaldirectory/file1     2007-02-04 16:17:57.000000000 +0100--- /home/username/sources/program/updateddirectory/file1      2007-02-04 16:18:33.000000000 +0100(...)

您可以只计算斜线(/(1)home/(2)username/(3)sources/(4)program/(5))并使用-p 选项给出该值。如果使用-p5,patch 会同时查找 originaldirectory/file1 和 updateddirectory/file1。请注意,补丁将两个相邻的斜杠(如/home/username//sources)视为一个斜杠。这是因为脚本有时(不管是不是偶然)会在目录之间多加一条斜线。

反转已应用的补丁

有时应用了不该应用的补丁。比如:一个补丁在某些代码中引入了一个新的 bug,发布了一个修复的补丁。然而,您已经应用了旧的、有缺陷的补丁,并且您想不出快速的方法来再次获得原始文件(可能它们已经被打了几十次补丁)。然后,您可以用一种可逆的方式应用有缺陷的补丁。patch 命令将尝试通过交换块来撤消它所做的所有更改。您可以通过向 patch 传递-R 选项来告诉它尝试反转:

[rechosen@localhost ~]$ patch -p0 -R -i patchfile.patch

通常,此操作会成功,并且您会得到您拥有的原始文件。顺便说一句,还有另一个你想要反转补丁的原因:有时(特别是在困倦的时候),人们发布一个交换了文件的补丁。你有一个很大的机会,补丁将自动检测到这一点,并询问你是否希望它尝试修补可逆。但是,有时 patch 会检测不到它,并怀疑为什么文件似乎不匹配。然后,您可以通过将-R 选项传递给 patch,尝试以相反的方式手动应用补丁。这是一个很好的做法,在你尝试之前做一个备份,因为有可能补丁弄糟了,给你留下不可恢复的损坏文件。

统一格式

diff 命令还可以用另一种格式输出差异:统一格式。这种格式更加紧凑,因为它省略了冗余的上下文行,并对行号指令等内容进行了分组。不过目前只有 GNU diff 和 patch 支持这种格式。如果你以这种格式发布补丁,你应该确保它只被 GNU 补丁用户应用。几乎每个 Linux 版本都有 GNU 补丁。统一格式类似于上下文格式,但远非完全相同。您可以通过以下方式创建统一格式的修补程序:

[rechosen@localhost ~]$ diff -u originaldirectory/ updateddirectory/

输出应该是这样的:

diff -u originaldirectory/file1 updateddirectory/file1--- originaldirectory/file1     2007-02-04 16:17:57.000000000 +0100+++ updateddirectory/file1      2007-02-04 16:18:33.000000000 +0100@@ -1 +1 @@-This is the first original file.+This is the first updated file.diff -u originaldirectory/file2 updateddirectory/file2--- originaldirectory/file2     2007-02-04 16:19:37.000000000 +0100+++ updateddirectory/file2      2007-02-04 16:20:08.000000000 +0100@@ -1,4 +1,4 @@-This is the second original file.+This is the second updated file.SO@@ -11,7 +11,6 @@CE-We're going to add something in this file and to delete this line.SO@@ -24,5 +23,6 @@CE+This is line has been added to this updated file.Something will be added above this line.

如您所见,行号/范围被分组并放在@ '之间。另外,在+或-之后没有多余的空格。这样可以节省一些字节。另一个区别是:统一格式没有特殊的替换标志。它只是删除了旧的行(–号),并添加了修改过的行(+号)。添加/删除和替换之间的唯一区别在于行号/范围:当替换一行时,它们是相同的,而当添加或删除时,它们是不同的。

格式对比

阅读了三种格式后,您可能想知道选择哪一种。这里有一个小对比:

  • 正常格式具有最好的兼容性:几乎每个 diff/patch-like 命令都应该识别它。然而,缺乏上下文是一个很大的缺点。
  • 上下文格式得到了广泛的支持,尽管不是每个 diff/patch-like 命令都知道它。然而,能够包含上下文的优势弥补了这一点。
  • 统一格式也以上下文为特征,并且比上下文格式更紧凑,但是只受一种 diff/patch 类命令的支持。

如果你确定这个补丁只被 GNU diff/patch 用户使用,unified 是最好的选择,因为它尽可能的保持你的补丁的紧凑。然而,在大多数其他情况下,上下文格式是最好的选择。只有当您确定有一个用户不支持上下文格式时,才应该使用普通格式。

改变上下文行数

可以使 diff 在应该更改的行周围包含更少的上下文行。特别是在大的补丁文件中,这可以去掉很多字节,使你的补丁文件更容易移植。但是,如果包含的上下文行太少,补丁可能无法正常工作。引用 GNU diff 手册页:“为了正确操作,patch 通常至少需要两行上下文。”可以通过多种方式指定上下文行数:

  • If you want to use the context format, you can combine it into one option, the -C option. Example:

    [rechosen@localhost ~]$ diff -C 2 originaldirectory/ updateddirectory/
    

    上面的命令将使用带有 2 个上下文行的上下文格式。

  • If you want to use the unified format, you can combine it into one option, the -U option. Example:

    [rechosen@localhost ~]$ diff -U 2 originaldirectory/ updateddirectory/
    

    上述命令将使用具有 2 个上下文行的统一格式。

  • Regardless which format you choose, you can specify the number of lines like this:

    [rechosen@localhost ~]$ diff -2 originaldirectory/ updateddirectory/
    

    但是,这只有在您还指定了上下文支持格式的情况下才有效。您必须将该选项与-c 或-u 结合使用。

让我们开始您的云之旅

希望获得认证或提升您的云计算职业生涯?通过 ACG 的课程、实验室、学习路径和沙盒软件学习按需云技能。

最后的话

尽管本教程描述了 diff 和 patch 的许多特性和工作方式,但它并没有描述使用这些强大的工具可以做的所有事情。它是以教程的形式介绍的。如果你想了解更多关于这些命令的信息,你可以阅读它们的联机帮助页和关于 diff 和 patch 的 GNU 文档。那么,我希望这篇教程对你有所帮助。感谢您的阅读!如果你喜欢这个教程,浏览这个博客,看看是否有更多你喜欢的。请在这里和那里留下链接来帮助这个博客发展,并让其他人从这个网站不断增长的知识中受益。提前感谢,祝修补愉快!

知道 Azure 的话 AWS 好学吗?

原文:https://acloudguru.com/blog/engineering/is-aws-easy-to-learn-if-you-know-azure

当一个顽固的微软 Azure 用户进入黑暗面并尝试一些 T2 AWS 任务时会发生什么?一个 Azure 用户在 AWS 能过得去吗?你能通过多云狂游刃有余吗?对一种云的了解能让你在另一种云中走多远?

为了找到答案,AWS 爱好者斯科特·普莱彻(Scott Pletcher)和马蒂亚斯·安德森(Mattias Andersson)向微软 MVP 和常驻 Azure 粉丝 supreme Lars Klint 发出挑战,要求他完成一个他从未在 AWS 中见过的场景,一个他(几乎)一无所知的云平台。事情是这样的。。。


加速你的职业生涯

无论你是新手还是认证专家,云专家都能让你轻松(也很棒)地提升自己的职业生涯。查看 ACG 目前的免费课程立即开始免费试用。


挑战

为了测试 Lars,我们向他展示了一个新手级别的 ACG 动手实验室,主题是使用 EFS(弹性文件系统)降低存储成本。虽然我们的动手实验室通常会指导你完成一项活动,但我们提高了难度,让他在挑战模式下尝试实验室。这意味着没有提示或方向。只是一个蔚蓝色的孩子在 AWS 糖果店里变得放荡。

目标是什么?要创建一个弹性文件系统,请挂载它,测试它,创建一个包含复制数据的目录,并删除旧数据。

在这次挑战中,如果遇到困难,Lars 可以打电话给朋友,或者在聊天中向社区寻求帮助。

他准备好迎接挑战了吗?看看下面的视频,自己看吧!对于额外的挑战,跟随 Lars 完成同一个实验。请务必在聊天回放中捕捉用户提示!

为什么要为动手实验选择挑战模式?

虽然我们对 Lars 这样做是出于娱乐目的,但动手实验室的挑战模式是一个通过做来学习的强大工具。

学习任何东西——无论是云、数学还是如何说纳威语——最好的方法之一就是挑战你的大脑。如果你没有受到挑战,你的大脑开始走神,你就不能记住、理解或学习必要的信息。最终你不会获得你实际上可以独立运用的技能。但是,当你积极地挑战你的大脑,让你的双手变得肮脏,你会更多地接触这些材料,然后它会粘上来。


获得 Azure 的 AWS 用户指南
熟悉 AWS,但想尝试 Azure?查看 Lars 的AWS 用户 Azure 指南


Azure 背景对学习 AWS 有帮助吗?

那么,Lars 十多年的 Azure 经验让他的 AWS 挑战变得更容易了吗?算是吧!

越多。。。AWS 使用的“创造性”命名惯例使他慢了下来。但 Lars 发现,虽然 AWS 的名字乍一看有点混乱,但他对 Azure 更直接的命名的深刻了解帮助他对 AWS 中的组件做出了准确的猜测。他还发现两者的控制台结构相似,都有左侧菜单。

在 AWS 实验室中,对 Lars 帮助最大的是不断地将他正在处理的所有新的 AWS 信息与他已经从 Azure 了解的任何类似信息联系起来,以帮助自己更快地掌握 AWS。用他自己的话说:

“我把我在实验室里看到的一切都与我确实知道的东西联系起来:Azure。所以我一直在想,“哦,这就像是我已经知道的事情。“当你学习一个新概念并试图记住它时,这真的很重要——只要把它与你已经知道并喜欢的不同概念联系起来。”


如果你正在寻找云提供商命名难题的解码环,请查看云比较,这是我们的免费视频系列,帮助你了解每个特定云的命名和结构约定。


学习新的云技能?

希望提升您的云计算技能吗?无论你是在 2022 年刚刚开始你的云职业生涯,还是正在爬上云的阶梯进入高科技领域的高薪工作,我们的实践实验室都是学习技能的好方法。我们来自 Azure challenge 的小组提供了一些充分利用它们的技巧。

动手实验室专业技巧

无论是你的第一个实验室还是第 50 个实验室,这些屡试不爽的建议一定会让你的体验更加顺畅。

1.观看介绍

开始实验前,请务必观看介绍视频。它将为您提供实验目标和顺序的简单概述。

2.命名和设置要精确

严格遵循目标中的命名约定,这将使 ACG 内部系统能够正确评估并对您的工作给予肯定。创建新资产时,坚持使用默认设置,以避免触发任何违反策略的情况。

3.尝试即时实验室

标记为“即时实验室”的实验室是获得实践的最快方式,因为它们位于预先创建的环境中,登录到完成实验所需的所有虚拟帐户。

4.如果你搞砸了,就重新开始

ACG 沙盒学习环境的优势之一是,你用来完成实验的账户都配备了控制,防止你真正搞砸任何事情或发现自己意外超支。如果你遇到了障碍,重新开始,从头开始。你永远不会有自己的钱包与你正在做的学习挂钩的风险。(只是不要告诉斯科特——所有账户都与他的账户相关联!)

5.当有疑问时。。。

斯科特建议:“去掉元音——Linux 的一个小技巧。”

而拉尔斯建议你"按下所有的按钮。"

6.不要害怕失败!

即使是训练有素的建筑师也会不时失败。只要继续下去,直到你得到它的权利。失误可以让你更全面地了解事情是如何运作的。

跟上云的所有事物

为了跟上云的发展,在 Twitter 上关注 ACG,在 YouTube 上关注 T2、脸书和 T4,在 Discord 上加入讨论。

准备好边做边学了吗?查看当前免费课程今天开始免费试用


Complete guide to the Cloud and Dictionary

获得痛苦的云词典
说云不一定要努力。我们分析了数百万份回复,找出了最容易让学生出错的术语和概念。请阅读本云指南,了解最令人头疼的云术语的简洁定义。

MongoDB 适合我的应用吗?

原文:https://acloudguru.com/blog/engineering/is-mongodb-right-for-my-application%ef%bf%bc

好奇如何确定 MongoDB 是否适合您的应用程序?在本文中,我将描述两种不同的应用场景,并展示如何在每种场景中使用 MongoDB。在讨论了这些场景之后,我们将通过指出 MongoDB 对于每个工作负载的优缺点来结束本文。


加速您的云计算职业生涯

云专家让你轻松(也很棒)提升你的云事业——即使你对技术完全陌生。查看 ACG 目前的免费课程立即开始免费试用。


什么是 MongoDB?

MongoDB 是一个开源的文档数据库,它具有许多企业级特性,这些特性使它适合于各种(但不是所有)应用程序。了解这些特性以及它们如何影响不同的工作负载可以帮助您确定 MongoDB 是否适合您的应用程序。

让我们探索几个场景,讨论如何在每个场景中使用 MongoDB。

场景一

Lisa 为一家构建 web 应用程序的互联网初创公司工作。她所在的团队精通最新的基于 web 的开发技术。他们的应用程序构建在 Node.js JavaScript 框架上。

各种各样的云平台被用来部署应用程序。该团队希望利用全球分布的节点来确保他们的数据对全球客户群高度可用。

数据的结构往往会频繁变化以满足客户的需求。为了支持这一点,所选择的数据存储将需要能够轻松更改数据模式的灵活性。

场景二

Sam 在一家本地制造公司工作,构建一个应用程序来管理他们的质量保证和测试程序。该公司只有一个办公地点,并且之前没有将应用程序部署到云中。他们最喜欢传统的现场部署。

Sam 使用的应用程序必须与旧的制造设备接口,因此升级到最新版本可能会很困难。

Sam 正在处理的数据集的结构没有太大的变化,而且它高度规范化了表之间的许多关系。


Complete guide to the Cloud and Dictionary

获得痛苦的云词典
说云不一定要努力。我们分析了数以百万计的回复,找出了最容易让人犯错的概念。抓住这个云指南获取一些最痛苦的云术语的简洁定义。


如何使用 MongoDB?

上面描述的两个场景非常不同,并且举例说明了典型应用程序使用模式的不同方面。让我们看看如何在这些用例中使用 MongoDB。

在第一个场景中,Lisa 的应用程序对于 MongoDB 来说是理想的,因为该团队精通最新的基于 web 的开发技术。MongoDB 是一个 JSON 文档存储,JSON 文档格式基于 JavaScript 对象符号。用 JavaScript 编写的应用程序可以很容易地利用 MongoDB。

另一方面,场景二中 Sam 的应用程序必须利用较旧的技术来保持与制造设备的兼容性。这使得与 MongoDB 的接口变得更加困难。许多官方驱动程序都可用,但是你可能需要搜索 T2 社区支持的驱动程序来找到不知名的。

快速变化的模式和对全球分布式节点的需求使得 Lisa 的应用程序非常适合 MongoDB。通过利用 json 文档的灵活模式和全球分布的副本集或碎片,MongoDB 可以满足 Lisa 应用程序的这两种需求。

具有静态数据模式和单一位置的 Sam 应用程序不需要 MongoDB 的这些企业功能。Sam 数据集的高度相关特性也使其更难实现。通过利用嵌入式文档,可以在维护原子操作的同时表示关系。虽然在 MongoDB 中多文档事务是可能的,但这会导致性能下降,最好避免。

了解更多关于 MongoDB 的信息

虽然很灵活,能够满足大多数应用程序的需求,但 MongoDB 用例有一个最佳点。理解您的应用程序需求并了解可用的 MongoDB 特性有助于确保您做出最佳选择。

准备好学习更多关于 MongoDB 的知识了吗?查看我们的新课程 MongoDB Deep Dive ,更好地了解 MongoDB 中可用的特性以及如何在您的应用程序中利用它们。我们将探讨复制和分片,以及监控和备份。我们还将了解各种云供应商对 MongoDB 的支持,以及如何通过 mongosh shell 进行连接。我们将在命令行上操作文件,因此需要一些基本的 Linux 知识。熟悉文档数据库是有用的,但不是强制性的。


想了解更多关于云计算和科技领域最热门的技能吗?开始免费试用或查看本月免费云培训。你还可以在 YouTube 上订阅一位云专家的每周云新闻,就像我们在脸书上一样,在推特上关注我们,并在不和谐上加入对话。

Istio 申请加入 CNCF

原文:https://acloudguru.com/blog/engineering/istio-applies-to-join-the-cncf

本月 Kubernetes 有什么新消息?在本帖中,我们将讨论 Istio 加入 CNCF,KubeVirt 进入孵化阶段,以及一些大型在线会议和世界各地正在发生的事情。

请继续阅读完整的故事!


通往更好职业的钥匙

立即开始 ACG 通过 AWS、Microsoft Azure、Google Cloud 等领域的课程和实际动手实验室来改变你的职业生涯。


Istio 服务网最终将加入 CNCF

发射五年后,Istio终于加入了 CNCF 。嗯,他们已经申请加入,但这实际上只是一种形式——他们肯定会加入的。

Istio 是最大和使用最广泛的服务网格,事实上它不是一个 CNCF 项目,这对一些人来说是一个真正的痛苦。事实上,有一些证据充分的案例表明,大用户不得不选择替代方案,完全是因为缺乏开放的治理系统。

假设它继续进行,并且 Istio 被欢迎进入 CNCF,所有那些开放治理和项目所有权的担忧将很快被忘记,为更多的采用开放它。这对项目和大多数社区来说是件好事,但对其他服务网格来说可能不是最好的。

一些服务网对谷歌想要保持控制大做文章。但是,如果这不是一个问题,那么它在竞争中处于什么位置呢?有些人可能会在采用和贡献者数量上受到打击。

所以主要问题是为什么现在加入 CNCF?

原因有很多,但我认为以下是最重要的。首先,压力一直存在,原因很简单,因为它是唯一的主要云原生技术而不是成为 CNCF 的一部分。

此外,绝大多数的承诺和支持都来自谷歌。因此,这可能会让它获得更广泛的社区支持和更多的贡献者。这只能在特性和稳定性方面带来好处。

简而言之,这在服务网格领域是一件大事!

KubeVirt 成为 CNCF 的孵化项目

继 2022 年 3 月 Knative 被接纳为 CNCF 孵化项目后,kube virt 项目也进入了 CNCF 的孵化阶段。

KubeVirt 使用户能够在 Kubernetes 上运行虚拟机工作负载。这不仅仅是关于迁移传统虚拟机,因为,信不信由你,人们仍在将应用程序部署到虚拟机,这意味着它们几乎肯定仍然是相关的。

KubeVirt 在 2019 年被接受为沙盒项目,不到 3 年后,它是一个蓬勃发展的项目,进入了孵化阶段。

自从它开始以来,KubeVirt 已经发布了 20 多个版本,有来自 130 多个公司的 300 多个贡献者。它在全球范围内都有真实的生产实现,包括 Arm 和 CIVO 等著名公司。

在技术方面,它也在全速前进。支持实时迁移、在线快照、SR-IOV,甚至 GPU。控制面板的无中断升级也是如此。所以这是一个功能丰富的解决方案!

如果你的应用是虚拟机和容器的组合,Kubernetes 上的 KubeVirt 会给你一个史诗般的平台。也有一些无服务器事件驱动的东西吗?然后再掺一点儿劣质酒。

这条新闻表明 Kubernetes 是现代工作负载的首选平台。

IstioCon,PlatformCon,KubeCon …所有的缺点!

本月最后但同样重要的是会议。

IstioCon 已经过去了,但 IstioCon 的一些会议已经开始,可供观看。因此,如果你几周前错过了它,请前往查看可用于流式传输的会话

一项名为 PlatformCon 的新活动定于 2022 年 6 月举行。它是免费的,100%虚拟的,一些会议看起来真的很酷。我已经收藏了 Natan Yellin 的“为什么这次不同:Kubernetes 作为未来五十年的云操作系统”。以及 Rich Burroughs 的“【Kubernetes 虚拟集群:用例”。

终于,快到在巴伦西亚进行 KubeCon 的时间了。如果你要去,一定要来打个招呼。我会亲自去的!

跟上 K8s

关于本月 Kubernetes 的新闻,请看上面的视频。注意安全,我们下个月再见——同一时间,同一地点。

想要了解 Kubernetes 的所有信息?在推特上关注奈杰尔或者在这里关注他。在 YouTube 上订阅一位云计算专家,获取定期更新、分析和各种精彩内容。你也可以在脸书上喜欢 ACG,在推特上关注我们,或者在不和谐上加入对话!


观看:自动化 Kubernetes 安全 这个免费的点播网络研讨会中,学习如何用 Pod 安全策略来增强您的 K8s 安全。我们将向您展示它们是如何工作的,以及在一个真实的 Kubernetes 集群中实现它们的样子。

一月新闻综述:AWS 有什么新功能?

原文:https://acloudguru.com/blog/engineering/january-news-roundup-whats-new-with-aws

你好,云大师!想知道 AWS 这个月发生了什么变化,但还没有找到时间查看几周的头条新闻?这里是你需要知道的所有信息。

S3 默认加密

默认情况下,S3 现在会自动加密所有新文件。它对您上传的所有新对象使用 S3 管理的服务器端加密,也称为 SSE-S3,无需额外成本,也不会影响性能。

现在这种类型的加密使用 AES-256 位加密,这是服务器端加密的行业标准。这将适用于所有新的和现有的存储桶。上传的新对象将被加密,但现有对象不会改变。

您仍然可以指定其他类型的加密,例如 SSE-C,它使用客户提供的加密密钥,或者 SSE-KMS,它使用 KMS 管理的加密密钥,但是您不能禁用新对象的自动加密。


加速您的职业发展

从 ACG 开始通过 AWS、Microsoft Azure、Google Cloud 等领域的课程和实际动手实验室改变你的职业生涯。


训练 Sagemaker 画布模型的速度提高了 3 倍

Sagemaker Canvas 现在训练机器学习模型的速度比以前快了 3 倍。

如果你不熟悉 Sagemaker Canvas,它是一种允许业务分析师使用可视化界面生成机器学习预测的服务,不需要任何机器学习专业知识。它提供了一个拖放界面,这意味着您可以轻松地生成预测,而不必编写任何代码。

随着此次发布,他们已经进行了一些重大的性能优化,使您能够构建训练速度比以前快 3 倍的机器学习模型。对于那些需要快速试验不同模型、快速创建原型并更快实现业务成果的公司来说,这将是一件好事。

两个新的 Kendra 连接器——S3 和谷歌驱动

Amazon Kendra 现在有两个新的连接器,可以让你轻松地索引和搜索 S3 和 Google Drives 中的文档。

如果你以前没有使用过 Kendra,它是一种智能搜索服务,由机器学习驱动,允许你使用自然语言处理搜索结构化和非结构化数据。因此,这意味着您可以使用普通语言向 it 部门提问,而不必编写复杂的代码或查询。

例如,您可以让 Kendra 搜索您提供的 FAQ 文档,并向它询问类似“我如何配置 VPN?”它会在提供的文档中为您找到该信息。

现在有两个新的连接器,第一个是用于 S3 的,它允许您安全地索引和搜索存储在 S3 的文档,包括为每个对象存储的元数据。这个新的连接器使 Kendra 能够使用 VPC 连接到您的 S3 数据源,这意味着您不需要使用公共互联网访问数据。

第二个新连接器是用于 Google drives 的,这允许你索引和搜索存储在你自己的 Google Drive 和与你共享的 Drive 中的文档。这包括 HTML 文件、Powerpoint 演示文稿、pdf、Word 文档和 CSV 文件等结构化文档。

预览版中可用的 AWS 洁净室

去年 re:Invent 发布的众多数据安全公告之一是首次关注一项名为 AWS Clean Rooms 的新服务。本月,AWS 宣布你可以亲自体验洁净室,因为它现在可以在 11 个不同的地区进行预览。

洁净室旨在保护您的业务数据的秘密和安全,同时仍允许分析师从您的集体数据中获得洞察力。邀请合作者并精细控制每个洁净室参与者可以使用的数据和查询。这是一种全新的安全方式,可以在数据洞察方面进行协作,同时确保您的敏感数据在分析过程中保持安全和加密。

这对于市场营销和广告活动分析,或者任何希望在不暴露所有底层数据的情况下协作进行数据分析的情况来说,都是非常棒的。

AWS 网络防火墙现在支持 IPv6】

在其他安全新闻方面,AWS 本月宣布,AWS 网络防火墙现在完全支持 IPv6。

网络防火墙是一种受管理的防火墙服务,允许您过滤进出 VPCs 或内部网络的流量。您现在可以启用网络防火墙端点来过滤任何双栈子网中的 ipv4 和 ipv6 流量。最重要的是,对于那些想使用这个新功能的人来说,这个特性不需要额外的费用。


Complete guide to the Cloud and Dictionary

获得痛苦的云词典
说云不一定要努力。我们分析了数以百万计的回复,找出了最容易让人犯错的概念。抓住这个云指南获取一些最痛苦的云术语的简洁定义。


Lambda & SQS 的新最大并发特性

同样在这个月,AWS 宣布了一个生活质量更新,这对于无服务器开发者来说是一个令人兴奋的秘密。

向外扩展 Lambda 调用以从 SQS 队列中接收事件一直是一种非常强大的无服务器模式。然而,一些客户遇到了最大 Lambda 并发性的问题,当他们扩展到太多并发调用时,达到了他们的帐户限制。这将导致来自 SQS 队列的事件被发送回队列,或者被丢弃到死信队列。您可以为您的 Lambda 设置最大并发限制,但这并不能解决丢弃消息的问题。

AWS 现在已经宣布了当接收来自 SQS 的消息时,Lambda 函数的每个源的最大并发限制。这意味着您可以为给定的 SQS 队列定义一个并发 lambda 调用的限制,多余的消息将被保留在队列中,直到有能力进行更多的并发 lambda 调用。

这意味着不再需要处理返回的消息或死信队列,并且可以更好地控制你的帐户的 Lambda 并发限制。

无服务器应用模型与 CloudFormation Linter 集成

我们在今年年初的预测之一是,AWS 将在 2023 年继续投资于无服务器开发者体验。AWS 已经开始交付,宣布了对无服务器应用程序模型命令行界面的更新,这肯定会使开发人员的生活更容易。

无服务器应用程序模型,简称 SAM,是一个基础设施即代码平台,允许您以简单的 JSON/YAML 格式定义和重用 AWS 架构。本月,AWS 发布了一款新的 lint 工具,该工具将根据一组基于云信息的规则检查您的 SAM 模板,从而加快开发过程

现在,无论何时运行sam validate命令,您都可以根据这组规则选择 lint 您的模板。这将使 SAM 用户在部署之前更容易验证他们的 SAM 模板,节省用户大量的时间和金钱。

OpenSearch 无服务器现已正式上市

亚马逊 OpenSearch Serverless 现已全面上市。如果您以前没有使用过 OpenSearch,它是一种允许您执行交互式日志分析和实时应用程序监控的服务,您还可以使用它来可视化您的应用程序数据并创建仪表板,以真正了解您的应用程序内部正在发生的事情。它是基于弹性搜索的。

在发布之前,使用 Amazon OpenSearch 需要创建一个 OpenSearch 集群,由多个运行 worker 节点和 master 节点的 EC2 实例组成。当设计这样的群集时,您需要了解您的容量需求。

但是随着这次发布,现在有了一个无服务器选项,这是一个更简单的开始方式。这意味着您不需要考虑基础架构需求。这对于可变且不可预测的工作负载也非常有用,因为无需服务器,它将自动扩展,甚至允许您运行 Pb 级的工作负载。

但是它最好的一点是,由于是无服务器的,您将只为您正在使用的东西付费,而不是为多个大型 EC2 实例付费。

OpenSearch 配置更改的预演

OpenSearch 的另一个很酷的声明是它现在允许您在继续应用更改之前对 OpenSearch 集群的任何配置更改执行增强的预演。这适用于由多个 EC2 实例组成的 OpenSearch 集群。

因此,您现在可以在应用配置更改之前验证它们,OpenSearch 服务将检查验证错误,它还会让您知道更改是否需要蓝/绿部署。因此,它会告诉您是否需要部署新实例来应用新配置,或者是否可以将配置应用到集群中的现有实例。

这个特性对于我们这些不太喜欢冒险的人来说是非常棒的,当涉及到对 OpenSearch 集群的配置进行更改时,它将帮助我们避免应用将会破坏我们的集群的更改。

Graviton 的移植顾问

Graviton 的 Porting Advisor 现已上市,Graviton 当然是最新的 AWS 处理器的名称,由 AWS 定制,经过优化,可为基于 AWS 的工作负载提供最佳的价格和性能。

Graviton 处理器有多种不同的 EC2 实例类型,但是,由于这些处理器使用 Arm64 指令集,这是一种用来告诉处理器做什么的语言,因此开发在 x86 处理器上运行的应用程序有时需要额外的步骤,因为 x86 使用不同的指令集。

AWS 承认对一些人来说,还有其他需要考虑的问题,这很好。他们还向提供了一个逐步过渡的指南来帮助那些计划将现有应用移植到基于 Graviton 的实例的客户。

从这些 10 个有趣的动手项目开始构建你的云计算技能,学习 AWS

连续的 IPv6 CIDR 块


最后, AWS 宣布亚马逊提供的连续 IPv6 CIDR 块全面上市


但这实际上意味着什么呢?现在,您可以使用 AWS 帐户中的 IP 地址管理器(或 IPAM)来创建可与您的 VPC 相关联的连续 IPv6 CIDR 块。这允许您为您的 VPC 创建连续的 CIDR 范围,以便您可以实施对您的环境有逻辑意义的 CIDR 范围。

如果你不再需要你的 VPC 并删除了它,你仍然拥有 CIDR 街区,你可以把它重新分配给另一个 VPC。

以前,获得像这样的连续 IPv6 CIDR 范围的唯一方法是使用您自己的产品,所以这次新发布的产品将使寻求使用 IPv6 的客户更加方便。

这是 AWS 一月份最大的头条新闻!

想了解每周 AWS 新闻吗?

查看本周 AWS 的每周新闻综述。加入我们的专家主持人,因为他们涵盖了你需要知道的关于过去一周发展的一切,保持简短、有趣和信息丰富。

无论您是刚刚开始您的云之旅,还是您已经了解自己的东西,每个人都有适合自己的东西!

Check out AWS This Week for your weekly news roundup for all things AWS. Join our expert hosts as they cover everything you need to know about the past week’s developments, keeping it short, fun and informative.

Whether you’re just beginning your cloud journey, or you know your stuff, there’s something for everyone!

一月新闻综述:Azure 有什么新特性?

原文:https://acloudguru.com/blog/engineering/january-news-roundup-whats-new-with-azure

你好,云大师!想知道 Azure 在过去的一个月里发生了什么变化,但没有时间查看标题?我们已经写了一篇文章,提供了你需要知道的所有信息。

新的 Windows 核心操作系统平台博客

虽然 Windows Vista 可能受到了不同的欢迎,但其基于服务器的兄弟 Windows Server 2008 包含了有史以来最重要的 Windows Server 功能之一。

那是什么特征?

当然是 Hyper-V!Hyper-V 是微软的虚拟化平台,通常被称为管理程序。对于不熟悉的人来说,虚拟机管理程序允许您在一台物理服务器上运行多个虚拟机。

微软最近在其新的 Windows 平台操作系统博客上的一篇博客文章中证实,所有基础设施即服务(IaaS)和平台即服务(Platform as a Service)服务,包括虚拟机、Web 应用、Azure 功能等,都运行在 Hyper-V 上。

在帖子中,他们详细介绍了名为云主机的 Azure 主机操作系统,该系统基于 Windows 和 Hyper-V,但旨在真正擅长运行虚拟机。这对公共云来说有点重要!

这是一个有趣的阅读,甚至有一个云主机在一个有 16 个物理处理器的 Azure 主机上运行的截图。想象一下您可以在那个服务器上运行多少无服务器代码!

Azure 上的扩展安全更新

如果你的公司像许多其他公司一样,仍然有工作负载在旧版本的 Windows Server 上运行,那么知道微软将允许你在 Azure 或 Azure Stack 上运行旧版本的 Windows Server 并免费接收扩展的安全更新可能对你很重要。

对于任何人来说,肯定没有人还在运行 Windows Server 2008…再想想吧!Windows 7 的市场份额估计仍在 11%左右。到处都隐藏着运行旧版本 Windows 的服务器。

对于 Azure 上的 Windows Server 2008、2008 R2 和 Windows 7,扩展安全更新于 1 月 10 日结束。如果您不希望您的公司因为所有错误的原因成为新闻头条,现在是时候将这些工作负载迁移到更现代的东西上了。

有很多选择,你可以迁移到较新版本的 Windows Server,或者有一个软件即服务(SaaS)解决方案可以取代你的老化应用程序。或者,该功能可以在平台即服务产品中复制,如 Azure App Service。

我们知道迁移或升级这些工作负载有多困难,看看您能做些什么,祝您成功迁移或淘汰这些工作负载。您为帮助维护客户数据安全所做的一切都是值得的。


加速您的职业发展

从 ACG 开始通过 AWS、Microsoft Azure、Google Cloud 等领域的课程和实际动手实验室改变你的职业生涯。


Azure Automation Visual Studio 代码扩展

微软在预览版中宣布发布 Azure Automation Visual Studio 代码扩展。

对于任何不知道的人来说,Azure Automation 是一个被低估的 Azure 服务,它让你(除了其他事情之外)通过 Runbooks 自动化你的混合计算灾难。Wayne Hoggett 在最近的一篇 ACG 博客文章中详细解释了他为什么喜欢 Azure Automation。

Azure Automation 的 Visual Studio 代码扩展不仅允许您创建、测试、调试和管理 Azure Automation Runbooks,还允许您管理使 run book 如此有用的所有相关资产,如 Visual Studio 代码中的计划、变量和凭证。

如果你是 ACG 的订户,并且你有兴趣了解更多关于 Azure Automation 的知识,我们有几个全新的动手实验室,在那里你可以学习如何使用 Azure Automation自动化混合流程配置更新管理

Azure open ai 服务全面上市

OpenAI 服务于本周正式发布。虽然公告有一些常见的营销术语,但它也声明了人工智能集成正在进入 Azure 的一切,包括安全性、可靠性、合规性、数据隐私和内置的负责任的人工智能功能。是的,人工智能正在 Azure 平台上受到热烈欢迎,微软没有退缩。在不久的将来,人工智能将成为云服务和解决方案的加速器。完美吗?不会,当然不会,但会迅速改善。

Azure 机器学习更新

如果你想看看人工智能 cookie 是如何制作的,那么 Azure 机器学习就是合适的地方。本月,一系列新功能同时进入了预览版和正式版。几个亮点:

  • 无需编写任何代码即可构建端到端模型培训管道的能力。这与越来越多的服务需要越来越少的代码是一致的。
  • 比较不同的管道以调试失败:现在,您可以通过对特定管道失败原因的新了解来节省调试时间。还有一个特性是识别有问题的节点进行调试。
  • 现在,您可以保护受管在线端点的入口和出口,以确保符合企业安全标准。
  • 最后,您现在可以在工作区和计算上添加、查看、更新和/或删除自定义标记,以更深入地了解成本模式、支出模式和治理方案。

除此之外,还有更多新功能,所以要查看它们,请访问正式发布更新,或预览公告

想每周了解 Azure 新闻吗?

本周 Azure 是关于 Azure 的每周新闻综述。加入我们的专家主持人,因为他们涵盖了你需要知道的关于过去一周发展的一切,保持简短、有趣和信息丰富。

无论您是刚刚开始您的云之旅,还是您已经了解自己的东西,每个人都有适合自己的东西!

ACG 不和有什么新消息?

原文:https://acloudguru.com/blog/news/join-the-acg-community-on-discord

人类通过做来学习……当我们一起做的时候,我们会学得更快更好。这就是为什么学习小组、办公时间和简单的“任何人都可以帮助我”的请求是征服新概念的强大而持久的方法。

随着超过 250 万人在云大师上学习云,有大量的团结力量等待着释放!

这就是官方的 ACG 不和服务器 T1 的用武之地。这是一个实时的家,您可以在这里提问、与朋友一起学习、赢取奖品,并在您的云之旅中寻求支持。

即将到来的 ACG 不和谐事件

下面你会发现即将到来的办公时间表和关于ACG 不和谐的不和谐演讲。继续滚动查看各种活动的更多信息。

  • 培训建筑师 Craig Arcuri
    AWS 办公时间 6 月 25 日下午 2 点 ct

  • ACG·不和谐与大卫·索尔(不和谐社区成员)
    使用 Python 和 Boto3 自动化 AWS 操作
    美国中部时间 7 月 2 日下午 4 点

  • 培训建筑师 Clint Bonnett
    的蔚蓝办公时间

  • 培训建筑师 Errol Hooper
    AWS 办公时间 7 月 23 日下午 2 点

  • AWS 培训建筑师 Faye Ellis
    办公时间 ct 时间 7 月 30 日上午 11 点

  • 培训建筑师 Daniel Stinchcomb
    8 月 13 日下午 3 点

说到 ACG 社区,请务必参加我们首次 ACG 社区峰会 。该在线活动将包括六个云学习课程,其中包含深度学习、动手挑战和实时学习。ACG 社区峰会将于6 月 28 日至 30 日美国东部时间下午 12 点至 4 点在 ACG Twitch 频道举行。(不过你可以在这里查看所有多云的好天气。)

办公时间是什么时候?

加入我们的 Discord 办公时间,在这里您可以与我们的培训架构师实时联系,并提出问题、建立网络或一起解决问题!这就像学校的办公时间一样——但你不太可能因为翘了生物课去玩 Xbox 而被教授训斥。随意停下来几分钟打个招呼,或者一直呆在这里!

敬请关注**#办公时间**不和谐频道,获取更多更新!

什么是 ACG 不和谐话语?

Discord Discourse 是每隔一周一次的长达一小时的聚会,我们花几分钟谈论技术、闲逛、社交和建立关系网。每次聚会,我们都会有一个来自社区的不同的演讲嘉宾,就他们感兴趣的话题做 10-15 分钟的演讲!我们喜欢听你谈论你所热爱的事情!

这是与其他社区成员联系并通过一些有趣的技术谈话放松一周的最佳时间!在 #acg-discord-discourse 频道找我们不和谐!

你会在ACG上发现什么不和谐?

  • 您最喜欢的 ACG 和 Linux 学院课程讲师——向他们提问,或者参加虚拟办公时间!
  • 热门认证课程和技术主题的学习小组和专门讨论区
  • 有经验的专业人士提供的职业帮助和证书准备建议都通过了
  • 关注新 ACG 课程和免费内容
  • 激动人心的活动和赠品将在未来几周揭晓
  • 一个友好、包容和支持你职业发展的辅助渠道。我们打赌,对于你的新证书或你的第一份大工作,我们会比你更兴奋!(好吧,可能不相当于。但我们还是会把你看得很重。)

我如何加入 ACG 的不和?

点击邀请链接,建立一个免费的 Discord 账号,探索吧!没有购买的必要。你甚至不需要成为 ACG 的订户!(尽管我们已经为你准备了特别的好东西。)

作为个人学习者从 Linux Academy 到云专家的迁移工作的一部分,我们希望确保为我们合并的社区保留(并改进)一个实时聊天平台。

我们感到自豪和荣幸的是,Linux Academy Slack 社区多年来已经支持了成千上万的人踏上他们的技术学习之旅。虽然 Slack 在几年前推出时是我们社区平台的一个很好的选择,但技术在发展,我们希望确保给你最好的交互体验。当我们将洛杉矶社区迁移到 ACG 时,我们需要一个地方让我们的社区能够共同学习和成长。

现在,洛杉矶/ ACG 的课程导师们将会不和谐地混在一起——这是一个新的和改进的地方,可以在这里进行社区问题和讨论。你们每个人都是我们这个了不起的社区的重要组成部分,我们迫不及待地欢迎你们来到我们在 Discord 的新家。那里见!

启动您的云计算工作和职业生涯

原文:https://acloudguru.com/blog/engineering/jump-start-your-cloud-career

这是入门级的难题,就像鸡和蛋一样令人困惑。你需要一份工作来获得经验,但是你需要经验来获得一份工作。大多数“入门级”云计算工作要求多年的工作经验,因此很难进入该领域。


加速您的职业发展

从 ACG 开始通过 AWS、Microsoft Azure、Google Cloud 等领域的课程和实际动手实验室改变你的职业生涯。


您将如何迈出没有云经验的第一步?如果你没有所需的经验,云计算认证会有帮助吗?是的,如果你用对了的话。

以下是初学者获得云计算职业的七种方式,以及如何在没有所需工作经验的情况下使用云认证获得云计算工作。

***什么是云计算?*通过我们的免费云培训课程探索基础知识并了解优势。


获得痛苦的云词典
说云不一定要努力。我们分析了数以百万计的回答,以确定哪些概念会让人犯错。抓住这个云指南获取最痛苦的云术语的简洁定义。


1。选择合适的云计算认证

如果你想知道如何在云计算领域开始职业生涯,首先要知道你想完成什么,你对什么感兴趣。有很多提供商可以让您获得认证,但这里有三大公共云提供商。

亚马逊网络服务(AWS)

  • AWS 云职业有很多。像几乎所有领域的云专业知识一样,对云技能的需求超过了供给。(这对那些进入入门级云计算工作的人来说是好事。)
  • AWS 认证是科技行业薪酬最高的认证之一,它们通常出现在求职板的云职业搜索结果中最多。
  • 哪个 AWS 认证适合你?有四个级别的认证和专业,都有不同的范围和先决条件。做好你的功课,知道对每个人的期望,并确定哪个 AWS 认证适合你。

微软 Azure

谷歌云平台(GCP)

  • 如果你想在云计算领域开始职业生涯,选择 AWS 会很有诱惑力,因为它是云计算领域最接近家喻户晓的名字。但是关注其他云提供商(并专攻它们)对你的职业生涯来说意义重大。
  • 例子:谷歌认证的专业云架构师认证。对于 2019 年和 2020 年,这是最高薪的 it 认证。金钱不是一切,如果你决定从事谷歌云职业,金钱可能不应该是你唯一的激励因素,但平均工资约为 175,000 美元,很难不引起注意。
  • 哪个谷歌云认证最适合你?GCP 证书的范围从初学者的基础水平到基于角色的证书,这些证书与云中一些最受欢迎的工作相关。

无论你选择哪条认证路线,都不要担心被局限在一条单一的道路上。对多种云技术的需求很大,所以你可以很容易地在云计算提供商之间跳来跳去,让你自己在这个过程中更受潜在雇主的欢迎。还有很多跨云工作的工具和技能值得投入时间,比如 DevOps skillsKubernetes

为了培养获得认证的技能,请确保您选择了一个提供实践云经验的培训计划,这样您就可以将所学付诸实践,并在找工作时继续发展您的技能。


无论您是云新手还是专家,云专家都能让您轻松(而且非常棒)地获得认证并掌握现代技术技能。查看我们当前的 免费云课程 或通过免费试用提升您的 云和 it 职业道路


2。构建您的云产品组合

利用你培训经历中的项目创建一个作品集。确保你的工作从一个项目到下一个项目都是一致的,因为这是雇主想要的特征。如果你使用前雇主或实习生的项目,编辑任何机密信息,并展示你的工作。你如何到达那里和最终结果一样重要。你的证书证明你有知识——你的在线作品集证明你能把它派上用场。一定要在面试时带上你作品集的电子版和纸质版。

寻找投资组合项目的想法?查看我们的云专家组合挑战来帮助您开始。

3。拥有声誉良好的推荐人

列出一份前任或现任主管、导师和同事的名单,他们可以证明你的知识、性格、职业道德和干劲。强大的推荐人加上云认证和强大的产品组合可以击败经验更丰富的候选人。

4。(暂时)免费工作

你可能会找到寻求额外帮助的非营利组织。为他们的 IT 团队做免费工作让你有机会建立自己的投资组合,获得推荐,并在专业环境中获得实践经验。这也向未来的雇主展示了你的主动性和对社区的关心。

5。网络(是的,有人类)

谷歌的内容负责人和前 AWS 无服务器英雄 Forrest Brazeal 已经帮助许多人找到了他们在云计算领域的第一份工作——足以让他们知道简历轮盘赌是一个失败的游戏……即使你被录用了!网络是关键。

等等!不要跳到下一点!

我明白了。对一些人来说,网络是一个四个字母的单词。虽然你可能更喜欢计算机网络,但你的职业网络可能更有助于你找到工作。

正如福里斯特所说:“我注意到,许多工程师对这种想法有点恼火,他们可能不得不出去见人,建立联系,以便在他们想要的职业方向上获得他们想要的工作。我们很多人倾向于认为,“我的技能应该不言自明。“我应该能够去找一份工作,只要通过编码测试,证明我能胜任这份工作——我不应该去见人,去打招呼,”我不是这个意思。我认为很多人忽略的是联系是双向的。"

建立人际关系是了解潜在工作可能是什么样的一个好方法,所以你不会为了一份最终会让你痛苦的工作而去冒险。

查看下面来自 Forrest 的视频,更好地了解如何为一个令人敬畏的云职业生涯建立关系网,以及关系网如何看起来与你想象的有很大不同。

你也想开始接触你认识的人。让他们知道你对云计算中的职业机会感兴趣,并且正在接受培训。他们可以帮你找到最好的培训项目,把你介绍给其他可以帮你找工作的人,充当推荐人,帮你找到扩大你的投资组合的项目。

如果你在云计算领域没有很深的关系网或很多联系人,主动寻找你想要的领域的人,寻求建议或会面(见上面的视频了解更多)。把重点放在你们对云计算的共同兴趣上来建立这些关系。如果你能向这些联系人证明你的价值,他们会帮你找到工作。我们有一个 Discord 社区,欢迎您加入,这也是帮助建立联系的一种方式!

6。足够好奇去玩云端

云技术变化如此频繁,一个人的技能需要随之改变。好奇心是云工程师的一个重要特质,它可能是比经验更大的资产,因为这意味着你会主动提高自己的技能。

获得云计算认证已经显示了你的主动性和好奇心。让好奇心带领您体验使用云应用程序和服务的实际操作。

有很多机会免费或以最低的成本做到这一点。你的实践经验越多,即使只是玩玩,你就越能讨论云应用和服务的元素。在面试中突出你的好奇心,并讨论它是如何让你获得云经验的。

谈到招聘云人才的雇主在寻找什么,云运营副总裁贾斯汀·布罗德利洲际交易所说:

“我最看重的是所有权和好奇心。你在寻找那种学习的欲望、灵活性,并以不同的方式思考你如何对待服务和技术,以及你如何看待这些事情。。。这就是我在候选人身上寻找的东西:好奇心、云知识和意识的关键部分,以及他们如何将这些带到日常工作中。”

7。显示决心

如果你被拒绝了几次或者没能获得工作面试,不要放弃。致力于你的目标,让那些拒绝驱使你更加努力。

当你等待合适的机会时,掌握最新的云趋势,因为它们在不断发展,并通过云实验室和练习保持你的技能。你越是沉浸在云社区中,越是练习使用云技术,你就越有可能找到理想的工作。

获得认证证明你拥有云计算的知识。你的实践经验,即使不是工作经验,也表明你可以付诸行动。最好的云工程工作总是很难找到,你将面临激烈的竞争。获得认证可以给你带来竞争优势,采取正确的步骤确保你将知识付诸实践将会推进你的职业生涯。虽然证书不能保证你会得到你梦想的工作,但它肯定会让你比现在更接近梦想。



我如何在云中开始职业生涯?

入门级云职业常见问题

*Is cloud computing a good career option?

云计算技能的需求很大,一些分析师已经表示,在云计算领域的职业生涯可能几乎是面向未来的。未来可能是不确定的,但通往现在的道路讲述了一个令人信服的故事:根据 LinkedIn 的说法,云计算一直是最受欢迎的硬技能之一,而且往往是唯一最受欢迎的硬技能。* *What are the most in-demand skills for cloud computing?

云计算技能在各行各业都有很高的需求,但是你可以看看 IT 行业的一些高薪认证来更好地了解雇主(字面上)最看重的是什么。* *How to get your cloud certification?

学习!接触云技术。边做边学是理解云的关键。大多数云提供商都让免费账户很容易上手。或者,如果你正在使用像云专家这样的技能开发平台,动手实验室和云操场可以让你轻松地边做边学,而不用担心会弄坏任何东西或积累一大笔云账单。当你准备好获得认证时,你现在可以在线或亲自参加考试,让获得认证比以往任何时候都更容易。*


KubeCon 2021:新 K8s 认证,Cilium 加入 CNCF

原文:https://acloudguru.com/blog/engineering/kubecon-2021-recap-a-new-k8s-certification-cilium-joins-the-cncf

这个月 Kubernetes 怎么了?在这篇文章中,我将关注最近的 KubeCon 2021 活动,另外我将与你分享我上个月的前 3 个 K8s 精选和公告。

想了解更多?让我们开始吧!


加速您的职业发展

从 ACG 开始通过 AWS、Microsoft Azure、Google Cloud 等领域的课程和实际动手实验室改变你的职业生涯。


KubeCon + CloudNativeCon 北美 2021 亮点

对于本月的深潜部分,我们将重点关注北美的 KubeCon 2021 活动。但也看了几个大的公告。

KubeCon 以现场/在线混合活动的形式回归

首先,我几乎想说是一种解脱,看到 KubeCon 作为一个亲自参加的活动回来。或者至少是一个混合的活动,既有实际亲自参加的,也有虚拟参加的。我看到的数字表明,大约有 3000 人亲自参加,另有 20000 人通过互联网参加。

那些亲自出席的人说,这感觉就像过去的美好时光。摊位又回来了,很忙,还有聚会和质量会议。但最重要的是,人们感到安全,并开始相信大型现场活动可以安全进行。

在 Kubecon 上有大量的新闻和公告,但这里有几个亮点: Cilium 加入 CNCF 吸引了我的注意,正如新的入门级 Kubernetes 认证一样。

纤毛加入 CNCF

在 Cilium 方面,技术本身基本上是先进的网络,在单个项目中具有顶级的可观察性和安全性。它基于 eBPF,我认为我说特使集成(它将带来基于内核的服务网格功能)在路线图上是正确的。所以,科技元素是史诗。但是我估计它可能已经是整个生态系统中最受欢迎的 CNI 插件了。我的意思是,它用于 GKE 数据平面和 EKS 的任何地方。这还没有提到利用它的独立项目。

现在它是 CNCF 的一部分,当然,它目前处于孵化阶段,但即使如此,它只会推动项目的进一步采用和进一步成熟。因此,有一场 eBPF 革命正在进行,而 Cilium 正在以时尚的方式将其引入 Kubernetes。基本上,如果你想和 Kubernetes 进行严肃的交流。纤毛看起来像一个坚如磐石的选择。

新的入门级 Kubernetes 认证

将 tac 切换到新的 Kubernetes 和云本地助理认证。。。

我知道你们很多人喜欢好的认证。如果你想知道你应该走哪条 Kubernetes 认证道路,这里有一个新的认证。新的 Kubernetes 和 Cloud Native Associate(朝鲜中央通讯社)考试是一项测试入门级知识和技能的选择题考试。它目前处于测试阶段,但可能会在年底全面上市。

如果你感兴趣,你应该感兴趣,它测试基本的概念和技能,比如 Kubernetes 架构,用 kubectl 部署应用,以及生态系统中一些更广泛的东西。比如一些基本的 GitOps 和服务网格概念。

接下来,该是我这个月的其他三大新闻了。

1.发布到预览版的虚拟机的 Anthos

在我上个月的选择中,排名第一的是谷歌宣布为虚拟机发布 Anthos 预览版。可以说,Anthos 是谷歌的通用控制平台。这些是我的话,但它基本上管理 Kubernetes 无论你有它。

无论如何,因为它是基于 GKE,谷歌 Kubernetes 引擎的,所以都是关于容器工作负载的。现在,它将触角延伸到了虚拟机。这绝对是一件好事,因为我所知道的大多数组织,至少是那些对 Anthos 感兴趣的组织,都有容器和 VM 工作负载。

如果您走 Anthos 路线,您将获得容器和虚拟机的标准化流程和工具。对我来说听起来像一个胜利者!

2.谷歌分布式云

好的,继续这个月的第二个问题。在最近的Cloud Next’21活动上,谷歌宣布谷歌分布式云。简而言之,它看起来就像你需要的谷歌云。因此,在边缘,在您的数据中心,甚至在运营商网络的 5G 边缘。

现在再说一次,现在还为时尚早,但是主要的云确实在推动将它们的覆盖范围和服务扩展到尽可能多的地方。我知道像 5G edge 这样的地方,所以在运营商的网络上提供云硬件和服务,就像在 5G 的边缘,可以改变游戏规则。所以全新的边缘应用。


观看:自动化 Kubernetes 安全 这个免费的点播网络研讨会中,学习如何用 Pod 安全策略来增强您的 K8s 安全。我们将向您展示它们是如何工作的,以及在一个真实的 Kubernetes 集群中实现它们的样子。


3.任何地方的 EKS

最后,我这个月的第三个也是最后一个选择:以类似的方式,亚马逊宣布立即提供 EKS 随处可见,这是他们的托管或亚马逊风味的 Kubernetes 服务。因此,基于亚马逊 EKS 发行版的内部 Kubernetes 具有 AWS 管理体验。想知道 AKS、EKS 和 GKE 之间的差异,请查看 AKS vs EKS vs GKE:托管 Kubernetes 服务比较

跟上 K8s

本月 Kubernetes 本月到此为止。注意安全,我们下个月再见——同一时间,同一地点。

想要了解 Kubernetes 的所有信息?在推特上关注奈杰尔或者在这里关注他。在 YouTube 上订阅一位云计算专家,获取定期更新、分析和各种精彩内容。你也可以在脸书上喜欢 ACG,在推特上关注我们,或者在不和谐上加入对话!

Kubectl 备忘单- Kubernetes 命令

原文:https://acloudguru.com/blog/engineering/kubernetes-cheat-sheet

如果你像我一样,你可能会有这样的时刻,你在终端前,双手在键盘上徘徊,然后…什么都没有。我似乎总是僵住,可能太依赖于 bash 历史。(向上的箭头是我的朋友。)

在学习 Kubernetes 的时候,我最终在我的显示器上贴了 14 或 15 个便利贴来帮助我——但过了一段时间,我几乎看不清屏幕上的内容。所以最后,我写了一张小而易读的纸,当我或者你陷入困境时可以参考。

但首先,让我们花点时间来建立一些基础知识。

What is Kubernetes?

Kubernetes 是一个管理容器化工作负载的平台。Kubernetes 协调计算、
网络和存储,以提供跨基础设施提供商的无缝可移植性。迷茫?查看Kubernetes简介,我们的 Kubernetes 101 速成课程包含你需要知道的所有基础知识。

What is Kubectl?

kubectl 是 Kubernetes 命令行工具。它允许我们对 Kubernetes 集群运行命令——部署应用程序、检查和管理集群资源以及查看日志。

Kubernetes 学习资源

忽必烈中的忽必烈命令

这个 Kubernetes 备忘单旨在让您开始在 Kubernetes 中执行 Kubectl 命令,并为您提供所有基本命令。(查看下面的可下载资产!)

命令结果这个备忘单上的一些命令可能不会返回任何结果,但是不用担心!下面是一些你可以创建的资源,然后快速转身运行你的备忘单中的命令来改变你的资源。先说豆荚。

基本 busybox pod 的 YAML

apiVersion: v1kind: Podmetadata:name: busyboxspec:containers:- image: busybox:1.28.4command:- sleep- "3600"name: busyboxrestartPolicy: Always

在这里了解更多关于 YAML 的信息。 用此命令创建 pod:

kubectl create -f busybox.yaml

使用此命令创建部署:

kubectl run nginx --image=nginx

使用此命令从上面的部署创建服务:

kubectl expose deployment nginx --port=80 --type=NodePort

以下是使用节点本地存储的简单持久性卷的 YAML:

apiVersion: v1kind: PersistentVolumemetadata:name: data-pvnamespace: webspec:storageClassName: local-storagecapacity:storage: 1GiaccessModes:- ReadWriteOncehostPath:path: /mnt/data

使用以下命令创建永久卷:

kubectl apply -f my-pv.yaml

以下是简单配置图的 YAML:

apiVersion: v1kind: ConfigMapmetadata:name: my-config-mapdata:myKey: myValueanotherKey: anotherValue

使用以下命令创建配置映射:

kubectl apply -f configmap.yaml

下面是 YAML 的一个秘密:

apiVersion: v1kind: Secretmetadata:name: my-secretstringData:myKey: myPassword

使用此命令创建密码:

kubectl apply -f secret.yaml

以下是服务帐户的 YAML:

apiVersion: v1kind: ServiceAccountmetadata:name: acrnamespace: defaultsecrets:- name: acr

使用此命令创建服务帐户:

kubectl apply -f serviceaccount.yaml

立即下载!

这应该足以让你开始!我还创建了这个 PDF 供您下载,并放在旁边供您参考!如果您喜欢这些练习并遵循这些命令,请查看我们的云原生认证 Kubernetes 管理员(CKA) 课程,深入了解 Kubernetes!

想要更多云技术的好处吗?看看这些:


掌握最受欢迎的技能

通过 ACG 的课程、实验室、学习路径和沙盒软件学习按需云技能。查看 ACG 目前的免费课程立即开始免费试用。


库柏切叶刀

查看资源信息

节点

| $ kubectl get no |
| $ kubectl get no -o wide |
| $ kubectl describe no |
| $ kubectl get no -o yaml |
| $ ku bectl get node–select or =[label _ name] |
| $ kubectl get nodes -o jsonpath='{。items[*].status.addresses[?(@.type=="ExternalIP")]。地址} ' |
| $ kubectl top node [node_name] |

分离舱

| $ kubectl 获取采购订单 |
| $ kubectl 获得 po -o wide |
| $ kubectl 描述采购订单 |
| $ kubectl 获取采购订单-显示-标签 |
| -= ytet-伊甸园字幕组=-翻译:粒粒粒尘紫月猫姐 scenery 校对:阿衡时间轴:邦德猪 |
| $ kubectl get po -o yaml |
| $ ku bect l get pod[pod _ name]-o YAML–export |
| $ ku bect l get pod[pod _ name]-o YAML–export > nameoffile . YAML |
| $ ku bectl get pods–字段选择器状态。phase =正在运行 |

Namespaces

| $ kubectl get ns |
| $ kubectl get ns -o yaml |
| $ kubectl 描述 ns |

部署

| $ kubectl 获得部署 |
| $ kubectl 描述部署 |
| $ kubectl 得到广泛部署 |
| $ kubectl get deploy -o yam |

服务

| $ kubectl 获取服务 |
| $ kubectl 描述 svc |
| $ kubectl 获得 svc -o 范围 |
| 库布特雷得到 svc 或 yaml |
| $ ku bectl get SVC–显示-标签 |

达蒙塞特

| $ kubectl 获取 ds |
| $ ku bectl get ds–所有名称空间 |
| $ ku bectl describe ds[daemon set _ name]-n[namespace _ name] |
| $ ku bectl get ds[ds _ name]-n[ns _ name]-o YAML |

事件

| $ kubectl 获取事件 |
| $ kubectl 获取事件-n kube-system |
| $ kubectl 获取事件-w |

日志

| $ kubectl logs [pod_name] |
| $ ku bectl logs–since = 1h[pod _ name] |
| $ ku bectl logs–tail = 20[pod _ name] |
| $ ku bectl logs-f-c[容器名称] [pod 名称] |
| $ kubectl logs [pod_name] > pod.log |

服务帐户

| $ kubectl 获取 sa |
| 库布特雷得到了 sa -o yaml |
| $ ku bectl get service accounts default-o YAML >。/sa.yaml |
| $ kubectl 替换 serviceaccount 默认值-f. /sa.yaml |

复制集

| $ kubectl 获取 rs |
| $ kubectl 描述 rs |
| $ kubectl 获得 rs -o 宽度 |
| 库布特雷得到了 rs -o yaml |

角色(Roles)

| $ kubectl 获取角色-所有-名称空间 |
| $ ku bectl get roles–all-namespaces-o YAML |

-秘密

| 忽必烈得到秘密 |
| $ ku bectl get secrets–所有名称空间 |
| $ kubectl 获取秘密-o yaml |

ConfigMaps(配置映射)

| 立方英尺 |
| $ ku bectl get cm–所有名称空间 |
| $ ku bectl get cm–all-namespaces-o YAML |

进入

| $ kubectl get ing |
| $ ku bectl get ing–所有名称空间 |

持久卷

| $ kubectl 获取 pv |
| $ kubectl 描述 pv |

PersistentVolumeClaim

| 卡布拉尔得到 pvc |
| $ kubectl 描述 pvc |

存储类

| $ kubectl 获取 sc |
| $ kubectl 获取 sc -o yaml |

多重资源

| 卡布拉尔得到 svc,po |
| $ kubectl 获得部署,否 |
| $ kubectl get all |
| $ kubectl 获取所有名称空间 |

更改资源属性

污点

| $ kubectl 污点[节点名][污点名] |

标签

| $ kubectl label [node_name] disktype=ssd |
| $ kubrectl label[pod _ name]env = prod |

警戒线/非警戒线

| $ kubectl cordon [node_name] |
| $ kubi con sol[node _ name] |

流干

| $ kubectl drain [node_name] |

节点/单元

| $ kubectl delete node [node_name] |
| $多维数据集删除在[sub _ name]之下 |
| $ kubectl edit node [node_name] |
| $多维数据集编辑下[subname] |

部署/名称空间

| $ kubectl 编辑部署[部署名称] |
| $ kubectl 删除部署[部署名称] |
| $ ku bectl expose deploy[depl oy _ name]–port = 80–type = node port |
| $ ku bectl scale deploy[deploy _ name]–副本数=5 |
| $ kubectl delete ns |
| $ kubectl edit ns [ns_name] |

服务

| $ kubectl 编辑服务[服务名称] |
| $ kubectl 删除服务提供商[服务提供商名称] |

达蒙塞特

| $ kubectl edit ds [ds_name] -n kube-system |
| $ kubectl delete ds [ds_name] |

服务帐户

| $ kubectl edit sa [sa_name] |
| $ kubectl delete sa [sa_name] |

给…作注解

| $ kubectl annotate po [pod_name] [annotation] |
| $ kubectl annotate no [node_name] |

添加资源

创建 Pod

| $ ku bectl create-f[文件名] |
| $ ku bectl apply-f[文件名] |
| $ ku bectl run[pod _ name]–image = ngi NX–restart = Never |
| $ ku bectl run[pod _ name]–generator = run-pod/v1–image = nginx |
| $ ku bectl run[pod _ name]–image = nginx–restart = Never |

创建服务

| $ kubectl 创建 svc 节点端口[SVC _ name]–TCP = 8080:80 |

创建部署

| $ ku bectl create-f[文件名] |
| $ ku bectl apply-f[文件名] |
| $ ku bectl create deploy[deploy _ name]–image = ngi NX |

交互式 Pod

| $ ku bectl run[pod _ name]–image = busybox–RM-it–restart = Never—sh |

输出 YAMLto 文件

| $ ku bectl create deploy[deploy _ name]–image = ngi NX–dry-run-o YAML > deploy . YAML |
| $多维数据集获取 po[pod _ name]-o YAML-导出> |

获得帮助

| $ kubectl -h |
| $ kubectl create -h |
| $ kubectl run -h |
| $ kubectl 解释 deploy.spec |

要求

API 调用

| $ ku bectl get–raw/API/metrics . k8s . io/ |

集群信息

| $ kubectl 配置 |
| $ kubectl 集群信息 |
| $ kubectl 获取组件状态 |

Kubernetes 不同意 Docker 的观点:你需要知道的

原文:https://acloudguru.com/blog/engineering/kubernetes-is-deprecating-docker-what-you-need-to-know

忽必烈是掠夺码头吗?!

一段时间以来,似乎当人们想到集装箱时,他们会想到 DockerKubernetes 。在构建和运行容器方面,Docker 是大名鼎鼎的,而在管理和编排容器方面,Kubernetes 是大名鼎鼎的。听到 Kubernetes 从 Kubernetes 1.20 版开始不再支持 Docker 作为容器运行时,可能有点令人震惊。


加速您的云计算职业生涯

云专家让你轻松(也很棒)提升你的云事业——即使你对技术完全陌生。查看 ACG 目前的免费课程立即开始免费试用。


所以,我想借此机会谈谈这一变化到底意味着什么,以及 Kubernetes 用户需要为此做些什么。

Docker 有什么变化?

Kubernetes 对 Docker 的贬低实际上并没有听起来那么严重,所以我们来谈谈这里到底发生了什么。

Kubernetes 正在移除对 Docker 作为容器运行时的支持。Kubernetes 实际上并不处理在机器上运行容器的过程。相反,它依赖于另一个叫做容器运行时的软件。

容器运行时在主机上运行容器,Kubernetes 告诉每个主机上的容器运行时做什么。实际上,在运行 Kubernetes 时,您可以从各种选项中选择想要使用的容器运行时软件。到目前为止,一个相当流行的选择是使用 Docker 作为容器运行时。

然而,这在未来将不再是一个选项。您仍然可以以与 Kubernetes 相关的其他方式使用 Docker(稍后会详细介绍),但是您将无法使用 Docker 作为 Kubernetes 下的容器运行时。

为什么是库伯勒掠夺码头?

到目前为止,Kubernetes 一直支持使用 Docker a 容器运行时,那么他们为什么选择停止支持它呢?

Kubernetes 与所有容器运行时一起工作,这些容器运行时实现了一种称为容器运行时接口(CRI) 的标准。这本质上是 Kubernetes 和容器运行时之间的一种标准通信方式,任何支持这种标准的运行时都会自动与 Kubernetes 一起工作。

Docker 没有实现容器运行时接口(CRI)。在过去,容器运行时没有太多好的选择,Kubernetes 实现了 Docker shim,这是一个附加层,用作 Kubernetes 和 Docker 之间的接口。然而,现在有大量的运行时可以实现 CRI,Kubernetes 保持对 Docker 的特殊支持不再有意义。

Watch: Kubernetes + Azure,哈希公司之道
你有没有想过创造一种标准化的方式来安全地部署你的应用?在 Azure 上使用 HashiCorp 堆栈是一个很好的起点。查看这个免费的点播网络研讨会了解更多信息!

到底是怎么回事?


要真正理解 Kubernetes 反对 Docker 的原因,我们需要更深入一点。


我告诉你一个秘密: Docker 实际上不是一个容器运行时!它实际上是一个工具集合,位于名为 containerd 的容器运行时之上。

没错!Docker 不直接运行容器。它只是在一个独立的底层容器运行时之上创建了一个更容易被人访问、功能更丰富的接口。当它作为 Kubernetes 的容器运行时,Docker 只是介于 Kubernetes 和 containerd 之间的中间人。

然而,Kubernetes 可以直接使用 containerd 作为容器运行时,这意味着在这个中间人角色中不再需要 Docker。即使在一个 Kubernetes 生态系统中,Docker 仍然可以提供很多东西。只是不特别需要它作为容器运行时。

Docker 往前走的作用是什么?

尽管在 Kubernetes 中不需要 Docker 作为容器运行时,但它仍然可以在 Kubernetes 生态系统和您的工作流中发挥作用。

Docker 作为开发和构建容器映像以及在本地运行它们的工具,仍然很强大。Kubernetes 仍然可以运行使用 Docker 的开放容器倡议(OCI) 图像格式构建的容器,这意味着您仍然可以使用 Docker 文件并使用 Docker 构建您的容器图像。

Kubernetes 也将继续能够从 Docker 注册中心(比如 Docker hub)获取数据。这意味着,一旦构建了映像,Docker 在管理映像方面仍将是一个强有力的竞争者。

总而言之,Docker 将继续是您开发工作流和持续集成(CI)系统的有用工具,即使您在生产中不需要它来运行 Kubernetes 下的容器。

想获得 K8s 认证吗?阅读我们的Kubernetes 认证之旅蓝图。

集装箱和 CRI-O:码头工人的替代品


如果您目前在 Kubernetes 环境中使用 Docker 作为容器运行时,您将需要做一些更改。接下来,您可以在您的 Kubernetes 环境中简单地消除 Docker 作为中间人的角色。相反,使用另一个容器运行时,如 containerdCRI-O


在升级到 Kubernetes 版本删除对 Docker(目前估计在 2021 年末发布)的支持之前,您需要修改(或替换)现有的 Kubernetes 节点,以便它们使用受支持的容器运行时而不是 Docker。从现在开始,您可能希望开始构建任何新节点,以便它们也使用非 Docker 容器运行时。

除此之外,没有什么是真正改变的。您可以继续使用 Docker 构建您的映像,也可以出于开发目的在本地运行容器,或者在您的持续集成(CI)堆栈中运行容器。您也可以继续使用 Docker 注册表来存储和管理您的图像。

如果你有兴趣学习如何在 Kubernetes 旁边使用 containerd,请查看我的新课程,Kubernetes 简介。它包含的课程将引导您完成在 Kubernetes 集群中安装和使用 containerd 的过程。

掌握最受欢迎的 Kubernetes 技能

无论您是云新手还是经验丰富的专家,云专家都可以让您轻松(而且非常棒)地提升您的云职业生涯。查看 ACG 的免费课程或立即开始免费试用。


想要更多容器优点吗?看看这些:

A Cloud Guru makes it easy (and awesome) to level up your cloud career — whether you’re new to cloud or a seasoned pro. Check out ACG’s free courses or get started now with a free trial.


Want more container goodness? Check these out:

Lambda SnapStart:我们从 re:Invent 2022 那里了解到了什么

原文:https://acloudguru.com/blog/business/lambda-snapstart-reinvent-2022

AWS re:Invent 的第一个主题是关于性能的。因此,我们惊喜地听到 Peter DeSantis 在他周一晚上在 AWS re:Invent:Lambda SnapStart 的主题演讲中宣布了一个新的 Lambda 功能。

这是我们目前所知的。

什么是 Lambda SnapStart?

Lambda SnapStart 通过创建 Lambda 函数的快照来绕过通常的初始化过程,几乎消除了冷启动过程。

Lambda 最大的优势之一——也是让开发人员不断回来的原因——是它处理尖峰工作负载的能力。通俗地说,就是处理工作量意外持续增加的能力。但是对于想要使用 Lambda 的开发人员来说,最大的挑战是经常发生的冷启动。特别是对于那些使用 Java 的人来说,漫长的初始化周期让 Lambda 冷启动更加痛苦。尤其是在 Java 环境中。

至少到目前为止。根据 DeSantis 的说法,使用 Lambda SnapStart 的组织应该会看到冷启动时间提高了 90%。

AWS SnapStart 如何让我的组织受益?

通过消除最大的障碍,AWS 为更多的组织将工作负载转移到 Lambda 上铺平了道路。

为什么要用 Lambda?

Lambda 是一个无服务器的基础设施平台,在特定事件触发时运行代码。这个想法是,开发人员可以专注于代码,而不用担心创建或维护底层基础设施。所以它很受开发者的欢迎,因为它的灵活性。他们可以编写代码,并在几分钟内获得实时反馈。而且它很受领导们的欢迎,因为它能以最低的运营成本运行。

有了 Lambda,AWS 可以为您执行所有的应用程序操作和管理需求,包括容量供应、监控、运行前端 web 服务和应用安全补丁。这为组织带来了四大好处。

现收现付模式

现收现付模式对于公共云服务来说并不新鲜,但 Lambda 是最能节省成本的模式之一。EC2 实例必须被启动来接收请求,所以它们会保持长时间运行——只要它们还在运行,您就要为它们付费。Lambda 让你更接近于只为你想运行的代码付费。

事件驱动的基础设施

Lambda 是专门设计的,只在被触发时运行。虽然它是全天候可用的,但您不必为每一秒钟付费。这使得它成为流量具有高峰和低谷的服务的最佳解决方案。

按比例建造

Lambda 的构建是为了根据请求的并发执行的数量,即时自动地扩大或缩小并行执行的规模。一旦执行,分配给该函数的所有资源都会自动销毁。

支持多种框架

无论你运行的是 Java、Go、PowerShell、Node.js、C#、Python 还是 Ruby 代码,Lambda 都自带对该语言的原生支持。在使用运行时 API 开发函数时,还可以使用其他编程语言。

总的来说,Lambda 是为开发人员设计的,以最小的开销快速轻松地发布应用程序代码。Lambda SnapStart 增强了这些特性,使得 AWS Lambda 功能对最敏捷的开发团队更具吸引力。

AWS SnapStart 是如何工作的?

一旦你启用了 Lambda SnapStart,你的函数需要运行一次才能生效。在标准初始化之后,Lambda SnapStart 获取其状态的加密快照,并将其缓存以供将来使用。当该函数再次被触发时,Lambda SnapStart 会抓取缓存的快照,而不是运行整个初始化阶段来启动该函数。

Lambda SnapStart 对所有 Lambda 用户都可用,但在使用前必须启用。它目前仅适用于使用 Corretto 运行时的 Java 函数。

Lars 的云播放列表:Azure 基础实践实验室

原文:https://acloudguru.com/blog/engineering/lars-cloud-playlist-hands-on-labs-for-azure-fundamentals

这篇文章分享了六个实践实验室,它们将帮助你获得微软 Azure 服务的真实体验。这些动手实验室是在探索 Microsoft Azure 的基础云服务时将您的学习付诸实践的好方法。

手。它们不仅仅是吃一片披萨或者摘下太阳镜的绝佳选择。它们对于学习云计算也非常有用。为什么?因为获得云计算的实践经验对于理解云计算至关重要。

为了帮助你,一位云计算专家提供了一些(大约 1800 个)动手实验室。这些有指导的实践练习将带您了解安全云环境中的真实目标。你在方向盘上;我们是帮助导航的乘客。

在这篇博文中,我将分享六个 ACG 实践实验室,它们非常适合希望掌握 Azure 基础知识的云和/或微软 Azure 新手。

为什么你应该学习 Azure

但是等等。为什么要学习 Azure 和云技能?

多年来,人们一直在投资云,就像 Elon Musk 刚刚在推特上发布的那样,Azure(地球上最大的公共云之一)是企业和企业组织的热门选择。对云人才和拥有 Azure 技能的人的需求继续超过供应。

这对你来说意味着什么?这意味着 Azure 可以带领你找到一些科技行业的高薪认证和工作。

无论你是云的新手,还是仍然想知道微软 Azure 是什么,或者你已经对云有所了解并准备付诸实践,这些动手实验室肯定会派上用场。

AWS 更适合你吗?查看 Ryan 的云播放列表:学习 AWS 基础知识的动手实验室

Azure 基础播放列表

Azure 基础播放列表是我推荐给 Azure 学习者的第一套实验。你将带着很少或没有云知识进来,带着实践经验出来,你可以在几个小时内应用到你的第一个 Azure 项目中。准备好果酱!

建议的音乐配对:

注意:要开始下面的动手实验,你需要有一个 ACG 帐户或开始免费试用。你也可以注册一个免费账户,开始学习这个月的免费课程

作为第一次使用 Azure 的用户,你会想要熟悉 Azure 门户并定制仪表盘。为此,您将登录 Azure 门户,熟悉布局和导航,并创建和定制显示有用信息的仪表板。

这个 30 分钟的动手实验将帮助您成功连接到 Azure 门户,并创建和自定义您的仪表板。没有必要担心设置 Azure 帐户或产生额外费用。云专家云游乐场在真实的云环境中为您提供了一个安全的空间,让您在没有安全风险或意外账单的情况下提高技能。

已经是 ACG 会员了?在这里开始这个实验

这个 30 分钟的动手实验将向您介绍 Azure Cloud Shell,这是一个基于 web 的虚拟终端,允许您直接从浏览器完全访问 Azure PowerShell 和 CLI。不需要安装任何东西,也没有插件——只需要编写脚本就可以了。

我们将看看如何在 Azure CLI 和 Azure PowerShell 中设置云外壳并运行一些命令。当我们完成后,你将拥有在你自己的 Azure 订阅中运行云外壳所需的知识。

ACG 会员?点击查看实验室

这个 30 分钟的动手实验中,我们将使用 Azure 门户创建和使用一个虚拟机。我们将登录 Azure 门户,并为虚拟机创建一个虚拟机、一个虚拟网络和一个网络接口卡。

我们还将通过 RDP 连接到虚拟机,并使用 Azure 门户关闭虚拟机。完成本实验后,您将获得使用 Azure 门户创建和使用第一个虚拟机所需的经验。

签约 ACG 了吗?在这里启动这个实验室

作为 Azure 用户,你会希望使用 Azure 门户来创建和使用你的第一个虚拟网络。为此,你需要登录 Azure 门户网站,创建一个虚拟网络、子网和一个网络安全组。这正是你在这个 30 分钟的动手实验中要做的。

完成这个动手实验后,您将获得使用 Azure 门户创建和使用您的第一个虚拟网络所需的经验!

已经是 ACG 会员了?在这里开始这个实验


Top Paying Cloud Certifications and Jobs

看点:解决“无经验”的云招聘问题
需要经验才能得到工作,但需要工作才能得到经验。这是一个多云的第 22 条军规!观看免费点播的网络研讨会,了解帮助数十人获得第一份云计算工作的 ACG 挑战赛。


在这个 30 分钟的动手实验中,我们将介绍如何在 Azure 中设置 Azure Blob 存储。这个初级动手实验室涵盖了几个概念:Azure 存储帐户、Azure 容器和 Azure Blobs。

我们将创建一个存储帐户,创建一个博客容器,然后上传一个 blob。这个动手实验室使用 Azure 门户,因此您不必安装任何软件。只需使用网络浏览器跟随即可!

登录到您的 ACG 帐户?在此动手

这个 30 分钟动手实验的场景中,您的公司正在扩张。他们增加了一个新的研发部门来投资未来的能力,使他们能够做出更多的战略决策。该公司要求您创建 Azure Active Directory (AAD)组并将您自己添加到其中。您需要登录到 Azure 门户,导航到 Azure Active Directory (AAD)服务,并执行必要的步骤来创建该组并将您的实验室用户添加为该组的成员。

ACG 会员?点击查看实验室

建议的后续步骤

  • 如果你是云新手,可以从 ACG 的 AZ-900 Azure F 基础课程开始。这是对 Azure 和云的一次出色的、无需经验的介绍。

  • 一旦你把这些实验归结为一门科学,你就可以把难度提高一个档次。使用我们新的挑战模式选项,可以进行上述许多实验。


lars-azure

您云计算生涯的 Konami 代码

希望职业生涯更上一层楼?ACG 可以带你从新手到大师——不需要作弊代码。查看我们的 Azure 认证和学习路径。

免费启动您的第一个 Ansible 动手实验室

原文:https://acloudguru.com/blog/engineering/launch-your-first-ansible-hands-on-lab-for-free

什么是动手实验?

您的第一个可回答的动手实验

Hands-On Labs is a key feature when it comes to learning practical skills. Instead of simply watching videos, Hands-On Labs deploy real environments with real-world scenarios for you to complete. By completing those scenarios, you are building skills that can be used directly on the job.

剧本是 Ansible 的核心。它们提供了一种在任意数量的系统上执行大量任务的方法。这个动手实验通过让你制作和执行一个可行的剧本,让你踏上精通可行的道路。在实验结束时,您将完成第一份可行的行动手册。

Most of the Hands-On Labs in our Learn Ansible By Doing course are less than 15 Gems to launch, so you could launch at least 2-3 labs as part of this walkthrough we are doing, for free. You can also earn more Gems by referring members or taking other actions.

Your First Ansible Hands-On Lab

真实世界场景完成

在这个可行的动手实验中,我们将完成以下场景 :

If you haven’t already, go to this link and click on “Start Hands-On Lab.” We’re ready to get started!

您的主管要求您寻找一种方法来自动化和审核您环境中新服务器的基本系统配置。假设 Ansible 已经在您的环境中进行了基本配置,那么最简单的解决方案就是编写一个脚本来引导您的新主机。

按照这些说明完成场景 :

创建一个名为/home/ansi ble/bootstrap . yml的剧本,以满足以下引导需求:

在所有提供的服务器上:

编辑 /etc/hosts 以包含以下条目: ansible.xyzcorp.com  169.168.0.1

安装elinks

创建用户 xyzcorp_audit

将文件/home/ansible/motd/home/ansible/issue 复制到/etc/

  1. 在提供的网络服务器上:
  2. 安装【nmap-ncat】
  3. 创建用户 xyzcorp_network

在提供的系统管理员服务器上:

/home/ansible/scripts.tgz 从控制节点复制到/mnt/storage

  • 已经为您配置了 Ansible 控制节点,并且每个测试服务器都已经配置为使用 Ansible。默认清单已配置为包括组 network 和 sysadmin。每个组包括一个示例主机。

完成上述情景和说明后,我们将完成以下目标 :

  • 为可行清单中的所有服务器创建一个基本行动手册。

在行动手册中添加一节,介绍易变清单中的网络服务器。

在行动手册中为 Ansible 清单中的 SysAdmin 服务器添加一个部分。

执行行动手册以验证您的行动手册工作正常

为此,您将使用实验页面上的给定凭证 SSH 到 Ansible 控制节点。在这里,您将配置行动手册,该手册将完成我们的说明中的任务,并在其他 2 个节点上执行操作。

  • 您的证书可能与我的不同,但这是它们在实验操作页面上的样子
  • 服务器凭证
  • 帮助你的学习工具

如果您不确定如何完成说明中列出的目标和任务,我们会提供书面指南和视频。这些旨在引导您从头到尾完成整个场景,这样,如果您在这个动手实验中遇到困难,您可以查看解决方案并继续前进。

视频指南

文字指导

除了书面指南和视频指南,我们还提供了架构图,以可视化的形式向您展示最终结果。如果你像我一样是视觉学习者,这真的可以帮助记忆概念和解决方案。

建筑示意图

完成场景,获得新技能!

现在,您可以访问动手实验环境和所需的培训资源,以便完成本实验、学习新技能并继续进行更多可行的实验!

以下是其他一些可行的动手实验,例如:

Complete the scenario and earn a new skill!

You now have access to the Hands-On Lab environment and the training resources you need in order to complete this lab, learn a new skill, and move on to more Ansible labs!

Here are some other Ansible Hands-On Labs, for example:

If you are part of a business account, your manager can see exactly which skills you’ve gained as a result of your training on Linux Academy, and that can go a very long way!

了解 YAML 基础知识

原文:https://acloudguru.com/blog/engineering/learn-the-yaml-basics

随着 YAML 越来越多地与各种敏捷语言和应用程序一起使用,学习这种数据序列化语言的基础知识将让您投入并开始使用各种工具,如 Ansible、Kubernetes 和 Salt。

幸运的是,YAML 很容易让人读懂,也很容易掌握,所以这里有一个快速的“五分钟 YAML”纲要:

YAML 文件的组成部分

YAML 文件由三个核心组件组成:映射、列表和标量。

映射是简单的键值对,就像ip: 10.0.4.0一样。

列表像任何纯文本项目符号列表一样工作,每个项目在一个新行上,并以破折号开始。

最后,标量是字符串、布尔或数字;列表中的一个项目是它自己的标量,而键值对的keyvalue都是单独的标量。

映射和列表也可以合并。

name: Dana Scully username: dscullyroles:   - FBI Agent - Medical doctor

YAML 和空白

在组成 YAML 的点点滴滴之外,我们看不见的东西也很重要。即间距。在 YAML,空格表示一个“集合”或一组相关的线条。例如,上面例子中的roles下的所有内容都是一个集合。

YAML 的空格应该是空格。在许多情况下,它必须是空格。尤其是缩进,仅限于两个单独的位置,但是在冒号和键值对中的值之间以及在列出的项目中的破折号之后也必须使用空白。

就是这样!

这是对 YAML 基本知识的五分钟概述。是的,YAML 确实有更多我们在动手 YAML 基础课程中谈到的特性,但是对于配置文件,这就是你真正需要的所有 YAML。

渴望了解锚点和制表符、块样式和流程?然后查看 YAML 要领 了解更多!

让我们得到#CloudyInJuly!

原文:https://acloudguru.com/blog/news/lets-get-cloudyinjuly

你一直想深入云端,看看到底发生了什么。但是家庭、工作、朋友、生活总会碍手碍脚。或者你只是不知道从哪里开始。我们完全明白。

我们希望让你更容易开始和探索云技术,所以我们为你创建了迷你每周跟踪,让你在 7 月份深入了解 AWS、Azure、GCP 和 DevOps!每天,我们都会安排一些简单的任务,完成这些任务大约需要 2 个小时或更短的时间。就是这样。一天只要 2 个小时!

第一周:潜入 AWS

第二周:潜入蔚蓝

第三周:潜入 GCP

第四周:潜入 DevOps

你可以只选择一种云,然后用一周的时间来学习,或者——如果你雄心勃勃的话——把这四周都作为云学习的终极样品!我们布置的任务实际上是面向绝对的初学者的,所以不需要以前的经验!

大多数任务都可以通过自由 ACG 计划来完成。然而,一些任务包括动手实验,这需要至少一个个人基本(付费)ACG 计划。如果你还不是 ACG 的会员,这将是一个探索这个平台的绝佳时机,可以免费试用 7 天

我们也很乐意在您每天工作的时候与您保持联系!通过标记我们 @acloudguru 和使用 #CloudyInJuly 让我们知道 Twitter 上的事情进展如何——并加入一个关于 Discord 的云专家社区中心!

第 1 周:深入 AWS

周一~ 70 分钟

只需尝试以下任务!

  • 通读亚马逊网络服务概述
  • 观看什么是亚马逊网络服务视频

两者都可以在这里找到

本周你会遇到很多新术语,有时要记住它们的意思会有点困难。我们有可以帮助你的东西!

Discord 上的社区中心是一个实时的家,您可以在这里提问、与朋友一起学习、赢取奖品以及在您的云之旅中寻找支持,所以请务必加入我们!

  • Discord 加入 ACG 社区中心

周二~ 60 分钟

  • 让我们开始为 AWS 新手学习一门很棒的课程。没有事先的经验是必要的!如果你没有付费的 ACG 计划,这个课程可以免费使用免费 ACG 计划(不需要 CC)!
  • 观看AWS 课程简介的第 1-5 章

周三~ 90 分钟

周四~ 95 分钟

我们在 ACG 都是为了实践学习,所以当然,我们建议通过我们的一些实践实验室工作!免费的 ACG 计划不提供这些动手实验室,但是我们提供了免费的 7 天试用!现在是报名的好时机!

周五~ 60 分钟

除了观看视频之外,交互式图表是巩固您对 AWS 概念的理解的一个很好的方式!让我们使用新的交互图来巩固一些非常重要的 AWS 概念。

我们的 AWS 认证云从业者课程是全新的,通过 ACG 免费计划,本月全部免费!

周六~ 60 分钟

认证是证明您了解 AWS 概念的好方法。是时候了解你可以获得哪些 AWS 认证了,看看你是否愿意通过进一步的 AWS 之旅来追求这些认证。

第二周:潜入蔚蓝

周日~ 115 分钟

让我们通过 Azure 课程介绍深入了解 Microsoft Azure!没有事先的经验是必要的!如果您没有付费的 ACG 计划来访问本课程,我们建议您利用我们提供的 7 天免费试用

周一~ 30 分钟

让我们通过快速阅读来回顾一下你在昨天的课程中学到了什么!另外,本周你会遇到一些新的术语,所以继续使用 Azure Cloud 痛苦字典吧!

星期二~ 30 分钟

在 ACG,我们喜欢鼓励使用独特的学习工具,这些工具会脱颖而出,有助于巩固你正在学习的概念。我们喜欢的独特工具之一是 Nitya Narasimhan 的 sketchnotes!

  • 通读这篇博客包含 Azure 基础知识的可视化介绍

Discord 上的社区中心是一个实时的家,您可以在这里提问、与朋友一起学习、赢取奖品以及在您的云之旅中寻找支持,所以请务必加入我们!

  • Discord 加入 ACG 社区中心

周三~ 70 分钟

无论您使用什么技术或云,您都必须将安全性放在首位。

周四~ 45 分钟

让我们动手吧,因为没有比边做边学更好的学习方法了!动手实验室确实需要付费的 ACG 计划,因此请点击此处查看我们的计划选项。

星期五~ 15 分钟

云的发展速度很快,因此及时了解新闻和更新非常重要。在 ACG,我们试图通过新闻节目/系列让云新闻变得简单易懂。要想了解 GCP 的最新动态,请查看我们的原创系列。

周六~ 30 分钟

你已经学了整整一周,现在是时候测试你的知识了!我们的许多课程包括章节测验和实践考试(非常类似于真正的认证考试)。

如果你没有通过这些测验,也不要担心!你只是看到你已经记住了多少信息,以及你应该深入了解哪些领域。这些测验来自我们更新的 AZ-900 证书预备课程!

第三周:潜入 GCP

周日~ 30 分钟

让我们从谷歌云平台的简单介绍开始 GCP 周吧!

  • 通读谷歌云平台概述
  • 观看什么是谷歌云平台视频

两者都链接这里

Discord 上的社区中心是一个实时的家,您可以在这里提问、与朋友一起学习、赢取奖品以及在您的云之旅中寻找支持,所以请务必加入我们!

  • Discord 加入 ACG 社区中心

周一~ 60 分钟

是时候通过一门课程为你的 GCP 知识打下基础了!该课程仅适用于 ACG 付费计划,但您可以享受 7 天免费试用!

周二~ 120 分钟

也许你学习经历中最具挑战性,但也是最有价值的部分就是动手实践!让我们完成一些动手实验。

周三~ 65 分钟

我们为 GCP 初学者准备了几门课程!这是下一个…

周四~ 20 分钟

云的发展速度很快,因此及时了解新闻和更新非常重要。在 ACG,我们试图通过新闻节目/系列让云新闻变得简单易懂。要了解 GCP 的最新动态,请观看我们的 GCP 本月系列。

周五~ 80 分钟

认证是证明你了解 GCP 概念的好方法。是时候了解一下你可以获得哪些 GCP 认证了,看看你是否想在 GCP 之旅中更进一步。

  • 阅读这篇博客了解有哪些顶级的支付云认证(GCP 证书名列榜首!)
  • 阅读这篇博客找出哪种 GCP 认证可能适合你

周六~ 60 分钟

本周你会遇到很多新的术语,但是我们有一些可以帮助你的东西,并且可以作为你一生的资源。

第四周:深入开发

周日~ 31 分钟

让我们通过完成一个小型课程直接进入 DevOps!通过 ACG 免费计划,该课程始终免费(查看本月还有哪些课程免费此处)!

Discord 上的社区中心是一个实时的家,您可以在这里提问、与朋友一起学习、赢取奖品以及在您的云之旅中寻找支持,所以请务必加入我们!

  • Discord 加入 ACG 社区中心

周一~ 35 分钟

是时候读点轻松的德文了!

周二~ 120 分钟

我们有几门初级 DevOps 课程,这两门课程都值得一读。重复是关键!该课程仅适用于 ACG 付费计划,但您可以享受 7 天免费试用!

周三~ 78 分钟

让我们完成昨天的课程吧!

周四~ 60 分钟

当然,我们必须在这里融入一些动手学习!您已经学习了 2 门课程,所以让我们完成这些课程附带的动手实验吧!动手实验室只有 ACG 付费计划才有,但是如果你还没有的话,你可以利用 7 天免费试用!

周五~ 60 分钟

每周,我们都会与 IT 行业的领导者和专家举办一些精彩的网络研讨会。我们最近有一个很棒的小组,揭开了新冠肺炎如何改变 DevOps 的帷幕!

  • 观看 COVID DevOps 发布后的点播网上研讨会(您必须填写表格才能接收点播网上研讨会)

周六~ 30 分钟

你已经学了整整一周,现在是时候测试你的知识了!我们的许多课程包括章节测验和实践考试(非常类似于真正的认证考试)。

如果你没有通过这些测验,也不要担心!你只是看到你已经记住了多少信息,以及你应该深入了解哪些领域。

接下来会发生什么?

在完成上述其中一个(或所有)课程后,独一无二的 Forrest Brazeal 会很乐意在 LinkedIn 上与你联系,并为你的新技能背书(AWS、Azure、GCP 或 DevOps)!

请务必在 Twitter 上与我们分享您的进展,为我们添加标签 @acloudguru 并使用#CloudyInJuly 或在 Discord 上的云专家社区中心与我们聊天!

现在是学习云计算的最佳时机,我们希望本课程能帮助您开始学习!

面向初学者的 Linux 命令:LS

原文:https://acloudguru.com/blog/engineering/linux-commands-for-beginners-ls

对于你们中的一些人来说,这是一个基本的命令,你几乎一直在使用,如果这是你,那么这个教程不适合你。但是如果你是 Linux 新手或者刚刚接触命令行,“ls”是一个你会非常熟悉的命令。在表层,ls 是一个简单的命令,如果在任何目录或命令行的任何地方键入,它所做的只是列出当前工作目录的内容。但是如果我离开它,我不会帮你任何忙。事实上,我将告诉你一些关于 ls 的提示和技巧,如果你幸运的话,我们甚至可以提供一个 grep 命令!

学习如何一步一步制作《我的世界》服务器

LS–不仅仅是看上去的样子

LS 列出了当前工作目录的内容。如果你有一个只有几个文件的目录,这很简单,如果你有一个有成百上千个文件的目录,这就很难使用了。不仅如此,默认情况下 Linux 隐藏了所有以点(.)因为 Linux 把这些解释为配置文件,只有超级用户,或者真正知道自己在做什么的用户才应该定期看到这些。简单地在命令行上使用 ls 命令实际上不会显示这些点文件,如果您是 Linux 初学者,这可能会令人沮丧。以为你完事了?也许我们还有一些你没有想到的其他用例。例如,如果您希望列出所有文件扩展名为.的文件,该怎么办呢?txt?或者您可能只想列出所有目录,而不是单个文件?如果您需要将标准输出结果输出到文本文件呢?或者您是否需要查看大小细节、所有权细节、修改日期、权限以及兆字节格式的大小?见鬼,我们甚至可以列出位于我们刚刚列出的文件内部的所有文件(递归)!!如果你感到惊讶,不要担心,我们只需要看例子。你的外卖?了解 ls 命令只会让您走得更远,阅读手册页会让您走得更远,而本教程会让您走得更远。它会教你关于 ls 命令的一切吗?不,事实是这就是为什么 Linux 如此深入和灵活。如果你认为你已经做到了或者知道了,任何事情都有更多的方法,甚至是最简单的命令。这就是为什么 Linux 是服务器的首选操作系统,而 UNIX/Linux 在 90%的智能手机上都能找到(iOS 是 UNIX,Android 是 Linux)。不要让它吓倒你——它只会让你变得更聪明。

示例和使用案例

  • 列出 Linux 目录中的所有文件,包括隐藏(点)文件和目录

[anthony@linuxacademy.com $]ls-a

  • 列出文件并显示权限、用户所有者、组所有者、上次修改/创建日期

[anthony@linuxacademy.com $]l ls-l-l 代表“长列表”,它将向您展示所有对 Linux 系统重要的关于 Linux 文件的细节。

  • 列出所有文件,以及目录中的所有文件(或者只是递归地列出文件夹

[anthony@linuxacademy.com $]l ls-R

  • 列出所有文件,按文件大小排序

[anthony@linuxacademy.com $]l ls-S

[anthony@linuxacademy.com $]l ls-d

  • 人类可读–以 MB 或 GB 为单位的大小

[anthony@linuxacademy.com $]ls-h

  • 按文件扩展名的字母顺序排序

[anthony@linuxacademy.com $]ls-X

现在让我们看看一些组合

  • 以“人类可读格式”详细列出“所有”文件。

[anthony@linuxacademy.com $]ls-alh

  • 列出“所有”文件并将内容输出到文本文件

[anthony@linuxacademy.com $]ls-a > contents . txt note:>将创建一个文本文件或覆盖现有文件>>如果文件存在,将追加到文件中,如果文件不存在,则创建文件。

  • 列出“所有”文件,但只显示那些以结尾的文件。文本文件(textfile)

[anthony@linuxacademy.com $]ls-a | grep *。文本文件(textfile)

还有更多,但从简单开始

看看 LS“man LS”的 man 文件,你会看到更多的选项。但是,冒着让您不知所措的风险,我刚刚创建了最常见的 LS 命令/标志的组合。这是给初学者的一个实用的使用指南,告诉我们如何经常使用 LS 命令。99%的情况下这将是你所需要的,如果你需要更多,那么你不是初学者,这个教程不适合你!Hands-On Linux Training

面向初学者的 Linux sudo 命令

原文:https://acloudguru.com/blog/engineering/linux-commands-for-beginners-sudo

Sudo,一个统治他们的命令。它代表“超级用户做!”发音像“苏面团”。

作为 Linux 系统管理员或高级用户,这是您的武器库中最重要的命令之一。你有没有试过在终端中运行一个命令却得到“拒绝访问”的回答。这是给你的命令!但是,权力越大,责任越大!运行 sudo 命令比作为 root 用户登录,或者使用 su 的“切换用户”命令要好得多。请继续阅读,看看 sudo 能为您做些什么!


加速您的职业发展

从 ACG 开始通过 AWS、Microsoft Azure、Google Cloud 等领域的课程和实际动手实验室改变你的职业生涯。

sudo 是干什么用的?


那么,sudo 是用来做什么的呢?如果在任何 Linux 命令前加上前缀“sudo ”,它将以提升的权限运行该命令。执行某些管理任务需要提升权限。有一天你可能希望运行 LAMP (Linu Apache MySQL PHP)服务器,并且必须手动编辑你的配置文件。您可能还需要重启或重置 Apache web 服务器或其他服务守护进程。您甚至需要提升特权来关闭或重启计算机。“嘿,谁把这东西关了?!"如果你熟悉 Windows,它与你试图做任何重要事情时弹出的 Windows 用户帐户控制对话框非常相似,只是不那么友好。

在 Windows 中,如果您尝试执行管理任务,会出现一个对话框询问您是否希望继续(“您真的确定要运行刚才单击的程序吗?”).然后执行任务。在 Mac 上,会弹出一个安全对话框,要求您输入密码并单击确定。在 Linux 中,这更像是一个戏剧性的故事。没有适当的权限,事情可能会表现得很奇怪。您正在编辑的重要配置文件可能无法正确保存。您安装的程序可能会拒绝运行。你下载的那个很棒的源代码需要编译。你甚至可能幸运地得到一个“拒绝访问”或另一个友好的错误信息。所有你最害怕的事情都变成了现实,但是你需要做的就是请求许可!这就是为什么我们要记住像这样提前请求超级用户权限:

如果我们不首先提升 sudo 的权限,看看这个截图会发生什么。首先,我们使用 reboot 命令尝试重启系统。该命令失败的原因是:“必须是超级用户”。然后我们尝试用 sudo 重启。Sudo 会询问您的用户密码。请注意,它要求您输入密码,而不是 root 密码。最后,我们看到广播消息,系统现在将重新启动。

sudo reboot

须藤就像说了一个神奇的词。它也可以被命名为 opensesame 或 abracadabra,甚至 bippityboppitybacon。

为什么 sudo 比替代品更好?

Sudo 是提升特权的最好也是最安全的方式。让我们来看看另一种做事方式。交换机用户命令“su”将要求您输入 root 密码,并给出一个超级用户提示,用#符号表示。那个#符号的意思是“危险!您以 ROOT 用户身份登录!”。你发出的第一个命令可能会很顺利。但是您的健忘会导致您以 root 用户身份登录。一个错误的打印然后砰!你删除了整个硬盘,而不是你下载的那个假 mp3。这只猫决定躺在你温暖的笔记本电脑上。噗!你的网络服务器和家庭业务都没了!

使用 sudo 命令,您必须在每个命令之前输入“sudo”。这意味着你不必记得切换回常规用户模式,事故会更少。

苏多斯文件

这份文件是须藤的阴暗面。它控制谁可以使用 sudo 命令获得提升的权限。它通常位于/etc/sudoers。编辑该文件的最佳和最安全的方法是使用 visudo 命令。该命令将以提升的权限启动 vi 编辑器,以便您可以编辑并保存文件。它还会在 sudoers 文件上加一个文件锁,这样其他人就不能编辑它了。

编辑完成后,它会分析文件中的简单错误。这是编辑 sudo 文件的一种更安全的方式,而不是仅仅使用任何旧的文本编辑器。该文件包含许多参数。您可以指定哪些组的哪些用户可以执行哪些命令。我们只是通过在底部添加以下内容来授予自己对 sudo 的访问权限:

现在,指定的用户名将能够使用所有 root 权限。您还可以允许用户或组只对特定的服务或服务器进行 sudo 访问,以代替 ALL 参数,但这是另一天的主题。

username   ALL=(ALL)       ALL //gives user "username" sudo access%wheel     ALL=(ALL)       ALL //Gives all users that belong to the wheel group sudo access

如何用 sudo 做更多事?

像任何好的命令一样,有一些漂亮的选项可以让 sudo 做得更多!sudo–b将在后台运行该命令。这对于运行时显示大量输出的命令非常有用。sudo–s将使用提升的权限运行指定的 shell,并给出#提示符(不要忘记退出!).并且*sudo su–*将使您成为根用户并加载您的自定义用户环境变量。

使用 Linux sudo 命令

当我们想要运行重要的命令时,Sudo 给了我们安全的特权。它可能是 Ubuntu 用户中使用最多、最强大的命令,因为它已经成为该发行版中的首选方法。现在你有了权力,在发布命令的时候一定要确保安全!没有 su-undo!

如果你准备好让你的学习更上一层楼,请查看我们的Linux 概述课程。

提升您的云计算职业生涯


无论您是云新手还是专家,云专家都能让您轻松(而且非常棒)地获得认证并掌握现代技术技能。查看我们当前的 免费云课程 或通过免费试用提升您的 云和 it 职业道路

其他 Linux 命令行资源:


Other Linux Command Line Resources:

2021 年的 Linux:回顾之年

原文:https://acloudguru.com/blog/engineering/linux-in-2021-the-year-in-review

在这篇文章中,我们回顾了 Linux 的这一年——通过对 Linux 历史的概述来庆祝 Linux 的 30 年和开源的辉煌。我们还将报道本月围绕 Linux 的重大新闻,包括红帽企业版 Linux 9 Beta 和 Linux 内核 5.14 EOL。

请继续阅读了解更多信息!


加速您的职业发展

从 ACG 开始通过 AWS、Microsoft Azure、Google Cloud 等领域的课程和实际动手实验室改变你的职业生涯。


Linux 历史:Linux 三十年

2021 年,Linux 岁了!芬兰计算机科学学生 Linus Torvalds 早在 1991 年就创造了 Linux。他开始做这个是作为一个爱好,因为他当时想为新的 386 处理器开发一个类似 Unix 的操作系统。

他甚至在他的原始邮件中提到这只是一个爱好,他没有计划让它成为像 GNU 一样的专业。嗯,惊喜吧…你做得很好,莱纳斯,我们非常高兴你接手了这个小项目!

我第一次接触 Linux 是在 1999 年的大学里。我参加了一个 Shell 脚本入门课程,Fedora 被安装在实验室服务器上,因为它是免费的且易于扩展。我对 Linux 充满热情,因为它改变了世界处理信息的方式,并且它通过允许我在一个社区中分享对增长的热情而改变了我个人的生活。

没有 Linux,我们就不会有技术与我们今天所知道的世界交织在一起。

它的创新精神和适应性与我们在这里所做的一切产生了共鸣,让 Linux 在我们心中占据了一个非常特殊的位置。为 Linux 的 30 多年干杯!

2021 年 Linux 更新和发布回顾

聚焦去年,2021 年对于一些主要的内核更新和新的发行版来说是重要的一年。

今年发布了内核版本 5.12 和 5.14——都有许多新的驱动程序和性能及支持改进。现在,它们都已寿终正寝,长期支持内核 5.15 已作为新的 LTS Linux 内核发布。

Ubuntu 今年发布了几个版本,包括版本 20.04 长期支持、20.10 和 21.04,它们基于内核 5.11,包括更好的硬件支持和 gnome shell 增强。

Ubuntu 21.10 于 8 月发布,它基于 5.13 linux 内核,为处理器和 GPU 增加了更多的硬件支持。尽管 5.13 在 9 月份停止使用,但 Ubuntu 21.10 将在 2022 年初得到支持,新的 22.04 长期支持版本也将在那个时间段发布。你可以在 ubuntu.com/about/release-cycle.找到 Ubuntu 发布的细节

Fedora 在四月份发布了带有全新标志的第 34 版!更新包括新的 gnome 40 桌面,它被重新设计以使交互更加直观。还包括默认情况下的 BTRFS 压缩,以减少写入放大并节省空间,以及对默认情况下启用的基于交换的操作和 systemd-oomd 的改进,这可以实现更好的内存不足处理,从而减少资源短缺。

Fedora 支持每个版本大约 13 个月,所以在下一个版本发布之前,您还有一些时间来测试这个新的 OS。你可以在 fedoraproject.org 下载。

Debian 在 4 月份发布了 project Bullseye,即 Debian 11。它基于 Linux 5.10 长期支持内核。更新包括超过 11294 个新包,总共超过 59551 个包。其他更新包括对不需要驱动程序的打印机和扫描仪的更多支持,ExFAT 文件系统支持,对本地系统帐户密码的更多加密,以及 systemd 日志中的更多细节。

下一个稳定的靶心版本,11.2,定于 2021 年 12 月 18 日发布。你可以在 release.debian.org 找到更多关于发布的信息。


查看本月免费的 ACG 课程了解云学习,包括如何获得 Linux 工作和 Linux 操作系统基础知识。创建一个免费账户,然后开始玩吧。不需要信用卡!


2021 年 12 月 Linux 新闻综述

Red Hat Enterprise Linux 9 Beta 现已正式发布

红帽企业版 Linux 版本 9 Beta 现已 GA。它基于上游内核版本 5.14,专为要求苛刻的混合多云部署而设计。支持的硬件架构包括 Intel/AMD64、ARM 64 位、IBM Power LE 和 IBM Z。

此版本更新了简化的自动化和管理,包括增强的 web 控制台性能指标,这使得检测性能瓶颈和向通用报告工具提供这些数据变得更加容易。现在可以通过 web 控制台使用实时内核修补功能,并且对映像构建器进行了一些改进,使您可以从单个构建节点构建 RHEL 8 和 9 映像。

安全性和合规性也有所改进,包括 web 控制台中的智能卡身份验证、附加的安全配置文件、SSSD 日志中的更多详细信息以更好地分析性能和配置问题、集成了 openssl 3 和新的安全加密算法以及 IMA 数字哈希和签名。它还包括一个更新,不允许用户通过 SSH 以 root 身份登录。

还有改进的容器开发,有更多的 UBI 容器映像,现在它与 cgroup2 和 Podman 一起发布。除了一长串的更新,用户在学习如何完成新的管理任务方面不会有太多的惊喜。

按照 Red Hat 的说法,如果你熟悉 RHEL8,你会有宾至如归的感觉。如果你想了解一下,可以注册一个免费的开发者账户,在redhat.com下载。

Linux 内核 5.14 是 EOL,5.15 发布

Linux 内核 5.14 即将寿终正寝LTS 内核 5.15 已经发布。

Linux 内核 5.14 于 8 月发布,具有大量新功能,包括更好的硬件支持以及更新的显卡驱动程序、秘密内存空间和核心调度,以帮助消除现代 CPU 漏洞。

5.15 现已发布,并被指定为长期支持内核。

更新的功能包括一个改进的 NTFS3 驱动程序,它为 NTFS 文件系统提供了更多的功能和更好的性能,使您可以像支持原生 Linux 文件系统一样支持 NTFS。为 AMD CPUs 添加了温度监控支持,并为梵高 APU 添加了新的音频驱动程序。

如果你以前没有听说过 APU,它代表加速处理单元,这基本上是一组充当 CPU 和图形处理单元的处理器,通常在游戏控制台上可以找到,所以如果你运行的是支持 Linux 的 Steam Deck 之类的东西,你会喜欢这个更新。
对英特尔 Alder Lake 处理器、英特尔独立显卡和苹果 M1 芯片支持进行了额外的更新,并对 EXT4 和 BTRFS 文件系统进行了改进和优化。鼓励用户在kernel.org下载最新的稳定内核 5.15.5。

今年到此为止!愿您的源代码保持开放,您的代码可以编译。继续牛逼吧,云大师们!

杰里米·摩根对本文也有贡献。


在 YouTube 上订阅一位云大师的每周云新闻,在脸书上喜欢我们,在推特上关注我们,在不和谐上加入对话。

Geohash 和 DynamoDB 用于基于位置的搜索结果

原文:https://acloudguru.com/blog/engineering/location-based-search-results-with-dynamodb-and-geohash

得益于 DynamoDB 和一个小型地理编码 NPM 包,搜索最近或最远的位置变得很容易。

现在,许多数据集都包含地理空间信息,尤其是当您使用移动应用程序或谷歌地图时。地理空间数据是描述包含纬度和经度的项目的一种奇特方式,但是处理基于最近的、最远的或在一定距离内的的查询有些复杂。

这有什么难的?假设您有 10 家零售店,一位客户想知道最近的位置。显而易见的方法是找到顾客的位置,然后计算该位置和每个商店之间的距离

有什么问题?

嗯,有两个问题——第一个是之前的计算假设两点在一个平面上,而世界不是平的(事实上,它不是平的)。你必须考虑我们居住的岩石的圆形,这就引出了哈弗辛公式

虽然第一个问题会导致计算错误,但第二个问题更成问题。随着零售店数量的增加,你的搜索速度会变慢——可怕的O(n)——因为你必须将用户的位置与每家店的进行对比。如果用户正在移动,因此原始位置会频繁更新,该怎么办?

如果你将问题扩大到“找到最近的咖啡店”,我们的第一个解决方案将要求我们将用户的位置与地球上的每一家咖啡店进行比较。因此,我们需要一个更好的方法来解决这个问题,最好是一个能够管理全球规模的方法。基本上,类似于谷歌地图的做法。

Geohash 的力量

Geohashes 有点复杂,但需要知道的关键是,它将世界划分为网格中的许多方块。通过这样做,我们可以预先消除大部分数据,只关注我们的潜在目标所在的方格。这是一个非常优雅的解决方案。

  • 哈希最长为 12 个字符,哈希越长,它引用的方块越小。
  • 哈希的第一个字符标识了网格中 32 个单元中的一个,大约是地球上 5000 公里 x 5000km 公里。
  • 第二个字符标识第一个单元格中 32 个方块中的一个,因此这两个字符的分辨率现在是 1250km x 1250km。
  • 这种情况一直持续到第十二个字符,它可以识别地球上只有几平方英寸的区域。

如果你使用的散列太长——换句话说,方块太小——你最终会搜索更多的方块来得到结果。如果你使用一个太短的 hash,你将会在方块中返回太多的条目,你的搜索将不会很快。因此,在选择散列长度之前,您需要知道搜索的分辨率。

这听起来可能很难,但比你想象的要容易。对于我们查找零售店和咖啡店的例子,没有必要有一个 2 英寸的地球网格。我们可以用 5-7 个字符解决 1-10 公里的搜索。

亚马逊 DynamoDB 的地理库

有一篇来自 2013 年的 AWS 博客文章详细介绍了 Geo 库,但它是一个需要服务器的特定于 Java 的解决方案。最近有一个 NPM 包将这项工作移植到 Node,可以在无服务器架构中使用。

为了验证这一点,我找到了美国所有星巴克门店的列表,然后发现了一个链接,在那里有人把这个链接从 T2 变成了 JSON。按照 NPM 包中的文档,我拼凑了这个脚本来配置 DynamoDB 表并加载数据。

让我给你介绍一下亮点。

首先,让我们创建一个表,该表旋转出一个新的 DynamoDB 表,该表具有使搜索工作所需的分区键和索引。

const ddbGeo = require('dynamodb-geo')

const config = new ddbGeo.GeoDataManagerConfiguration(ddb, 'yourTableName')
config.hashKeyLength = 5
const myGeoTableManager = new ddbGeo.GeoDataManager(config)
const setupTable = () => {

   const createTableInput = ddbGeo.GeoTableUtil.getCreateTableRequest(config)

  createTableInput.ProvisionedThroughput.ReadCapacityUnits = 5
  console.dir(createTableInput, { depth: null })
  ddb.createTable(createTableInput).promise()
    .then(function () { return ddb.waitFor('tableExists', { TableName: config.tableName }).promise() })
    .then(function () { console.log('Table created and ready!') })
}

接下来,我们加载数据:

const loadTable = () => {

  const data = require('../data/starbucks_us_locations')

  const putPointInputs = data.map(function (location) {
      return {
          RangeKeyValue: { S: uuid.v4() }
          GeoPoint: {
              latitude: location.position.lat,
              longitude: location.position.lng
          },
          PutItemInput: {
              Item: {
                name: { S: location.name }, 
                address: { S: location.address }
              }
          }
      }
  })

  const BATCH_SIZE = 25
  const WAIT_BETWEEN_BATCHES_MS = 1000       
  let currentBatch = 1

  function resumeWriting() {
    if (putPointInputs.length === 0) return Promise.resolve()
    const thisBatch = []
    for (let i = 0, itemToAdd = null; i < BATCH_SIZE && (itemToAdd = putPointInputs.shift()); i++) {
      thisBatch.push(itemToAdd)
    }
    console.log('Writing batch ' + (currentBatch++) + '/' + Math.ceil(data.length / BATCH_SIZE))

    return myGeoTableManager.batchWritePoints(thisBatch).promise()
      .then(function () {
        return new Promise(function (resolve) {
          setInterval(resolve,WAIT_BETWEEN_BATCHES_MS)
        })
      })
      .then(function () {
        return resumeWriting()
      })
  }
  return resumeWriting().catch(function (error) {
    console.warn(error)
  })
}

这将从 json 文件加载 Starbucks 位置,创建一个要插入到表中的项目数组,并以 25 个项目为一批上传到 DynamoDB。每批之间会有一个延迟,以减缓插入过程,并减少写入容量单元(wcu)的消耗。

上传后,您可以看到所有位置及其由库自动计算的地理哈希值和哈希键:

加载数据后,查询就很简单了——我们只需提供搜索位置的纬度和经度,以及搜索区域的半径:

const AWS = require('aws-sdk')
AWS.config.update({region: 'us-east-1'})

const ddb = new AWS.DynamoDB() 
const ddbGeo = require('dynamodb-geo')

const config = new ddbGeo.GeoDataManagerConfiguration(ddb, 'yourTableName')
config.hashKeyLength = 5

const myGeoTableManager = new ddbGeo.GeoDataManager(config)

myGeoTableManager.queryRadius({
  RadiusInMeter: 1000,
  CenterPoint: {
      latitude: 40.7769099,
      longitude: -73.9822532
  }
})
.then((locations) => console.log(locations))

我们来试试吧!

我构建了一个简单的前端,它使用星巴克数据列表来显示 1 公里内最近的星巴克——它默认为纽约市,因为这看起来像是他们商店最密集的位置。

如果您在地图周围单击,它会根据地图的新中心从 DynamoDB 获取列表:

总的来说,在这个解决方案中使用 DynamoDB 的优点是在负载下非常稳定的性能。借助 DynamoDB 现在可用的按需容量,它可以处理峰值流量,而无需您管理调配的吞吐量。


获得更好职业所需的技能。

掌握现代技术技能,获得认证,提升您的职业生涯。无论您是新手还是经验丰富的专业人士,您都可以通过实践来学习,并在 ACG 的帮助下推进您的云计算职业生涯。


请在下面的评论中告诉我你的想法!

为客户体验衡量您的云成功

原文:https://acloudguru.com/blog/business/measuring-cloud-success

在定义云迁移成功时,请务必记住,仅仅采用云并不是目标。企业采用云不仅仅是为了采用云。这是你为实现另一个目标而进行的变革之旅。

终极目标?终极指标?它不是要离开您的数据中心或放弃您的 MTTR(或者,它不应该这样)。

最终的衡量标准是客户价值

客户体验是云迁移成功的关键

以网飞为例。2008 年初,他们的数据中心已经不堪重负。2008 年初,当一个损坏的数据库使他们的整个 DVD 运营停止了三天(T1)时,必须做出一些事情,公司领导做出了迁移到公共云的重大决定。

回头看,这个决定很简单。“建造和运营数据中心不是我们业务的核心,”2011-2017 年云平台工程总监鲁斯兰·梅森博格说。“这不是我们的用户从中获得价值的东西。我们的用户从享受他们的娱乐中获得价值。我们决定专注于此,并将底层基础设施推给 AWS 这样的云提供商。”

对客户价值的关注也让网飞摆脱了简单的搬来搬去的方式。“最终,数据中心的所有问题和限制都会随之而来。”相反,网飞选择回归基本原则,采取“云原生方法,重建我们几乎所有的技术,从根本上改变我们运营公司的方式。”

网飞做了所有该做的事情,它的迁移花了七年时间,但是结果已经不言自明了。当他们完成云迁移时,客户数量是开始时的八倍,每月流媒体播放时间增加了 1000 倍。2016 年 1 月,网飞的云基础设施使他们能够同时将服务扩展到另外 130 个国家。

谈创造客户价值。


云技能如何为企业产生真正的回报?

查看云技能投资回报率报告,了解投资云技能的公司如何为员工创造更多收入。


多少,有多好,多少?

客户价值可能代表最终的成功标准,但在许多方面,它更像是一颗指路明灯。这是您的目标,但是您需要其他方法来规划路线和跟踪您的云采用之旅的进度。

我们可能会花上几天(或几周,或几个月……)的时间通过各种方法来衡量您的云工作,但将它们纳入三个关键支柱可以让您继续前进,而不会失去对客户价值最终目标的关注:有多少,有多好,有多少。

什么事?

您将多少工作负载或应用程序(您的多少业务)迁移到了云?

这有什么关系?

把私有数据中心想象成一个巨大的公司重力井。很难摆脱他们的吸引力,中等规模的项目很少能达到必要的逃逸速度。一些应用可能会脱离束缚,但它们更像是美国宇航局和其他太空机构发射的探测器。容易庆祝,有趣的欢呼,但基本上是孤立的。

在数据中心引力井中,企业受到硬件限制的约束。扩展意味着安装新的服务器,而扩展意味着一直维护它们。每一项新举措都需要资本支出,从而限制了你的创新能力或快速扩展能力。

将您的应用程序迁移到云中就是创建第二个独立的引力井。随着你移动越来越多的应用程序,云的引力变得越来越强。当云的引力超过数据中心的引力时,你就跨越了一个自然的临界点,从项目推到云到项目从数据中心拉出来。这是创新的飞轮真正启动的地方。

根据您的企业规模和数据中心占地面积,这一过程可能需要数年时间。网飞花了七年时间。在 2021 年关闭了最后一个数据中心的 Capital One 进行了为期八年的战略努力,成为第一家全面涉足公共云的美国银行。


我们的免费电子书 7 种常见的云采用错误 ,帮助您避免在企业云化时阻碍其发展的陷阱。


什么事?

您正在向云迁移的工作负载的架构如何?

这有什么关系?

成功采用云不仅仅是将所有的东西从数据中心拿出来扔进云中。这种提升和转移的方法只是把你已经在做的事情放到别的地方。这可能是一个有用的权宜之计,但它没有利用云的真正功能。

通过采用云实现真正的繁荣需要大量的重新思考和重新构建您的系统,以利用云的优势。AWS 架构良好的框架展示了五大支柱:

  • 卓越运营
  • 成本优化
  • 可靠性
  • 性能效率
  • 安全性

了解每个支柱如何工作,它们如何协同工作,并使用它们来优化您的云应用程序,这确实需要时间、培训和努力的前期投资,但它也将带来更成功、可持续和经济高效的云采用。

您可以通过测量与五个支柱相关的关键指标来跟踪您在实现架构良好的解决方案方面的进展,尤其关注法规遵从性、弹性和灵活性。您使用了多少个可用性区域?你的数据加密了吗?有多好?你的团队是否一直使用资源标签?这些和大量其他指标可以从 API 日志记录中提取出来,并且这个过程的大部分可以使用像云管理员这样的开源工具来自动化。


通过 AWS 社区英雄 Mark Nunnikhoven 的课程 掌握 AWS 良好架构的框架 ,了解构建安全、高效、支持云的应用的原则


什么事?

您在云上花费了(或没有花费)多少?您的工作负载的成本效益如何?

这有什么关系?

从数据中心到云的迁移不仅仅是改变应用程序的运行位置。这需要改变你的心态。除了运行在硬件系统上的软件之外,数据中心还需要大量的前期资本支出以及运行、维护和升级硬件系统的持续成本。

有了云,这一切都烟消云散了。您只需为您使用的东西付费。以 HBO 为例。当他们发布一集备受期待的《权力的游戏》(T0)或《T2 守望者》(T3)或《T4 西部世界》(T5)时,需求激增。 HBO 甚至将这种流量模式称为“墙”

在过去的几年里,“长城”让流媒体服务崩溃,让粉丝们心烦意乱。假设有可能的话,用传统的数据中心来支持这样的峰值需求将会非常昂贵。大部分时间,您的服务器机架都以 1-2%的利用率运行,只是等待吸收需求激增。相反,HBO 开始通过 AWS 部署其节目,使用 EC2 实例和自动缩放。当这开始面临压力时,他们转移到 Kubernetes 来更好地处理负载,同时提高利用率。

因此,优化您的云成本的诀窍是找出如何只使用您需要的东西,并相应地构建您的系统。这需要摆脱传统的数据中心思维模式,进入云思维状态,使用架构良好的框架和最佳实践作为指导。

如何如何……

有多少?有多好。多少钱。你可能会考虑一个更重要的措施。你将如何完成所有的“如何”工作?或者说,将完成所有“如何”完成的工作?

最终,云的采用不是一个技术挑战。这是一个人的挑战。如果你想成功,你必须从你的人开始。

这就是为什么威瑞森、Capital One、NAB 等公司在人才转型方面投入如此之多,从提供培训到组建学习小组、开放专门的学习时间以及评估认证。他们正在建立“谁”来完成“如何”完成。你也可以。


准备好开始你的变身了吗?

三分之二的组织表示,他们没有看到他们期望的云带来的好处。云专家可以帮助您的组织更快地实现云计算(及其优势)。ACG 企业版为您提供转变您的才能和业务所需的一切。

微软 Ignite 2022 综述:基础设施

原文:https://acloudguru.com/blog/engineering/microsoft-ignite-2022-roundup-infrastructure

微软 Ignite 又结束了一年!这一次的活动是面对面和虚拟会议的混合。让我们花点时间来探索微软今年发布的一些最大的 Azure 基础设施公告。

我们将从管理和监控改进开始,然后深入到网络,最后总结一些节省 Azure 计算和许可成本的新方法。


通往更好职业的钥匙

立即开始 ACG 通过 AWS、Microsoft Azure、Google Cloud 等领域的课程和实际动手实验室来改变你的职业生涯。


管理和监控变得更加简单

Azure 自动管理

平台即服务(PaaS)和软件即服务(SaaS)产品的巨大优势在于,微软会为您承担更多底层基础设施的管理工作。

但是,有了这种易于管理的特性,您就失去了通过完全管理底层基础设施(包括操作系统)而获得的一些灵活性。

因此,直到最近,您还必须在更简单的管理和更大的灵活性之间做出选择。现在情况不再是这样了。借助 Azure Automanage ,您可以获得基础设施即服务(IaaS)虚拟机的所有灵活性,以及 PaaS 和 SaaS 带来的大量管理细节。

借助 Azure Automanage,您可以自动监控、备份和保护您的虚拟机。Azure Automanage 现已正式推出,并附带了一些值得注意的新功能,包括:

  • 支持 Windows 10 虚拟机
  • 支持微软反恶意软件
  • 能够指定自定义日志分析工作区和备份设置

Azure Automanage 的伟大之处在于,它可以跨您的 Azure 虚拟机以及 Azure 之外的虚拟机工作,包括本地服务器。

天蓝色电弧

说到本地服务器,微软还对 Azure Arc 支持的私有云进行了改进,允许您在 preview 中创建、启动和停止 VMware vSphere 和 Azure Stack HCI 上的虚拟机。预览版中还增加了对 System Center Virtual Machine Manager(scv mm)的支持,包括虚拟机启动、停止和删除。

期待微软继续投资 Azure Arc。我的预测是,我们将看到 Azure 成为管理混合云的一站式商店。

Azure 监视器

对于那些已经使用了 Azure Monitor 和相关日志分析工作区一段时间的人来说,你会知道它已经处于这个过渡阶段,你必须使用旧的日志分析代理或 Azure Monitor 代理。对于某些场景,您需要部署 Azure Monitor 代理(例如 Sentinel),而对于其他场景,您需要日志分析代理(例如更新管理)。

微软一直忙于将所有现有功能迁移到 Azure Monitor 代理,现在,他们提供了一个代理迁移工具,该工具将帮助指导和自动从旧的日志分析代理迁移到新的 Azure Monitor 代理。因此,当时机成熟时,您可以更轻松地进行迁移。只要确保你在 2024 年 8 月之前转移,那时旧代理将退休。

Windows 管理中心

最后总结一下管理和监控新闻,从 Azure 门户访问的 Windows 管理中心现在已经普遍可用。

如果您不熟悉此功能,Windows 管理中心允许您直接从 Azure 门户网站轻松管理 Azure 虚拟机的 Windows 操作系统。这包括关键的 Windows 服务器功能,如 Active Directory 域服务和存储副本等。

整理网络的松散部分

Azure 域名系统(DNS)专用解析器

微软也一直在忙于解决网络前沿的一些零星问题。混合 DNS 解析一直很棘手,尤其是当您混合本地 DNS 服务器和 Azure 私有 DNS 区域时。

以前,如果您希望本地服务器解析 Azure 私有 DNS 区域中的 DNS 资源记录,您需要在 Azure 中部署自己的自定义 DNS 服务器。这是因为只有链接到 Azure 专用 DNS 区域的虚拟网络中的虚拟机才能解析该区域中的资源记录。现在普遍可用的 Azure 域名系统(DNS)私有解析器消除了这一要求。您可以简单地部署私有解析器,而不是部署您自己的定制 DNS 服务器虚拟机。如果你在想,“条件转发怎么样,我仍然需要虚拟机来实现它,不是吗?“不,私有解析器也支持这个。

Azure 专用链接

微软还清理了一些围绕私有端点的遗留问题,私有端点是支持 Azure Private Link 的网络接口。

现在,您可以为您的私有端点使用静态 IP 地址,使您能够在部署时使用保留的 IP 地址,而不是随机的 IP 地址。当您必须处理像 DNS 缓存或安全规则这样的问题时,这很有用。很高兴有。

如果你像我一样,是一个坚持良好命名惯例的人,那么当你创建私有端点时,你总是得到相当随机的名字,这可能会困扰你。我的意思是,我和其他人一样喜欢全球唯一标识符(GUID ),但也许我更喜欢将我的私有端点网络接口命名为 T1。现在你可以了。继续并适当地命名您的网络接口。

Azure 分布式拒绝服务(DDoS)保护

你知道拥有公共服务的每个人都应该使用的功能,但是因为太贵而没有使用?是的,我指的是 Azure DDoS 保护。

嗯,微软打算解决这个问题,通过推出一个新的 SKU,让各种规模的公司都能获得 DDoS 保护。

你仍然可以免费获得 Azure DDoS 基础设施保护,但如果你想要更高级别的保护,你可以在 DDoS IP 保护(目前在预览版中)和 DDoS 网络保护之间进行选择。DDoS 网络保护是 DDoS 保护标准的延续,有了新的名称。

新的 DDoS IP 保护 SKU 允许您以相同的保护级别保护单个公共 IP 地址,而无需如此大的前期成本。您确实错过了一些附加功能,如成本保护和快速响应支持,但对于各种规模的企业来说,最终能够获得关键工作负载所需的保护级别是件好事。

到处储蓄

随着全球经济给 IT 预算带来压力,很高兴知道微软正在 Azure 和混合云上实现进一步的节省灵活性。

Azure 计算节省计划

许多公司一年 365 天,一天 24 小时运行一套标准的计算资源。这些计算资源可能对您的业务至关重要,但由于您的业务性质,它们可能也需要具有灵活性。

例如,您可能有一个 Web 服务器虚拟机,它当前托管着您公司所依赖的一个网站,您计划在未来几年内将它转移到应用服务或容器实例。您决定不购买保留的实例来支付该虚拟机的成本,因为您知道它不会成为一个虚拟机很久。

现在,借助 Azure 计算节省计划,您可以预先确定您计划用于一系列计算服务(如虚拟机、容器实例、Azure 应用服务、专用主机或高级功能)的固定金额,并在这些服务之间转移工作负载,同时仍然实现高达 65%的节省。

您还可以将 Azure savings plan for compute 与保留实例或 Azure Hybrid Use Benefit 相结合,以进一步节省微软软件和操作系统的成本。当应用多个折扣时,会自动应用较大的折扣。

混合使用效益

说到混合计算,微软已经将混合使用优势扩展到两个新的场景。

如果您拥有 Windows Server 软件保障,您现在可以在 Windows Server 或 Azure Stack HCI 上运行 Azure Kubernetes 服务,无需额外费用。

该扩展还包括 Windows Server Datacenter 软件保障许可证持有者无需额外费用即可使用 Azure Stack HCI 的能力。这实质上意味着,无论您是在内部还是在 Azure 中进行现代化,您都可以使用虚拟机和容器以及 Azure 管理功能来实现工作负载的现代化,从而充分利用您的投资。


why should i get azure

想了解更多关于 Azure 认证的信息?
查看我们的 Azure 认证和学习路径。


跟上所有蓝色的事物

这是我对微软 Ignite 的总结,一如既往地有更多内容要介绍,请查看本周发布的其他一些新闻的更多细节,并查看微软 Ignite 新闻手册以获得所有微软软件和服务的全面发布列表。

想了解更多关于云和 Azure 的信息,或者想在 2022 年开始你的云计算生涯?查看我们每月更新的免费课程的轮换阵容。(不需要信用卡!)

微软在云竞争对手领导层改组中击败 AWS 高管

原文:https://acloudguru.com/blog/engineering/microsoft-nabs-aws-exec-in-cloud-rivals-leadership-shakeup

据报道,微软已经聘请长期担任亚马逊网络服务(AWS)云领袖的查理·贝尔担任公司副总裁,此举被 T2 称之为微软的“胜利”。华尔街日报指出,这标志着“云计算行业主要竞争对手之间高管的罕见跳槽”

作为 AWS 的长期领导者,贝尔在该公司工作了 20 多年,他曾是 AWS 的高级副总裁,在那里他帮助该公司发展了 S3 和 T2 的产品。贝尔之前也曾在 T4 甲骨文公司工作过。(这里肯定有一个多云笑话。)

据知情人报道,亚马逊的消息来源指出贝尔的离职是“公司最高层人才流失”的一个例子

本月早些时候,在安迪·杰西从 AWS 首席执行官跳槽到亚马逊首席执行官之后,贝尔突然离职的消息被爆出。(贝尔被认为是亚当·塞利普斯基(Adam Selipsky)获得 AWS 首席执行官职位的热门人选。)


State of Cloud '21

状态 云 2021 网络研讨会 没有人能预测未来,但我们还是请了一组非常聪明的云专家来试试。我们生动活泼、未经过滤的小组参与了本次 fr ee 点播网上研讨会的下一个环节。


贝尔的 LinkedIn 个人资料还没有更新,但现在我们知道他可能在过去几周有点忙*。*

亚马逊对离职去竞争对手公司工作的员工提起诉讼也不是完全没有听说过。美国消费者新闻与商业频道指出。亚马逊、微软和贝尔尚未对这一举措发表任何官方评论。

第二大且正在崛起的公共云提供商微软 Azure 长期以来一直着眼于取代亚马逊成为市场领导者。

以下是 Twitter 上一些最糊涂的人对这条新闻的看法:

这个消息是不是意味着你要赶紧去学微软 Azure?嗯,可能不应该是唯一的因素。但是既然你提到了,我们确实有一些相当棒的资源来帮助你或你的组织提升那些 Azure 技能——或 AWS 技能

查看我们当前的免费云课程今天就开始免费试用


改变职业,改变企业

学得更快。动作快点。利用我们的课程和真正的技术以及 AWS、Microsoft Azure、Google Cloud 等领域的 IT 实践实验室转变您的团队。

Azure 认证有效性:续订和到期

原文:https://acloudguru.com/blog/engineering/microsoft-rolls-out-big-certification-renewal-expiration-changes-for-2021

2021 年为微软处理认证过期和续订的方式带来了一些彻底的(和受欢迎的)变化。

从 2021 年开始,新的微软基于角色和专业认证(包括基础水平以外的所有 Azure 相关认证)将在一年后到期。以前,证书有效期为两年。但是——好消息来了——证书现在可以在网上免费更新。要保持您的证书有效,只需在证书到期后的六个月内进行免费续订。你可以永远这样做一年。让我们打开包装。


让我们开始你的蔚蓝之旅

希望获得 Azure 认证或提升您的云计算职业生涯?通过与 ACG 一起做来学习受欢迎的 Azure 技能。


2021 微软 Azure 认证变化一览

  • 以前,微软基于角色的认证和专业认证会在两年后过期。然后,您必须重新参加考试才能获得重新认证。
  • 从 2021 年 6 月开始,认证有效期为一年,但可以免费在线更新。
  • 续订窗口在证书过期前六个月开始。在证书到期前的这段时间内,您可以参加免费的在线评估。
  • 无论您何时在六个月的更新窗口内更新您的认证,证书的有效期都将从其初始到期日起延长一年。(例如,如果您在 2021 年 6 月获得了证书,并在 2021 年 12 月通过了免费续订评估(在续订窗口的最开始),那么您的证书现在将一直有效到 2023 年 6 月。
  • 在 2021 年 6 月之前获得的认证将在两年内有效,并有资格参加新的更新流程。

想要跟上 Azure 的所有事物?看看我们本周的系列蔚蓝


Azure 认证续订和到期常见问题解答

  • Microsoft Azure 认证何时到期?
    • 从 2021 年 6 月开始,基于角色的证书和专业证书将在一年后到期,而不是两年。2021 年 6 月前获得的证书自获得之日起两年内有效。
  • Azure 认证何时可以续订?
    • 这些证书最早可以在到期前六个月(免费)更新。如果您继续进行续订,则无需再次支付费用或通过原始考试。
  • 如何续订我的 Azure 认证?
    • 要更新认证,请访问微软认证仪表板。当您有资格续订时,您还会收到多封电子邮件。
  • Azure 认证续订流程是如何工作的?
    • 当您续订证书时,它会将您证书的初始到期日期延长一年。例如:如果今天是您的证书到期前的六个月,您可以续订您的证书,并在 18 个月后获得新的证书到期日。
  • 如果我没有通过 Azure 续订评估会怎么样?
    • 您可以根据需要多次重新参加评估以通过考试。你只需要在你的证书过期前通过它。
  • 如果我的 Azure 认证过期会怎么样?
    • 基本上,你回到了 2020 年左右的生活,这是一个有点令人沮丧的原因。如果你的证书过期了,你必须用(相对)老的方法重新获得证书:通过相关的考试。
  • 我还有其他问题。
    • 这不是问题。但是请继续阅读下面的内容,或者浏览微软网站了解更多细节。

微软免费年度认证续订

微软宣布将开始提供免费的认证更新。这意味着您无需再次参加认证考试。。。只要你继续保持你的更新。

如果您的有效证书将在六个月内到期,您可以通过 Microsoft Learn 上的续订评估将该证书续订一年。续约流程于 2021 年 2 月和 3 月开始推出。

以下是来自微软的详细信息:

“续订评估可以在您认证到期前的六个月内,利用您自己的时间在线完成,而不必重新参加预定的考试。在您通过更新评估后,您的认证将从当前到期日起延长一年;这可以每年进行一次。”

等等。每年都要考?

是的,但是它没有听起来那么糟糕。你现在不需要每两年参加一次全面的考试,而是先学习几个微软学习模块,然后再参加考试。这不是一个完整的考试,而是认证课程子集上的大约 25 个问题。

例如,当常驻 Azure 的杰出极客 Lars Klint 再次获得 AZ-204(AZ-204,Azure 开发者 T3)的认证时,他报告了关于三个领域的 25 个问题:Cosmos DB、持久功能和逻辑应用。拉尔斯发现这些问题并不容易,但是没有人在监视你,而且没有时间限制。如果你失败了,你可以每 24 小时再考一次,直到你的认证日期达到一年。

主要的云提供商现在都提供在线认证考试,但是通过快速、免费的更新选项来进一步简化方法,对于之前已经证明了其 Azure 实力的证书持有者来说应该是一个受欢迎的变化。(在你应该追求 Azure 认证的理由列表中添加另一点。)

Azure 证书一年后到期

上述变化伴随着将证书有效期从两年削减到一年的举措。这一变化适用于基于角色和专业的证书,这基本上意味着除了之外的所有 Azure cloud 证书以及三个基础级别证书(等等)。新的一年期满协议从 2021 年 6 月后所有新获得的认证开始。


Which Microsoft azure certification is right for me?

Not sure which Azure certification is right for you? Plot your Azure certification path with this handy-dandy blog post.


为什么改为认证更新?

微软表示,这些变化与云技术变化的速度相一致,并补充道:“……每年更新认证可以验证在市场上履行工作角色的技能和能力。”

该公司认为,这一变化将更好地确保证书持有者跟上云技术的最新发展,同时“减少保持认证活动的压力、复杂性和成本。”

这适用于哪些认证?

这些变化适用于基于角色的认证和专业认证。(如果你有 Azure 相关的证书,考试以“AZ”开头,这就是你。*)这一大批证书包括与 Azure 相关的基于角色的认证——从 Azure 管理员助理Azure 解决方案架构师专家——以及专业认证: Azure 物联网开发者专业和 Azure for SAP 工作负载专业。

*注意,Azure 基础级认证不包括在内。那些不会过期。(所以,对于那些追求入门级别认证的人来说,就不用担心了,比如广受欢迎的 AZ-900 Azure 基础知识认证。)

How is this man playing with LEGO going to teach you Azure skills? Get started with ACG for free and find out!


准备好提升你的 Azure 技能了吗?

这是学习微软 Azure 技能的最佳时机。查看我们的免费云课程,每个月都会增加新的课程!

微软推出 VPN 网关 NAT,Azure 应用程序网关更新

原文:https://acloudguru.com/blog/engineering/microsoft-rolls-out-vpn-gateway-nat-azure-application-gateway-update

当一些人关注另一个云会议的时候, Azure 本周发生了什么?我很高兴你问了!我们得到了 VPN 网关的改进,一些应用程序网关的更新,以及新的 Azure 功能特性。让我们开始吧!


加速您的职业发展

从 ACG 开始通过 AWS、Microsoft Azure、Google Cloud 等领域的课程和实际动手实验室改变你的职业生涯。


GA 中的 VPN 网关 NAT

当您的公司建立本地网络时,它具有本地 IP 范围,例如从 10.1.1.1 或 192.168.1.1 开始。当其中两个网络需要通过 VPN 通信,并且定义了重叠的 IP 地址时,就有问题了。(你不希望你的办公室打印机突然与你的新 Pixel 6 Pro 共享一个 IP 地址。)

Azure VPN Gateway 有一项新服务可以提供帮助: VPN Gateway NAT

网络地址转换(或 NAT)功能旨在解决这种情况。这是指在互联网上或通过专用广域网使用 VPN 连接专用网络。网关设备上的 NAT 根据 NAT 策略或规则转换源和/或目的 IP 地址,以避免地址冲突。

这是朝着更健壮、更通用的混合环境迈出的又一步。干得好,蔚蓝。

想要了解更多关于云开发的信息(有或没有特定的网络元素)?查看 ACG 的免费计划。不需要信用卡!


应用程序网关上的通配符监听器


Azure 应用程序网关是一个第 7 层路由服务,用于 web 应用程序的传入流量。(第 7 层是指 HTTP 层,而不是 7 层 dip。)

在其他特性中,您可以基于 URL 路径(如/images 或/customer)将流量路由到多个后端 web 应用程序。这是一种优化 Azure 基础设施中面向单一客户的站点的优雅方式。

其中一个障碍是,您必须完全限定您想要路由的所有路径,这有点死板,有时很难管理。

不过从本周开始,Azure 应用网关支持使用通配符,如星号(*)和问号(?)用于多站点 HTTP(S)侦听器上的主机名。这将使服务在更多的场景中更具可配置性!

AWS 中的 Azure 用户?


当热爱 Azure 的 Lars 前往黑暗面并尝试 AWS 任务时会发生什么?我们挑战 Lars 在他不知道的云平台上走过(或绊倒)一个他从未见过的场景。

应用服务和 Azure 功能中的自定义 OpenID 提供程序


最后,对应用服务和 Azure 功能的一个小而重要的更新。

为这两个服务提供的定制 OpenID 现在已经全面上市。

OpenID 是什么?这是一个开放的标准和分散的认证协议,作为一种标准化的用户认证方式,例如当你使用你的脸书账户登录活动网站购买油脂复兴之旅的门票时。

好吧,现在您可以使用定制的 OpenID 提供者了——如果您碰巧有自己的提供者的话。我不会深入讨论你如何向一个定制的 OpenID 提供者注册你的应用,但是 Azure 会在这里的文档中介绍。哦,我有没有提到它也适用于 Azure 函数?

查看新的 AZ-500 课程

本周的新闻到此结束。我确实想提一下本周在 ACG 平台上推出的全新的 AZ-500 微软 Azure 安全技术课程。令人难以置信的 Azure 安全向导李中清是该课程背后的大师。

嗯,正如我们在云专家团队中所说的,当你意识到已经是 12 月了,你还没有衣服穿的时候已经太晚了,但是请记住,帽子预算很早就获得了批准:“寻找,你就应该云!”继续牛逼吧,云大师们!

想跟上万物云? 在 YouTube 上订阅一位云专家 的每周微软 Azure 新闻(以及其他云提供商的新闻)。你也可以像我们一样关注**,关注我们的* 推特 ,或者加入 不和谐 的对话。*


微软简化物联网,更新 Azure 站点恢复

原文:https://acloudguru.com/blog/engineering/microsoft-simplifies-iot-updates-azure-site-recovery

我调查了 100 个人,看看他们在 2022 年最想要什么,前两个答案是更多的物联网入门资源和更多的数据备份方法。随后是疫情和世界和平的结束。不幸的是,我们不会解决最后两个,但你最好相信我们会把前两个赶出公园。

现在,让我们来谈谈物联网、数据备份以及本周 Azure 的所有新内容


通往更好职业的钥匙

立即开始 ACG 通过 AWS、Microsoft Azure、Google Cloud 等领域的课程和实际动手实验室来改变你的职业生涯。


物联网中心的开发者资源

微软在物联网中心的整体开发体验方面做出了巨大努力。

首先,微软推出了一个新的 GitHub 资源库编目资源,可以帮助你开始使用物联网中央解决方案。这个存储库可以作为您的书签,用于访问各种语言的代码示例、架构指南、利用 IoT Central APIs 的示例应用程序以及 Azure IoT CLI 扩展等有用的实用程序。

除此之外,微软还在其物联网中心文档中提供了额外的资源,以帮助人们认识周围的路。如果您有一个联网设备解决方案,这些资源应该会让您更容易上手。

Azure 站点恢复更新

接下来,您还记得那次您离开一个运行良好的数据中心前往塔希提岛进行为期一周的度假,回来后却发现勒索软件已经有效地删除了您精心策划的猫视频集吗?我们每个人在某个时候都会遇到这种情况。

谢天谢地, Azure Site Recovery 现在能够为您解决这个问题,因为他们已经将您可以保留恢复点的时间从 72 小时延长到 15 天。这意味着你可以在沙滩上多喝几杯,而不用担心你的恢复点会消失在地平线之外。

此外, Azure Site Recovery 的最近更新包括许多额外的好处,包括额外的复制选项、扩展的 Linux 支持,以及在复制 Azure 虚拟机时利用区域冗余存储磁盘的能力。如果您在组织的灾难恢复计划中扮演着关键角色,您将需要查看这些新功能,以了解如何利用它们。

AKS 集群持久卷备份

最后,我有一些好消息和一些坏消息。

好消息是,微软正在通过 AKS 持久卷备份使在 Azure Kubernetes 服务工作负载中利用持久卷变得更加容易。利用这一新的 AKS 功能,您可以备份和恢复存储在永久卷中的应用程序数据。

你可能会说,“这真是个好消息!这怎么会有不好的一面呢?”

好吧,坏消息是它只能在私人预览中使用,你必须注册才能使用。然而,我不希望过不了多久,它就会出现在公众预览版上,每个人都可以试用。

跟上所有蓝色的事物

无论你对 2022 年有什么希望和梦想,我希望这些 Azure 更新能让你更近一步。想要了解 Azure 的所有信息吗?在 YouTube 上订阅一位云专家的每周微软 Azure 新闻(以及其他云提供商的新闻)。你也可以在脸书上喜欢我们,在推特上关注我们,或者在不和谐上加入对话!

我们下周见。继续牛逼吧,云大师们!

Whatever your hopes and dreams are for 2022, I hope that these Azure updates get you a step closer. Want to keep up with all things Azure? Subscribe to A Cloud Guru on YouTube for weekly Microsoft Azure news (plus news from those other cloud providers too). You can also like us on Facebook, follow us on Twitter, or join the conversation on Discord!

We’ll see you next week. Keep being awesome, cloud gurus!

微软推出新的混合管理员认证

原文:https://acloudguru.com/blog/engineering/microsoft-unveils-new-hybrid-admin-cert-linux-vulnerability-requires-manual-patch

这一周微软 Azure 的世界在发生什么?在这篇文章中,我有新的认证考试的消息,一个严重的 Linux 漏洞,以及对 Windows Server Hybrid Administrator Associate(AZ-800 和 AZ-801)背后的人的采访。

它是甜的、酸的和热的东西。是啊,这个类比完全有效。。。不管怎样,本周让我们一起来挖掘一下Azure


准备好提升你的 Azure 技能了吗?立即从 ACG 开始,通过 Microsoft Azure、AWS Google Cloud 等课程和实际动手实验室改变您的职业生涯。开始免费试用


介绍 Windows Server 混合管理员助理认证

在过去的几年里,Azure 中的认证一直专注于 Azure 中现有的服务,例如 AZ-900 Azure 基础AZ-104 Azure 管理员AZ-204 Azure 开发者

虽然这适合已经在云中的学生和专业人员,但是对于仍在使用内部基础架构并将云视为附加产品的许多许多 IT 专业人员来说,情况又如何呢?

最近,AZ-600 考试通过涵盖 Azure Stack Hub 混合云产品解决了这一领域的部分问题,本周,有一个新认证为您提供:Windows Server Hybrid 管理员助理认证。

不过,我没有告诉你所有的事情,而是直接去找了微软首席云运营倡导者奥林·托马斯(Orin Thomas),听听他对这个问题的看法。观看下面的采访或继续阅读精彩内容!

Windows Server 混合管理员助理认证 Q & A

下面的回答是我们采访奥林·托马斯时经过编辑的回答。点击查看整个聊天记录。

新的认证是什么?

微软最近宣布了 Windows Server 混合管理员助理认证。要获得该认证,您需要通过两项考试:AZ-800(管理 Windows Server 混合核心基础架构)和 AZ-801(配置 Windows Server 混合高级服务)。

什么时候可以获得认证?

AZ-800 和 AZ-801 考试尚未推出,但预计将于 2021 年 12 月进入测试阶段。

(编者注:虽然你还不能参加考试,但如果你想成为你所在街区第一个获得该证书的孩子,微软目前正在这里提供学习指南。)

AZ-800 和 AZ-801 这两个新考试是什么?

这些考试是为实施混合技术的人员提供的认证。这是为那些负责管理非常传统的微软内部网络类型的人设计的,但他们开始接触云,并开始将他们现有的内部网络与适当的云服务集成,如 Azure Arc、Azure Backup、Azure Site Recovery 等。

为什么这个认证有两个考试而不是一个?

这里有两个考试,因为作为本地 Windows Server 管理员或 Windows Server hybrid 管理员的人实际上要处理各种各样的技术。

在第一次考试中,我们从核心开始:身份、存储、管理、网络和计算。我们正在看的是你的肉和土豆——在你开始进入更复杂的话题之前,你绝对需要知道的所有事情。

在第二次考试中,我们将关注安全性、高可用性、备份和恢复、故障排除、监控,然后将内部工作负载迁移到 Azure。所以第二次考试的想法是,一旦你记下了那些基础或核心话题,这些就是你会触及的话题。

这个认证是给谁的?

该认证面向日常使用 Windows Server、开始使用、已经使用或有兴趣使用微软云技术的人员。


想了解更多关于这个和其他多云的好天气吗?查看 ACG 的免费计划,获得免费课程和测验的轮换阵容,以及学习路径和原创系列内容。你甚至不需要信用卡来注册。见本月免费课程


Azure Linux 管理员手动修补 OMIGOD 错误

你或者你爱的人在 Azure 上使用 Linux 吗?你很可能会这样做,因为 Azure 上超过 50%的虚拟机运行的是 Linux。好了,现在注意了!

在超过一半的 Azure 实例上静默安装的开放管理基础设施(OMI)软件代理中发现了四个安全缺陷(允许远程代码执行和权限提升)。是啊,悄悄的,就像你不知道发生了什么。

OMI god——这是 cool kids 给出的漏洞名称——影响使用 Linux 管理解决方案的 Azure 虚拟机,这些解决方案具有 Azure Automation、Azure Automatic Update、Azure Operations Management Suite(OMS)、Azure Log Analytics、Azure Configuration Management 或 Azure Diagnostics 等服务。

成功利用该漏洞可让攻击者提升权限并在受损的 Linux 虚拟机上远程执行代码。已经有关于该漏洞被用于的报告。。。有什么猜测吗?是的,当然是加密采矿。

然而,微软没有任何机制可以自动更新所有受影响的 Azure Linux 机器上的易受攻击代理,所以他们紧急要求每个人手动更新他们的虚拟机。包括你!是的,快!去给 Linux 虚拟机打补丁。详情此处


Complete guide to the Cloud and Dictionary

得到蔚蓝云痛苦辞典
说云不一定要辛苦。我们分析了数以百万计的回复,找出了最容易让人犯错的概念。抓住这个云指南获取 Azure 中一些最痛苦术语的简洁定义。


这星期就这些了!

如何看待新认证或 Linux 漏洞?不要只是对着你的设备大喊大叫!前往ACG 不和服务器大喊。。。呃,我是说,加入谈话。

正如我们在云专家团队中所说的,当又有一个 Azure 认证时,我们才刚刚理解了最后一个认证:“寻求,你将云。”下周见,继续努力吧,云大师们。

想跟上万物云?在 YouTube 上订阅一位云专家的每周微软 Azure 新闻(以及其他云提供商的新闻)。您也可以在脸书上喜欢我们,在 Twitter 上关注我们,或者在 Discord 上加入对话!

将数据从 MongoDB 迁移到 DocumentDB 的 5 个技巧

原文:https://acloudguru.com/blog/engineering/migrating-data-mongodb-documentdb

试图将数据从您现有的 MongoDB 实例迁移到一个 Amazon DocumentDB 集群中?这可能是一个非常复杂的过程,但不需要如此。在本帖中,我们分享了如何简化这一过程,并减少对现有生产应用程序的影响的五个技巧。

1。确定你的消息来源

在开始任何迁移之前,收集关于将要迁移到 Amazon DocumentDB 集群的信息源的信息是很重要的。

确保对关于源代码的特定信息进行编目,比如应用程序所有者和 MongoDB 的版本。如果您有适用于该应用程序的服务级别协议(SLA ),也要捕获它。

掌握所有这些信息将确保您为迁移的后续步骤做好准备。

2。使用 VPN 或 AWS 直接连接

在最简单的情况下,MongoDB 服务使用与 DocumentDB 集群相同的虚拟私有云 (VPC)运行。如果不是这样,您需要使用虚拟专用网络(VPN)或 AWS Direct Connect 服务将数据从您的内部 MongoDB 集群迁移到 Amazon DocumentDB 集群。

由于这种限制,在识别源时注意源数据库的位置是很重要的。确保包括访问源所需的任何凭证。

3。使用 mongodump 和 mongorestore 进行简单的迁移

使用 mongodumpmongorestore 工具可以完成较小集合的简单迁移。这些工具使用二进制格式,在保留所有数据的同时确保文件尽可能小。它们可用于迁移正常运行时间服务级别协议更宽松的开发和 QA 环境,或者用于概念验证迁移,以允许在新环境中进行应用程序测试。

您也可以使用 mongoexport 和 mongoimport 工具,但是这些命令使用基于文本的 JSON 或 CSV 格式,比 mongodump 和 mongorestore 使用的二进制格式要慢。

4。创建隐藏的副本集成员

为了提高迁移性能并减少对生产数据库的影响,请确保使用隐藏副本集成员。这些成员仍然接收操作日志更新,并将在初选中投票,但他们不处理来自客户端的请求。这为迁移过程释放了资源,并确保它不会干扰生产流量。

如果可能,在与 Amazon DocumentDB 集群相同的 VPC 中创建隐藏成员。

5。使用 DMS 进行在线迁移以减少停机时间

没人喜欢停工。为了最小化对可用性的影响,使用数据库迁移服务 (DMS)来迁移数据。

DMS 允许您在源数据库和目标数据库之间持续迁移更新,使它们保持同步。这允许现有应用程序在迁移过程中继续更新 MongoDB 数据库。

一旦两个数据库都是最新的,您就可以在维护窗口期间将应用程序切换到 DocumentDB 集群。这最大限度地减少了迁移导致的停机时间。

总结

让我们面对现实吧,将生产应用程序迁移到新的数据库是一项艰巨的任务。但是,通过花时间确定你的消息来源——并确保你与这些消息来源有正确的联系——你可以减少你抓狂的几率。

使用 mongodump 和 mongorestore 工具执行概念验证迁移可以让您执行应用程序测试,从而更快地发现问题。当您准备好进行最终迁移时,请确保使用数据库迁移服务从隐藏的副本集成员中提取数据。这有助于将对现有生产环境的影响降至最低

在你迁移之前,温习一下 DocumentDB & AWS

在您移动数据之前,确保您尽可能了解有关 Amazon DocumentDB 的所有信息会很有帮助。最好的方法之一是在真实的、无风险的现场环境中获得一些实践经验。

一位云专家提供了一门掌握 Amazon DocumentDB 课程,该课程深入介绍了如何设置、保护和扩展与 MongoDB 兼容的数据库。该课程提供专家视频建议、数十个动手实验,以及测试你知识的考试。

完成本课程后,您不仅可以成功完成数据迁移,还可以在未来与 DocumentDB 合作。

借助新的 AWS 预算控制台 UI ,更好地监控预算

原文:https://acloudguru.com/blog/engineering/monitor-budgets-better-with-new-aws-budgets-console-ui

欢迎来到您的亚马逊网络服务头条新闻策划摘要。在本周的 AWS 新闻中,我们为您发布了一些重大消息。AWS 配置新的资源类型,C6gn 实例类型在新的地区可用,Amazon Aurora PostgreSQL 现在支持零停机更新。此外,对 AWS 预算控制台的改进使查看预算比以往任何时候都更容易。让我们开始吧!


加速您的职业发展

从 ACG 开始通过 AWS、Microsoft Azure、Google Cloud 等领域的课程和实际动手实验室改变你的职业生涯。


AWS 配置的 15 种新资源类型

在将资源部署到 AWS 之后,您可能认为需要全天候监视您的资源,以确保您部署的配置不会改变。但是,在您构建一个全天候监视您的资源配置的系统之前,请先休息一下!AWS 已经有了可以帮你做到这一点的服务。AWS Config 持续监视资源配置,甚至可以根据您定义的规则对配置更改做出响应。

已经有几十个资源可以用 AWS Config 来监控,现在,又多了 15 个。可以用 AWS Config 监控的新资源包括 SageMaker 模型、弹性负载平衡器监听器;AWS 工作区;和 Route53 解析程序规则。

因此,如果您想持续关注各种资源配置,可以使用 AWS Config。

在四个新地区访问 EC2 C6gn 实例

AWS 继续扩展基于 Arm 的实例的可用性,本周为 C6gn 实例类型添加了更多区域。C6g 实例由基于 Arm 的 Graviton-2 处理器提供支持。C6gn 实例类型提供高达每秒 100 千兆位的网络能力以及弹性结构适配器支持。

这些非常适合高性能计算、网络设备、实时视频通信和数据分析。现在,C6gn 实例类型在欧洲的巴黎和米兰地区、亚太地区的首尔地区和中东地区的巴林地区可用。随着这一地区的扩张,C6gn 实例现在在全球 19 个地区可用。


准备好观看云学习了吗?

CloudCheckr 使用 ACG 在短短 90 天内提升了他们在 AWS 上的所有销售人员。看看他们是怎么做到的


Amazon Aurora PostgreSQL 零停机补丁

说到数据库引擎,使用 Amazon Aurora 就像获得一个数据库——包括一个数据库管理员。作为 Amazon 关系数据库服务的一部分,Aurora 提供了低延迟读取副本、自动故障转移等等。现在,亚马逊 Aurora 正在让更新变得更加无缝和简单。

Amazon Aurora,PostgreSQL edition,现在支持零停机补丁,允许您在不丢失客户端连接的情况下更新数据库版本或应用补丁。当数据库引擎重新启动时,所有客户端连接都将保留,因此您可以保持数据库最新,不会丢失任何一个节拍。因此,下一次您需要更新数据库版本时,停机时间将是一个少担心的事情。

AWS 预算控制台的界面更新

你有没有在 AWS 中启动了一项服务却忘记关闭的经历?也许唯一提醒你停止服务的是你月底收到的账单?这里不做评判,因为我自己也做过,这是我开始使用 AWS 预算时需要的经验。

AWS 预算让您可以直接从控制台跟踪您的实际估计使用量。最近对 AWS 预算的改进现在可以让您轻松高效地管理多个预算。现在,您可以使用拆分视图以列表形式查看所有预算,同时查看选定预算的详细信息。如果您需要快速查看多个预算,页面内导航允许您移动到下一个或上一个预算,而不必刷新页面。

不要认为你局限于跟踪 AWS 预算的成本!您还可以跟踪资源使用情况,并在任何预算超出实际或估计阈值时得到通知。


想跟上 AWS 的一切? 在 YouTube 上订阅一位云大师 的每周亚马逊新闻和 AWS 公告。你也可以像 ACG 上的一样,关注我们上的 推特 ,或者加入 不和谐 的对话!

向上移动堆栈:ACG 和洛杉矶开发者体验

原文:https://acloudguru.com/blog/engineering/moving-up-the-stack-acg-la-developer-experience

企业内部的开发人员体验正变得越来越复杂,因为组织选择在内部推动引人注目的体验以及为其客户带来引人注目的结果的工具。

在我们的网络研讨会“与 ACG 和洛杉矶一起向上移动堆栈”中,Scott Pletcher 与软件工程团队负责人 Scott Travis 和首席软件工程师 James Hoegerl 坐在一起,了解 ACG 和洛杉矶正在实施什么实践和工具,以及他们对那些试图进入云开发的人有什么建议。让我们透过窗帘,看看生活是什么样的。


加速您的职业发展

从 ACG 开始通过 AWS、Microsoft Azure、Google Cloud 等领域的课程和实际动手实验室改变你的职业生涯。


在堆栈中向上移动的体验是怎样的?

那么,要回答这个问题,我们首先要回答,*“栈”*究竟是什么?

根据詹姆斯的说法,“很明显,我的思维变得技术化了。因此,对我来说,堆栈是…您的应用程序技术堆栈是什么?你知道,你用什么工具来计算东西,你用什么工具来存储你的数据,你用什么工具在浏览器或移动应用程序上显示你的前端?”

不过,归根结底,技术堆栈很重要,但不如如何运行技术堆栈重要。选择适合您资源的技术很重要,选择适合您团队技能的技术也很重要。"


归根结底,你如何经营你的组织才是你成功的关键。


在这个圆桌会议之前,有一些来回,试图理解什么是真正的“向上移动堆栈”。在某些情况下,这可能意味着从基础开始,非常基础的东西,然后添加所有其他的工具集来扩充您的开发过程和资源。

但它也可以有不同的意义——你的学习之旅——因为你建立了信心,并掌握了你经常使用的任何一组工具和软件、SDK 和库。

你变得更加老练,建立了自信,这就是“向上爬”的另一个含义。


看点:与 ACG 和拉一起上移栈
好奇开发者体验?在这个免费点播的网络研讨会中,我们的开发人员将讨论云职业发展和让 ACG 的车轮继续转动的技术堆栈。


那么,云专家使用什么堆栈呢?

ACG 平台一直是无服务器优先、AWS 优先的堆栈。有一个 Javascript 服务框架和云原生工具,如用于数据存储的 DynamoDB,与服务框架协同工作的 Lambda 函数,以及前端的 React 和 Node.js。这只是 ACG 内容平台的一小部分,但当 ACG 收购 Linux Academy 后,我们基本上增加了另一套独立的技术。

最初,Linux Academy 栈是“非常老的学校”,Scott T 说,“我们成长为在 Docker 上运行 Ruby on Rails 和 ACS。”

“它将您与大多数传统服务器技术区分开来,但并不完全如此。直到它像 Lambda 之类的东西,它才结束。”

“这就是我们所运行的:它是 Ruby on Rails,类似于 Lambda,Rest API,它非常接近你对过去 10-15 年发展的预期,但它是所有这些的更成熟版本。”

要了解更多关于我们从多重集成中学到了什么,我们如何使用敏捷,以及 SaaS 平台开发人员的一天是怎样的,点击这里观看完整的网络研讨会。



那么,对于想从事软件开发的人,我们有什么建议呢?

在 Pluralsight 和云专家提供的工具之间,你可以真正学到在这个领域取得成功所需要的东西——大学学位不是必要条件。你可以开始走一些这样的路,比如在 Pluralsight 上学习开发,或者在一位云专家上学习云学习、运营和开发运维。遵循这些学习路径,创建一个真正良好的基础,并开始学习如何打入这个领域。我们在 Linux 学院的全部目标是帮助超过一百万的学习者,我认为我们达到了这个目标。

动手学习吧

  1. 对于发展来说,最重要的事情就是去制造东西。去编程,为你能想到的任何目的写代码,做一个应用程序或游戏,无论什么能让你开心,但是要获得这种体验。世界上发展最重要的是经验。不过,这并不一定要在一家公司经历过,你可以创造自己的经历,所以当你稍后参加面试时,你可以说出哪些工具让你兴奋,或者哪些工具让你觉得工作起来很沮丧。如果参加面试的人知道他们在谈论什么,并且他们知道要寻找什么,他们会学到你从接触和理解软件开发生态系统中获得的技能。

建立投资组合

创造你自己的东西。首先创建你自己的知识库,然后开始建立你的投资组合因为这是非常有价值的东西——能够在面试时说,“这是我的简历,还有嘿,这是我的 github repo,以及我做的所有很酷的东西,”然后你就可以谈论这些了。当我们谈论经验时,我不认为我们总是在谈论多年的原始经验。我们谈论的是在不同环境中的各种经验,以及解决不同的问题和挑战。不要被那些说你必须有至少 10 年做这件事的经验的角色吓倒,因为 10 年做一件事不同于两年做 7 件不同的事,你的知识会有更丰富的深度。

  1. 从这些 10 个有趣的动手项目开始构建你的云计算技能,学习 AWS

作为软件开发人员(或任何其他角色)处理冒名顶替综合症


如果你要去面试,或者如果你要转行,你可能会有一点自我怀疑,这是完全正常的。


你可能会想,也许我真的不应该在这里,或者所有这些人都是如此有经验和聪明我只是在学习曲线的底部,盯着一堵不可逾越的墙。这有点像美国忍者战士课程中的长城,你必须跑上去并试图抓住它恰到好处,这可能会感到相当沮丧。

那么你如何克服这一点呢?

“我一生都在处理这个问题,我要告诉你一件事,从我的个人经历来看,这听起来有点令人沮丧,但它会变得积极,所以请耐心听我说,”斯科特·t 说,“你永远不会停止感觉有人比你更了解这个房间里的事情。这将是真的,尤其是如果你在一家鼓励丰富经验的好公司。

“有人会比你更了解一些事情,重要的是要意识到这没什么。事实上,这是一件好事。这是健康的。这意味着你有机会了解更多。变得更好。老实说,我认为,学会真正接受这一积极的方面,是你能做的最具变革性的事情之一。”

詹姆斯说,对他帮助最大的是自在地问这个问题:“很多时候你认为(问)会揭示我不知道这个,我不理解这个,我真的不应该在这里。有趣的是,很多时候它会产生相反的效果。你(反而)看起来像是试图更好地、全面地了解正在发生的事情的人。”

准备好提升你的 AWS 技能了吗?无论你是刚刚起步还是经验丰富的云专家,云专家的边做边学方法都将帮助你掌握云技术并在职业生涯中取得进步。

这激起你的兴趣了吗?想了解更多关于 ACG 和洛杉矶开发者体验的信息吗?立即观看整个网上研讨会,免费点播

James says what has helped him the most is being comfortable with asking the question: “So many times you think [asking] will reveal that I don’t know this, I don’t understand this, and that I really shouldn’t be here. It’s so funny how so many times it has the opposite effect. You [instead] look like the person who is trying to get a better, holistic understanding of what’s happening.”


Ready to level up your AWS skills? Whether you’re just starting out or a seasoned cloud pro, A Cloud Guru’s learn-by-doing approach will help you master the cloud and advance in your career.


Has this piqued your interest? Want to know more about the ACG and LA developer experience? Watch through the whole webinar, free and on-demand right now!

MSK 无服务器和新 EC2 I4i 实例类型

原文:https://acloudguru.com/blog/engineering/msk-serverless-new-i4i-ec2-instance-types

哇,这周我们有很多要从 AWS 了解的吗!现在,在 GA 中,我们已经为 Kafka 无服务器管理流。我们来看看 Amazon Rekognition 的流视频事件特性和新的 I4i 实例类型。我们得到了一个更新的 EKS 控制台来帮助 Kubernetes 集群管理。此外,我邻居的猫甚至会出现在本周的公告中。我们开始吧!


准备好提升你的 AWS 技能了吗?无论你是刚刚起步还是经验丰富的云专家,云专家的边做边学方法都将帮助你掌握云技术并在职业生涯中取得进步。


面向 Kafka Serverless 的托管流现已正式推出

回到 re:Invent 2021,AWS 宣布了一套四个围绕数据和分析的预览服务产品,这些产品将在无服务器或按需配置中提供。这包括 Redshift 无服务器、EMR 无服务器和 Kinesis 按需数据流。除了这三家之外,他们还宣布了针对 Kafka Serverless 的托管流媒体服务,这一服务现在已经由 T2 升级为普遍可用。

该产品的工作方式与 Kafka 的普通托管流产品类似,它使您能够在完全托管的服务中安全地接收和传输大量数据。主要区别在于,您不再需要管理集群的扩展。这使得将 MSK 无服务器集成到您的云应用程序中变得更加容易。

Amazon Rekognition 流媒体视频活动现已全面推出

因此,每天凌晨 3 点左右,我都会收到手机通知,说地下室的监控摄像头检测到了动静。我会担心吗?不,只是我邻居的猫晚上出去散步。等等,这跟 AWS 新闻有什么关系?

嗯,这只是一种实时视频警报,你可以通过 AWS 的计算机视觉服务 Rekognition 的新功能为自己建立一种实时视频警报,它被称为流媒体视频事件。好消息是,它也刚刚过渡到普遍可用。

这项功能建立在现有的 Rekognition 服务和 Kinesis 视频流之上。它自带机器学习模型,可以检测人、包裹和宠物。

我相信你可以想到比跟踪邻居的猫更好的事情来做,但如果你喜欢跟踪猫,借助云的力量,这变得容易多了。

EC2 的新 I4i 实例

我们有了一个新的 EC2 实例类型!新的 I4i 实例是为需要最大化存储 I/O 的工作负载而设计的。这些实例基于 Ice Lake Xeon 处理器,根据 AWS,它们提供了“比 I3 实例高出 30%的计算性价比”,同时还提供了持续的内存加密。

发布时只支持三个地区,所以请务必阅读 AWS 新闻博客了解所有细节,并了解如何在今天测试这些内容。


从这些 10 个有趣的动手项目开始构建你的云计算技能,学习 AWS


更新了 EKS 控制台以改进集群管理

最后,在 AWS 新闻中,我要向那些利用 EKS 处理 Kubernetes 工作负载的人宣布一个好消息。AWS 精心制作了一个控制台更新,现在可以查看集群上所有的 Kubernetes API 资源类型。对于你们中的一些人来说,这可能意味着你不必利用那么多的第三方工具来管理你的 EKS 集群。

现在,您将能够深入了解服务资源、配置和存储资源、策略资源,甚至授权资源。如果不需要所有这些信息,可以过滤列表,只显示您感兴趣的资源类型。

关注 AWS 的所有新闻

在 YouTube 上订阅一位云专家的每周 AWS 新闻(以及其他云提供商的新闻)。你也可以在脸书上喜欢我们,在推特上关注我们,或者在不和谐上加入对话!

多账号,多云,黑客要你的钥匙!

原文:https://acloudguru.com/blog/engineering/multi-account-multicloud-protect-your-keys

本周,我们又得到了一条直接来自烤箱的滚烫 AWS 新闻。Transit Gateway Network Manager 变成了多帐户,AWS DataSync 变成了多云——某种程度上,这是一个及时的提醒,黑客迫切需要您的 AWS 访问密钥。让我们进入本周的 AWS 新闻。


加速您的职业发展

从 ACG 开始通过 AWS、Microsoft Azure、Google Cloud 等领域的课程和实际动手实验室改变你的职业生涯。


AWS 数据同步变为多云

嗯,AWS 甚至承认 Azure 或 GCP 这样的公司并不常见,但这就是本周发生的事情。 AWS DataSync 现在可以将谷歌云存储和 Azure 文件存储视为潜在的端点 —允许您使用托管服务在更多位置之间转移数据。

Well, it’s not often that AWS even acknowledges the likes of Azure or GCP, but that’s just what happened this week. AWS DataSync can now count Google Cloud Storage and Azure Files storage as potential endpoints — allowing you to use the managed service to shuffle data between even more locations.

现在,在你对 AWS 最终转向多云生活方式感到兴奋之前,你应该知道这种支持并不完全是原生的。AWS DataSync 使用 GCP 的 S3 兼容 API 访问谷歌云存储,并使用现有的 SMB 协议访问 Azure 文件。

截至记者发稿时,这一切可能如何运作的细节还不是很清楚,所以我不能保证它会有多好或有多不可靠。但套用劳埃德·克里斯莫斯的话来说,AWS 似乎是在告诉我们有(多)不确定的机会。

中转网关网络管理器支持多帐户

对于那些在 AWS 上管理大型多账户网络的人来说,这是一个好消息。AWS Transit Gateway Network Manager 现在支持使用 AWS 组织创建的组织内的多个帐户。这使我们现在能够拥有一个涵盖所有客户的整合网络管理器控制面板,而不必从一个客户跳到另一个客户。

这种统一还包括 CloudWatch 指标和事件,以监视您的全球网络帝国的任何有趣的业务。是的,您现在可以在一张全球地理地图上看到所有客户的所有网络,这张地图无疑会被投影到网络运营中心的 7 英尺屏幕上,目的无非是让人们在参观数据中心时留下深刻印象。

观看:保护您的 AWS 环境这个免费的点播网络研讨会中,云安全专家唐·麦咭详细介绍了如何让复杂的 AWS 环境从零到安全。

“回购劫持”窃取 AWS 密钥


AWS Cloud Compliance Governance Security

在本周的“我们难道没有足够的东西需要担心”一栏中,一个流行的 Python 包 ctx 和一个名为 Phpass 的 PHP 包被黑客攻击显然是为了窃取环境变量,包括 AWS 密钥,并将其泄露到攻击者控制下的 Heroku URL。


攻击者使用了一种称为回购劫持的方法,通过这种方法,有人可以获得对合法回购的未经授权的访问,并可以将恶意代码插入新版本。安全研究人员只花了几个小时就注意到了异常,但估计已经有两万个版本的被黑代码被下载了。这种攻击手段特别狡猾,因为每当新版本发布时,许多人都会盲目地升级一个库或包。

我们如何防御这样的事情?

一种方法是将你的库锁定在特定的版本中,这样你就可以控制它们更新的时间和方式。在可能的情况下,使用 IAM 角色而不是访问密钥,并将出站流量锁定到仅受信任的目的地,这可能会减轻这种特定的攻击。但是,至少,如果您还没有启用 CloudTrail 日志记录,现在就启用吧!不,我是认真的。停止阅读这篇文章,现在就去启用它——然后回来,当然。

你是想开始你的 AWS 职业生涯还是想让你的技能更上一层楼?我们的 AWS 学习路径提供定制的路径,让您的云计算之旅更加精彩!

最后,给那些乘坐 EC2 列车的人一点小提示,您现在可以向您的实例添加停止保护,以防止它们从控制台、CLI 或 API 意外停止。这可能是一个方便的小特性,可以防止在云信息删除或自动成本控制措施的情况下 EC2 实例被停止或终止。我的朋友们,这就是本周 AWS 所有适合印刷的新闻。


关注所有最新的 AWS 新闻!在脸书上喜欢我们,推特上关注我们,并在不和上加入对话。


As we wrap up, just a little tidbit for those riding the EC2 train, you can now add Stop Protection to your instances to prevent them from unintentional stop actions from the console, CLI, or API. Might be a handy little feature to keep an EC2 instance from being stopped or terminated on you in the case of a CloudFormation delete or automated cost control measures. That, my friends, is all the AWS news fit to print this week.

Stay up to date with all the latest AWS news! Like us on Facebook, follow us on Twitter, and join in the conversation on Discord.

AWS 放大和多个无服务器环境

原文:https://acloudguru.com/blog/engineering/multiple-serverless-environments-with-aws-amplify

团队的生产工作流程

自从 8 月份发布了 AWS Amplify CLI 以来,最受欢迎的功能之一就是处理多团队&多环境的能力。

在最新发布的 AWS Amplify 工具链中,当使用 AWS Amplify 开发应用程序时,现在有了处理多种环境和团队的一流支持。

放大控制台

最近另一个大的发布是 Amplify 控制台,这是一个为移动网络应用提供的持续交付和托管服务。Amplify 控制台与我们在本帖&中将要讨论的多环境功能密切相关,我们将学习如何在团队的集中工作流程中利用多个 Amplify AWS 环境。

Amplify 控制台还具有持续部署、轻松定制域+免费 HTTPS、多环境支持功能分支部署、&允许您在单个部署工作流程中管理前端&无服务器后端等功能。

要了解更多关于 Amplify 控制台的信息,请点击这里

测试它

使用以下命令安装 Amplify CLI :

npm install -g @aws-amplify/cli

如果这是您第一次使用 AWS Amplify CLI,请查看 这段 视频,了解安装后如何配置它。

使用新的 AWS 环境功能

CLI 中现在有了一个新命令,即 env 命令:

amplify env

运行此命令时,您将获得一个在 AWS 环境中工作的可用选项列表:

  • 同步— 将您的环境与当前云环境同步。这将允许您下载您已经在其中工作的环境的较新版本
  • 检出 <环境名> —将您的环境移动到命令中指定的环境
  • 列表 —显示您的 Amplify 项目中所有环境的列表
  • get —显示命令中指定的环境的详细信息
  • 添加 —将一个已经存在的 Amplify 项目堆栈添加到您的本地后端
  • 移除 —从 Amplify 项目中移除一个环境

要在现有的 AWS Amplify 项目中创建一个新的 AWS 环境,您可以运行amplify init命令&您现在可以选择在当前工作项目中初始化一个新的环境。

接下来,让我们学习如何在两种不同的场景中使用多个 AWS 环境:

  1. 使用多个本地放大环境
  2. 在集中式工作流程中使用 Amplify 控制台与多个 Amplify 环境合作/与团队合作

处理多个本地放大环境

让我们先来看看如何创建和管理多个本地放大器环境。

在这个例子中,我们将看到如何添加和测试新功能,而不影响我们原来的/主要的放大器项目。当新特性准备好了,我们将把它合并到我们的主放大环境中&删除特性环境。

我们将使用以下工作流程来演示这一点:

  1. 创建一个新的放大项目。主放大器环境将被称为开发
  2. 向主环境添加新功能(身份验证)
  3. 推动主 Amplify 环境在我们的 AWS 客户中创建认证服务
  4. 创建新的放大环境,以创建和测试新功能。在这个新环境中,我们将添加并测试一个 AWS AppSync GraphQL API 。这个新的放大环境将被称为蜂房
  5. 一旦我们测试了这个新特性并知道它按照我们想要的方式工作,我们就会将它合并到我们现有的 dev 环境中。

为了以与框架无关的方式演示这个工作流,我们将在一个空目录中创建一个新的 Amplify 项目&遍历上面的所有步骤。

初始化一个新的放大项目

mkdir blanktest
cd blanktest
amplify init

出现提示时,将环境命名为devT2 】,出于本演示的目的,您可以随意选择所有其他选项的默认值。

接下来,在新环境中,使用以下命令添加身份验证服务:

amplify add auth

出现提示时,如果您想使用默认的身份验证和安全配置,请选择“是”。

现在,我们将通过运行 push 命令在我们的帐户中创建服务:

amplify push
  • 您确定要继续吗? Y

既然我们已经成功地将身份验证服务添加到我们的开发环境中,那么让我们看看如何创建一个新的特性-api 环境来创建和测试 AWS AppSync GraphQL API。

创造新的放大环境

为了创建新环境,我们将使用init命令:

amplify env add
  • 您想使用现有环境吗?普通
  • 输入环境的名称:apifeature

现在,新环境已经创建。如果我们想要查看所有当前环境,我们可以运行以下命令来列出它们:

amplify env list
| Environments |
| ------------ |
| dev          |
| *apifeature  |

我们当前使用的环境现在应该显示在列表中,旁边有一个星号。

现在我们已经初始化了新环境,我们需要在我们的帐户中创建应用程序堆栈,这样我们就可以开始测试了。为此,请运行 push 命令:

amplify push

现在我们已经创建了一个新环境,我们将添加新功能:

amplify add api

当提示输入 API 的类型时,选择 GraphQL &为这个演示的其余选项选择缺省值。

完成上述步骤后,我们将运行 amplify push 在我们的帐户中创建 GraphQL API:

amplify push
  • 您确定要继续吗? Y
  • 是否要为新创建的 GraphQL API 生成代码? N

成功创建服务后,我们可以运行 status 命令来查看项目的当前状态:

amplify status
Current Environment: apifeature
| Category | Resource name | Operation | Provider plugin   |
| -------- | ------------- | --------- | ----------------- |
| Auth     | cognitoauth   | No Change | awscloudformation |
| Api      | blanktest     | No Change | awscloudformation |

如果我们访问 AWS AppSync 控制台,我们现在应该看到添加了API feature(blank test-API feature)的新 AWS AppSync API。

将新特性合并到开发环境中

现在,我们如何将这个新功能引入到我们原来的开发环境中呢?这很简单。我们需要检查原始的开发环境&我们现在将看到这个特性的副本,以及已经为我们设置的所有配置。

amplify env checkout dev
amplify status
Current Environment: dev
| Category | Resource name | Operation | Provider plugin   |
| -------- | ------------- | --------- | ----------------- |
| Api      | blanktest     | Create    | awscloudformation |
| Auth     | cognitoauth   | No Change | awscloudformation |

我们现在在项目中看到了 API 类别。我们还看到 API 对应的操作目前是创建。这意味着虽然 AppSync API 的配置已经准备就绪,但是实际的服务还没有在我们的帐户中创建。为此,我们需要运行push:

amplify push

现在,新的 AppSync GraphQL API 已经创建好了&它现在应该会出现在我们的仪表板中。

要快速演示此工作流程,请观看以下视频:

删除 AWS 环境

既然我们已经成功地将我们的特性合并到我们的主环境中,我们如何清理我们在测试环境中创建的资源呢?这很简单,我们只需运行以下命令:

您还想从云中删除环境的所有资源吗? Y

remove 命令将为您删除该环境中的所有内容(IAM 角色、Cognito 服务、AWS AppSync API 和 DynamoDB 表)。

amplify env remove apifeature
  • 多重放大团队环境

既然我们知道了如何在本地管理多个环境,那么我们如何在面向 git 的工作流中管理多个环境&与团队一起?

在团队中处理 Amplify 项目有两种主要方式:

团队成员在他们自己的沙盒环境中工作(推荐)

团队成员共享同一个开发后端来工作

  1. 我们要看的例子(1)是团队成员如何在他们自己的沙盒环境中工作,然后将更改合并到开发环境中以测试一些更改,然后在测试完成后进行控制。
  2. 首先,我们希望有两个独立的 git 分支:master 和 dev。我们还希望有两个独立的放大器环境,与这些环境相对应。

设置主环境和开发环境

要设置主环境和开发环境,我们将继续并初始化它们:

一旦我们在 Git 中设置了“主”分支,我们将在您的 Amplify 项目中设置一个“开发”环境(这将基于您的“主”环境):

这将为云中的项目设置另一个环境。后端配置和资源现在是从“主”环境克隆的。运行amplify push为您的新环境(dev)提供所有 AWS 资源。

$ amplify env add
? Enter a name for the environment master
// Provide AWS Profile info
// Add amplify categories using `amplify add <category>`
$ git init
$ git add <all project related files>
$ git commit -m <commit-message>
$ git remote add origin git@github.com:<repo-name>
$ git push origin master

现在将更改推送到“主”分支()当运行git status命令时,您将只看到对 team-provider-info.json 文件的更改。这个文件包含了所有项目环境的累积堆栈信息,当您想要在一个团队中共享相同的后端时,这些信息非常有用。在这之后,让我们创建一个新的 git 分支——与我们刚刚创建的新环境相对应的“dev”。

$ amplify init
? Do you want to use an existing environment? No
? Enter a name for the environment dev
// Provide AWS Profile info

在团队中共享项目

现在,我们在云中有了两个独立的环境(master & dev ),并且在 git 上有了相应的 Git 分支和我们的 amplify 后端基础设施代码。

$ git add .
$ git commit -m "creating master amplify environment"
$ git push origin master
$ git checkout -b dev
$ git push origin dev

假设一个团队成员想要在同一个 Amplify 项目上工作,向它添加一些特性,然后将更改推送到开发环境来测试一些更改。他们将执行以下步骤:

接下来,假设团队成员想要将这些变更转移到开发和主环境/分支:

在测试了开发阶段的一切工作正常之后,您现在可以将开发合并到主 git 分支:

$ git clone <git-repo>
$ cd <project-dir>
$ git checkout -b mysandbox
$ amplify init
? Do you want to use an existing environment? No
? Enter a name for the environment mysandbox
// Rest of init steps
// Add/update any backend configurations using amplify add/update <category>
$ amplify push
$ git push -u origin mysandbox

其他工作流程

$ git checkout dev
$ amplify init
? Do you want to use an existing environment? true
? Choose the environment you would like to use: 
❯ dev 
 master
$ git merge mysandbox
$ amplify push
$ git push -u origin dev

还有其他工作流,包括允许团队成员共享同一个开发后端&甚至共享团队之外的项目。

$ git checkout master
$ amplify init
? Do you want to use an existing environment? true
? Choose the environment you would like to use: 
 dev 
❯ master
$ git merge dev
$ amplify push
$ git push -u origin master

要了解有关这些其他工作流的更多信息,请查看此处列出的文档。

结论

在 Amplify CLI 发布之后,最受欢迎的特性之一是能够创建多个 AWS 环境并与团队共享,因此我对这个新版本感到非常兴奋。

AWS Amplify CLI 和客户端库都是开源的&我们鼓励讨论、问题、拉请求和功能请求。如果你有兴趣参与这个项目,请点击这里查看回复。

要了解更多关于 AWS Amplify 的信息,请点击此处查看文档。

获得更好职业所需的技能。

掌握现代技术技能,获得认证,提升您的职业生涯。无论您是新手还是经验丰富的专业人士,您都可以通过实践来学习,并在 ACG 的帮助下推进您的云计算职业生涯。


Get the skills you need for a better career.

Master modern tech skills, get certified, and level up your career. Whether you’re starting out or a seasoned pro, you can learn by doing and advance your career in cloud with ACG.


我最喜欢的 Windows Linux 工具

原文:https://acloudguru.com/blog/engineering/my-favorite-linux-tools-for-windows

让我们面对现实吧,不管我们多么希望这不是真的,或者我们多么试图避免它,我们都有使用 Windows 的时候。事实上,如果你从事信息技术工作,很可能你不得不比你想要的更多地使用它。您甚至可能被迫在您的本地桌面上使用它,要么是因为公司政策,要么是因为一些 Windows 应用程序不能在 Linux、native 或 Wine 上运行。那么,让我们来谈谈一些我们可以在 Windows 中使用的工具和应用程序,它们或者使它更像“Linux ”,或者方便我们访问和管理 Linux。第一个选择,虚拟化在 Windows 系统上使用 Linux 工具的最佳方式是使用 Linux。如果你的系统可以支持,我推荐甲骨文的 VirtualBox 虚拟平台。它易于安装,易于配置,开箱即可支持所有现代 32/64 位发行版。下载后,它可以像任何 Windows 应用程序一样安装。这将使事情正常进行(您必须重新启动,因为它在 TCP 栈中安装了一些虚拟网络设备驱动程序)。完成后,您应该会看到类似这样的内容:

运行 Ubuntu 的 VirtualBox

在任何一台像样的现代个人电脑或笔记本电脑上安装 Ubuntu Linux 只需要五分钟。当你设置它的时候,给它至少 2gb 的内存和 1CPU,它就会像冠军一样运行。在基于 Linux 的终端上使用 GRUB 引导到命令提示符,这是您需要的一切(编码、脚本和/或远程管理)。命令行和 XWindows Server 如果您的系统不够“强大”,在其上运行完整的虚拟操作系统对它来说可能太难处理,但性能仍然可以接受,我们有另一个替代方案,它曾经非常受欢迎,但在过去几年中因为一些稳定性和功能不完整的问题而失去了活力,但仍然是一个可行的完整的“类 Linux”环境——CygWin。现在,Cygwin 的安装比 VirtualBox 稍微复杂一些,因为您必须回答一些问题。你将下载并运行一个非常小的安装程序(字面意思,叫做 setup ),它会让事情开始运行。您将被要求选择一个镜像来开始下载目录文件,然后询问您需要什么类型的安装。我会远离“自定义”安装类型,因为有许多依赖项需要跟踪,如果您没有获得所有的依赖项,可能会导致安装不完整(或者安装脚本依赖项脚本失败)。两个最好的选择是“最小”,它将安装通用的命令行 Linux 实用程序、shells 和环境变量,然后是“完整/完整”,它将安装所有东西,包括 X Windows 工具、终端和 X 服务器。我似乎更幸运,先下载所有的软件包,然后重新运行安装程序,并指向下载目录。在这两种情况下,作为一个警告,这个安装将需要相当长的时间,不管你的系统有多强大。除了设置环境之外,在一切就绪之前,还需要为所有软件包运行大量的安装后脚本。当它最终完成时,你将在窗口菜单中有许多菜单项。您应该有几个类别,包括 shell 提示符和 XWindows 菜单。在此菜单中,您将找到启动本地 XWindows 服务器的快捷方式。一旦它成功启动,您还会看到一个 xterm 窗口,显示它正在工作。这很棒,因为现在您可以使用 SSH 从其他 Linux 系统隧道传输 remote X 命令,并看到它们在本地运行。请参见下面的示例:

Cygwin 连接到运行 KDE 的 Linux

Cygwin 确实有一些稳定性问题,最近才针对 Windows 8 进行了更新,但一切似乎都已经解决了。我在我的 Windows 8 笔记本电脑上运行完整的安装,只有在尝试远程运行完整的 Linux 桌面时才会出现问题,但这也是因为系统监听器期望直接运行完整的桌面,而不是远程运行。更简单的窗口管理器(如 icebox 和 fvwm2)运行得很好(并且惊人地快)。缩小规模出于各种原因,上述两种选择对您的系统来说可能都太多了(要么是因为资源限制,要么是因为公司政策,要么是两者兼而有之)。获得大量“Linux 灵活性”的另一个选择是一个奇妙的(免费使用的)Windows 应用程序,叫做 MobaXterm 。这个工具不仅很小(一个可以放在任何地方的文件,不需要复杂的安装),而且是一个完全包含的远程管理工具。当然,它提供了对任何您想要的东西的 SSH 命令行访问,但是它嵌入了 Cygwin X Window 服务器(见上文),这样您就可以从本地的远程服务器隧道传输 X 命令,并看到它们的显示。它和完整的 Cygwin 安装一样好用,不需要长时间的安装。一旦你启动它,你会看到这样的东西:

Mobaxterm 免费客户端

为什么我推荐这个 SSH 客户机而不是 Putty 或任何其他数量的终端模拟器?嗯,因为它在如此小的空间里有如此多的东西。它有 SSH,X Windows 支持嵌入式,VNC 客户端,RDP 客户端和思杰网络客户端。你可以保存并配置它运行在标签界面,全屏或窗口,无论你喜欢什么。与我使用过的任何其他客户端相比,它的内存占用非常小,而且速度快、稳定。你可以支付一个定制版本的应用程序,价格合理,为 69 美元(大约,这是本文发表时的转换价格)。最后的想法我们已经讨论了在我们的 Windows 系统上获得“类似 Linux”功能的许多方法。使用这些工具和应用程序,无论您的系统规格或公司政策如何,您都应该能够得到一个可以接受的解决方案。在我们的桌面系统上,我们可能不得不生活在一个“Windows 世界”中,但没有什么说我们不能让自己在其中舒服!请在下面的评论中给我们留言,描述一下你每天是如何在 Windows 系统上完成 Linux 工作的!

我近乎灾难的 AWS 在线监考体验

原文:https://acloudguru.com/blog/engineering/my-near-disaster-aws-solutions-architect-professional-recertification-experience

准备远程监考的 AWS 认证考试?在这篇文章中,Scott Pletcher 分享了他在 AWS 认证解决方案架构师专业再认证方面的经历,参加 AWS 在线监考考试之前你应该知道的一些事情,以及参加具有挑战性的 AWS CSAP 考试的提示。

“好吧,深呼吸……我以前来过这里。我教 课程 看在老天的份上!”

当我第五次一头扎进臭名昭著的 AWS 认证解决方案架构师专业人员考试时,我平静地安慰自己。但是这一次,情况不同了——非常不同。

内容


通往更好职业的钥匙

从 ACG 开始通过 AWS、Microsoft Azure、Google Cloud 等领域的课程和实际动手实验室改变你的职业生涯。


AWS 认证解决方案架构师专业考试有多难?

AWS 认证解决方案架构师专业认证被认为是最具挑战性的考试之一——不仅仅是在 AWS 认证中——而是在所有的信息技术中。

我已经通过了其他一些具有挑战性的资格考试,如 PMI 的项目管理专业人员和 ISC2 的认证信息系统安全专业人员,至少对我来说,CSAP(或 CSA-Pro 或 SA-Pro,或者你想缩短它)轻松超过这两者。

AWS 认证解决方案架构师专业考试令人望而生畏,原因有几个。

  • 首先,它涵盖了极其广泛的 AWS 服务和产品——而且也不是肤浅的。

  • 第二,考题措辞非常细致巧妙,真正考验你的理解能力。考试问题故意包括 AWS 所谓的“干扰物”——这些看似合理但不正确的元素,字面上是为了淘汰那些知识不完整的人。

  • 第三,考试本身就是身心折磨。虽然三个小时 75 个问题看起来没那么糟糕,但它需要绝对专注于每个问题的每个细节。从数学上来说,每个问题平均需要 2.4 分钟,但是你很容易在意识到之前就陷入一个问题 10 分钟。每次参加考试,我都利用了那 180 分钟的每一分钟。

我的第一次

我第一次参加 CSAP 考试是在 2015 年 7 月。我刚刚通过了 CSAA(或 AWS 认证解决方案架构师助理)考试,充满了自信。

"当然,帮我报名参加 CSAP!"

我惨败了。

我没有为所需知识的深度和广度做好充分准备,我的时间管理技能也一团糟。当我顺利通过助理考试时,我的错误是认为 CSAP 只是稍微有点晦涩的助理水平考试问题。我错得多离谱…

在接下来的七周里,我把自己投入到 AWS 控制台、白皮书和任何我能找到的资源中。我的准备都是自学的。课堂培训太贵了,而且当时也没有什么好的在线培训课程。(巧合的是,大约在同一时间,Ryan Kroonenburg 也意识到了这一点,并决定对此做些事情……)

2015 年 9 月,我再次踏入缺口。这一次,我过得相当舒服。

在那之后的六年里,我不得不重新认证了三次。AWS 过去每两年进行一次较短的 CSAP 再认证考试,但现在他们让你每三年参加一次完整的再认证考试。

这次

大约在 2021 年 6 月,随着我的认证在 10 月到期,我开始紧张起来。鉴于我的角色和我的课程,如果我让我的证书失效,那将是介于“非常尴尬”和“绝对可耻”之间的事情。这只是加剧了我的紧张。

是的,我仍然为这次考试感到紧张。事实上,在任何考试、直播、网上研讨会、不和谐流或公开演讲之前,我都会感到紧张。每次我打开相机盯着那个小黑圈,我就紧张。有一点社交焦虑,但主要是因为冒名顶替综合症。通过练习,我已经学会了应对紧张,但它仍然潜伏在下面。我在这里提到这一点,是因为我想让你知道,在像这次考试这样的情况下,紧张和自我怀疑是完全正常的。

在尽可能拖延之后,我决定预约考试。我更喜欢在考试中心,因为那里通常安静、舒适,可以让我集中注意力。唉,无论是 PSI 还是我附近的 Pearson 考试中心,都已经有好几个月没有预约了。

远程监考,我来了!

奇怪的是,只有 PSI 远程提供 CSAP。皮尔森有其他所有可用的证书,但在他们的日程安排网站上却找不到 CSAP。(我不确定 PSI 是否是这次远程考试的唯一管理员,或者 Pearson 方面是否有一些临时故障。)

当我知道家里会很安静,我不会与糟糕的真人秀或儿童节目争夺带宽时,我就向 PSI 预订了三个小时的精神耐力。


自动化 AWS 成本优化
经济高效地使用 AWS 可能是一项挑战。在这个免费点播的网络研讨会中,您将了解 AWS 成本优化工具和策略的概况,如数据存储优化


参加远程监考的 AWS CSAP 考试

考试那天,我根据提供的指南安排了我的考试区域,并下载了 PSI 考试软件。考试软件会检查您系统的带宽、网络摄像头、麦克风,并验证您是否只连接了一台显示器。

考试期间,网络摄像头一直开着。

测试软件在右上角显示了我的网络摄像头的实时画面。该图像有一个绿色圆圈叠加在视频上,显然是在进行面部跟踪。我猜这能确保你看着屏幕,而不是在房间里四处寻找潜在的小抄。

另一个理论是,它可以确保考生的脸与提供的身份证明相匹配。我想一个人可以验证他们自己,然后以某种方式一个“替身”可以插手并参加考试。我当然不建议尝试这些事情,因为这会给你带来大麻烦,更不用说没收你的考试费了。

一旦所有的自动化验证测试完成,我就激活了测试会话。不到一分钟,一个匿名监考人通过聊天跟我打招呼。我与监考人的所有互动都完全通过聊天来处理,但监考人可以看到和听到我。

在用政府颁发的身份证对着网络摄像头验证了我的身份后,我们继续验证我的远程环境。

神秘的监考人要求我在我的测试位置周围和下面移动我的相机,以证明我没有隐藏任何违禁品。

我不得不在镜头前展示我的手臂和两只耳朵,以确保我没有佩戴任何可能向我提供信息的设备。

如果我戴着眼镜,我会把它们举到网络摄像头前进行检查。

有一次,神秘的监考人把我的扩展坞误认为是一个扬声器,并要求我把它从桌子上拿开。我试了几次才解释清楚,让我在笔记本电脑上使用全尺寸显示器的不是扬声器,而是一个坞站集线器。最终,匿名监考人接受了我的故事,允许我继续。

我自己的测试中心!

不管是什么原因,测试软件已经让我的 MacBook Pro 达到极限了。从我启动这个软件的那一刻起,直到考试临近结束的时候,我的笔记本电脑粉丝一直在尖叫。据我所知,这可能是面部跟踪功能,也可能是他们使用我的 CPU 进行加密挖掘,但这需要占用一些严重的 CPU…我很快就知道,这最终导致了近乎灾难的后果。

我们开始吧…

在成功证明了我的身份和我的测试空间的完整性之后,监考人允许我继续进行实际的考试。

现在,不要指望我透露考试内容的任何细节——这是不允许的。我要说的是,每次我参加考试,我总是对考试的复杂程度和细微差别印象深刻。

以下是我最初几分钟的情况…

“第一个问题……嗯……这个不确定。让我打个旗号回来。第二个问题… Eeep!没有看到明确的正确答案…标志。问题 3……不——旗帜。”

我检查了前五个问题,然后找到了一个我可以直接回答的问题,甚至不需要考虑其他选项。

这是真的吗?我会考砸这次考试吗?!

原来,在我能够平静自己的神经并进入日常生活之前,只需要回答前五个问题。

我的策略(你可以在这篇文章中深入了解)总是一样的:快速浏览问题和答案。如果我能迅速确定地识别出正确的答案,我会做上标记并记下时间。如果我需要进一步挖掘,我会标记出我的最佳答案,并标记出来以备后用。我的目标是用大约一半的时间完成所有问题的第一遍。就我而言,我已经标记了大约 30 个问题进行第二次检查。

我的笔记本电脑风扇仍在运转,我只能想象这个考试软件在幕后做着什么样的事情。也是在这个时候,我意识到我可以折叠考试客户端的顶部,这样我就不必观看自己脸上叠加有绿色跟踪圈的视频。我的笔记本电脑风扇仍然以最高速度咆哮!

在第二遍中,我能够自信地回答我在第一遍中标记的大约一半的问题。

有时只是有机会重读问题和答案。其他时候,我在另一个问题中遇到了一些事情,触发了我对某项服务的给定细节的记忆。更常见的情况是,这只是一些我在快速第一遍扫描中忽略的明显的小东西。

第二遍之后,15 个问题仍然让我怀疑我最初的答案选择,所以我把剩下的时间花在这些问题上。随着时间的推移,我对这些问题做出了自己最有见地的猜测。还剩 5 分钟的时候,我的鼠标和笔记本电脑突然变得非常非常慢。

**低电量还剩 5%!**什么鬼?

当然,我在这次考试中使用了我的电源适配器和有线网络连接,以排除任何电源或 Wi-Fi 问题。(我几乎在我的技术墓地里挖了一个旧的有线机械键盘和鼠标,但我决定冒险一试。)

尽管一直使用交流电源,但我的笔记本电脑不知何故耗尽了电池,造成了危险的局面。

我的理论是,考试客户端是如此的 CPU 密集型,以至于它消耗能量的速度比笔记本电脑充电的速度稍快。在这三个小时里,电池终于用尽了它所能提供的一切。

必须…点击…提交…考试!!

这就像试图在水下运行!

我的心砰砰直跳,手心冒汗!我移动鼠标,10 秒钟后它就会懒洋洋地回应。我也听说过考试期间考试软件崩溃的噩梦,让他们在等待技术支持的悲惨境地中。最终,我落后于提交按钮,不知何故设法注册一个点击。我们是唐-

但是等等,还有呢!

然后,我收到了一份关于我喜欢考试过程的调查。不不。我不记得我是如何回答所有这些客户满意度问题的,但我很确定那一刻我的回答是负面的。“电量低!”在我的状态栏上再次闪烁。我的鼠标仍然滞后,我的笔记本电脑风扇正在比赛。请让我完成这个考试!

然后是结果……“恭喜!你通过了这次考试。”哦,谢天谢地。

最后几分钟的压力和恐慌消失了,我松了口气。最终,神秘的远程监考人回到聊天窗口,告诉我我的结果已经被记录下来,并感谢我的惠顾。说完,我就停止了考试申请,坐下来,看着我的笔记本电脑关机。


想要攀登云端职业阶梯?阅读薪酬最高的云认证和工作


如何准备 AWS 重新认证

为了让我热身,我使用了 CSAP 云大师考试模拟器。(登录你的 ACG 账户?你可以点击这里查看 CSA-Pro 模拟考试。)

在我这个非常独特的例子中,它对你来说没有那么有用。为什么?因为我已经写了那家银行的大部分问题,所以我可以模糊地回忆起我所包括的特殊技巧或细微差别——这有点像试图在镜子里给自己惊喜。

然而,在三个小时的时间里保持专注是需要练习的。如果没有别的,参加考试模拟器有助于训练这些长时间的专注。

接下来,我这周在AWS上的工作帮了大忙。虽然新服务必须在六个月内普遍可用,才有机会在考试中作为得分问题出现,但仅仅听到更新就能帮助我回忆起所有的服务及其目的。如果你渴望或保持 CSAP 认证,我鼓励你本周在AWS工作,作为你日常工作的一部分。

大多数人肯定读过白皮书。您不需要阅读每一份白皮书,因为现在可能有数百份,并且它们之间有很多重叠。我把重点放在“最佳实践”上,因为这些通常是试题的沃土。

日复一日,我在网络领域的工作不多,所以我阅读了所有的 VPC 和网络论文作为复习。由于我经常使用计算、无服务器和数据库,所以我没有在这些白皮书上花太多时间。

最后,如果您对这个或任何其他认证考试有任何问题,请随时进入我们在ACG 不和谐服务器上的常规“办公时间”。你通常可以看到我或我们的其他培训架构师只是在闲逛,并乐意给一些建议。你也可以在 YouTube 上订阅云专家的每周云新闻,就像我们在脸书上一样,在推特上关注我们。

谢谢你,CSAP 考试。三年后再见!

相关资源


获得认证之外的更多

在您的云计算生涯中走完的路程。通过 ACG 的课程和真实的动手实验室加速您的技能。

成为云专家的旅程

原文:https://acloudguru.com/blog/engineering/my-personal-journey-to-the-cloud

你好,我叫詹姆斯。我自己承认我是一个云- 酒精*,我已经离开这里 7 年了。”*

像我这样的人没有自助小组——技术是我的天性。我五岁时拥有了我的第一台电脑,从那时起,我就像大多数孩子收集毛绒玩具一样收集技术。

我 12 岁开始为当地的一家计算机杂志写稿,当时是英国的一家全国性杂志。当我上大学的时候,我在一个英国平台上有一个名为甲骨文图文电视的固定专栏。

“You’ll never need more than 16KB of RAM.” Let me just type that reminder into my 4GB Pixel….

做些很酷的小孩的事情和逛商场会更容易,但是把醒着的每一个小时都花在思考所有可以用机器解决的问题上让我太忙了。

我在交易大厅的第一份工作:软件开发员

在大学获得计算机科学学位后,作为一名软件开发人员开始工作是一段不和谐的经历。他们在学校没有教过必须在开发团队中工作,也没有培训过任何人如何理解古老复杂的系统。在学校,你从一个空白的屏幕开始,自己做一些漂亮的东西,这在工作中很少发生。

Young Professional Developer

If you show this picture to ANYONE… oh wait, it’s the Internet.

我的团队为对冲基金、投资组合经理等开发了电子交易软件。大多数交易发生在开盘和收盘时,就像一天两次的黑色星期五,强调后端。随着平台的增长,我们的基础设施正在扼杀我们,数据量扼杀了任何在不使系统离线的情况下解决问题的尝试。

最重要的是,我们的用户是交易者——在好日子里,他们是混蛋。他们的需求不断变化,并通过心灵感应进行交流。他们在一次停机中完全丢失了它,并且不能容忍坏数据、缺失功能或草率的用户界面。

聪明、多变且要求苛刻的用户——为他们工作最终成为对当今用户群最好的培训。

成为一名开发人员给我上了几堂人生课:

  • 用户不知道他们想要什么。至少,不是他们想要的最终版本。他们能看清接下来一百英尺的路,但是除了车灯之外的任何东西都是未知的。矛盾的是,我们只能知道短期内要做什么,但我们的脚手架必须永远工作。
  • 开发人员低估了需要付出的努力。所有开发人员都有一个不变的问题,那就是无法估计事情需要多长时间。80%的完成很快,然后最后的 20%就要花很长时间,如果有的话。你增加了他们的估计,你的老板增加了你的估计,交货仍然是
  • 稳定就是一切。您的系统应该不会失败。在任何情况下,都不要让它失败。但是如果你真的失败了,每一次停机都必须被调查和补救,这样它就不会再发生了。

出错时继续下一步:产品管理

2000 年代中期,我搬到了湾区,在初创公司做了几年技术产品经理。这是在以前有网站想法的人现在都有移动想法的阶段。

在旧金山湾区,产品经理是一名程序员,他会受到客户的呵斥,还会制作没人使用的路线图。

随着我们进入移动领域,我们的用户是拥有手机的普通人,而我们的竞争对手要么是资金雄厚的初创公司,要么是知名的技术精英。我们的开发团队要小得多,预算也更紧,然而我们宏大的抱负似乎没有注意到我们已经为成功做好了可怕的准备。

移动使得扩展问题对初创公司来说不可克服——购买新服务器消耗了预算,配置负载平衡器和数据库复制浪费了本应用于完善 UI 的开发时间。投资者和创始人通常厌倦了他们真实工作的艰辛,被淘金热所吸引,他们的使命是成为下一个价值十亿美元的应用程序,没有收入,却有一大群用户。

当时,有 iOS,Android,Windows 和黑莓,都使用不同的框架和语言,看起来这些可能会进一步分裂。我们试图将十几个屏幕的应用程序放在一起,这些应用程序可以在一天内构建成一个. NET 桌面应用程序。然而,我们确实设法发布了应用程序,解决了问题,并建立了一些业务。

作为产品经理,我学到了:

  • 你不够了解。您的团队在网络、安全、扩展、电气工程、机器代码等方面的知识存在缺口。当你面对转向这些领域的问题时,对你的产品来说就像流沙一样。开发人员喜欢棘手的问题,并且有着好奇的头脑,所以这类问题是一种诱惑。
  • 复杂是进步的死亡。当您的团队拥有所有的部分时,他们编写复杂的代码将系统锁在一起。但是当开发者只能用 API 和其他系统对话,不知道是怎么实现的时候,就写简单的代码,让系统模块化。
  • 梦不是代码。如果你不能让你的想法在电子表格或流程图中发挥作用,它就不能用代码来构建,不管投资者或风投说它有多简单。

Understanding the problem domain is key to building good solutions.

探索云应用的更好方式

大约在 2010 年的某个时候,我清楚地意识到,作为一个开发团队,我们可以自信地编写可靠的应用程序,在同一栋大楼的机器上运行。但是部署是困难的——一旦应用程序进入生产阶段,它们的性能就会下降。

我们使用一些云应用已经有一段时间了,但是直到绝对必要的时候,我们才开始认真使用 AWS。一个客户端应用程序已经开始获得动力,而我们没有钱在内部扩大规模,所以我们很快成为了 AWS 的用户*。意识到我们别无选择,这是一个偶然但有点令人担忧的时刻——但这很快成为了 T4 事实上的制造产品的方式。*

在这段时间里,我有过一些灵光乍现的时刻:

  • 基础设施是地狱。它激发了每个人内心的修修补补,它是阻止你写代码的干扰。无论你如何努力,你也不能管理好它。所以不要。
  • 开发-准备-生产不工作。它不够复杂,不能阻止错误到达客户手中,最终只是提供了一个质量的假象。每个服务都需要在每个阶段进行版本控制,相应地路由传入流量。
  • 敏捷即美丽。我们在做瀑布的同时也在做,因为那被认为是专业的。当我读到敏捷宣言时,我几乎哭了——我知道从现在开始这就是我们构建软件的方式。

在维加斯发生的事…变成了职业

2012 年,我参加了在拉斯维加斯举行的第一届 AWS re:Invent 会议,这改变了一切。目睹了围绕该平台的整个生态系统,很明显,许多人一直在努力解决同样的问题,并且有许多很好的解决方案可用。

有一个挥之不去的问题,为什么没有其他人提供这种服务——亚马逊是镇上唯一的游戏,要么他们有令人难以置信的先见之明,要么我们都对整个云的事情过于乐观。这种滞后持续了数年——它让 AWS 领先竞争对手 6 年,这就是为什么它的能力仍然领先竞争对手。

在我们店里,无论如何我们都不是第一个使用云的人,但是我们全心全意地拥抱它。在 6 个月内,出现了许多意想不到的副作用:

  • 我们变得真正敏捷。我们的用户仍然不知道他们想要什么,开发人员仍然低估了工作,但是构建产品的动力已经改变了。我们可以一角钱旋转,做出根本性的改变,而不会摧毁房子——或者摧毁预算。
  • 我们没有很好理解的事情,为我们理解了。云带走并解决了许多计算机科学的问题。这让我们可以专注于开发应用程序,我们的生产力(和盈利能力)直线上升。
  • 我们的应用变得非常好。许多软件并不流行,也没有通过投资,但它们非常稳定,可扩展,看起来像一个更大团队的产品。我为那些没有成功的应用程序哭泣。

我作为云技术产品经理的未来

在使用云解决方案作为我所开发的所有产品的基础时,我不得不不断提高我的技术水平。仅仅做一个有路线图和线框的产品经理是不够的——我需要知道可靠的模式和可信的实践来创建最好的技术架构。

这意味着不断的培训,承担编程项目,随着环境的变化学习新的框架。这也意味着对会议和研讨会做出承诺,这已经成为我预算中的一个自动项目。

在业务方面,云让我有信心评估可行性和可能的成本,更可靠地预测时间框架,并帮助业务合作伙伴了解业务理念和技术的交汇点。在许多方面,敏捷、云和精益之间的概念是如此地交织在一起,以至于我经常认为它们是围绕同一件事情的不同观点。

快速失败、少浪费、不断学习并始终为客户提供价值—云是实现这一目标的核心。

仍然有一些道路颠簸

仍然有很多反对者。在加利福尼亚的日子之后,我在一些更传统的公司工作,这就像是跳进了德洛尔,把时钟调成了“失败”。

他们都在努力应对老化、脆弱、昂贵的 IT 基础架构,这些基础架构提供的商业价值有限,而且没有希望在未来帮助他们创新或脱颖而出。这些公司正在等待一代高管退休,等待竞争威胁重新唤醒曾经让它们成为巨头的胃口。

行业中也有造假者,他们多年来对云不屑一顾,嘲笑亚马逊,声称它永远不会成功。现在,他们争先恐后地推广他们自己的云,使用的工具和合同都很有限。

甲骨文(Oracle)等跟风者试图将落后者带入云生态系统,但他们没有为技术提供任何基础或改变游戏规则的东西。5 年前他们说云不安全,现在他们说只有他们的云是安全的,所以我认为恐惧可以推动任何东西的销售。

但我的生活信条是“去那些让你出名的地方,而不是被容忍的地方。”我在这里不是要说服去年的 IT 专业人士,我们行业的变化正以几何级数加速。我在这里是因为我致力于使用云及其工具箱来构建解决下一轮问题的下一代软件。我想进入机器学习和人工智能领域,从 onClick 转向预测*——云是所有这一切发生的地方。*

这就是我的故事。我们这些伴随着电脑长大的极客孩子中的大多数都没有成为史蒂夫·乔布斯或杰夫·贝索斯,但这是一段奇妙的旅程。机会无处不在,未来从未如此光明。我叫詹姆斯。在过去的 7 年里,我一直自认是一个云酒精。我认为这永远不会改变。


获得更好职业所需的技能。

掌握现代技术技能,获得认证,提升您的职业生涯。无论您是新手还是经验丰富的专业人士,您都可以通过实践来学习,并在 ACG 的帮助下推进您的云计算职业生涯。


我的五大 Azure 混合云技术

原文:https://acloudguru.com/blog/engineering/my-top-5-azure-hybrid-cloud-technologies

在这篇文章中,我回顾并排列了我的五大 Azure 混合云技术。我还解释了如何根据您的用例来最好地使用它们。


加速您的职业发展

从 ACG 开始通过 AWS、Microsoft Azure、Google Cloud 等领域的课程和实际动手实验室改变你的职业生涯。


Azure 混合云技术

三大云提供商有很多相似之处,但我认为微软 Azure 占优势的一个领域是混合计算。有一系列 Azure 混合云服务旨在让您在跨云和内部、甚至跨多个云提供商工作时更加轻松。

所以,在这里我向你展示了我的五大 Azure 混合云技术。

现在我有一个挑战给你。读了这篇文章,如果你没有“哼,我不知道”的时候,我会很惊讶。如果你真的有这样的时刻,把这篇文章分享给你的社交网络,加上“今天我学会了”,这样其他人也能学会。

我们成交了吗?太好了,我们跳进去吧!

5.Azure 广告连接

如果你的公司像大多数公司一样,使用活动目录域服务(AD DS)管理他们的身份,你无疑会知道 Azure AD Connect 。它允许你将你的 AD DS 身份同步到Azure Active Directory(Azure AD)。

Azure AD Connect 包括对一系列同步和身份验证选项的支持。它非常灵活——您可以选择要同步的内容以及您的用户如何进行身份验证。如果需要,您甚至可以将所有身份验证保存在本地。

安装和配置 Azure AD Connect 的过程在过去几年中有了显著的改进。现在,设置和管理比以往任何时候都更容易。Azure AD 还提供了比以往更多的选项来帮助您配置混合身份。随着 Azure AD Connect 云同步的引入,您现在可以通过高可用性或在多个断开的 AD DS 林之间实现这一点。

在内部 AD DS 环境和 Azure AD 之间同步您的身份被称为混合身份。混合身份带来了巨大的好处。这些优势包括:

  • 用户可以使用相同的用户名和密码登录您的内部应用和云应用。
  • 您可以通过多因素身份验证和密码健康检查来保护您的身份,防止危险的登录。
  • 如果需要,用户可以使用自助密码重置来重置其密码。
  • 您可以控制对敏感应用程序的访问。这有助于您使用条件访问实现更严格的安全控制。

现在你可能会想。韦恩,这些我都知道了。

好的,但是您是否知道您还可以允许您的用户使用他们的 AD DS 凭据登录到断开连接的虚拟网络上的 Azure 虚拟机?这甚至支持条件访问和多因素身份验证。等等,什么?是的,它确实是

现在,您可以停止在未加入 AD DS 域的虚拟机上共享或重用凭据。

4.Azure 广告应用程序代理

Azure AD 身份验证非常适合诞生在云中的应用程序,这些应用程序旨在支持 Azure AD 支持的身份验证选项。但是,所有不支持这种功能的应用程序怎么办呢?

如果你的公司已经存在了一段时间,他们可能有一大堆这样的应用程序。不仅如此,这些应用程序可能会与内部网络上的其他应用程序和服务紧密集成。

升级、替换或迁移这些应用程序可能不是简单的“按一下开关”。这是否意味着你被困在虚拟专用网络(VPN)连接中?不会吧! Azure AD 应用程序代理允许您在任何地方、任何设备上远程访问您的传统 web 应用程序。

它也很容易设置。您只需要在您的内部网络上部署一个或多个应用程序代理连接器,然后在 Azure AD 中添加应用程序配置。就是这样。不需要特殊的防火墙配置或反向代理。

好吧,你已经知道了,是吗?好的,您知道您的后端应用程序不需要在本地运行,也不需要在 Windows Server 上运行,甚至不需要使用互联网信息服务(IIS)吗?您的后端应用程序几乎可以是任何 web 应用程序。

好吧,以防你已经知道,你知道你可以使用 Azure AD 应用程序代理为不支持 AD DS 身份验证的应用程序提供单点登录(SSO)吗?

没错,您可以为使用简单用户名和密码组合的应用程序配置基于密码的认证,而无需与需要访问的用户共享这些凭证。

整洁,对不对?

3.Azure 文件

当你部署 Azure 存储帐户时,你可以访问 Azure Blobs、Azure 表、Azure 存储队列和 Azure 文件。Blobs、表和队列都很好,但是 Azure Files 很特别。Azure Files 允许您使用网络文件系统(NFS)和服务器消息块(SMB)等熟悉的协议来访问 Azure 存储。

这样做的好处是,您可以将现有的文件服务器作为服务迁移到平台,而无需更改任何应用程序。这样做的问题是,当您从内部访问时,访问云中的存储会比较慢。

Azure files 包括 Azure File Sync ,它允许您在 Azure Files 共享和本地 Windows 服务器之间同步数据。您可以将此功能用于多种用途。但我最喜欢的功能是使用 Azure 文件同步进行灾难恢复,这一点乍一看并不明显。

在服务器出现故障的情况下,您可以快速启动另一个文件服务器,安装 Azure 文件同步代理,从 Azure 文件下载名称空间,并几乎立即提供对数据的访问。如果你以前从未尝试过,它会非常快。因为您只下载名称空间(实际上是文件存根),所以您可以立即访问所有数据,而无需等待完全恢复。

你可能已经知道了,但是你知道你也可以给你的 Azure 文件共享拍快照吗?这为您提供了时间点恢复,而不会消耗文件共享或服务器上的额外磁盘空间。太好了。

2.Azure 自动化

哦,现在我们开始真正的好东西。排名第二的是 Azure Automation。Azure Automation 是 Azure 提供的经常被忽视的自动化、配置和更新管理工具箱。

它是为混合动力而从头开始构建的。Azure Automation 中的一切都在 Azure 和内部提供相同的功能。一切。

如果你没有使用Azure Automation Update Management来自动化你的微软补丁部署,你真的应该看看。

Azure Automation 真正强大的地方在于它与其他 Azure 服务的集成。自动化更新管理的一个真正常见的反对理由是“如果”。如果我们的域控制器不能正确启动怎么办?如果 SQL 服务器不能正常启动怎么办?

你有几个选择来确保这不会是一个问题。你可以运行 Azure Automation 前置和后置脚本作为你更新计划的一部分。这些 runbooks 的问题是它们只能在 Azure 中运行。但是你知道你可以从这些 run book 调用其他 run book 吗?您还可以调用 runbook 在称为混合工作者的设备上运行。是的,您可以使用一个脚本来检查 Active Directory,并在补丁部署后检查您的 SQL Servers,以确保它们可用。

或者,你也可以将它与 Azure Monitor alerts 集成在一起。在这里,您可以使用古老的 80/20 规则,用广泛的脚本处理 80%的最常见问题,这些脚本检查服务启动之类的事情,还有 20%的脚本专注于您真正关键的应用程序,并对这些应用程序进行真正具体的检查。

不知不觉中,您的补丁将永远是最新的,不会再有任何问题。因此,您可以花更多时间为公司创造价值,而不是一直开着灯。

1.天蓝色电弧

我们成功了。在我最喜欢的五大 Azure 混合云中排名第一。你听说过天蓝色弧光吧?Azure Arc 将 Azure 管理平面(有时称为控制平面)扩展到 Azure 外部的工作负载,无论是内部还是其他云中。真的很整洁。

控制面板为您的工作负载提供基于角色的访问控制和管理功能。这意味着您可以像管理 Azure 虚拟机一样管理和监控本地服务器。

Azure Arc 的一个我最喜欢的特性是当你将它与 Azure Monitor Log Analytics 集成时。为了帮助减轻中央 IT 团队的管理和监控负担,您可以将这项工作分配给工作负载团队。

当您将服务器装载到 Azure Arc 中时,服务器会获得一个 Azure 资源 ID。如果您使用基于 Azure 角色的访问控制(RBAC)授予工作负载团队对 Azure Arc 服务器的读取权限,那么您可以在 Log Analytics 工作区上使用资源上下文模式来授予工作负载团队对他们需要的日志的访问权限,而不授予对整个工作区的访问权限。

对于任何想要从云采用框架中实施分散运营运营模式的公司来说,这都是必须的。

顶级 Azure 混合云技术摘要

我们进展如何——你有没有那种“啊,我不知道”的时刻?确保你与你的网络分享你所学到的,这样其他人也可以学习!

如果你有兴趣了解更多关于 Azure 混合云技术的知识,尤其是在使用 Windows Server 时,请务必查看我的最新课程, AZ-800:管理 Windows Server 混合核心基础设施。这不仅能让你为考试做好准备,而且我还分享了很多在现实生活中帮助你的技巧和窍门。

why should i get azure

想了解更多关于 Azure 认证的信息?
查看我们的 Azure 认证和学习路径。

我的 5 大 Azure 网络技巧

原文:https://acloudguru.com/blog/engineering/my-top-5-azure-networking-tips

在这篇文章中,我想分享我在设计和部署 Azure 网络服务的过程中所学到的五大 Azure 网络技巧。我保证你不需要铲子。但稍后会详细介绍。。。

Azure 有一系列可用的网络服务,它们在不断发展和改进。当谈到在 Azure 上设计和部署网络时,有一些事情你应该永远记住。

部署到 Azure 很容易。事实上,你只需点击几下鼠标就可以部署一个 Azure 虚拟网络。但是,如果您没有花时间以一种易于维护、增长和发展的方式来设计和部署您的网络,那么改变该网络、向其添加服务以及部署到新的区域和订阅可能会非常困难。

我给你举个例子。假设您有一个虚拟网络,其中部署了许多子网和数百台虚拟机。

如果您需要更改虚拟网络的地址空间,会发生什么情况?微软有一些很好的文档告诉你如何做到这一点。

但是!让我们来看看小字。

To remove an address range, you must first delete any subnets (and any resources in the subnets) that exist in the address range.

等等,什么?

是啊。那会有很多工作要做。删除/替换数百台虚拟机。

没人有时间做那个!

让我们用我的五大 Azure 网络技巧来看看如何最小化重复工作并提高可用性、安全性和故障排除。


有什么比学习新的技术技能更好的呢?免费做这件事。查看本月的免费云课程


1.设计您的虚拟网络和子网

让我们先来看看虚拟网络。在设计虚拟网络时,您只需做出几个决定。它们是:哪个地区和哪个地址范围。

哪个地址范围?您将希望选择一个大小“正好合适”的地址范围,不要太大或太小,并且希望确保它不会与任何现有网络重叠。当您确保它没有重叠时,不要忘记检查内部网络、VPN 连接地址范围,甚至其他云。由于公司扩张、收购和合并,我见过一些有趣的网络架构,包括 AWS VPC 和 Azure 虚拟网络之间的 VPN 连接。

现在我们来看看子网。与虚拟网络一样,您会希望将它们的规模调整得恰到好处,这样就不会耗尽您的地址空间。但也许更重要的是,你要确保你把相似的资源组合在一起。您可以在网络接口(NIC)级别控制虚拟机之间的流量,但是在子网级别更广泛地控制流量要容易得多。

另一个重要的考虑是设计如何控制虚拟网络之间的流量。“为什么这很重要?”你可能会问。嗯,虚拟网络是一个安全和通信边界,当您将虚拟网络连接在一起时,这些墙就会倒塌。有人可能会在连接到另一个虚拟网络之前为虚拟网络做出安全决策,一旦连接了虚拟网络,安全控制就不再足够了。

那么如何才能避免这种情况呢?您可以通过一个共享的“集线器”立即传递虚拟网络之间的所有网络流量,从而实现安全性的集中化。这样,当您以后添加更多网络时,安全控制仍会按预期工作。这被称为“中心辐射”模型,微软在这里有更多关于这个概念的介绍。

2.高可用性设计

现在让我们来看看高可用性,这是我最喜欢的话题之一。像 Azure 这样的公共云提供商的一大优势是他们使高可用性变得容易。我记得在我职业生涯的早期,为了提供高可用性,我不得不在不同城市的数据中心之间挖掘光纤。这么说吧,现在轻松多了。

使高可用性在 Azure 上成为可能的重要特性是可用性区域。当您的员工和客户连接到您部署的 Azure 服务时,这种连接严重依赖于提供这种连接的网络服务。

当您部署 Azure 资源和支持网络服务时,请考虑高可用性要求,并根据需要在多个可用性区域和地区部署您的服务。然后,当您部署 Azure 网络服务时,您可以选择部署这些服务,以便它们是区域冗余的,或者支持多个区域中的资源。

3.连接现有网络和设备

当您将资源部署到 Azure 时,通过公共连接(如公共 IP 地址)使这些资源可通过互联网访问真的很容易。

现在,您现有的网络和用户可以通过该公共连接进行连接,但通过专用网络连接您面向内部的资源通常更快、更安全。Azure 提供了许多服务,以通过专用连接或通过虚拟专用网络(VPN)在互联网上建立隧道来实现现有网络和用户之间的连接。

所以我的建议是:如果一个资源是私有的,就保持这种状态——通过私有网络连接启用连接,并阻止公共访问。


获得痛苦的云词典
说云不一定要努力。我们分析了数以百万计的回复,找出了最容易让人犯错的概念。抓住这个云指南获取一些最痛苦的云术语的简洁定义。


4.为您的网络安全分层

现在我们来谈谈网络安全。当您保护您的资源免受攻击时,您可以尽一切可能在外围防止攻击,但随后会出现一些东西绕过您设置的所有安全措施。

几年前,我在审查针对我们网络基础设施的年度渗透测试的结果。其中一个关键问题显示了一个漏洞,该漏洞允许远程攻击者访问 root 密码,并获得对我们的外围设备的完全管理权限。

你能做些什么来减缓他们的进度或减少影响?您可以部署多个安全层,就像攻击者访问您的安全数据和应用程序需要跨越的障碍一样。

这就是所谓的“纵深防御”Azure 网络服务和功能提供了在多个层保护基础架构的工具,包括外围、网络之间、子网之间以及虚拟机或服务上。

5.收集日志和指标

Azure 不仅记录你的资源的所有配置信息,而且使得从你的资源中收集度量和日志数据并集中存储它们变得非常容易。

从来没有人对我说,“我希望你没有收集所有的度量和日志数据。”我发现更普遍的情况是希望我们花时间收集了数据。你永远不知道什么时候你会需要数据来解决“这正常吗?”或者“是什么导致了这一切?”

我的建议在这里?Azure 让收集日志和度量数据变得非常容易,所以在部署资源时打开它。这很可能是无价之宝。

了解有关 Azure 网络的更多信息

简单回顾一下,我的五大 Azure 网络技巧是:

  • 设计您的虚拟网络和子网
  • 高可用性设计
  • 连接现有网络和设备
  • 为您的网络安全分层
  • 收集日志和指标

我希望你觉得这很有用。如果你有兴趣了解更多关于 Azure 网络服务的知识,请查看我的新课程“Azure 网络简介”。

它涵盖了核心的 Azure 网络服务,并探讨了何时使用它们。我们将探讨虚拟网络、安全性、连接性、高可用性和弹性以及故障排除。您还将亲自动手创建一个虚拟网络创建一个虚拟机并使用 Azure Bastion 连接到它。

立即开始 7 天免费试用,试一试吧!或者,如果你已经是 ACG 会员,在这里跳到课程并开始吧。


Azure 您在云中的成功。

提升你的职业生涯。向云专家了解更多最受欢迎的技术技能。查看本月的免费课程获得 7 天免费试用

我对 2022 年 Linux 的五大预测

原文:https://acloudguru.com/blog/engineering/my-top-5-linux-predictions-for-2022

2022 年,Linux 的前景如何?我没有水晶球——而且有很多事情我希望看到——但是这里是我对 2022 年 Linux 将会发生什么的五大预测。


加速您的职业发展

云计算专家让你的云计算职业生涯变得简单(也很棒)。查看 ACG 目前的免费课程立即开始免费试用。


1.Linux 游戏越来越大

今年,Linux 游戏将会变得更加流行。

Linux 稳定且高性能,非常适合游戏。电脑游戏一直都在 Windows 上运行,因为它被广泛使用。像 DirectX 这样的软件和专门为 Windows 编写的视频驱动程序意味着实际上只有一种选择。

但是,Steam for Linux 最近取得了惊人的进步。

还有 Steam Deck,它运行 Arch Linux,所以 Linux 中的软件正在迎头赶上。这意味着 PC 游戏玩家有更多的选择来利用开发人员多年来对 Linux 的了解和喜爱。

我预测,在接下来的一年里,Steam 上的 Linux 用户将会有显著的增长。

2.基于 Arch 的发行版的崛起

我上面提到了 Arch Linux。我预测 2022 年基于 Arch 的 Linux 发行版会增加。

Arch 是我最喜欢的发行版之一。它稳定、强大、可配置性强。这是让坚如磐石的 Linux 系统如你所愿的好方法。此外,这是一个滚动分发,这意味着无论何时更新,您都可以获得最新、最好的软件补丁。不需要大的升级程序。

然而,Arch 并不容易安装和配置——它可能相当痛苦。有一些基于 Arch 的发行版可以消除这种痛苦,比如 Manjaro。

Manjaro 非常容易安装和使用,而且它拥有 Arch Linux 的所有优势。作为一个易于使用、功能强大的系统,它很快受到欢迎。像哥鲁达和爱之鸟这样的发行版也是基于 Arch 的,并且也越来越受欢迎。

基于 Arch 的 Linux 是两个世界中最好的:易于使用和高性能。这就是为什么我预测我们将在 2022 年看到基于 Arch 的发行版的大量增长。

3.平板包 vs 快照 vs 其他一切

我预测 2022 年 Flatpaks 会赢。如果你曾经尝试过安装 Zoom、Skype 或类似的软件,你就会知道这涉及到很多配置。像 Flatpak 和 Snap 这样的安装系统易于安装,这就是它们如此受欢迎的原因。

但是,Snaps 有很多问题。Flatpak 系统似乎更可靠,问题更少。

这对 Linux 新用户帮助很大,随着 Linux 本身变得越来越受欢迎,我认为 Flatpaks 将在 2022 年及以后成为标准。

4.韦兰会赢

好吧,这一条写在墙上。Wayland 每天都在变得越来越好,在 2022 年,我认为它将继续成为首选的桌面。

Wayland 有很多好处,而且它还在不断改进。新用户喜欢它,我预测它将在 2022 年大受欢迎。

5.更多开发人员使用 Linux

我预测 2022 年将会有更多的开发者使用 Linux。现在,你可能正在翻白眼,因为 Linux 的存在仅仅是因为开发者,而且几十年来它一直是首选,对吗?但是有一个转折。。。

我想到的开发者都在用 Windows。没错,WSL,或者说 Linux 的 Windows 子系统正在大步前进。你可以在 Windows 中运行一个完整的、真正的 Linux 系统。它不是一个虚拟机或模拟器,而是一个控制台中真正的 Linux 系统。

因此,人们喜欢使用 Linux 的所有事情——像容器、图像处理、机器学习等等——现在都可以在 Windows 桌面上完成。

现在,所有这些 Windows 开发人员都有了一个很好的方法来在他们的桌面上利用 Linux 的强大功能,他们非常喜欢它!

我预测在 2022 年,我们将会看到更多的开发者在 WSL 中使用 Linux,这自然会将更多的人带入 Linux 世界。

这些是我对 2022 年的预测。你怎么想呢?

DiscordTwitter脸书以及上加入对话,在 YouTube 上订阅一个云专家来获取新鲜的 Linux 和云内容,帮助你了解所有科技的最新动态。

新的一年意味着这是提升职业生涯的最佳时机。查看本月的免费课程(不需要信用卡信息),包括在 Linux 上实践 Podman 容器Linux 操作系统基础

跟上 Linux 的最新发展

这个月 Linux 有什么新内容?查看上面的视频了解最新情况,包括 Linux 远程桌面 0.9,Pop!_OS 21.10,Manjaro 21.1“Qonos”,视频编辑器 Kdenlive 21.12。

在 Azure 数据认证的迷宫中导航

原文:https://acloudguru.com/blog/engineering/navigating-the-maze-of-azure-data-certifications

众所周知,Azure 认证考试生态系统很难驾驭。有许多证书会频繁更新或废弃,并且不断有新的证书加入。今天,我们将深入迷宫的一个特定角落,这就是 Azure 数据认证的世界。找出可以获得的认证,简要了解它们涵盖的内容,并了解它们可以为你的职业生涯增加什么价值。如果你在 Azure 数据空间,或者想先进入状态,不要错过这篇文章。我们走吧!

空气感觉又浓又重。你被枝繁叶茂的树篱墙包围着,似乎每时每刻都在向你逼近。看起来你已经在这个迷宫里走了很多年,在各种各样的道路上走来走去,试图找到适合你的那一条。每走一步,似乎都有新的选择出现。感到困惑和泄气,你扑通倒在冰冷的石头地板上,决定打个盹。

不,这不是最新的幻想系列,而是在云认证的迷宫中导航并试图了解哪一个适合你的职业道路的现实。这可能会令人望而生畏,一旦你似乎掌握了一些东西,一个新的考试就会随着另一个考试的变化而出现。

在这篇博文中,我将分发 Azure 认证考试 DP 系列的路线图(提示:它们都涉及数据)。当你读完这篇文章的时候,你应该对你应该参加哪些证书考试有更好的想法,哪些证书可能对你的职业生涯有最大的影响。(记住这些都是我的观点,所以你的里程可能会有所不同。)



有哪些 Azure 数据认证?

打破目前 Azure 认证数据系列中的可用选项,您可以选择 DP-900、DP-100、DP-203、DP-300、DP-420、PL-300 和 DP-500。一会儿我们会深入了解这些字母和数字的含义。

但是首先——不,证书标题中较高的数字并不意味着它会自动变得更难。事实上, DP-900:微软 Azure 数据基础是你微软数据认证之路的起点。另一方面, DP-100:在 Azure 上设计和实现数据科学解决方案远不是最容易的数据考试。

因此,让我们从我如何看待考试的基本分组开始,然后我们可以深入每一项考试。

入门

  • DP-900:微软 Azure 数据基础

数据科学家T3t

  • DP-100:在 Azure 上设计和实现数据科学解决方案

数据工程师

  • DP-203:微软 Azure 上的数据工程

数据库管理

  • DP-300:在 Microsoft Azure 上管理关系数据库
  • DP-420:使用 Microsoft Azure Cosmos DB 设计和实现云本地应用程序

数据分析师

  • PL-300:微软 Power BI 数据分析师
  • DP-500:使用 Microsoft Azure 和 Microsoft Power BI 设计和实施企业级分析解决方案

每个 Azure 数据认证都涵盖哪些内容?

现在我们已经有了一些基本的分组,我将稍微深入地看一下每一次考试。我不仅会关注考试本身,还会关注我所看到的通过认证对你职业生涯的潜在价值。

基本面

DP-900:微软 Azure 数据基础是对微软数据考试的介绍。在我看来,获得这个证书不一定会给你带来一份新工作或提高你目前的薪水。但是,它将帮助您准备未来的数据考试。对于完美主义者来说,这是你想要添加到你的收藏中的。好消息是,900 系列考试不会过期,所以一旦通过,你就拥有了终身的资格。一点都不差!

对于数据科学家来说

DP-100:在 Azure 上设计和实现数据科学解决方案是数据科学家目前唯一的考试。数据科学就是使用预测建模或机器学习来回答关于数据及其来源的问题。如果你试图证明你在数据科学方面的技能,这是一个很有帮助的考试,但鉴于工作的复杂性质,除非你将资格与工作经验相结合,或者至少有几个你可以在简历中拿出或在面试中谈到的样本项目,否则单靠证书不足以让你在该领域找到工作。

面向数据工程师

在我看来,DP-203:微软 Azure 上的数据工程是这个系列中最难的考试之一。它涵盖了大量的数据服务,不仅关注服务,还关注成为数据工程师所需的工作知识。这项考试将会带来很大的价值,无论是在获得一份数据工程师的工作方面,还是在提高你的潜在收入方面。我认为这是 Azure 数据世界中的一个核心考试,每个在这个领域投入巨资的人都应该考虑参加。注意:这需要大量的学习时间,并对 SQL 和另一种语言,如 Python 或 Scala,有一定的了解。

对于数据库管理员

DP-300:管理微软 Azure 上的关系数据库DP-420:使用微软 Azure Cosmos DB 设计和实现云原生应用考试的范围比 DP-203 窄,分别需要 SQL 和 Cosmos DB 的知识。由于关注点更窄,他们对每个单独的服务进行了更深入的研究,但这些参数可以说使备考更容易。此外,对编码的关注较少,根据你的背景,这可能是一个优势。从职业角度来看,我不认为这些考试与 DP-203 具有相同的价值,仅仅是因为它们的范围和应用更有限。如果你目前的工作是在 SQL 或 Cosmos DB 领域,拥有这些证书对你争取更高的薪水绝对有价值。然而,如果你是从零开始,我会首先关注 DP-203:微软 Azure 上的数据工程。

对于数据分析师

最后,我们有 PL-300:微软 Power BI 数据分析师DP-500:使用微软 Azure 和微软 Power BI 设计和实施企业级分析解决方案。这些考试是关于数据分析的。PL-300 比 DP-500 更容易访问,并且专门关注 Power BI(它也是更广泛的 Microsoft Power Platform 认证系列的一部分,因此它以“PL”而不是“DP”开头)。DP-500 采用从 PL-300 获得的知识,并将其更广泛地应用于设计和实施企业级分析。如果你是一名数据分析师或渴望成为一名数据分析师,这些考试非常受欢迎,对你获得第一份工作或要求加薪非常有益。

我的 azure 数据认证之旅的下一步是什么?

我希望当我们结束这篇文章的时候,你开始看到树篱(和云)的部分,你的职业目标之路变得更加清晰。如果你是数据新手,并试图进入这个行业,我建议从关注 DP-900DP-203 和/或 PL-300 开始。随着你的进一步发展,看看其他的证书,以帮助验证你的技能,更容易获得面试机会,并提高你的工资。请访问我们的目录,参加关于这些认证的深入课程,或者提高您的 SQL 或 Python 技能。祝你好运!


千里之行始于 SQL 步骤

立即在 ACG 开始免费试用,通过我们的一系列 Azure data cert 课程、SQL 课程、动手实验室和其他出色的学习功能加快您的职业发展。不确定从哪里开始?我们将一步一步地指导您掌握在我们的学习道路上前进所需的知识和技能。无论你在旅途中的哪个地方,请通过我们的原创系列 Azure This Week 了解最新的 Azure 新闻。

。NET 6 deep dive:有什么新特性,对开发者有什么意义?

原文:https://acloudguru.com/blog/engineering/net-6-deep-dive-whats-new-and-whats-it-mean-for-developers

本周蔚蓝的世界有什么新鲜事?。网 6!它在这里!这是的最大版本。NET 框架,它不仅渗透到 Azure 的每个角落,还渗透到性能、跨平台等等。详情请继续阅读!

。云中的 NET 6

我将从的云部分开始。NET 6 以及所有相关公告。先说我最喜欢的(因为是我的博文): Azure 功能现在在 4.0 版本,这意味着完全支持。NET 6。

Azure 函数还支持进程内和隔离(进程外)执行模型,这对于像持久函数这样的服务来说是非常关键的。


通往更好职业的钥匙

从 ACG 开始通过 AWS、Microsoft Azure、Google Cloud 等领域的课程和实际动手实验室改变你的职业生涯。


应用服务现在也支持。NET 6 在 Windows 和 Linux 机器上都可以。您也可以使用 ASP.NET 核心,如果您已经在使用的预览版。NET 6 为你的 app 服务,不用慌。当您的应用程序重新启动时,新的运行时版本将自动获得。

Azure 静态 web 应用现在支持全栈。NET 6 应用程序,或者使用 Blazor Web Assemblies,或者使用 Azure Function APIs,或者同时使用两者。

Azure 上的 Kubernetes 也获得了。NET 6 治疗,而且肯定会有更多的服务。。NET 6 是 LTS,长期支持,版本。这意味着任何支持该框架的服务都将拥有该版本。


想了解更多关于使用 Azure 进行云开发的信息吗?查看本月的免费 ACG 课程阵容,包括我们闪亮的新 AZ-400 DevOps 认证考试课程。只需创建一个免费账户并升级。不需要信用卡!


表现在。网络 6

业绩是一个难以捉摸的目标,当你实现它时,它会立即远离你。然而,这并没有阻止微软的奇才。的新版本。NET 有如此多的改进,以至于宣布它的博客文章长达 8 公里。或者差不多。不过,让我给你总结一下。

  • Just in Time (JiT)编译器已经以“难以置信的方式”进行了更新。不,事实上,我相信他们。它与内联和非虚拟化有关。。。不过,我不明白。
  • 垃圾收集器的实现已经从段变成了区域,这对于如何确定内存块的大小和使用内存块具有重要意义。
  • Guid、string、random、environment 等系统类型的吞吐量已经大大提高。在某些情况下,与以前的版本相比,改进了 90%或更多。
  • 收藏和 LINQ 也得到了改善。对列表和字典采取“克隆”的方法。它比以前提高了 97%。净 4.8。天啊。

还有很多,但我有时间做的只有这些了。

我提到这些性能改进是因为,当然,它将所有流入你使用. NET 的 Azure 应用中。如果你对性能调整和改进的细节感兴趣,那么土星 V 大小的博客帖子值得一读。


Complete guide to the Cloud and Dictionary

得到蔚蓝云痛苦辞典
说云不一定要辛苦。我们分析了数以百万计的回复,找出了最容易让人犯错的概念。抓住这个云指南获取 Azure 中一些最痛苦术语的简洁定义。


。NET 6 提供了一个统一的平台

编程的圣杯时刻之一是重用代码。我过去常常在我的 Windows 和 Windows Phone 应用程序之间重用代码。啊,那是过去的美好时光。。。但是我跑题了。

。NET 6 在创建一个包括浏览器、云应用、桌面、物联网和移动应用的统一平台方面取得了巨大进展。

这个平台让分享变得更加容易。目标之间的净 6。您可以编写在浏览器中运行的机器学习应用程序,并查找流数据异常或使用 web assembly 来。浏览器中的. NET 应用程序。用。NET MAUI (多平台应用程序 UI),您甚至可以编写一个项目,在移动和桌面上创建类似的体验。

这些只是所有惊人的创新和进步的一小部分。NET 6。如果你生活在微软 Azure 开发者领域,这真的是一件大事,对 Azure 来说也是一件大事。我鼓励你去看看微软的博文,因为它真的很全面,值得一读。

正如我们在云专家团队中所说的,“寻找,你就会云。”下周见。继续牛逼吧,云大师们!

想跟上万物云? 在 YouTube 上订阅一位云专家 的每周微软 Azure 新闻(以及其他云提供商的新闻)。你也可以像我们一样关注**,关注我们的* 推特 ,或者加入 不和谐 的对话!*

Linux netstat 命令:分析和故障排除讲解 Linux netstat 命令:分析和故障排除讲解

原文:https://acloudguru.com/blog/engineering/netstat-network-analysis-and-troubleshooting-explained

netstat 命令为您提供了一套工具来回答“我的网络上到底发生了什么?”当事情出错的时候。然而,为了能够在这种场合下有效地使用它,你可能想现在就了解它是如何工作的,所以你要做好准备。此外,更好地了解你的人际网络也无妨。

请继续阅读,了解 netstat 到底是什么,您可以用它来做什么,以及它如何帮助您解决问题和了解您的网络。


加速您的职业发展

从 ACG 开始通过 AWS、Microsoft Azure、Google Cloud 等领域的课程和实际动手实验室改变你的职业生涯。


为什么要使用 Linux netstat 命令?

netstat 命令并不真正做独特的事情。它可以打印网络统计数据,但是 ifconfig 也可以这样做。它可以打印路由表,但 route 也可以这样做。它可以打印开放连接,但 lsof 可以做到这一点,甚至更多。那么为什么要使用 netstat 呢?有两个主要原因:

  1. netstat 在一个命令中捆绑了一些常用的网络分析操作
  2. netstat 是多平台的

没错,netstat 在 Windows 和 Mac 上都有,语法也差不多。一次学会,随处使用。当您对运行不同操作系统的机器进行网络故障排除时,这非常方便。所以,事不宜迟,让我们深入了解 netstat 的主要功能。

打印网络连接

使用 netstat,您可以列出您的机器和其他机器之间当前存在的网络连接,以及侦听来自其他机器的连接的套接字。它可以告诉你哪些程序正在你的网络上运行。这里有一个例子:

sudo netstat-apA inet活跃互联网连接(服务器和已建立) Proto Recv-Q Send-Q 本地地址国外地址状态 PID/程序名TCP 0 0 localhost:46178 : list EN 2484/Google talk plugTCP 0 localhost:41093 : list EN 2484/Google talk plugTCP 0 *:ssh : list EN 1894 list EN 1366/DropboxTCP 0 0 trafalgar . local:54744 wi-in-f 17.1 e100 . n:https ESTABLISHED 1792/FirefoxTCP 0 localhost:41093 localhost:45741 ESTABLISHED 2484/Google talk plugTCP 38 0 trafalgar . local:32808v-client-5b . sjc . d:https CLOSE _ 中 1366/DropboxUDP 0 0 *:49678 : 642/avahi-daemon:rUDP 0 0 *:bootpc : 932/dhclient 3UDP 0 0 *:bootpc : 1854/dhclient 3UDP 0 *:17500 : 1366/DropboxUDP 0

这是大量的信息!让我解释一下,从这些列代表什么开始。

  • “Proto”列告诉我们列出的套接字是 TCP 还是 UDP。那些是网络协议。TCP 建立了可靠的连接,但是如果网络质量不好,速度会大大降低。UDP 速度很快,但可能会丢失一些数据包或以错误的顺序传递它们。TCP 连接用于浏览网页和下载文件。UDP 连接被某些快节奏的计算机游戏使用,有时也被实时流使用。
  • “Recv-Q”和“Send-Q”列告诉我们该套接字的队列中有多少数据在等待读取(Recv-Q)或发送(Send-Q)。简而言之:如果这是 0,一切正常。如果任何地方有非零值,就可能有麻烦。如果仔细观察这个例子,您会看到两个套接字有一个 Recv-Q,其中有 38 个未读字节。一旦我们知道了其他列的含义,我们将研究这些联系。
  • “本地地址”和“外地地址”列告知列出的套接字连接到哪些主机和端口。本地端总是在运行 netstat 的计算机上(在本例中,该计算机称为“Trafalgar”),而外部端是关于另一台计算机(可能在本地网络中的某个地方,也可能在互联网上的某个地方)。如果您仔细观察这个例子,您会看到两个套接字将 localhost 作为外部地址。很奇怪,对吧?可以说,这意味着计算机正在通过网络与自己对话。一旦我们知道了所有列的含义,我们将研究它的含义。
  • “状态”栏告知列出的插座处于何种状态。TCP 协议定义了状态,包括“LISTEN”(等待外部计算机联系我们)和“ESTABLISHED”(准备好通信)。其中最奇怪的是两个套接字显示的“关闭等待”状态。这意味着外部或远程机器已经关闭了连接,但是本地程序不知何故没有跟着关闭。请注意,两个“关闭等待”套接字也是 Recv-Q 中有 38 个未读字节的套接字。奇怪的状态和非空队列经常一起出现。
  • “pid/程序名”列告诉我们哪个 PID 拥有列出的套接字,以及在具有该 PID 的进程中运行的程序的名称。因此,您可以看到哪些程序正在使用网络,以及它们正在连接到谁。

那么如何解读这个输出的一行呢?我们来看看以“火狐”结尾的那一行。Firefox 在为安全 HTTP 连接预留的端口(顺便说一下是 443)上连接到外来地址 wi-in-f 17.1 e 100 . n[某个东西]。使用-W 选项(sudo netstat -ap W A inet),完整的外国地址显示为 wi-in-f17.1e100.net,恰好属于谷歌。这个连接可能是存在的,因为当我运行这个命令时,Gmail 是在一个标签页中打开的。这里没问题。

在查看列含义时,我们遇到了一些奇怪的连接。首先,有两个 Recv-Q 为 38(实际上应该是 0)且处于“关闭等待”状态的连接。最后一列告诉我们,这些套接字都属于 Dropbox,它还有一些其他连接和一个侦听套接字,看起来情况更好。不知何故,Dropbox 似乎在“泄漏”插座,或者至少让它们悬着。外部机器已经关闭了两个连接,但是本地 Dropbox 进程没有关闭它们,这意味着套接字占用的资源没有被释放。这可能是 Dropbox 部分的一些草率编程,但只要它只留下两个套接字,就不是什么大问题。

如果你有一个程序生成了很多这样的套接字,你可能想把它报告给程序的创建者,并且可能定期重启程序来摆脱混乱。

我们遇到的另一个奇怪的事情是,两个套接字都有 localhost 作为外来地址,这意味着这台计算机和它本身之间有一个网络连接。然而,PID/程序名称列告诉我们有两个不同的程序以这种方式通信,即 Google Talk 插件和 plugin-container,这是 Firefox 用于运行插件的容器程序。换句话说,Google Talk 插件使用 TCP 网络在同一台计算机上运行的独立部分和 Firefox 插件部分之间进行通信(注意本地端口号和外部端口号是如何匹配的)。

这种使用网络功能的方式不常使用,但在这种情况下很有意义。因为联网是跨平台统一的(Linux、Windows 和 Mac 都以相同的方式进行),所以在这里使用它为 Google Talk 插件提供了一种在各部分之间进行通信的可移植方式。

现在,让我告诉您,要充分利用 netstat 的输出,需要对网络以及什么程序应该和不应该使用您的网络有一些透彻的了解。然而,如果你没有这方面的知识,你至少还可以通过在互联网上搜索你不知道的程序并阅读它们来决定它们是否应该存在,从而知道哪里出了问题。为了帮助你更好地理解正在发生的事情,这里有一些提示:

  • 如果外部地址是*:*(对于 TCP 套接字,状态是 LISTEN),套接字通常等待某个远程主机发送第一个数据。典型的例子有:sshd(等待某人打开 ssh 连接)、apache(等待某人请求网页)、cupsd(等待某人发送打印作业)和 dhclient(等待 DHCP 服务器发送,例如,续订租约)。
  • 当连接到外部主机时,您计算机上的程序通常不关心哪个本地端口用于连接。这就是为什么本地端的端口通常不被识别和转换成像“https”或“www”这样的协议;它实际上是从一系列未预留的端口中挑选出来的,以避免与其他协议混淆。这种端口号的示例(来自上面的输出示例):54744、32808 和 34354。

在转到 netstat 的下一种输出类型之前,让我解释一下示例中使用的选项。首先,-a 告诉 netstat 显示所有套接字,包括监听和非监听。接下来,-p 告诉 netstat 显示 PID/Program name 列,这对于判断一个套接字是否应该存在非常有帮助。

最后,“-A inet”告诉 netstat 只显示 TCP/UDP 套接字。如果没有这个选项,输出通常会充斥着 Unix 套接字,从网络的角度来看,这没什么意思。注意,在 Windows 上,“-A inet”可以直接省略,-p 应该替换为-o,在 Mac 上,没有-p 的对等词,“-A inet”变成了“-f inet”。如果你需要知道 Mac 上的程序名/PID,使用“lsof -i”。

打印路由表

除了活动套接字之外,netstat 还可以列出计算机路由表中的当前条目。在网络世界中,路由意味着决定将带有特定目的地的数据包发送到哪里。再举一个例子:

netstat -rKernel IP 路由表目的网关 Genmask 标志 MSS 窗口 irtt iface 192 . 168 . 1 . 0 * 255 . 255 . 255 . 0 U 0 0 eth 0 link-local * 255 . 255 . 0 . 0 U 0 0 eth 0 default smoothwall 0 . 0 . 0 . 0 UG 0 0 eth 0

正如您可能已经猜到的那样,-r 选项告诉 netstat 显示您计算机的路由表。为了帮助您正确解释输出,让我解释一下这些列的含义:

  • “目的地”列表示数据包的目的地与之比较的模式。当必须通过网络发送数据包时,会从上到下检查该表,然后使用具有匹配目的地的第一行来确定将数据包发送到哪里。192.168.1.0 中的零表示“匹配这个位置的任何东西”,所以 192.168.1.53 匹配,192.168.1.254 也匹配,但是 192.168。20.254 不匹配。“本地链接”标签代表 169.254.0.0,这是一个特殊的 ip 地址范围,在没有其他方法来确定计算机应该拥有哪个 ip 地址时使用(没有 DHCP 或静态配置的地址)。“默认”标签代表 0.0.0.0,显然可以匹配任何目的地;最后一行是包的总称。
  • “网关”栏告诉计算机将与同一线路的目的地相匹配的数据包发送到哪里。星号(*)在这里表示“本地发送”,因为目的地应该在同一个网络上。“smoothwall”网关实际上是示例计算机网络中的一台计算机,它过滤 web 流量并可以访问互联网,因此发往任何非本地目的地的数据包被发送到那里是有道理的,这样它就可以将其转发到互联网。
  • “gen mask”列有些高级(它告诉您从 ip 地址开始有多少位用于标识子网,如果这对您有意义的话),但是,根据经验,对于目的地的任何非零部分,它是 255,对于目的地为 0 的部分,它是 0。
  • “标志”栏显示哪些标志适用于当前表格行。“U”表示向上,表示这是一条活动线。“G”表示这条线路使用网关。
  • “MSS”栏列出了该行的最大段尺寸值。MSS 是一个 TCP 参数,用于在目的地指示它无法处理较大的数据包时拆分数据包。现在大部分电脑对最常用的最大数据包大小都没有问题,所以这一列的值通常为 0,表示“没有变化”。
  • “窗口”列类似于 MSS 列,因为它给出了改变 TCP 参数的选项。在这种情况下,该参数是默认的窗口大小,它表示在至少有一个 TCP 包必须被确认之前,可以发送多少个 TCP 包。如果你不知道这意味着什么,不要担心。与 MSS 一样,该字段通常为 0,表示“无变化”。
  • “irtt”列代表初始往返时间,并且可以被内核用来猜测最佳 TCP 参数,而无需等待缓慢的回复。实际上,它用得不多,所以在这里你可能再也看不到除了 0 以外的任何东西。
  • “I 接口”栏告诉我们应该使用哪个网络接口来发送与目的地匹配的数据包。如果您的计算机连接到多个网卡上的多个子网,您可能会发现一些线路的接口为 eth0,而其他线路的接口为 eth1。见鬼,即使第二块网卡没有连接但刚好可用,表中也可能有它的一些路由规则。

因此,当您的计算机将要发送数据包时,它会查看该数据包的目的地,然后开始逐行将其与路由目的地进行比较。假设计算机要发送目的地为 192.168.1.31 的数据包。这个 ip 地址匹配 192.168.1.0,因为 0 匹配那个位置上的任何东西,所以数据包被发送到 eth0 接口的本地网络(因为网关是*),而不改变 MTT、Window 或 irtt 值。

假设计算机想要发送一个数据包到 208.67.222.222(主 OpenDNS 服务器)。此 ip 地址与 192.168.1.0 不匹配,因此跳过第一行。它也不匹配本地链路(169.254.0.0),所以第二行也被跳过。ip 地址确实与 0.0.0.0 匹配(任何 ip 地址都匹配),因此数据包被发送到 smoothwall (192.168.1.1)以转发到互联网,在那里,它可能在多跳几跳后到达 OpenDNS 服务器。

通常,您的路由表中的默认线路设置是正确的,您不必担心这一点。然而,路由表中的一条错误线路可能会阻止部分或全部互联网流量到达目的地。当这种情况发生时,您经常得到的错误是“没有到主机的路由”。遗憾的是,这种错误在许多其他情况下也会出现,但是如果您遇到这种情况,无论如何都要看看您的路由表。如果它包含一个错误的行或者缺少一个重要的行,您可以使用 route 命令来更改/添加它(在您的命令行中运行“man route”来查看它是如何工作的)。

显示接口和统计数据

使用 netstat,您可以列出机器上可用的接口,并读取一些关于它们运行情况的统计数据。一个例子:

netstat-Iker 接口表分析 MTU met rx-ok rx-err rx-DRP rx-ovr tx-ok tx-err tx-DRP tx-ovr flgeth 0 1500 0 250055 0 1420 390 0 0 bmrulo 16436 0 16 0 0 0 16 0 0 0 LRU

你可能注意到了,这些列有点乱。如果不确定某个值属于哪一列,请计数!每行中的字段数和列数一样多,所以它们是匹配的。说到列,让我给你解释一下它们的含义:

  • “I 接口”列包含显示统计数据的接口名称。主网卡通常称为“eth0”。环回接口(缩写为“lo”)是一个虚拟网卡,它允许计算机在不打扰硬件设备的情况下与自己建立网络连接(还记得网络连接部分的 Google Talk 插件吗?),从而提供更好的性能。
  • “MTU”栏列出了该接口一次可以发送的最大传输单元。它是在相当低的级别上使用的字节数,这意味着无需拆分即可发送的 TCP 数据包的实际最大大小要小几十个字节。
  • “RX-OK/ERR/DRP/OVR”列给出了迄今为止接口接收到的数据包的统计信息。“OK”代表“正确接收”,“ERR”代表“接收到,但校验和不正确”(当连接不好时),“DRP”代表“因为我的接收缓冲区太满而被丢弃”(当在很短的时间间隔内接收到太多数据包时),而“OVR”代表“因为内核无法及时获得而被丢弃”(如果发生这种情况,您的计算机真的忙)。
  • “TX-OK/ERR/DRP/OVR”列与 RX 列大部分相似,除了它们是关于到目前为止由接口发送的数据包。
  • “Flg”列包含该接口激活的标志。“B”表示“广播能力”,意味着此接口可以向同一子网上的所有人广播数据包。“M”表示“多播能力”,意味着该接口可以发送具有多个目的地的数据包。“L”表示“环回接口”,这意味着这是一个将随其发送的所有内容立即放入其自己的接收队列中的接口。“U”和“R”分别表示“向上”和“运行”。我想我不必解释这些。).

在本例中,请注意“RX”和“TX”的“ERR”、“DRP”和“OVR”列中的漂亮的零。显然,这里的网络状况良好:)。

还要注意“lo”接口的 MTU 值。16436 字节超过了任何正常的真实网络接口所能提供的,因此应该能够发送任何包而不需要分割。这进一步提高了环回接口的性能。

给你一个提示:如果你的网络看起来比它应该慢得多,你可能想运行“netstat -ci”来查看你的网络统计数据每秒的更新。如果“错误”、“DRP”和/或“OVR”值持续增长,那么您的网络中一定有猫腻。检查干扰和/或不良交换机或路由器。在 Windows 和 Mac 上,您需要使用稍微不同的命令来做同样的事情。在 Windows 上,应该运行“netstat-E1”(-e 替换-i)。在 Mac 上,“netstat -iw 1”。

这是这三个平台共有的三个 netstat 功能,但还有更多。Linux netstat 可以使用“-m”来显示伪装的连接,而 Mac 使用相同的选项来显示内存管理统计信息。

Linux 和 Mac 都可以使用-g 选项显示组成员。这些额外的功能不常使用,但是如果您想了解更多,可以在命令行中运行“man netstat”来获得更多信息。并且不要害怕自己做一些实验;netstat 只显示信息,你不会破坏任何东西。

如前所述,只有对网络和 Linux 系统了如指掌,才能真正有效地使用 netstat。如果您想提高您的 Linux 知识,请查看我们的培训库的 Linux 课程和动手实验室!

网络故障排除方法:快速指南

原文:https://acloudguru.com/blog/engineering/network-troubleshooting-methodology

排除网络故障是你能掌握的最重要的技能之一,因为它能让你把你的环境提升到一个新的水平。我喜欢把网络想象成流入更大河流的小溪。


学习网络基础知识

您是否对网络感兴趣并需要一个起点,或者希望温习基础知识?我们的“网络基础”课程将带您了解基本的网络概念,无需任何先验知识。


我应该从哪里开始网络故障排除过程?

就像一条小溪,你的网络可能会意外或故意堵塞。当你在你的溪流中时,你需要注意大坝或碎片。在您的网络中,安全组、NACLs 和可路由路由器就像水坝和碎片,使水向特定方向流动。大坝,或有意的规则,将水引向有助于电力或灌溉的方向,而碎片,或意外或恶意的规则,可能会意外地阻断水。当您遇到连接问题时,这些是查找问题的第一步。

什么是安全组?

安全组控制相对于您的资源的流量方向。例如,如果您有一个需要连接的 EC2 实例,那么您应该为您的 IP 地址的端口 22 或 3309 设置一个规则,以允许您(并且只有您)连接到该资源。

什么是 NACLs?

NACLs 是帮助保持您的环境安全的防火墙。它们控制您环境的入站和出站规则,允许流量流入或流出您的环境。

什么是路由表?

路由表通过允许您连接到其他 VPC 来控制您环境的流量,这些 VPC 通过网关连接到为您提供端点的其他资源。有两种类型的网关:过境和互联网。中转网关将您的 VPC 连接在一起,因此您可以将内部或其他设备连接到您的云设备。互联网网关允许您连接到互联网。

当您组合这些服务时,您可以确保您的环境安全,同时确保您可以连接到您需要的一切。

网络故障排除难吗?

网络是复杂的,并且一直在变化。诊断网络问题需要多种知识、对细节的精确关注以及出色的解决问题的技巧。一旦你知道在哪里寻找和寻找什么,就很容易完成问题的鉴别诊断。你只需要确保从小处着手,沿着一条清晰的道路前进。


了解更多 AWS 网络连接故障排除技巧

无论您是解决方案架构师、系统运行工程师还是开发人员,您都有可能在云计算之旅的某个阶段遇到网络连接问题。学习如何快速识别和解决 AWS 中的网络问题是一项伟大的技能,将在你的整个职业生涯中为你服务。


网络问题的三个最常见原因是什么?

港口关闭了

假设连接没有来自外部的任何问题,您的 NACLs 和安全组控制着通过您的环境的流量。检查您的安全组或 NACLs 中允许您首先连接的规则。在 Windows 设备上,从端口 3389 查找 RDP 规则。在 Linux 设备上,使用您的 IP 地址在端口 22 上查找 SSH 规则。

规则不会应用于所有群组

只要您有适当的协议或规则,就很容易连接到您的设备。规则经常被遗漏,因为它们是在控制台的 EC2 部分配置的,需要添加到每个单独的组中。最常见的问题之一是向一个组添加规则,而不向另一个组添加规则。

交通被规则堵塞了

另一个你应该注意的连接问题是你的 NACLs 和路由表,它确保只有你想要或需要的流量才被允许进出你的网络。你需要这样的东西,如服务器,如果你是一个或几个网站的主机。您还应该确保您没有多余的规则,这些规则会使您的环境变得更加复杂。

在哪里可以获得网络故障排除的更多帮助?

关于网络的 AWS 白皮书提供了来自 AWS 专家的有价值的深入信息。但他们可能需要一段时间来梳理。对于特定问题的答案,网络工程堆栈交流是一个网络工程师就网络问题进行合作的论坛。


准备 AWS 认证高级网络-专业 2020 考试

在本课程中,我们将介绍获得 AWS 高级网络专业认证并成为 AWS 网络专家所需了解的 AWS 网络和相关服务领域

网络服务对比:AWS vs Azure vs Google Cloud

原文:https://acloudguru.com/blog/engineering/networking-services-compared-aws-vs-azure-vs-google-cloud

在这篇文章中,我们的云提供商比较系列的一部分,我们来看看网络——将所有精彩的云服务连接在一起的主干——以及网络服务如何在不同的云提供商之间进行比较。我们将探索基本的网络、网关、对等和负载平衡器。我们开始吧!


通往更好职业的钥匙

立即开始 ACG 通过 AWS、Microsoft Azure、Google Cloud 等领域的课程和实际动手实验室来改变你的职业生涯。


云如何改变了网络?

自拨号上网时代以来,网络的基本原理多年来没有多大变化,但网络的实现方式却发生了很大变化。

自从拨号上网时代以来,它变得更加可靠,谢天谢地,速度也快多了。网络是资源和服务相互通信的方式。对于内部网络,我们必须部署和配置路由器、交换机和防火墙,应用固件更新和更换硬件是一项常见的工作。

但是云终结了这些任务。

虽然硬件不再是我们的问题,但网络仍然存在,我们仍然负责配置和保护它。

什么是虚拟网络?

让我们从基础开始,网络。Azure、谷歌云平台和亚马逊网络服务都提供了一个虚拟网络。可以把它想象成一个托管在云中的虚拟路由交换机。它是所有服务连接并用来相互通信的东西。

在 Azure 中,虚拟网络被称为 VNet。

对于 AWS 和 GCP,网络被称为虚拟私有云或 VPC。

  • 在每种情况下,它们都有相似的功能。它们包含一个或多个子网,并允许资源和子网之间的通信。
  • 网络基础

每个云提供商都有区域的概念。区域是一个或多个数据中心的组合。将工作负载分散到多个区域通过在这些区域复制服务来提供高可用性。我们还可以将资源放在离客户更近的地方。

Azure 和 AWS 之间网络利用区域的方式相似,而 GCP 则不同。

微软 Azure

使用 Azure,虚拟网络或 VNet 存在于一个区域中。子网被添加到 VNet,并且资源被分配到该子网,默认情况下,VNet 中的所有资源可以相互通信,包括不同子网上的资源。

默认情况下,他们也可以访问互联网。为了连接到该子网,资源必须与 Vnet 位于同一区域。如果高可用性需要冗余,另一个虚拟网络将部署到不同的区域。

自动警报系统

像 Azure 一样,VPC 是在有 AWS 的地区创建的。AWS 中的 VPC 使用可用性区域,这些区域是不同的位置,与另一个可用性区域中的故障隔离,子网存在于这些可用性区域中。

在 AWS VPC 中,有两种类型的子网,公共子网和私有子网。公共子网可以访问互联网,而私有子网则不能。

默认情况下,AWS 中所有连接到 VPC 的资源或实例都可以在 VPC 内通信。

谷歌云(GCP)

与 AWS 和 Azure 相比,GCP 采用了一种不同的方法来与我们的全球 VPC 实现联网。

顾名思义,全球 VPC 跨越多个地区,不与任何特定地区相关联。这是一种全球资源。创建全球 VPC 网络时,系统会在每个 GCP 地区创建子网。子网是特定于区域的。

默认情况下,所有实例(例如虚拟机)都可以在网络中相互通信。

对等和网关

现在我们已经了解了每个提供商的网络和子网,让我们看看如何连接它们,以便我们可以在服务中的不同 VPC 和 Vnets 之间进行通信。毕竟,如果我们不能与云服务交流,云服务就没有那么有用。

每个提供商都支持虚拟网络之间的对等。

例如,Azure 支持 vnet 之间的对等,允许对等的 vnet 进行通信。

AWS VPCs 也支持对等。

  • 还有 GCP 的 VPC。
  • 但是对于所有这三种情况,不支持可传递对等。因此,如果网络 A 与网络 C 的 B and B 对等,网络 A 和网络 C 将无法通信,至少在我们在 A 和 C 之间添加另一个对等之前是如此
  • 然而,这种解决方案不能很好地扩展,如果我们再增加一个网络,我们需要三个以上的 peerings 来让它们全部通信。随着网络数量的增长,这将很难管理。我们需要的是一个轴辐式解决方案,允许我们用一个连接来连接多个网络。这是通过网关实现的。

微软 Azure

在 Azure 中,VNet 成为一个集线器和一个集线器和辐条,对等用于将辐条 VNet 连接到集线器,集线器包含一个在不同网络之间路由流量的网关。

网关支持虚拟网络之间的连接传输。网关也支持 Azure 之外的连接。VPN 网关支持网关和 VPN 端点之间的 VPN 连接,例如,支持到内部网络的连接。

ExpressRoute 网关支持 Azure 和具有专用 ExpressRoute 连接的内部网络之间的连接。快速路由连接是第三方网络上的安全冗余连接。

自动警报系统

对于 AWS,可传递网关用于连接多个 VPC。网关的转接连接到一个区域内的 VPC,并允许流量在它们之间流动。

如果涉及多个地区,地区间对等连接网关的转接,提供网络之间的连接。

使用虚拟专用网关,可以通过 VPN 连接到远程网络。

对于专用连接,AWS 直连网关用于在内部网络和 VPC 之间提供专用的高带宽专用连接。

在这种情况下,数据中心和 AWS 之间的连接需要第三方提供商。这些提供商位于 AWS 数据中心附近,在内部网络和 AWS 之间提供了一个私有的、可靠的连接。

谷歌云(GCP)

这就把我们带到了谷歌云服务。请记住,GCP 的 VPC 是跨区域的,默认情况下所有子网都可以通信。

GCP 介绍了项目的概念。VPC 是项目的一部分,VPC 内部的子网可以通信,但不能与另一个项目中的 VPC 通信。为了让两个 VPC 进行通信,我们需要添加 VPC 对等。

就像 Azure 和 AWS 一样,GCP 的对等是不可传递的。也就是说,如果我们添加第三个项目和 VPC,并与 VPC 和项目 2 对等,则项目 1 和项目 2 可以通信,项目 2 和项目 3 可以通信,但项目 1 和项目 3 无法通信,除非我们添加另一个对等关系。

GCP 还有一个特色,叫做共享 VPC。这提供了灵活性,允许多个项目利用一个中央 VPC,在这里可以控制和集中管理连接。

有两种网关用于本地网络的混合连接,包括通过公共互联网连接提供安全连接的云 VPN。

GCP 还提供云互联服务。这与 Azure ExpressRoute 和 AWS 私有虚拟连接一样,提供了私有专用电路上的安全连接。

所有服务都使用边界网关协议或 BGP 来管理不同内部和云网络之间的路由。如果您计划使用对等或连接到本地网络,则不能有任何重叠的子网。因此,规划 IP 地址空间非常重要。

关于混合连接的另一个注意事项是,他们不仅可以将云网络连接到本地网络,还可以连接多个云服务,从而能够实施真正的多云战略,并在每个服务之间实现安全连接。

获得痛苦的云词典
说云不一定要努力。我们分析了数以百万计的回复,找出了最容易让人犯错的概念。抓住这个云指南获取一些最痛苦的云术语的简洁定义。

负载平衡


Complete guide to the Cloud and Dictionary

网络的另一个重要特性是在多个服务实例之间分配连接的能力。这被称为负载平衡。


负载平衡不仅有助于提高可用性,而且通过将工作负载分散到同一服务的多个实例中,也有助于提高性能。

实现负载平衡的方法有很多,Azure、AWS 和 GCP 有不同的选项来满足任何负载平衡需求。

Azure 有一个协议级负载平衡器,叫做 Azure Load Balancer。负载平衡可以通过一个名为 Azure 应用网关的应用级负载平衡器来扩展。Azure 还提供了一个名为 Traffic Manager 的域名服务或 DNS 负载平衡器。它使用名称到 IP 地址的解析来根据您定义的规则分配连接,并使用名为“前门”的全局负载平衡器来支持 SSL 卸载,并根据您配置的规则将流量路由到最近的资源。

正如您所料,AWS 还提供了多种负载平衡解决方案。AWS 中的网络负载平衡器基于传输层或 SSL 流量层来分配连接。应用负载平衡器在应用层做出路由决策,使用基于路径的路由来引导流量。AWS 还提供了一个名为 Route 53 的 DNS 负载平衡器。Route 53 使用 DNS 根据您配置的规则路由流量,这些规则包括 DNS 端点的健康检查、地理位置和基于延迟的决策。

  • 最后但同样重要的是与 GCP 的负载平衡。谷歌云与其他的略有不同。有两种基本类型的负载平衡器,内部和外部。使用内部负载均衡器,客户端请求来自 Google Cloud 内部,内部负载均衡器是区域性的。它可以使用 TCP 或 UDP 端口来管理流量,或者内部负载平衡器可以是使用 HTTP 或 HTTPS 来引导流量的代理。当客户端连接来自互联网时,使用外部负载平衡器。外部负载平衡器可以是区域性或全球性的,并使用直通或代理模式来路由流量。

  • 当我们比较这些选项时,请记住,在使用负载平衡器规划高可用性时,跨多个地区或地理位置正确设计服务以及构建和冗余与负载平衡解决方案同样重要。

  • 例如,如果我们部署了一个负载平衡器,但其背后的资源都在一个数据中心,如果该数据中心变得不可用,该解决方案将面临风险。更好的解决方案是使用全局、区域或内部和外部负载平衡器的组合来设计高可用性解决方案。但那是改天的话题…

要了解有关网络的更多信息,请查看以下课程:

想了解更多关于云计算和技术领域最热门的技能吗?开始免费试用或查看本月的免费云培训。你也可以在 YouTube 上订阅一位云专家的每周云新闻,像我们一样关注脸书,在 Twitter 上关注我们,并加入 Discord 上的对话。

看点:解决“没有经验”的云招聘问题
没有工作是得不到经验的。但是谁会雇佣没有经验的你呢?谜题!观看这一免费的点播网络研讨会,进行关于云计算职业发展的小组讨论,并获得您的第一份云计算工作。

Looking to learn more about cloud and the hottest skills in tech? Start a free trial or check out this month’s free cloud training. You can also subscribe to A Cloud Guru on YouTube for weekly cloud news, like us on Facebook, follow us on Twitter, and join the conversation on Discord.


WATCH: Solving The “No Experience” Cloud Hiring Problem
You can’t get experience without a job. But who’ll hire you without experience? Conundrum! Watch this free, on-demand webinar featuring a panel discussion on cloud career development and getting your first cloud job.

面向 PostgreSQL 的全新 AlloyDB 和可靠的开源软件服务

原文:https://acloudguru.com/blog/engineering/new-alloydb-for-postgresql

你好,云大师!你可以看出本月的谷歌云平台公告是一件大事,因为谷歌即将上线的两个新的云区域甚至不是最大的新闻!这一荣誉由谷歌的新 AlloyDB 产品分享,该产品与亚马逊的“Aurora”数据库竞争,他们的新服务通过——好吧,让我们不要破坏惊喜!阅读到最后,找出答案——或者如果你感到不耐烦,就向下滚动。


通往更好职业的钥匙

立即开始 ACG 通过 AWS、Microsoft Azure、Google Cloud 等领域的课程和实际动手实验室来改变你的职业生涯。


PostgreSQL 的新 AlloyDB

我们这个月的第一个大新闻是谷歌为 PostgreSQL 开发的闪亮AlloyDB 产品。该产品似乎介于云 SQL 和云扳手之间。此外,尽管他们拒绝在其营销帖子中使用明确的术语,但谷歌显然打算以此与亚马逊的 Aurora 数据库直接竞争,并吸引人们离开甲骨文。

他们的文章开头写道,“企业正在努力摆脱遗留数据库系统,需要一种替代方案来实现应用程序的现代化。”在第二段中,他们声称“在我们的性能测试中…AlloyDB 的事务性工作负载速度也比亚马逊的同类服务快两倍。”

关于 AlloyDB 我首先需要明确的是,它目前处于预览版。因此,就此得出具体结论并不公平。但我认为,尝试回答一些最有可能的问题仍然是有价值的,这些问题是关于它如何工作,以及一旦它准备好进入黄金时间,它将如何融入人们的架构。

对于它如何工作的问题,我们可以转向谷歌关于它的文章。公告帖子没有涉及太多细节,但 Google 写了另一篇文章解释 AlloyDB 如何构建为具有 PostgreSQL 处理层,该处理层使用新的数据库感知存储层,该存储层反过来使用 Google 的分布式文件系统。这额外的一层意味着处理和存储之间更好的分离。值得一提的是,这似乎很像亚马逊如何在构建 Aurora

然而,第二篇文章描述了 AlloyDB 如何使用列引擎,这让我想起了 BigQuery、Amazon Redshift 或 Oracle 产品。而这个可能就是为什么谷歌可以宣称“在我们的性能测试中,它在事务性工作负载上比标准 PostgreSQL 快 4 倍多,在分析性查询上快 100 倍。”

现在,这肯定是非常有趣的,尤其是关于分析查询快一百倍的那一点!谷歌还表示,当它们全面上市时,将提供 99.99%可用性服务水平协议。这个包括维护,因为“AlloyDB 自动检测大多数数据库故障并在几秒钟内恢复,与数据库大小和负载无关”。

不过,我确实需要稍微调整一下,因为这是一个早期产品。我的意思不仅仅是因为它还在预览中。我的意思是,要想与亚马逊的 Aurora 直接竞争,它似乎需要在其他一些领域迎头赶上。例如,我还没有发现 AlloyDB 可以取代 Aurora 全球数据库的地方。这似乎仍然是一个由 Cloud Spanner 更好处理的领域。此外,因为 AlloyDB 似乎需要您提供和手动扩展实例来处理容量,所以它的最低月成本看起来将比 Aurora Serverless v2 高得多,后者理论上可以缩减到几乎为零—只有存储。

但我还不会放弃 AlloyDB!当它发布的时候,它肯定会在一些架构中占有一席之地。我相信谷歌人已经在忙着让它变得更好了。



新的有保证的开源软件服务

我们的另一个主要新闻是谷歌宣布他们即将推出的放心开源软件服务,也称为放心 OSS。现在,这个名字可能会让你们中的一些人觉得是自命不凡的胡言乱语,但我想告诉你为什么我认为这是一件大事。

我先来解释一下这个问题。目前,在软件开发中,我们所有都使用公开可用的包、模块、库、框架等。来构建我们的应用程序。试图在没有开源项目支持的情况下构建一切将会使我们处于竞争劣势,这种情况只会发生在最具限制性和官僚主义的项目上。我们其余的人继续前进,完成我们的工作。但是,通过将我们没有编写和控制的代码整合到我们的应用程序中,我们给了那些控制代码的人影响我们的权力。**

我们当然也受到了影响。还记得 2016 年 left pad 的创造者是如何让互联网轰动一时的吗?如果你不熟悉这个故事,请阅读这篇文章。当然,这只是一个例子。

现在一些我们可以做的事情来缓解这个问题——比如在我们的构建文件中固定版本号,以便我们只包含我们已经审查为安全的软件包版本。虽然,不幸的是,这甚至不能解决像取消发布 Leftpad 这样的问题。相反,我们需要自己制作这些包的副本,并自己管理它们。但是这些包也使用其他包,所以我们需要包含这些依赖项。等等,等等,几乎永远!毫不夸张地说,一个简单的“Hello World”应用程序可能会轻松地从几十万其他人的代码行中获取数据。其中任何一行的改变都可能将我们的应用变成恶意软件。因此,我们可能需要审查所有的变更。

这显然是一场噩梦。使用这些软件包的全部目的是让我们能够完成我们的工作,对吗?不要用一个问题换另一个问题。

这是谷歌即将推出的可靠开源软件服务的全部内容。谷歌已经有团队负责我提到的所有仔细审查,因为他们是一家大公司。当然,如果你使用 Assured OSS 服务,你仍然不会亲自审查所有这些东西*,但我相信谷歌会比我自己更好地审查所有这些东西。另外,我只是没有时间。*

至于服务本身,你可以阅读文章来了解更多关于 Google 如何扫描、分析和模糊测试包,然后构建、签名并通过 Artifact Registry 分发它们。谷歌指出,“有保证的操作系统预计将在 2022 年第三季度进入预览版。”

现在,让我们来看看这个月的一些小故事吧!


新的谷歌云区域现已在西班牙马德里开放

首先,我们来谈谈我提到的那两个新开的地区:第一个是在西班牙的马德里地区,叫做欧洲-西南 1。 第二个在俄亥俄州哥伦布市,叫 us-east-5。是的,这是美国东部的第五个谷歌云区域,这还不包括加拿大东部的两个更远的区域。这使得谷歌新的全球总数达到 33 个地区,由 100 个区域组成。由于我们正在统计,他们在全球还有 146 个网络边缘位置

具有云功能的 BigQuery 远程 UDFx

谷歌这个月做的另一件很酷的事情是给 BigQuery 调用你的云函数的能力,作为其查询处理的一部分。现在你可能想知道为什么你会选择使用这个付费的选项,而不是免费的内置用户定义函数(UDF)。嗯,一个原因是内置的只支持 Javascript 或 SQL,而云函数支持一大堆其他语言。另一个原因是,云功能可以调用其他服务,让你做一些事情,例如,与外部令牌进行交互,以及可以极大地简化你的一些合规性要求。**

现货虚拟机现已正式上市,采用新的定价模式

本月,谷歌新推出的“定点虚拟机”将取代“可抢占的”虚拟机。您仍然可以使用旧的方式创建可抢占的虚拟机,但现在将根据新的现货虚拟机可变定价模型进行收费。可抢占的虚拟机过去有固定的成本,但现场虚拟机的价格会根据需求而变化,因此查看博客文章来了解这些细节如何适用于您。

好了,让我们以一些快速更新结束,这样你就可以决定是否要阅读这些文章以获得更多信息:


The ROI Report: How the Cloud Helps You Grow

云 ROI:云技能如何产生实际回报我们分析了来自近 100 家公司的信息,以确定承诺对云成熟度的影响。在这份指南中,看看企业投资云技能和技术能获得多少价值。


获得更多的 GCP 新闻善良在你身上!

嗯,这个月到此为止!我希望你从这些更新中获得价值。别忘了,你可以加入我们的 Discord 来讨论各种各样的事情,并在你的技术学习之旅中获得社区的支持。你也可以在的推特的脸书上关注 ACG,在的 YouTube 上订阅一个云专家,每月更新 GCP 的信息。

想了解更多关于云和 GCP 的信息吗?查看我们每月更新的免费课程的轮换阵容。(不需要信用卡!)

新的 AWS SAA 考试(SAA-C03):你需要知道的一切

原文:https://acloudguru.com/blog/engineering/new-aws-saa-c03-exam

随着新版本的 AWS 解决方案架构师助理考试(SAA-C03)最近发布,许多人问我们这两种考试之间的区别是什么,以及他们应该如何准备。

我们决定整理一个快速资源来帮助改变,并涵盖你需要知道的一切。

SAA C02 和 SAA C03 有什么区别?

根据我们对新考试的体验,以及 AWS 官方公告和文档,SAA-C02 和 SAA-C03 非常相似。

考试的组织结构基本保持不变,但权重略有变化,以反映新服务和流程的引入。SAA-C03 中超过 90%的任务陈述已经包含在 SAA-C02 中!

这是一个好消息,因为这意味着如果你正在学习 SAA-C02 的课程,内容将在很大程度上与考试的更新版本保持一致。这意味着你仍然为通过 SAA-C03 考试打下了良好的基础。

一些额外的好消息是,考试的难度和组成也仍然相对相同:

  • 考试将包括多项选择和多项回答(回答)问题。
  • 没有简答题或任何动手实验考试场景。
  • 考试时长约 130 分钟,评分方式相同:满分为 100-1000 分,及格分数为 720 分或以上。

就费用而言,考试费用仍为 150 美元,可以在设施中进行,也可以远程进行。

如果你还没有开始准备考试,我们建议你尽快开始,这样你就可以做好充分的准备。以下是我们提供的一些课程和模拟考试,可能会有所帮助:

  1. AWS 认证解决方案架构师助理(SAA-C02)课程
  2. AWS 认证解决方案架构师助理(SAA-C02)实践考试 1
  3. AWS 认证解决方案架构师助理(SAA-C02)实践考试 2

这些课程目前正在更新,以反映考试的变化和补充。与此同时,本文将为您提供补充信息和文档,帮助您准备 SAA-C03,最好配合参加上面列出的 AWS 认证解决方案架构师助理课程

那么,什么随着 SAA-C03 发生了变化?

下面,您将看到两次考试之间的域是如何变化的。你会注意到设计安全架构(以前设计安全应用和架构)已经从 24%上升到 30%,而设计弹性架构设计高性能架构都下降了 4%。设计成本优化的架构增长了 2%,但仍然是最小的加权领域。

SAA-C03 中会引入一些新的服务,您可以查看考试指南以查看考试中可能出现的所有服务的列表。还会有一些问题来测试您对 AWS 服务的理解和应用,这些问题您应该已经很熟悉了,我们当前的课程中也会涉及到。

您可能希望查看有关考试指南中新增服务的 AWS 文档。认识到服务是什么,它的目的,并对它的使用有一个实际的理解,这将有助于你准备考试。

需要回顾的内容很多,但我们推荐您关注以下一些关键的新服务:

分析

亚马逊 OpenSearch 服务—什么是亚马逊 OpenSearch 服务?

亚马逊 Kinesis 客户端库(KCL)–使用 Kinesis 客户端库

AWS 湖形成——什么是 AWS 湖形成?

机器学习和 AI

亚马逊征用——亚马逊征用是什么?

亚马逊 SageMaker—亚马逊 sage maker 是什么?

应用集成

亚马逊 MQ—什么是亚马逊 MQ?

亚马逊 AppFlow-什么是亚马逊 app flow?

AWS AppSync-什么是 AWS app sync?

计算

AWS 前哨站-什么是 AWS 前哨站?

数据库

亚马逊 DynamoDB 加速器-DAX:它是如何工作的

Amazon 弹性缓存 for Redis--何谓 Amazon 弹性缓存 for redis?

Amazon KeySpaces-什么是 Amazon key spaces(针对 Apache Cassandra)?

无服务器&集装箱服务

亚马逊弹性容器注册中心—什么是亚马逊弹性容器注册中心?

亚马逊弹性容器服务–外部实例亚马逊 ECS Anywhere

AWS 新闻博客-亚马逊 EKS 随处可见

亚马逊弹性无处不在的 Kubernetes 服务-亚马逊 EKS 无处不在

混合环境&迁移服务

AWS 应用程序迁移服务–什么是 AWS 应用程序迁移服务?

安全性、身份和合规性

AWS 证书管理器(ACM)–什么是 AWS 证书管理器?

AWS 安全令牌服务(STS)–AWS 安全令牌服务参考

AWS 安全中心–什么是 AWS 安全中心?

存储服务

AWS 备份—什么是 AWS 备份?

亚马逊 FSx for Lustre-什么是亚马逊 FSx for Lustre?

亚马逊 Windows 版 FSx—什么是 Windows 文件服务器版 FSx?

其他服务

AWS ParallelCluster-什么是 AWS parallel cluster?

亚马逊 Kinesis 视频流-什么是亚马逊 Kinesis 视频流?

亚马逊 QuickSight-什么是亚马逊 quick sight?

我们强烈建议阅读 AWS SAA-C03 考试指南,以确保您对考试中可能出现的所有服务有一个基本的了解。

什么没变?

当前课程中涵盖的所有服务都保留在新的考试指南中。我们建议您仔细阅读我们的 SAA-C02 课程内容和 AWS 文档。其中包括(但不限于):框架的支柱EC2亚马逊 S3弹性容器服务弹性 Kubernetes 服务AWS 系统经理亚马逊 API 网关,以及 AWS 节约计划

帮助准备需要关注的一些领域:

  • 灾难恢复和高可用性:它们之间的区别是什么,以及如何实现它们。
  • 确保了解 AWS 类别中类似服务之间的差异,如应用程序集成、存储、内容交付、安全性和法规遵从性、数据库。
  • 了解如何在 AWS 中保护、扩展和降低多层应用程序的成本。

一些有助于准备的推荐 AWS 白皮书:

AWS 提供的考试资源:

AWS 认证解决方案架构师–助理概述

AWS 认证解决方案架构师助理(SAA-C03)考试指南

AWS SAA-C03 样题

结论

我们希望这对您有所帮助,并祝您在 AWS 认证解决方案架构师助理考试中好运。直到下次,继续牛逼!


加速您的职业发展

从 ACG 开始通过 AWS、Microsoft Azure、Google Cloud 等领域的课程和实际动手实验室改变你的职业生涯。


新的解决方案架构师专业考试:您应该知道什么

原文:https://acloudguru.com/blog/engineering/new-aws-sap-c02-exam

11 月 15 日,AWS 发布了最新版本的 AWS 解决方案架构师专业考试(SAP-C02)。鉴于 SAP-C01 自 2019 年 10 月以来一直存在,它应该更新也就不足为奇了。该考试的旧版本现已不可用,任何想要获得证书的人都必须参加更新的 SAP-C02。

可以理解,你可能会问“发生了什么变化?”我们决定整理一个快速资源来帮助改变,并涵盖你需要知道的一切。

SAP-C02 与 SAP-C01 有何不同?

没什么不同。SAP-C01 和 SAP-C02 的相似之处多于不同之处。考试的组织结构基本保持不变,但权重有所变化,以反映对多账户环境中架构设计的更多关注。

乍一看,他们似乎在考试中取消了“成本控制”领域,但仔细观察,我们可以看到与该领域相关的任务语句已经分布在其他领域。

这是一个好消息,因为这意味着如果你正在学习 SAP-C01 的课程,内容将在很大程度上与考试的更新版本保持一致。这意味着你仍然为通过 SAP-C02 考试打下了良好的基础。

一些额外的好消息是,考试的难度和组成也仍然相对相同:

  • 考试将包括 75 道选择题和多项回答(回答)题。
  • 没有简答题或任何动手实验考试场景。
  • 考试时长约 180 分钟,分数范围为 100-1000 分,及格分数为 750 分或以上。
  • 就费用而言,考试仍然需要 300 美元,可以在设施中进行,也可以远程进行。

如果你还没有开始准备考试,我建议你尽快开始,这样你就可以做好充分的准备。虽然参加考试没有先决条件,但强烈建议您对认证解决方案架构师助理考试中涵盖的概念有一个牢固的理解。

哪些课程可以帮助我准备 SAP-C02?

AWS 认证解决方案架构师专业课程目前正在更新,以反映考试的变化和补充。如果在撰写本文时您已经学习了这些课程(或者如果您已经学习了这些课程),那么您已经成功了 90%以上!

下面是一些见解和资源,让你为那额外的 10%做好准备。

那么 SAP-C02 到底发生了什么变化呢?

下面,您将看到两次考试之间的域是如何变化的。

  • 您会注意到成本控制领域(SAP-C01 考试的 12.5%)已被删除,其他四个领域的名称和权重有所改变。
  • “针对组织复杂性的设计”已经被重新命名为“针对组织复杂性的设计解决方案”,它的权重从 12.5%上升到了 26%。
  • “新解决方案设计”现在在考试中所占的比重略有下降,从 31%升至 29%。
  • “迁移规划”更名为“加速工作负载迁移和现代化”,并从考试的 15%增加到 20%。
  • 最后,“持续改进”已更名为“现有解决方案的持续改进”,现在占考试总权重的 25%,而不是 29%。

因为成本优化是 AWS 良好架构框架的支柱,它被认为是 AWS 上任何解决方案开发的组成部分。我相信就是因为这个原因,才在考试中把它作为一个域去掉的。关于成本优化的问题分布在 SAP-C02 的三个最大领域,而不是拥有自己的问题池。

就所涵盖的服务而言,没有多少重大的增加或删减。涵盖的服务列表太大,无法在本文中一一介绍(您可以在考试指南中找到它),但我可以提供三大类变化,您可以在最新版本的考试中看到这些变化。

多账户一切

从 SAP-C01 到 SAP-C02,任何给定领域中规模增加最多的是“组织复杂性”领域,它从考试总权重的 12.5%增加到 26%,现在是考试中的第二大领域。

这主要是由于对多账户解决方案架构的更大关注,特别是利用 AWS 组织。为了通过 SAP-C02 认证考试,您需要熟悉管理跨多个帐户的资源和权限的所有概念。这包括:

如果您已经熟悉多账户管理,这将是参加 SAP-C02 考试的一个巨大优势。如果您对多账户资源和访问管理的概念不太熟悉,请查看我们的课程“如何在 AWS 中组织您的账户”,该课程将涵盖通过 SAP-C02 考试所需了解的多账户架构的所有基础和高级概念。

Aurora 是关系数据的新女王

历史上,围绕 AWS 上托管的关系数据库的可伸缩性和可用性的问题一直围绕着 RDS。在过去的几年里,AWS 已经戏剧性地将语言从 RDS 转向 Amazon Aurora,这反映在 SAP-C02 的问题池中。你需要明白:

虽然可能不会有任何关于使用或查询 Amazon Aurora 的超级深入的问题,但理解它的用例以及为什么它可能是或可能不是您场景的合适选择是非常重要的。如果你想更深入地了解亚马逊极光,请查看我们关于亚马逊极光的课程。本课程比 SAP-C02 考试更深入,但这是一个以互动方式了解 Amazon Aurora 的好方法。

混合网络和增量工作负载迁移成为新常态

我注意到更新考试的另一个大趋势是重新强调混合网络和混合工作负载。SAP-C02 考试倾向于关注特定工作负载的迁移,而不是期望整个应用程序完全迁移到 AWS 环境。您经常需要确定迁移给定工作负载所需的正确服务或服务集。AWS 不再推荐用于提升和转移迁移的服务器迁移服务;而它的继任者,应用迁移服务,很少出现在考试中。

您还需要了解一些高级混合网络功能,以及如何使它们安全冗余以实现高可用性。你需要明白:

了解网络和迁移的混合使用案例是通过 SAP-C02 考试的关键。虽然我们通常认为现代技术是“本地”还是“云上”,但 AWS 承认,大多数现实生活中的场景都介于两者之间。这种心态在最新版本的考试中得到了体现。

荣誉奖

有几项服务第一次被包括在考试中,许多服务比以前版本的考试更受欢迎。虽然我没有时间一一介绍,但我想提供一个值得在参加 SAP-C02 考试前关注的荣誉奖服务和主题列表:

期待在 2023 年初 AWS 认证解决方案架构师-专业人员(SAP-C01)课程中添加涵盖这些主题的新课程!

结论

我希望这篇文章对您有所帮助,并祝您在接下来的学习和认证之旅中好运!直到下一次——善待彼此,并保持令人敬畏!

云专家的新功能

原文:https://acloudguru.com/blog/news/new-features-on-a-cloud-guru

新功能,嘿!在 ACG,我们从不固步自封。首先,我们无法想象任何人如何能在灌木上放松(不管它有多可爱)。但更重要的是,我们认为教世界云需要不断努力改善学习者和企业的体验。

为此,我们很高兴地宣布,我们所有的计划都将对 ACG 平台进行一些新的更新。新的和即将推出的功能包括:

  • 学习调度程序
  • 新的学习途径
  • 移动实践考试
  • Azure 活动目录实验室
  • 动手实验字幕
  • Azure 技能评估
  • 自定义学习路径

对于学习者来说,这些功能都是为了让你比以往更容易实现职业目标。对于企业,我们正在引入新的功能来帮助您定制和管理大规模的云学习。请继续阅读所有细节!

对学习者来说有什么新内容?

我们的学习者告诉我们,发展新技能的最大障碍是缺乏时间。我们明白了。

无论你在忙什么(工作、养育子女、玩 Peloton-ing,字面意思作为疫情的爱好),跟上新的云技术都是很难的。这就是我们推出许多新平台功能来帮助您实现职业目标的原因。

ACG 的新功能让你更容易实现职业目标!通过更多学习路径提升最热门的云专家的级别,通过新的学习计划在您繁忙的日程中安排课程,通过 Azure AD 获得实践,参加移动实践考试等等!

  • 学习路径 —通过 20 多条新的学习路径提升您在最热门的技术领域和专业的技能,包括 AWS Architect、Azure Security、Cloud neighborhood Containers 等。

  • Azure Active Directory Labs—获得在一个有指导的安全环境中配置和管理 Azure AD 的实践经验,没有任何额外成本或风险。

  • 学习时间表 —使用 ACG 的学习时间表,创建适合您繁忙生活的一致的学习时间表。

  • 移动模拟考试 —准备通过模拟真实情况的模拟考试获得认证。现在,使用 ACG 手机应用程序随时参加模拟考试。

  • 动手实验的字幕——所有新 ACG 的动手实验都包含字幕,以提高可访问性。

  • 动手实验室的挑战模式*——(即将推出!)*以为自己是宗师?让无人指导的实验室给你的作业打分,测试你的技能。

企业有哪些新功能?

我们知道,没有一种正确、简单的方法可以让云走向成熟。你必须浏览不同的云技术,探索不同的流程和新的做事方式。现实地看待你能用你的团队所拥有的时间和技能做些什么。这就是为什么定制您的云学习以满足您组织的特定需求的能力如此重要。

ACG 拥有大规模管理定制云学习所需的一切。利用新的 ACG 业务功能,释放定制多云学习的能力,根据确定的技能差距提升团队技能,并在部门或团队之间无缝完成所有工作。

  • Azure 技能评估 —通过 ACG 技能评估评估云就绪性并准确了解从哪里开始提升团队技能。现在,评估 AWS 和 Azure 中的团队。

  • 自定义学习路径*——(即将推出!)*为您的组织大规模定制云学习。ACG 的定制学习路径提供无缝的多云学习交付,与您的组织一样独特。

改变职业,改变企业

学得更快。动作快点。借助 AWS、Microsoft Azure、Google Cloud 等领域的课程和实际动手实验室,立即实现转型。

面向数据库工程师的新谷歌云平台证书

原文:https://acloudguru.com/blog/engineering/new-google-cloud-platform-cert-for-database-engineers

谷歌云平台本月有什么新消息?我们获得了针对数据库工程师的 Google Cloud 认证(测试版)和新产品 BigLake,帮助管理 GCP、AWS 和 Azure 的数据湖和数据仓库。我们还将了解云扳手、GCE(谷歌计算引擎)虚拟机暂停、媒体 CDN 以及即将举行的谷歌安全和机器学习峰会的更新。我们走吧!


通往更好职业的钥匙

立即开始 ACG 通过 AWS、Microsoft Azure、Google Cloud 等领域的课程和实际动手实验室来改变你的职业生涯。


专业云数据库工程师测试版

如果你在谷歌云平台中使用结构化数据,或者如果你想,那么你可能会对谷歌新的专业云数据库工程师认证感兴趣,目前正在测试中。

正如谷歌所描述的,具有这种资格的人“设计、创建、管理应用程序用来存储和检索数据的谷歌云数据库,并对其进行故障排除”。他们“应该能够轻松地将业务和技术需求转化为可扩展且经济高效的数据库解决方案”。

测试版考试现在的费用比它全面上市时要低,而且你可能会因为参与而获得一些独家赠品。代价是考试时间更长(四个小时!)而且你可能要几个月才能得到结果。



GCE 虚拟机现在暂停正式发布

如果你仍然在直接使用虚拟机,而不是更高级的服务,那么 GCP 的最新消息可能会让你感兴趣:你现在可以通过 ACPI·S3 信号暂停和恢复计算引擎实例!当实例处于暂停状态时,您可以为高级操作系统许可证支付更少的费用,并且您根本不需要为内核和 RAM 付费。你仍然必须为实例内存支付存储成本。

这方面的一个用例是预热一些启动缓慢的实例,以便稍后可以使用它们进行扩展。谷歌声称,他们的方法比其他云的工作方式有一些优势,但他们可能也忘记了,自 2018 年以来,其他一些云已经允许你这样做了。哎呀!

即将举行的安全和应用 ML 谷歌云平台在线峰会

标记你的日历,因为谷歌将在 5 月 17 日举办一个安全峰会,在 6 月 9 日举办一个应用 ML 峰会,这两个峰会都是在线的。我们都对安全负责,机器学习只有在我们能够有效地应用它来解决问题时才对我们有好处,所以这两天可以为你提供有价值的见解,并帮助你取得有意义的进展。

改进的语音转文本(STT)人工智能

谷歌云平台在通过他们的 STT API 将语音转换为文本方面已经非常棒了,但它刚刚变得更好。最新款以一些新的标签提供给我们。“最近的短”标签是针对那些被调整到像语音命令这样的短短语的模型,而“最近的长”是针对更长形式的演讲,比如这个博客的视频版本!我们用它写了这篇文章吗?你永远不会知道!

鉴于 YouTube 在处理大规模视频方面相当不错,很高兴看到谷歌的新媒体 CDN 服务,已经普遍可用,将让我们利用 YouTube 用于以非常低的延迟在全球提供视频的相同技术。无需您付出任何努力,它就支持 HTTP/3、TLS 1.3 和 BBR 拥塞控制。

云扳手改变流即将推出

Cloud Spanner 是 Google 的全球和无限可扩展的关系数据库,但它不是您想要拥有数据的唯一地方。这就是为什么即将推出的云扳手改变流功能会如此有趣。

首先,您可以使用它将 Cloud Spanner 数据复制到其他各种存储中,比如 BigQuery 或云存储。你也可以通过类似数据流的东西来处理数据变化对依赖系统的影响,或者用 PubSub 触发任何你想要的东西。如果您只关心一些更改,您甚至可以按表或列进行过滤。

值得庆幸的是,这不需要任何额外的基础设施-您只需打开它,您现有的云扳手实例就能满足您的需求!


新的 BigLake 产品统一了跨云的数据湖和数据仓库

最近宣布, BigLake 是谷歌的新产品,用于管理 GCP、AWS 和 Azure 的数据湖和数据仓库。谷歌认识到,除了基于 GCP 的数据之外,组织可能在 Azure 和 AWS 上都有大量数据,他们希望在一个地方一致地管理和利用这些数据。

因此,数据可能会以 Parquet 或 ORC 等开放格式存储在 S3 或 GCS 或 Azure Blob 上,然后开发人员和数据分析师只需与 BigLake 打交道。顺便说一下,这更安全,因为最小特权不包括任何原始数据。然后,BigLake 会将这些查询外包给 GCP 的 BigQuery,以及 AWS 和 Azure 的 BigQuery Omni。

获得更多的 GCP 新闻善良在你身上!

想了解所有 GCP 新闻吗?在推特上关注 ACG脸书在 YouTube 上订阅一位云专家的 GCP 每月更新,并在 Discord 上加入对话。

想了解更多关于云和 GCP 的信息吗?查看我们每月更新的免费课程的轮换阵容。(不需要信用卡!)

Amazon EC2 密钥对的新管理功能%

原文:https://acloudguru.com/blog/engineering/new-management-features-for-amazon-ec2-key-pairs

AWS 本周有什么新消息?嗯,Amazon EC2 有很多更新,EC2 密钥对获得了新的管理功能和对 NitroTMP 和 EUFI 安全引导的支持。此外,CloudWatch Events 现在可以接收亚马逊机器图像生成的通知,AWS EMEA 峰会在线注册已经开放。让我们开始吧!


通往更好职业的钥匙

立即开始 ACG 通过 AWS、Microsoft Azure、Google Cloud 等领域的课程和实际动手实验室来改变你的职业生涯。


亚马逊 EC2 密钥对的新管理特性

亚马逊弹性计算云(Amazon EC2)最近获得了一些新的管理功能。

由一个公钥和一个私钥组成的密钥对是一对安全凭证,用于在连接到 EC2 实例时证明您的身份。使用 AWS 控制台或 CLI,您现在可以查看在您的 AWS 帐户中创建的所有密钥对的的创建日期和公钥材料。以前,您只能查看密钥对及其分配的标签的列表。有了这项新功能,您可以审核密钥创建日期,并根据公司政策轮换密钥。

除此之外,您现在还可以使用 CloudFormation 模板创建和删除密钥对。

EC2 支持 NitroTPM

AWS Nitro 系统是下一代 EC2 实例的底层平台。其中的一个关键特性是 NitroTPM,这是一个可信的平台模块。这代表了专用的、独立的加密处理器的国际标准,该加密处理器被设计来执行加密操作,例如在硬件级生成、存储和控制对加密密钥的访问。

这项技术现已可用于运行在 NitroTPM 支持的虚拟机管理程序上的 EC2 实例。这允许基于 Nitro 的 EC2 实例生成、存储和使用加密密钥,甚至不需要访问它们。它还使用 TPM 的唯一 RSA 密钥处理平台设备身份验证,该密钥被烧录到物理硬件中。

这对于具有非常特殊的安全性要求的工作负载来说非常好,到目前为止,这些要求只能通过在您自己的硬件上运行工作负载来满足。

EC2 支持 UEFI 安全启动

统一可扩展固件接口(UEFI)是另一个行业标准规范,这次是针对处理操作系统和平台固件之间通信的软件接口。

安全引导是一项功能,它使用数字签名来验证在 EC2 实例上引导和运行的软件的完整性。如果签名验证失败,它甚至会暂停启动过程,比如恶意行为者更改或篡改软件。

要开始使用,请查看 UEFI 安全启动用户指南

亚马逊 CloudWatch 事件支持 AMI 状态变化

在更多的 EC2 新闻中, EC2 现在可以向 CloudWatch Events 发送各种 Amazon 机器映像(AMI)状态更改的通知,比如 AMI 的创建、注册和注销。

为什么这很方便?因为它允许您基于这些事件启动进一步的操作,比如触发 Lambda 自动启动一个使用新 AMI 的新实例,或者发出一个关于现有 AMI 注销的 SNS 通知。

在线注册 AWS EMEA 峰会

AWS EMEA 峰会在线现已开放注册,该峰会将于 6 月 29 日举行。这个免费活动是听取 AWS 专家意见和参与分组会议、演示和研讨会的好方法。我为之激动!

跟上 AWS 的一切

在 YouTube 上订阅一位云专家的每周 AWS 新闻(以及其他云提供商的新闻)。你也可以在脸书上喜欢我们,在推特上关注我们,或者在不和谐上加入对话!

初次接触 Azure,经验丰富。网?试试这 5 种 Azure 服务

原文:https://acloudguru.com/blog/engineering/new-to-azure-and-experienced-with-net-try-these-5-azure-services

任何成功的现代技术体系都会解决数据管理、计算、安全和监控的问题。维护这些的挑战性部分从成本到配置各不相同,浪费了宝贵的资源:时间和金钱。有了经济高效且可靠的云计算,这些问题中的一些变得不那么令人担忧了。

随着世界上令人激动的变化。NET 生态系统,有相当多的东西开发者可以得到。对于云来说也是如此,特别是 Azure,它一直为。网络开发。



5 Azure 服务。NET 开发人员

如果你不熟悉 Azure,并且对它的好处感到好奇。NET 开发,这里有五个有用的服务,你应该尝试一下。选择这些服务是因为它们的易用性、丰富的工具以及. NET 技术堆栈中的共同点。

Accessing blobs in Azure Storage Explorer

1.Azure 存储

Azure 存储帐户是一个与大量服务一起使用的公共服务,所以你很可能会在使用 Azure 时与它进行交互。存储帐户的独特之处在于,它是一项服务,可用于多种用途。您可以使用 Blob 服务和数据湖存储和访问各种类型的文件,使用文件服务创建文件共享,以及使用队列与本地系统和/或服务进行通信。

在本地机器上使用存储有很多选择,从带有 Azure Storage Explorer 的独立 UI,或者作为 Visual Studio 或 Visual Studio 代码中的扩展集成到开发环境中。这些工具的设置非常简单:只需要你通过浏览器验证你的 Azure 账户。的 Azure 存储客户端库。NET 为与存储帐户中所有可用存储选项的交互提供同步和异步支持。


What do the pros steeped in Azure and serverless think about where it’s at today? Read our Q&A on the state of Azure serverless.


2.Azure 函数

你很可能已经遇到了无服务器的概念。这消除了管理基础架构的需要,使您能够专注于构建而不是配置。Azure Functions 是 Azure 中无服务器选项的流行选择。为什么?有许多方法可以开始,它有一个成本效益的定价结构

The Azure Functions and Web Jobs Tools Extension in Visual Studio

无服务器函数涉及触发事件驱动的代码来运行和响应事件,但是是无状态的,并且不知道来自先前执行的值。然而,使用持久函数,您可以使用 orchestrator 函数编写有状态的无服务器应用程序,以编程方式管理执行,使用实体函数管理状态。

有一组丰富的工具可用于功能开发、调试、部署和测试,这些都可以在本地或 Azure 门户中完成。你可以通过命令行用 Azure Function Core Tools 使用函数,或者在你的编辑器中用 Visual Studio 或者 Visual Studio 代码使用函数。函数的本地工具不需要 Azure,所以在发布到 Azure 之前,你可以在你的机器上构建一个完整的无服务器应用。


How to build a Serverless app using Go and Azure Functions

With the arrival of Azure Functions Custom Handlers, you can use Go for serverless functions on Azure. Read our how-to guide on using Custom Handlers.


3.Azure SQL & Azure SQL 托管实例

如果你对 SQL Server 的新功能感到好奇,可以考虑探索一下 Azure SQL 数据库。Azure SQL 基于 SQL Server 数据库引擎的最新稳定版本,SQL Server 的新特性首先应用于 Azure SQL。

考虑迁移? Azure SQL 托管实例除了利用 Azure 混合优势之外,还设计用于将 SQL Server 和任何额外的本地应用和服务迁移到 Azure。如果你在 SQL Server 上使用 Entity Framework,Azure SQL 的体验实际上是相同的。

Azure SQL 和 SQL 托管实例配备了大量自动化任务和监控关键事件的功能。他们的完全托管架构可自动进行修补、更新和备份,因此您可以专注于产品的开发,而像自动调优智能洞察这样的功能可帮助您的数据库保持最佳性能。

4.蓝色钥匙保险库

Azure Key Vault 提供了一种集中应用程序机密、密钥和证书的方式,并提供了监控和控制用户和应用程序访问的能力。它消除了在代码中包含关键信息的需要,从而减少了泄漏关键信息的机会。相反,应用程序可以通过 URI 检索机密,并且在检索之前必须通过身份验证和授权。

如果你是一个 Visual Studio 用户,使用Visual Studio Connected Services可以简化向你的 ASP.NET 应用程序添加密钥库。Connected Services 添加所需的 NuGet 包,并配置您与 Azure 和密钥库的连接。如果您在 Visual Studio 中构建桌面应用程序,则可以使用密钥库为 UWP 和桌面应用程序的包签名。


Which Azure service should I use for my web app?

New to developing cloud-based web apps? See which Azure service you should use to host your web app.


5.Azure Monitor 和应用洞察

Azure Monitor 主要用于遥测,可以针对云和内部环境进行配置。它是一个中心位置,用于收集指标和日志、观察性能以及识别应用程序和基础架构中的问题及其依赖关系。

Application Insights 是 Azure Monitor 中的一项功能,用于监控实时应用程序及其附带的指标和日志。Application Insights 中的一项独特功能,专属于。NET development environments 的快照调试器,它捕捉异常发生时源代码的状态。这些捕获称为快照,可以在 Azure 门户或 Visual Studio 中进行深入检查。

如果您正在探索或评估 Azure,如果您有兴趣以最少的设置使用云,Application Insights 是一个完美的起点。入门包括创建云服务来收集工具密钥,安装 NuGet 包,并将密钥添加到您的项目中。

Snapshot debugger inspecting the snapshot of a live application hosted in Azure

后续步骤

对今天的有极好的支持。NET 开发者使用 Azure——因为它是用。NET 开发人员的想法。只需添加其中一项服务,即可通过广泛且记录完善的 API、详细的监控以及与您已经熟悉并喜欢的工具和工作流的无缝集成,增强您的云开发体验。

有兴趣开始使用 Azure 吗?注册一个帐户阅读这个文档关于如何将它集成到您的环境中——以及关于的关键 Azure 服务。NET 开发者。如果你对 Azure 有经验,并准备好计划你的迁移,浏览 Azure 架构文档。


提升你的 Azure 技能

这是学习微软 Azure 技能的最佳时机。到二月底,ACG 将提供一系列免费的云课程,包括非常受欢迎的 T2 AZ-900 Azure 基础课程 T3。


关于作者

贾斯敏·格林纳威 是一名纽约的开发人员,也是微软的云倡导者。通过文字和代码,她用 Azure 展示了开发人员可以利用云做的了不起的事情。她多年的开发经验使她经历了不同的开发环境和行业,如西尔斯的零售,Rockstar Games 的游戏,以及之前的微软。NET 开发工具,在 GitHub 担任软件工程师。她还在纽约市担任兼职讲师,教授 web 开发的基础知识。

不仅仅是 IT:这 5 个非技术角色需要讲述云

原文:https://acloudguru.com/blog/business/not-just-for-it-these-5-non-technical-roles-need-to-speak-cloud

云计算对企业来说已经够难了——即使没有遗留控制和流程的摩擦,这些控制和流程可能会让创新的飞轮嘎然而止。

好消息是,技术组织开始将注意力集中在更新数据中心实践和提升人才技能上,以克服这些障碍。

坏消息呢?企业被甩在了后面——不断扩大的云智商差距正在减缓许多企业数字化转型的步伐,并侵蚀其公共云战略的投资回报率

随着您向云之旅迈进,不要忽视业务团队以及 IT 的重要性和价值,了解云计算并开发云技能。云是一个战略杠杆,要求企业运营方式(包括业务)发生重大转变。

首先,我的建议是将重点放在提高 5 个特定业务角色的云流畅度上,这 5 个角色经常被忽视,但对润滑创新的飞轮至关重要。

财务团队

随着企业从资本支出(CapEx)过渡到运营支出(OpEx ),云计算的经济学是一个巨大的范式转变。这两种截然不同的方法对成本管理和控制有着不同的影响,尤其是在公共云提供商的现收现付定价模式下。

对于财务团队的成员来说,重要的是他们了解云计算的价值,而不仅仅是与初始业务案例相关的总拥有成本(TCO) 计算。为了从投资中获得最大收益,企业必须采取严格的方法来管理、优化和预测云成本,同时平衡对敏捷性的需求。过多关注惩罚性成本控制而不考虑创新流将会扼杀发展势头。


See how ACG optimized a multimillion-dollar cloud bill by strategically improving discovery, visibility, and governance.


合规团队

组织在认证安全和数据保护控制措施(如 PCI DSS)时遵守 HIPAA 等法规的责任在云计算中仍然存在,但用于审计和管理这些风险的治理工具却完全不同。

与管理云计算的财务类似,在控制和创新之间取得适当的平衡是至关重要的。如果没有正确理解用于审计云基础架构短暂本质的现代机制和工具,您的治理和法规遵从性实践将成为您组织数字化转型工作的支柱。

拉起锚的唯一方法是通过教育。约翰·麦克唐纳(John McDonald)是亚马逊网络服务公司(Amazon Web Services)金融云治理、风险和合规战略的全球主管。他将云教育称为“任何公司的云采用战略中的一个关键要素”,特别是对于他亲切地称为“紧张部门”的风险和合规部门


What’s the ROI of cloud learning? Run the numbers in our handy infographic.


“对于受监管的行业,”McDonald 说,“更重要的是,我的风险和合规兄弟姐妹们要对任何云提供商技术的工作原理有一个基本的了解。对于第二道和第三道防线、运营风险管理和内部审计部门的人员来说尤其如此。这些角色必须了解云的分类,以便他们能够与第一道防线进行适当的对话,从而有效地完成他们的工作。”

但是,McDonald 补充说,理解云的需求甚至更高,授权首席审计官、首席风险官和监管事务负责人发展“对云带来的技术和风险的坚实理解,以便他们能够履行自己的职责。这些知识将帮助他们成为云的倡导者,因为他们与公司的整体战略保持一致。”

采购&法律团队

随着越来越多的组织利用云计算,越来越需要减少访问合作伙伴解决方案和服务生态系统的摩擦。不幸的是,许多企业当前的采购流程是创新死亡的地方。

AWS 和微软 Azure 提供的新兴市场现在是独立软件供应商(ISV)如云专家的软件清单的大规模数字目录的所在地,这些供应商使通过点击购买在几个小时而不是几个月内轻松找到、测试、购买和部署软件。采购团队可以利用这些新实践作为的战略优势来提高数字化转型的速度,同时简化内部购买体验。

为了让法律诉讼变得更加容易,AWS 现在提供了标准合同和企业协议,可以为组织节省大量来回法律谈判的时间。这与花费几个月时间试图标记 20 世纪 90 年代写的过时协议相去甚远,这些协议仍然包含有关审查遗留数据中心实践的条款。

人力资源

组织吸引和留住具有云计算技能的人才的能力是一个巨大的优势。为了有效竞争,人力资源团队必须能够将云计算的业务目标与实现云计算所需的个人和组织结构联系起来。

许多组织在云转型之旅的早期阶段会浪费几个月的时间来尝试定义支持云计算计划所需的新角色和级别,而对基础知识或基本原则没有太多的了解。

在人力资源团队中建立基本的云知识水平,有助于明确如何构建角色、评估新职位候选人时所需的技能,以及将现有员工过渡到新角色的职业道路。人力资源团队能够为云转型之旅做出的最大贡献之一是释放组织内部已经存在的人才


Investing in undervalued people is great for them … and for your company, writes Joe Emison on the ACG blog.


销售团队

对于许多公司来说,他们的产品和服务现在都建立在像 AWS 这样的云提供商之上,这使得规模和上市速度成为可能。在与客户交谈时,销售团队必须对他们所依赖的基础云服务有深刻的理解,否则缺乏客户信任会导致销售收入的减少。

随着越来越多的客户熟悉云计算的好处,并对服务有更好的了解,拥有高云智商的销售团队可以发挥很大的作用。与客户就云计算的最新趋势进行交流的能力可以让您的团队成为值得信赖的顾问,他们可以更直接地将客户的需求与相关解决方案联系起来。

CloudCheckr 的销售战略总监 Alana Fitts 解释说:“拥有这些技术知识,并能够推进与客户关于其底层基础架构的对话,这是非常宝贵的。”。“如果你不追求基础认证的基本水平,你就不是认真的。就这么简单。”

AWS 的 John McDonald 总结道:“为了加快云学习曲线,公司使用云技能发展解决方案开发全面的培训计划至关重要。”

至少,这些业务角色应该了解与数据中心虚拟化、共享安全性和现收现付定价相关的基本云计算“即服务”概念。企业是否需要知道如何启动虚拟服务器或实施访问控制?不——尽管这肯定不会有什么坏处!


准备好观看云学习了吗?

CloudCheckr 使用 ACG 在短短 90 天内提升了他们在 AWS 上的所有销售人员。看看他们是怎么做到的

11 月新闻综述:AWS 有什么新功能?

原文:https://acloudguru.com/blog/engineering/november-2022-aws-news

你好,云大师!想知道 AWS 这个月发生了什么变化,但还没有找到时间查看几周的头条新闻?这里是你需要知道的所有信息。


加速您的职业发展

从 ACG 开始通过 AWS、Microsoft Azure、Google Cloud 等领域的课程和实际动手实验室改变你的职业生涯。


亚马逊 MSK 拥有新的低成本、几乎无限的存储层

亚马逊为 Apache Kafka (MSK)管理流媒体,速度快了五倍!–现在提供分层存储,几乎可以无限扩展。MSK 是一个完全托管的服务,它允许您构建和运行使用 Apache Kafka 处理流数据的应用程序。它还允许您创建、更新和删除集群,以及使用 Apache Kafka 的开源版本生成和消费数据。

随着这种新型分层存储的发布,您现在将能够存储和处理数据,同时比现有的 MSK 存储选项降低 50%或更多的成本。它还提供了更长的安全缓冲区,可以处理意外的处理延迟或构建新的流处理应用程序。对于新的或现有的群集,只需点击几下鼠标即可启用这一新的存储选项,客户将为存储和数据检索付费。

AWS 资源浏览器简介

re:Invent 即将到来,我们预测今年的主题之一是 AWS 将发布工具来帮助管理跨多个地区和客户的工作负载。

对于那些利用复杂的多区域工作负载的人来说,管理可能有点麻烦,AWS 正在努力缓解这种情况。一个新的工具, AWS Resource Explorer ,让你有一个统一的位置来查找你在一个帐户中有什么资源,即使它们与你当前使用的资源在不同的区域。想要通过特定的标记在所有地区查找 EC2 实例吗?是的,你可以这样做!您是否有资源的 ID,但不知道它在哪个区域?它也能处理这个问题。

您可以通过各种不同类型的元数据在所有地区进行搜索。您甚至可以创建资源的自定义视图,这样您就可以在一个地方查看所有符合指定条件的资源。启用该服务后,您甚至可以直接在 AWS 控制台的搜索栏中进行搜索。值得庆幸的是,您不必等着使用这个有用的新工具,您可以今天就开始使用。

EC2 安置组可以在 AWS 客户之间共享

坚持 AWS 帮助多帐户和多地区工作流的主题,这里有另一个例子!

放置组是 EC2 中的一项功能,使您能够在同一个可用性区域中启动实例,同时让它们利用彼此之间的低延迟和高吞吐量连接。根据你对小组的目标,有不同类型的小组。无论您选择哪个选项,这些实例都需要在同一个 AWS 帐户下…或者至少到目前为止是这样。

现在,您可以利用 AWS 资源访问管理器将来自多个帐户的实例包含在单个位置组中。这是普遍可用的,因此您现在可以在任何 AWS 商业区域试用它。

亚马逊时间同步现已公开

Amazon Time Sync 现在可以通过互联网作为一项公共 NTP 服务使用——零成本!时间同步是一种高度精确和可靠的时间基准,它使用一组卫星来提供基于协调世界时或 UTC 全球标准的当前时间。此服务还会自动平滑闰秒,这些闰秒会定期添加到 UTC 以适应闰年,这对于某些应用程序来说可能会有问题。

在此次发布之前,时间同步仅适用于 EC2 实例。现在,他们把它作为一种公开可用的 NTP(或网络时间协议)服务提供给任何可以访问互联网的服务器。

多 MFA 设备支持

IAM 现在支持 root 和 IAM 用户使用多个多因素认证(MFA)设备。这意味着您可以为每个用户配置多个身份验证设备,每个用户最多可以配置 8 个,包括硬件和虚拟 MFA 设备。

对于 root 和 IAM 用户来说,使用 MFA 是一种安全最佳实践,为您提供了一层额外的保护,防止未经授权的访问;这一新发布的产品为客户提供了更多的灵活性。例如,假设您为 root 帐户配置了一个 MFA 设备,而该设备丢失或损坏了。通过配置多个 MFA 设备,您可以毫无延迟地继续访问您的帐户。


Complete guide to the Cloud and Dictionary

获得痛苦的云词典
说云不一定要努力。我们分析了数以百万计的回复,找出了最容易让人犯错的概念。抓住这个云指南获取一些最痛苦的云术语的简洁定义。


检索冰川数据的速度提高了 10 倍

现在,您可以从 Glacier Flexible Retrieval and Glacier Deep Archive中检索数据,速度比之前的快 10 倍,而且无需额外费用。这种吞吐量的增加适用于所有标准和批量检索,并且 Glacier 现在可以在 AWS 区域内以每个帐户每秒 1000 个事务的速度支持恢复请求

这对于需要定期恢复由许多小对象组成的数据集的应用程序来说非常好,可以显著减少完成恢复所需的时间。

亚马逊 EventBridge 增加了新功能

EventBridge 是无服务器事件总线服务,可用于接收和响应来自各种来源的事件,包括 lambda 函数、API 目的地,甚至其他事件总线。该服务越来越被视为 AWS 上任何事件驱动架构的基石。本月早些时候, AWS 宣布了新的 EventBridge 调度器,这是一个托管接口,用于调度基于时间的事件,以触发 270 多个 AWS 服务中的操作。

AWS 继续增加新的 EventBridge 功能,宣布了两个新的生活质量更新。您现在可以从现有的 EventBridge 规则中生成 CloudFormation 模板,以及从模式中自动生成模式。模式用于检查传入的事件是否与预期的格式相匹配,在历史上,这些必须手工编写。我很高兴看到 EventBridge 的其他功能将在今年的 re:Invent 2022 上亮相。

分步功能增加了简单的跨账户功能

本月, AWS 宣布扩展并简化了跨账户功能,增加了步骤功能。Step 函数用于协调跨许多服务甚至跨许多帐户的无服务器工作流。过去,用户利用基于资源的策略来授予 step 函数对外部帐户中的资源的访问权限。但是,并非所有 Step 函数支持的服务都支持基于资源的策略。

用户现在可以利用基于身份的策略,本质上允许 step 函数在外部帐户中承担类似用户的角色。有了这一新功能,使用 Step Functions 与跨账户资源的直接集成将比以往任何时候都更容易。


从这些 10 个有趣的动手项目开始构建你的云计算技能,学习 AWS


更新认证解决方案架构师专业考试

截至 11 月 15 日, AWS 已经正式转向最新版本的认证解决方案架构师专业考试。他们取消了考试的成本控制部分,并将其分布在其他四个领域:

  • 为组织复杂性设计解决方案
  • 为新解决方案而设计
  • 现有解决方案的持续改进
  • 加速工作负载迁移和现代化。

组织的复杂性现在占据了考试的很大一部分,从总权重的 12.5%上升到 26%。David Blocher,他最近参加了(并通过了!)这个新的考试,发现这个变化主要表现在更多的关于管理 AWS 组织的多个账户以及授予用户和资源跨账户权限的问题。如果你想重温一下多账户管理,可以看看 David 的课程如何在 AWS 中组织你的账户

以上是 AWS 11 月份最大的头条新闻!

想了解每周 AWS 新闻吗?

查看本周 AWS 的每周新闻综述。加入我们的专家主持人,因为他们涵盖了你需要知道的关于过去一周发展的一切,保持简短、有趣和信息丰富。

无论您是刚刚开始您的云之旅,还是您已经了解自己的东西,每个人都有适合自己的东西!

11 月新闻综述:Azure 有什么新特性?

原文:https://acloudguru.com/blog/engineering/november-news-roundup-whats-new-with-azure

你好,云大师!想知道 Azure 在过去的一个月里发生了什么变化,但没有时间查看标题?我们已经写了一篇文章,提供了你需要知道的所有信息。

Kubecon 2022 & AKS

Kubecon 2022 在 11 月初举行,随之而来的是一系列 Azure Kubernetes 服务更新。

从性能角度来看,最大的宣布是一个名为 Azure CNI 的新网络框架,由 Cilium 提供支持,它提供了显著的优势,如更高效的数据路径,以提供对您的 pod 的更快直接访问,以及内置对 Kubernetes 网络策略的支持,而无需单独安装解决方案。

那么,用简单的英语来说,这意味着什么呢?简而言之,它使您的大规模 Kubernetes 工作负载更快、更安全,这总是一件好事。

我们还为 AKS 做了一些新的安全增强。

第一个叫做图像清洁器,现在可以在预览版中看到。当您维护持续的 AKS 工作负载时,随着时间的推移,节点可能会收集旧的映像,这可能存在安全漏洞。图像清洁器有效地通过您的节点,并自动清除那些旧的,陈旧的图像,消除它作为一个可能的安全风险。

它在 AKS 中充当一个托管的附加组件,它将从 AKS 中生成一个过时图像的列表。它不包括附加到运行窗格的图像,客户也可以手动排除某些图像。从那里,Image Cleaner 将对“陈旧”列表中的任何剩余映像运行清除作业,从而产生一个更新鲜、更干净、更安全的 Kubernetes 节点。

第二个安全公告是 AKS 集群的 Mariner OS 映像的可用性。

Mariner OS 是微软为安全容器设计的轻量级 linux 发行版。它已经在微软的几个产品中使用,如 Xbox、《我的世界》和 100 多个 Azure 服务。公众也可以在他们自己的容器化工作负载中使用它。因此,如果您一直想在与《我的世界》相同的操作系统结构上构建您的集群……现在您可以了!

计算节约计划

如果你在 Azure 上有长期运行的计算作业,你可能已经熟悉 Azure reservations,它允许你以大幅降低的价格购买 1 或 3 年的承诺量的计算能力。然而,Azure reservations 有许多限制,例如绑定到特定区域进行预订,限于特定的虚拟机系列或 SKU,或者绑定到特定的计算服务,如虚拟机或应用服务。总的来说,如果您需要进行重大的更改,灵活性会受到一点限制。

考虑到这一点,称为计算的节省计划的新功能类似于 Azure 预订,但是它在如何使用预订的计算方面提供了更大的灵活性。借助计算节省计划,您还可以预留一定量的计算容量。然而,保留的容量可以用于几乎任何计算类型,例如虚拟机或 AKS 容器,并且可以在任何地区使用。这为您在何处以及如何运行计算工作负载方面提供了更大的灵活性,同时还能节省大量资金。

Vision Studio 简介

处理大量图像和视频变得越来越普遍。人工智能的新发展在这一领域开辟了令人兴奋的可能性,Azure 创造了一个伟大的新工具来帮助你入门。 Vision Studio 让您在一个简洁的用户界面中访问处理媒体和返回信息的高级算法。

你所需要做的就是给你的媒体资产提供这个计算机视觉工具,你可以使用简单的 UI 工具来查看你的数据如何响应新的人工智能分析工具。其中包括空间分析、人脸识别、图像分析等。

Azure Communication Services 短信短码功能

使用 SMS(短消息服务)联系您的客户变得非常流行。短信技术真正有助于数字营销的一个方面是“短码”:你可以用 5 或 6 位数字来跟踪个人短信活动。随着 Azure Communication Services 短代码功能的全面上市,您可以将此功能添加到您的数字通信工作中,或者从另一家提供商迁移您的短代码基础架构。

您还可以轻松地将 SMS 短代码工作负载集成到其他 Azure 服务中,例如,您可以使用 Azure 的逻辑应用连接器将基于 SMS 的工作流添加到您的应用中,或者使用集成的 Azure 事件网格触发您的短代码 SMS 消息。

静态 Web 应用程序更新

这个月静态网络应用的更新不是一两个,而是六个。所以让我们快速浏览一下它们!

首先,我们有了新的平台支持,预览版中的和支持节点 18。NET 7 全面上市。现在,如果你有一个 Blazor WebAssembly 应用程序,它会自动构建和部署。

接下来,我们知道你们中有很多人使用 GitHub,但许多组织也使用其他库,如 Gitlab 和 BitBucket。好吧,你会很高兴地知道对这两者的支持现在已经普遍可用。现在,您可以将它们用作静态 Web 应用程序的 CI/CD 提供者。

接下来,让我们讨论一下预览环境。当您的存储库上有一个为其生成的临时 URL 的 pull 请求时,这些使您能够启动一个全新的环境。现在你可以在 Azure DevOps 上使用这些预览环境,因为该特性已经普遍可用。此外,您现在可以创建绑定到特定分支的命名环境,这将为分支预览环境产生相同的 URL。该功能现在也普遍可用。

最后,您现在可以为您的应用程序指定一个设置,如果您的应用程序中不需要这个设置,您可以跳过 API 的构建。这一个现在也是 GA。

宇宙数据库更新

接下来,我们有两个关于 Cosmos DB 的公告。首先,当使用 MongoDB for Cosmos DB 时,您现在可以重试您的写操作。您总是能够用自己的重试逻辑来处理这个问题,但是现在您可以在驱动程序级别利用这个优势,而不需要任何自定义代码。好消息是,这通常是可用的,但是在利用它之前,您需要启用这个功能。

此外,你现在可以在你的账户中复制一个 Cosmos DB 容器,而不需要借助任何额外的工具来实现。如果您正在尝试测试一些迁移、调试一些特定于数据的问题,或者即使您希望在不消耗任何生产容量的情况下运行分析工作负载,这一点也非常重要。这里有一些注意事项,所以在利用这个公开预览之前,请阅读文档。

成为 Azure Orbital Space SDK 的空间开发者

本月微软发布了他们的 Azure Orbital Space SDK 的预览版,这不仅是一个伟大的名字,也是开发者将云带到太空的一种方式。这不是某种可能与太空中的事物对话的服务,Azure Orbital Space SDK 被设计成与航天器无关。

然而这对我们人类来说到底意味着什么呢?通过新的 SDK 云,开发人员可以制作更复杂的软件,这些软件可以在航天器上运行,并对传输回地球的内容进行优先排序,从而提高数据质量,同时节省非常昂贵的带宽。把它想象成边缘计算的边缘。终极优势?

例如,你可以对有用的图像进行优先排序,甚至将洞察力而不是原始数据发送到地面。卫星可能会利用它来优化与地球偏远地区的通信,使连接在任何地方都更容易实现。或者我们可以用更好的数据更好地模拟和应对气候变化。有很多可能性。微软正在为一个传统上没有任何实际航天器应用程序开发的行业带来一个标准。

如果你想试用 SDK,现在你必须为 Azure Space 合作伙伴社区成员之一工作,但这只是为了预览。期待公版 SDK 很快推出!

Azure 函数的 Azure SQL 触发器

对于开发者来说,Azure Functions 是 Azure 上最重要和最有用的服务之一,但是仍然有改进和增加功能的空间。其中一个功能在本周公开预览版中发布。Azure 函数的 Azure SQL 触发器意味着当 SQL 数据库中的一行被创建、更新或删除时,你可以触发 Azure 函数。这对于许多场景都非常有用,例如,当插入新的客户记录时,您可以触发一个功能来发送欢迎电子邮件、插入另一条记录、从社交媒体获取他们的个人资料图像等等。

Azure 函数的 Azure SQL 绑定还启用了对 Java、PowerShell、Python、JavaScript 和 C#函数的输入和输出绑定支持,因此每个人都可以加入进来。我能看到的一个场景是,数据库行中的数据操作可以“外包”给 Azure 函数,这创造了更多的灵活性。试一试。

这就是 Azure 月的所有头条新闻!

想每周了解 Azure 新闻吗?

本周 Azure 是关于 Azure 的每周新闻综述。加入我们的专家主持人,因为他们涵盖了你需要知道的关于过去一周发展的一切,保持简短、有趣和信息丰富。

无论您是刚刚开始您的云之旅,还是您已经了解自己的东西,每个人都有适合自己的东西!

云快乐免费证书准备

在今年年底之前,作为“云快乐”活动的一部分,你可以注册免费的认证准备和 Pluralsight 技能或云专家。你可以在 AWS、Azure、GCP、Kubernetes 和 Terraform 上免费学习课程——当我们说免费时,我们指的是真正的免费。

有如此多的选择,我们写了一篇关于如何为你选择正确课程的文章。你唯一可能犯的错误就是根本不做选择!

Linux 中的 NTFS 分区修复和恢复

原文:https://acloudguru.com/blog/engineering/ntfs-partition-repair-and-recovery-in-linux

十月新闻综述:AWS 有什么新功能?

原文:https://acloudguru.com/blog/engineering/october-2022-aws-news

你好,云大师!想知道 AWS 这个月发生了什么变化,但还没有找到时间查看几周的头条新闻?这里是你需要知道的所有信息。


加速您的职业发展

从 ACG 开始通过 AWS、Microsoft Azure、Google Cloud 等领域的课程和实际动手实验室改变你的职业生涯。


亚马逊文件缓存现已全面上市

Amazon File Cache 是一个很酷的新服务,它提供了一个可扩展的高速亚毫秒级缓存,允许 EC2 实例访问存储在不同位置(例如,在您自己的数据中心)的数据。

创建文件缓存时,它可以链接到多个数据存储,例如:

  • 数据中心中的 NFS 文件系统
  • 基于云的文件系统,如 Amazon FSx
  • S3

您还可以将多达八个文件系统链接到一个缓存。

一旦创建了缓存,EC2 实例就像普通文件系统一样挂载缓存。当您的工作负载第一次请求数据时,文件缓存会自动将数据加载到缓存中,并作为传统文件系统呈现给您的应用程序。它甚至会释放不再使用的数据。

它支持传输中和静态加密,与内部网络的通信使用直接连接或 VPN。这是一种很好的方式来缓存您的本地文件系统,以便 AWS 中的 EC2 工作负载可以安全地访问您的数据。

新开发人员助理(DVA-C02)和 DevOps 工程师专业(DOP-C02)考试

AWS 认证开发人员助理考试和 AWS 认证 DevOps 工程师专业考试正在更新!这将使这些考试更加符合行业格局、趋势变化以及云专业人员的工作实践。如果你目前正在准备这两种考试中的任何一种,不要担心——这种转变要到明年才会发生。

参加当前开发人员助理考试(DVA-C01)的最后日期是 2 月 27 日,DevOps 工程师专业人员将于 3 月 6 日换岗。之后,只有新的考试(DVA-C02 和 DOP-C02)可用。

想知道他们在更新什么吗?查看 AWS 认证开发人员助理考试指南AWS 认证开发人员工程师专业考试指南以获得关于领域的完整分类。


从这些 10 个有趣的动手项目开始构建你的云计算技能,学习 AWS


AWS Trainium 驱动的 EC2 实例正式上市

AWS Trainium 驱动的 EC2 实例现在已经进入全面上市,随着最初在 re:Invent 2021 上预览的 Trn1 实例家族的全面发布。

AWS Trainium 处理器是一种新的专用芯片,专门为深度学习算法的训练而设计。除了在命名比赛中获得木勺奖,Trainium 是那些非常有趣的工程壮举之一,AWS 在那里创造了一个高度适应深度学习独特需求的微处理器。它能够更有效地存储常见的数据类型,并加速随机舍入。

借助 AWS Neuron,您可以轻松集成 PyTorch 或 Tensorflow 上运行的解决方案,从而轻松利用这项新技术。当构建高度复杂的语言模型时,如 GPT-3,AWS 声称训练成本降低了 50%,潜在地产生了巨大的差异(尽管对于具有非常特定用例的客户来说)。

台北和德里的新本地区

AWS 已经宣布在台北和德里设立两个新的本地专区。

对于 AWS 的全球基础设施来说,本地区域仍然是一个相对较新的概念,会给特定位置的应用程序带来个位数的延迟。这为您的解决方案带来了更高的性能,但也解决了其他问题,如数据驻留需求。

如果您在请求传遍全球的过程中等待了几秒钟,那么云的威力就不那么令人印象深刻了。例如,如果您的公司运行用于多人游戏的服务器,您可以将 EC2 实例部署到许多用户附近的本地区域。这将延迟降低到可能不到 10 毫秒,从而带来卓越的体验。

现在全球有 18 个本地区域,还有 33 个正在规划中,云离用户从未如此之近。


你是想开始你的 AWS 职业生涯还是想让你的技能更上一层楼?我们的 AWS 学习路径提供定制的路径,让您的云计算之旅更加精彩!


RDS 和 EC2 的自动化连接

RDS 现在支持在现有 RDS 或 Aurora 数据库和同一个 VPC 中的 EC2 实例之间自动建立连接

这很好,因为这意味着从 RDS 控制台中,您现在可以选择是否要自动配置连接。就像在同一个 VPC 中选择一个实例一样简单,一切都会自动为您配置,包括您的实例和数据库所需的安全组。多酷啊。

AWS 上的 RedHat Enterprise Linux 工作站

用于加速 GPU 实例的 red hat Enterprise Linux(RHEL)Workstation现已在 AWS Marketplace 上市。这种基于云的远程桌面解决方案允许来自世界任何地方的最终用户访问 Red Hat 工作站。你可以在 AWS 市场或者 EC2 控制台上找到它们。

它们使用 RedHat 版,运行在支持 GPU 的实例类型上,如 G3、4 和 5,以及 P2 和 3。这些实例类型适用于动画、计算机辅助设计、科学研究或医学成像。

对于任何需要基于 RedHat Linux 的高性能远程桌面解决方案的人来说,这些都是非常棒的。

AWS 控制台现在提供了黑暗模式

在本周一个非常令人兴奋的 AWS 控制台生活质量更新中,您现在可以在黑暗模式下导航您的 AWS 服务

AWS Management Console with dark mode applied. Featured AWS Console text is now in white and light gray, against a dark gray background.

打开黑暗模式使控制台用户能够以新的视角体验控制台,深灰色背景和灰白色文本旨在减少眼睛疲劳,并有可能延长使用控制台时笔记本电脑的电池寿命。大多数流行的网站和应用程序都包含某种形式的黑暗模式,所以看到这个功能最终在 AWS 控制台中出现是非常令人兴奋的。

该功能仍处于测试阶段,但如果您想试用,可以通过在 AWS 控制台中导航到您的帐户设置来访问它。

这就是 AWS 十月份最大的头条新闻!



想了解每周 AWS 新闻吗?

查看本周 AWS 的每周新闻综述。加入我们的专家主持人,因为他们涵盖了你需要知道的关于过去一周发展的一切,保持简短、有趣和信息丰富。

无论您是刚刚开始您的云之旅,还是您已经了解自己的东西,每个人都有适合自己的东西!

云快乐免费证书准备

在今年年底之前,作为“云快乐”活动的一部分,你可以注册免费的认证准备和 Pluralsight 技能或云专家。你可以免费访问 AWS、Azure、GCP、Kubernetes 和 Terraform 上的课程——当我们说免费时,我们指的是真正的免费。有这么多选择,你可能不确定如何选择适合你的课程。别担心,没有错误的答案,你唯一可能犯的错误就是根本不做选择!

十月新闻综述:Azure 有什么新特性?

原文:https://acloudguru.com/blog/engineering/october-news-roundup-whats-new-with-azure

你好,云大师!想知道 Azure 在过去的一个月里发生了什么变化,但没有时间查看标题?我们已经写了一篇文章,提供了你需要知道的所有信息。

微软 Ignite!

上个月微软 Ignite 2022 最大的变化是。我们被赋予了多种公告,预览,气体和更多。我们采访了在当地的初步印象,以及的事后总结。所以让我们跳到下面最重要的事情。

另外,如果你对基础设施公告更感兴趣,Wayne Hoggett 已经有了一个很棒的博客综述,你可以在这里找到。

库伯内特新闻

Azure 不缺 Kubernetes 新闻!这一领域最大的公告之一是宣布使用 Azure Arc 的 Azure Kubernetes 服务的混合部署选项。现在,采用混合策略的组织既可以部署到云中,也可以部署到他们自己的支持 Azure-Arc 的数据中心,同时使用您当前用来管理 AKS 集群的所有 Azure 工具维护单点管理。

在节点限制方面,如果您对 AKS 使用正常运行时间-SLA SKU,您现在可以将 1,000 个节点的旧限制乘以 5 倍。对于那些数学很快的人来说,这确实意味着您的 AKS 集群中可以有多达 5000 个节点。

新服务 Kubernetes Fleet Manager 使跨多个地区管理多个 AKS 集群变得更加容易,该服务目前处于预览阶段。有了这个新的工具集,您现在可以集中管理和配置多个集群,同时还增加了跨集群对一些工作负载进行负载平衡的能力。

Azure 存储新闻

Ignite 发布了两个激动人心的存储产品,而不是一个。首先,我们在预览版中推出了新的存储服务!根据微软的说法, Azure Elastic SAN 是“业界第一个完全托管的云中存储区域网络产品”。

这项服务承诺,它将从我们自己的数据中心汇集我们喜爱的 SAN 功能,并通过真正的云原生服务实现这一点。除了所有这些,您还能够利用本地冗余或区域冗余配置来实现高可用性。

接下来,如果你在 7 月份发布的预览阶段已经享受到了优质 SSD v2 的好处,你会很高兴地得知它现在已经正式推出。在定义您的确切存储需求(包括大小、IOPS 和吞吐量)时,此产品提供了很大的灵活性。

Azure 数据库新闻

数据库世界也不是没有在 Ignite 上发布。首先, Cosmos DB 现在获得了 PostgreSQL 支持。这款产品已经上市。这个版本支持分布式表,利用了 Citrus 开源扩展 Postgres。它甚至有一个内置的功能,可以让你通过 PostgreSQL 扩展访问 Azure 存储。

我们将继续关注 Cosmos DB 的另一组公告。虽然 Cosmos DB 已经支持 MongoDB,自从 Ignite 以来,这种支持已经有了很大的改进。您需要了解两个关键的更新。首先,微软将之前对文档大小的限制从 2MB 增加到 16MB。这意味着您可以在管理的每个文档中放入八倍的数据。此外,您现在可以利用基于角色的访问控制来访问文档中的数据。如果您想在现有数据库上利用这些更新,您需要为您的帐户添加这些功能。

OpenAI 蓝色

最后,虽然我们意识到微软的 OpenAI 服务仍处于有限的预览阶段,我们大多数人都无法访问,但我们都可以高兴地看到它现在将包括 DALL-E 2 型号。据微软称,“精选客户可以生成内容、图像和代码,帮助用户更高效地执行关键业务任务。”

这就是所有的十月点燃 Azure 的头条新闻!

想每周了解 Azure 新闻吗?

本周 Azure 是关于 Azure 的每周新闻综述。加入我们的专家主持人,因为他们涵盖了你需要知道的关于过去一周发展的一切,保持简短、有趣和信息丰富。

无论您是刚刚开始您的云之旅,还是您已经了解自己的东西,每个人都有适合自己的东西!

Azure PowerShell 初学者指南

原文:https://acloudguru.com/blog/engineering/one-shell-to-rule-them-all-5-reasons-to-use-powershell-for-cloud-management

十多年来,PowerShell 一直是 Windows 管理员最喜欢的解决方案,它能够自动执行微软生态系统中几乎所有的任务。从管理用户帐户、服务器、数据库等等,它的用途是无止境的!有了 Azure 模块,你可以用同样的基本原则轻松掌控你的 Azure 环境。

在这篇文章中,我想向您介绍 PowerShell 和 Azure PowerShell,提供一些关于开始使用 PowerShell 的提示,并给出使用 PowerShell 进行云管理的五个好理由。


通往更好职业的钥匙

从 ACG 开始通过 AWS、Microsoft Azure、Google Cloud 等领域的课程和实际动手实验室改变你的职业生涯。


如果您是 PowerShell 新手,或者一般来说是脚本新手,可能很难知道从哪里开始。你看到了潜力。你想自动化所有的事情,但是当你不知道你不知道什么的时候,你如何开始使用 PowerShell 呢?

让我们先快速介绍一下 PowerShell。把这当成一个小小的 PowerShell 101。我们将向您介绍一些开始使用 PowerShell 的技巧,并通过一些实验来学习基础知识。然后,我们将进入 Azure PowerShell,更深入地研究一些您想知道的 cmdlets,并讨论如何使用 Azure PowerShell 创建 Azure VM。

目录

PowerShell 是什么?

简而言之,PowerShell 是一种脚本语言和命令行 Shell,由微软开发,用作任务自动化解决方案。虽然它最初是 Windows 独占的,但现在它是跨平台的,可以在 Linux、macOS 和 Windows 上运行。

为什么选择 PowerShell?

有许多非常好的脚本语言可用,那么为什么要选择 PowerShell 呢?

首先,它的语法布局良好,在各种任务中保持一致,易于学习和有效使用。

  • 第二,与大多数实用程序不同,它的输出是对象而不是文本,允许您在命令之间进行更高级别的交互。

  • 最后,因为它是跨平台的,所以您可以编写一个脚本来管理所有的操作系统——即使您有一个混合操作系统的环境(很多人都是这样)。

  • PowerShell 的所有输入和输出都使用对象,这使得它的工作方式有点像模板。它通过其灵活性和故障诊断及重用代码的能力,实现了一种更自然、更实用的脚本编写方法。

它的两个主要特性是模块和 cmdlets。

什么是模块?

模块是组合在一起的一组相关功能和资源。您可以安装用于查询数据库、管理 VMware 环境或排除网络故障的模块。你甚至可以创建自己的模块。

Azure PowerShell 实际上是一个你安装使用的 PowerShell 模块。(我们稍后将深入探讨 Azure PowerShell。)

什么是 cmdlet?

cmdlet 是执行操作的单个轻量级命令。

首先要知道 PowerShell 的 cmdlets 是以动词-名词格式构建的。因此,如果我想要得到一个命令列表,那么我可以直观地知道使用Get-Command。这将为我拉回系统上所有可用命令的列表。

获得帮助

命令列表很棒,但前提是你知道如何使用它们。因为帮助是我们需要得到的,所以我们可以通过 PowerShell 深思熟虑的语法再次知道Get-Help是我们需要运行的。

将它与 cmdlet 名称一起使用,如下所示,您将获得从语法定义到完整示例的信息。默认情况下返回基本信息,但是一定要添加 -full 标志来返回所有信息。

Get-Help Get-Process -full

另外,记住不要把事情搞得太复杂。我们的本能是谷歌我们的问题,无论是脚本语法还是如何修补干墙。跟着你的直觉走!

微软在他们所有的 cmdlet 在线上都有很棒的文档,简单地谷歌一下 cmdlet 名称就能让你很快找到。在使用 PowerShell 十多年后,我们也在做同样的事情——所以这并不可耻!

探索 PowerShell 的 cmdlets

你可以自己开始探索 PowerShell 的 cmdlets,但是让我们给你一些我们最喜欢的例子来激发你的创造力。

查找特定模块的 Cmdlets

很多时候,您正在使用一个特定的产品,但是可能已经安装了几个模块。在这些情况下,当简单地运行Get-Command时,很难对所有可用的 cmdlets 进行排序。对于这些情况,将您的搜索限制到特定的模块,甚至特定的动词!例如,如果我想查看 Azure SQL 模块中的所有“Get-”cmdlet,我可以运行以下命令:

Get-Command -Module Az.SQL -Verb Get

为 Win 安装管道

如前所述,PowerShell 优于其他语言的突出特性之一是输出对象而不仅仅是纯文本的能力。

例如,要列出 Linux 机器上的进程,我会使用命令ps。这当然有效,但是如果您需要做一些更强大的事情,比如通过管道将输出传递给kill命令,该怎么办呢?为此,您必须使用其他命令来解析字符串输出,比如grepawk。可能看起来像这样:

kill $(ps -e | grep httpd | awk '{print $1}')

然而,由于 PowerShell 输出对象而不是简单的纯文本,我们可以很容易地引用由Get-Process列出的每个进程,以及这些对象的单个元素。要执行上面列出的相同操作,我们可以这样做:

Get-Process httpd | Stop-Process

这是一个更简单、更优雅的操作,因为我们将关于“httpd”的信息作为一个对象进行传递,这使得我们要传递到的 cmdlet 可以很容易地辨别出它所需要的信息。当我们将变量设置为等于 cmdlet 结果时,情况也是如此,如下所示:

$var = Get-Process httpd

$var.Id

在上面的例子中,我设置变量$var等于 cmdlet 返回的对象。然后,我可以通过添加句点和属性名来引用 Id 属性。这在编写脚本时变得非常强大,允许您轻松访问您需要的确切信息,而无需大量复杂的grepawk、或sed操作。

有一个模块可以解决这个问题

在远程实例上执行 SQL Server 代理作业:

Invoke-Sqlcmd -ServerInstance "SQLINSTANCENAME" -Database MSDB -query "EXEC dbo.sp_start_job N'My_AwesomeJob';"

将广告组成员资格从一个用户复制到另一个用户:

Get-Aduser user1 -Properties memberof | select -ExpandProperty memberof | ForEach-Object -Process {$groupName = ($_ -split ',*..=')[1]; Add-ADGroupMember -Identity $groupName -Members user2}

启用 Windows 防火墙规则组:

Enable-NetFirewallRule -DisplayGroup "Remote Service Management","Remote Event Log Management","Remote Desktop"

Azure PowerShell 是如何工作的?

当您安装 Azure PowerShell 模块时,SDK 会作为模块的一部分自动安装——这是 PowerShell 中使用模块的众多酷功能之一。

你可能连接到 Azure 的每一种方式都通过一个叫做 Azure 资源管理器的管理接口。该接口验证并授权您想要执行的任何操作。对于 Azure PowerShell 和 Azure 命令行界面,它们使用软件开发工具包(SDK)来连接到 Azure 资源管理器并执行操作。

得到蔚蓝云痛苦辞典
说云不一定要辛苦。我们分析了数以百万计的回复,找出了最容易让人犯错的概念。抓住这个云指南获取 Azure 中一些最痛苦术语的简洁定义。


Complete guide to the Cloud and Dictionary

你用 PowerShell 做什么?


PowerShell 中有如此多的特性、实用程序和模块,您可以创建、管理、监控和自动化的唯一限制就是您自己的想象力!你还想要例子吗?当然可以!

使用它升级到您的网站,管理您的 web 应用程序

  • 使用它将您的文件服务器迁移到 Azure blob 存储
  • 您甚至可以创建和管理您的用户,并分配角色或其他组成员
  • 这就是令人难以置信的地方。PowerShell 模块有数百个,包括用于 AWSGCPVMware 等等的模块。PowerShell 确实是所有管理任务的一站式商店。

Azure PowerShell 易于使用,功能强大,非常灵活,允许用户基于他们的语言知识来管理和自动化大量其他解决方案、产品和服务。

比尔·盖茨曾经说过:“我选择一个懒惰的人去做一件艰苦的工作。因为一个懒惰的人会找到一个简单的方法去做。”对我来说,这就是 Azure PowerShell。这是管理 Azure 资源的简单方法。从自动化您的日常任务到复杂的脚本和部署场景,PowerShell 都能满足您的需求。

Azure PowerShell 入门

让我们看看如何安装 Azure PowerShell,如何访问它,以及如何使用它来管理您的 Azure 资源。

安装 Azure PowerShell

只需两步即可安装 Azure PowerShell:

右键单击“开始”菜单并打开 Windows PowerShell。

  1. 在命令行中,运行Install-Module cmdlet。使用Az作为名称参数,并在末尾添加一个Force开关。
  2. 如何访问 Azure PowerShell
Install-Module -Name Az -Force

安装完成后,您有三个连接到 PowerShell 的选项:

本地:使用 Connect-aza account cmdlet 连接到您的 Azure 帐户。当您看到 Microsoft Azure 弹出窗口时,请登录您的 Azure 帐户。您现在已登录 Azure。

  • 云壳:去 shell.azure.com。当您看到 Microsoft Azure 弹出窗口时,请登录您的 Azure 帐户。如果这是您第一次登录,它会显示没有装载存储,因此您需要创建存储。有两种不同的环境可供选择——PowerShell 和 Bash。确保您使用的是 PowerShell。

  • Azure 门户:进入 Azure 门户。右上角的菜单中有一个命令提示符图标(见下图)。它将打开屏幕底部的一个外壳。同样,您可以在 PowerShell 和 Bash 之间进行选择。您也可以调整此窗口的大小。

  • 了解基本 Azure cmdlets

如上所述,cmdlet 是 PowerShell 语法的基本组件。它包含执行某个操作所需的所有代码。例如,Get-AzResourceGroup将列出我所有可用的资源组。

参数和自变量

许多 cmdlets 也有收集信息的参数,以便执行该操作。如果我在我的 Get-AzResourceGroup cmdlet 后面加上一个空格和一个连字符,我就可以使用 tab 键来滚动所有可用的不同参数。有些是必需的,有些是可选的。一旦到达可用参数的末尾,它将返回到列表的开头。

为了向参数提供信息,您需要输入一个参数。在参数后面,你要加一个空格,你要在双引号内提供参数。例如:

按回车键,你就会得到信息。

Get-AzResourceGroup -Name "ctrl-alt-sweets'

变量

PowerShell 是一种面向对象的语言,这意味着您可以创建一个变量,然后在脚本中使用它。让 cmdlet 成为变量很简单。

PowerShell 中的变量由美元符号后跟名称来定义。在本例中,我将为资源组命名为 RG,然后添加等号。

这一次当你按下回车键时,没有信息返回。这是因为信息现在存储在变量中。如果您通过简单地命名变量来再次查询该变量,它会返回已经提取的信息。

$RG = Get-AzResourceGroup -Name "ctrl-alt-sweets'

返回的每一条不同的信息都可以单独引用。

例如,如果我调用变量并使用一个点,并且我要搜索类似于location的东西,它将返回该信息。这对于在脚本中引用这些信息非常有用。

获得帮助

所有 cmdlets 都有帮助。输入Get-Help,然后输入您想要获得帮助的 cmdlet。当您按 Enter 键时,它会给出一个概要、完整的语法列表、cmdlet 功能的描述、相关链接,有时还会给出相关的命令、示例和其他注释。

您也可以在Get-Help和您的 cmdlet 中使用参数。

如上所示,如果您为带有 Get-AzResourceGroup的示例添加一个参数,它将返回几个基于不同信息的示例。

Get-Help Get-AzResourceGropu -examples

如何使用 Azure PowerShell 创建 Azure VM

要创建 VM,首先使用New-AzResourceGroup创建 Azure 资源组。你会想把它变成一个变量,因为当你创建 Azure VM 时,你需要它来传递信息。请务必添加名称和位置参数。

接下来,您将使用New-AzVM创建 Azure VM,使其也成为一个变量。

$ResourceGroup = New-AzResourceGroup -Name "AzurePShell" -Location "CentralUS"

确保传递资源组名称变量和位置变量,然后添加 name 参数。这些项目是创建虚拟机所必需的。

一旦你按下回车键,PowerShell 将要求你的凭证。这些不是您的凭证,而是虚拟机的凭证。请记住,密码具有与 Azure 门户相同的复杂性要求。

$AzureVM = New-AzM -ResourceGroupName $ResourceGroup.ResourceGroupName -Location $ResourceGroup.Location -Name "AzurePSVM"

PowerShell 将完成创建虚拟机的过程。

输入您创建的虚拟机的变量,您将看到它具有完全限定的域名、位置和虚拟机 ID。您不仅可以看到该命令的所有输出,还可以将这些输出用作传递给其他 cmdlets 或脚本的信息。

要检查并查看它是否已被创建,请转到 Azure 门户并从 hamburger 菜单中选择虚拟机。

然后单击虚拟机以查看详细信息。

接下来,您将希望通过使用Remove-AzResourceGroup命令删除资源组来进行清理。请确保包含资源组名称变量。在末尾添加一个 Force 开关,强制它删除资源组中的所有内容。

这个命令可能需要一段时间,所以您可能希望使用AsJob开关将这个命令作为一个作业来运行,这样您就可以在此期间继续使用 PowerShell。

当一个 Azure 虚拟机被创建时,它会随之创建大量其他 Azure 资源。因此,通过三行代码,我们能够创建一个资源组,创建一个 Azure 虚拟机和所有相关资源,并删除该资源组。

Remove-AzResourceGroup -Name $ResourceGroup.ResourceGroupName -Force -AsJob

希望提升您的云计算技能?查看本月的免费 ACG 课程阵容,包括我们闪亮的新 AZ-400 DevOps 认证考试课程。只需创建一个免费账户并升级。不需要信用卡!


为什么应该使用 PowerShell?


使用 PowerShell 进行云管理的 5 个理由

为什么 PowerShell 在今天作为云管理工具有意义?它可能不是人们的默认选择,尤其是对于自动化 Linux 的东西。但是这就是 PowerShell 值得考虑的原因——更重要的是,这就是为什么可能是最好的选择。

一个不太可能的自动化英雄的崛起

到 2020 年,云计算的增长已经非常巨大。你很难找到一个组织不将部分基础设施迁移到云,如果不是完全转换的话。随着 COVID 的出现,原本是一场云竞赛变成了全速冲刺。企业突然迫切需要扩展他们的网站,实现远程工作,并提供非接触方式为客户带来价值。没有比通过云更好的方式来实现快速和可扩展的服务,因此人们比以往任何时候都更多地利用它的潜力。

随着所有这些新的和现有的云利用,非常需要一个可靠的自动化战略。如果您手动管理所有云资源,保持保持竞争力所需的速度和灵活性很快就会变得非常困难。但是,您使用什么工具来管理所有这些资源,尤其是当您将它们分布在多个云或数据中心时?

一个不太可能的英雄出现了:PowerShell。

这可能令人惊讶,特别是考虑到已经有很多像 Python 这样伟大而流行的工具。是什么让 PowerShell 值得考虑,更不用说是“最佳”选项了?

借我你的耳朵,我想告诉你这个经常被忽视的来自微软的害群之马。以下是您应该考虑使用 PowerShell 进行云管理的五个原因。

1.跨平台安装

您可以在自己选择的机器上使用 PowerShell。

虽然 PowerShell 在微软的领导下首次亮相,但现代版本是跨平台的。直到今天,许多人仍然认为它是一个严格的 Windows 工具。但事实上,随着 PowerShell 7 的发布,它甚至是开源的。在过去的几年里,微软确实改变了他们的论调,拥抱开源和 Linux 社区,而 PowerShell 似乎是其中的一个关键部分。

这对开发人员和系统管理员来说都是好消息,因为这意味着您可以在自己选择的机器上使用这个强大的自动化工具。只要你有一个网络浏览器,你甚至不需要安装 PowerShell。微软 Azure 已经将其直接集成到他们的门户中,允许你直接从浏览器中使用 Azure 云外壳。

这个工具在后台利用 Ubuntu 机器为您提供一个 shell 体验,不仅可以在全球范围内访问,而且可以在会话之间保持不变。

2.我喜爱的对象

PowerShell 的一个关键与众不同的特性是它能够处理对象,而不仅仅是文本。

例如,如果我运行 Get-Process ,它将为我返回一个正在运行的进程列表。乍一看,这看起来与任何其他工具中的任何其他文本列表一样。但令人惊讶的是,它实际上是一个对象列表。我可以引用该对象的单个属性,甚至可以在其他命令中有选择地使用它们。这种简单的差异在编写脚本或动态使用命令时会产生重大影响,以至于这个特性本身对使用其他工具的用户来说就很有吸引力。

3.通过你的力量组合

PowerShell 模块让你升级你的能力。

PowerShell 的另一大特点是模块。基本上,这些是你可以很容易地导入到你的会话中来立即升级你的能力的附件——有点像 Neo 在他的矩阵训练椅中。

这不仅允许您使用各种产品(如 Active Directory、SQL Server 和 AWS 或 GCP 资源),还允许您在同一时间做这件事。这意味着您可以使用一个脚本来管理本地 AD 权限,从数据库中提取查询,并提供云资源。可能性真的是无限的,完全由你定制。

4.这很有意义

PowerShell 的语言直观且可重复。

有时,当我们讨论技术选择时,我们可能会迷失在功能比较、语法细微差别和竞争的杂草中。我们最终会忘记,我们是需要完成工作的人,语言的简单性会对我们的日常工作生活产生巨大影响,无论是好是坏。

在我看来,这是 PowerShell 的一个亮点。不太了解 PowerShell?别担心。开始使用 PowerShell 很容易。这种语言的整个结构是以一种直观和可重复的方式设计出来的**。**所有命令都采用动词-名词格式。所以你说你想采取的行动,以及你想对什么采取行动。

如前所述,为了获得流程,我运行了Get-Process。如果我想获得命令列表,我使用Get-Command。如果我想添加一个用户到现有的 Azure 广告组,我会使用Add-AzADGroupMember。你明白了。

这不仅有助于记住您经常使用的命令,而且在短时间内,您几乎可以猜出该命令是什么——即使您以前从未使用过它。由于模块之间的一致性,您也可以经常猜测它的参数。这对于那些不熟悉这门语言或自动化的人来说特别有帮助。

5。PowerShell 酷毙了

最后一个非常技术性的观点:PowerShell 非常有趣。

在我职业生涯的早期,我在完成一个项目后遇到了 PowerShell,在这个项目中,我必须维护一个遗留的 VBScript 文件。在那次痛苦的经历之后,踏入 PowerShell(当时还处于起步阶段)就像喝了一口水。我无法相信完成强大的任务是如此容易,而且随着时间的推移,它只会变得更好。从那以后,我有机会在各种脚本和日常管理任务中使用它,编写自己的模块,并在多个操作系统和环境中实现它。这是一次我非常享受的狂野之旅,而且越走越有趣。

TL;博士?

以下是 PowerShell 如此神奇的原因。

Powershell 是一种脚本语言和 Shell,您可以从任何机器上运行它(甚至是没有安装它的机器,通过云 Shell)。

  • 它可以管理 Windows 和 Linux 机器。
  • PowerShell 允许您管理 Azure、AWS 和 GCP 上的云资源。
  • PowerShell 允许您以简单但强大的方式完成所有这些工作。将所有这些都放入 Azure PowerShell Runbook 中,您的同事也可以用一种可重复的方式来完成这些任务。
  • 不要让它是微软制造的这个事实欺骗了你,也不要被对它的普遍误解所阻碍。亲自了解新的 PowerShell,我想你会像我一样喜欢它。

使用 ACG 启动您的 PowerShell 游戏

想了解更多关于 PowerShell 的信息吗?查看一些云专家的其他 PowerShell 课程。

想跟上万物云? 在 YouTube 上订阅一位云大师 获取每周云相关新闻。你也可以像我们一样关注**,关注我们的* 推特 ,或者加入 不和谐 的对话!*

兰登·福勒和马克·米库拉对此文亦有贡献。

Landon Fowler and Mark Mikula contributed to this post.

在线云认证常见问题解答:如何在家获得认证

原文:https://acloudguru.com/blog/engineering/online-cloud-certification-faqs-how-to-earn-certs-from-home

对于目前或有志于寻求证书的云专家来说,2020 年至少有一个积极的发展:在线云认证考试的兴起。

向远程工作的转变从根本上改变了企业的运营方式,包括看到云桌面从“简洁”变成许多组织的必需品。它还改变了大型公共云提供商提供获得云认证所需考试的方式。这意味着现在(在许多地方和语言中,以及对于大多数云计算测试)您可以在家工作时获得认证。

在线云认证考试常见问题解答

在本帖中,我们将介绍亚马逊网络服务、谷歌云和微软 Azure 认证考试的远程认证和在线云考试(通常称为“在线监考考试”)的情况。我们还将提供一些关于如何准备在线认证的提示。

我在家工作时可以获得云认证吗?

是啊!在线云考试并不新鲜。(微软从 2020 年之前就开始提供在线云认证选项。)但今天,当你选择亚马逊网络服务(AWS)、微软 Azure 或谷歌云(GCP)进行云计算测试时,你有了比以往更多的选择。

在 WFH 的世界里——或者说在这个世界里,你可能不太渴望去现场考试中心——在线获得认证的选择让考生可以灵活地随时随地参加考试。


RSS

*Want a first-hand account of how online cloud certification goes down? Check out this play-by-play of what it’s like to take an AWS online exam. *


什么是在线监考考试?

在线考试定期举行,并通过网络摄像头进行“监考”(考试代表“监控”),以确保一切顺利进行。基本上,你在电脑上参加考试,而有人用你的网络摄像头看着你。

传统上,IT 认证考试在独立的考试中心举行。(在那里,一个受信任的成年人可以照看考生。)随着云提供商在 2020 年开始通过在线监考提供更多考试,在线考试越来越受欢迎。

如果你附近的考试中心关闭了,你不喜欢在那里考试,你只是喜欢呆在家里或办公室里,或者你保持不规律的时间,在线监考考试为寻求证书的云专家提供了一个很好的替代选择。

在线监考考试的要求非常基本,所有云提供商的要求都很相似:

  • 带有网络摄像头、麦克风、扬声器或耳机的现代电脑(平板电脑和手机是禁忌)
  • 一个安静的私人场所,房间里没有其他人
  • 一个像样的互联网连接没有任何硬件安全措施

担心你的旧电脑可能达不到标准?测试提供商提供在线测试,以确保您的设备、设置和网络符合远程考试的标准。(这里有一个皮尔逊 VUE 为 AWS 做的例子。显然,您希望运行与您的特定在线云认证和相关测试人员相一致的系统测试。)

在线云认证有哪些利弊?

无论是现场考试还是网上考试,费用都是一样的,考试内容也是一样的。但是,与在线监督测试相比,面对面测试有一些利弊需要权衡。

  • 教授:一周七天,一天 24 小时,你都可以找到预约。(几乎有,因为一些测试提供者有窗口——例如,在晚上 10 点到午夜之间——不提供测试。)这意味着你可以完成证书的学习,然后安排在同一天参加考试。

  • PRO :当你在为云认证考试而学习时,有很多的方法可以让云学习坚持。但是在线考试唯一允许的一个技巧是选择在同一个环境中学习和测试**。熟悉的景象、声音和气味(也许是时候投资一支蜡烛了?)可以帮助回忆。**

  • 反对:这个世界上很少有完美的事情(除了 1982 年的电影《T2》中的那件事)在线考试有一个很大的缺点:你可能无法参加考试。根据你的语言或所在地,在线监考的选择可能比现场考试少。然而,三大云提供商似乎正在大步向世界各地推出其他语言的在线考试。

  • 对你来说,另一个潜在的不利因素可能是需要可靠的互联网连接。监考人需要看到你和你的环境,所以如果你的网络摄像头或连接容易中断,你可能会被拒绝考试。不确定您的硬件和连接能否胜任任务?测试提供商提供基于浏览器的工具来帮助进行预检查。

面对面考试仍然是一种选择吗?

没错。根据您所在的位置,久经考验的现场测试中心可能仍然对您开放。请注意,一些测试中心可能会因当地卫生指南而关闭,其他测试中心可能需要口罩和其他类似的基于健康的预防措施。请咨询您选择的测试提供商,了解您的选择。

  • 对于 AWS 认证,找一个你附近的皮尔森 VUEPSI 测试中心。
  • 对于微软 Azure 认证,找一个你附近的皮尔森 VUE 考试中心。
  • 对于谷歌云认证,找一个你附近的测试中心。

在线云认证是免费的吗?

不。虽然互联网可能是所有免费事物的家园,但在线云认证不是免费的。在线云考试与面对面考试价格相同。但是到了准备你选择的云计算测试的时候,你可以得到云专家提供的一些免费培训。


查看本月免费云培训的阵容,包括热门且最新更新的 Azure 基础认证课程。或者开始免费试用


我如何在线参加 AWS 认证考试?

一个 AWS-一些方式获得认证,而 WFH

  • 如何安排 AWS 认证考试?
    要安排 AWS 认证考试,请访问AWS 官方认证页面。在线考试由 AWS 考试提供商——皮尔逊 VUE 和 PSI 提供。

  • AWS 在线监考考试的费用是多少?
    无论是现场考试还是远程考试,AWS 在线监考的费用都是一样的。AWS 云从业者考试费用为 100 美元。准水平考试是 150 美元。专业级和专业考试费用为 300 美元。

  • 如何在线更新我的 AWS 认证?
    AWS 认证有效期为三年。您可以通过重考最新版本的 AWS 证书考试在线重新认证该证书。这将再次花费你,但 AWS 会在时机成熟时提供 50%的优惠券代码。此外,对于基础级别的 AWS 云从业者考试证书,您可以通过任何助理级别或专业级别的考试获得重新认证。更多关于 AWS 重新认证的信息请点击这里

如何在线参加 Azure 认证考试?

我向你保证,我们开门了

  • 在家能拿到 Azure 认证吗?
    是的。如果你正在寻找获得 Azure 认证(有很多理由你可能想走上 Azure 认证道路)你很幸运。微软长期以来一直允许人们“在家中或办公室舒适地参加任何基于角色或基础知识的在线考试,同时由监考人通过网络摄像头和麦克风进行监控。”

  • Azure 在线监考考试的费用是多少?
    基础水平考试费用为 99 美元。所有其他与 Azure 相关的考试费用为 165 美元。但是请注意,有些认证需要两次考试。更多细节请点击。

  • 如何在线更新我的 Azure 认证?
    微软将于 2021 年对其 Azure 认证更新流程进行彻底检查。从 2021 年 6 月开始,微软基于角色的认证和专业认证将在一年后到期,而不是两年。但是(好消息)他们现在可以在网上免费续借,不需要重新参加整个考试。续订窗口在认证到期前六个月开始。通过续订会将认证的有效期从设置的到期日起延长一年。更多关于那个的细节在这里

如何在线参加谷歌云认证考试?

房子里有学监吗?

  • 在家可以获得 Google Cloud 认证吗?
    是的。所有九个谷歌云认证现在都可以通过远程监督或面对面在线进行。

  • 我如何安排谷歌云认证考试?
    要安排您的考试,请前往官方谷歌云认证网站。在注册考试之前,您需要创建一个 Webassessor 帐户。(请确保您的姓名与身份证上的姓名一致,否则您可能无法参加考试。)

  • Google Cloud 在线监考考试的费用是多少?
    无论是面对面还是在线,谷歌云考试的价格从 125 美元的助理级考试到 200 美元的专业级考试不等。

  • 如何在线更新我的谷歌云认证?
    谷歌云证书自颁发之日起两年内有效。在您的证书到期前 60 天,您可以参加同样的考试,重新获得两年的证书。如果你的认证仍然有效,谷歌为重新认证提供 50%的折扣代码。

  • 欲了解更多关于谷歌云在线监考考试的信息,请访问他们的官方常见问题页面

如何准备在线云认证?

那么,参加在线监考考试是什么感觉?这是相当无痛的,但有几件事你应该知道准备。

首先,让我们来谈谈一个可能是你最想问的问题:在线监考期间,我可以去洗手间吗?

不。如果你认为你在考试期间需要上厕所,去考试中心可能是个不错的选择。(我们已经听到一些考生说他们在网上监考考试期间被允许短暂的上厕所,但是官方的立场似乎是不允许任何形式的休息。这可能因监考人而异,但如果你想在网上考试前喝一壶咖啡,你可能想重新考虑一下。)

无论是云提供商还是测试者,你的监考老师都会想要窥探你的空间,以确保没有任何有趣的事情发生。你的桌子旁边挂着一些看起来很像 AWS 服务列表的现代艺术品?你需要把它拿下来。

以下是在线监考考试的一些常见要求:

  • 你的测试空间应该是一个光线充足的封闭空间
  • 你必须出示政府颁发的身份证
  • 如果需要的话,你需要在附近(但看不见)有一部电话与你的监考人通话
  • 不要将外部显示器或其他设备连接到您的电脑
  • 不要起床、吃东西、喝水或嚼口香糖
  • 没有其他人应该在或进入房间
  • 不允许他人指导或帮助(很明显)
  • 考试期间不要使用书写工具、书籍或其他资源
  • 没有耳麦、耳塞、耳机等。可能会磨损
  • 有一些例外和调整是可用的—请咨询您的测试提供商

最后还有几个额外的提示:

  • 如果可能,有线互联网连接可能比您的 Wi-Fi 更好。
  • 我们从至少一名学员那里听说,使用笔记本电脑的内置摄像头可能会很痛苦,因为监考人可能会坚持同时看到你的手和脸,这需要一些不符合人体工程学的座位安排。因此,如果你有一个单独的网络摄像头,考虑使用它。

准备好获得云认证了吗?

95%的 ACG 用户表示我们的工具和内容直接帮助了他们的职业生涯

让 ACG 做你的向导。无论您是现场测试还是在线测试,我们都将确保您已经掌握了通过考试并获得认证所需的技能。

OpenLDAP -修复或恢复损坏的目录

原文:https://acloudguru.com/blog/engineering/openldap-fixing-or-recovering-a-corrupt-directory

我们最喜欢的 AWS 公共部门峰会在线会议

原文:https://acloudguru.com/blog/engineering/our-favorite-sessions-from-the-aws-public-sector-summit-online

上个月,AWS 公共部门峰会在 DC 召开。一个真实的,面对面的会议!感觉事情正在恢复正常,或者更确切地说,我们正在找到我们的新常态——入场需要口罩和疫苗接种证明。

今年的出席人数比前几年有所减少,但有机会了解人们在云中制作和做的酷东西总是件好事。虽然 DC 的会议还没有开始,但我们想分享我们从 7 月开始最喜欢的公共部门峰会在线会议。


通往更好职业的钥匙

从 ACG 开始通过 AWS、Microsoft Azure、Google Cloud 等领域的课程和实际动手实验室改变你的职业生涯。


1.采用现代应用生命周期,并通过 AWS 开发运维

【2021 年 AWS 公共部门在线峰会:采用现代应用生命周期和与 AWS 的 DevOps】

AWS SA Leo Zhadanovsky 带我们了解亚马逊自己的微服务和基于管道的部署之旅。这是一个很好的提醒,在 DevOps 中,就像在许多事情中一样,小的、渐进的变化会导致大的变化。

这个会议也给了我们关于自动化和作为代码工具的 T2 基础设施的最新更新!

2.利用从现场学到的经验来构建安全体系

【2021 年 AWS 公共部门在线峰会:利用从现场获得的经验教训构建安全体系

AWS 安全专家 Brad Dispensa 讲述了用户在使用 AWS 安全套件时会犯的常见配置错误。AWS 中的安全性——在任何公共云上——是每个人都认为很重要的事情之一。但是由于种种原因,它并不总是得到这样的对待。

虽然拥有对 AWS 安全工具有深入了解的工程师是件好事,但这次演讲涉及了许多服务,设置它们时的一些常见错误,以及最重要的是,如何纠正错误以改善您的安全状况。

3.构建可信的 ML 检测并监控 ML 模型中的偏差

AWS 公共部门在线峰会 2021:构建可信的 ML 检测并监控 ML 模型中的偏差

人工智能和机器学习在日常业务中越来越常见,但许多 ML 模型的“黑箱”性质正迅速成为房间里的大象。

特别是对于公共部门组织来说,能够解释一个 ML 系统如何做出决定的需求是必要条件-有点像交易破坏者。随着 AWS Sagemaker 的成熟和成为一站式 ML 平台,AWS ML 专家 Aaron Sengstacken 介绍了 sage maker Clarify——一种识别偏见并提供可解释性的新工具。

我们喜欢看到机器学习从业者思考他们创造的工具如何影响用户,以及这些系统需要什么样的问责制来赢得更广泛的信任。

4.准备勒索软件

AWS 公共部门峰会在线 2021:准备勒索软件

又一次安全会议?嗯,这是一个公共部门的事件,除此之外,你真的可以有太多的安全措施吗?随着像勒索软件攻击这样的网络犯罪的增加,以及每天越来越多的敏感数据被存储在云中,组织应该拥有勒索软件剧本,就像他们应对中断、DDoS 攻击和内部威胁一样。和其他危机一样,写剧本最糟糕的时候是在危机期间。

在本次会议中,AWS SA Abhi Singh 将向我们介绍最新的 NIST 指南,以及如何在 AWS 中将该指南转化为行动。


我希望你觉得这些会议很有趣,很有帮助——要么它们给了你一个新项目的想法,帮助你解决了你现在正在做的项目的问题,要么让你提出了新的问题,你可以探索并找到答案!

想跟上万物云?在 YouTube 上订阅云专家的每周更新。您也可以在脸书上喜欢我们,在 Twitter 上关注我们,或者在 Discord 上加入对话!

我们的大师故事:2022 版

原文:https://acloudguru.com/blog/engineering/our-guru-stories-2022-edition

技术是一个很大的领域,在这个领域你可以在完全不同的重点领域找到职业。因此,不是每个人都以完全相同的方式进入其中。

先分享一下我的故事吧!

我是作为一名普通用户进入科技行业的,在一台运行 Windows 95 的大电脑上打字。我玩像 Hover 这样的游戏,或者看像 Weezer 音乐视频这样的东西——所有这些都是好东西。我没打算在科技领域工作,嗯,从来没有。

为什么?我一直在寻找涉及帮助人们的工作,这让我进入了客户服务的角色:比如食品和娱乐业。我真的去学校学习心理学和犯罪学,都是为了成为克拉丽斯·史达琳,追捕坏人!当生活决定这一切都不适合我时,我把注意力转移到了生存上,并一步步向前迈进。

…然后一切都变了

一天,我的一个朋友建议我去他工作的科技公司申请一个电话职位。我笑了,告诉他我不会得到那里的工作。毕竟,我在科技领域毫无经验。

我很高兴地说我错了。几次面试后,我得到了工作机会,开始了后来被证明是一生中最大的冒险。

我一头扎进了 Linux (特别是 RedHat)并稳步获得晋升。我发现了对 AWS 的热爱。我知道,很奇怪,对吧?我喜欢这个控制台,关于每项服务的无穷无尽的信息,以及它们不断推出的功能和服务的永无止境的演变。我认真学习并获得了证书。每当一个机会出现——不管它看起来多么突然——我都会努力抓住它。

这就是我如何在一个云专家/多重视野中结束的!在这里工作的最大好处是,我可以帮助人们——这是我最初的目标——同时在 AWS 的土地上玩耍,自从我决定要了解更多关于“云的事情”以来,我就一直喜欢这个地方

通往科技的道路并不总是平坦的

如果有人告诉你有一种方法可以进入科技领域,那他们就错了——有几种方法,而且并不是所有的方法都被广泛使用。事实上,你可以在科技领域闯出一条自己的路,一条完全非正统的路。

最近,我有幸在 AWS re:Invent 与一些优秀的学生共度时光,他们的故事都非常不同。我将分享它们来告诉你,我所说的不仅仅是让你内心感到温暖和温暖(尽管这是额外的收获),而是向你保证,是的,我说的是实话!

故事#1:小威廉·布莱特

我在 re:Invent 抓住了威廉,当时他正漫步离开世博大厅。幸运的是,他顺道过来和 ACG 小组打招呼,否则我会错过和他见面的机会!

这位先生成为我们的学生至少有 4 年了。他目前是一名云基础设施财务经理(说快五倍),并经常使用 ACG 来掌握如何使用该平台来更好地帮助他的合作伙伴。他的旅程始于寻找一个技术职位,并在大学获得了管理信息系统(MIS)学士学位。他继续走这条路,并获得了工商管理硕士学位(MBA)。

故事#2:埃斯特万·佩格诺

这个人,这个神话,这个传奇!Estevan 是一名云解决方案架构师,他从 Kroonenburg 兄弟刚刚起步的时候就已经是 ACG 的粉丝了,所以他见证了所有的成长。他一直对互联网技术感兴趣,特别是互联网让人们找到社区、表达自己和分享知识的方式。

Estevan 的旅程从学习基本的 html 和 css 网站的基本前端技术开始。这变成了学习如何通过在 Linux 机器上运行 Apache 来托管站点。他拥有心理学学士学位,并在 2011 年获得了高级思科网络技术的 AAS 学位。

故事#3:诺琳·哈桑

让我们来看看诺琳。她还从一开始就追求技术,并打算开发教育软件。四年半前,她从一个专门研究 Python 和 AWS 服务的数据工程训练营开始了她的云计算之旅。

快进到今天,她现在是 ACG 的 AWS 培训架构师!她不可动摇的成长心态使她从测试技术延伸到教学和帮助他人成长为技术专家。我们稍后会谈到更多关于诺琳的内容。

故事#3:尼克·亨德里克斯

最后,但最重要的是,首席云安全工程师尼克·亨德里克斯获得了哲学文科学士学位,并于 2017 年开始使用 ACG。这并不意味着他在那之前没有学过技术。他于 2013 年获得计算机信息系统学士学位。他有几个技术机会,喜欢着手解决前沿问题。他在 2017 年获得了 AWS 认证。

那么共同因素是什么呢?

我们都有不同的故事,讲述我们如何走到今天,我们都经历了自己的挑战。我发现我们所有人的共同点是,我们一直都在努力学习。我们不会让这些挑战击垮我们。我们尽最大努力克服它们。

这些好人的智慧之言

来自这些受人尊敬的同事的建议绝对是精华,如果您刚刚开始您的云之旅,或者您遇到了您正在努力应对的挑战,让他们的话帮助您。

“不要担心一下子就搞清楚。集中精力学习下一课,然后是下一个实验,接着是下一门课程。当你开始感觉舒服的时候,去追求一个证书。在第一次认证后,不要期待云计算突然点击的大啊哈时刻,只需庆祝成就并确定下一个挑战。这将使你建立一个健康的学习路径,让学习成为你习惯性习惯的一部分。如果你心存疑虑或觉得自己的目标遥不可及,提醒自己,即使是最高级的大师也是一次上一课。”

–努林·哈桑

“专注于你的手艺。不管你目前的技能如何,总有提高的空间。不要害怕学习新的东西…人际关系网也是关键。你也可以通过参与各种开源项目或者只是参加当地的技术会议来参与进来。这是一个获得第一手学习经验、展示你的才华以及与业内许多很酷的人互动的好方法。”

–小威廉·布莱特

“保持开放的心态,努力对这个领域有一个广泛的了解。一个人可以专攻很多领域。甚至很难知道外面有什么。无论是运营、安全、基础设施、自动化还是无数其他领域,新进入该领域的人应该尽可能多学一点,看看是什么真正激起了他们的好奇心,并会激励他们深入研究。试着寻找能帮助你发展这方面技能的导师,跟着你的好奇心走。”

–埃斯特万·佩奎诺

“科技是一项团队运动,所以让你周围有一个想培养你而不是打倒你的团队。永远不要停止好奇。永远寻找更聪明而不是更努力工作的方法。”

–尼克·亨德里克斯

结论

以上都是很好的建议,所以这里有一点我自己的:在科技领域没有正确的导航方式。它是如此的广阔,触及到了全世界的一切。人际关系网将帮助你找到自己的位置,并开始让你的支持系统充满导师和健全检查者。

永远不要停止学习。当你陷入困境,想要放弃这一切的时候,记住:深呼吸,一步一步来,继续保持牛逼。

Brent Ozar:微软 SQL Server 的未来是什么?

原文:https://acloudguru.com/blog/engineering/ozar-whats-the-future-of-microsoft-sql-server

Brent Ozar 是一名 SQL Server 专家和微软认证的硕士,他曾帮助 Google 和 Stack Overflow 等公司充分利用他们的 SQL Server。

我们(虚拟地)与 Brent 坐下来讨论了微软 SQL Server 的未来,以及在云计算的新世界中以此为职业的数据库管理员。

Forrest Brazeal: Brent,你是一名从事大规模 SQL Server 部署的性能专家;当你听到云架构师说“关系数据库不能扩展”这样的话时,你有什么感觉?你希望他们知道什么?

布伦特·欧扎:他们是对的。什么都不值。即使是看起来很简单的东西,比如亚马逊 S3 文件存储,如果在设计时没有分析 AWS 分区如何读取,以及如何注意对象前缀,也会遇到伸缩问题。

但问题是,没有人阅读文档

哦,当然,他们阅读第一页,他们建立 Hello World 版本,然后他们开始建立一个应用程序,而不考虑设计将如何执行。(有时,甚至没有设计——人们只是随意地开始编码。)

所以,当我看到有人说某样东西无法扩展时,我有点窃笑——没有什么东西可以扩展。责怪自己乐器的人是可怜的音乐家。选择你最了解的持久层,因为这可以防止你做出愚蠢的设计决策,这些决策以后会回来困扰你。你在过去用一个工具犯的错误越多,你就越有可能不会再犯同样的错误。

如果你选择了一个你以前从未在生产中使用过的持久层,而你的应用变得流行,你将为你早期犯的错误——或者持久层为你犯的错误——付出代价。

也就是说,除了“这是我已经知道的事情”之外,现在还有其他选择 SQL Server 的理由吗

Brent Ozar:当你的应用程序在一个有 10,000 名员工的公司中实现时,你开始从不同的部门收到更多听起来像企业的请求。例如,安全部门的 Sam 需要审核哪些用户在过去 30 天内更改了数据,会计部门的 Annabel 需要您的应用程序将税务数据与 SAP 同步。

在这样的环境中,使用爷爷的关系数据库要常见得多,因为它已经有很多内置功能来帮助实现这些目标,而且更容易从街上雇用知道如何做的人。

如果您正在构建一个新的网站或 SaaS 工具,并且您将是唯一一家托管它的公司,那么您有很大的灵活性来选择您想要的数据持久层。您可以毫无问题地使用数据库。但是如果你想向一万名员工的公司销售一个应用程序,如果你使用他们支持的数据库,你会得到更快的销售。

Forrest Brazeal: 你因同名的 SQL Server 助手工具而声名远扬,有时你的名字会被简单地列为 DBA 招聘信息中的一项必备技能。对于我们大多数人来说,这可能不是一个现实的目标。也就是说,要成为一名值得信赖的 DBA,您推荐几个职业步骤?

布伦特·奥扎(笑):是的,那是超现实的。

要成为一名值得信赖的 DBA——或任何值得信赖的人——在网站上自由地分享你所知道的,并写上你的名字。

分享知识可以完成几件不同的事情。首先,如果未来的老板或同事谷歌你,他们会找到你的名字,读你写的东西,然后说,“嘿,这个人似乎真的知道我不知道的东西。”你的博客文章上的日期也建立了你随着时间的推移所知道的东西的记录,以及它是如何成长的。

一开始,你的目标是如果人们用谷歌搜索你的名字,你会被找到。那相当容易。后来,随着你开始积累更多的作品,人们在谷歌上搜索主题时也会碰到它们,即使没有你的名字。这就是你开始建立受众的时候——人们首先会担心这个问题,但是先等等。只要开始以你的名义建立一个公共记录,剩下的就会像滚雪球一样越滚越大。


如果你想提高 Azure 的技能,微软目前为任何完成 ACG 免费预备课程的人提供 50%的 AZ-900 考试代金券!


Forrest Brazeal: AWS 最近宣布了一款名为 Babelfish 的开源翻译工具,这是一个让人们离开 SQL Server、使用 Postgres 等开源数据库引擎的大胆尝试。你对这种战术有什么想法?

Brent Ozar:我喜欢 Babelfish,因为它给微软带来了持续创新的压力。数据库市场有点像这样:

  • 甲骨文—非常昂贵
  • 微软 SQL 服务器——相当昂贵
  • AWS RDS Postgres 和 Aurora——从便宜到略贵
  • postgres–免费或便宜,取决于支持

如果你是微软,你想赚更多的钱,你看着甲骨文的大量现金,你建立功能,将帮助甲骨文用户迁移到 SQL Server 和节省资金。如果你是 AWS,你会看到微软的大量现金,你会开发像 Babelfish 这样的功能来帮助 SQL Server 用户向下迁移并节省资金。一切都慢慢变成不那么贵的商品。(如果你对这种东西感兴趣,搜索沃德利价值映射——这真的是很好的东西。)

我对 AWS Babelfish 感到非常兴奋,因为它鼓励微软开始捍卫他们的价值主张。微软必须开始推出新的东西,让 AWS RDS & Aurora 的客户渴望使用 Real Deal SQL Server(和/或 Azure SQL DB)。

SQL Server 2017 和 2019 开始通过查询优化器的改进来实现这一点,这样您的代码就会运行得更快——这是一笔不错的预付款,但他们必须继续支付这些费用。如果他们不这样做,像 Babelfish 这样的项目将会在发货时赢得客户。

**Forrest Brazeal:**Linux 上的 SQL Server:MSFT 的聪明玩法,还是失败的实验?

Brent Ozar:如果你在流行的数据库列表中往下看,只有 SQL Server 和 Access 是 Windows 专用的。我认为对微软来说,对冲他们的赌注,并开始进行必要的投资,以在 10-20-30 年后的数据中心中生存下来,这是有意义的。不过,这是一个障碍:它不应该是运行 SQL Server 的第一默认选择。还没有完整的功能,高可用性和灾难恢复的故事还很粗略。

我认为 Linux 上的 SQL Server 2019 是一个 alpha 版本。如果你有必要拥有它,它就在那里,否则,你应该等几年,直到你真正需要它。现在,它只是在那里做实验。

您可能拥有它的一个地方是用于持续集成的一次性环境。如果您需要快速、廉价地启动和关闭大量临时 SQL 服务器来测试您的代码,那么肯定是有意义的。

Forrest Brazeal: 不管怎样,SQL Server 在云中的前景如何?它是下一个甲骨文(正如 AWS 试图给它定位的那样),广受欢迎,主要是遗留的,还是能以自己的方式与 Postgres 和 MySQL 等托管 OSS 引擎竞争?

Brent Ozar:不要考虑数据库引擎品牌的不喜欢和遗留问题。

从必须实现的特性的角度考虑不喜欢和遗留问题:审计、细粒度单点登录安全性、与 Active Directory 的集成、与报告系统的兼容性、GDPR 合规性、加密等。这里有一个很好的起点:https://www . enterprise ready . io

开发者讨厌这些特性。这就是为什么亚马逊和其他人说 Oracle 和 SQL Server 是不受欢迎的遗留应用程序:它们支持企业用户要求的所有功能,但开发人员讨厌它们。我也讨厌这些功能,但是……企业需要它们。

如果你不在企业中,也不打算向企业销售你的应用,那么就不要使用昂贵的关系数据库。使用更便宜的和云原生的东西,比如亚马逊的吹捧。我同意这是一个更好的选择。

Forrest Brazeal: 最后,比方说,在 2025 年,DBA 的角色会是什么样子?

Brent Ozar: 2025 年离现在只有短短的四年时间,而大多数组织甚至还没有为云原生的未来做好计划。他们只是说说而已。2025 年的 DBA 工作描述仍将与今天一样:管理存储在一系列不同平台上的数据,所有这些平台都有自己的管理、故障排除和性能调优功能。

如果你把它延长到 2031 年或 2036 年,从现在开始 10-15 年,它会更容易。我们将不再担心备份、损坏修复和恢复。但你知道我们还会面对什么吗?故障排除(因为每个人都认为首先是数据库问题)、安全性、加密、性能调整和架构。

云不会自己设计。

本次采访是 ACG云对话系列的一部分。

将 AWS Lambda 打包成容器映像

原文:https://acloudguru.com/blog/engineering/packaging-aws-lambda-functions-as-container-images

AWS re:Invent 2020 上宣布了对 AWS Lambda 的容器映像支持。这是 AWS 功能即服务产品的一个重要新增功能。Lambda 在管理可伸缩性、高可用性和容错方面为开发人员提供了许多好处,并且还支持按价值付费的模型。通过支持函数的容器封装,Lambda 现在成为了广大开发者的一个选择。

在这篇文章中,我解释了这个新功能提供了什么,并浏览了一个教程,展示了如何构建一个容器映像并在 Lambda 函数中运行。

为什么 AWS 增加了对容器打包的支持?

在这个改变之前,Lambda 部署包是一个 zip 文件。zip 文件包含代码以及任何库和依赖项。你可以手动上传这个文件,或者使用自动化工具,如 AWS 无服务器应用模型(AWS SAM)AWS CDK,或者无服务器框架

然而,许多客户已经投资了基于容器的部署工具和工作流。除了 CI/CD、安全性和治理工具之外,还包括 Docker。Docker 是一个非常强大的运行和管理容器的工具(如果你想提高你的技能,你可以通过获得 Docker 认证来做到这一点)。有了这一改变,开发人员可以从统一的开发和部署过程中受益。


你是想开始你的 AWS 职业生涯还是想让你的技能更上一层楼?我们的 AWS 学习路径提供定制的路径,让您的云计算之旅更加精彩!


使用容器包装功能的好处

Lambda 将基于容器的函数视为不可变的实体。调用时,作为容器映像部署的函数按原样运行。这意味着部署包在不同的环境中是不可变的,包括桌面、 CI/CD 流程和 Lambda 执行环境

对于工作负载较大的开发人员来说,基于容器的部署包现在最大可达 10 GB。这释放了许多新的工作负载可能性,尤其是对于数据密集型或依赖性密集型应用程序。对于机器学习或数据分析,这允许开发人员利用无服务器计算的优势。如果您使用 PyTorch、NumPy 和类似的库,以前的 250 MB 部署包限制阻止了许多工作负载使用 Lambda。

这种新方法还提高了不同 AWS 计算选项之间的可移植性。你可以为你的代码选择一个首选的基于映像的方法,这样在 AWS Fargate 或 Amazon EC2 等服务之间实现可移植性就更容易了。

它是如何工作的

有了容器映像支持,Lambda 支持 Docker 映像清单模式开放容器倡议(OCI)规范(版本 1.0 起)。它支持来自亚马逊弹性容器注册中心 (ECR)的容器映像部署。

Lambda 服务提供了各种预安装运行时的基本映像选项。这些基础映像将由 AWS 进行修补和维护。目前支持的运行时有 dotnetcore2.1、dotnetcore3.1、go1.x、java8、java8.al2、java11、nodejs12.x、nodejs10.x、python3.8、python3.7、python3.6、python2.7、ruby2.5、ruby2.7、provided.al2、provided。开发者也可以提供他们自己的基于 Linux 内核的映像。

这里一个有趣的新组件是运行时接口客户端 (RIC)。ric 是在运行时将客户功能代码与 Lambda API 集成在一起的包装器。这些都预装在 AWS 提供的基本映像上。对于您构建的映像,您必须确保 RIC 存在。有一个开源版本用于定制基础映像。

还有一个运行时接口仿真器(RIE ),使您能够在本地测试功能代码。在开发和其他生产前环境中,通过发送 HTTP 请求来测试功能非常有用。模拟器在容器内部的端口上监听 HTTPS 请求,然后包装这些请求并作为事件提供给函数。这也是一个开源项目

Lambda 执行环境在运行时提供了一个只读文件系统。要写入文件,您可以访问 512MB /tmp 存储空间。默认用户是唯一受支持的用户,这使得 Lambda 能够在调用期间提供最低特权的安全权限。

许多事情不会改变

将 Lambda 函数打包成容器映像的能力带来了新的功能,但许多事情并没有改变。如果您是一名现有的 Lambda 开发人员,并且对您当前构建和部署应用程序的方法感到满意,那么您不需要做任何改变。如果你想使用这种新型包装,你可以依靠许多东西继续工作,因为他们以前没有。

Lambda 的资源和操作模型完全相同。这意味着自动扩展特性、跨多个可用性区域的高可用性以及安全性和隔离模型是相同的。

性能配置文件也仍然取决于映像大小、运行时选择以及函数的依赖性。我在这个 YouTube 视频中讨论的许多优化技巧仍然适用于基于容器的 Lambda 函数。Lambda 定价也是一样的,不管你用哪种打包方式。

Lambda 的主要特性仍然适用于基于容器的函数。您可以继续使用提供的并发性、扩展、Amazon 弹性文件系统(EFS)和 X 射线集成。您还可以像以前一样让这些函数访问您的 VPC,使用保留并发,或者将成功和失败处理路由到 Lambda 目的地。

如何将 Lambda 函数打包成容器映像

为了展示这在实践中是如何工作的,本演练使用了一个基于 Linux 的环境,其中已经安装了 AWS CLINode.jsDocker

1.创建应用目录,设置 npm,安装用于生成测试数据的 Faker.js 包:

mkdir getCustomerFunction
cd getCustomerFunction
npm init –y
npm i faker --save

2.创建一个名为 app.js 的文件,粘贴以下代码。这与您在常规 zip 文件部署中使用的 Lambda 处理程序代码相同:

const faker = require('faker')
module.exports.lambdaHandler = async (event, context) => {
    return faker.helpers.createCard()
}

3.创建一个名为 Dockerfile 的文件,并粘贴以下代码。这指导 Docker 如何构建容器,安装任何必要的包,并显示 Lambda 处理程序在哪里可用。

FROM public.ecr.aws/lambda/nodejs:12
COPY app.js package*.json ./
RUN npm install
CMD [ "app.lambdaHandler" ]

完成这些步骤后,我的 IDE 看起来像这样:

4.使用 Docker 通过以下功能代码构建一个映像:

docker build -t get-customer .

5.在 ECR 中创建新的存储库,并将 Docker 映像推送到 repo。将替换为您的 AWS 帐户 ID,将替换为您的首选 AWS 地区:

aws ecr create-repository --repository-name get-customer --image-scanning-configuration scanOnPush=true

docker tag get-customer:latest <accountID>.dkr.ecr.<region>.amazonaws.com/get-customer:latest

aws ecr get-login-password | docker login --username AWS --password-stdin <accountID>.dkr.ecr.us-east-1.amazonaws.com

docker push <accountID>.dkr.ecr.<region>.amazonaws.com/get-customer:latest

将容器图像作为 Lambda 函数调用

一旦图像被推送到 ECR,您就可以在新的 Lambda 函数中使用它。在 Lambda 控制台中,选择创建功能,然后在基本信息面板中选择新的容器图像。选择创建功能完成该过程。

在下一页中,当使用容器图像成功创建函数时,会出现一个通知。你可以像测试任何常规 Lambda 函数一样测试这个函数。选择 Test 后,你会看到函数代码返回的随机测试数据:

在 Lambda 控制台中,您可以设置超时(1–900 秒)和内存分配(128 MB 到 10,240 MB)。10 GB 的限制是一项新功能,提高了以前的最大内存 3 GB。

使用 AWS SAM 实现流程自动化

使用 AWS SAM 可以自动构建和部署基于容器的 Lambda 函数。为此,您需要安装 AWS SAM CLI 。你需要 ECR 回购 URI-要找到它,导航到 ECR 控制台并从 get-customer 回购中复制 URI。

本演练使用前面创建的 ECR repo 部署完全相同的功能。首先,您使用 AWS SAM 来初始化一个项目,以生成一个示例函数和 Dockerfile 。接下来,使用 build 和 deploy 命令来自动构建映像,推送到 ECR repo,并创建 Lambda 函数。

从终端:

1.输入 sam init 启动 AWS SAM 向导。

2.选择“1–AWS 快速入门模板”。

3.您可以选择 zip 或图像部署。选择 2–图像。

4.您可以选择您喜欢的运行时基础映像。在这种情况下,选择 1–Amazon/nodejs 12 . x-base。

5.对于项目名称,输入‘我的 sam 功能’。这将创建一个包含 AWS SAM 模板、自述文件和单元测试的样例项目。

6.导航到 my-sam-function 项目中的 hello-world 函数目录,打开 app.js,粘贴以下函数代码并保存更改:

const faker = require('faker')
module.exports.lambdaHandler = async (event, context) => {
    return faker.helpers.createCard()
}

7.将终端放在 my-sam-function 项目目录中,构建项目:

sam build

8.使用 AWS SAM 部署的引导模式部署基于容器的功能:

sam deploy –guided

对于栈名,输入‘my-Sam-project’,输入首选区域,然后输入之前复制的 ECR 库 URI。

部署完成后,新功能会出现在 Lambda 控制台中。您可以通过使用之前使用的测试选项来调用该函数。

结论

有了 Lambda 的新容器映像支持,您可以使用 Docker 来打包您的自定义代码和 Lambda 函数的依赖项。10 GB 部署包限制使得部署不适合现有 250 MB 文件配额的较大工作负载成为可能。

在这篇文章中,我展示了如何构建 Docker 映像并在 Lambda 服务中部署该映像。我还展示了如何使用 AWS SAM 来简化样板项目的生成、构建映像和部署功能。

现在是在 AWS 中发展云技能和提升职业水平的最佳时机。

要获得更多帮助您充分利用基于 Lambda 的应用程序的技巧和诀窍,请访问无服务器世界

向前支付:帮助我们赠送 1,000 份 ACG 订阅

原文:https://acloudguru.com/blog/news/pay-it-forward

为了支持那些因新冠肺炎而失业的人,我们将赠送多达 1000 份 ACG 年度订阅。我们请一位云计算专家和 Linux 学院的学习者来帮助我们。

向前支付

现在情况远非正常。但是我们仍然相信人们可以通过学习找到更光明的未来。

云学习者可以授权他人获取知识,并通过为自己赢得证书来发展职业发展所需的云技能。在 2020 年 5 月至 6 月期间,云专家和 Linux 学院用户每获得一项云认证,我们将向申请获得免费 ACG 订阅的人奖励一份年度订阅。

任何获得 AWS、Azure 或谷歌云证书的人都有资格。(以防你错过)所有的 AWS 和 Azure 云证书考试都可以在家进行,还有两个 T2 和 GCP 的考试。

获奖者将根据 ACG 团队确定的需求进行挑选,该团队将审查提交的每一份申请。

新冠肺炎援助计划适用于美国、英国和澳大利亚的居民。但是任何地方的学习者都可以参与“向前支付”计划。

这一举措是在个人年度会员资格永久降价后推出的,目的是让有志成为云计算大师的人更容易获得和负担得起高质量的技术教育。

任何人都可以学习云

考虑从事云计算职业的可能性,但担心自己不适合?或者认识处于类似情况的人,他们可能会犹豫要不要做出这个决定?看看下面温斯顿·史密斯的故事。他从一个没有技术背景的零售工人,到 AWS DevOps 工程师。

https://cdn2.hubspot.net/hubfs/2992779/10.%20Videos/Winston%20Smith.mp4


无论您是完全的新手还是经验丰富的技术人员,我们的 explain-it-like-I-five 方法、动手工具和引人入胜的讲师都将帮助您学习新的云技能,并在此过程中获得一些乐趣。开始体验 ACG


Azure 的支柱:你的云计算生涯中值得关注的 4 个趋势

原文:https://acloudguru.com/blog/engineering/pillars-of-azure-4-trends-to-watch-in-your-cloud-career

在这篇文章中,(基于我在最近的 ACG 社区峰会上的发言)我将阐述我认为的 Azure 的四大支柱,我们围绕这些支柱看到的趋势,我认为它们的发展方向,以及你如何围绕这些领域规划你的云职业生涯。

Azure 的支柱是什么?

在我们走得太远之前,我们必须谈谈房间里的大象:天蓝色的柱子。

我可以想象你现在正在谷歌搜索(或者,当然,也许你正在搜索):“蓝色支柱是什么?”这些不是官方的,也不是基于任何超级机密的微软内部消息,而是我对这个行业的印象和它的发展方向。因此,我做出了任命 Azure 四大支柱的行政决定。

Azure 的支柱(据我所知)是:

  • DevOps
  • 安全性
  • 数据科学
  • 数据工程

对于这四个领域中的每一个领域,我们都将关注每个领域的技术和趋势、市场和就业机会,以及相关的认证。让我们开始吧!


你是想开始你的 Azure 职业生涯还是想让你的技能更上一层楼?我们的 Azure 云架构师学习路径提供定制的路径来超越您的云之旅!


1.DevOps

在所有支柱中,我要说这是微软 Azure 最成熟的支柱。在这个支柱中,我将重点关注混合和多云集成,这两个领域是微软在过去 12-18 个月中非常关注的。

混合技术

云在这里停留。几乎每家公司要么在云上,要么正在向云迁移,要么姗姗来迟并开始规划。

在密林中分叉的两条路中,混合是走得最多的一条。

混合可以提供一种更简单的云采用方式。对于尚未进入云计算的公司来说,混合技术绝对是通往成功的必经之路。

由于 COVID ,云的增长速度甚至更快。(你不会以为我不谈论 COVID 就能熬过这一关吧?)

因为 COVID,似乎每个地方的每个人都在远程工作。尽管政策开始放松,但拥有远程工作人员的压力并没有减轻。对于许多公司来说,合乎逻辑的步骤是从内部到混合,然后混合到云。

微软一直在忙着实施新的混合选项,并讨论如何在混合环境中工作,让公司利用稍微容易的设置时间,降低成本,并让他们开始尝试——朝着未来迈出了良好的一步。

你会看到许多公司完全从内部迁移到混合或多云环境。然后,随着时间的推移,从那里过渡到完全云(一旦他们通过了法规,并有机会进一步探索)。


后 COVID DevOps:加速未来 COVID 如何影响甚至加速了 DevOps 最佳实践?观看 DevOps 领导者的免费点播网络研讨会,我们将探索后 COVID 时代的 DevOps。


多云集成

除了 hybrid,我们还有使用 AWS 和 Azure 或其他技术的多云集成。

许多公司,尤其是较大的公司,都在孤立的环境中运营。这导致各个部门,无论是按产品、地理位置还是按职能,都根据需求或个人偏好采用云计算解决方案。

厂商已经看到了这一点,没有人希望陷入“你只能在我的平台上使用我的软件”的心态。这导致了对基础设施等主题的云不可知的关注。

可以,可以用 Azure 资源管理器。或者可以使用第三方工具,比如 Ansible主厨,或者木偶。这是一个平台无关的解决方案。想在 Linux,Mac OS,Windows 下运行?没问题。用 Python ,Java,PHP,C#,Ruby 写怎么样?当然可以!

随着我们迈向 2025 年及以后,这一趋势将继续下去。如果没有别的,它为那些担心陷入特定云提供商困境的公司提供了安慰。

拥有多云集成也意味着与其他提供商的直接集成,如 AWS甲骨文谷歌云。想在 Azure 中监控一台 AWS 机器?没问题。您可以利用日志分析

熟悉 AWS 但不熟悉 Azure?查看 Azure 的 AWS 用户指南。

Azure DevOps 作业

当我们审视市场时,DevOps 周围的工作机会非常多。

DevOps 工程师和其他相关职位是高薪职位。预计平均工资将超过 10 万美元,并且的市场将在未来几年变得更加火爆。

Azure DevOps 认证

如果你是从 Azure DevOps 开始,看看 AZ-900 Azure 基础认证。然后再通过 AZ-104 Micr osoft Azure 管理员认证。这将帮助你建立一个坚实的基础,从而获得更高的薪水和更好的机会。

AZ-400 不太可能是一份工作所必需的,但它肯定会帮助你从其他候选人中脱颖而出——或者帮助你获得你一直期待的面试机会。

(旁注:Azure 新手?不要被令人困惑的考试和认证名称拒之门外。我们可以帮助你规划一条 Azure DevOps 认证路径从云新手到 Azure 大师。)

2.安全性

我们来看一下 Azure security ,这是对混合云与多云的初步观察。。。嗯,他们仍然是真实的。我们先来看看 Azure Defender 和 Azure Sentinel。

蔚蓝保卫者

Azure Defender 是一个内置工具,为工作负载提供高级威胁保护。

它保护 Azure、内部或其他云中托管的混合数据,并检测访问 Azure 存储的异常尝试。然后,您可以通过引入 Azure Sentinel 来进一步扩充该安全工具集。

当我们谈论将 Azure Sentinel 添加到 Azure Defender 上时,请记住,当我们谈论安全性时,(像千层面)都是关于层的。我们将设置多个安全级别,这样我们就有不同的方法来防范入侵。

你可以在下图中看到。这是微软的 Defender 如何工作的一个例子。

Azure Defender 支持一键启用。(简单是一种趋势,随着我们的发展,我们将会看到更多。)

如果攻击者试图闯入存储,Azure Defender 可以帮助防范。它会给你一个安全警报。从那里你可以创建响应——或者通过 Azure Sentinel 的调查,或者通过自动响应或管理员查看它。这导致了某种威胁补救措施来解决问题。

从本质上讲,这就是 Azure Defender 作为整体 Azure 安全环境的一部分的功能。

蔚蓝哨兵报

Azure Sentinel 是一个 SIEM,即安全信息和事件管理解决方案。

一个好的安全计划包括收集有关环境的信息、检测异常或异常情况、调查这些异常情况(像任何优秀的侦探一样),然后做出适当的响应。哨兵做所有这些事情。

它从 Azure 或其他云提供商(即,多云,对吗?),内部部署,当然还有混合解决方案。

Sentinel 通过将人工智能与传统的收集和分析系统结合起来,帮助评估真正的威胁并消除噪音,从而帮助纠正优先级问题。这使组织能够更轻松地维护和扩展,而不会给超负荷工作的安全运营团队带来额外压力。

【Azure Sentinel 的功能:

  • 收集关于环境的信息
  • 使用机器学习检测异常
  • 调查异常情况
  • 如果出现异常或需要采取行动,我们将引入缓解策略。

现在,正如我上面所讨论的,任何涉及安全性的话题都应该涉及到关于分层保护的讨论。可以想象,随着我们引入分层保护,我们会引入越来越多来自所有这些不同层的数据。

机器学习正在发挥更大的作用来帮助解决这些问题。在安全方面,我看到了更多与机器学习的交互,而且(正如我们之前讨论的那样)几乎任何新的安全服务都可能包括多云和混合。

Azure 安全工作

看看市场,Azure security 和安全工程师的工作机会非常多。安全市场将继续增长,因为从汽车到冰箱的一切都涉及物联网(IoT)。

Azure 安全认证

像 DevOps 这样的安全性看起来在未来几年内会相当稳定。

如果你是新手,你需要 AZ-900。然后跟着那辆 AZ-104 。但是,接下来你会想进入安全领域,看看 AZ-500 。看一下 AZ-104 和 AZ-500很重要:你不仅要了解安全性,还要了解开发操作系统以及不同系统如何协同工作。云专家的 Azure 安全认证途径也是一个很好的起点!


获得痛苦的云词典
说云不一定要努力。我们分析了数以百万计的回复,找出了最容易让人犯错的概念。抓住这个云指南获取一些最痛苦的云术语的简洁定义。


3.数据工程

现在,让我们来看看数据工程。

如果不谈论大数据,任何云评论都不会完整。大数据已经发展了十多年。

在讨论数据工程时,您需要知道的短语是“数据民主化”

什么是数据民主化?

数据民主化只是一种奇特的说法,即应该访问数据的每个人都可以访问数据。

在过去,如果你需要做什么,就必须通过它。唯一有权限和知识使用它的人是在信息技术孤岛中。

微软和其他公司正在努力实现的目标是,例如,允许业务分析师能够访问数据,或者允许主管能够访问报告,或者创建报告,或者对报告进行轻微的修改,而不需要 IT 团队进行几周或几个月的开发。

Azure Synapse Analytics 是微软鼓励数据民主化的方式之一。


定制学习体验规模

您的团队是否需要一份 IT 职业发展计划?谈到云学习,没有放之四海而皆准的解决方案。无论您的需求如何,ACG 定制学习路径总有一条适合您的路径。


什么是 Azure Synapse Analytics?

Azure Synapse Analytics 通过结合接收、探索、存储、编排、准备和培训、建模和服务,帮助简化云中的数据工程。

我们可以用微软的这张图来探究这个问题。

通过将多种服务组合到一个界面中,数据工程变得更容易通过简化的过程来实现。训练更少,设置时间更少。

Azure Synapse Analytics 还帮助客户通过工作负载隔离来支持他们的民主化工作。

看一下上面的图片,你就会明白 Synapse 的真正含义——将多种不同的服务整合到一个平台中。为什么?

Azure Synapse Analytics 的优势:

  • 它简化了事情。
  • 它使访问数据变得更加容易。
  • 它降低了处理数据的复杂性。
  • 所有这一切意味着更多的数据民主化,更多的访问和更低的成本。而这才是重点。

我认为这种趋势还会继续。我认为微软将推动简化服务,并且他们将在我们展望数据工程的未来时寻求继续发展。

数据挖掘:更多的存储空间,更短的处理时间

另一个不太确定的趋势是数据存储的持续增长,以及对减少处理时间的需求。

有大量的数据需要通过云架构,特别是当我们引入机器学习等概念以及安全变得更加复杂时。还有更多的数据需要处理,这些都贯穿于数据工程之中。

数据收集正以指数速度增长,而且这种情况还会继续发生。所以它变成了数据挖掘。我们如何将这些数据放入系统,找出哪些是重要的,并从中提取出那些信息?因为这将降低成本,缩短处理时间。

Azure 数据工程工作

你可以想象,面对所有这些挑战,对数据工程师的需求和数据工程的就业市场可能是所有云计算领域中最热门的。(正如我之前说过的,请记住,现在云中的任何东西都是前所未有的商机。)

随着越来越多的公司转向云、物联网、增强的安全性和数据科学,这一趋势将继续增长。

从认证的角度来看,数据工程比安全或 DevOps 要新得多,而且认证中有更多的不确定性。

这方面最近的变化是引入了 DP-900 Azure 数据基础,这是一个介绍数据工程的认证。以及 DP-200 和 201 的组合成一个更大的 DP-203 数据工程师助理认证。这个认证不仅仅是两个考试的结合,它还反映了作为一名数据工程师所需要的不断变化的思维过程。

新的认证需要更多的数据工程和基本编程的基础知识,以及对 Azure 中可用的数据工程工具的理解,以及如何应用它们来解决工程问题。

随着 Azure 中的数据工程不断成熟,我预计这种趋势在未来几年还会继续。好消息是机会很多,值得努力获得数据工程认证。

如果您对数据工程感兴趣,请加入进来,使用 DP-900,使用 DP-203,并开始这一旅程。这两项认证,尤其是 DP-203,对你的成功至关重要。

4.数据科学、人工智能和机器学习

最后,我们以一个简短的,我是说,非常简短地看一下数据科学来结束我们的旅程。这是一个巨大的领域。当我们在这里看的时候,我们看到了未来的一点点顶峰。

不要误解我。数据科学已经出现,但我们仍在探索可能性的早期阶段。至少在未来 5-10 年内,数据科学将继续发展并变得更加主流。

什么是数据科学?

当我们谈论数据科学时,我们在谈论什么?

  • 我们说的是人工智能。这意味着无人驾驶汽车、语音辅助、智能广告、预测分析等等。

  • 机器学习是专注于帮助机器学习解决问题的算法的子集。

  • 数据科学是所有这些结合在一起,再加上一些我们甚至没有时间谈论的东西。

从 Azure 的角度来看,微软正在努力实现我们在之前的支柱中提到的愿景:可访问性、民主化和洞察时间。

可访问性:我如何访问我的数据?

我们如何实现数据的可移植性、多云的集成、混合、第三方平台的可访问性以及您选择的编程语言?

微软有多个平台来访问和处理第三方数据。

当我们谈论机器学习时,Azure 的旗舰将是 Azure 机器学习工作室。你也可以在像 Databricks 这样的工具中处理机器学习。

Machine Learning Studio 和 Databricks 都允许你用多种语言编程。它允许您使用各种计算选项,通过笔记本电脑和容器携带您的数据。同样,它提供了通过复杂管道引入混合能力的途径。

民主化:没有博士我能建立它吗?

我们如何授予访问数据科学的权限?在这个应用程序中,重点是组合多个系统,集成那些图形用户界面,并尽可能消除对编程和高级统计知识的需要。

请不要误会。我并不是说你的数据科学和高级统计理论博士学位没有帮助。不过,我的建议是,微软有一个愿景,允许解决方案架构师或具有最少数据科学知识的业务分析师开始尝试和构建简单的系统来解决业务问题,即数据民主化。

洞察时间:这将花费我多少钱?

可以想象,越来越复杂的系统需要更多的数据。更多的数据意味着更多的处理。这意味着更多的钱和时间。

这种趋势不是机器学习或云,甚至是技术独有的:每个人都希望做任何事情都更快,花更少的钱。

在机器学习中,这转化为更快地处理数据,简化预处理以便处理的数据更相关,以及并行处理。当然,还有更好的工具来访问、搜索和存储所需的数据。

这里的挑战与我们刚刚在数据工程中讨论的没有什么不同。

  • 给我访问数据的权限
  • 让它变得又快又实惠
  • 不要把我锁在一个供应商里
  • 在解决方案中使用机器学习

Azure 数据科学职位

数据科学,很像数据工程,是一个非常热门的领域。数据科学领域有大量的机会。数据科学仍处于起步阶段。它将继续增长并变得越来越大。

因此,在数据科学领域,有很多机会和大量的时间进入并建立自己的事业。随着你的发展,这是一个很可能会有很高利润(和乐趣)的职业。

Azure 数据科学认证

从认证的角度来看,你真正需要关注的是 Azure 数据科学家助理认证的 DP-100。

当然,我们已经讨论了 AZ-900,看一下 DP-900 Azure 数据基础知识也不会伤害到你,也可以在 Azure 和数据工程方面获得某种常设基础。

但是如果你有这些概念,DP-100 就是你的证明。这将有助于建立你作为数据科学家在 Azure 的相关性。

蔚蓝的未来是光明的

这是我希望你从这一切中得到的。

不是数据民主化。

它不是混合或数据效率或处理。

我真正想让你们从这个演讲中得到的,以及蓝色支柱的状态是,未来是光明的。

所有的蓝色支柱都蕴含着丰富的机会。他们都在成长,他们都有新的挑战,新的事情要探索,令人兴奋。未来 5 到 10 年的云计算将会非常棒。

利用这段时间浏览一下你的 Azure 认证路径,弄清楚你想往的方向想做什么,然后开始建立一些目标。

开始着手那些认证。开始制定你将如何成长和改变职业道路的计划,无论是在机器学习或数据工程或 DevOps 或量子计算(无论看起来像什么)。


在云中建立更好的职业生涯。

提升你的职业生涯。向云专家了解更多最受欢迎的技术技能。查看本月的免费课程获得 7 天免费试用

玩 ACG 宾果游戏,有机会赢得多云的奖品!

原文:https://acloudguru.com/blog/news/play-acg-bingo-for-your-chance-to-win-100-in-aws-credits-and-more

Pluralsight 完成对一家云专家的收购,以加速其解决日益扩大的云技能缺口

原文:https://acloudguru.com/blog/news/pluralsight-completes-acquisition-of-a-cloud-guru-to-accelerate-its-push-to-solve-the-growing-cloud-skills-gap

犹他州 Silicon Slopes–2021 年 7 月 8 日— 科技人力开发公司 Pluralsight,Inc .今天宣布,已完成对领先的云技能开发平台 A Cloud Guru (ACG)的收购。在 Vista Equity Partners 最近收购 Pluralsight 之后,Pluralsight 之前在 6 月宣布已经达成收购 ACG 的最终协议。

“对于全球各行各业的企业来说,云转型是他们最重要的技术计划之一,而缩小不断扩大的云技能差距是他们在应对这一挑战时面临的最大挑战。作为全球大型企业技术技能发展的领导者,我们决心成为他们值得信赖的合作伙伴来解决这一问题,”Pluralsight 的联合创始人兼首席执行官 Aaron Skonnard 说道。“随着我们收购了一家云专家公司,我们现在有能力提供最全面的解决方案,通过一个用于云技能培养的一体化解决方案来大规模推动云成熟度。”

世界各地的大型企业继续经历云计算的大规模增长,这增加了对云技能发展的需求。事实上,研究表明,绝大多数 IT 决策者认为云技能的短缺是他们的头号挑战。通过将云专家的领先认证课程、实践实验室、云沙盒服务、考试和测验与现有的 Pluralsight 技能云课程库和实践学习经验相结合,联合组织现在将能够更好地满足云技能发展的市场需求。

“单靠技术无法改变企业,新技能、创造力和创新的持续流动才能改变企业。自成立以来,云专家通过整合人才、技术和愿景,帮助企业释放云的全部潜力。“Pluralsight 和 ACG 将携手在云成熟的每个阶段开辟一条快速成功的道路,同时推动企业采用云技术并进行创新”。

William Blair & Company,LLC 在交易中担任 Pluralsight 和 Vista 的独家财务顾问,Kirkland & Ellis LLP 担任法律顾问。摩根大通证券有限责任公司担任了一位云专家的独家财务顾问,莱瑟姆&沃特金斯 LLP 公司担任了法律顾问。

关于复数视线

Pluralsight 是一家领先的技术劳动力开发公司,通过开发关键技能、改进流程和通过数据获得洞察力以及提供战略技能咨询来帮助公司和团队打造更好的产品。Pluralsight 受到各行业各种规模的前瞻性公司的信任,帮助个人和企业通过技术实现转型。Pluralsight Skills 通过专家撰写的课程帮助企业大规模培养技术技能,这些课程涉及当今最重要的技术,包括云、人工智能和机器学习、数据科学和安全等。技能还包括根据业务目标调整技能发展的工具、虚拟讲师指导培训、动手实验、 IT 技能评估和独一无二的分析。流通过为工程团队提供可操作的数据和工作流模式的可见性来补充技能,从而加速产品和服务的交付。欲了解更多关于 Pluralsight 的信息,请访问 pluralsight.com。

关于一位云大师

一个云专家被一个简单的使命所驱使——教导世界如何使用云。我们相信人们在实践中学习效果最好。这就是为什么我们的内部云专家会不遗余力地设计新颖、有趣、实用的学习工具,帮助个人和组织保持技术领先。作为世界上最全面、最实用、最有效的云学习 SaaS 平台,ACG 已经帮助 250 万学习者和 4500 多家组织实现了更光明的未来。欲了解更多关于 acloudguru.com ACG 的信息,请访问。

Pluralsight 将 IDC MarketScape 命名为 IT 培训领导者

原文:https://acloudguru.com/blog/news/pluralsight-named-an-it-training-leader-in-idc-marketscape

Pluralsight 将收购一位云专家,以加速解决当今 IT 领域的一个最大挑战:不断扩大的云技能缺口

原文:https://acloudguru.com/blog/news/pluralsight-to-acquire-a-cloud-guru

组合提供最深入、最有效的实践学习解决方案,推动云认证和业务云成熟

犹他州 Silicon Slopes–2021 年 6 月 2 日— 技术劳动力发展公司 Pluralsight,Inc .今天宣布,它已达成最终协议,收购领先的云技能发展平台 A Cloud Guru (ACG)。此次收购预计将在今年晚些时候完成,取决于惯例成交条件,并遵循Vista Equity Partners最近对 Pluralsight 的收购。

“技术是所有企业的首要优势,团队的技术技能决定成败。Pluralsight 的联合创始人兼首席执行官 Aaron Skonnard 说:“这一点在云技术上表现得最为明显。“为了满足我们客户的需求并最好地支持他们的云转型,我们决心提供最全面的解决方案来推动大规模云成熟。通过收购一家云专家,我们现在可以提供一体化解决方案来加速大型企业客户和个人学习者的云技能发展之旅。”

世界各地的大型企业继续经历云计算的大规模增长,这增加了对云技能发展的需求。事实上,研究表明,绝大多数 IT 决策者认为云技能的短缺是他们的头号挑战。通过将云专家的领先认证课程、动手实验室和沙盒、考试和测验与现有的 Pluralsight 技能云课程库和动手学习经验相结合,联合组织现在将能够更好地满足云技能发展的市场需求。

“ACG 和 Pluralsight 的成立是为了解决同样的问题——通过普及技术教育来缩小技术技能差距。在我们共同的使命中,我们采取了不同但互补的方法。事实证明,这两种方法都能引起希望获得深度和广度技术教育的客户的强烈共鸣。“我对我们使命的下一阶段感到兴奋,在这一阶段,我们将共同构建下一代平台,在所有技术领域进行实践学习。”

William Blair & Company,LLC 在交易中担任 Pluralsight 和 Vista 的独家财务顾问,Kirkland & Ellis LLP 担任法律顾问。摩根大通证券有限责任公司担任了一位云专家的独家财务顾问,莱瑟姆&沃特金斯 LLP 公司担任了法律顾问。

关于复数视线

Pluralsight 是一家领先的技术劳动力开发公司,通过开发关键技能、改进流程和通过数据获得洞察力以及提供战略技能咨询来帮助公司和团队打造更好的产品。Pluralsight 受到各行业各种规模的前瞻性公司的信任,帮助个人和企业通过技术实现转型。Pluralsight Skills 通过专家撰写的课程帮助企业大规模培养技术技能,这些课程涉及当今最重要的技术,包括云、人工智能和机器学习、数据科学和安全等。技能还包括根据业务目标调整技能发展的工具、虚拟讲师指导培训、动手实验、技能评估和独一无二的分析。流通过为工程团队提供可操作的数据和工作流模式的可见性来补充技能,从而加速产品和服务的交付。欲了解更多关于 Pluralsight 的信息,请访问 Pluralsight。

关于一位云大师

一个云专家被一个简单的使命所驱使——教导世界如何使用云。我们相信人们在实践中学习效果最好。这就是为什么我们的内部云专家会不遗余力地设计新颖、有趣、实用的学习工具,帮助个人和组织保持技术领先。作为世界上最全面、最实用、最有效的云学习 SaaS 平台,ACG 已经帮助 250 万学习者和 4500 多家组织实现了更光明的未来。想了解更多关于 ACG 的信息,请访问 acloudguru.com。

权力转移:云为科技领域的女性创造了平等的竞争环境

原文:https://acloudguru.com/blog/engineering/power-shift-the-cloud-levels-the-playing-field-for-women-in-tech

许多企业已经意识到了云的好处。云带来了快速创新、可扩展性、更低的前期成本、容错能力、强大的计算能力等等。这些优势导致许多企业迁移到云,推动了科技行业对知道如何设计和构建云原生解决方案的人才的需求。


加速您的云计算职业生涯

云专家让你轻松(也很棒)提升你的云事业——即使你对技术完全陌生。查看 ACG 目前的免费课程立即开始免费试用。


虽然云已经改变了企业和小企业的游戏规则,但它也出人意料地为科技领域的女性创造了平等的竞争环境。


“当我决定将追求亚马逊网络服务(AWS)作为一项长期职业选择时,我的职业轨迹(以及科技领域的许多其他女性)直线上升。”


为什么云改变了科技行业女性的游戏规则

当我决定将追求亚马逊网络服务(AWS)作为一项长期职业选择时,我的职业轨迹(以及许多其他科技女性)直线上升。当我分析是什么使这成为可能时,我意识到几个有趣的事实:

1.云还是新的

许多企业尚未意识到云的优势,仍在运行本地工作负载。虽然云越来越受欢迎,但 AWS 只有 16 岁。亚马逊 S3 于 2006 年 3 月推出,几个月后亚马逊 EC2 紧随其后。此外,AWS 每年都会发布新的服务,这意味着我们都在一起学习云计算。

女性可以通过率先学习新的服务和功能来利用这种新的优势,让我们在别人之前积累专业知识。

2.云教育更易获得

可获得的教育为女性提供了公平的竞争环境。不得不飞到城外一周去参加昂贵的技术培训的日子一去不复返了。

当我的孩子还小的时候,一次离开家几天是非常具有挑战性的。

现在,有了可访问的云教育和平台,如 Cloud Guru 和 Pluralsight,任何希望学习云计算的人都可以以可承受的成本学习。AWS 还提供了一些免费的培训资源——你甚至可以在 YouTube 上观看 AWS re:Invent 过去的所有课程!

3。有免费的环境,你可以边做边学

AWS 免费层通过免费探索和试用 AWS 服务,帮助我开始了我的云之旅。性别薪酬差距是真实存在的,所以为他人打开大门的机会是巨大的。

女性可以利用 AWS 免费层进行探索、构建和创新。没有必要签署冗长的合同或使用雇主的 AWS 账户来开始。

4.对云技能的大量需求迫使企业在寻找人才时广撒网

虽然云已经很流行,但疫情加大了企业采用云技术的压力。因此,对云专业人员的需求激增,不断增长的赤字引起了人才大战。

公司急需人才,在填补空缺职位时,被迫撒下更大的网。由于非传统的技术背景、性别或种族而通常被忽视的人现在和其他人一样有了同样的机会。


“通常会因为非传统的技术背景、性别或种族而被忽视的人,现在和其他人一样有了同样的机会。”


如何开始使用云和 AWS

如果没有技术背景,可以通过追求入门级的 AWS 认证云从业者认证来入门云。我在云专家上的课程教你通过考试和在云中脱颖而出所需的基础知识。

如果你已经知道基本原理或者有技术背景,有几个选择:


从这些 10 个有趣的动手项目开始构建你的云计算技能,学习 AWS


如何在云中取得成功

开始使用云很容易,但是如何成功呢?

在我的科技之旅的早期,我知道我需要不断走出自己的舒适区,转变为持续学习的心态才能成功。我记得当我冒险尝试一种叫做 Java 的新编程语言时,我把微软的活动服务器页面(ASP)留在了身后。我记得我追求机器学习,因为我认为它将以不可想象的方式改变世界;我记得当我周围的人都不愿意改变的时候,我学习了 AWS。

我的成长心态鼓励我接受新的挑战,并快速适应变化和干扰。要在云计算中取得成功,您需要有类似的态度。此外,如果你是一名从事科技行业的女性,我建议你给自己一个机会,并始终相信自己。如果你想学习云计算,你有工具、资源、培训和导师来帮助你取得成功。向月球发射;就算失手,也会云里雾里!

关于作者

凯莎·威廉姆斯 是一位屡获殊荣的技术领导者。她还是 AWS 机器学习英雄、HackerRank 全明星和 Alexa 冠军。


加速您的云计算职业生涯

云专家可以让你轻松提升自己的云职业生涯——即使你对技术一无所知。查看 ACG 目前的免费课程立即开始免费试用。

使用微软新的考试沙箱,准备 Azure 认证

原文:https://acloudguru.com/blog/engineering/prep-for-azure-certification-with-microsofts-new-exam-sandbox

这周 Azure 怎么了?多亏了最新发布的微软考试沙盒,你现在可以感受 Azure 考试,而没有实际需要通过的压力;机密计算机现在给你一个更便宜方法来保持你的秘密。。。秘密;现在,您可以使用日志查询在 Azure Monitor 中监控您的监控!

想知道详情?开始了。


加速您的职业发展

云计算专家让你的云计算职业生涯变得简单(也很棒)。查看 ACG 的免费课程现在就开始免费试用。


微软考试沙盒发布

如果你正在准备微软 Azure 认证考试,有点害怕或者至少好奇会是什么样的体验是绝对正常的。为了帮助这一点,微软的新考试沙箱是从头到尾熟悉微软考试的外观和感觉的好方法。

您可以体验不同的问题类型,以及问题审核和反馈功能,完全没有通过或失败的压力。

无论你是微软考试的新手,还是在参加下一次考试前只是在复习,这都是非常方便的东西!

现在,我实际上在沙盒里考试失败了,但是我确信你会比我有更好的运气。试一试,让我们知道它是如何进行的不和谐推特

寻找更多关于 Azure 认证的见解?查看我们在上的帖子,哪个 Azure 认证途径适合你

机密计算的价格降低

如今,您不需要搜索很远就能找到一些数据泄露、漏洞利用或其他安全问题的新闻故事。因此,了解可以用来保护您的解决方案的不同工具变得越来越重要。

嗯,随着微软最近宣布 Azure 的机密计算降价,这可能是你可以添加到你的军火库的另一个安全工具。

您可能听说过保护传输中的数据和静态数据。有了机密计算,我们还可以保护正在使用的数据。保护使用中的数据实际上是指存储在内存中或正在处理的数据。

为了帮助保护这些数据,Microsoft Azure 提供了一些特殊的虚拟机系列,这些虚拟机系列增加了有助于安全隔离您的数据的技术。随着价格的变化,您现在可以以低 33%的价格获得这些虚拟机。

因此,如果你想在云端处理一些秘密信息,你可能想看看这个。

接下来,一件不应该保密的事情是 Azure monitoring 中用于监控您的监控的新功能。

Azure Monitor 日志查询现在支持审计

最后,这里有一点 Azure Monitor 从 2021 年末开始的更新,你可能在假期错过了。

多年来,Azure Monitor 的名称发生了很多变化(包括日志分析、OMS、监控解决方案)。随着时间的推移,我们看到了许多改进和功能的增加。今天,Azure Monitor 已经成为一个强大的监控解决方案,并帮助您监控 Azure 内外的应用程序、操作系统和资源。

所以你可以捕捉很多很多的监控数据。但是你如何处理所有这些数据呢?你可以通过一个叫做日志查询的 Azure Monitor 特性来做到这一点。嗯,日志查询使用一种强大的查询语言来帮助你搜索和分析所有的日志数据。但是缺少的一点是跟踪和监控日志查询本身的能力。

因此,正如微软所说,有了这个更新,你现在可以跟踪“查询何时运行、由谁运行、使用了什么工具、查询文本以及描述查询执行的性能统计数据。”这确实可以帮助您提高日志查询的性能、安全性。

跟上所有蓝色的事物

想要跟上所有的事情 Azure 和 cloud?在 YouTube 上订阅一位云专家的每周微软 Azure 新闻(以及其他云提供商的新闻)。你也可以在脸书上喜欢我们,在推特上关注我们,或者在 Discord 上加入对话。

AZ-400 学习指南:免费 Azure 考试演练

原文:https://acloudguru.com/blog/engineering/prep-for-the-az-400-for-free-join-our-live-azure-exam-walkthrough

在这篇文章中,云专家 Azure 培训架构师马修·乌拉森和马克·米库拉提供了考试技巧,并以 AZ-400 Microsoft DevOps 解决方案考试的形式带您浏览了示例问题和答案

找出哪条 Azure 认证道路适合你?如果你已经通过了 Azure 基础的考试,并且已经获得了 Azure 开发者助理Azure 管理员助理证书,你可能已经准备好参加专家级的微软认证:DevOps 工程师专家认证和 AZ-400:设计和实施微软 DevOps 解决方案


通往更好职业的钥匙

从 ACG 开始通过 AWS、Microsoft Azure、Google Cloud 等领域的课程和实际动手实验室改变你的职业生涯。


如果您正准备参加 AZ-400 设计和实施 Microsoft DevOps 解决方案考试(或者只是好奇考试内容),我们可以随时为您提供帮助!请继续阅读,或在 YouTube 上观看本次会议。

为了让你的学习更加努力,到 11 月底, ACG 新的 AZ-400 课程将免费提供。你所需要的只是一个 ACG 账户——这也是免费的!

还不是 ACG 会员吗?创建一个免费账户(不需要信用卡),准备好赢取 AZ-400——并查看我们其余的免费云课程 —以确保您在云领域的成功。

准备好迎接 AZ-400 了吗?请继续阅读!


目录


AZ-400考哪些技能?

下面是你将在微软的 AZ-400 上测试的内容:

开发仪器策略

| 5–10% | 制定现场可靠性工程或 SRE 战略 |
| 5–10% | 制定安全和合规计划 |
| 10–15% | 发展和促进沟通与协作 |
| 10–15% | 管理源代码管理 |
| 10–15% | 定义和实现持续集成 |
| 20-25% | 定义和实施持续交付和发布管理策略 |
| 10–15% | 准备 AZ-400 需要多长时间? |

如果你以前有与 Azure 合作的经验,与 Azure DevOps 组织合作的经验,与 Azure Pipelines 合作的经验,你可以在 4-6 周内为 AZ-400 做好准备。但一般来说,这取决于你以前使用 Azure、DevOps 流程的经验水平,你使用 Git 或 GitHub 的熟练程度,或者只是 Git 工作流,使用 CI/CD 流程,等等。即使你有使用 DevOps 的经验,但不是专门使用 Azure devo PS——特别是 Azure Pipelines 和 YAML 格式,也可能有一点点学习曲线。

如果你没有使用 Azure 的经验,你可能应该先从 AZ-104 考试或 AZ-204 考试开始。

如果你有使用 Azure 的经验,但没有使用 DevOps 组织的经验,或者你没有真正使用 GitHub 工作流那么多,至少再增加半个月的准备时间——可能总共大约 2-3 个月。但这些都是非常粗略的估计,你的里程可能会有所不同!

AZ-400 有多硬?

使用 DevOps,无论您是在与微软、谷歌、内部还是其他公司合作,都有一个假定的开发人员和运营人员的知识水平,其中也包括安全性。很少有人——除了极少数独角兽之外——实际上同时拥有这两方面的深厚知识。

DevOps 对大多数人来说很难,因为这个等式中至少有一半对你来说是完全陌生的。这是一个很难涉及的话题。你不会一夜之间成为这方面的专家。所以,如果你在纠结这些问题,不要难过。继续努力吧。AZ-400 是一项具有挑战性的考试,但只要付出时间和努力,你就能做到!

AZ-400 上有多少问题?

您将有 150 分钟的时间来完成这项考试。问题总数在 40-60 之间,这取决于微软给你什么。

这意味着每个问题大约有 2-3 分钟的时间。(出于这个原因,我建议你跳过难题,稍后再来。请注意,可能有几个问题无法重新讨论,但这将在这些问题中指出。)

如何通过 AZ-400?

微软提供了一些很棒的资源,包括实验室和一些非常酷的课程。还有在 ACG 的 AZ-400 课程,它按领域贯穿所有主题。它旨在为您提供所需的一站式资源。

最重要的是,你会想亲身体验与这次考试相关的所有技术,比如 Azure Pipelines

得到蔚蓝云痛苦辞典
说云不一定要辛苦。我们分析了数以百万计的回复,找出了最容易让人犯错的概念。抓住这个云指南获取 Azure 中一些最痛苦术语的简洁定义。


Complete guide to the Cloud and Dictionary

我应该先吃 AZ-104 还是 AZ-204,还是两者都吃,再吃 AZ-400?


在一个拥有无限时间和资源的完美世界里,这两者都可以让你完美地适应 AZ-400。但是在现实世界中,你只需要一个就够了。对于考试,选择你最擅长的一面,然后加倍努力学习你较弱的一面。

如果我没有开发者背景,先去找 AZ-500 再找 AZ-400 好吗?

这不是必需的。AZ-104 的安全概念对于 AZ-400 来说已经足够了。显然, AZ-500(微软 Azure 安全技术)也将涵盖这一点。但是对于 AZ-400 呢?可能有点矫枉过正。

AZ-400 之后该怎么办?

安全是一件大事。不管你的背景如何,这都是一个有用的特质,因此 AZ-500 在某种程度上是添加到你简历中的一个很好的东西。

我如何提高自己的开发技能,为 AZ-400 及更高版本做准备?

如果你像我们中的许多人一样来自管理员或运营背景,那么几乎任何与云工程或云相关的工作都会有某种开发人员方面的内容。特别是在未来的 5 到 10 年里,这种开发人员技能组合很可能会真正区分出谁真正能够在他们的云职业生涯中向上爬。那些愿意并且能够弥补自己在运营和开发方面的知识差距的人——反之亦然——进入 DevOps 在某种意义上是一种将自己踢出巢穴的好方法,并迫使你开始学习这两方面。

AZ-400 样题试题

下面的考试问题样本是你将在考试中看到的问题类型的合理示例,包括一些你在 AZ-400 中可能会遇到的冗长和情景驱动的问题。这些问题来自我们的 AZ-400 练习 exa m(本月免费提供以及我们的 AZ-400 课程)。

样题#1

看问题的时候,先考虑你需要重点关注的重点。就这个问题而言:

源控制

  • 集中式
  • 本地虚拟机
  • 所以,有了这三条信息,我们可以先排除 GitHub 团队。GitHub Teams 是 GitHub 内置的一个团队管理功能,但是 GitHub Teams 本身不是一个源代码控制配置,所以我们可以找到答案。

接下来,我们需要一个集中的源代码控制方法。相比之下,Git(或者确切地说是 Azure Repos Git)本质上是一种去中心化的源代码控制方法,所以 Git 不是集中式的,所以我们可以直接扔掉它,然后剩下 subversion 或 Azure Repos 使用 TFVC,这是 team foundation 版本控制的缩写。现在,这两种都是集中式源代码控制方法。然而,使用 TFVC 的 Azure Repos 不能在本地机器上运行——相反,它只能在 Azure DevOps 组织内部的 Azure Repos 中托管或运行,而不是在本地。因此,Subversion,这种不太常用但仍然存在的集中式源代码控制方法,可以在本地虚拟机上运行,也可以在其他任何地方运行。基于这些信息,这是我们唯一正确的答案。

考试小贴士#1: 小心干扰物!微软喜欢给你一堵文字墙,可能会把你引向错误的方向。看看这些关键特征,确保你走在正确的方向上。


样题#2


这个问题信息量很大。这里的关键信息是作为信号的“删除资源组”和“状态为成功”因此,我们需要知道我们是否能够成功删除资源组。其他信息很好了解,但最终与问题无关。

记住这一点,正确答案是成功尝试删除任何资源组,或 c。

考试提示 2 : 理解服务如何工作并影响其他服务。 对于监控和现场可靠性工程,有许多不同的部分,你需要了解所有的部分是如何协同工作的


样题 3


让我们从需要关注的关键点开始:

连接

  • Azure 容器注册中心
  • 认证资源
  • 基于以上,让我们继续,把我们不正确的答案扔出去。我们的第一个错误答案是 A,服务帐户。Microsoft 不建议使用服务帐户来创建访问权限。

组成员角色更侧重于对资源的权限,但它本身不是身份验证资源。

微软表示,应用程序注册不会授予 AKS 对 Azure 容器注册服务的访问权限。

考虑到这一点,服务主体是我们的认证方法,它将允许您将一个 Azure 服务安全地认证到另一个服务。所以基于此,答案 C,服务原则,是我们的正确答案。

这又回到了上面同样的考试技巧:你需要理解其他服务如何与其他服务交互。在这种情况下,Azure Kubernetes 服务于 Azure 容器注册中心,服务主体肯定是一个托管身份。肯定不想要服务帐户,因为那些有密码,服务主体是受管理的身份,密码由 Azure Active Directory 管理。

样题第 4 题

下一个是一个冗长的问题。在 AZ-400 认证考试中看到这样的问题,不要感到惊讶。

尽管这是一个非常罗嗦的问题,有一大堆罗嗦的答案,但这里真的有一种更简单的解释。

我们需要关注的部分是安全团队已经表达了对管理配置漂移的兴趣。正因为如此,他们还希望得到关于机器管理的持续报告。

现在从技术上来说,答案中的每一个方法实际上都可以用于构建服务器的初始期望状态配置。然而,报告服务器和关于机器管理和配置漂移的报告是它的一个关键方面。

另一个关键方面是,他们也表示有兴趣用自己的机器来管理这种配置偏差。正因为如此,所有其他的管理推送服务器,配置为 DSC 拉取服务器——除了启用 Azure Automation 状态配置之外的一切都不包括任何报告方面以及最终引入其他机器来管理配置漂移。

因此,Azure Automation State Configuration 将能够为安全团队生成这些定期报告,它也将成为管理未来可能发生的大规模配置漂移的最佳解决方案。

基于此,D 是我们的正确答案。

考试小贴士#3 : 将问题分解,利用相关信息进行逻辑求解。


与云大师一起为 AZ-400 做准备


对于 AZ-400 和更高版本,云专家拥有您在云领域取得成功所需的工具。

想要跟上云的所有事物?在 YouTube 上订阅一位云专家的每周微软 Azure 新闻(以及其他云提供商的新闻)。你也可以在脸书上喜欢我们,在推特上关注我们,或者在不和谐上加入对话!

看点:解决“无经验”的云招聘问题
需要经验才能得到工作,但需要工作才能得到经验。这是一个多云的第 22 条军规!观看免费点播的网络研讨会,了解帮助数十人获得第一份云计算工作的 ACG 挑战赛。


WATCH: Solving The “No Experience” Cloud Hiring Problem
Need experience to get a job, but need a job to get experience. It’s a cloudy Catch-22! Watch this free, on-demand webinar with insights from the ACG challenge that helped dozens get their first cloud job.

准备下一代云认证考试

原文:https://acloudguru.com/blog/news/prepare-for-the-next-generation-of-cloud-certification-exams

证书考试在不断发展,ACG 的实践证书准备可以帮助你跟上形势

关于云认证是否能够有效地帮助个人为云角色做好准备的长期争论,随着云认证考试引入实践环节,变得更加有趣。

上个月底,AWS 发布了一个全新的 AWS 认证系统管理员助理(SOA-C02) 考试。该考试首次结合了三种可能的问题形式:多项选择、多项回答和全新的考试实验室

就像 ACG 的挑战模式实验室一样,考试实验室要求考生通过使用 AWS 管理控制台或 AWS 命令行界面(CLI)在真实的云环境中构建解决方案来展示实践技能。

这一发展反映了认证考试的演变,我们预计随着个人和组织寻求验证实用的云技能以帮助职业发展并做出更有效的人员配备和招聘决策,这一演变将继续下去。

在 ACG,我们致力于为我们的学习者提供地球上最新鲜的云内容,定期更新我们的内容库和平台功能,以适应云行业的快速变化。

这就是为什么我们很高兴成为第一个将模拟考试实验室引入我们的模拟考试体验的学习平台,发布了我们新的 AWS 认证系统操作管理员–助理(SOA-C02)–模拟考试

工作原理

完成并提交模拟考试的多项选择部分后,学员将收到登录真实 AWS 环境的凭据,以完成给定场景的一系列实验目标。

Upon submitting their lab, learners will receive an overall exam score, as well as a breakdown of their performance by cloud domain, question, and lab objective. The first Practice Exam Lab is available in our SysOps Admin practice exam today, and additional labs will be incorporated into the exam in the future in order to mimic the new AWS exam experience as closely as possible.

准备参加 AWS 认证系统管理员助理考试

众所周知,AWS 认证系统操作员助理是最难的 AWS 助理级考试之一。完成我们的课程后,包括相关的动手实验和新的实践考试,学员将具备通过考试所需的一切知识。

要了解更多关于新的系统管理员考试体验,请阅读 ACG 讲师 Faye Ellis 今年早些时候测试版的体验。或者,您可以从我们的 AWS SysOps Admin 助理课程中的新模拟考试实验室开始学习。(已经是 ACG 会员了?点击开始课程。)

如何使用 AWS Step 函数处理作业

原文:https://acloudguru.com/blog/engineering/processing-an-arbitrary-number-of-jobs-with-aws-step-functions

AWS Step Functions 基于任务和状态机的概念,使用基于 JSON 的 Amazon States 语言来定义工作流。在本文中,我们将探索如何使用 AWS 步骤函数建立工作流,以迭代任意数量的复杂任务。

示例项目使用迭代器模式来处理作业的动态列表。

**更新:亚马逊已经自 推出支持动态并行

在标记为的处,我们使用带有 AWS 步骤函数的迭代器模式来智能处理会议录音。一旦音频文件被处理,参与者就可以访问和搜索对话。

对于每个会议,要处理的文件数量取决于一系列因素—通话人数、导致受影响人员部分录音的连接中断、某人因不同原因不得不离开通话并在稍后返回。无论如何,后处理工作流应该同样好地处理所有场景。

TL;DR 处理一个任务列表,总是在列表中的第一个任务上执行任务,将任务标记为完成,并移动到数组的末尾,重复执行,直到所有任务都完成。GitHub 上的提供了完整的样本项目。

AWS 步骤功能允许您将多个 AWS 服务协调到无服务器工作流中,以便您可以快速构建和更新应用程序。使用步骤函数,您可以设计和运行工作流,将 AWS Lambda 和 Amazon ECS 等服务整合到功能丰富的应用程序中。工作流由一系列步骤组成,一个步骤的输出作为下一个步骤的输入。

迭代次数

AWS 文档中描述的迭代器模式在为每次迭代工作的步骤不执行任何特定的输入和输出处理时工作得非常好。

但是我们如何处理执行处理和就地修改状态机数据的迭代呢?让我们想象一个工作流,它在执行时将一系列作业作为输入。

{
  "jobs": [{
    "name": "First job"
  }, {
    "name": "Second job"
  }]
}

每个作业应该由两个任务处理,将结果添加到状态机数据中,最终产生以下输出:

{
  "jobs": [{
    "name": "First job",
    "firstResult": "success",
    "secondResult": "success"
  }, {
    "name": "Second job",
    "firstResult": "success",
    "secondResult": "success"
  }]
}

关键的一点是,在处理工作流时,为每个单独的作业设置了firstResultsecondResult

注: 亚马逊一般建议尽量保持状态机数据小,在 S3、DynamoDB 或其他地方存储较大的对象,使用工作流内的引用。

亚马逊州语言的限制

由于 Amazon States 语言的限制,不可能使用完整的 JsonPath 语法来选择或查询 jobs 数组。相反,我们可以只在数组的第一项上执行任务,在处理完成后将作业标记为 done,并将其移动到数组的末尾。

为了确定工作流是否已经结束,每个迭代都以另一个步骤结束,该步骤检查队列中的下一个作业(总是数组中的第一个项目)是否已经被标记为完成。这导致了下面完整的工作流定义。

a complete workflow definition

The workflow runs until all jobs are done

{
  "Comment": "Processes an arbitrary list of jobs.",
  "StartAt": "ProcessFirstPass",
  "States": {
    "ProcessFirstPass": {
      "Type": "Pass",
      "Result": "success",
      "ResultPath": "$.jobs[0].firstResult",
      "Next": "ProcessSecondPass"
    },
    "ProcessSecondPass": {
      "Type": "Pass",
      "Result": "success",
      "ResultPath": "$.jobs[0].secondResult",
      "Next": "MarkAsDone"
    },
    "MarkAsDone": {
      "Type": "Pass",
      "ResultPath": "$.jobs[0].done",
      "Result": true,
      "Next": "MoveToEnd"
    },
    "MoveToEnd": {
      "Type": "Task",
      "Comment": "Moves the currently processed job to the end of the array",
      "InputPath": "$.jobs",
      "ResultPath": "$.jobs",
      "Resource": "${ProcessMoveToEnd.Arn}",
      "Next": "AllDone"
    },
    "AllDone": {
      "Type": "Choice",
      "Choices": [
        {
          "Variable": "$.jobs[0].done",
          "BooleanEquals": true,
          "Next": "Done"
        }
      ],
      "Default": "ProcessFirstPass"
    },
    "Done": {
      "Type": "Pass",
      "End": true
    }
  }
}

步骤ProcessFirstPassProcessSecondPass都可以是 Lambda 函数或活动。在这个例子中,一个Pass状态足以演示这个流程。

将数组中的第一项移动到末尾的函数是作为 Lambda 函数实现的。我选择了 Go——但是如果你更喜欢 Node.js 或 Python,从技术上来说,你可以在你的 CloudFormation 模板中提供源代码甚至作为内联文本。

package main
import (
  "github.com/aws/aws-lambda-go/lambda"
)
func handler(list []interface{}) ([]interface{}, error) {
  if len(list) == 0 {
    return list, nil
  }
  return append(list[1:], list[0]), nil
}
func main() {
  lambda.Start(handler)
}

拼图的最后一块是工作流本身的执行:

aws stepfunctions start-execution \
  --state-machine-arn <STATE_MACHINE_ARN>
  --input "{\"jobs\": [{\"input\": \"First job\"}, {\"input\": \"Second job\"}]}"

但是这会导致运行时错误,因为检查任务完成情况的Choice步骤需要设置done属性。

{
  "error": "States.Runtime",
  "cause": "An error occurred while executing the state 'AllDone' (entered at the event id #13). Invalid path '$.jobs[0].done': The choice state’s condition path references an invalid value."
}

为了正确开始执行,为所有作业提供默认值false

aws stepfunctions start-execution \
  --state-machine-arn <STATE_MACHINE_ARN>
  --input "{\"jobs\": [{\"input\": \"First job\", \"done\": false}, {\"input\": \"Second job\", \"done\": false}]}"

Visual workflow with step functions

🎉🎉🎉

{
  "startDate": 1534268042.564, 
  "executionArn": "arn:[...]:83a1d843–0a60–45b7–8e6b-3be8077cfd09"
}

循序渐进的方法

这个例子展示了如何使用 AWS 步骤函数处理作业的动态列表。值得指出的是,本文概述的方法没有利用并行性,而是顺序处理所有作业。要获得完整的工作版本,请参见 GitHub 上的示例项目。查看这篇关于动态并行特性的文章,该特性被添加到阶跃函数中。

我希望听到您对这种方法的反馈,或者您自己对 AWS Step 函数的体验。请在下面留下您的评论或在 Twitter**@**christianklotz上与我联系。


获得更好职业所需的技能。

掌握现代技术技能,获得认证,提升您的职业生涯。无论您是新手还是经验丰富的专业人士,您都可以通过实践来学习,并在 ACG 的帮助下推进您的云计算职业生涯。


保护自己免受凭据填充

原文:https://acloudguru.com/blog/engineering/protecting-yourself-against-credential-stuffing

在本帖中,我们将讨论如何通过使用密码管理器和 MFA 来保护自己免受凭据填充。此外,OWASP、他们的十大列表和 web 应用程序安全性。


加速您的职业发展

从 ACG 开始通过 AWS、Microsoft Azure、Google Cloud 等领域的课程和实际动手实验室改变你的职业生涯。


我们都看到了。感觉每周都有关于凭据或个人身份信息被泄露的新闻报道。

为了应对这些攻击,组织实施了各种安全措施,包括阻止攻击的 Web 应用程序防火墙(WAF)和监控攻击的大型安全运营团队。尽管这些措施对于 web 应用程序攻击来说是很好的防御措施,但是许多最终用户的凭据仍然受到威胁,并且未经授权的用户帐户访问仍然是一个问题。

因此,问题依然存在:即使在凭据被盗后,最终用户如何更好地保护自己?

让我们来看看导致 web 应用程序凭据受损的攻击,以及您(最终用户)可以保护自己免受攻击的方法。

什么是凭据填充?

凭据填充是黑客使用的一种技术,通过使用窃取的凭据来接管合法用户帐户。

这种攻击基本上包括获取窃取的凭据(通常来自犯罪来源或最近的违规行为),并尝试使用窃取的凭据登录一系列网站。这种自动攻击非常成功,因为人们经常对多个网站重复使用相同的凭据。


AWS Cloud Compliance Governance Security

观看:保护您的 AWS 环境这个免费的点播网络研讨会中,云安全专家唐·麦咭详细介绍了如何让复杂的 AWS 环境从零到安全。


密码管理员

显而易见的解决方案是对每个网站使用不同的密码。。。但是记住所有这些密码是一项具有挑战性的任务。然而,有一种叫做“密码管理器”的解决方案,可以把你所有的密码储存在一个加密的保险箱里。

可以访问此保险库以快速简便的方式检索密码,同时防止您重复使用密码。

密码管理器有效地降低了凭据填充的风险,因此一个受损的网站帐户不会导致其他帐户因凭据被盗而受损。

多因素身份认证(MFA)

除了密码管理器,许多网站现在还提供多因素身份验证(MFA)的使用。这意味着用户必须使用两种形式的身份验证来登录他们的用户帐户。

  • 第一种形式的认证是“你知道的东西”,通常是用户名和密码。
  • 第二种形式的认证通常是 SMS 文本消息,它被认为是“您拥有的东西”,因为您必须实际接触移动设备才能接收第二种形式的认证。
  • “你是什么”将是一种生物认证形式,如指纹或面部扫描。

使用 MFA 降低了帐户泄露的可能性,因为远程黑客不太可能访问移动设备或身份验证所需的指纹。

Web 应用程序安全性

借助这些解决方案,用户能够更好地保护他们的在线帐户,并防止对这些帐户的未授权访问。然而,这只是 web 应用安全(或 web app sec)方面的冰山一角。

开放 web 应用安全项目(OWASP) 是一个非营利基金会,致力于研究 Web 应用安全问题并领导解决这些问题的项目。

OWASP 十大项目涵盖了一些与 web 应用程序相关的最重要的安全风险,并对跨站点脚本和注入等攻击进行了深入分析。黑客利用这些攻击来危害 web 应用程序数据库,并为我们讨论的凭证填充攻击获取用户凭证。

了解有关 web 应用程序安全性的更多信息

想要更好地了解 web 应用程序安全性吗?无论您有兴趣了解黑客是如何进行这些攻击的,还是想了解更多关于防御这些攻击的信息,我们的 OWASP 十大安全风险介绍课程将从这两个方面进行介绍。还有一个动手实验室来练习 web 应用程序黑客技术,让您的技能更上一层楼。

锁定最受欢迎的技能

加入云专家并访问我们所有的课程、实验室、测验和学习途径,在您所选择的云领域逐步将您从新手变成专家。开始免费试用或查看本月免费云培训

你还可以在 YouTube 上订阅一位云专家的每周云新闻,就像我们在脸书上一样,在推特上关注我们,并在 Discord 上加入对话。

公共云 vs 私有云:有什么区别?

原文:https://acloudguru.com/blog/business/public-cloud-vs-private-cloud-whats-the-difference

初看起来,云计算的世界充满了令人生畏的术语和缩略语。如果您想知道公共云和私有云之间的区别,您并不孤单。你来对地方了!

在本帖中,我们将以一种任何人都能理解的方式来分解公共云和私有云的一些基础知识。我们将介绍什么是公共云,什么是私有云,以及围绕这两者您需要了解的云体系结构基础知识。

公共云和私有云

首先,让我们快速定义一下公共云和私有云—一点点 TL;灾难恢复公共云与私有云的区别。

  • 公共云是一个术语,指通过公共互联网免费或按使用付费向多个组织提供的云计算服务。

  • 私有云是专用于单个组织的云计算服务术语。

准备好深入了解公共云和私有云了吗?请继续阅读,我们将带你从基础到…嗯,还是基础。(这毕竟只是一篇博文。)如果你想超越基础知识,浏览我们的实践学习图书馆。从经理到工程师以及中间的所有角色,我们都有学习途径和 IT 技能评估,可以帮助您和您的团队获得成功所需的云知识。


查看 ACG 免费的云基础课程

宁愿看神奇的移动图像,而不是阅读文字?要获得关于云计算基础知识的可靠(且完全免费)入门,请查看 ACG 的云计算基础课程。这是本月在 ACG 免费的众多课程之一。


目录


ELI5:什么是云?

完全不知道这个“云”字总是被抛来抛去?让我们从一本关于什么是云的 ELI5(“像我五岁一样解释它”)入门书开始。

把云计算想象成一种工具

你可以把云想象成电。想象你和你的邻居需要电力。(希望不要太难想象,因为你是在用电运行的东西上阅读这篇文章的。)

你可以自己发电。

但你可能会发现,将能源生产的设置和运营外包给专门从事电力生产的第三方会更容易。这样,你和你的邻居只需轻轻一按开关,就能轻松、快速地获得电力。

通过这种设置,您需要为您使用的内容付费。多用?多付钱。反之亦然。

电力公司专注于它做得好的地方——快速有效地为您供电,并尽量减少中断——您可以专注于做自己的事情。

需要解码这个类比吗?

  • 创造自己的电力就像建立内部计算机资源一样(或者,用老办法)。

  • 使用第三方来创造和管理你的电力就像使用云提供商。(您可能会猜到,我们的名字中有“云”,我们认为这是一种非常聪明的做事方式。)

  • 为您使用的电力付费,而不是投资基础设施来自己发电,就像资本支出(CapEx)与运营支出(OpEx)的讨论。

    什么是资本支出和运营支出?一言难尽。但 CliffsNotes 的版本是,从资本支出转移到运营支出意味着从投资您保留多年的东西转移到持续的业务支出。(打个比方,这就像付费建立一个 MP3 库,而不是每月订阅 Spotify。)从资本支出转移到运营支出是许多组织迁移到云的原因之一。


将您的团队提升到云知识的共同水平!借助我们的加速云支持计划,更快地扩展您的数字化转型学习。


什么是公共云?

当您听到人们谈论云和云迁移时,他们通常会谈论公共云。公共云部署是最常见的——考虑到公共云的诸多优势,这并不奇怪。

公共云是通过公共互联网向任何想要租用服务的人提供服务的地方。

在公共云部署中,服务和资源(如服务器或存储)由第三方供应商通过公共互联网拥有和运行。这些服务有些是免费的,有些是按使用付费的。

这些服务由云提供商托管,如亚马逊网络服务(AWS)微软 Azure谷歌云平台(GCP) 、阿里云、IBM 云以及甲骨文云

这些被称为“公共”云,因为它们对公众开放。任何有网络连接和信用卡的人都可以使用他们的服务。

一些大型传统 IT 公司,如 IBM、SAP 和 Oracle,已经创建了公共云业务来补充其传统业务。微软 Azure 就是一个很好的例子。

什么是私有云?

私有云是一个企业或组织的用户专门使用计算资源的地方。公司可以在自己的数据中心或托管提供商处建立私有云。

对于私有云,云资源仅由一个组织使用和拥有。这使得寻求最大控制或定制的政府和金融行业经常需要这种方法

私有云提供商包括 Hewlett Packard Enterprise (HPE)、Dell、IBM、Oracle,以及公共云提供商领域的一些熟悉的名字,包括 AWS、Google 和 Microsoft。

私有云部署有时也称为内部部署。通常,私有云部署模式与传统 IT 方法非常相似,但它使用虚拟化和应用程序管理来更好地利用资源。

公有云 vs 私有云有什么区别?

另一个有助于理解这一点的类比是,考虑 Nitya Narasimhan 在她的 Azure 基础知识可视化介绍中是如何表述的。

  • 私有云就像是企业拥有并管理自己的卡车车队。您拥有完全控制权(数据、安全性)并承担所有责任(成本、维护)。

  • 公共云就像你从一家全球公司租赁卡车,其他人也在使用。资源可以共享或重用,SLA(服务级别协议)帮助您建立成本-安全性权衡。

但是倒回去一秒钟。(双关语 100%有意。)到底是什么促使企业采用云技术呢?


获得痛苦的云词典
说云不一定要努力。我们分析了数以百万计的回复,找出了最容易让人犯错的概念。抓住这个云指南获取一些最痛苦的云术语的简洁定义。


为什么公司追求云的采用?

采用云对企业有什么好处?

几十年来,企业一直像往常一样运营。云能做的很多事情都可以在没有云的情况下完成。但是云引入了一些新的业务能力和好处。

以下是导致许多企业投资云转型的一些动机和好处。

  • 容错 —公司最初对云感兴趣的一个常见原因是容错。如果你是一家重视自身存在的公司,你会有某种灾难恢复计划。这些计划通常涉及一些备用位置,您可以在那里存储数据,或者在您的主数据中心出现“哦,不,一切都坏了,这是一场灾难”的问题时,您可以重新创建关键的业务系统。

    传统上,这是通过与提供商签订合同来完成的,以便随时准备好您的硬件的第二个物理副本。听起来不错。。。但问题是,当一切都正常运行时,备份物理硬件只是闲置在那里,积满灰尘,变得过时。你还在为此买单。当然,这是保险单。但是如果有更好的方法呢?

    与其购买所有的备份设备,为什么不在需要的时候租赁呢?云提供商可以在几秒钟内为您提供大量的系统容量。而且你只需要为你使用的东西付费,这几乎总是一笔巨大的成本节约。(稍后会有更多的内容。)

    然后,当危机结束的时候,你就可以直接关掉那些东西,停止支付。这是从资本支出到运营支出的转变。记得从上面看吗?这就像坐优步或出租车和买车是一个概念。现在,你可能会说,“如果我总是需要那辆车,那么随着时间的推移,买那辆车可能是有意义的。”你不会错,但在这种情况下,如果你一直需要你的备份站点,你就有了比解决吃饭的交通问题更大的问题。

  • 可扩展性 —公司采用云的另一个原因是可扩展性。规模是指我们需要多少容量来满足业务需求。显然,目标是使容量尽可能接近需求。但这是一件很难预测的事情。云提供商的现收现付模式提供了灵活性,能够根据我们的需求进行扩展或缩减。

  • 全球化 —全球化是采用云的另一个常见原因。随着一家公司在本土之外成长和扩张,让资源和服务靠近这些新市场是有意义的。这可能是出于法规或性能方面的原因。好消息。云提供商在不同的地理位置拥有数据中心和资源,您只需点击一个按钮就可以使用它们。

  • 敏捷性 —也许采用云的最有价值的商业原因是敏捷性。敏捷性是响应不断变化的需求的能力。

    在许多公司,如果你想进行一项需要 IT 设备的实验,你可能不得不忍受征用和采购过程,并从 IT 团队获得资源来设置和维护它。(这听起来很有趣,没有痛苦。)并且可能需要几周或几个月的时间。在云中,你可以在几分钟内访问设备,尝试你的实验,然后关闭设备。你可以在一天之内得到结果,而不是一个月,这可能只花你几分钱,而且你不必为此而烦恼。

  • 成本 —然后就是成本。成本是一件有趣的事情。(而不是“搞笑哈哈。”)虽然我们愿意认为成本是直截了当的,但现实是大多数公司都不太擅长跟踪真实成本。

    用云提供商,费用很字面。它们出现在账单上。一些公司惊讶地发现,他们的成本可能比他们认为的现场数据中心的成本要高。但是将总拥有成本(或 TCO)汇总在一起是很困难的。您的计算中包括电力、供暖、制冷和灭火吗?安全措施怎么样,比如安全摄像头或者读卡器?有时,您的公司选择如何核算您的 IT 资产会显著改变成本。

    另一方面,如果你滥用你的云资源,云很容易比任何种类的现场数据中心花费更多。这就是为什么培训、重新获得技能和提高员工技能并让有经验的云架构师参与进来如此重要。

    成本节约可以通过云实现,但要小心你设定的期望值——尤其是在初期。

云提供商数据中心是什么样的?

从外面看,云提供商数据中心就像一个大仓库。除非你非常仔细地观察,否则你可能无法区分数据中心和任何其他物流仓库。它们通常受到严密保护,周围有额外的电力和冷却设备。

里面有一排排放置物理计算机的机架。这些计算机中的每一台都托管着几个虚拟系统(在下面我们讨论虚拟化时会详细介绍),这些虚拟系统在客户需要时出租给他们。

这些数据中心通常只有少数人在那里工作。大部分的维护都是自动化的,只有在需要人手的时候才需要人。

此外,数据中心非常非常吵。这是因为许多冷却设备全速运转,试图防止一切过热。


云 ROI:云技能如何产生实际回报 我们分析了近 100 家公司,以确定对云成熟度承诺的影响。在本指南中,看看企业投资云技能和技术能获得多少价值。


需要理解的其他关键云概念

除了公共云和私有云之外,云还有很多东西。虽然这篇文章的重点是公共云与私有云,但我们也应该触及一些其他概念:多云、混合云、虚拟化和容器化。

什么是多云?

多云是在单一环境中使用多个云服务。这可能意味着混合使用公共云和私有云,或者使用多个公共云提供商

许多成熟的公司将使用被称为混合云的多云方法。

什么是混合云?

混合云环境是公共云和私有云的巧克力香草漩涡软服务组合,结合了私有云和公共云的各个方面,并在它们之间共享数据和应用程序。

为什么公司采取混合云或多云化的方法?

许多公司选择混合云方法。一些公司还采用了涉及使用多个公共云的多云方法。但是为什么呢?

对于混合云,公司通常尽可能多地使用自己的计算资源,然后使用公共云资源来处理临时异常。

混合云对于需要部署一些私有云元素(例如,用于敏感数据或传统 IT 基础架构)但仍希望利用公共云优势的组织来说也很有吸引力。缺点是什么?混合云模式可能更加昂贵和复杂,可能需要 IT 技能和本地硬件。

一些公司可能会选择多云策略(如使用 AWS 和 Azure ),以减少对单一提供商的依赖,利用多个提供商的优势,或者满足客户需求。(例如,假设你的业务通常在 AWS 上运行,但你有沃尔玛作为客户,他们并不热衷于将业务交给 AWS,因为,你知道,亚马逊。你可能需要能够在 Azure 或 GCP 上为他们工作。)

其他人则支持多种云,并使用多种公共云来避免供应商锁定。供应商锁定是指当你与一个单一的供应商变得如此根深蒂固,你可能会失去灵活性或谈判地位。

然而,对于当前的公共云提供商,没有太多的供应商锁定问题。有办法降低这种风险。而且,从技能的角度来看,必须不断在多个公共云之间转换往往会带来更多的挑战,而不是真正的帮助。

什么是虚拟化?

围绕云计算,你经常听到的另外两个概念是虚拟化和容器化。

我们之前讨论过云提供商如何在几秒钟内为您提供大量计算能力。嗯,每当你要求一个新系统的时候,他们不会让人跑来跑去插上和拔出电缆。云提供商利用虚拟系统或虚拟化。

虚拟化意味着他们有能力在物理计算机硬件之上创建基于软件的计算机系统。

当您请求一个系统时,它可以在几秒钟内完成设置或“调配”。当您完成后,它就消失了,物理系统资源可以重新分配给其他客户。

什么是集装箱化?

虚拟化的发展是容器化。

为了解释容器化,让我们看看容器试图解决的问题。

假设我们有一个全新的计算机系统。然后,我们开始在上面加载软件。有时一个软件包可能会与另一个软件包产生冲突。这会导致错误。现在,假设我们得到了一个新的计算机系统,我们需要将一些软件从旧系统转移到新系统。我们不小心漏掉了软件的一部分。这也可能导致问题。

当您尝试升级家用电脑、平板电脑或手机时,可能会遇到这些问题。想象一下这个问题跨越成百上千个系统,并想象一下这会导致什么样的头痛。

输入:集装箱。把容器想象成一个小背包,里面装着你旅行可能需要的所有东西,你想去哪里旅行都需要的任何东西。

容器类似于虚拟化系统,但是更加轻量级。你可以把它想象成一个漂亮、整洁的小盒子,用来整理东西。容器依赖于一种叫做容器引擎的东西来管理资源,并允许容器在它们之间共享这些资源。因此,如果一个容器工作不太努力,另一个容器可以利用这一点。

最受欢迎的容器引擎之一叫做 Docker

现在,因为集装箱是分隔开的,它们非常便于携带。由于大多数主要的云提供商也支持容器,我们可以非常无缝地将这些容器移动到云提供商,它将像最初在其他地方一样运行。

此外,我们可以使用任何一个主要的云提供商来托管这些应用程序。如果我们想在混合云模型中将容器移回现场,我们也可以轻松完成。容器的可移植性是公司减轻我们上面提到的供应商锁定顾虑的一种方式。

超越云基础

在公共云和私有云方面,我们实际上只是触及了皮毛。云架构是人们花费数年时间学习的一门学科,因此,如果您或您的组织无法获得云架构专家的帮助,请在设计基于云的架构之前寻求帮助。如果你不小心,你可能会弄得一团糟。

或者,如果你对如何成为云架构师感到好奇,可以看看这篇文章


改变职业,改变企业

学得更快。动作快点。借助 AWS、Microsoft Azure、Google Cloud 等领域的课程和实际动手实验室,以及我们的技术和 IT 发展计划,立即实现转型。

测验-哪一项最能描述 IAM 角色?

原文:https://acloudguru.com/blog/engineering/quiz-what-best-describes-an-iam-role

以下哪一项最恰当地描述了 IAM 角色? A)角色是直接应用于 AWS 资源的策略,例如 EC2 实例。b)在配置多因素身份认证时使用角色。c)角色是另一个实体可以“承担”的东西 d)角色是您管理用户访问 AWS 资源的方式。正确答案是什么?继续阅读,看看你是否答对了!

什么是 IAM 角色?

角色是另一个实体可以承担的 AWS 身份,其中实体是另一个 AWS 资源(如 EC2 实例),甚至是 IAM 用户。AWS 资源不能直接应用权限策略。要获得权限,资源必须“承担”一个角色,然后该角色通过策略赋予它们分配给该角色的权限。这听起来可能与 IAM 用户类似,但还是有一些区别。一个主要的区别是,用户应该与一个独特的人相关联,而角色可以由需要它们的任何人或任何事物承担。另一个主要区别是角色没有与之相关联的凭证(密码或访问密钥)。当假设一个角色时,凭证是自动动态生成的,所以您不必担心。这是非常有益的,尤其是如果您不得不硬编码凭证的话。

用例

所有这些都使得角色非常适合以下用例:

  • 提供从一个 AWS 资源(例如:EC2 实例)到另一个(例如:亚马逊 S3)的访问。
  • 将您的一个帐户中的 AWS IAM 用户的访问权限授予您的另一个帐户,以便他们可以轻松地将角色切换到第二个帐户,而不必通过另一个用户登录。
  • 通过身份联盟向外部认证用户(即通过移动或基于网络的应用程序认证的用户)授予访问权限。
  • 提供对第三方工具的受控访问,用于监控或类似的任何事情。

创建 IAM 角色

要创建角色,可以转到 AWS 控制台中的 IAM >角色。您还可以通过 CLI 或 SDK 生成角色。

1.选择角色类型

这决定了这个角色是否可以被一个服务使用,比如 EC2,或者它是否可以被用来授权跨帐户访问。

2.选择一个策略

这一步取决于您选择的角色类型,但如果您选择了服务角色,则应该选择您希望与该角色关联的权限。例如,如果您希望该角色由 EC2 实例承担,那么您应该选择该角色类型。但是现在,一旦这些 EC2 实例承担了角色,它们应该拥有什么权限呢?您想授予 S3 完全访问权限吗?只读访问?他们应该有权查看您的 RDS 资源吗?策略允许您选择将这些权限中的哪些与角色相关联。*注意,*如果您选择了“服务角色”以外的类型,步骤 2 可以改为“建立信任”例如,如果您想要允许跨帐户访问,您将需要提供其他帐户的 ID 以及您是否想要要求多因素身份验证。再举一个例子,如果您希望向 SAML 提供者授予 Web 单点登录(WebSSO)访问权限,您将需要创建或选择一个 SAML 提供者,并在此步骤中设置条件。

3.设置角色名称和审核

一旦你创建了角色,它就能为你的目的服务。如果您创建了一个 EC2 服务角色,那么现在您可以启动一个实例,并将该角色分配给该实例,以便它能够从新获得的权限中受益!

鼓声…

所有这些都是为了说……答案是 C!


RAID 解释

原文:https://acloudguru.com/blog/engineering/raid-explained

RAID,即独立磁盘冗余阵列,是一种存储解决方案,旨在改善容错、存储管理和性能的某种组合。RAID 是一种存储虚拟化形式,它将多个物理磁盘组合成一个逻辑卷。RAID 的工作原理是以镜像分条的方式保存数据(有时两种方式都有),有或没有奇偶校验。RAID 是如何设置的通过 RAID 级别来记录。

镜像 RAID

镜像 RAID 将保存的数据存储在两个驱动器上,提供了完美的副本。这是一个特别容错的解决方案,但 RAID 的容量减半,因为所有内容都保存两次。这确实允许更快的读取时间,因为两个并发的读取请求可以独立处理。相比之下,写入需要更长时间,因为数据会保存两次。

条带 RAID

条带化 RAID 通过强大的读写吞吐量在多个硬盘上保存数据,适用于需要多任务处理的情况。条带化通常与奇偶校验位一起用于检查错误。

平价

奇偶校验位是添加到数据串末尾的一位,用于错误检查。但是,奇偶校验位只能检查的错误,而不能纠正错误。尽管如此,当与数据分条一起使用时,奇偶校验位可以与其他磁盘上的数据一起重建原始数据。阵列中可以出现故障和重建的磁盘数量取决于 RAID 级别。

RAID 级别

尽管这里列出的不仅仅是 RAID 级别,但 RAID 1-6 和 RAID 10 通常是最常被提及的。

Raid 0

RAID 0

RAID 0 不提供额外的容错或冗余,但旨在提高驱动器的吞吐量。使用条带化将数据保存到磁盘,没有镜像或奇偶校验,将所有数据均匀分布在磁盘上。Raid 1

RAID 1

与 RAID 0 相反,RAID 1 使用镜像,没有分条或奇偶校验。这允许增加冗余,如上所述,具有改进的读取时间和降级的写入时间。

RAID 2

RAID 2

如今很少使用,RAID 2 使用带汉明码奇偶校验的比特级条带化。内部磁盘的所有旋转都是同步的,每个连续的数据位都存储在不同的驱动器上。

RAID 3

RAID 3

RAID 3 也不常见,它使用带奇偶校验的字节级条带化。与 RAID 2 一样,所有磁盘轮换都是同步的,数据也是分条的,因此每个连续的字节都在不同的驱动器上。奇偶校验位保存在专用磁盘上。RAID 4

RAID 4

与前两种 RAID 不同,RAID 4 使用带有专用奇偶校验的块级条带化,将预定大小的数据块保存到每个磁盘;一个磁盘专用于奇偶校验位。RAID 4 还为用户提供了并行性的好处,其中单个读/写操作不需要跨越所有驱动器来读取数据;这允许同时运行更多的操作。

RAID 5

RAID 5

RAID 5 使用数据块级条带化,仅支持分布式奇偶校验,这意味着奇偶校验位分布在所有驱动器上。RAID 5 至少需要三个磁盘,最多一个磁盘出现故障也不会影响数据;但是,如果第二个磁盘出现故障。RAID 6

RAID 6

与 RAID 5 一样,RAID 6 也使用带奇偶校验的块条带化,但使用的是奇偶校验,这意味着为每个数据字符串保存了两个奇偶校验位。这允许额外的容错,以及最多两个故障磁盘。然而,这是以更高的性能需求为代价的。RAID 10

RAID 10

RAID 10 将数据分条与镜像相结合,提供了强大的容错能力。多个驱动器可能会出现故障,只要没有镜像丢失所有驱动器,就可以重建数据。

勒索软件和 AWS: 6 种减小爆炸半径的方法

原文:https://acloudguru.com/blog/engineering/ransomware-and-aws-6-ways-to-reduce-your-blast-radius

在本帖中,我们将讨论勒索软件和 AWS——它是如何工作的,以及如何在云中构建时降低勒索软件的风险。

勒索软件无处不在。除非你过去一年一直生活在岩石下(在过去 16 个月左右的时间里,这可能不是一个可怕的地方),否则你可能已经看到了关于勒索软件的头条新闻。它搅乱了从气体保健肉类的一切。(别碰我们的汉堡,你们这些怪物!)

就在本月早些时候,据报道美国政府现在给予勒索软件攻击与恐怖主义同等的优先权。

政府正在与之斗争。

人们正在写关于它的歌曲。

但是你能做什么呢?

说到勒索软件和 AWS,它是如何工作的?勒索软件常见的攻击媒介有哪些?在 AWS 云中构建时,您如何降低勒索软件的总体风险?

这些问题太多了。幸运的是,Mark Nunnikhoven 有很多答案。

Mark 是一名法医科学家/作家/演说家/教师/教练/建设者,他帮助组织在管理我们数字世界的风险的同时导航其云转型。除了在 ACG 社区 峰会上发表演讲之外,Mark 还与 ACG 就从 re:Invent keynotes云安全AWS market place的 5 件令人惊讶的事情进行了交流。

在 ACG 社区峰会的会议上,Mark 谈到了在涉及勒索软件和 AWS 时,降低攻击半径的重要性。

这篇文章涵盖了 Mark Nunnikhoven 在 ACG 社区峰会上的一些重要观点。这是电影优于小说的一个例子。相信我们——它值一块表。点击查看 Mark 的完整会话

注意:下面的内容包括来自 Mark 的引用和细节,为了清晰、简洁和总体美观,这些内容已经过编辑。任何错误或误解很可能是编辑的错误,而不是马克的错误。

什么是勒索软件?

勒索软件是一种恶意软件,它对数据进行加密并持有数据以获取赎金。这是一个问题——一个 420 亿美元的问题。这是 2020 年全球勒索软件攻击的估计美元成本。到 2021 年,这个数字没有下降的迹象。

它是如何工作的?

有一天,你正在忙你的事情(也许你正在 ACG 社区峰会上做一个关于勒索软件的演讲),你匆忙点击了一个弹出的通知。

类似这样的。

似乎没什么坏处。直到你看到这样的屏幕。

呀。红屏很少是一件好事。(注意:图片中的钱包无效。请不要往那里寄钱。)

现在你被一个罪犯锁在了我们的数据之外,他拿着数据来勒索赎金。

这在数字上相当于闯入卢浮宫去偷蒙娜丽莎。当然,在一个假设的艺术品盗窃案中,盗窃/赎金是可行的,因为蒙娜丽莎只有一份拷贝。但是在数字世界里,你应该有你数据的多份拷贝。(您确实有多份数据副本,对吗?)所以。。。问题解决了?

没有。今天,勒索软件已经发展到可以嗅出、锁定并销毁你的副本,确保你就像没有蒙娜丽莎的卢浮宫。(我不知道用法语怎么说,但用互联网上首字母缩略词来说:“你解决了。”)

看点:领导需要了解哪些关于云安全的知识
你的业务在云端安全吗?答案很大程度上取决于你。观看 Mark Nunnikhoven 的免费点播网络研讨会,他将解决云安全的关键问题。

勒索软件谁负责?


勒索软件背后的这些罪犯是谁?忘记你在电视上看到的。这不是民族国家。这是有组织的犯罪——为牟利而犯下的罪行。罪犯们试图尽可能多的赚钱,他们非常擅长这个。


如果我付了赎金,我能拿回我的数据吗?

也许吧!但这很复杂。

幸好(?),因为这是有组织的犯罪,而且涉及到利益,所以这个游戏有一些规则。

2020 年支付的平均赎金为 312,493 美元。

记录在案的最大一笔赎金是 450 万美元。

从勒索病毒中恢复需要多少时间和金钱?

  • 从勒索软件攻击中恢复的平均成本为 120 万美元。(这是直接成本,而不是间接成本,如业务下滑造成的收入损失。)

你不仅要向罪犯支付 312,000 美元,还要支付加班费、新系统费、顾问费——所有这些额外的费用。

  • 从勒索病毒中恢复平均需要 16.1 天

  • “作为一名前事故响应者,让我告诉你,那 16 天糟透了,”努恩尼克霍文说。“你在夜以继日地工作。你压力很大。你要努力确保将所有攻击从你的网络中清除,因为如果你不这样做,它还会回来。”

  • 该不该支付勒索软件?

从社区的角度来看,你不应该付钱。因为罪犯得到的报酬越多,他们就越会攻击。

但是从商业角度来看,你很可能最终会付钱。因为如果选择是你不能从你自己的备份中恢复,这将花费你几个月的时间来恢复在线,或者你可以支付赎金可能现在恢复在线,这是一个非常简单的商业决策。

最终的答案可能是:“呃,我不知道!”但不要只是从我们这里拿走。美国政府对此持什么立场?网络和新兴技术副国家安全顾问安妮·纽伯格(Anne Neuberger)提供了一个非常政治正确的版本“嗯,我不知道”——:“我们认识到网络攻击的受害者经常面临非常困难的情况。当他们在支付赎金方面别无选择时,他们不得不经常权衡成本效益。”

“他们在网络钓鱼邮件中所做的大量研究和 A/B 测试——如果不是如此邪恶,这将是一件美妙的事情。”

勒索软件实际上是如何运作的?


当勒索软件的赎金在 300 到 500 美元左右时,事情非常简单。勒索软件会登陆你的系统并把你锁在外面。这种方法是高度自动化的,旨在击中尽可能多的人。

– Mark Nunnikhoven


幸运的是,我们再也看不到这种情况了。

幸运的是,攻击者现在已经扩大了他们的活动范围。

攻击者现在转向多阶段攻击。他们正在研究你,找出你的弱点,了解你的一切,然后他们登陆其他恶意软件,以找出最佳攻击方式。然后,他们会探索您的网络,寻找备份、弱点和高价值数据。然后,他们罢工。

勒索软件攻击的典型工作流程

研究

犯罪分子利用社交媒体和公司网站列出高管名单。这就为攻击者提供了一个简单的途径,让他们可以通过公布姓名的方式进入公司。

然后,他们研究移动应用程序、网站和 GitHub 来寻找密钥。我们当中有多少人开发过内置 AWS 密钥的 Android 或 iOS 应用程序?如果它被公布,攻击者可以得到这些。这是人们进入您的帐户的主要攻击媒介。

  • 着陆

  • 当他们登陆时,几乎都是网络钓鱼。不间断的网络钓鱼。94%的恶意软件是通过网络钓鱼电子邮件传播的。因为很简单。作为一名罪犯,我可以做足够的研究来了解你的公司,使我的电子邮件可信。“他们在网络钓鱼邮件中进行的大量研究和 A/B 测试——如果它不是如此邪恶,那将是一件美好的事情,”Nunnikhoven 说。

你所学的关于网络钓鱼的一切都是错的。他们告诉你的第一件事就是不要点击链接。但是链接是为了点击而建立的。所以不合拍?不会发生的。

  • 这里是避免网络钓鱼的关键。如果你点击了一个链接,并被要求采取行动,如登录谷歌,下载文件,或运行程序,停止。然后质疑链接的出处。因为如果你在过去的五年里看了任何营销链接,你就知道你无法分辨什么是合法的,什么是非法的。

  • 如果他们无法对您进行网络钓鱼,他们会因为薄弱的密码策略而进入。不要怪弱密码,要怪弱密码策略。

  • 你被告知的关于选择强密码的一切都是错误的。选择一个密码短语并使用密码管理器。仅在一年一次或您认为自己受到攻击时更改密码。但是大多数组织还没有采纳这一指导。他们做 90 天的旋转和大写字母,符号——所有这些可笑的事情。没啥效果。数学不成立,这导致更多的安全漏洞。

  • 这不是用户的责任,是安全团队的责任(但他们会责怪你)。所以请记住:强密码是长密码。

  • 探索

  • 探测 API、VPCS 等。—在探索时,犯罪分子会查看 AWS 中的 API,他们会查看 VPC 配置,他们会查看安全组—诸如此类。

检查角色和 IAM 键—他们也在查看他们能看到的角色。钥匙也一样。“这一把钥匙能让我走多远?我从你的手机应用程序里截取了这个。我拿着这把钥匙能去哪里?”

  • 锁定

  • 最后,他们将加密数据并阻止对这些数据的访问。

我们如何防御勒索病毒?

  • 有大量不同的方法来抵御勒索软件,但没有一个是万无一失的。

但是,也有我们可以坚持的原则。总的来说,它们有点像你家前草坪上的安全系统警报标志。你的安全系统可能不会让你的房子成为一个坚不可摧的堡垒,但它可能会把罪犯推向更容易的受害者。

6 种减小爆炸半径的方法

记住这一点,这里有一些原则可以帮助你抵御勒索软件。这六个要点并不是它的结束,但它们是一个很好的概述,可以让你朝着正确的方向思考。

“减小爆炸半径”的想法来自 AWS re:Invent 2020 的 Werner Voggels 博士。这个想法是为了确保如果(或当)事情搞砸了,它不会通过你的系统级联。

不断更新实例和容器图片自动更新对安全有奇效。如果你有问题的话,修补它并修复它。你将面临更少的问题和更容易的问题。

AWS 安全参考架构
AWS 的安全参考架构上周刚刚从 AWS 退出。(更多此处。)这个维护的参考体系结构包括所有与安全相关的 AWS 服务的链接,以及如何充分利用它们。

  1. 使用良好架构框架迭代 我有偏见,因为我在 ACG 教掌握 AWS 良好架构框架课程。但是安全不是孤立的事情。这只是你在构建一个好的解决方案时要做的事情之一。一个架构良好的框架围绕五个支柱构建,安全性是其中之一。这都是关于平衡,建设良好,并减少爆炸半径。

  2. 最低特权原则
    确保用户或角色只能访问他们工作所需的内容。仅此而已。这意味着…

  3. 否*完全访问 IAM 策略 我明白为什么它们会使开发变得更容易,但是它们永远不应该用于生产。如果你正在使用它们,请停止。你怎么停下来?

  4. 持续使用 IAM Access Analyzer这个映射出使用权限方面的内容,并帮助您收紧这些策略。

  5. 如何创建勒索软件灾难恢复和事件响应计划?

  6. 对于您的灾难恢复和事件响应计划,让我们问自己几个问题。

灾难恢复问题

从备份中恢复需要多长时间?(你确定吗?)
你有备份。对吗?(对吧???)如果你还没有备份,确保你有备份,然后测试它们。您需要确保您可以恢复。

**如果你和你的团队没有笔记本电脑,你会怎么做?**还能恢复吗?如果没有笔记本电脑,您还能在 AWS 中运行您的构建吗?这似乎是一个奇怪的问题,但却是一个值得研究的问题。

  • **您是否正在备份到另一个仅附加帐户?**对于备份,您是否备份到一个单独的帐户—一个不同的 AWS 帐户(记住,它们是免费的)—并且该帐户是仅附加的吗?能不能只写不盖不删?那是保护自己的关键一步。因为现在你有了另一个独立的帐户,它总是有你的数据的副本,你可以恢复,而不必支付赎金。

  • 事故响应计划问题

  • 你怎么知道发生了事故?

您最重要的数据在哪里?

不要尴尬。这个问题没人能回答。我和数以千计的组织合作过,几乎没有人能回答这个问题。但是,你今天应该试着弄清楚。

  • 如果没有电子邮件,你会如何联系每个人?
    你有书面名单吗?如果您丢失了所有的 IT 系统,您将如何合作进行恢复?

  • 这是您的事件响应计划的技术起点

  • 我们将使用一个非常简单的模式来通知我们什么时候需要调查。

标记亚马逊云观察事件

将某些事件发送到 AWS Lambda

  1. 然后把它们放进 Slack(或者你选择的工具)
  2. 最后,根据你发给 Slack 的东西采取行动
  3. 你在寻找什么项目?它们堆积如山,但这里有几个可以给你一个概念:
  4. AddUserToGroup

AttachUserPolicy

  • CreateAccessKey
  • CreateLoginProfile
  • DeleteAccessKey
  • DeleteUser
  • 勒索软件和 AWS 常见问题
  • 在我们结束之前,让我们快速回顾一下。

**知道问题。**勒索软件是一种利益驱动型犯罪。

**减小爆炸半径。**确保如果出现故障或我们无法访问,不会影响到其他所有事情。

  • 实践一个 IR 计划。建立并实践一个 IR 计划。你想解决这个问题,这样如果真的发生了什么,你就不会手忙脚乱。

  • 这在现在的勒索软件中很常见。在“探索”阶段,攻击者会标出您备份到的位置。因为他们知道如果你有备份,你就不用付钱了。因此,在使用 AWS 时,一个与你的主账户完全分开的只写账户是关键。再说一遍,账号是免费的。所以你不会多付钱。但是作为一个新帐户,您会得到一个很好的硬边界,您可以锁定所有权限并创建一个角色,该角色只允许创建新备份,而不允许其他任何操作。通过这种方式,您可以将所有东西完全分开。

  • 有时候!这完全取决于你的政策。随着勒索软件的兴起,网络安全保险在过去一年变得突出。此时,你需要一个出色的法律团队来逐行检查,你需要一个真正能干的安全团队来告诉你你当前的状态。但是,如果你遵循合同中的所有要求,很多时候你的网络保险将涵盖潜在赎金的成本——并且它将涵盖大部分恢复成本。

    它不会覆盖任何损失的收入或机会成本。因此,如果你正在寻找 120 万美元的恢复和 30 万美元的赎金,很有可能你的保险会涵盖这一点。但是如果你在这两周内损失了 1000 万美元的销售额,那你就亏了。(当然,在那次袭击之后,你的保险费也在上涨。)

What’s the best way to prevent ransomware from excluding the backup strategy?

我的一个爱好就是看电视电影里是怎么刻画安全感的。从来都不是真的。总是超级无聊。枯燥乏味的工作最终变得令人兴奋。但是当你谈论来自民族国家的勒索软件时,它提高了赌注,使它变得超级令人兴奋,这就是为什么你在电影和媒体中看到它这么多。

我们已经看到了一些国家使用勒索软件的孤立案例,但这更多是为了分散注意力。所以他们进入并获取信息,这才是真正的目标。但他们基本上是让你相信这是勒索软件,所以当他们带着你的数据从后门出去时,你只能用一种方式回应。很少见,但确实有。如果你被勒索软件攻击,很可能有 99.99%的可能性是有组织犯罪试图赚钱。

Does cybersecurity insurance cover the costs of ransomware?

尽管有 AWS 认证安全专业认证——这很值得参加——但我认为,特别是在开始时,如果你学会如何更好地构建,你将成为一名更好的安全人员。

所以看看 DevOps 考试AWS 架构考试会是一个更好的起点。因为你会了解环境。如果你不了解它,你就无法保护它。这就是我们遇到关于云安全的大多数问题的地方:当人们采用旧的方法并试图在云中应用它时。从学习如何更好地构建开始,一旦你确定了这一点,就去参加安全专业化认证。

How many ransomware attacks involve nation states?

你可以在网上找到马克·努尼霍文@马克恩卡https://马克恩.卡

What certifications do you recommend for someone starting in a security operations analyst role?

锁定你的安全技能
想了解更多关于勒索软件和云中安全性的信息吗?查看我们的掌握 AWS 架构良好的框架课程,然后挖掘我们的大规模实践云学习库。


You can find Mark Nunnikhoven online @marknca and https://markn.ca.


Lock down your security skills.
Want to learn more about ransomware and security in the cloud? Check out our Mastering the AWS Well-Architected Framework course, then dig into our massive library of hands-on cloud learning.

重新认证重新发布:AWS 认证机器学习-专业

原文:https://acloudguru.com/blog/engineering/recertification-experience-aws-certified-machine-learning-specialty

我不得不承认…在我最近一次远程监考的灾难性经历之后,我特别紧张。事实上,我根本不应该在这里!我的机器学习之旅可能并不常见,但我发现,它似乎也不是那么独特。

你看,我不是“数学人”。这种对高等数学的困惑和沮丧是我最初进入计算机领域的原因。对我来说,在我的 Radio Shack TRS-80 彩色计算机 II 上快速编写几行基本代码比手动完成数学作业要“高效”得多。

TRS-80 Color Computer II

My homework machine (aka the Radio Shack TRS-80 Color Computer 2, pal version. Author: Bilby | image source)

在大学里,我的情况并没有改善。我两次没有通过微积分考试,这实际上改变了我职业生涯的轨迹。(我也没有通过 FORTRAN ,不过那是以后的事了。)

尽管我在数学上有缺点,但作为一名技术专家,我还是能够相当成功地混日子。我一点也不知道,我的数学怪物会回来缠着我…


准备好开始你的 AWS 机器学习之旅了吗?立即开始 ACG 免费试用,访问课程、测验、动手实验室和模拟考试,为自己的成功做好准备。


目录


我的背景

我掉进了 ML 兔子洞

我认为自己是专业学习者。我很好奇,总是希望挖掘新事物——尤其是那些似乎充满炒作和超出预期的领域。大约五年前,机器学习当然符合这种描述。

我必须知道这个间谍到底有什么能力。更重要的是,我能利用它的力量战胜股票市场吗?

像许多其他想学习新事物的人一样,我求助于我们仁慈的搜索引擎霸主谷歌。几乎立刻,我找到了大量针对机器学习初学者的课程,并选择了一门来试一试。嗯,课程开始十分钟后,老师开始说…是..微积分。我的宿敌!

事实上,我尝试的其他大多数所谓的“初学者”机器学习课程也有类似的主题。教师们认为他们的听众自然会像他们自己一样流畅地思考方程式和希腊符号。

(顺便说一句,在我进入教学和培训行业之前很久,这是我的重要一课。假设你的观众和你一样是一个非常危险的假设。)

这些教师过去和现在都是机器学习领域的佼佼者,拥有无懈可击的资历。但是不管我怎么努力,它对我来说就是没有意义。

加入异端

在我的两门机器学习课程中,在社交平台上,以及在我的演讲中,我直言不讳地表达了我的观点,即你不需要成为数学天才才能理解各种机器学习方法是如何工作的。一些人对这一观点提出了质疑。也许他们认为我是被点击诱饵或试图出售一些快速获得认证的计划。

没有什么比这更偏离事实了。事实上,如果我有很深的数学背景,我的学习曲线会短得多。

相反,我不得不更加努力地工作,深入挖掘隐喻、实际例子和解释,以理解那些数学专家可能轻易认为理所当然的事情。

多年来,我通过一次性教程、自学练习和埋头阅读关于该主题的学术水平论文,积累了足够多的机器学习知识。我当然不是机器学习的‘专家’;雇用我来设计一种新的深度神经网络方法,用于药物实验室试验 后果自负 !然而,我确实对各种机器学习方法和算法的工作原理有足够的了解,最重要的是,我对各种机器学习方法的实际限制有所了解。


cert 考试

我第一次参加测试版的 AWS 认证机器学习考试是在 re:Invent 2018,在它首次发布后不久。在一片忙乱中,我毫无准备地、匆忙地、毫无信心地参加了考试。

当测试结束时,我收到了我的测试结果,并不惊讶我以 704 分(750 分及格)不及格。然而,那次经历让我对考试的内容和详细程度有了更好的理解。在复习了我的一些薄弱环节后,我在 2019 年 4 月再次参加了考试——这一次我感到更加自信和准备充分。

我轻松过关了。

一晃三年过去了,我再次来到这里,准备重新认证。

我的监考经历

出于对流程的熟悉,我选择 PSI 作为我的提供者和远程监督。在我的笔记本电脑由于某种原因未能利用充电线而险些出事之后,这次我不打算冒险了。硬连线 Mac Mini、硬连线键盘、硬连线鼠标和硬连线以太网电缆。一些 VLAN 和 QOS 在家用路由器上施了魔法,以确保充足的带宽。(粉红猪小妹没有得到任何 我的 考试带宽!)

我准备好了。放马过来。

PSI 考试的启动过程与我去年 10 月份的考试重新认证几乎相同。下载考试客户端后,它执行了硬件和互联网连接检查,很快,我就通过聊天受到了监考人的问候。我不得不在我的测试区周围和下面摇动我的网络摄像头,清楚地展示我的胳膊和耳朵,以确保我没有隐藏任何监听设备或小抄。监考老师很满意,然后让我参加考试。当你参加考试的时候,一些匿名的人看着你的想法可能有点令人毛骨悚然,但我很快就忘记了它,只是专注于我的任务。

(第二次)险些发生的灾难

我可以确认确实有人在看这些视频,因为我曾经无意中激怒了监考老师。在电脑屏幕上阅读时,我习惯把下巴放在拳头上(这个姿势会让人想起 90 年代带有红色和蓝色激光背景的年鉴照片)。

Stalkerware

Proctored exams: they really are watching.

显然,在我考试的某一点上,我的指关节稍微遮住了我的嘴…根据远程监考规则,这是不允许的。(也许担心的是,由于我的嘴被遮住了,我可能一直在向一个隐藏的录音设备讲述问题,并泄露机密的问题数据。)

在我改变休息时的思考位置后的几秒钟内,监考人在聊天窗口中出现,提醒我不要模糊我的嘴。当然,我服从了,继续我的考试。

proctored-exam-blog

Am I just thinking or doing something nefarious? You decide.


我的证书考试策略

参加限时考试时,时间管理总是很重要的(明显先生说)。你可以使用不同的技术,但是我的策略对我很有用。我总是计划至少通过三四次考试。让我们来分解一下:

第一遍

对于我的第一遍,我读了所有的问题和答案,然后标记我的最佳猜测。如果我对答案有把握,我会继续前进。如果我有一丁点儿的犹豫,我会把这个问题标记为将来的通行证。我的计划是用大约一半的剩余时间完成所有问题的第一遍。

(热门提示:对于 AWS 考试,我会一直回答问题,即使是猜测,因为不正确的猜测不会受到惩罚。)

第二遍和后续遍

完成第一遍后,我将返回标记的项目,更加仔细地重读问题和答案。

有时候,这种重读足以识别出我在第一轮中没有捕捉到的一些关键信息。而且,就像云散开露出蓝天一样,正确的答案会立刻出现在我的屏幕上。

在其他时候,我可能仍然是一片空白,所以我会把它标记出来,继续前进。随着我一遍又一遍地检查,标记的项目开始减少。使用这种多次通过的方法,我避免陷入早期出现的棘手问题中。

每次我重温一个标记过的问题,我都把它当成全新的来读,并有意把任何先入之见抛在脑后。这有助于我保持开放的心态,注意到我在之前的阅读中可能错过的东西。

我记得有一个问题,这个策略帮助了我。我下意识地在这个场景中插入了一个假设,导致我在两个答案之间犹豫不决。又过了两遍,我才注意到这个问题非常明显地消除了我的假设,这很容易给我留下一个似乎合理的答案。


我的准备

涵盖的一般领域

自从我上次在 2019 年参加考试以来,蓝图没有改变,我知道我会遇到大致相同类型的问题。请注意,考试涵盖的不仅仅是 Sagemaker。当然,SageMaker 的服务家族非常庞大,但是你也应该考虑邻近的服务,比如 AWS Glue、S3、Athena、VPCs 等等。(是的,机器学习考试中的 VPC…您不会被问到关于 VPC 中转网关路由的详细问题,但您可能会被问到如何确保 VPC 中 SageMaker 实例的安全性。同样,你也不会看到红移数据库设计问题,但是你要知道红移 ML 能提供什么功能。)

一般的 AWS 架构知识也会帮到你。如果您在成本和性能权衡方面很好地了解了 Lustre 何时使用 S3,何时使用 EFS,何时使用 FSx,那么您就能很好地回答有关数据存储和处理的问题。从概念上讲,部署 SageMaker 推理端点非常类似于使用普通 EC2 实例进行的负载平衡部署。金丝雀部署或蓝绿色部署与 SageMaker 和 map over 概念非常相关。


DevSecOps

Want to learn how to get started with machine learning for free? Look no further than our article on SageMaker Studio Lab.


使用模拟考试

有了这些更一般的东西,我用 ACG 平台上的模拟考试作为诊断。由于我没有每天和 SageMaker 一起工作,我已经忘记了一些事情,而模拟考试帮助我刷新了记忆。当然,我已经在题库中写了一些问题,所以我可以模糊地回忆起我脑海中的特定技巧或目标,但这仍然是一个很好的练习。

通过我的准备,当我遇到一个我有点模糊的概念或术语时,我会将其添加到一个列表中进行更深入的研究。毫不奇怪,总是给我带来最大麻烦的是统计学概念,如 L1/L2 正则化、softmax 以及归一化与标准化。我确保在那些项目上花费额外的时间。

让事情粘在一起

我不好意思承认这一点,但是混淆矩阵总是让我困惑。当我试图将真阴性、真阳性、假阴性和假阳性应用于一些问题描述时,我会混淆它们。当涉及到召回率、精确度和 F-1 分数的相关指标时,这就开始让我困惑了。

这一次,我决定一劳永逸地解决这个困惑。

我创作了一幅漫画。

只是将这些东西以视觉形式与一个相关的实际故事结合起来,最终帮助我记住了这个故事,这个故事涉及一个维生素分选工厂的机器人。也许有一天我会发行这部漫画作为学习工具…


想了解 AWS 认证的前景吗?查看我们广受欢迎的 AWS 认证指南,了解 AWS 证书的来龙去脉。

我的建议


警惕“从业者的诅咒”

你可能会认为,在数据科学和机器学习领域拥有多年实际经验的人在这次考试中可能比新人更有优势,但在这里要谨慎。真实世界的经历让我们学到了所有你通常在正式培训项目中学不到的东西。作为一名从业者,你可能面临过挑战和问题,这些挑战和问题让你积累了经验和对各种情况的直觉认识。但是这种直觉有时在这样的认证考试中会成为劣势。

我们这些已经存在了一段时间的人会无意识地在基于我们经验的用例中建立某些假设。这些假设会影响我们理解考试问题的方式,并可能导致选择不正确的答案。不管你喜不喜欢,这些考题存在于文档的围墙花园里。你的经验越多,就越难把所有众所周知的“包袱”放在考试中心的门口。

注意 AWS 认为什么是重要的

注意 AWS 认为值得注意的地方。我发现 AWS 文档中突出显示为“注意”的区域是考试问题的沃土。你不需要记住这些东西,但是一定要在浏览文档时通读一遍。

不要担心新东西

aws-documentation

Example of a highlighted Note section in the documentation. These tend to hold important nuggets of information that AWS thinks you should know.

几乎每周都有新的特性出现在 AWS ML 的保护伞下。但是不要为你的考试准备担心太多。根据 AWS,在参加认证考试之前,服务或产品通常必须在至少六个月内可用。如果出现了一些新的东西,这很可能是一个未评分的测试版问题。

弄脏你的手

See! It’s right there in the official FAQs, so no need to stress about last week’s announcements.

至少在目前的 rendition 中,机器学习考试没有任何动手的成分。但是加强你的学习的最好方法之一是实际做一些动手的事情。(我说的不仅仅是按 Shift-Enter 键跳过 Jupyter 笔记本!)

如果你需要一些灵感,可以考虑以下一些想法:

构建一些实际的模型,部署一些推理端点,并在其前面放置一个 API 网关。用 PostMan 打电话给它,看看你是否能让他们适当地回应。

你还可以在 YouTube 上订阅一位云专家的每周云新闻,就像我们在脸书上一样,在推特上关注我们,并在 Discord 上加入对话。


You can also subscribe to A Cloud Guru on YouTube for weekly cloud news, like us on Facebook, follow us on Twitter, and join the conversation on Discord.

红帽考试:几个小技巧

原文:https://acloudguru.com/blog/engineering/red-hat-exams-a-few-tips

Alright, so you’ve dipped your toes in the Red Hat ecosystem and you’ve been studying (at least, I hope you have!) You’ve probably learned a lot of great ways to do things and are possibly gearing up to take the RHCSA. Let’s discuss a few things that may help when the test comes around. Please keep in mind, the NDA for Red Hat exams are no joke, so I will be adhering to that throughout this article.

你将不得不与什么一起工作

在你登录并获准进入测试室后,你会看到一个终端。这不是普通的终端,这个终端集成了摄像头和麦克风,可以记录你的每一个动作和呼吸。当你参加考试时,请记住这一点,尽量不要发表任何与考试有关的 【咸】 评论!该终端将安装 RHEL 7,并安装 GUI。您将获得一个虚拟机进行访问。这个虚拟机是您执行大部分任务的地方,这些任务也显示在终端上。**确保在开始之前阅读所有任务!**这一点非常重要!您遇到的一些任务可能与其他任务相关,如果您按顺序执行它们,可能会发生冲突并导致问题。

好了,现在我们已经讨论了您的环境 (所有 都已由 Red Hat 在各种公开帖子中详述),让我们稍微谈谈目标和一些可能有助于实现目标的提示。

目标

  • 了解并使用必备工具
  • 操作运行系统
  • 配置本地存储
  • 创建和配置文件系统
  • 部署、配置和维护系统
  • 管理用户和群组
  • 管理安全

我将一个接一个地讨论这些问题,并提供一些见解或提示,可能有助于你在考试中可能遇到的排列。

I’m going to go through these one-by-one and just provide a little insight or tips that may help with possible permutations you may encounter on the exam.

了解并使用基本工具

Understand and use essential tools

如上面链接的官方目标页面所示,理解和使用基本工具包括 grep、将输出重定向到文件、压缩这些文件、修改权限等等。到目前为止,这些应该已经是第二天性了,但是请记住,考试是非常无情的。如果你做错了,你的意图不会被考虑。如果您不小心打错了一些东西,比如一个许可,或者 grep 一个额外的字符,您将错过这个目标。 由于任务数量相对较少,错过整个任务会对你的分数非常不利。你也会有很大的压力,因为 RHCSA 不是一个便宜的考试!

As shown on the official objectives page linked above, understanding and using essential tools can include grep, redirecting output to files, compressing these files, modifying permissions, and so on. A lot of these should be second nature by now, but keep in mind that the exam is very unforgiving. If you do something incorrectly, your intention is not taken into consideration. If you accidentally mistype something, such as a permission, or grep an extra character, you will miss that objective. With the relatively small number of tasks, missing an entire task can be very detrimental to your score. You will also be under a lot of pressure as the RHCSA is not a cheap exam!

我建议你在开始考试的时候安装 【服务器 【带 GUI】组套,这样可以更容易的检查错误!这确实需要一段时间,但是如果你在阅读任务的时候首先这么做,你就不会浪费太多时间,而且会让一些任务变得容易很多!尤其是简单的任务!

What I recommend is that you install the ‘Server with GUI’ group install when you start your exam in order to make double checking for mistakes much easier! This does take a while, but if you do it first thing while reading your tasks, you won’t waste much time and it will make some of the tasks a lot easier! Especially the simple tasks!

操作运行系统

Operate running systems

“操作 运行系统”目标是一个包含一些潜在任务的目标,这些任务 决定你的考试成败!如果您的环境无法引导,RHCSA 将自动使您失败。是的,你没看错,如果你的系统不能为考试评分员正确启动,你将得到一个“0/300”的分数。 即使你做对了其他所有的事情,你仍然会得到一个【0】。

The “operate running systems” objective is one that contains some potential tasks that make or break your exam! The RHCSA will fail you automatically if your environment is unable to boot. Yes, you read that right, if your system does not boot correctly for the exam grader, you will receive a score of “0/300”. It doesn’t matter if you did everything else right, you will still receive a “0”.

鉴于这一事实,当您执行任何类型的系统目标操作或其他涉及 grub 的工作时,请确保重新启动系统并进行测试! 如果您的系统无法正常重启,您可以要求监考人员将您的虚拟机重置为初始状态。请注意,这将覆盖您已经完成的所有工作,因此我建议您首先执行重新启动后可能会失败的任何操作。这样,如果出现问题或输入错误,您不会丢失大量的工作!

Due to this fact, when you are performing any type of system target manipulation or other work that involves grub, ensure you reboot your system and test! If your system does not reboot properly, you can ask the exam proctor to reset your VM to its initial state. Do be aware that this will overwrite any work you have already completed, so I recommend you perform any actions that could potentially fail after reboot first. This way, if something goes wrong or you mistype something, you don’t lose a significant amount of work!

Another point to remember is that Red Hat can throw in some pretty hefty surprises. When you access your VM, there may be issues that have to be resolved before you can even continue into the environment. Keep this in mind and study the objectives very carefully! **The Linux Academy hands-on labs are crucial in preparing you for these potential surprises. **

创建和配置文件系统/配置本地存储

Create and Configure Filesystems/Configure Local Storage

我将这两个目标结合在一起,因为它们非常相似,并且相互依赖。这些任务可能涉及 LVM、交换、fstab、不同的文件系统、调整文件系统的大小以及其他潜在的任务。非常仔细地练习这些!我还建议首先执行这些任务,因为它们会导致系统无法启动。如果您最后执行它们并出现错误,您就有可能丢失在它们之前执行的所有工作!

I have combined these two objectives since they are fairly similar and rely on each other. These tasks can involve LVM, Swap, fstab, different filesystems, resizing filesystems, and other potential tasks. Practice these very carefully! I also recommend doing these tasks first as they can cause your system not to boot. If you perform them last and have an error, you risk losing all of your work performed before them!

在配置本地存储目标中,另一件需要注意的事情是任务的顺序。在 RHCSA 上执行大多数任务有多种方式,如果您以某种方式执行一个本地存储任务,您可能会发现由于空间问题,后面的任务无法执行。在开始执行任务之前,请确保您已经阅读了所有任务。同样,阅读所有任务的最佳时间是安装 GUI 的时候。

Another thing to look out for in the configuring local storage objective is the order of the tasks. There are many ways to perform most tasks on the RHCSA, and if you perform one local storage task a certain way, you might find that a task that comes after it cannot be performed due to space concerns. Ensure you have read all the tasks before you start performing them. Again, a great time to read all tasks is when installing the GUI.

最后,我知道我 之前说过,但我再说一遍:重启!在执行可能损坏文件系统或导致根文件系统无法启动的任务后,请务必重新启动! 这些目标的另一个潜在方面是配置 ACL。这很简单,但是一定要仔细阅读 Linux 学院实验室以确保你非常了解它们。这是安装 GUI 非常有用的另一个例子。

Finally, I know I said it before, but I’ll say it again: REBOOT! Always reboot after performing tasks that could damage the filesystem or cause the root filesystem not to boot!Another aspect of these objectives that could potentially show up is configuring ACLs. This is pretty straightforward, but do go through the Linux Academy labs to ensure you know them very well. This is another instance where having the GUI installed can be very helpful.

部署、配置和维护系统

Deploy Configure and Maintain Systems

This objective has a significant number of potential tasks you may see. One thing that is very critical to focus on is the “Install and update software packages from Red Hat Network, a remote repository, or from the local file system” section. Although tasks can and very well may show up that contain other aspects of this objective, not being able to access a remote repository can lead to a potential instant fail! Multiple tasks could depend on this single tasks, so make sure you are very skilled at accessing remote repositories, adding new repositories to yum, and other tasks that relate to these operations.

同样,在任何涉及 grub、内核修改或文件系统的事情之后,都要重新启动!

And also, once again, reboot after anything that involves grub, kernel modifications, or the filesystem!

管理用户和群组

Manage Users and Groups

我不打算深入探讨这个目标,因为由此产生的任务是不言自明的。确保您非常仔细地阅读,理解 sticky-bits 以及如何设置和读取权限,主组与补充组,并使用 GUI 来检查您的工作!

I’m not going to go too deep into this objective as the tasks that could stem from it are pretty self-explanatory. Ensure you read very carefully, understand sticky-bits and how to set and read permissions, primary groups vs. supplemental groups, and use the GUI to your advantage to check your work!

管理安全

Manage Security

啊,安全,大家最喜欢的话题!首先,是的,你应该知道 SELinux。我确实有一个有趣的小技巧,它让我的事情变得简单多了,也可能对你有所帮助!是-e旗。 "-e" 、 或*"–equal "*、 可以使将上下文镜像到新文件夹变得容易得多。

Ah, security, everyone’s favorite topic! First things first, yes, you should know SELinux. I do have a fun little tip that made things a lot easier for me and it may help you as well! It’s the “-e” flag. The “-e”, or “–equal”, can make mirroring context to a new folder much easier.

假设你想把默认的 Apache 目录移动到*"/var/web "*而不是 "/var/www/html" 。 通常,您需要找到 "/var/www/" 的正确上下文,并将其添加到 "/var/web" 文件夹中。尽管这并不难,但确实需要一些时间。

Let’s say you want to move the default Apache directory to “/var/web” instead of “/var/www/html”. Typically, you would need to find the proper context for “/var/www/” and add it to the “/var/web” folder. Although this isn’t difficult, it does take some time.

有了 "-e" 标志,只需一行就可以将上下文从*"/var/www/html "复制到"/var/web "*! 这不是很棒吗?!

With the “-e” flag, you can simply copy the context from “/var/www/html” to “/var/web” with one line! Isn’t that great?!

要做到这一点,完整的命令是:semanage f context-a-e/var/www//var/web

To do this, the full command is:*semanage fcontext -a -e /var/www/ /var/web *

还有,别忘了执行restorecon**-Rv/var/web使其生效!

Also, don’t forget to performrestorecon -Rv /var/web to make it effective!

在 SELinux 之上,您可能会遇到一些防火墙任务以及 SSH 任务。既然是考试,记住速度很重要。当然,您可以使用日志来诊断防火墙/SELinux 问题,但通常更容易:

禁用 SELinux/防火墙

  1. 检查问题是否解决
  2. 重新启用
  3. 修复
  4. 通过使用这种方法,您可以验证问题并快速修复,而无需翻遍日志。这肯定不是你在生产中会做的事情,但在考试中,如果对你有用,利用更快的工作流程。再次强调,利用 GUI 为您带来优势!GUI 有一些非常简单的防火墙工具,让您的生活更加轻松。

By using this method, you can verify the problem and fix it quickly without rummaging through logs. This is certainly not something you would do in production, but on an exam, take advantage of the faster workflow if it works for you. And, again, use the GUI to your advantage! The GUI has some very simple firewall tools to make your life easier.

结论

Conclusion

RHCSA 考试当然不容易!这是一场令人望而生畏的考试,可以击垮在这个行业呆久了的人的精神。不要因此而气馁!祝你好运!不要忘记在测试结束时重新启动!

The RHCSA exam is certainly not easy! It is a daunting exam that can break the spirits of people who have been in the industry for a long time. Don’t let this discourage you! Good luck! And don’t forget to reboot at the end of your test!

ACG 为你成为红帽认证建筑师(RHCA)的旅程提供了一条学习之路。通过五门实践课程和全面的实践考试,你将完全准备好接受梦寐以求的 RHCA。

ACG offers a learning path for your journey to become a Red Hat Certified Architect (RHCA). Through five hands-on Courses and comprehensive practice exams, you’ll be completely prepared to receive the coveted RHCA.

re:Invent 2018 —机器学习和无服务器改造

原文:https://acloudguru.com/blog/engineering/reinvent-2018-the-machine-learning-and-serverless-reinvent

亚马逊经历了迁移的痛苦。虽然 re:Invent 提供了一个机会,向甲骨文的船头再开一枪(划船参考!),它还表明,即使是亚马逊也需要多年时间来迁移生产工作负载。Werner 的主题演讲是关于大规模数据库设计的大师级演讲,他讨论了发展中的 Amazon.com 早期面临的挑战以及如何克服这些挑战。在主要的 AWS 服务中,还有一个重复出现的主题:持久性和容错性。

Werner 介绍了许多突破性的新产品,包括 Lambda 层、对其他开发工具的扩展支持、Lambda 的自定义运行时和 Ruby 支持、Lambda 的应用程序负载平衡器支持以及 Amazon API Gateway 的 web sockets。AWS 正在大力宣传云原生的现代应用程序设计的未来是无服务器的。你可以在这里看到完整的公告列表

尽管有强大的无服务器信息,但在今年的 re:Invent 上仍然有适合每个人的东西。企业看到了一系列管理、安全和治理工具,以及内部 AWS 硬件和 Amazon FSx 更好的 Windows 文件系统支持。机器学习见证了超过 13 项新服务的发布和更紧密的服务间集成。通常会发布新的 EC2 实例,旨在优化各种用例及利基的工作负载。而区块链爱好者也终于有了自己的第一批 AWS 云服务。

Andy Jassy 强调是指的建设者,而不是 的开发者 ,这表明 AWS 希望对那些不把自己与“开发者”联系在一起的人更加包容。现在,与开发的具体细节无关,更多的是与实现业务成果的服务组合有关。

所以,随着《re:Play》的五彩纸屑终于尘埃落定,是时候回顾一下《云宗师》今年发布会上最受欢迎的公告了。

贝佐斯少校的地面站

AWS 地面站: 我们很高兴看到地面站宣布,不是因为我们有它的使用案例,而是因为它朝着以前只有财富 500 强公司和主权国家才能使用的技术迈出了一步。AWS 在这方面有着良好的记录,你只需要看看机器学习现在有多普遍,就可以看到降低准入门槛会产生什么样的影响。地面站设计用于控制卫星通信以及下载和处理卫星数据。虽然这项服务相当小众,但蓝色起源、SpaceX 和火箭实验室等公司正在降低商业卫星的部署成本。也许有一天,卫星会成为更多公司买得起的基本商品。

判决: 这对于研究行业来说是一大福音,如果你能让你的预算延伸到一两颗微型卫星,你就不再需要建造、配备和管理基于地球的通信设备。杰夫似乎也想出了一个聪明的办法来帮助资助蓝色起源所需的基础设施。

前哨牛排馆

AWS 前哨: 这个内容丰富的公告相当出人意料!从表面上看,在自己的数据中心运行 AWS 硬件违背了云原生应用程序的传统优势。然而,这种迁移方式有一些立竿见影的好处。比如除了电源和联网,设备还是由 AWS 管理。由于通用的 API 和应用程序堆栈,任何构建在该硬件上或迁移到该硬件上的应用程序都应该在云中“正常工作”。AWS 很少在没有直接来自客户的功能请求的情况下构建任何东西,因此您可以放心,有些企业很高兴您现在可以在自己的数据中心运行 AWS 硬件。

结论: 这在很大程度上被视为试图安抚那些拒绝全身心地投入云的大型企业,并作为一种跟上邻居(Azure Stack)的练习,这将对企业迁移的速度产生何种影响(如果有的话)仍有待观察。


通过注册 ACG 原创系列节目《本周 AWS 》,了解 AWS 最新消息。

功能就像洋葱,它们有层次。

**AWS Lambda Layers:**Lambda Layers 是一个在函数之间共享代码和数据的地方,坦率地说–它是一个游戏改变者,解决了许多开发团队现有的头痛问题。不再需要在每个函数中单独包含公共代码!通过这样做,Lambda Layers 帮助开发人员将更多的精力放在定制的业务逻辑上,而不是工作所需的样板文件上。Lambda 层包可以是私有的,也可以是共享的,既可以跨 AWS 帐户,也可以是公开的。许多第三方 AWS 供应商,如 Epsagon、Datadog、桑德拉和无服务器框架,已经在利用该服务来简化向客户交付产品的过程。Lambda 层还将在安全性方面发挥关键作用,它减少了所包含的依赖性并简化了修补过程。

结论: 更少的时间管理和维护依赖,更多的时间交付价值,有什么不喜欢的?

拥有您的运行时,并调用它!

AWS Lambda 运行时 API: 紧随 Lambda Layers 发布会之后,AWS 相当低调地宣布了在 Lambda 中对 Ruby 的原生支持。我们说相当安静,因为这个声明,虽然对 Ruby 爱好者来说是个好消息,却被 Lambda 运行时 API 的声明所掩盖。运行时 API 允许任何编程语言被引导到你的 Lambda 环境中。为了配合这一声明,AWS 发布了 C++和 Rust 的开源运行时,并计划推出 Erlang、Elixir、Cobol 和 PHP。将运行时 API 与 Lambda 层结合起来,对于那些希望跳到无服务器但不习惯所支持的语言的团队来说,是一个致命的组合。我们期待看到社区对其他语言的支持。

结论: 真的没有借口不启动 Lambda 函数,看看这个无服务器的东西是怎么回事…我的意思是 Cobol… Cobol!?我们迫不及待地想看看开发人员用 Cobol 函数构建了什么。

用鞭炮点燃导火索

鞭炮: 其中一个比较“嗷嗷!”今年的重大事件是宣布燃放鞭炮。鞭炮是一个虚拟机管理器,它提供了一个 REST API 来快速启动和管理 AWS 调用的微虚拟机。鞭炮不是一个新的 AWS 服务,但实际上是支撑 AWS Lambda 和 Fargate 服务的技术。将鞭炮作为开源项目发布的额外步骤也是一个不错的尝试。可以在 GitHub 上参与(https://GitHub . com/bracket-micro VM/bracket)。令人难以置信的有趣的是,终于可以看到 AWS 是如何在一个总是多租户的环境中为安全性和速度构建这些技术的。

判决: 如果你是 serverles 的粉丝,这并不直接令人兴奋,因为实施鞭炮意味着承担你以前在 Lambda 等公司逃避的责任。你可以保证 OSS 社区取得的任何进展都将被整合到 AWS 的无服务器产品中,这是一个非常诱人的前景。

他来了,深赛车来了…

**AWS DeepRacer:**乍一看,这是一个有趣的、尽管价格昂贵的、让构建者开始进入机器学习世界的入口。然而,在仔细观察之后,DeepRacer 显示出它是 AWS 包装在一辆有趣的自动驾驶机器人汽车中的一个精明的商业决定。我们已经知道机器学习是未来,但对许多人来说,“何时”和“如何”使用机器学习仍然是一个谜。这种混乱可能是由于对技术不熟悉,因此不知道 ML 能解决什么类型的问题。参加 DeepRacer 和 DeepRacer League,这不仅给建筑商带来了需要解决的挑战,还鼓励他们亲身体验一系列 AWS 物联网和 ML 服务和功能(例如 RoboMaker 和 Sagemaker RL)。

裁决: 预计竞争会很激烈。我们预计围绕 DeepRacer 涌现的社区将会充满热情、热情和乐于助人。DeepRacer 似乎是办公室黑客马拉松和团队建设练习的合理选择。

如何管理你的速尿

**AWS robo maker:**AWS robo maker 是一项不一定要引入新功能的服务,而是大幅降低目前在 AWS 上开发、培训和管理机器人的开销。在其核心部分,RoboMaker 提供了 4 种功能:

  • 机器人操作系统的云扩展–允许机器人更容易地利用云服务,如 Rekognition 或 Polly。

  • 开发环境–基于 Cloud9,它可以让你的操作系统、开发软件和操作系统自动为你下载、编译和配置。

  • 模拟–让您在将机器人应用部署到硬件之前,了解它的行为。

  • 车队管理–在一个地方追踪你的机器人。包括 OTA 更新功能,帮助您更新、修补和维护您的机器人车队。

判决: 通过为机器人提供云服务的访问,看看 RoboMaker 赋予你身边的机器人帮助。DeepRacer 爱好者会注意到,DeepRacer 依靠 RoboMaker 的模拟器进行训练。

回到学校

Sagemaker RL: 如果今年的机器学习公告有一个主题,那就是 AWS 满足了你的强化学习需求。到目前为止,Sagemaker 一直专注于监督和非监督学习模型,这些模型旨在寻找数据中的模式,以便对数据进行分类。强化学习是对行动进行实验,以达到某种结果(而不是学习一个数据集);并且是自动驾驶车辆中通常使用的学习模型。RL 模型通过奖励正确的行为来工作,从而强化期望的行为,例如通过留在赛道上来导航赛道。Sagemaker RL 是对现有 Sagemaker 服务的预打包强化学习工具包的添加,已经得到了 AWS RoboMaker 和 Sumerian 的支持。

结论: 现在为你的机器人探索强化学习模型比以往任何时候都容易。这项服务将是你在 DeepRacer 联赛中成功的关键!

DynamoDB 原子化

**DynamoDB Transactions:**如果你是现代应用程序设计的粉丝,你正在构建能够处理最终一致性和失败的系统。总的来说,偶尔的数据写入失败没什么大不了的,最多给客户带来一点不便。然而,有些情况下,能够可验证地写入数据或立即失败是至关重要的–想想金融交易或订单履行。随着事务的增加,DynamoDB 现在可以处理这些类型的用例。事务为开发人员提供了原子性、一致性、隔离性和持久性(ACID ),可以对单个区域中的一个或多个表进行读写。

**结论:**DynamoDB 作为服务的力量在这里很突出,因为事务现在可以在新的和现有的 dynamo db 表上使用。

亚马逊,现在有了更多的动物园管理员

亚马逊 MSK: 您是否曾有过这样的场景:您希望利用实时数据流来驱动应用程序功能,但当您意识到配置、管理和保护交付此功能所需的基础架构需要付出大量努力时,实施却失败了?随着亚马逊针对 Kafka 的托管流媒体服务的宣布,可能是时候重新考虑这个决定了。MSK 是一个完全托管的 Apache Kafka 集群服务,旨在帮助开发人员利用实时流数据管道,而无需花费大量时间管理此类应用程序附带的复杂基础架构。

判决: 比以往任何时候, 点击流分析,内容响应应用和个性化现在对更多开发者来说触手可及。对于可能已经在使用和维护 Kakfa 集群的大型组织来说,这意味着有更多的时间来创造商业价值,而在无差别的繁重工作上花费更少的时间。

走向全球

**AWS 全球加速器:**AWS 的众多卖点之一就是能够在几分钟内“走向全球”。通常,这是通过利用基础设施作为代码将您的应用程序复制到世界各地的 AWS 区域来实现的。但是如何将用户流量导向你的应用呢?你可以使用 Route53,但是这有它自己的一套限制,流量仍然通过公共互联网。Global Accelerator 提供了一个固定的静态 IP 地址 供您的应用程序使用。定向到此 IP 地址的流量在最近的 POP 处进入 AWS 的网络,并穿过 AWS 的全球回程,而不是公共互联网回程。Global Accelerator 还提供了一系列工具,用于控制流量进入端点后的路由方式。最终结果是一项服务,它可以提高应用程序的响应能力,并简化部署和故障转移流程。

结论: 借助 AWS 全球加速器,让您的应用更贴近您的用户。

在我们要去的地方,我们不需要服务器

总的来说,re:Invent 2018 感觉像是无服务器达到某种主流成熟的一年。现在进入的技术壁垒很少,尤其是在语言支持方面。

AWS 工具包每年都在变得越来越大,越来越令人兴奋,但也越来越复杂。一如既往,ACG 团队将在那里帮助你建设,保持你的技能,鼓励你探索,并获得认证。DeepRacer 赛道上见,继续成为令人敬畏的云大师!

re:Invent 2021: AWS 全力投入机器学习

原文:https://acloudguru.com/blog/engineering/reinvent-2021-aws-goes-all-in-on-machine-learning

你好,云大师们!我是 Scott Pletcher,在 AWS re:Invent 2021 从拉斯韦加斯为您报道,在这里,我与 AWS 高级开发人员倡导者班卓·奥巴约米在一起。在这篇文章中,我们将讨论来自 re:Invent 周三的重大新闻,以及所有机器学习新闻的综述。

请继续阅读所有适合发布的 ML 和数据新闻!


加速您的职业发展

从 ACG 开始通过 AWS、Microsoft Azure、Google Cloud 等领域的课程和实际动手实验室改变你的职业生涯。


为了简洁、清晰和令人惊叹,我们对这段对话进行了编辑。任何错误大概都是(OK。。。肯定地)在编辑的部分上。

DynamoDB 非频繁访问表

Scott : 周三的主题是数据、机器学习和人工智能。

我认为非常有趣的一个公告是 DynamoDB 非频繁访问表。这类似于不经常访问的 S3 或 EFS。你用得越少,你付的钱就越少。他们在主题演讲中举了一个很好的例子,一个社交媒体应用程序如何利用五年前的照片。您不会每天都访问它,但是当您访问它时,您会希望它很快出现。因此,我很高兴看到客户可以利用这一新的数据库层做些什么。

pagemaker 地面真相加

接下来,一个令我好奇的消息是 SageMaker 地面真相加

**班卓琴:**更好!

斯科特:是的,我想是的。是啊,加上一个"加号"就行了。

因此,SageMaker Ground Truth 是一项服务,客户可以使用它来帮助清理和分类数据,然后再将其用于机器学习目的,这非常重要。

“另外”,我想意味着一些,一些数据可能需要特殊技能来量化和分类,这些数据现在将被发送给具有这些特殊技能的人。是这样吗?

是的,你需要像主题专家、中小企业那样,真正深入挖掘这些数据分类问题,这可能是一个正常人无法分类的。因此,让这些专家帮助进行分类是非常好的。

pagemaker 无服务器推理

斯科特:太棒了。另外一件有趣的事情, SageMaker 无服务器推论。现在,通常当您部署推理基础设施时,您必须将其部署在本质上是 EC2 的基础设施上,对吗?这有望让我们不用做任何事情就能部署它。

是的,我喜欢无服务器的东西,因为你不用担心服务器。因此,有兴趣看看我们如何实际使用推理,而不必担心构建 EC2 实例。

斯科特:是的。我的一个问题是,什么是预热时间,嗯,调用这些推论。那会。

班卓琴(Banjo):是的,一旦你接触并弹奏它,那将会很有趣。

亚马逊 Kendra 体验构建器

斯科特:确实。接下来:亚马逊 Kendra 体验构建器。当然,Amazon Kendra 是一个搜索引擎,它被设计用于企业组织来帮助查找文档。

是的,所以有了 Experience Builder,你可以获得端到端的低代码、无代码的工作流,你可以用它来构建你自己的真正的私人搜索、数据库、仪表板,而不必使用定制代码。因此,我们非常期待看到客户将通过这种新体验来构建什么。

亚马逊 Lex 自动聊天机器人设计器

斯科特:这是个大问题。我们能让聊天机器人不那么令人失望吗?这对我来说是个大问题。很明显,亚马逊正在尝试,因为他们已经宣布亚马逊 Lex 聊天机器人设计师。这里的想法是,它有助于建立聊天机器人,并使它们更好。

聊天机器人,通过聊天机器人总是一条艰难的学习曲线。希望通过这种简化的体验,您可以获得一些意图,并了解是什么调用了这些不同的意图,从而使构建聊天机器人体验变得更加容易,而不是必须自己遍历所有代码。

pagemaker 工作室实验室

Banjo: 我对 SageMaker Studio Lab 感到非常兴奋,因为你可以在没有账户的情况下旋转 Jupyter 笔记本——只需要一个电子邮件地址,你就可以准备好部署 SageMaker,你可以到处玩,测试机器学习工作负载。当你准备好了,你可以把它移植到 SageMaker Studio。因此,我真的很兴奋,这将有助于搭载更多的客户,让他们可以体验机器学习和制作很酷的东西。

斯科特:现在机器学习面临的一大挑战或障碍就是技能差距。顺便说一句,我知道一家公司可以帮忙。(咳,咳——今天在注册一个免费 ACG 账户,不需要信用卡,或者在限定时间内获得年度会员 40%的网络周折扣——咳,咳。)

数据驱动的企业

Scott :就在这次拍摄之前,我有机会参加了一个名为ENT20——数据驱动型企业:从愿景到价值的会议。

顺便说一句,这就是我喜欢 re:Invent 的原因。我本打算去参加一次会议,但我迟到了一会儿;它完全被填满了。所以我改变了路线,去了大厅对面的会议,这绝对令人惊讶——特别是如果你在你的组织中处于试图弄清楚“我有数据,但我如何将这些数据转化为价值?我有这个愿景,我如何将它转化为价值?”

我看到那里有摄像机,所以他们正在拍摄,希望它能在网上结束。如果你正处于试图弄清楚“我们如何理解这一切”早期阶段你会从中获益良多。

DeepRacer

斯科特:最后,我想对《极速赛车》的团队喊一声。 DeepRacer 决赛今天举行,2021 年 DeepRacer 冠军队是 JPMC-罗格海德拉巴。

跟上 re:发明 2021

好了,我们要和你说再见了。通过在推特上关注 ACG,关注 T2,关注脸书,关注 T4,在 YouTube 上订阅一位云专家。查看 ACG 和 Pluralsight re:Invent 内容中心了解更多新闻和 AWS 资源。在 ACG 的不和谐社区上和思想不稳定的人聊天。继续牛逼吧,云大师们!

回复:发明 2021: AWS 英雄们押注于我们将会看到什么

原文:https://acloudguru.com/blog/engineering/reinvent-2021-aws-heroes-place-bets-on-what-well-see

一个月球 AWS 区域?53 号公路数据库?在大型演出之前,我们称之为长镜头和确定的事情

AWS re:Invent 2021 快到了。在《re:Invent 2020 完全虚拟化之后,re:Invent 又回到了拉斯维加斯。本着这种拉斯维加斯精神,我们召集了一个 AWS 英雄小组进行圆桌讨论,打赌我们在 re:Invent 2021 上可能会看到什么(以及我们几乎肯定会不会看到什么)。

如果你要亲自或通过虚拟方式参加 re:Invent,请务必阅读我们的re:Invent 2021终极指南。


加速您的职业发展

从 ACG 开始通过 AWS、Microsoft Azure、Google Cloud 等领域的课程和实际动手实验室改变你的职业生涯。


想旁听完整的讨论吗?拉一把椅子,观看免费点播的网络研讨会 re:Invent 2021:大展前要知道的事情

为了简洁、清晰和总体美观,下面的引语已经过编辑。你可以打赌,任何错误都可能是编辑方面的。

计算和容器

云专家和 AWS 社区英雄的创始人 Ryan Kroonenburg 分享了他对 re:Invent 2021 的计算和容器的预期。

稳操胜券:EC2 实例的扩展和对裸机的支持,EKS 无处不在

“本月,AWS 宣布将 G4 升级到 G5。这些基本上是由 Nvidia 传感器核心 GPU 支持的实例,可为图形密集型和机器学习工作负载提供约 3 倍的性能。但我相信我们会看到其他一些升级,”瑞安说。

“另一个确定的赌注是,如果你阅读 EKS Anywhere 的文档,他们说他们将在 2022 年为 EKS Anywhere 提供裸机支持。因此,看到 re:Invent 也宣布了这一点,我不会感到惊讶,”Ryan 说。

随着人们越来越多地迁移到无服务器架构,容器几乎是一种不可避免的罪恶,EKS 和 ECS Anywhere 就是一个很好的例子,让人们在他们所在的地方见面。

我们预计在 re:Invent 2021 上不会出现容器短缺的公告。它们是什么?我们走着瞧。(但手指交叉在地图上,以找出在哪里运行它们。)

扯平:升级 EFS 存储

“在去年的 re:Invent 上,他们升级了 gp3 和 I/o。9 月,AWS 宣布为 EFS 提供智能分层,这与他们为 S3 提供智能分层的方式非常相似,”Ryan 说。"但是他们最近没有为 EFS 做任何性能升级."

Longshot:新的月球自动气象站区域

当然,这不会发生,但它会很酷。如果他们需要任何帮助,Ryan 自愿帮助建立一个月球数据中心。

“我估计到 2030 年月球上会有某种云,”瑞安预测道。

你先在这里听到的。(有人设置了一个提醒,9 年后再来查看这个。)

数据库

DVLA 和 AWS Data Hero 的首席架构师 Matt Lewis 对今年 re:Invent 的数据库新闻下了赌注。

确信无疑:数据库引擎之间更直接的集成

“这是我们在过去几年里看到的事情之一,”马特说。

在过去,有很多地方需要编写自定义 Lambda 函数来充当粘合剂。现在已经有所改善,但还有更多的要做。

Matt 说:“我认为减少一些作为开发者必须做的重复步骤是肯定的赌注之一,我们将开始看到更多的公告。”。

Even money:带数据 API 的无服务器 Aurora v2

没有 RDS 代理的奥罗拉所有的美好!

long shot:53 号公路数据库

“我不知道这是否是开玩笑,但你不断听到更多人谈论 53 号公路是一个潜在的数据库。AWS 的服务承诺是 100%左右,你可以在多个字符串中存储多达 4000 个字符的 TXT 记录,”Matt 说。“所以你知道,也许 AWS 会认识到这一点,你也可以在 AWS 控制台的数据库类别中找到 53 号公路。”

会发生吗?为了创建 53 号公路数据库,可能需要 AWS 月球区域。

机器学习

这些天来,SageMaker 的事情越来越多。去年我们进行了大量的更新,引入了定制芯片,我们看到机器学习正在其他服务中实现。

我们的机器学习大师凯莎·威廉姆斯是一位云专家和 AWS 机器学习英雄的首席培训架构师,他提供了以下重新发明的预测——并声明:“老实说,所有这些都是长期预测,所以不要在我身上下注!”

确信无疑:亚马逊 CodeGuru 将支持更多语言

“亚马逊代码大师目前只支持 Java 和 Python,”凯莎说。“我想 AWS 将通过增加新的语言来继续扩展这一领域。”

Even money:Amazon Connect 增加了新的机器学习功能

“去年,AWS 推出了识别来电者的语音 ID、用于更多情感分析的隐形眼镜和智慧。他们刚刚推出了预测拨号功能。凯莎说:“在 2021 年的 re:Invent 大会上,我认为将会有很多关注亚马逊连接和添加更多酷的机器学习功能。“但我们会看到!”

Longshot: AWS DeepDrone,一款与亚马逊 SageMaker 集成的自主无人机

我们是不是已经走投无路了,还是说无人驾驶飞机会超级酷?

“这是我所谓的‘深度玩具’,比如 DeepLens、DeepComposer 和 DeepRacer,”凯莎说。“我想要一架 DeepDrone,一架可以装载我的 SageMaker 模型的自主无人机。听起来会很有趣。”

“这听起来也很危险,”瑞安开玩笑说。“如果我在上面加载我的机器学习模型,那将是极其危险的。”


2021 re:Invent Pre-Show

观看 re:Invent 2021: AWS Heroes 关于展会前应该知道的事情——关于我们期待什么和我们最期待的主题演讲的大赌注。


安全性

旁注:其他云提供商最近的安全相关问题会受到多少关注?2021 年提醒我们,安全是我们理所当然的事情(好像我们需要另一个提醒)。

谈到对 AWS 安全相关公告的预测,我们求助于独一无二的 Mark Nunnikhoven,Lacework 杰出的云策略师和 AWS 社区英雄。这是他放加元的地方。

“我对我的赌注感到厌烦,因为今年是安全大扫除年,”马克说。“这就像‘dot’发布一样,你会说,‘在我们真正推进之前,我们必须清理一堆这种东西。’"

确信无疑:AWS 安全中心变得更易于使用

Mark 确信,我们将看到 AWS Security Hub 更新的“一些东西”,包括其 UI 和部署模型的增强,使其更易于使用。

“现在,当您尝试部署它时,它是针对每个地区、每个客户的。是的,你可以自动化其中的一些,但是弄清楚一些数据建模会变得很棘手。因此,让它一键穿越整个组织将是美妙的。但更重要的是,在现在的用户界面中,这是非常基本的。它提供了所有这些发现,这很好:这是一个集中查看所有安全信息的地方。但事情到此为止了。它不会帮助您理解安全信息。比如“嘿,你应该做点什么!”或者,“这两件事是有联系的!"

这可能是扩展机器学习模型的好地方。我们在 GuardDuty 中看到了这一点,但将它放入 AWS 安全中心以在更高的级别上运行会很好。

“这里需要某种形式的帮助,”马克补充道。“什么都行!在这里,任何事情都是有益的!”

甚至钱:亚马逊检查员得到了一个亚马逊 Macie 的完全重新启动

检查员在那里做它的工作,但是它已经被遗忘很久了,需要现代化。马克押注于全面重启,尽管实际上这可能更倾向于长远考虑。

long shot:AWS IAM 的新功能使跨账户访问及其风险更易于管理

“这肯定比月球区域的可能性小,”马克说。“这是我在与团队交流时遇到的最大痛处之一:我很细致,有很多能力。但最大的弱点之一是当你试图跨帐户授予权限和跨帐户使用规则。。。我的远景是,他们将解决这个问题,并使了解这些事情变得更容易:我是否给了这个帐户访问它的权限,它何时发生,以及基于此我的暴露程度是多少?所有的部分都在那里,但他们需要把它们放在一起。”

无服务器

无服务器是一种将这些砖块组合在一起的砂浆,尤其是当您将功能视为服务时。当你试图使用现代设计和无服务器架构来构建一个架构良好的框架时,会有很多摩擦。还有很多清理工作需要完成,以消除开发人员体验中的摩擦,并使事情以可扩展和可靠的方式工作。

iRobot 和 AWS 无服务器 Hero 的云机器人研究科学家 Ben Kehoe 对 2022 年的 AWS 做出了以下无服务器预测。

确信无疑:在传统计算和无服务器计算之间架起了更多桥梁

“我认为可以非常肯定地说,我们将会看到一些服务为更少的无服务器计算和数据库等带来更多的无服务器优势。供品。我们还将看到无服务器服务增加功能,使习惯于传统架构的人更容易使用它,”Ben 说。“今天,Lambda 可以成为许多事情的事件源。你不能把这些服务和 FarGate 上运行的东西挂钩。我认为这种差距会继续缩小。”

甚至钱:更多地方有第三方集成(目前:EventBridge 和 CloudFormation)

“我们已经看到 AWS 有兴趣在生态系统的某些部分与第三方更紧密地集成,正如我们在 EventBridge 和 CloudFormation 中看到的那样,”Ben 说。“我认为我们将会看到更多的集成和服务,这些集成和服务旨在消除客户的工作,并使其在 AWS 中更加本地化。”

Longshot: AWS 宣布现在将接受“Lambdas”作为有效术语

“就像乐高坚持说它们不是‘乐高’而是‘乐高积木’一样,AWS 坚持说它们是 Lambda 函数’而不是‘Lambdas’"

我们能从 AWS 官方获得只说“Lambdas”而不是“Lambda functions”的许可吗?可能不会,但会很酷。(不要告诉克里斯·芒恩斯。)

跟上 re:发明 2021

关注 AWS 的所有事情:在 Twitter脸书上关注一位云专家,在 YouTube 上订阅一位云专家的每日更新,并在 Discord 上加入对话。如果你想提升 AWS 技能,请查看我们目前的免费课程

re:发明 2021: pre:发明新闻综述!

原文:https://acloudguru.com/blog/engineering/reinvent-2021-preinvent-news-round-up

本周 AWS 怎么了?只是一个名为 AWS re:Invent 2021 的小型会议。在此之前,我们从上周开始发布了一大堆公告,我们称之为 pre:Invent!在本帖中,我们将讨论:

  • AWS 发布新的弹性灾难恢复服务
  • Amplify 会收到大量更新
  • Graviton2 支持更多服务
  • 亚马逊 Linux 2022 已经发布预览版

请继续阅读所有细节!


加速您的职业发展

从 ACG 开始通过 AWS、Microsoft Azure、Google Cloud 等领域的课程和实际动手实验室改变你的职业生涯。


宣布 AWS 弹性灾难恢复

AWS 已经宣布了一项新的服务,叫做 AWS 弹性灾难恢复。该服务旨在通过向 AWS 提供自动灾难恢复,最大限度地降低本地或其他云提供商服务的停机成本。

现在,如果这感觉有点熟悉,你可能是对的,AWS 已经在 cloud bearing 灾难恢复的基础上建立了该服务,该服务是他们在 2019 年收购的。事实上,它们每台受保护服务器的成本相同,而且功能似乎非常相似。

Elastic Disaster Recovery 还不支持与 cloud bearing 相同的所有操作系统或 AWS 区域,但它可以原生集成到 AWS 控制台、CloudTrail、IAM 和 CloudWatch 中。

也许这是 AWS 对 cloud bearing DR 的未来打算的一部分?但是现在,它仍然完全可用。

放大被放大

好吧,这实际上是一堆更新,AWS Amplify 在过去的一周左右收到了半打值得一提的更新。

我们不能在这里对它们进行公正的评价,但是总结一下这个列表:

  • 将 Amplify 后端导出为 CDK 堆栈
    您现在可以将 Amplify 后端导出到 CDK 堆栈,这样您就可以将它们嵌入到您现有的 CDK 管道中,使其与您现有的 DevOps 实践更加兼容
  • 后端定制资源
    几周前,值得一提的是,您现在可以将几乎任何其他 AWS 资源添加到您的 Amplify 后端,进一步简化您的部署架构
  • GraphQL 变压器经过重新设计
    graph QL 变压器经过彻底改造,具有更大的灵活性
  • React,Angular,Vue
    的新认证器流行的 Javascript 框架的新认证器不仅有一个新的主题,还增加了社交登录的功能,更大的可扩展性,并让您可以更好地控制自己的登录体验
  • 应用内消息(开发者预览版)
    最后,还有一个开发者预览版,可以让 Pinpoint 更好地与 Amplify 集成应用内消息

不用说,有大量的变化,所以检查上面的链接,以获得所有的细节。


2021 re:Invent Pre-Show

观看 re:Invent 2021: AWS Heroes 关于展会前应该知道的事情——关于我们期待什么和我们最期待的主题演讲的大赌注。


到处都是引力子 2

AWS 继续加大对 Graviton2 的投资,宣布支持一系列新服务,以利用这些专为满足公共云需求的工作负载而设计的 CPU。

Fargate 让我们能够在不管理底层服务器的情况下运行容器;本质上,一个无服务器的容器平台,很像 Lambda,你只需要为你使用的时间和资源付费。与今年早些时候宣布支持 Graviton2 的 Lambda 非常相似,您的解决方案的性价比可能会提高 40%。

Graviton2 是一项非常有趣的技术,如果你想了解它如何改变你的业务,请查看 AWS 的 Graviton 挑战赛。

亚马逊 Linux 2022 预览版

AWS 发布了亚马逊 Linux 的新版本,亚马逊 Linux 2022 发布了公众预览版。

他们宣布了一项计划,每两年发布一个新的亚马逊 Linux 主要版本,提供五年的长期支持,提供更多的确定性和稳定性。也就是说,亚马逊 Linux 2 将继续得到支持,并在 2023 年年中获得升级,同时还宣布了一个新版本,将其内核更新到 Linux 版本 5.10。

跟上 re:发明 2021

这是上周的一些最重要的消息,但当然,我们仍然需要谈论 re:Invent 本身:

  • 我们也将出席活动,包括 Ryan Kroonenburg 和 Faye Ellis,他们将在我们的展位#1561 周围,并在本周 AWS 的一期特别节目中现场总结活动的最大公告。顺便过来,告诉他们斯蒂芬派你来的!

  • 如果你参加虚拟(或只是想 TL;本周事件的博士版本),你可以在推特上关注 ACG脸书在 YouTube 上订阅一位云专家的每日更新。你也可以加入我们令人敬畏的 Discord 社区,在那里你可以和所有你喜欢的 AWS 培训架构师和志同道合的人一起闲逛。

目前就这些。继续牛逼吧,云大师们!

回复:发明 2022:AWS 首席执行官亚当·塞利普斯基的主题演讲印象

原文:https://acloudguru.com/blog/engineering/reinvent-adam-selipsky-keynote

使用 Azure AD 应用程序代理远程访问内部应用程序

原文:https://acloudguru.com/blog/engineering/remotely-access-on-premises-apps-with-azure-ad-app-proxy

您是否有必须保留在本地的应用程序?也许你已经在 Azure 中托管了很多,但是你也有一个顽固的、遗留的或其他的、受限的应用程序不能被迁移。

随着世界上许多工作人员现在远程工作,您可能想知道如何最好地提供对这些应用程序的安全远程访问,而不增加 VPN 或 VDI 所需的基础架构和入站连接。

如果您确实想要提供对具有单点登录(SSO)的本地应用程序的安全远程访问、对各种身份验证协议的支持以及其他 Azure AD 安全功能,那么只需看看 Azure AD 应用程序代理就可以了。


通往更好职业的钥匙

立即开始 ACG 通过 AWS、Microsoft Azure、Google Cloud 等领域的课程和实际动手实验室来改变你的职业生涯。


这款 Azure AD Premium 授权产品允许您为您的远程员工发布本地应用。它只需要到 Azure 的出站网络连接,因此您的网络安全团队会很高兴不需要入站防火墙规则。它通过 Azure 广告功能(如条件接收策略)为这些应用程序增加了额外的保护。它支持多种身份验证协议的单点登录,例如:

  • 集成 Windows 身份验证(IWA)
  • 基于报头的认证
  • 基于表单和基于密码的身份验证
  • SAML 认证

如果这听起来有助于在您的环境中提供安全的应用程序访问,那就留下来吧!我们将对 Azure 广告应用程序代理的架构和实现进行一个高层次的介绍,并提供一些额外的技巧来帮助我们。

在我们深入研究如何使用 Azure 广告应用程序代理之前,让我们快速总结一些重要的需求:

  • Azure AD 应用程序代理需要 Azure AD Premium P1 或 P2 许可
  • 本地应用程序必须在 Azure AD 中注册
  • 必须在内部安装一个或多个 Azure AD 应用程序代理连接器
  • 连接器必须能够访问 Azure AD 和内部应用程序
  • 您的内部应用可以是私有的,并且不需要访问 Azure AD
  • 单点登录和条件访问等功能需要预认证


如何使用 Azure AD 应用程序代理

步骤 1:配置连接器

为了帮助提供对本地应用程序的安全访问,您需要安装 Azure AD 应用程序代理连接器。如果您刚刚开始,您可以通过安装一个连接器来简化您的设置。但是可以使用多个来提供弹性,建议在生产环境中使用。

要安装连接器,您应该登录到将用作连接器的 Windows 服务器。此服务器应该具有到 Azure AD 的出站连接,以及到你的应用的内部私有连接(理想情况下是紧密/低延迟)。

从该服务器登录到 Azure 门户。然后,您可以导航到 Azure Active Directory >应用程序代理,并选择下载和安装连接器。

成功安装后,您应该会在门户中看到连接器列为“活动”。

步骤 2:配置 Azure AD 应用程序

要使您的内部部署应用程序可通过 Azure AD 应用程序代理访问,它必须在 Azure AD 中注册。如果需要,此注册还允许您配置访问限制和单点登录(SSO)设置。

要注册该应用程序,请登录 Azure AD 门户并导航到 Azure Active Directory >企业应用程序。选择创建新的应用程序。

每个人的应用程序注册对于他们自己的环境都是独特的,但是以下几点提供了一些通用的指导:

  • 您可以使用“内部部署应用程序”选项之一创建应用程序,或者您可能已经配置了应用程序——在任何情况下,一旦您的应用程序配置完毕,您就可以在应用程序注册后的“应用程序代理”部分找到所有重要选项
  • 内部 URL 指的是应用程序的内部可访问地址,例如,如果您登录到连接器服务器,并试图从该服务器访问您的本地应用程序
  • 预身份验证(使用 Azure AD 进行身份验证)允许您使用附加功能,如条件访问和 MFA 如果您使用此选项,您的用户帐户必须存在于 Azure AD 中,或者从内部同步到 Azure AD
  • 直通身份验证意味着用户不会首先在 Azure AD 进行身份验证,而是所有身份验证将由应用程序在内部处理

一旦您的应用程序被注册,确保您已经配置了用户访问。您可以允许所有用户或仅选择用户访问您的应用程序。这是通过注册的应用程序在“用户和组”部分中配置的。

步骤 3:测试远程访问

在进行任何额外的配置之前,我建议您使用这些基本设置来测试应用程序现在是否可以像预期的那样远程工作。

您可以在已注册应用程序的“应用程序代理”设置中使用“测试应用程序”功能。在本节中,您还将找到您的“外部 URL ”,您可以使用它来执行测试并确保访问正常工作。


千里之行始于 SQL 步骤

立即在 ACG 开始免费试用,通过我们的一系列 Azure data cert 课程、SQL 课程、动手实验室和其他出色的学习功能加快您的职业发展。不确定从哪里开始?我们将一步一步地指导您掌握在我们的学习道路上前进所需的知识和技能。无论你在旅途中的哪个地方,请通过我们的原创系列 Azure This Week 了解最新的 Azure 新闻。


步骤 4:配置 SSO 和其他功能

您现在已经成功配置了 Azure AD 应用程序代理来为您的用户提供远程访问。在这个阶段,您可能已经拥有了您需要的一切,但是值得注意的是,您可以配置不同的场景和附加功能。例如:

  • 使用受支持的身份验证方法之一进行单点登录:
    • 导航到您注册的应用程序中的“单点登录”设置
    • 配置您的应用程序使用的身份验证方法
  • 条件接收
    • 配置条件访问策略,为您的内部应用程序启用细粒度的身份验证要求
    • 请注意,这受 Azure AD Premium P1 授权支持,并且您必须使用 Azure AD 预身份验证方法
  • 自定义域和 SSL
    • 如果你有一个为 Azure AD 注册的自定义域,你可以将你注册的应用程序的“外部 URL”更改为更加用户友好的名称
    • 如果使用 SSL,您还可以在 Azure AD 中上传已注册应用程序的 SSL 证书,并进一步保护应用程序访问

无论您是通过 MyApps 门户为用户提供集中的应用程序访问,还是直接使用外部 URL,我们的远程用户现在都可以访问本地应用程序,所有这些都增加了 Azure AD 的安全性。

如果你想了解更多关于 Azure 广告的其他功能,或者你想观看 Azure 广告应用程序代理设置演示,那么你可能会发现我的 AZ-305 课程很有用

在云专家这里查看一下吧。我浏览了 Azure AD、各种各样的 Azure 服务、应用程序安全性和大量其他内容,以帮助您为 Azure 设计解决方案!

在 Amazon EC2 中调整 Linux 上的根分区

原文:https://acloudguru.com/blog/engineering/resizing-root-partition-on-linux-in-amazon-ec2

在 Kubernetes 上运行普罗米修斯

原文:https://acloudguru.com/blog/engineering/running-prometheus-on-kubernetes

你想知道如何让普罗米修斯运行在库伯内特?在很大程度上,与普罗米修斯和库伯内特一起工作非常容易。我们将使用一系列 YAML 文件来部署一切。

在我们进入技术层面之前,我们有几个假设:

  1. 首先,您已经有了一个 Kubernetes 堆栈。这篇文章将不包括设置它。

2.第二,您已经为 Kubernetes 集群配置了端口9090-9094。否则,您可能需要更改 Prometheus 服务的目标端口。

创建监控名称空间

我们将从创建监控名称空间开始。使用您选择的编辑器,创建namespace.yml并添加以下内容:

{  "kind": "Namespace",  "apiVersion": "v1",  "metadata": {    "name": "monitoring",    "labels": {      "name": "monitoring"    }  }}

名称空间在 Kubernetes 中充当虚拟集群。我们希望确保在监控名称空间中运行所有的 Prometheus pods 和服务。当您要列出您部署的任何东西时,您将需要使用-n标志并将monitoring定义为名称空间。例如,如果您想列出普罗米修斯舱,您需要执行以下操作:

kubectl get pods -n monitoring

应用名称空间

现在通过执行kubectl apply命令来应用名称空间:

kubectl apply -f namespace.yml

接下来我们将设置clusterRole.yml。这将用于设置群集的角色。我们需要对此进行设置,以便 Prometheus 拥有对 Kubernetes API 的正确权限。

创建clusterRole.yml文件,并向其中添加以下内容:

apiVersion: rbac.authorization.k8s.io/v1beta1kind: ClusterRolemetadata:  name: prometheusrules:- apiGroups: [""]  resources:  - nodes  - nodes/proxy  - services  - endpoints  - pods  verbs: ["get", "list", "watch"]- apiGroups:  - extensions  resources:  - ingresses  verbs: ["get", "list", "watch"]- nonResourceURLs: ["/metrics"]  verbs: ["get"]---apiVersion: rbac.authorization.k8s.io/v1beta1kind: ClusterRoleBindingmetadata:  name: prometheusroleRef:  apiGroup: rbac.authorization.k8s.io  kind: ClusterRole  name: prometheussubjects:- kind: ServiceAccount  name: default  namespace: monitoring

应用集群角色将集群角色应用到 Kubernetes 集群:

kubectl apply -f clusterRole.yml

我们将使用一个 ConfigMap 来将任何配置工件从图像内容中分离出来。这将有助于保持容器化应用程序的可移植性。我们将使用它来管理prometheus.yml配置文件。

创建config-map.yml并添加以下内容:

apiVersion: v1kind: ConfigMapmetadata:  name: prometheus-server-conf  labels:    name: prometheus-server-conf  namespace: monitoringdata:  prometheus.yml: |-    global:      scrape_interval: 5s      evaluation_interval: 5s    scrape_configs:      - job_name: 'kubernetes-apiservers'        kubernetes_sd_configs:        - role: endpoints        scheme: https        tls_config:          ca_file: /var/run/secrets/kubernetes.io/serviceaccount/ca.crt        bearer_token_file: /var/run/secrets/kubernetes.io/serviceaccount/token        relabel_configs:        - source_labels: [__meta_kubernetes_namespace, __meta_kubernetes_service_name, __meta_kubernetes_endpoint_port_name]          action: keep          regex: default;kubernetes;https      - job_name: 'kubernetes-nodes'        scheme: https        tls_config:          ca_file: /var/run/secrets/kubernetes.io/serviceaccount/ca.crt        bearer_token_file: /var/run/secrets/kubernetes.io/serviceaccount/token        kubernetes_sd_configs:        - role: node        relabel_configs:        - action: labelmap          regex: __meta_kubernetes_node_label_(.+)        - target_label: __address__          replacement: kubernetes.default.svc:443        - source_labels: [__meta_kubernetes_node_name]          regex: (.+)          target_label: __metrics_path__          replacement: /api/v1/nodes/${1}/proxy/metrics      - job_name: 'kubernetes-pods'        kubernetes_sd_configs:        - role: pod        relabel_configs:        - source_labels: [__meta_kubernetes_pod_annotation_prometheus_io_scrape]          action: keep          regex: true        - source_labels: [__meta_kubernetes_pod_annotation_prometheus_io_path]          action: replace          target_label: __metrics_path__          regex: (.+)        - source_labels: [__address__, __meta_kubernetes_pod_annotation_prometheus_io_port]          action: replace          regex: ([^:]+)(?::d+)?;(d+)          replacement: $1:$2          target_label: __address__        - action: labelmap          regex: __meta_kubernetes_pod_label_(.+)        - source_labels: [__meta_kubernetes_namespace]          action: replace          target_label: kubernetes_namespace        - source_labels: [__meta_kubernetes_pod_name]          action: replace          target_label: kubernetes_pod_name      - job_name: 'kubernetes-cadvisor'        scheme: https        tls_config:          ca_file: /var/run/secrets/kubernetes.io/serviceaccount/ca.crt        bearer_token_file: /var/run/secrets/kubernetes.io/serviceaccount/token        kubernetes_sd_configs:        - role: node        relabel_configs:        - action: labelmap          regex: __meta_kubernetes_node_label_(.+)        - target_label: __address__          replacement: kubernetes.default.svc:443        - source_labels: [__meta_kubernetes_node_name]          regex: (.+)          target_label: __metrics_path__          replacement: /api/v1/nodes/${1}/proxy/metrics/cadvisor      - job_name: 'kubernetes-service-endpoints'        kubernetes_sd_configs:        - role: endpoints        relabel_configs:        - source_labels: [__meta_kubernetes_service_annotation_prometheus_io_scrape]          action: keep          regex: true        - source_labels: [__meta_kubernetes_service_annotation_prometheus_io_scheme]          action: replace          target_label: __scheme__          regex: (https?)        - source_labels: [__meta_kubernetes_service_annotation_prometheus_io_path]          action: replace          target_label: __metrics_path__          regex: (.+)        - source_labels: [__address__, __meta_kubernetes_service_annotation_prometheus_io_port]          action: replace          target_label: __address__          regex: ([^:]+)(?::d+)?;(d+)          replacement: $1:$2        - action: labelmap          regex: __meta_kubernetes_service_label_(.+)        - source_labels: [__meta_kubernetes_namespace]          action: replace          target_label: kubernetes_namespace        - source_labels: [__meta_kubernetes_service_name]          action: replace          target_label: kubernetes_name

这份文件里有很多东西。简而言之,我们使用带有 Kubernetes API 的服务发现来创建 Prometheus 目标。这就是为什么我们需要更早地配置集群角色的原因。没有它,Prometheus 就没有必要的权限访问 API 来发现目标。

正在使用服务发现将以下作业配置为目标。

  • kubernetes-apiservers:获取 Kubernetes APIs 的指标。
  • kubernetes-nodes:获取 Kubernetes 节点上的指标。
  • kubernetes-pods:从在元数据中定义了 prometheus.io/scrape 和 prometheus.io/port 注释的 pod 中获取指标。
  • kubernetes-cadvisor:获取从 Kubernetes 集群报告的 cAdvisor 指标。
  • kubernetes-service-endpoints:从元数据中定义了prometheus.io/scrapeprometheus.io/port注释的服务中获取度量。

通过使用服务发现,我们不需要在新的 pods 和服务联机和脱机时用它们来更新prometheus.conf文件。只要在您的 pod 和服务的元数据中定义了prometheus.io/scrapeprometheus.io/port注释,Prometheus 就会自动更新目标。

应用配置图

现在应用配置图:

kubectl apply -f config-map.yml

现在配置图已经就绪,我们可以创建 Prometheus 部署和服务了。

创建prometheus-deployment.yml并添加以下内容:

apiVersion: extensions/v1beta1kind: Deploymentmetadata:  name: prometheus-deployment  namespace: monitoringspec:  replicas: 1  template:    metadata:      labels:        app: prometheus-server    spec:      containers:        - name: prometheus          image: prom/prometheus:v2.2.1          args:            - "--config.file=/etc/prometheus/prometheus.yml"            - "--storage.tsdb.path=/prometheus/"          ports:            - containerPort: 9090          volumeMounts:            - name: prometheus-config-volume              mountPath: /etc/prometheus/            - name: prometheus-storage-volume              mountPath: /prometheus/      volumes:        - name: prometheus-config-volume          configMap:            defaultMode: 420            name: prometheus-server-conf        - name: prometheus-storage-volume          emptyDir: {}---apiVersion: v1kind: Servicemetadata:  name: prometheus-service  namespace: monitoring  annotations:      prometheus.io/scrape: 'true'      prometheus.io/port:   '9090'spec:  selector:    app: prometheus-server  type: NodePort  ports:    - port: 8080      targetPort: 9090      nodePort: 30000

有几件事我想指出来。正在创建两个卷装载。

这些是prometheus-config-volumeprometheus-storage-volume

...volumeMounts:            - name: prometheus-config-volume              mountPath: /etc/prometheus/            - name: prometheus-storage-volume              mountPath: /prometheus/...

prometheus-config-volume将使用我们的配置图来管理prometheus.yml,这反映在 volumes 部分中。

...- name: prometheus-config-volume         configMap:           defaultMode: 420           name: prometheus-server-conf...

这就是我们如何将prometheus-server-conf配置图用于 Prometheus 部署。

对于prometheus-storage-volume,我们正在创建一个空目录来存储普罗米修斯数据。

...- name: prometheus-storage-volume          emptyDir: {}...

这个卷是短暂的,随着 Pod 一起被创建和销毁。这意味着如果您出于任何原因删除 Pod,prometheus-storage-volume中的数据也会随之删除。如果您希望这些数据是持久的,那么您将需要使用一个持久卷。

现在让我们看看服务中定义的元数据。

metadata:  name: prometheus-service  namespace: monitoring  annotations:      prometheus.io/scrape: 'true'      prometheus.io/port:   '9090'

在这里,我们设置注释,以便普罗米修斯发现该服务,将其作为要清除的目标。要使服务可用,请将prometheus.io/scrape设置为true。然后,您需要确保prometheus.io/port是服务中定义的目标端口。如果不这样,目标就不会被发现。

ports:    - port: 8080      targetPort: 9090      nodePort: 30000

因为目标端口被设置为9090,我们将使用带有prometheus.io/port的端口。

annotations:      prometheus.io/scrape: 'true'      prometheus.io/port:   '9090'

通过执行kubectl apply创建部署和服务。

kubectl apply -f prometheus-deployment.yml

让我们验证 pod 和服务是否已创建。

kubectl get pods -n monitoringkubectl get services -n monitoring

一旦 pod 和服务可用,您就可以通过前往https://<KUBERNETES_MASTER_IP>:9090访问 Prometheus 的表情浏览器。现在,您可以监视部署到集群的 pod 和服务。

关于在 Kubernetes 上运行 Prometheus 的更多信息

如果你想了解更多关于在 Kubernetes 上运行 Prometheus 的信息,可以去看看我的实践课程用 Prometheus 监控 Kubernetes。快乐监控!

Ryan 的云播放列表:学习 AWS 基础知识的动手实验室

原文:https://acloudguru.com/blog/engineering/ryans-cloud-playlist-hands-on-labs-for-learning-aws-essentials

在本帖中,我们分享了一份适合初学者的 AWS 基本操作实验室列表。只需花几个小时完成这些实验,您就可以从很少甚至没有 AWS 经验到获得可以应用于您的第一个云项目的技能。

这是我最喜欢的实验室的入门播放列表,它将帮助你获得几个关键服务的实际操作,并练习使用 Amazon Web Services (AWS) 的基本概念。

如果您是云新手,为什么要接触 AWS?因为 AWS 的成功需要实践经验。但是不用担心。我们不只是把你扔进深水区,期望你学会游泳。

下面的五个实验室旨在让您在探索 Amazon Web Services (AWS)基础工具和服务的同时进行实践。

这份 AWS Essentials 播放列表是向 AWS 学员推荐的第一套实验。按照这个播放列表,您可以从很少或没有云知识开始,并在几个小时内获得可以应用到您的第一个 AWS 项目的实践经验。

建议的音乐配对:

注意:要开始下面的动手实验,你需要有一个 ACG 帐户或开始免费试用。你也可以注册一个免费账户,开始学习这个月的免费课程


看点:解决“无经验”的云招聘问题
需要经验才能得到工作,但需要工作才能得到经验。这是一个多云的第 22 条军规!观看免费点播的网络研讨会,了解帮助数十人获得第一份云计算工作的 ACG 挑战赛。


30 分钟

这个实验室环境是为您使用和探索 AWS 控制台而设置的“沙箱”。您将使用提供的凭据在出现提示时登录 AWS,并了解如何访问 AWS 控制台登录页面、导航 AWS 控制台以及访问各种 AWS 服务。

无需担心设立 AWS 账户或产生额外费用。ACG 的云游乐场将在真实的云环境中为你提供一个安全的空间,在没有安全风险或意外账单的情况下提高你的技能。(已经是 ACG 会员了?跳到实验室这里。)

45 分钟

AWS 身份和访问管理(IAM)是一项服务,允许 AWS 客户管理其帐户的用户访问和权限,以及 AWS 中可用的 APIs 服务。IAM 可以管理用户、安全凭证(如 API 访问密钥),并允许用户访问 AWS 资源。

这个 45 分钟的实验中,我们将介绍 IAM 的基础。我们将重点讨论用户和组管理,以及如何使用 IAM 管理的策略分配对特定资源的访问。我们将学习如何找到 AWS 用户可以登录到他们的帐户的登录 URL,并从现实世界用例的角度来探索这一点。(已经是 ACG 会员了?跳到实验室这里。)

30 分钟

AWS EC2 是 AWS 生态系统的核心服务之一,要想在与云相关的职业生涯中取得成功,你绝对必须知道它。即使您的应用程序不能在 EC2 上运行,利用 EC2 实例进行开发和执行其他任务对于架构良好的 AWS 解决方案来说也是至关重要的。

这个 30 分钟的动手实验中,我们将创建一个 EC2 实例,创建并定制一个允许访问的安全组,并创建一个密钥对以确保我们的访问是安全的。(已经是 ACG 会员了?跳到实验室这里。)


Complete guide to the Cloud and Dictionary

获得痛苦的云词典
说云不一定要努力。我们分析了数以百万计的回答,以确定哪些概念会让人犯错。抓住这个云指南获取最痛苦的云术语的简洁定义。


30 分钟

AWS 网络由多个组件组成。理解网络组件之间的关系是理解 AWS 整体功能的关键部分。

这个 30 分钟的动手实验中,您将通过创建一个带有互联网网关的 VPC 来获得动手实践。您还将跨多个可用性区域创建子网。(已经是 ACG 会员了?跳到实验室这里。)

45 分钟

亚马逊 S3 在世界上最大的全球云基础设施上运行,并从头开始设计,以提供 99.999999999%的耐用性。亚马逊 S3 标准、S3 标准-IA 和亚马逊冰川存储类别中的数据自动分布在 AWS 区域内通常相距数英里的至少三个物理可用性区域(az)中。

这个 45 分钟的动手实验将向您介绍亚马逊 S3 的基本情况。您将创建公共和私有亚马逊 S3 存储桶,并向每个存储桶上传一个文件。我们将带您了解如何在 public bucket 上启用版本控制,并验证对同名文件的不同版本的访问。(已经是 ACG 会员了?跳到实验室这里。)

建议的后续步骤

当您完成动手实验后,请通过 AWS 云从业者认证来验证您的知识!我们最近重新设计的 AWS CCP 课程将通过让你积极参与学习过程来提升你的 AWS 游戏水平。

从那时起,您就可以开始学习我全新改进的 AWS 认证解决方案架构师助理(CSA-A)课程了。

面向 AWS 初学者的云学习资源

希望开始您的 AWS 职业生涯或让您的技能更上一层楼?ACG 的 AWS 学习路径提供定制的路径来超越您的云之旅!

您还可以查看以下内容,了解开始云计算生涯的更多详细信息。


准备好提升你的 AWS 技能了吗?免费体验 ACG。云专家的边做边学方法将帮助你掌握云技术,并在职业生涯中取得进步。

哪种 S3 储物类适合您?

原文:https://acloudguru.com/blog/engineering/s3-glacier-instant-retrieval-deep-dive-which-s3-storage-class-is-right-for-me

在本帖中,我们将接触 S3 冰川即时检索,看看这个新的 AWS 存储类能帮你节省多少。此外,我们还提供信息图,帮助您确定哪种 S3 存储产品最适合您的需求。

AWS re:Invent 2021 带来了一大堆消息,但其中一个很容易被错过的是新的亚马逊 S3 冰川即时检索存储类

其他 AWS re:Invent 2021 亮点


加速您的职业发展

从 ACG 开始通过 AWS、Microsoft Azure、Google Cloud 等领域的课程和实际动手实验室改变你的职业生涯。


“我们现在不需要它,可能几年后也不会需要。但是当我们需要它的时候,我们会需要它现在是存储的一个常见用户故事。

多年来,AWS 为我们提供了许多选择,尤其是 S3,但对即时访问的需求使冰川及其低成本成为许多公司无法企及的。

S3 冰川即时检索旨在为您提供两全其美的解决方案,即低成本和同步即时访问。但是,这是适合您的 S3 存储课程吗?

试驾 S3 冰川即时检索

首先,让我们看看 S3 冰川即时检索到底有多“即时”。

我们将首先在全球几个不同的地区创建一些新的 S3 存储桶,移除它们的公共访问阻止,并确认它们已准备就绪:

现在让我们制作一个随机文件,并向每个桶上传两个版本;一个使用 S3 标准,一个使用新的 S3 冰川即时检索,同时将文件的 ACL 设置为 Public。

有趣的是,aws s3 cp并不支持新的存储类;只有aws s3api put-object做到了;不确定是疏忽还是故意。如果put-object对你不起作用,你可能需要更新你的 AWS 命令行界面。

由于我们正在处理一项新功能,让我们在 AWS 控制台中仔细检查一下,以确保新的存储类按预期应用:

现在我们已经将文件放入桶中,让我们使用curl将它们拉回来,并获得每次传输的总响应时间。

好的,看起来不错!由于我到不同地区的距离和正常(澳大利亚)互联网的可变性,一些结果有点不同,但它们都在同一范围内。

关于为什么 ap-southeast-2 特别快,这是由于我在澳大利亚的位置,这使我尽可能地靠近这个地区(至少在明年 AWS 推出墨尔本地区之前)。

利用 S3 冰川即时检索节省成本

使用 S3 冰川即时检索是否省钱取决于你打算如何使用它。

让我们做一些成本建模(哦,令人兴奋!)完全基于存储和检索成本,看看看起来如何。无论存储类别如何,数据传输等其他成本都是相同的。我们将使用截至 2021 年 12 月美国东部 1 区的 S3 价格

首先,让我们纯粹看一下存储成本,看看零数据传输是什么样子。我们将与其他一些 S3 存储类别进行比较:S3 标准、S3 标准-IA 和 S3 冰川深层档案,以供参考:

不出所料,Deep Archive 仍然是最便宜的,而 Standard 是最贵的。但 Standard-IA 和 Glacier Instant Retrieval 之间的差异相当显著,成本降低了 68%,正如官方公告宣称的

但魔鬼在细节,这里的细节是检索成本。

让我们看一下,如果我们在一年中只检索 100TB 的 1%(分为每天 2,875 个 1MB 文件),比较 Standard-IA 和 Glacier 即时存取检索,会是什么情况:

信不信由你,即使在一年的时间里从我们的桶中取出 1TB 也不会改变 Standard-IA 那么多(事实上只有 0.03%)。另一方面,冰川即时存取检索显示了显著的差异(54.7%)。

Glacier Instant Retrieval 的检索成本比 Standard-IA 贵得多,特别是因为它是为存档目的而设计的。事实上,每 GB 的检索成本是这个价格的三倍,而 GET 请求要贵出惊人的 10 倍。

但即使在这里,下载量这么大,我们还是比 Standard-IA 便宜 30%!这是不容忽视的。

您正在检索的文件类型也很重要。在我们的上一个场景中,我们每天使用 5250 个 1MB 的文件;普通文档或 PDF 的大小。但是在另一种情况下,我们假设每天有 5 个 1GB 大小的文件;中等媒体项目的规模。在我们的 100TB 存储桶中,这两项合计约为每年 1.8TB。

我们将这两个与 Standard-IA 进行比较:

相比之下,Glacier Instant 的检索成本随着大文件数量的减少而增加。对于这里相同的总传输大小,有近 20%的差异。我们还可以看到 Glacier 即时访问实际上变得比标准的非频繁访问更加昂贵。

再次:S3 冰川即时检索是一个档案;文件不应该用于访问,但需要在需要时快速可用。当物品保持原样时,我们的成本节约是惊人的。

与此同时,S3 冰川深层档案馆继续保持其一贯的惊人的便宜,只要你能承受检索的延迟,比任何其他解决方案都便宜 90%以上。

我们应得的英雄。

我的用例呢?

这是最古老的规则:了解你的业务需求

如果您有出于业务原因需要保留的对象,并且绝对需要立即访问,S3 冰川即时检索可以完全满足您的需求。

如果它可以等待甚至几分钟,S3 冰川灵活检索(以前只是 S3 冰川)可以继续为您节省堆,甚至更多,如果几个小时或几天是一个选项,在那里你可以使用 S3 冰川深度档案。

但是,有时我们不知道实际的业务需求是什么,因为业务可能不知道。对于这些情况,我们有 S3 智能分层

S3 智能分层

AWS 可能比你更了解你的数据使用模式。我们可以利用这一点,通过 S3 智能分层让我们的生活变得更加轻松。

这不是新功能,我就不深究了。但在这种情况下,当我们试图找到使用不同存储类别(如 Standard-IA 或 Glacier Instant Retrieval)之间的界限时,我们可以让 AWS 为我们管理这一点。

如果您不太确定您的数据是否属于 Glacier 即时检索,智能分层可以让您不再头疼。虽然您确实为这种便利支付了少量费用(每 1,000 个对象 0.0025 美元),但这很容易被将文件放在最佳存储类别中所节省的成本抵消。

信息图:哪个 S3 存储班适合我?

毫无疑问,S3 冰川即时检索可以并将为许多企业节省大量资金。这确实给使用哪些存储类的问题增加了一些新的复杂性。因此,这里有一个方便的信息图表来帮助指导这一过程。(编辑:感谢推特上的詹姆斯·瓦桑森指出原文中的一个错误!)

阻碍 S3 冰川的一个因素是对异步请求的恐惧,以及这对我们的应用程序意味着什么。S3 冰川即时检索使用与 S3 标准和标准 IA 相同的同步 API,无需应用程序重构。

对于合规案例,这是显而易见的。但是,对于拥有数 TB 数据的组织来说,这也是非常好的选择,因为他们相信人们不会访问这些数据,但是企业宣称“任何东西都必须随时可以访问”,同时比使用 Standard-IA 节省更多成本。

这是一个很好解决的问题。


保持在云的顶端

Twitter 上关注 ACG脸书,在YouTube 上订阅一个云专家来获取你能处理的所有云更新!此外,加入我们令人敬畏的 Discord 社区,与训练有素的架构师和其他志同道合的阴云密布的人进行数字交流。

SageMaker Clarify re:Invent 2020 最重要的公告

原文:https://acloudguru.com/blog/engineering/sagemaker-clarify-is-the-most-important-reinvent-announcement-of-the-year

我们正处于 2020 年 AWS re:Invent 的第二周,这是机器学习第一次有单独的主题演讲!作为一名 AWS 机器学习英雄,我迫不及待地观看了主题演讲,以了解更多关于正在推出的新机器学习服务的信息。

当 Swami Sivasubramanian 宣布 Amazon SageMaker Clarify 通过检测和减轻数据集和模型中的偏差来扩展 SageMaker 的功能时,我简直欢呼雀跃。我相信亚马逊 SageMaker Clarify 是今年 AWS re:Invent 最重要的公告鉴于人工智能的广泛社会影响,更具体地说, AWS 机器学习

为什么偏差检测在机器学习中如此重要?

SageMaker 在帮助机器学习从业者和数据科学家准备数据集、构建和训练定制模型以及在生产中部署和监控模型方面做得很好。然而,还没有简单的方法来检测偏差。

机器学习中的偏见最近一直处于许多讨论的前沿。我们已经看到像面部识别(其核心是机器学习)这样的尖端技术因偏见而被禁止;当面部识别系统准确地识别出除了有色人种之外的所有人时,偏向表面。为了让社会充分认识到机器学习的好处,必须在过程的早期检测和减轻偏见——在机器学习模型投入生产之前。

我总是警惕地测试我的模型的偏差,但现在有了一种可扩展和可重复的方法来检测和减轻偏差,这是非常令人兴奋的。Amazon SageMaker Clarify 允许您在机器学习模型开发过程的每个阶段评估偏差——在数据分析期间、训练之后和推断期间。

训练前检测偏差

有时,当处理新数据集时,需要花费时间来构建所需的领域级知识,以便检测可能导致偏差的异常和不平衡。亚马逊 SageMaker Clarify 承诺通过在训练的 之前检测数据集 中的偏差来提供帮助。这是非常令人兴奋的,因为一个有严重偏差的数据集首先不应该被用来训练一个模型!训练机器学习模型的时候别忘了,“垃圾进,垃圾出”!

为了让 Amazon SageMaker Clarify 检测数据集中的偏差,您需要上传已经预处理和清理的数据(使用 Amazon SageMaker DataWrangler 等工具)。亚马逊 SageMaker Clarify 还承诺在 训练后检测模型 中的偏差。最重要的偏差检测特性——精确度差异(AD)——检测一组模型是否比另一组模型更精确!所有面部识别机型都应该使用该功能。

预测的透明度

但是亚马逊 SageMaker Clarify 不止于此!过去,我很难解释为什么我的模型在推理过程中会做出某种预测。亚马逊 SageMaker Clarify 承诺通过帮助我“解释特征值如何对预测结果做出贡献来解决这个问题,包括整体模型和个体预测。这种透明度是真正的游戏规则改变者,有助于与使用我的模型的人建立信任。

总的来说,我对机器学习的未来感到非常兴奋,因为偏见检测处于最前沿!我迫不及待地想使用亚马逊 SageMaker Clarify 重新训练我现有的模型,并与您分享我的经验教训!如果你有兴趣探索其他 AWS re:Invent 机器学习会议(在 Swami 的主题演讲之外),请查看我的机器学习英雄指南

投入你的邮箱获得一个 TL;ACG 发明的每一天的总结。

SageMaker Studio Lab:如何免费体验 ML

原文:https://acloudguru.com/blog/engineering/sagemaker-studio-lab-how-to-experiment-with-ml-for-free

在本帖中,我们将讨论如何使用亚马逊 SageMaker Studio 实验室免费开始机器学习。

AWS re:Invent 2021 出来,我们看到了对 AWS 的推动,使机器学习变得可访问和包容。宣布了亚马逊 SageMaker 的扩展,亚马逊 SageMaker 工作室实验室(目前在预览中)。

SageMaker Studio Lab 是一项免费的机器学习服务,允许您快速旋转 Jupyter 笔记本电脑,并且不需要复杂的配置即可开始。该服务的目标受众是希望学习和尝试机器学习的开发人员、学生和数据科学家。我喜欢 SageMaker Studio 实验室帐户与 AWS 帐户分开,只需要一封电子邮件就可以创建,不需要信用卡!

如果你是机器学习的新手,这项免费服务是一个很好的入门方式。

申请实验室账户

申请免费的 SageMaker Studio 实验室账户,你需要输入一个有效的电子邮件地址。有一个等待用户体验该服务的名单,目前仍在预览中。一旦有了访问权限,您就可以启动项目的运行时并打开一个基于 JupyterLab 的笔记本。

实验室帐户的组成部分

SageMaker Studio Lab 为您提供了一个单个项目,该项目具有至少 15 GB 的持久存储、CPU (T3.xlarge)和 GPU (G4dn.xlarge)运行时、企业安全性和基于 JupyterLab 的用户界面。当我选择计算类型并开始会话时,我的会话时间限制为 12 小时。

CPU 最适合通用计算任务,而 GPU 最适合专门优化在 GPU 上运行的机器学习算法。通过进一步的研究,我了解到 CPU 运行时间被限制在 12 小时,而 GPU 运行时间被限制在 4 小时。一旦剩余时间达到零,您将不得不再次重新启动项目运行时,但是您的所有文件(包括笔记本)都将保存到永久存储中。

训练机器学习模型

运行时只需要几分钟就可以启动,打开项目后,您会看到一个包含有用信息的入门屏幕。如果你是机器学习的新手,我建议你完整阅读入门页面。

当我探索这个接口时,我很高兴看到与 Git 的集成,它允许我访问本地存储库、初始化存储库或克隆现有的存储库。

对于这个例子,我创建了一个空的笔记本,而不是克隆现有的代码。

正如您所料,SageMaker Studio 实验室与常见的数据科学和机器学习库一起工作。我安装了熊猫Scikit-learn ,然后将它们导入到我的项目中。

  • Pandas 是 Python 编程语言的数据分析和操作库。
  • Scikit-learn 是一个 Python 编程语言的机器学习库。该库易于使用且健壮,因为它具有各种分类、回归和聚类学习算法。
  • LogisticRegression 是 Scikit-learn 中的一个类,它允许您将逻辑回归应用于二元分类问题,从而得出是(即 1)或否(即 0)的预测。

现在,我准备开始写 Python 代码来训练一个定制的机器学习模型。加载训练模型所需的数据有几个选项。对于这个简单的例子,我从本地机器上传了 CSV 格式的预先存在的犯罪数据。

犯罪数据(crime-data-cleaned2.csv)由经过清理和预处理的来自英国的街道级拦截和搜索犯罪数据组成。数据集中的每一行代表一个停车和搜索记录,在每个记录中,一列(即 CommittedCrime)标识该停车是否导致逮捕。该数据集经过预处理,并以一种机器可以轻松找到趋势和模式的格式放置。

接下来,我定义列标题,因为 CSV 文件中没有提供它们。然后,我使用 read_csv()将 CSV 文件读入 Pandas 数据帧

接下来,我检查 CommittedCrime 列上的类分布,这表明一次停车是否导致了一次逮捕,以确保我的数据集是平衡的。在 49.79%和 50.21%,我的数据集很平衡。

接下来,我使用 Scikit-learn 的 train_test_split()函数将数据分成 70%用于训练,30%用于处理。

我确认拆分成功。

然后,我创建逻辑回归对象,并使用 fit()训练模型。

现在我有了一个训练好的预测犯罪的模型,我可以评估它的性能,并将其用于任何需要预测犯罪的应用程序。

下一步是什么

当你准备好了,你可以将你的 SageMaker Studio 实验室项目转移到 SageMaker Studio,以利用亚马逊 SageMaker 的附加功能。你需要有一个 AWS 帐户,并设置 SageMaker 工作室。参见 SageMaker 工作室实验室文档获取分步说明。

我的想法

总的来说,我对 SageMaker Studio 实验室打开的大门感到非常兴奋。它是完全免费的,不需要提供账单和信用卡信息,这是一个巨大的胜利。此外,它是一项独立的服务,不依赖于 AWS 帐户。作为之前与亚马逊 SageMaker 合作过的人,我发现使用 SageMaker Studio Lab 训练模型很容易。

如果你一直对机器学习很好奇,现在就是你开始的机会。

关于作者

凯莎·威廉姆斯 是一位屡获殊荣的技术领导者。她还是 AWS 机器学习英雄、AWS 合作伙伴大使和 Alexa 冠军。

#MSIgnite 主题演讲摘要:工作的未来在云端

原文:https://acloudguru.com/blog/business/satya-says-the-future-of-work-is-in-the-cloud

首席执行官塞特亚·纳德拉揭开了“混合现实”的面纱,在微软 Ignite 第一天的主题演讲中获得了不同的反应

当微软 Ignite 启动时,全世界的 IT 专业人士都在屏息聆听微软首席执行官塞特亚·纳德拉的主题演讲。这位不知疲倦的微软云部门前领导人带来了产品,并展示了技术世界的现状,以及微软计划如何在接下来的一年中引领技术世界。

由全球新冠肺炎疫情推动的快速数字和社会转型处于今年的最前沿,并制定了许多重大举措,所有这些都是由云的力量推动的。以下是我们从 Ignite 2021 第一天的主题演讲中获得的一些重要信息。

技术密集度回报

2019 年 11 月,塞特亚·纳德拉在主题演讲中引入了一个他称之为“技术密集度”的概念。今年,它又回来了。展望未来十年,他分享了微软认为将推动云计算创新的五个特征

  1. 无处不在的分散计算
    任何地方的每个人都将需要云计算的力量。我们已经达到了计算集中化的顶峰。继续指数级增长的唯一方法是将计算能力分散开来。架构将向边缘回归。

  2. 主权数据和环境智能
    我们的计算越分散,我们最终将拥有更多数据,比以往任何时候都更快。纳德拉完美地总结了商业逻辑的未来,即从“编写的代码,到从数据中学习的代码”。但它必须得到很好的控制和治理,同时确保隐私。

  3. 被授权的创造者和社区无处不在
    仅仅拥有大量强大的技术是不够的,如果没有人能够使用它。创作民主化是来自 Satya 的一个重要信息,不仅是在允许访问平台方面,而且是让人们能够利用它们的技能,以及个人之间的联系以利用所有这些。这就是创新被进一步推动和放大的方式。

  4. 全球劳动力的每个成员都有更多的经济机会
    在过去的 12 个月里,全球劳动力发生了巨大的变化,人们工作的时间、地点和方式都发生了变化。事情变化越多,我们就越需要适应。这不仅适用于知识工作者,也适用于毕业生和一线工作者。这句话中对“每个”和“全球”的强调是如此明确。

  5. 通过设计信任通过建立我们可以信任的系统,基于隐私、人工智能的使用甚至保护环境的道德原则,我们建立了支持我们周围世界的系统。通过实施零信任和安全设计,我们从头开始在我们的解决方案中建立信任。

所有这些原则都有坚实的理论基础,虽然许多人可能不会将它们与“安全”和“隐私”联系起来,但这就是为什么围绕这些原则构建是如此重要;无论是对微软,还是对其他公司为自己的客户打造的产品。

劳动力经验

在我来 ACG 之前,我是一名虚拟桌面工程师。每一年,每个供应商都会重复说“我们的工作方式已经永远改变了!”嗯…至少今年不是夸张。微软一直很忙。

无论人们在哪里工作,无论他们是在家工作的知识工作者,还是在新冠肺炎期间保持社会运转的一线工作者,微软团队都是所有工作体验的中心。

微软 Viva 上个月宣布成为微软新的“员工体验”平台,汇集了在员工的整个生命周期中支持员工所需的一切。虽然它确实为一个产品带来了如此多的功能,但它仍然是那种“让我们合并一堆现有的东西,称之为统一体验”的服务。但是也有很多非常有针对性的有趣的新体验。

与 Microsoft Information Protection 共同创作文档解决了用户多年来的一个令人沮丧的问题。从历史上看,在处理这些安全文档时,由于安全性限制了奇特的功能,您的协作选项非常有限。在这里,微软认识到安全性是生产力的一个主要障碍,并做出了一些重大改变来解决它。出色的工作!

今天,Azure Active Directory 的无密码认证也已全面上市,为寻求彻底改变其安全状况的公司带来了新的选择。随着全球数亿人已经远离密码,这为使用 Azure AD 现有功能的企业提供了新的选择。

2021 年的混合现实

第一个主题演讲的主要内容是 Alex Kipman 关于微软对混合现实世界的新挑战的演讲。通过一场我在大型技术会议上见过的最奇怪的演示,微软雄心勃勃的技术赌注的最新成员被宣布:微软网格

微软 Mesh 是一个支持混合现实通信的解决方案。他们非常热衷于使用的描述是“融合现实和虚拟世界”。它不是简单地依靠在 2D 屏幕上与人交谈,而是开辟了在物理空间中用各种设备与人全息互动的机会。

如果微软不把它作为彻底改变世界和我们生活方式的东西来销售,它就不会是一个重大的微软产品发布会。他们真的认为这是在现代工作的新世界中更有效工作的重要组成部分,也是社交联系的重要工具,在社会距离和新冠肺炎的世界中非常及时。

微软对混合现实技术并不陌生,五年前发布了第一款 Hololens,当时的许多故事和机会与现在一样。虽然全息 Xbox 化身之间的会议并不绝对吸引人,但随着技术的成熟,持续的可能性非常有趣。

特别值得一提的是增强现实口袋妖怪的客串,继续戏弄我们,就像多年前他们对口袋妖怪 go 的第一部预告片所做的那样。微软知道如何让我们紧张…

为未来提高技能

当塞特亚·纳德拉提到创造的民主化时,他强调技能的发展是至关重要的。无论是促进我们个人的成长,还是在我们的组织内部培养能力,知识都是技术成功的关键。技术变革越多,对知识的需求就越多;对于专业技术人员和决策者来说都是如此。

我们在云大师的部分目的是让任何人、任何地方都能通过教育实现更光明的未来;我们真正相信的东西。无论你是一名希望用自己的想法改变世界的开发人员,还是一名希望了解“云”事物的商业领袖,还是一名紧跟最新技术的经验丰富的工程师,教育都是一切的核心。

微软最近还宣布了新一轮以安全为重点的认证,作为他们填补安全技能缺口的努力的一部分,他们估计今年将缺少 350 万名专业人员。这些新认证包括:

  • 微软认证:安全性、合规性和身份基础(SC-900)
  • 微软认证:安全运营分析师(SC-200)
  • 微软认证:身份和访问管理员助理(SC-300)
  • 微软认证:信息保护管理员助理(SC-400)

停留在蔚蓝的顶端

Ignite 的第一天以许多精彩的会议结束,甚至更多的是根据需求举办的——包括与 ACG 自己的 Lars Klint 的多场会议。如果你对 Azure 或微软感兴趣,我们强烈建议你去看看。

对于所有最大的微软 Azure 更新,请查看云专家的 Azure 本周系列,不要忘记查看我们的 60 多个 Azure 课程和数百个实践实验室

使用 async AWS Lambda 节省时间和资金

原文:https://acloudguru.com/blog/engineering/save-time-and-money-with-aws-lambda-using-asynchronous-programming

当你以 100 毫秒为增量支付计算费用,而数百万次调用只需要几分钱时,过分担心 Lambda 函数的执行长度就有点过头了。直到它不是。

收紧你的 Lambda 账单的最简单方法之一是而不是为等待买单——这意味着拥抱 async。花钱买闲不好。

使用“旧世界”电脑的后遗症导致了一些“沉没成本”的想法——如果任务无所事事也没关系,因为 CPU 反正是不活动的。

但是在无服务器的情况下,时间是操作成本中最大的因素,所以你必须以稍微不同的方式来看待你的流程。

无服务器社区中的许多人警告 Lambda 中的异步操作是有道理的——但他们主要是警告开发人员已经从旧世界转移到新世界的单片函数。

常见的情况是,某种状态管理或控制器函数调用一系列其他函数,让调用函数无所事事:

This makes Jeff Bezos rich…er.

在 Node 中,自从 async/await 的出现使得将异步代码转换成顺序操作变得轻而易举以来,这种情况变得更加普遍。用这种方法,你要付两次钱——一次是每个“步骤”功能,另一次是等待和控制功能。对于不常使用的函数来说,这没什么大不了的,但是根据我的经验,这是一种糟糕的做法,原因有二:

  1. 在现实世界中,这些控制器函数调用其他控制器函数,而其他控制器函数又调用其他嵌套的控制器函数,因此您可能会有多个函数都在等待返回值,所有这些函数都在同时运行,并记入您的 AWS 账单。
  2. 当任何事情有意义地扩大时,它变得更加明显,人们开始声称 Lambda 并不像他们想象的那么便宜。

这种方法有两种替代方案。第一种是通过使用它们所等待的本机 AWS 服务中的事件来分解这些步骤。写入 DynamoDB 记录后,使用 stream 事件启动 S3 任务,然后使用 S3 中的 ObjectCreated 事件启动发送电子邮件的 Lambda。

在这个版本中,你不用为 DynamoDB 或 S3 完成它们的工作所花费的时间付费:

Werner would like this approach to serverless engineering

开发者开始意识到我们这些无服务器的孩子是在从事编写胶水的工作,但是这种设计仍然不常见。这部分是因为回到无服务器之前的“旧世界”,让三个独立的应用程序做如此琐碎的事情是一种讽刺,尤其是当我们已经为 CPU 付费的时候。但是当我们为时间付费时,运行更多的功能并不是我们的问题。它的可扩展性也更强。

第二种选择是 AWS 步骤函数,它选择状态管理或控制器任务的角色。这是一个非常好的服务,可以解决整个问题,你应该用它做任何事情——除了它非常昂贵。虽然每 1,000 次状态转换 0.025 美元听起来不多,但如果您有更复杂的工作流,它会很快增加。

Step 函数对于像订单管理这样的长期工作流来说非常棒,但是对于管理一些短期的步骤来在 AWS 中移动数据来说,通常是多余的。实际上,费用让我敬而远之,但是当他们提供免费服务的时候(#awswishlist!),无服务器状态管理将变得轻而易举。

良好的异步:事件源中有多条记录

当 Lambda 给你一个事件源时,你通常会得到一个事件记录,但并不总是这样。如果对记录进行顺序迭代,这会对 Lambda 函数的持续时间产生惊人的影响。

幸运的是,在 Node 中并行处理这些记录并不重要。在本例中,我们的 processRecord 函数将计时器设置为 1 秒,测试事件中有 3 条记录,但总的执行时间只有 1048 毫秒,而不是 3000 毫秒:

为什么?processRecord 函数(几乎)同时为每个记录和 Promise.all 调用,等待所有承诺被解析,有效地允许您并行运行所有请求。在实践中,你必须对被拒绝的承诺做出解释。

当然,在某些情况下,您可能无法并行运行这些程序,但是如果可以的话,这样可以节省大量时间。好的异步创建了 win,而 Promise.all / Records.map 方法是这个问题的简单答案。

查看这篇文章,了解如何配置 Lambda 函数来扩展负载测试操作,使其成为管理实例群的一种经济有效的替代方法。

良好的异步:多个并发任务

如果您的函数在执行前必须检查许多事情,那么值得看看是否有任何事情可以并发运行,或者您的代码是否按预期运行。例如,我的交易功能 allowedToTrade 检查受限股票列表、用户的账户余额,如果市场开放,则在批准或拒绝之前:

My code looks like this:

我执行我的交易……错过了市场。在这个函数中,它一次按顺序执行一个检查,这样可以快得多。每项任务都是独立的,并且可以并发执行,因此稍作更改,它就会运行得更快:

针对时间进行优化

  • 在无服务器中,时间就是金钱——我们应该优化使用的时间,而不是创建的函数的数量。目标是避免等待,避免 Lambda 无所事事时付费。
  • NodeJS 中的 Async 很简单——只需几行节点就可以从流程图转移到代码,async/await 关键字消除了回调问题。
  • 错误的异步创建等待 AWS 服务执行某些操作的控制器函数。当你在 AWS 上等待的时候,你可以经常使用事件或者步骤函数来找到一个更好(也更便宜)的方法。
  • 好的异步可以通过在有意义的地方并行执行来大大缩短执行时间。常见的例子包括多个事件记录和多个并发任务。

获得更好职业所需的技能。

掌握现代技术技能,获得认证,提升您的职业生涯。无论您是新手还是经验丰富的专业人士,您都可以通过实践来学习,并在 ACG 的帮助下推进您的云计算职业生涯。


云计算中的可扩展性是什么?

原文:https://acloudguru.com/blog/engineering/scalability-cloud-computing

也许你在电视节目《硅谷》中听到过这句话,或者你从一个想要投资一家公司的严肃的风险投资人那里听到过这句话。不管怎样,你可能听说过这样一个问题:它有伸缩性吗?抛开所有玩笑不谈,可伸缩性不仅是解决方案架构师的一个关键概念,也是 DevOps 世界中任何人的一个关键概念,是云支持计划的关键。因此,让我们来谈一谈云计算中可伸缩性的概念。

什么是可伸缩性?

可伸缩性指的是这样一种系统,其中每个应用程序或基础设施都可以扩展以处理增加的负载。例如,假设您的 web 应用程序出现在 ProductHunt 这样的流行网站上。突然间,成千上万的访问者在使用你的应用程序——你的基础设施能处理流量吗?拥有一个可伸缩的 web 应用程序可以确保它能够向上扩展以处理负载而不会崩溃。崩溃的(甚至是缓慢的)页面会让你的用户不高兴,让你的应用名声不好。系统有四个可伸缩性适用的一般领域:

  1. 磁盘输入输出
  2. 记忆
  3. 网络输入输出
  4. 中央处理器

当谈到云计算的可扩展性时,您经常会听到两种主要的扩展方式——水平或垂直。让我们更深入地研究这些术语。

垂直缩放

垂直通常被认为是两种方法中“更容易”的一种。当垂直扩展系统时,会给现有实例增加更多功能。这意味着更多的内存(RAM)、更快的存储(如固态硬盘)或更强大的处理器(CPU)。之所以认为这是更容易的选择,是因为在 AWS 这样的云平台上升级硬件通常很简单,因为服务器已经虚拟化了。在软件层面上,您只需要做很少(如果有的话)的额外配置。

水平缩放

水平缩放稍微复杂一些。当水平扩展系统时,通常会添加更多的服务器来将负载分散到多台机器上。然而,这也增加了系统的复杂性。您现在拥有多台服务器,需要执行更新、安全和监控等常规管理任务,但您现在还必须跨多个实例同步您的应用程序、数据和备份。

那么哪个更好呢?

水平扩展通常被认为是长期优势,而垂直扩展通常被认为是短期优势。这是因为您通常可以根据需要向基础架构中添加任意数量的服务器,但是在某些时候,硬件升级是不可行的。

表演

扩展系统的主要原因之一是提高性能。然而这只是性能的一个方面——伸缩性与许多其他概念相关,如弹性和容错。

响应时间

系统的性能由许多不同的指标来衡量,其中一个主要指标是响应时间。有趣的是,扩展系统可能会增加响应时间。如果您从将所有组件(数据库、应用程序代码、缓存)都放在一台服务器上的系统架构类型转移到将这些组件分散到各自的服务器上的系统架构类型,那么响应时间自然会增加,因为您现在有网络延迟和其他考虑因素。下面我们来看看两种流行的系统架构类型。

庞然大物

整体系统架构是将许多组件放在一个地方的想法。当谈到一个应用程序时,这可能意味着您将所有的服务耦合在一起,如数据层、缓存层、文件层和业务逻辑。当谈到硬件和服务器时,它可能意味着您在一个地方运行所有的进程,例如您的数据库、web 服务器和文件系统。

微服务

微服务系统架构是将核心服务拆分成它们自己的生态系统的过程。应用程序的一个关键部分可能是图像处理服务,它可以保存、删除、缓存和操作图像。该服务可以建立为自己的基础设施,这意味着它将与其他应用程序服务分开。提到微服务时,您会经常听到术语关注点分离。虽然每个核心服务都有自己的基础设施,可以使可伸缩性更容易,但仍然会给应用程序增加很多复杂性。您现在必须管理多台服务器,而且还要更改您的应用程序代码来处理这些更改。

可扩展性和数据库

每个应用程序都是不同的,但关键是要识别可能成为瓶颈的关键服务,以及在增加的负载压力下最先瘫痪的服务。最常见的瓶颈之一可能是数据库。数据库用于在应用程序中存储数据。您可以使用传统的关系数据库(如 MySQL)或 NoSQL 数据库(如 MongoDB)。简单来说,数据库就是用来写数据(保存)和读数据(查看)的。在应用程序环境中,数据库通常是在高负载压力下最先崩溃的组件之一。

分片

为了可伸缩性而共享数据库就是将数据分割到不同的数据库服务器中。您可以将数据分割成“碎片”,而不是将所有数据放在一个数据库服务器上。这在几个方面有助于提高性能:

  • 数据请求在多个服务器上共享,而不是每次都在同一个数据库服务器上共享
  • 每个碎片上的数据越少,索引大小就越小,从而可以缩短数据查找时间
  • 每个碎片上的数据越少,意味着数据行越少,这可以让查询运行得更快,因为需要遍历或计算的数据越少

分割

数据库分区类似于数据库分片,但并不完全相同。数据库分区将数据分成不同的部分。某些分区方法包括:

  • 按范围拆分数据(按字母顺序或数字顺序)
  • 行方式(水平分区)
  • 列方式(垂直分区)

应用程序代码数据库优化

您还可以执行应用程序级数据库优化,例如:

  • 使用数据库索引
  • 表分区
  • 缓存数据库查询
  • 去规范化
  • 离线运行大型查询/批量查询

可扩展性优势

可扩展架构的主要优势是性能和处理突发流量或重负载的能力,而无需注意。一个可扩展的系统可以帮助您的应用程序或在线业务在高峰时段保持运行,而不会导致您的资金损失或声誉受损。将您的系统设置到微服务系统架构等服务中,可以更轻松地进行监控、功能更新、调试和扩展。

可扩展性警告

可伸缩性确实有其局限性;这当然不是什么灵丹妙药。创建一个完全可扩展的系统和基础设施是一项艰巨的任务,需要规划、测试和更多的测试。如果您已经有了一个应用程序,拆分该系统可能是一个繁琐的过程,可能需要代码更改、软件更新和更多的监控。

AWS 上的可伸缩性

Amazon Web Services 作为一个平台具有内置的可伸缩性。他们提供了许多服务,可以帮助您根据资源需求来调整应用程序的规模。AWS 产品之一的弹性负载平衡器会根据您的应用程序接收的流量按需自动扩展。它还与后端服务(如 EC2 实例)上的自动扩展相集成,以提供完整的端到端扩展层来处理不同级别的流量。

回顾

使用云的公司不会永远一成不变。他们使用云来帮助他们拓展业务。为了尽可能有效,可伸缩性是有抱负的解决方案架构师需要理解的核心概念之一。这是一个总结!在这篇文章中,你已经了解了可伸缩性,它如何影响系统和应用程序,它的好处和警告,优化你的数据库的可伸缩性,以及可伸缩性如何与 Amazon Web Services 一起使用。

在 AWS 和 Kubernetes 上扩展最热门的技术应用

原文:https://acloudguru.com/blog/engineering/scaling-the-hottest-app-in-tech-on-aws-and-kubernetes

与 Blake Stoddard,老 SRE 在 Basecamp / HEY 的云对话。为了清晰起见,这篇采访经过了编辑和压缩。

云发光时发出嘿的声音

Forrest Brazeal:在过去的几周里,Basecamp 的新电子邮件应用 HEY 席卷了整个科技界。也有很多关于“HEYstack”的讨论——你的云基础设施运行在 AWS 和 Kubernetes 上。既然 Basecamp 以选择“无聊的技术”而闻名,是什么让你考虑在云中运行你最新的应用?

DmBabl0G_400x400 布雷克·斯托达德:Basecamp 过去一直在内部数据中心托管我们的 SaaS 软件,但几年前我们决定尝试在云上运行我们的一些工作负载。

我们知道我们希望使用容器来更好地协调我们的基础架构部署,因此我们在 2016 年开始使用 AWS ECS。2018 年,当我们重新评估我们如何管理容器编排时,Kubernetes 是我们的选择。

我们给了谷歌 Kubernetes Engine ( GKE )一次机会——因为他们很自然地想到了管理的 Kubernetes——但我们在那里遇到了一些问题,最终决定在 2019 年初离开 GCP。

因为我们已经从最初的 ECS 迁移中获得了 AWS 中的一些其他资源,所以给 EKS 一个机会似乎是很自然的。自该产品于 2017 年首次发布以来,AWS 团队在解决我们与 EKS 之间的各种问题方面取得了很大进展。

快进到今天,他们主要依靠 AWS 托管服务——EKS 有许多 spot 实例,但也有 Aurora MySQL、Elasticache Redis 和 AWS 的托管 Elasticsearch。

等等,你真的把 Kubernetes 的工作负载从 GCP 迁移到了 AWS?这是“多云”架构带来回报的罕见用例吗?

[笑]我想是的。我们非常重视可移植性,所以我们想知道,如果有必要,我们可以在云(和本地)之间迁移工作负载

不过,我们对此很务实。Basecamp 第一次尝试 AWS 上的容器是通过 ECS,我们仍然为多个生产工作负载运行 ECS。但是我们发现我们的部署、监控和日志记录首选项在 EKS 上比在 ECS 上工作得更好。

我们还发现 Kubernetes 不像 ECS 那样是一个黑箱。在我们使用 ECS 的几年中,我们仍然偶尔会遇到任务无法启动等问题。然后你花几分钟时间在用户界面上摸索,试图弄清楚发生了什么,为什么 X 不启动,为什么 Y 被挂起。即便如此,你实际上能做些什么来干预的选择也很少。

有了 Kubernetes,我们可以更深入地了解事情是如何安排的,当事情出错时会发生什么,以及通过强大的 CLI(在我前面提到的部署首选项之上)检查正在发生什么的增强能力。

然而,你使用的是托管 EKS,而不是在 EC2 实例上托管 Kubernetes。如何在可移植性和减轻管理负担之间划清界限?

不能保证我们会永远待在 EKS。但是 EKS 作为服务管理一些低级的东西,比如 K8s masters,我们根本不想处理。我的意思是,EKS 控制飞机的费用是每小时 10 美分,也就是说,每个集群每年 820 美元。与工程师的时间相比,这相当便宜,即使考虑到我们运行的集群数量。

如果我们能支付费用进行管理,这样我们就能把时间集中在对公司有更高价值的工程工作上,我们会整天都做这笔交易。

Basecamp 的创始人兼首席技术官 David Heinemeier Hansson 表示他“从未像过去两周这样开心地待在云上”公共云如何帮助您处理意外流行的新服务的流量?

如果没有公共云,我们就无法满足对 HEY 的需求。我的意思是,我们计划在几个月内拥有 50,000 名活跃用户,但我们在两周内就超过了这个数字。

在传统的数据中心世界中,没有好的方法来跟上这种急剧增长的步伐。您要么预先为大规模过度配置付费,要么一直忙于安装和堆叠新硬件。

相反,AWS 让我们可以在需要时增加新的计算能力。这对于测试来说也很棒——在公开发布 HEY 之前,我们根据几个月来对该产品的内部使用模型对该应用进行了负载测试。云是这方面的完美选择——它让应用程序尝试不同的计算和数据库规模变得超级简单。

最后,根据需求,扩展比我预期的要顺利得多。我们已经做了足够的测试,知道基础设施是可靠的。这只是水平扩展我们的集群来处理前端和后端负载的问题。

随着您的发展,云成本正在成为您的痛点吗?

实际上,我的办公室里挂着一顶写着“云计算沙皇”的帽子,因为我花了很多时间处理这个问题。从原始基础设施成本的角度来看,我们可以更便宜地在内部运行我们的工作负载。我们走向云是为了创造更多的价值,而不是为了少花钱。

但是我在关注一些事情。我们运行大约 90%的现场实例混合,这降低了我们的计算成本。数据传输总是一个大项目。如果你相信的话,我们从 S3 向互联网传输数据的费用比我们所有的 EC2 计算都要高。

另一个问题是:有些服务会在你最意想不到的时候产生账单,比如 CloudWatch 日志。它很容易与 EKS 融合!只需一键点击!然后你看着你的账单,想着“每天多出来的 50-60 美元是从哪里来的?”

根据你现在对 HEY 如何扩展的了解,如果你可以从头开始重新设计这款应用,你会做出任何不同的架构选择吗?

当我为 HEY 设计基础设施时,我首先想到了两个错误。我们使用 Terraform,我编写了一个新模块来管理我们的 VPC,以取代我们在 2016 年编写的模块。

第一个错误:我没有处理 IPv6 子网,现在它回来咬我(随着本地 IPv6 支持即将来到 EKS,到那时解决这个问题就好了)。

第二个错误是我计划了静态数量的可用区域。原来不是每个 AWS 地区都有 4 个 az——us-east-1 和 us-west-2 有,但 us-east-2 没有!

那么,他们现在正在多个地区运营?

是的,它目前在美国东部-1 和美国西部-2。我们希望很快转向真正的主动-主动部署,在区域之间进行基于延迟的路由。实际上,我们已经在生产环境中运行了几次,但是对于需要写入的请求,要获得 80 毫秒的主区域延迟,同时确保没有过时的读取,这是很棘手的。

同样,我们已经花了很多时间考虑分片和数据局部性。我很想让数据更接近最终用户,但这真的是白日做梦。我们在俄罗斯有客户,尽管我们这边很快就能呈现他们的请求,但往返旅行让一切都感觉慢了一些。

我更喜欢 GCP 的全局负载平衡器,你可以跨多个活动区域进行任播。既然我们在 AWS,我们就把全球加速器视为通往那里的道路。我们希望这将有助于加快我们的出站流量,因为数据在到达公共互联网之前会在 AWS 网络上停留很长时间,但使用它会有很高的额外成本,不能保证它确实填补了我们正在寻找的空白。

对于那些想在 AWS 上实现“HEYstack”的人,最后有什么至理名言要分享吗?

请密切关注您的数据库模式!我们非常依赖关系数据库,构建模式会产生可怕的级联效应。

第二,尽可能多的缓存。嘿渲染了很多电子邮件,我们已经让它变得很快,但在规模上它是计算密集型的。

我想你刚刚列出了计算机科学中最难的两个问题,命名事物和缓存失效。一个接一个的失误是另一个最困难的问题…还有一件事吗?

你不应该仅仅因为某项技术是流行的,就选择它并将其集成到你的堆栈中。10 年前,我们并没有因为云很酷就跳入云中,感觉我们采用 Kubernetes 相对较晚,我们没有使用服务网格。我们已经让这些技术成熟,现在我们正在获得真正的价值。

我们的故事(和很多其他的一样!)表明,您不必越过最前沿就能获得云的好处。

我如何在 AWS 上把我的静态网站扩展到全球市场

原文:https://acloudguru.com/blog/engineering/scaling-your-static-site-to-a-global-market-for-a-fraction-of-the-cost-on-aws

在过去的几年里,我一直在建立一个网站来托管免费编程教程。这个网站始于 2014 年,是一个充满激情的项目,代表了数千小时的鲜血、汗水和泪水——这是我的骄傲和快乐。

现在,我意识到它并不完美——但它是免费的,并为我提供了一个磨练自己技能的机会,同时鼓励其他人学习编程。我的激情项目已经变成了一个成功的、不断成长的副业项目,需要在不花费我一大笔钱的情况下扩大规模。

一开始——有一个服务器

该网站起源于 2014 年,当时只是一些反映我兴趣的游戏开发教程。截至 2016 年 1 月,该网站每天的用户总数达到了 150-200 人。

这些年来,这种流量持续增长,对我的服务器的需求也持续增加。额外的流量需要升级我的 Linode 服务器实例——这允许基于 Laravel 的网站继续运行,而不会在短期内崩溃。

在花了很长时间在 Laravel 中构建我的网站,并尝试确定哪些有效之后,我最终迁移到 Hugo——一个不需要 PHP 或花哨框架的静态网站构建器。

当时,迁移到 Hugo 在一定程度上提高了网站的速度。它还降低了服务器成本,因为我不再依赖 MySQL 数据库来托管内容。我最后还喝了 AWS kool-aid,并把我的站点迁移到了 T2 微实例上。

该站点的架构图如下所示:

有一段时间,一切都很平静。

我的构建管道已经排序。我在写新的内容,并试图改善网站。交通越来越拥挤。那是一个和平的时代。

挑战—表演

过了一会儿,我开始注意到网站开始变慢。网站性能开始明显下降,我隐约知道为什么会这样。

当使用流行的网站速度测试工具 Pingdom 时,在高峰使用时间,我看到在所有其他请求开始解决之前,平均有大约0.8 秒的大量等待时间。最终加载时间大约为 1.5-2.5 秒。

注意在这个例子中,在 DNS 解析之后,第二个请求有很长的等待时间。这些指标是在流量相当少的时期获得的,但是它提供了一些关于性能下降的见解。

计划——考虑我的选择

展望未来,我认为有两种选择:

  1. 启动一个负载平衡器和一个自动扩展组,并将我的应用程序部署到所需的任意数量的 T2 实例中。
  2. 随着云锋从 T2 迁移到 S3。

第一个选择非常吸引我。我最近一直在学习 Terraform 和创建有弹性的 Go APIs,并且已经将我的站点配置为使用 LetsEncrypt 来处理 HTTPS 流量。

然而,这种选择并不便宜。这种方法意味着成本增加,CPU 容量闲置,需要更多的管理。随着我使用更多的服务和构建更多的教程,我的 AWS 发票每个月都在攀升——所以我担心会给我的账单增加更多的实例。

第二个选择是我认为风险要大得多的。我必须找到一种方法,使用 CloudFront 和 Route53 在前端管理流量,将我的 live 站点从 T2 实例迁移到 S3 的 bucket。

我是所有东西都被加密的忠实拥护者,所以网站继续通过 HTTPS 服务是一个硬性要求。幸运的是,这可以通过使用 Amazon 的 ACM 服务并使用电子邮件验证请求证书来轻松实现。

ACM 现在允许您将 Amazon 发布的 SSL 证书部署到您的弹性负载平衡器或 CloudFront 发行版。查看这篇关于 AWS 证书管理器的帖子。

决定—迁移到 S3 的静态站点

迁移我的站点的第一个目的地是 CI/CD 管道。TravisCI 非常简单,如下所示:

language: python
install:
  - wget https://github.com/gohugoio/hugo/releases/download/v0.34/hugo_0.34_Linux-64bit.deb
  - sudo dpkg -i hugo*.deb
script:
  - hugo --buildDrafts
  - cp -r scripts public/
deploy:
  provider: s3
  ... all my S3 creds

每当有人提交到我的回购主分支,这就启动了一个构建,并上传到我的生产 S3 桶。

一旦 CI/CD 管道就绪,我就完成了一个简单的更改,并确保 bucket 的配置是正确的。

瞧啊。—我要提供的静态文件都在那里,随时可以使用。

在我对我的 CloudFlare 配置和 Route 53 设置的其余部分有信心之后,我将我的站点的名称服务器迁移到 Amazon 的。24 小时后,我准备就绪,并成功完成了迁移。我现在可以退役原来的 T2.micro 实例了。

在配置 CloudFront 发行版时,我选择从所有可能的边缘位置对我的站点进行缓存和服务。

这意味着,每当有人从澳大利亚来请求我的网站时,将首先在边缘位置进行缓存查找——如果缓存命中,网站的加载时间将会非常短。否则,将从原始 S3 存储桶提供服务,并为任何后续请求进行缓存。

Map of AWS Edge locations

The map of all of AWS’ Edge locations

虽然这个选项花费更多,但是性能的提高绝对是值得的,而且总成本仍然远远低于我以前每月的花费。

特别感谢艾伦·里德,他帮助我完成了 S3、云锋和 53 号公路的配置

结果—更快、更便宜、更好!

迁移到 AWS 静态网站完成后,结果令人震惊。我已经把我的加载时间从大约 1.5 秒-2.5 秒降到了一个的 234 毫秒,正如下面的截图所强调的。这是一个疯狂的性能提升。

看看这些请求时间,现在最大比例的时间花在 DNS 解析上,即使这样也不过 0.1 秒多一点。

We are no longer in Wait hell!

根据 Pingdom 的数据,我的网站现在比其他所有测试过的网站快 99%。正如你所看到的,还有一些我可以改进的地方!

但这次迁移最令人震惊的是,它不仅极大地提高了我的站点的性能,还提高了弹性,因为我不再依赖单个 T2 实例来维持我的运行。

从经济角度来看,托管网站的成本已经从大约每月 20 美元降低到大约每月 7 美元:

  • Route53 约为 0.50 美元/月
  • CloudFront 大约是 6.50 美元/月
  • 一小部分花费在 S3 桶存储上

这是一个令人难以置信的节省,让我放心。如果有一天我的网站流量激增,我的网站会有弹性,而且不会花我一大笔钱。

结论

在尝试了许多部署和托管静态站点的不同方法之后,这无疑是最好的方法之一。

这是性能和成本的完美结合。这种简单性使它成为每个希望托管自己的站点的人的一个容易获得的选择,这些站点具有巨大的弹性和高度的可伸缩性。


获得更好职业所需的技能。

掌握现代技术技能,获得认证,提升您的职业生涯。无论您是新手还是经验丰富的专业人士,您都可以通过实践来学习,并在 ACG 的帮助下推进您的云计算职业生涯。


大家好!欢迎来到我的频道,TutorialEdge!这是我发布所有视频教程的地方——youtube.com

希望你发现这个激动人心的动荡和胜利的故事很有趣!如果你想支持我,请随时查看我的 YouTube 频道或在 LinkedIn 上加我。

使用 Lambda、Python 和 Boto3 安排 Amazon DynamoDB 备份

原文:https://acloudguru.com/blog/engineering/scheduling-amazon-dynamodb-backups-with-lambda-python-and-boto3

假设您想每天备份一个 DynamoDB 表。我们还希望将备份保留一段指定的时间。实现这一点的一个简单方法是使用 Amazon CloudWatch 事件规则每天触发一个 AWS Lambda 函数。在这个 AWS 动手实验中,您将使用 Boto3 库用 Python 编写一个 Lambda 函数。设置它需要配置一个 IAM 角色,设置一个 CloudWatch 规则,并创建一个 Lambda 函数。

创建 DynamoDB 表

在本练习中,您当然可以使用您帐户中的任何 DynamoDB 表,但是如果您想使用 AWS CLI 创建一个表,您可以使用以下命令:

aws dynamodb create-table --table-name Person  --attribute-definitions AttributeName=id,AttributeType=N  --key-schema AttributeName=id,KeyType=HASH  --billing-mode=PAY_PER_REQUEST

这将创建一个名为 Person 的 DynamoDB 表,主键为 id

创建 IAM 执行角色

所有 Lambda 函数都需要一个 IAM 角色来定义授予它的权限。这被称为 Lambda 函数的**执行角色。**首先,我们将浏览为 Lambda 函数创作 IAM 角色和创建 Lambda 函数本身的过程。我们将使用 AWS 管理控制台来完成这项任务:

  1. 导航至 IAM
  2. 导航到策略
  3. 点击创建策略。
  4. 选择 JSON 选项卡。
  5. 用以下 JSON 语句替换默认内容:
{   "Version":"2012-10-17",   "Statement":[      {         "Effect":"Allow",         "Action":[            "logs:CreateLogGroup",            "logs:CreateLogStream",            "logs:PutLogEvents"         ],         "Resource":"arn:aws:logs:*:*:*"      },      {         "Action":[            "dynamodb:CreateBackup",            "dynamodb:DeleteBackup",            "dynamodb:ListBackups"         ],         "Effect":"Allow",         "Resource":"*"      }   ]}

该语句授予两组权限。首先,它授予了记录到 CloudWatch 日志的能力。有了这个权限,任何 Python print()语句都会显示在 CloudWatch 日志中。其次,我们授予 Lambda 函数在所有表上创建、列出和删除 DynamoDB 备份的权限。

  1. 点击审核政策。
  2. 将这个策略命名为LambdaBackupDynamoDBPolicy
  3. 点击创建策略。

既然已经创建了策略,您必须创建一个附加了该策略的角色。

  1. 在 IAM 中,导航到角色
  2. 点击创建角色
  3. 选择可信实体的类型: AWS 服务
  4. 选择将使用此角色的服务: Lambda
  5. 点击下一步:权限
  6. 在搜索框中,找到上一步中创建的LambdaBackupDynamoDBPolicy
  7. 选中策略名称旁边的复选框。
  8. 点击下一步:标签
  9. 点击下一步:复习
  10. 角色名称: LambdaBackupDynamoDBRole
  11. 点击创建角色

创建 Lambda 函数

让我们创建我们的 Lambda 函数!

  1. 导航至λ
  2. 点击创建功能
  3. 从头开始选择作者。
  4. 函数名: BackupDynamoDB
  5. 运行时: Python 3.7
  6. 权限下,选择选择或创建一个执行角色
  7. 执行角色下,选择使用现有角色
  8. 现有角色下,选择上一步创建的 LambdaBackupDynamoDBRole
  9. 点击创建功能

将下面的源代码粘贴到 Lambda 函数的代码编辑器中:点击屏幕右上角的保存

创建云观察器规则

接下来,我们将创建一个 CloudWatch 规则来安排 Lambda 函数定期运行。这将执行 DynamoDB 表的备份,并删除过时的备份。

  1. 导航到云观察

  2. 导航到事件 > 规则

  3. 点击创建规则

  4. 安排事件以所需的时间间隔运行(例如,每 1 天一次)。

  5. 点击添加目标

  6. λ函数下,选择 BackupDynamoDB

  7. 配置下输入 选择常量(JSON 文本)

  8. 将值设置为 JSON 语句:

    {"TableName": "Person"}
    
  9. 点击配置详细信息

  10. 名称: BackupDynamoDBDaily (或者你喜欢的任何名字)。

  11. 点击创建规则

  12. 等待 CloudWatch 规则触发您计划的下一个备份作业。如果你和我一样没有耐心,你可以把调度间隔设置为 1 分钟,你会看到它运行得更快。

  13. 使用 CloudWatch 日志验证计划的备份作业是否已运行。日志组将被命名为/aws/lambda/BackupDynamoDB,每次调用都有一个流。

  14. 验证备份文件是否存在于 DynamoDB 备份列表中。

想了解更多?

我希望你会发现这种技术对你自己的工作有用。如果你想学习更多有用的 AWS 自动化技术,可以看看我的新课程 用 Lambda、Python 和 Boto3 实现 AWS 自动化。

ACG 自己的 SCOTT PLETCHER 赢得了 AWS DEEPRACER CHICAGO

原文:https://acloudguru.com/blog/engineering/scott-pletcher-wins-aws-deepracer-chicago

部署 Terraform Pipeline,将策略作为代码来保护您的多云

原文:https://acloudguru.com/blog/engineering/securing-your-multi-cloud-terraform-pipelines-with-policy-as-code

多年来,我们的许多组织都依赖政策、程序和工作说明来实现云合规性和最大限度的保证。已经建立了审查委员会、变更委员会和类似的团队来审查和批准提议的变更,管理内部治理标准,并审核对 it 基础架构所做的变更。

在自动化、扫描和协作工具普及之前,变更审查流程是手动的,可能需要大量的时间投入。现在的结果之一是,在请求(提议)变更和实施变更之间可能会有长时间的延迟。

尽管这种方法太常见了,但它很少能带来“云规模”的敏捷性或响应能力。结果就是我亲切地称之为“糟糕”是的,这些控制增加了我们的安全姿态,但这种体验很糟糕。

如何保护您的云基础架构?

今天,我们有过多的工具和平台。这些工具包括从开源到完全支持的商业 SaaS 应用程序。我们还需要管理各种各样的基础架构平台,包括公共云、私有云以及传统的内部基础架构(在云环境中,我应该称之为“传统基础架构”吗?).在这些系统中,您有传统的裸机系统、虚拟机、容器、无服务器等。每种“风格”都有各种可用的编排和管理平台。

许多组织结合了不同的技术,有效地采用了最佳方法,例如:

  • 公共云(多个提供商)
  • 私有云
  • 传统内部部署(利用虚拟化和非虚拟化基础架构,有时使用多个虚拟机管理程序)

这并不是说以上是不好的,只是有很多不一致和移动的部分。同类最佳有很多优势,但缺点之一是它会导致更高的复杂性。仅仅是将不同的平台集成在一起,使它们能够有效地相互交流就可能是一个挑战。然后查看所有操作复杂性(修补、漏洞管理等。),很明显,我们需要比更统一、更标准化的方法更多的技能。

同样,同类最佳可以为组织提供最大的价值,但组织必须权衡与之相关的成本。成本不仅仅围绕许可、硬件和供应商维护协议,还包括运营需求和效率。

这个问题的任何解决方案都需要支持各种各样的平台。它应该是可扩展的,并支持大量的集成。为了避免重复发明轮子,让我们检查一下我们过去是如何做事的。也许我们可以为今天重新使用(或改编)过去曾经有效的东西。

快速提醒:我应该提到我在甲骨文公司工作。我在开发人员关系团队中领导开发人员的工作。因此,我将在这里使用一些 Oracle 云基础设施(OCI)术语。这些原则很大程度上是可移植的,如果你和不同的云提供商合作过,这些原则可能会很直观(如果不熟悉的话)。为 OCI 插上一个响亮的插头,如果你还没有试过,你应该试试。立即注册获得一个永远免费的甲骨文云账户!

追根溯源…

让我们沿着记忆之路再走一趟。这是有道理的,忍耐一下!我们的 IT 基础架构过去主要由交换机、路由器、防火墙、服务器和存储组成。尽管事情变得更简单了(无论如何,在某些方面),我们仍然有和今天一样的担忧。我们如何阻止不良/未经授权的用户?我们如何让好的/授权的用户进来?即使他们是授权用户,我们如何确保他们只能访问和/或更改他们需要(应该)更改的内容?

多年来,我们用 AAA 保护我们重要的基础设施(路由器、交换机和防火墙)。AAA 代表**认证、授权和责任。**当然,这也有许多不同的变体(使用不同的名称或术语),但不管供应商是谁,基本方面都是基本相同的。

认证主要是确认你就是你所说的那个人。授权确保你只能做你被授权做的事情。责任与记录和审查审计日志有关,记录(和查看)谁在何时何地做了什么。

在过去的几年中,RADIUS 和 TACACS+等协议一直用于设备和管理系统(RADIUS 或 TACACS+服务器)之间的通信。许多现代系统(尤其是云平台)可能不支持 RADIUS 或 TACACS+,但我们可以从过去汲取相似之处和概念,并将其应用于现在(和未来)。

认证 RADIUS/TACACS+,已加入 Active Directory 或其他 LDAP 目录。 IAM,与 IdM/国内流离失所者联盟
授权 RADIUS/TACACS+,配置的角色/配置文件规定了可以/不可以做什么。 IAM 策略
问责 RADIUS/TACACS+和设备日志转发到 SIEM/SIMS 审计日志

哇,看看上面的对比,可能感觉我们的工作完成了。让我们确保我们联合起来,拥有正确的 IAM 策略,并且我们在现代云世界中蓄势待发。让我们拍拍自己的背吧!没那么快…

我怎么了?

我真的没什么问题。但是,我们需要认识到,IAM 不是一个放之四海而皆准的解决方案。看看下面的场景,看看 IAM 的不足之处:

| 场景 | IAM 控件? |
| 用户 A 希望在虚拟云网络(VCN)中创建新的子网。 | 是 |
| 应该只允许用户 A 在 VCN 创建私有子网。 | 不 |
| 用户 A 希望在其子网中创建新的计算实例。 | 是 |
| 用户 A 应该仅对任何计算实例使用白名单中的计算映像。 | 不 |

上面的列表只是云中可能发生的事情的一小部分。虽然这不是一个详尽的列表,但是很容易看出,对于我们的问题,IAM 并不是一个完美的解决方案。

IAM 关注的是你在云平台上能做/不能做的“大块”。它不关心积木的颜色,或者积木上可能有什么样的装饰等等。对于云,IAM 通常不关心详细的属性。IAM 非常适合为云管理的不同方面配置不同的角色。例如,您可以轻松创建一个网络角色,授予该角色管理子网、路由表、安全列表和虚拟云网络(vcn)的能力。 IAM 不允许您基于更具体的属性来控制访问,例如资源的名称、允许的(或列入黑名单的)路由目标(对于路由表规则)、允许的 CIDRs(在安全列表中配置)等。

AWS IAM vs GCP IAM vs Azure IAM

IAM confused? Our new deep dive breaks down the differences between AWS, GCP, and Azure’s flavors of IAM.

但这正是其他云安全服务的目的!

在某种程度上,的确如此。许多云提供商提供的安全服务不仅仅是简单的 IAM。OCI 也不例外,安全区只是 OCI 的一项服务,有助于减轻上述风险和担忧。如果每个人都只使用 OCI(多么伟大的想法!),本文可以到此为止。但是,在一个有多个云提供商的世界里,我们该怎么做呢?虽然 IAM 在云提供商之间很大程度上是相似的,但是提供我们需要的额外的详细授权级别的附加安全服务在不同的平台之间会有很大的不同。云服务就像云提供商一样广泛多样。

我们可以利用每个云提供商的安全服务来帮助支撑我们的安全态势。这当然是一个理想的最终状态。这里的部分挑战是不同云提供商之间缺乏功能对等。根据功能的不同,我们可能会也可能不会保证每个环境都在我们设定的范围内。即使在所有正在使用的云平台上都存在全功能对等的情况下,每个不同的云平台都需要专业知识来实现这一理想的最终状态。这意味着实现这一目标需要人员、时间和金钱(假设每个云平台都有足够的原生功能)。

我们应该利用 OCI(和任何其他云平台)内可用的所有内置本机安全功能,但是,在多云环境中,这可能是一座需要一次攀登的陡峭山峰。这就是采用爬-走-跑方法的好处。要在一个多云世界中启动一个更强大的安全态势,需要…

什么是作为代码的策略(PaC)?

策略即代码(PaC) 是一种定义不同角色工作边界的方法。这些边界可以表示为允许列表(仅允许特定的属性/值)、阻止列表(允许除特定的值/属性集之外的所有内容)或其任意组合。

PaC 通常最好与基础设施即代码(IaC)一起使用。这是因为 IaC 已经给出了如何以编程(通常是声明性的)方式与我们的基础设施交互的定义。PaC 可以读取代码并评估它是否符合给定策略,从而决定它是否符合策略。

与 IaC 紧密集成是一件好事,因为我们大多数人已经在用代码(比如 HashiCorp Terraform)管理我们的环境。只要对“我应该使用 IaC 吗?”给出一个笼统的“是”回答就足够了问题通常是正确的答案。

这么多选择…

有许多 PaC 解决方案可供选择,因为有许多 IaC 平台可供选择。一个值得强调的 PaC 解决方案是开放策略代理(OPA) ,它是 CNCF(开源)的一部分,适用于许多用例。HashiCorp Terraform 很容易利用 OPA,使其对许多组织具有即时价值(因为 Terraform 被广泛使用)。在为您的组织选择一个 PaC 解决方案之前,值得花时间评估您的选择。

从我们现在的地方开始

Terraform Cheatsheet

No need to run in terror from Terraform. Download our Ultimate Terraform Cheatsheet for a handy guide to helpful syntax.

在组织中,要么在他们的管道中没有控制,要么依赖于提交代码的人工审查/批准,这种情况太普遍了。看看一个使用 HashiCorp Terraform 的组织,这两种情况中有一种是典型的。没有任何控制的简单地形管道:

当 Terraform 代码提交给 Git repo 时(或者更具体地说,当提交拉/合并请求时),它会触发管道运行。请注意,实际上没有验证(除了每个云的 IAM 支持的以外)?地形图的输出作为管道运行日志的一部分被捕获,这确实给了我们一点关于环境变化的背景。然而,这确实需要手动审查,而不是预防性控制(更像是审计控制)。

下图显示了一个简单的管道,在该管道中可以手动检查更改:

至少在这种情况下,有某种手动控制,但这通常会导致糟糕的结果(缓慢、糟糕的用户体验,并且容易出错)。

这两种选择都不理想。让我们看看如何用 PaC 来改进这一点。

PaC 可能是什么

以下是我们可能想要努力的方向:

这里的主要区别是增加了 *Compliant?*管道中的决策点。这是一个过于简化/高层次的观点,但是它允许我们验证用户提交的代码,并确保它符合我们的组织标准。如果它不在我们的标准之内,用户将被警告(自动管道抛出一个或多个错误),并有机会更新他们的代码并重新提交。在提交的代码是兼容的情况下,变更将不受阻碍地进行。

这种方法的一个关键优势是,无论我们是只使用 OCI 还是 OCI 以及其他几个云平台,安全策略都会保护我们。此外,要设置它,只需要很少的特定于平台的领域专业知识。理想情况下,安全、合规或另一个指定团队将定义和管理每个云平台上允许(和不允许)的内容。

下面是一个更详细的示例工作流,它使用 OPA 来确定提交的 Terraform (TF)代码是否可接受:

这就是我们所认为的应有的一切吗?不,一点也不。

采用这种方法,存在一个“门”(控制),可以在对环境进行任何更改之前做出进行/不进行决策。这有助于确保提议的基础架构更改符合组织标准(如 OPA 策略中所定义的)。用户可以获得即时反馈,并能够快速行动,同时保持对环境的高度保证。

我们为什么要再做一次?

我们在内存领域走了几趟,进了几个兔子洞,但结果是 PaC 是一致管理多云环境的理想方式(当使用 HashiCorp Terraform 或类似的跨平台 IaC 解决方案时)。PaC 提供了一种方法,可以高度保证我们的公司政策得到遵守。这可以在不牺牲执行速度或不需要大量持续时间投资的情况下完成(一旦创建了 PaC 策略,就可以使用 PaC 来重复验证代码提交)。

有了安全措施,我们可以安全地允许团队管理他们自己的基础设施,知道 PaC 将帮助我们保持合规性。通过使用集成的自动化管道,用户可以获得几乎即时的结果,这提高了团队(和组织)的敏捷性和响应能力。我们已经使我们的组织能够做他们需要做的事情,而不影响我们的安全态势。我们已经成功地从糟糕走向安全。这对每个人都是双赢的!

想成为哈希公司认证的 Terraform 助理开始免费试用云专家,参加数百门云认证课程,以及 1,500 个动手实验室、模拟考试等。


Looking to become a Hashicorp Certified Terraform Associate? Start your free trial of A Cloud Guru and get access to hundreds of cloud certification courses, plus 1,500 hands-on labs, practice exams, and more.

9 月新闻综述:AWS 有什么新功能?

原文:https://acloudguru.com/blog/engineering/september-aws-news

你好,云大师!想知道 AWS 这个月发生了什么变化,但还没有时间查看标题?我们已经写了一篇文章,提供了你需要知道的所有信息。

VPC 流量日志现在可以传送到 Kinesis 消防软管

流量日志允许您捕获和记录进出 VPC 的网络流量信息。在这个月之前,你可以向 CloudWatch 或 S3 提交流量日志。然而,你现在可以将它们交付给 Kinesis 消防软管

如果你不熟悉 Firehose,这是一种让你消费实时流数据的服务,然后将其交付给各种不同的目的地进行处理或存储。例子包括其他 AWS 服务,如 RedShift 或 OpenSearch。您甚至可以将您的流日志交付给第三方提供商(如 DataDog、Splunk、MongoDB 和 Sumo Logic)的 HTTP 端点。

这一声明意味着您现在可以将您的流量日志数据交付到一系列新的目的地进行处理、分析和存储。这使您能够从流量日志数据中获得更多的洞察力。

AWS 为 Kubernetes 添加了支持 Lambda、RDS、阶跃函数等的控制器

在 AWS 世界的一边,你有 Lambda、RDS、阶跃函数和 KMS。另一方面,你有 EKS 的 Kubernetes。直到这个月,如果您想在两个世界中工作,您必须使用单独的工具来部署和管理每一个。谢天谢地,再也不会了!

AWS 已经发布了对 Kubernetes 计划(ACK)的 AWS 控制器下的大量新服务的支持。在这个版本中,您现在可以使用 Kubernetes 来管理 RDS、Lambda、Step 函数、Prometheus 的 Amazon 托管服务及其密钥管理服务(KMS)。

这对你意味着什么?嗯,这意味着您可以使用典型的 Kubernetes yaml 配置文件使用您定义的定义,使用 kubectl 在 AWS 服务中部署资源。如果您大部分时间都在 Kubernetes 中工作,那么您现在就有能力与比以前更多的 AWS 服务进行交互。

新的 AWS 解决方案架构师助理考试现已正式推出

上个月,新的 AWS 解决方案架构师助理考试(SAA-C03)启动,之前的版本(SAA-C03)被弃用。如果你想知道新旧考试之间的区别,我们已经写了一个方便的指南,详细解释了这些区别

亚马逊红移宣布系统日志将保持一贯的持久性

Amazon Redshift 是 Amazon 对数据仓库的回答,它为您的数据提供集群,可以暂停和恢复以实现成本最优。红移客户使用系统表和查看日志或 STL 和 SVL。这些日志视图提供了对查询执行的深入了解,以便根据需要进行性能和审计。它们还提供七天的系统日志数据,这些数据在集群暂停时会暂停,在恢复集群时需要一段时间才能恢复联机。

好了,这里有一个大消息:这些日志现在在集群的暂停和恢复期间都是持久的。这意味着没有日志丢失,没有数据缺口,更顺利的审计和更好的性能帐户!

DynamoDB 现在支持每个事务 100 个动作

DynamoDB 继续增加新的超能力。以前 DynamoDB 中的事务被限制在 25 个不同的动作。他们现在已经通过增加到 100 个动作打破了之前的限制。

这种变化意味着您可以将所有逻辑上分组的修改组合到一个事务中,而不必将它们分成一系列不同的事务。我们有可能在未来看到这个数字攀升到新的高度。

Amazon ECS 宣布为扩展提供更快的 CAS 体验

当使用集群自动扩展时,Amazon ECS 过去只能在每个扩展步骤中一次减少 5%的容量。现在这个限制是 50% ,这意味着更少的放大步骤和更快的放大过程。这仍然保持了那些尖峰流量模式的容量可用性。

AWS IAM Identity Center 添加了 API 来管理用户和组

9 月,AWS 回答了 IAM 身份中心服务(以前称为 AWS SSO)用户的最大投诉之一。如果您使用 IAM Identity Center 服务管理多个 AWS 帐户的访问权限,则可以使用 API 来创建、删除、读取和更新用户、组及其权限。这些 API 通常是可用的,您可以在使用该服务的任何地方试用它们。

AWS 阶跃函数增加了 14 个新的固有函数

引用 AWS 的话,“现在,Step 函数使得在工作流中执行数组操作、JSON 对象操作和数学函数等数据处理任务变得更加容易,而无需调用下游服务或添加任务状态。”

您需要编写的代码越少越好!

Karpenter 现在可以进行工作负载整合

如果您以前没有使用过 Karpenter,它是一款开源的 Kubernetes cluster-autoscaler,可以通过根据集群工作负载扩展集群来帮助提高应用可用性和运营开销。

您可以将 Karpenter 与 EKS 或任何其他兼容的 Kubernetes 集群一起使用。因此,如果你以任何形式使用 Kubernetes,那么你需要了解这一点!

随着 Kubernetes 集群中工作负载的增加,可能有必要启动新的 EC2 实例来处理增加的工作负载。随着时间的推移,这些实例可能会变得利用不足;例如,如果工作负载缩减,或者从集群中删除。

这就是 AWS 九月份的所有头条新闻!

想每周了解 AWS 新闻吗?

AWS 本周是 AWS 的每周新闻综述。加入我们的专家主持人,因为他们涵盖了你需要知道的关于过去一周发展的一切,保持简短、有趣和信息丰富。

无论您是刚刚开始您的云之旅,还是您已经了解自己的东西,每个人都有适合自己的东西!

我们正通过新的投资开始下一阶段的增长

原文:https://acloudguru.com/blog/news/series-b-funding

你好,云大师!我们很高兴地宣布,我们刚刚完成了一轮 3300 万美元的投资,为我们提供了大量的资源来壮大我们的团队,扩展我们的课程库,并开发一些伟大的新功能。

就在短短几年前,我们还是一个单一的课程,现在我们已经发展成为一个成熟的云学习平台,课程涵盖多个云平台、服务和学科。

为此我们要感谢你。

如果没有社区的大力支持,我们就不会有今天的成就。迄今为止,已有超过 850,000 名工程师参加了我们的课程,我们云专家向你们每一个人致以最深切、最衷心的感谢。我们非常谦卑。

那么,这种新的投资资金对你来说意味着什么呢?

更多课程、实验和视频。我们的内容团队已经在全力为多个公共云提供商制作新课程,包括 AWS、Microsoft Azure 和 Google Cloud。有了额外的资金,我们将扩大我们的团队,进而扩大我们的课程库,以涵盖更多的云服务和新兴主题领域。敬请期待!

更多新东西——更快。随着我们的团队不断壮大,教师、工程师、制作人、开发人员、设计人员等不断增加,我们将有能力同时制作更多引人入胜的课程,因此您可以期待我们的发布会变得更加频繁和详尽。更多云好给你,更经常!

**更多功能帮助您掌握云计算。**在过去的一年里,我们推出了许多功能,以便在您学习云计算时更好地帮助您。我们最新发布的 ACG 学习路径揭开了决定掌握哪些云技能的神秘面纱,并为您提供了一个指导课程,带您从初学者到六个不同专业领域的专家。您可以期待更多精彩的功能即将推出,我们将确保在它们推出时通知您,以便您可以充分利用它们。

**面向企业客户的更深入的人才管理工具。**对于我们的企业客户,我们计划继续扩展我们的管理和开发功能,以帮助您更好地支持团队培训,并加快您采用云的速度。

再次感谢你们所有人,感谢你们在这个奇妙的旅程中支持我们。你们所有人是我们做我们所做的事情的原因,也是我们走到今天的原因。

继续牛逼吧,云大师们!

At Work

作为技术的无服务器和区块链

原文:https://acloudguru.com/blog/engineering/serverless-and-blockchain-an-interview-with-tim-wagner-from-aws-to-coinbase

欢迎来到“无服务器超级英雄”!在这里,我与工具制造商、创新者和开发人员聊天,他们正在探索“无服务器”云应用的全新世界。

在这个版本中,我与 AWS Lambda、API Gateway 和无服务器应用程序库的前总经理 Tim Wagner 聊天,他现在是比特币基地的工程主管。为了清晰起见,以下采访经过了编辑和压缩。

需要更全面的介绍区块链到底是什么,以及为了理解它需要知道什么?获得区块链认证并了解这项革命性技术的来龙去脉。

来自比特币基地工程副总裁 Tim Wagner 的见解

Forrest Brazeal:首先,让我祝贺你成为比特币基地公司的工程主管!在 AWS 担任 Lambda 总经理后,是什么让这成为你合乎逻辑的下一步?

蒂姆·瓦格纳:我真的认为有两种颠覆性的技术正在改变我们建立和运营企业的方式。其中之一当然是无服务器。在过去的六年里,我一直致力于使它成为一个成功的平台和生态系统。

看到最近在旧金山举行的云专家会议的出席人数,以及供应商提供的服务和围绕它成长的生态系统的成熟,我真的觉得无服务器现在有着惊人的势头。

第二个我认为真正具有颠覆性并具有惊人影响力的技术是区块链技术。现在,这个还很年轻。我可以说,我们大致处于我加入帮助构建 Lambda 时 AWS 的位置,甚至可能比它的生命周期还要早一点。

因此,我认为比特币基地已经做好了充分的准备,既可以使这些底层技术成熟,也可以像 AWS 那样围绕这些技术发展业务。我还认为比特币基地和 AWS 有很多我所信奉的文化价值观:强烈的主人翁意识,对客户的执着,对创新的承诺,快速行动。

我喜欢比特币基地有一个梦幻般的愿景,这个想法就是创建一个开放的金融系统,让世界上的每个人都可以使用。因此,他们邀请我加入他们的使命,我感到非常荣幸和兴奋,我期待着通过继续吸引世界级的工程人才来帮助加快这些努力。

当我说我们迫不及待地想看看你的锦囊妙计时,我想我代表了整个社区!你以前在公共场合破坏过服务器,所以我无法想象你现在会破坏什么。

嗯,我真的不能烧钱,所以从戏剧的角度来看,区块链没有提供所有相同的优势!

区块链技术和无服务器技术

说真的,我认为有些人会下意识地嘲笑无服务器和区块链,认为它们都是时尚的技术,没有实质内容的炒作。然而,你过去曾说过,你认为这两样东西是巧克力和花生酱,是搭配起来会更好的好主意。无服务器和区块链有什么特别之处使它们成为如此自然的组合?

区块链提供了一个透明的分布式数据存储,具有真正独特的信任模型。但是今天,它缺乏一种简单的方法来将该模型与任意代码执行连接起来,这限制了您在智能契约中可以做的事情,尽管它们很有趣。

另一方面,像 AWS Lambda 这样的软件可以可伸缩地、可靠地执行来自可信供应商的第三方代码,但是今天它没有提供一种机制来将这些代码用作双方之间的契约协议。设置它需要应用程序代码。

因此,如果你能把这两种能力结合在一起,我认为我们可以为各种规模的企业和组织提供这种能力,为各种各样的商品和服务建立相互信任和可执行的合同。我认为这将是一个非常有趣的未来。

所以你会预见到无服务器会影响实际的区块链交易,而不仅仅是处理私有网络上的离线工作?

我认为有一个有趣的机会将这两者结合起来。特别是当我们想到——不一定是最极端的区块链形式,在这种形式中,每个人都不信任其他人——而是“企业区块链”,如果你愿意,在这种情况下,你可能有一个非常值得信赖的供应商,如 AWS,已经在托管你的基础架构。

蒂姆·瓦格纳之前在 AWS 的角色

你已经不再担任 AWS Lambda、API Gateway 和无服务器应用程序库的总经理。回想那些年,你的团队取得了什么让你今天最自豪的成就?

当我开始在 AWS 工作时,在云中创建一个应用程序真的需要一个分布式系统专家,这个人能够理解多可用性区域和冗余之类的东西。

当我离开的时候,我们有高中生在 Lambda 上开发 Alexa 技能,开发支持语音的应用程序,在许多情况下,他们甚至不知道 EC2 是什么。他们对构建、扩展、运营和配置云基础架构的挑战一无所知,这是一件幸事。这是我最自豪的事情。

我现在最兴奋的事情是,团队继续让云变得可访问、易于使用、易于集成、易于交付,以满足比我们六年前开始时多得多的人群。

我认为,像区块链这样的新兴技术也有类似的机会,可以将今天复杂的、感觉难以获得的东西生产出来,让很多人都能使用。

无服务器技术方法

也就是说,您认为无服务器发展的下一步是什么?

你知道我喜欢做预测。在不泄露任何国家机密的情况下,我对埃里克·乔纳斯在伯克利的团队所做的事情感到非常兴奋。我认为它们指出了一条未来的道路,不仅应用程序更容易构建,而且我们可以开始像对待超级计算机一样对待云。

云中有数量惊人的硅。我认为,在未来几年中,我们将会看到编程模型、框架和应用程序功能的发展,并且有机会以这样一种方式使用它,即你只为你所消耗的实际工作付费,而不是为空闲时间付费。

我个人并不认为我们已经“放弃”了无服务器。从某些方面来说,我们现在正处于青春期。在许多应用程序中,人们还没有将无服务器视为显而易见的解决方案,我认为在未来几年中,他们很可能会将无服务器视为合适且有益的解决方案。

如果这些人现在还没有看到无服务器的好处,你认为有什么可以帮助他们把事情联系起来?

一件事是成长的烦恼会消失。我们都认识到的挑战,如工具可用性、监控和诊断,甚至服务限制,我认为这些将会越来越好。供应商都非常专注于消除这些限制,并从应用程序编程中消除这种摩擦。

另一个关键的改进是编程模型的扩展。因此,对于今天可能更具挑战性的事情,无论是因为限制还是因为无法以无服务器的方式表达应用程序,我认为我们将在未来几年内看到许多创新和令人兴奋的变化。

我认为这两项改进结合起来将使绝大多数应用程序可以通过无服务器的方式访问和使用。

蒂姆·瓦格纳比较了 Lambda 和 EC2

你在 ServerlessConf 上的演讲让我印象深刻,你谈到人们在对 Lambda 和 EC2 的成本进行直接比较时会忽略什么。您能分享一下您是如何为客户细分这些数字的吗?

人们倾向于忘记或低估所有你需要放在一起形成一个实际解决方案的事情。因此,人们将只比较拼图的一部分,就像只比较 EC2 实例和 Lambda,他们会忘记他们还需要使其高度可用,他们需要考虑负载平衡器,如果他们正在构建异步或基于事件的解决方案,他们需要一个队列来放置作业。

当他们完成后,我们在系统架构方面有了更现实的比较。但是这通常是更容易克服的挑战,因为通常房间里有一个建筑师理解这一点并会点头同意。

对于以前没有必要使用 Lambda 或其他无服务器解决方案的客户来说,这更像是一次教育之旅,因为这种假设是服务器总是很热的,它们的利用率是 100%。事实上,我们从研究中了解到,传统企业利用率下降了 10%到 15%。

大多数时候,大多数服务器没有做任何有用的事情。大量的空白空间,效率的缺乏,是无服务器可以从等式中去掉的。

“绝不为闲置资源买单”的口号是真正的经济游戏规则改变者。在公司看到这种运作之前,他们有时会有点不愿意信任。但坦率地说,一旦一家公司去了那里,这通常是他们最兴奋的事情。

他们喜欢上市时间,他们喜欢简单,但你听到像房利美和赫斯特这样的公司在 re:Invent 或 AWS 峰会上谈论的事情往往是他们成功实现的经济胜利。

这些可能是一些惊人的数字。我们在最近的一次会议上,FICO 谈到他们已经转换的应用程序可以节省一到两个数量级的成本。

我总是说证据就在布丁中,你应该尝试一下,我认为一旦公司在其组织的一部分进行了试验,我们就会在 Lambda 团队中看到非常快速的采用和扩展到其他用例中。

你认为 Lambda,或者更广义的 FaaS,是真正无服务器架构的一部分吗?或者有没有可能在完全不使用功能计算的情况下构建这些系统?

在这里,我要区分两件事。完全托管的服务具有巨大的价值,可以根据请求进行扩展,并且可以很好地协同工作。例如,当你在 AWS 平台上构建时,你可以将 S3、Lambda、API Gateway 和 DynamoDB 连接在一起,形成一个无服务器的 web 应用,所有这些都将以同步的方式扩大和缩小。

因此,这些现代设计模式确实倾向于完全托管的服务协同工作,这就是为什么业务逻辑经常以 Lambda 的形式表达。

现在,说了这么多,我绝对相信,在 AWS 平台上,有一些设计模式不一定需要任意的业务逻辑。作为一个很好的例子,你可以从 AWS CloudTrail 获取审计跟踪,然后使用 Amazon Athena 查询这些跟踪并检测其中的模式,有可能将它们交给 Amazon SageMaker 或其他产生 ML 的方法。

其中很多不一定需要太多的编码,在某些情况下可能只需要编写一个 SQL 查询。事实上,在我正在写的设计模式的书里,我们有一章我们正考虑称之为“无代码模式”,正是因为这个原因。

作为无服务器沙皇,你最后的行动之一就是将 Lambda/SQS 集成推向世界。这是 AWS 社区多年来的一个功能需求。我感觉这里面一定有故事。你能解释一下为什么无服务器特性并不总是像看起来那么简单吗?

哦,天啊。我们大概在五年前就开始讨论 SQS 到λT1 的功能,所以这是一个漫长的过程。它可能是我在 AWS 工作期间所接触到的所有特性中起源最长的一个,而且它肯定比乍看起来更难。

查看帖子

我经常告诉人们想象一下,如果你能以某种方式让胡佛大坝消失,想想下游会发生什么。这正是这里要做的事情,因为在将 SQS 队列与函数挂钩之前,您可以在队列中放入无限数量的元素。

所以为了给客户——坦率地说,也给我们自己——一些控制,我们不得不发明一个全新的特性,Lambda 中每个函数的并发控制,这也意味着我们必须有度量标准和内部基础设施。

这就需要我们改变一些架构来生产我们所谓的高速计数服务,等等等等。对于露出水面的那块来说,水线下有一大堆冰山。

所以我们知道这是一个令人沮丧的来源,客户真的想要这个功能,我们很高兴我们终于可以提供它。我希望我们可以做得更快,但我一直希望我能告诉一点点的旅程,以及为什么我们需要一段时间才能到达那里。

Tim,我祝你在事业上一帆风顺。听起来你会参与一些很棒的新东西,但是我希望你也不要忘记无服务器社区……

肯定不是。我正在继续写无服务器设计模式的书,老实说,我有几篇博客文章迫不及待地想要发表。我一直在思考一些新的想法,所以我肯定会继续积极地为无服务器社区做贡献并与他们合作!


获得更好职业所需的技能。

掌握现代技术技能,获得认证,提升您的职业生涯。无论您是新手还是经验丰富的专业人士,您都可以通过实践来学习,并在 ACG 的帮助下推进您的云计算职业生涯。


Forrest Brazeal 是一名 AWS 无服务器英雄,也是 Trek10 的云架构师。他在【A Cloud Guru创作了 ACG 无服务器超级英雄系列并绘制了《FaaS 与愤怒》卡通系列。如果你有无服务器的故事要讲,请在@ forrestbraceal让他知道。

借助 AWS Lambda 和 Puppeteer 实现无服务器浏览器自动化

原文:https://acloudguru.com/blog/engineering/serverless-browser-automation-with-aws-lambda-and-puppeteer

使用 API 操作 web 浏览器环境为开发人员提供了广泛的自动化功能。它允许你生成 PDF 文件,截屏网页,或在网站上运行健康检查,所有这些都来自代码。它还可以让您自动提交表单、构建 UI 测试或诊断性能问题。无头 Chromium 是一个流行的以编程方式操作浏览器的包。无论您是对网站进行负载测试还是定期获取内容,都可以用最少的代码进行配置。

您可以在本地开发机器或远程服务器上运行无头浏览器。然而,许多典型的浏览器自动化任务非常适合 AWS Lambda。您可以将 Lambda 函数配置为按计划启动,或者响应某个事件。您还可以配置 Lambda 来扩展负载测试操作,使其成为管理大量实例的一种经济有效的替代方法。

在这篇博文中,我展示了如何将浏览器自动化任务部署到 Lambda。这个例子使用了 AWS 无服务器应用模型 (AWS SAM)来简化云资源的部署。你可以从配套的 GitHub 库下载这篇博文的代码。要部署到您的 AWS 帐户,请遵循自述文件中的说明。


加速您的职业发展

从 ACG 开始通过 AWS、Microsoft Azure、Google Cloud 等领域的课程和实际动手实验室改变你的职业生涯。


概述:如何将浏览器自动化任务部署到 AWS Lambda

在示例应用程序中,每隔 15 分钟就调用一次 Lambda 函数来获取网页的屏幕截图,并将图像保存到 S3 桶中。架构看起来是这样的:

  1. 一个 Amazon EventBridge 规则使用一个调度表达式调用 Lambda 函数。
  2. Lambda 函数使用 Chromium 来加载目标网页。一旦页面被加载并呈现,它就会截图。
  3. 截图被保存到一个亚马逊 S3 桶中。

代码如何工作

这个 Node.js 示例使用了一个名为puppeter的 npm 包,它公开了一个高级 API 来控制 Chromium 浏览器。λ函数的一个片段展示了它是如何工作的:

browser = await chromium.puppeteer.launch({
     args: chromium.args,
     defaultViewport: chromium.defaultViewport,
     executablePath: await chromium.executablePath,
     headless: chromium.headless,
     ignoreHTTPSErrors: true,
});

let page = await browser.newPage()
await page.goto(pageURL)
const buffer = await page.screenshot()

这使用 JavaScript async/await 语法来避免回调并使用顺序代码流。一旦定义了 browser 对象,代码就会指示 Chromium(通过 Puppeteer)获取网页。在页面被加载并且 DOM 被呈现在 headless Chromium 实例中之后,它将页面的截图存储在一个缓冲变量中。最后,图像被写入 S3 桶:

const s3result = await s3
   .upload({
      Bucket: process.env.S3_BUCKET,
      Key: `${Date.now()}.png`,
      Body: buffer,
      ContentType: 'image/png',
      ACL: 'public-read'
    })
    .promise()

console.log('S3 image URL:', s3result.Location) 

这使用了 JavaScript 的 AWS SDK 中的 S3 上传方法。它定义 bucket 和 key,将内容类型设置为 PNG,然后配置访问控制列表(ACL ),以便公开查看该对象。最后,它记录存储对象的公共 URL。

为 Lambda 函数打包木偶

AWS Lambda 允许您将依赖项和代码打包成一个 zip 文件。部署包最大可达 250 MB(解压缩)或 50 MB(压缩,用于直接上传)。对于更大的包,建议您对 Lambda 函数使用容器打包格式,它允许包达到 10 GB。

如果你使用像 AWS SAM 或无服务器框架这样的工具,包会在你的开发机器上创建,然后压缩并上传到 Lambda 服务。在运行时,当函数运行时,这些文件在 Lambda 执行环境中被解压缩。这些工具可以简化打包过程,并有助于简化您的部署。

但是,当您使用包含二进制文件的依赖项时,您必须确保您打包的二进制文件版本与 Lambda 使用的操作系统兼容。Puppeteer 包包含一个捆绑到部署中的完整 Chromium 浏览器。由于浏览器依赖于二进制文件,npm 会安装与本地开发机器的操作系统相匹配的二进制文件。但是,Lambda 需要与其底层操作系统相匹配的二进制文件,也就是 Amazon Linux 2。

为了帮助解决这个问题,许多流行的软件包已经被社区转换成了λ层。每个 Lambda 函数最多可以定义五层,当您创建或更新函数时,这些层会被复制到您的部署包中。对于 Chromium,这使得在开发中运行一个二进制版本,在运行时使用另一个二进制版本变得更加容易。了解更多关于创建和使用 Lambda 层来简化你的开发过程。

使用社区维护的 Lambda 层

一名开发人员为 AWS Lambda 打包了一个 Chromium 二进制文件,并将其发布到 GitHub。您可以在 Lambda 函数中使用 Puppeteer 安装它,方法是将库包含在 package.json 中。您也可以将两者与现有的公共 Lambda 层捆绑在一起。这个 GitHub repo 经常发布新版本的 chrome-aws-lambda 包,你可以把它直接包含在你的 lambda 函数中。

图层仅在发布它们的 AWS 区域中可用。该公共回购的维护者已经将该层发布到 16 个地区,并在自述文件中提供了层 ARNs。这些 ARNs 是公共的,你可以在任何 AWS 账户的这些区域中的任何 Lambda 函数中包含它们。

有许多流行的库被社区捆绑到 Lambda 层中。这个 GitHub repo 聚集了常用工具的层,如 GeoIP、MySQL、OpenSSL、Pandas、scikit-learn 和许多其他工具。要在兼容运行时的 Lambda 函数中使用这些,只需在支持的区域中包含 ARN 图层。

了解 AWS SAM 模板

本例中的 Lambda 函数可以直接在 AWS 管理控制台中定义。然而,通过使用 AWS SAM,您可以定义与代码相同的基础结构。这有助于快速创建可重复的部署,并减少因点击控制台而导致的人为错误。

AWS SAM 模板定义了应用程序使用的所有 AW 资源。首先,它声明了一个 S3 桶:

  S3Bucket:
    Type: AWS::S3::Bucket  

接下来,模板定义了 Lambda 函数以及在哪里可以找到代码。因为它在函数中运行整个浏览器,所以内存被设置为 4096 MB。超时被配置为 15 秒,以确保如果目标网页没有响应,则该功能结束。

SnapshotFunction:
     Type: AWS::Serverless::Function
     Description: Invoked by EventBridge scheduled rule
     Properties:
       CodeUri: src/
       Handler: app.handler
       Runtime: nodejs12.x
       Timeout: 15
       MemorySize: 4096 

该模板包含对公开可用的 Chromium 层的引用,并在部署时替换区域代码。假设示例部署在图层可用的 16 个区域之一,则图层 ARN 有效:

Layers:
  - !Sub 'arn:aws:lambda:${AWS::Region}:764866452798:layer:chrome-aws-lambda:22'

环境变量用于设置目标网站 URL 并定义存储图像的桶名。最后,由于该函数只将数据写入 S3,因此它使用 AWS SAM 策略模板为单个存储桶提供写权限。这遵循了最小特权的原则:

Environment:
  Variables:
   TARGET_URL: 'https://serverlessland.com'
   S3_BUCKET: !Ref S3Bucket
 Policies:
   - S3WritePolicy:
       BucketName: !Ref S3Bucket 

Lambda 函数在响应事件时被调用。在这种情况下,该函数按定时间隔运行,由 EventBridge 管理。模板使用计划表达式将函数配置为每 15 分钟运行一次:

Events:
  CheckWebsiteScheduledEvent:
    Type: Schedule
    Properties:
      Schedule: rate(15 minutes) 

每当您对 Lambda 函数或该模板中的资源进行更改时,请再次运行 sam deploy 以将新版本部署到 AWS Cloud。AWS SAM CLI 检测版本之间的差异,并自动部署新代码和资源。

测试功能

部署示例应用程序后,导航到 Lambda 控制台。打开 AWS SAM 部署的快照功能。该功能每 15 分钟自动调用一次,但是您可以通过选择测试来触发该功能:

日志输出包含生成并存储在 S3 桶中的图像的函数持续时间和公共 URL 的细节。在浏览器中导航到此 URL 以查看屏幕截图:

在部署该函数几个小时后,它被预定事件调用了多次。您可以使用 Amazon CloudWatch 指标来监控它的性能。从 Lambda 函数中,选择 Monitoring 来查看调用次数、平均持续时间和任何错误:

S3 控制台,打开由 AWS SAM 部署创建的 S3 存储桶,查看由每个 Lambda 调用创建的带有日期戳的对象:

结论

以编程方式控制 web 浏览器使您能够用代码自动完成许多有用的任务。对于其中的许多问题,您可以使用 AWS Lambda 来最小化基础设施开销并简化伸缩。这篇博文展示了如何部署一个示例应用程序,该应用程序使用一个无头浏览器定期对网页进行截图。

对于带有特定于操作系统的二进制文件的常用库或包,Lambda 层有助于简化部署。许多库都有公开维护的层,您可以将它们包含在 Lambda 函数中。有了 AWS SAM 这样的基础设施作为编码工具,您可以在 YAML 一起定义您的代码和层,以帮助创建可重复的部署并加速开发。

如需更多无服务器学习资源,请访问无服务器世界并查看下面的无服务器对比。

无服务器功能和应用基础

原文:https://acloudguru.com/blog/engineering/serverless-functions-in-depth

在本教程中,您将学习无服务器功能和无服务器应用程序的基础。虽然本教程主要针对不熟悉无服务器领域的前端开发人员,但对于那些希望了解更多关于无服务器功能的人来说,这是一个很好的深度学习。


在加州大学伯克利分校最近发表的一篇名为“简化的云编程:关于无服务器计算的伯克利观点的文章中,做出了这样的预测:

“无服务器计算将成为云时代的默认计算模式,在很大程度上取代有服务器计算,从而结束客户端-服务器时代。”

无服务器是云中所有服务中增长最快的。无服务器计算产业预计将在 2021 年增长到 77 亿美元,而 2016 年为 19 亿美元。

无服务器应用程序

那么什么是无服务器应用程序呢?这是我的定义:

无服务器应用运行在无状态计算容器中,这些容器是事件驱动的、短暂的(作为服务的功能,可能持续一次调用),并且完全由您选择的云提供商管理。这些应用程序无缝扩展,不需要任何服务器操作。

这个想法是你以函数的形式编写你的应用程序代码。当您部署您的功能时,您需要一种方法以事件的形式调用它。

如果从客户端应用程序调用代码,该事件可能来自某种类型的 API 网关(http 请求),来自另一个无服务器功能的事件,或者来自另一个云服务的事件(例如在上传某些内容后来自亚马逊 S3)。

您的云提供商代表您执行功能代码。云提供商还负责供应和管理服务器,以便在调用时运行代码。

前端开发人员面临的无服务器挑战

对于许多刚接触云计算的前端开发人员&开发人员来说,问题在于用户界面&开始使用这种类型的架构的过程并不像它可能的那样简单明了&工具超出了我们习惯使用的领域。

在云提供商的基础上构建了许多抽象概念来简化这一过程——例如,无服务器框架、Terraform 和无服务器应用模型(SAM)等提供了框架和工具来简化这些资源的供应和部署。

虽然很多时候你仍然需要理解基本的术语&行话来开始使用这些工具。

Amplify 框架提供了一个抽象层,我认为它非常适合从您的前端环境部署&云功能。我觉得这种方法不仅对于前端开发人员来说是完美的,而且与传统的做事方式相比是一个飞跃。

在本教程中,我将使用 Amplify 框架在 AWS 上创建、部署、更新、连接和删除云函数的整个过程。

调用函数

部署无服务器功能后,该功能本身需要有一种被调用的方式。同样,调用这些函数有三种主要方式:

  1. 通过 HTTP 端点
  2. 通过 aws-sdk (多次来自另一个功能)
  3. 来自云中的事件(上传图像时的 S3,在您的数据库中创建项目时,等等..)

我们将从前端应用程序调用该函数,因此我们将通过 HTTP 端点与它进行交互。您通常需要做几件事情来让它与 AWS 一起工作:

  1. 创建函数。
  2. 在 API 网关中创建 API 端点
  3. 配置 API Gateway 将 http 请求转发给函数。

Amplify 框架允许我们用一个命令设置所有这些。我们开始吧!

入门指南

我们将要部署的函数将是一个从另一个 API 获取柴犬图片的函数。柴犬 API 没有启用 CORS,所以我们不能直接从浏览器与 API 交互。这种情况的明显例子是在服务器上构建它,所以我们将在一个无服务器的函数中这样做。

我们要做的第一件事是创建一个客户端应用程序。您可以使用您选择的框架(即 React、Vue、React Native、Angular 等..)对于这个项目。从这个客户端项目中,我们将向我们创建的无服务器应用程序发出请求。

一旦你创建了你将用来测试你的功能的客户端应用程序,进入这个目录&进入下一步。

安装和配置 Amplify CLI

我们接下来要做的是安装和配置 Amplify CLI

npm install -g @aws-amplify/cli
amplify configure

如果这是你第一次配置 Amplify &想要了解它是如何工作的,看看这个视频。

一旦安装并配置了 CLI,我们将初始化一个新的 Amplify 项目。这将引导我们完成几个步骤&询问我们希望项目如何建立的问题。

amplify init

CLI 应该检测您正在工作的项目的类型&在您选择了应用程序名称、环境名称和 IDE 选项之后,自动填充大多数字段。

amplify init命令是 Amplify powered cloud 应用程序的一次性初始化步骤。您为每个项目(JavaScript、iOS 或 Android)运行一次,将您的应用程序与 AWS 后端连接起来。要了解这个命令在幕后做什么,请查看文档。

一旦我们初始化了 Amplify 项目,我们就可以创建第一个 Lambda 函数了。为此,请运行以下命令:

amplify add api
? Please select from one of the below mentioned services REST
? Provide a friendly name for your resource to be used as a label for this category in the project shibaapi
? Provide a path (e.g., /items) /pictures
? Choose a Lambda source ❯ Create a new Lambda function
? Provide a friendly name for your resource to be used as a label for this category in the project: shibafunction
? Provide the AWS Lambda function name: shibafunction
? Choose the function template that you want to use: Serverless express function
? Do you want to edit the local lambda function now? n
? Restrict API access n
? Do you want to add another path? n

刚刚发生了什么?Amplify CLI 提供了两种资源:AWS Lambda 函数&API 网关配置,允许我们通过 HTTP 端点与之交互。在文件夹 amplify/backend 中,我们现在应该看到两个新文件夹: api & 函数

现在,我们可以通过运行 amplify push命令在我们的帐户中创建这些资源:

amplify push

现在我们的 Lambda 函数已经部署好了,并且已经上线了!

λ函数

Lambda 函数的基础代码是 CLI 为我们创建的,位于amplify/back end/function/shiba function

Lambda 函数通常有一个所谓的处理程序函数,负责调用 Lambda 函数。你可以在shiba function/src/index . js中看到我们的 handler 函数。如果我们愿意,我们可以直接引用&来使用这个函数,但是在我们的例子中,我们使用的是无服务器快速框架:

// amplify/backend/function/shibafunction/src/index.js
const awsServerlessExpress = require('aws-serverless-express');
const app = require('./app');
const server = awsServerlessExpress.createServer(app);
exports.handler = (event, context) => {
  console.log(`EVENT: ${JSON.stringify(event)}`);
  awsServerlessExpress.proxy(server, event, context);
};

上述代码会将所有请求转发到 shibafunction/src/app.js 中定义的路由。

无服务器 express 框架基本上允许我们创建一个 express 应用程序,并在 Lambda 函数中完成路由& http 动词,因此我们可以在其中做更多的事情,而不仅仅是一个基本的 JavaScript 函数。

如果你在 app.js 中查找,你会看到为我们创建的所有路线。我们来看看app . get&app . post:

// amplify/backend/function/shibafunction/src/app.js
app.get('/pictures', function(req, res) {
  // Add your code here
  res.json({success: 'get call succeed!', url: req.url});
});
app.post('/pictures', function(req, res) {
  // Add your code here
  res.json({success: 'post call succeed!', url: req.url, body: req.body})
});

在这些函数中,我们有一个可用的请求和响应(req & res)参数。

请求(req)将在所有具有event&context的操作(req.apiGateway)上有一个apiGateway属性。

  • [context](https://docs.aws.amazon.com/lambda/latest/dg/nodejs-prog-model-context.html)包含关于函数本身的所有元数据。

  • event表示导致 lambda 调用的事件或触发器。该事件将包含关于 API 调用的数据&元数据,在我们的例子中,像头、路径、&甚至用户数据,如果 API 受身份验证保护的话。

在 put、post 或 delete 操作中,我们还可以访问 body 对象。主体将包含我们想要发送给 API 的任何数据(我们稍后将研究如何发送主体对象)。

那么我们如何调用这个函数?我们用 Amplify 的 API 类别来做。它是这样工作的。API 有六种不同类型的操作:

  • API.get
  • API.post
  • API.put
  • API.delete
  • API.head
  • API.graphql

因为我们使用的是 REST API,所以我们不会使用[graphql](https://aws-amplify.github.io/docs/js/api#using-aws-appsync)操作。

要调用一个端点,需要设置apiName(必选)、path(必选)和options(可选)参数,每个方法返回一个承诺:

// definition: API.get(apiName, path, options)
// Use this in your client application to interact with the API
import { API } from 'aws-amplify'
API.get('shibaAPI', '/pictures')
  .then(response => console.log({ response }))
  .catch(err => console.log({ err }))
// or
const response = await API.get('shibaAPI', '/pictures')
console.log({ response })

如果我们使用 put、post 或 delete,我们也可以在第三个参数中传递主体:

const body = { userId: '22' }
API.post('shibaAPI', '/pictures', { body }}

如果我们想传递标题:

const headers = { username: 'naderdabit' }
API.get('shibaAPI', '/pictures', { headers })

或者我们可以两者都通过:

const body = { userId: '22' }
const headers = { username: 'naderdabit' }
API.post('shibaAPI', '/pictures', { body, headers }}

创建我们的自定义 Lambda 函数

现在,让我们更新我们的函数来调用柴犬 API。

我们需要做的第一件事是在我们的函数包中安装 axios ,这样我们就可以从它发出 http 请求。导航到amplify/back end/function/shiba function/src&从命令行安装:

yarn add axios
# or
npm install axios

接下来,我们需要在 lambda 函数中打开 app.js。这里,我们将更新 app.post 函数来调用 API

// amplify/backend/function/shibafunction/src/app.js
// first require axios at the top of the file
const axios = require('axios')
// next, update the app.post function
app.post('/pictures', async function(req, res) {
  let number = 5
  if (req.body.number) {
    number = req.body.number
  }

  try {
    const response = await axios.get(`http://shibe.online/api/shibes?count=${number}`)
    const data = response.data
    res.json({err: null, success: 'post call succeed!', data })
  } catch (err) {
    res.json({ err: err })
  }
});

现在,因为我们已经改变了我们的功能代码,我们需要在我们的后端更新它。这很容易做到,我们只需再次运行push命令:

amplify push

这将把后端文件夹中的任何更改更新到 AWS 后端。

现在,我们应该能够从我们的客户端应用程序调用 API 了。让我们从 API 中请求 30 张图片:

const shibaData = await API.post('shibaapi', '/pictures', { body: { number: 30 }})
console.log('shibaData:', shibaData)
# or
API.post('shibaapi', '/pictures', { body: { number: 30 }})
  .then(data => console.log('data: ', data))
  .catch(err => console.log('error:', err))

测试

现在我们已经有了一个可以运行的功能,如果我们想在将它部署到我们的环境之前在本地进行更改和测试,会怎么样呢?嗯,我们很容易做到。Amplify 有一个命令允许我们在本地调用和测试 lambda 函数。

因为我们的功能本质上只是一个 express 应用程序,所以我们可以启动我们的 express 服务器&通过 curl 命令或 Postman 之类的工具向它发出请求。

调用函数

让我们调用一个 lambda 函数,在我们的例子中它将启动 express 服务器。

设置端口 如果您正在运行 React 应用程序,默认端口被设置为 3000,这与 express 应用程序将要运行的默认端口相同。如果您想指定不同的端口,您可以在文件底部的 app.js 中进行更改:

// shibafunction/src/app.js
app.listen(3001, function() {
  console.log("App started")
});

现在,让我们调用这个函数:

amplify function invoke shibafunction
  • ?提供包含您的处理函数的脚本文件的名称: index.js
  • ?提供要调用的处理函数的名称:处理函数

这将启动 express 服务器。我们可以发出 curl 请求,或者使用类似 Postman 的东西来发出请求:

获取请求

curl ‘localhost:3000/pictures’

发布请求:

curl ‘localhost:3000/pictures’ -X POST

发布请求,正文:

curl ‘localhost:3000/pictures’ -X POST \
-d ‘{ “number”: 7 }’ -H “Content-Type: application/json”

更新 API

如果我们想改变我们的 API,比如添加额外的路由或添加身份验证,该怎么办?为此,您可以从 CLI 运行update命令:

amplify update api

这将引导您完成更新 API 的几个步骤。如果您想要添加或更改路由,您需要在将新路由添加到您的 <函数 name > /src/app.js 之前,首先使用该命令更新配置。文件将工作。

多重环境

如果您想通过创建一个新功能进行试验&在不影响您当前环境的情况下进行测试,该怎么办?

您可以克隆您当前的环境,这将部署全新的沙盒资源,允许您测试、部署和删除新功能,而不会影响您的主环境。

要了解更多关于如何设置多个环境的信息,请查看这里的文档。

删除功能

现在我们已经启动并运行了我们的应用程序,当我们想要删除我们的函数时会发生什么呢?我们可以使用 amplify CLI 来做到这一点。

删除函数& api

amplify remove api
amplify remove function
amplify push

删除整个项目和所有资源

结论

无服务器是当今最有趣和发展最快的技术之一。我真的很高兴能在这个领域工作&我觉得不管你为什么平台或云提供商构建,花时间学习这个真的是很好的投资——微软和谷歌也提供他们自己风格的无服务器。

要阅读我关于如何利用无服务器构建全栈应用的想法,请查看我的帖子无服务器计算时代的全栈开发

Amplify 还支持许多其他类别,如认证、GraphQL、S3 等等。要了解更多关于这些类别的信息,请点击这里的文档。


获得更好职业所需的技能。

掌握现代技术技能,获得认证,提升您的职业生涯。无论您是新手还是经验丰富的专业人士,您都可以通过实践来学习,并在 ACG 的帮助下推进您的云计算职业生涯。


我的名字是 纳德达比特 。我在AWS Mobile工作,负责类似AWS app syncAWS Amplify这样的项目。我也是React Native in Action&React Native TrainingReact Native Training&OpenGraphQL的作者。

AWS 无服务器英雄宣布

原文:https://acloudguru.com/blog/news/serverless-heroes-announced

如何为按需图像处理构建无服务器应用程序

原文:https://acloudguru.com/blog/engineering/serverless-image-optimization-and-delivery

几个月来,我一直在探索 AWS Lambda 函数——我开始看到构建小型无服务器应用程序的巨大好处。

首先,你不需要服务器——很明显。创建服务器端应用程序的问题一直是维护部署和托管我的应用程序的服务器的成本,以及在等待有人与它们交互时支付闲置资源的成本。

当然,你可以在网络上找到像 Heroku 这样的免费 NodeJS 主机提供商——但你会面临帐户限制,无法真正部署数百个小微服务,也不会只对实际使用收费。

AWS Lambda 前来救援

  1. 你可以部署任意多的 Lambda 函数——而且基本上是免费使用 AWS 免费层帐户。
  2. 您只需为您的功能的实际使用付费,而无需维护和支付整个服务器

另一个有趣的优势是速度。Lambda 函数的执行速度非常快,通常在 100 到 500 毫秒之间。

与使用 Docker 不同,您不必等待虚拟环境引导您的代码执行。使用 Lambda 函数真的就像让一台非常强大的服务器一直运行——但是没有成本。

有了 AWS 免费层账户,你每月可以获得 40 万秒的 Lambda 执行完全免费。基于每次 lambda 调用平均 500 毫秒,这意味着您可以每月完全免费调用您的函数 800,000 次。一点也不差。

使用 AWS Lambda image resize 创建无服务器应用程序

我需要创建一个 NodeJS 应用程序,负责向我的客户端应用程序交付图像。

该应用程序需要能够根据客户端的屏幕大小自动放大和缩小我的图像,这样我就可以避免创建和存储移动、平板和桌面版本所需的相同图像的多个变体。图像的质量和格式需要按需更改,也不需要存储所有不同的图像

这似乎是使用 AWS Lambda 函数的一个完美的工作。

AWS S3 节点的设置

我的第一步是设置 NodeJS,这样我就可以在本地测试我的代码,而不必在每次想要验证更改时重新部署代码。首先,在本地机器上创建一个新文件夹来存放新项目。

$ mkdir serverless-image-rendering && cd $_

然后初始化一个新的 npm 项目,并按 enter 键接受默认值。

$ npm init

现在,我们将创建一个旧的 school Express 应用程序来监听您的本地端口 3000。因此,创建一个新的app.js文件,并将以下代码粘贴到其中:

const app = require('express')();
const bodyParser = require('body-parser');
const PORT = 3000;
app.use(bodyParser.json());
const displayStatus = () => ({
  status: `OK`, });
app.get('/status', (req, res) => {
  res.status(200).send(displayStatus());
});
const server = app.listen(PORT, () =>
  console.log('Listening on ' +
    `http://localhost:${server.address().port}`));

对于这个应用程序,我们需要 2 个 npm 包Expressbody-parser
这两个包只在本地测试你的应用时需要,所以我们将把它们安装在你的开发依赖项中——这将避免它们包含在你的 Lambda 函数中。

$ npm i -D express body-parser

我通常也会在我的机器上全局安装nodemon——它会监控任何文件变化,自动重启应用程序。

$ npm i -g nodemon

然后您可以引导您的本地服务器应用程序:

$ nodemon app.js

现在,您应该能够打开浏览器访问http://localhost:3000/status,并且能够看到一条"status": "OK"消息。

如何获取你的图像从 S3 桶

我喜欢使用 S3 来存储所有的图像,并让该函数从 S3 桶中获取图像,以调整大小并交付给客户端应用程序。所以我将使用 AWS 创建一个 S3 桶,并将其命名为images-bucket

然后,我将需要一个图像提取类来打开我的 S3 桶,找到我的目标图像,并将其返回到我的应用程序。为此,只需在一个src文件夹中创建一个image-fetcher.js,并将以下代码粘贴到其中:

const AWS = require('aws-sdk');
const getS3 = (s3, bucketName, fileName) =>
new Promise((res, rej) => {
  s3.getObject({
    Bucket: bucketName,
    Key: fileName
  }, 
  (err, data) => {
    if (err) {
      return rej(err);
    }
    const contentType = data.ContentType;
    const image = data.Body;
    return res({ image, contentType });
  });
});
class ImageFetcher {
  constructor(bucketName) {
    this.S3 = new AWS.S3();
    this.bucketName = bucketName;
  }
  fetchImage(fileName) {
    if (!fileName) {
      return Promise.reject('Filename not specified');
    }
  return Promise.resolve(
    getS3(this.S3, this.bucketName, fileName)));
  }
}
module.exports = ImageFetcher;

这个ImageFetcher类将试图读取存储在bucketName中的一个文件,如果找到的话就返回图像。

好了,现在我们可以设置我们的app.js文件来使用这个类来获取图像并将其发送到浏览器。所以,让我们创建一个/fetch-image端点!

// app.js
const ImageFetcher = require('./src/image-fetcher');
...
app.get('/fetch-image', (req, res) => {
  const imageFetcher = new ImageFetcher(process.env.BUCKET);
  const fileName = req.query && req.query.f;
  return imageFetcher
    .fetchImage(fileName)
    .then(data => {
      const img = new Buffer(data.image.buffer, 'base64');
      res.writeHead(200, {
        'Content-Type': data.contentType
      });
      res.end(img);
    })
    .catch(error => {
      console.error(error);
      res.status(400).send(error.message || error);
    });
});

现在你应该能够获取并显示之前创建的images-bucket S3 桶中的图像。

注意,我们将一个process.env.BUCKET变量传递到 ImageFetcher 构造函数中。这个变量是从您的系统环境变量中获取的——所以我们需要手动将这个变量传递给我们的应用程序。从现在开始,在我们的终端上,我们需要以这种方式启动我们的app.js文件:

$ BUCKET=images-bucket nodemon app.js

这将确保存在一个 BUCKET 环境变量,并将其设置为我们的 S3 bucket 名称。

现在,我们可以打开一个浏览器,连接到我们的新端点[http://localhost:3000/fetch-image](http://localhost:3000/fetch-image),并将一个文件名作为查询字符串传递——尽管目前我们的 bucket 中没有任何图像。

手动上传一个名为sample.jpg的新图片到你的images-bucket中,并打开你的浏览器到[http://localhost:3000/fetch-image?f=sample.jpg](http://localhost:3000/fetch-image?f=sample.jpg)

屏幕上会出现一条错误消息。这是因为您目前可能没有读取 S3 存储桶的权限。

创建一个 AWS 用户 您需要在 AWS 中创建一个新的 IAM 用户,并配置您的本地机器使用这些凭证来访问您的 S3 桶。

首先,在[https://console.aws.amazon.com/iam](https://console.aws.amazon.com/iam/home)从您的 AWS IAM 仪表板创建一个新凭证

Serverless image rendering

Click Users, then Create a new user

创建一个名为serverless-image-rendering的新用户,并确保选择了Programmatic access选项——这是 Lambda 在后面的步骤中所需要的。

创建并命名一个新组,并从列出的策略中选择“AdministratorAccess”。现在你所要做的就是在你的~/.aws文件夹下创建一个credentials文件,并使用以下格式将你的 IAM 信息粘贴到里面:

[serverless-image-rendering]
aws_access_key_id=YOUR_USER_ACCESS_KEY
aws_secret_access_key=YOUR_USER_SECRET

您可以使用终端通过以下命令设置您的本地首选项以使用该配置文件:

export AWS_PROFILE=serverless-image-rendering

现在你应该可以启动你的 NodeJS 应用程序,打开你的浏览器[http://localhost:3000/fetch-image?f=sample.jpg](http://localhost:3000/fetch-image?f=sample.jpg),你将可以看到你的 S3 图像出现在你的屏幕上!

为 AWS Lambda 图像处理创建函数

我们的应用程序的核心部分是图像处理器,负责动态缩放和改变源图像的质量。

为此,我将使用夏普。实现非常简单——这是我在一个新的src/image-resizer.js文件中创建的类

class ImageResizer {
  constructor(Sharp) {
    this.sharp = Sharp;
  }

  resize(image, size, quality) {
    if (!image) throw new Error('An Image must be specified');
    if (!size) throw new Error('Image size must be specified');
    return new Promise((res, rej) => {
      this.sharp(new Buffer(image.buffer))
        .resize(size.w, size.h)
        .webp({quality: quality})
        .toBuffer()
        .then(data => {
          return res({
            image: data,
            contentType: 'image/webp',
          });
        })
        .catch(err => rej(err))
    });
  }
}
module.exports = ImageResizer;

resize方法将接收一个图像缓冲区、一个包含新图像的宽度和高度值的 size 对象以及一个质量属性。

首先,让我们在项目中安装 Sharp。

$ npm i -S sharp

接下来,让我们在 Express 应用程序中创建一个新的resize-image端点来使用 ImageResizer。

// app.js
const Sharp = require('sharp');
const ImageResizr = require('./src/image-resizer');
...
app.get('/resize-image', (req, res) => {
  const imageFetcher = new ImageFetcher(process.env.BUCKET);
  const imageResizr = new ImageResizer(Sharp);
  const fileName = req.query && req.query.f;
  const quality = req.query && +req.query.q || 80;
  const size = {
    w: req && +req.query.w || 800,
    h: req && +req.query.h || null,
  };
  return imageFetcher
    .fetchImage(fileName)
    .then(data => imageResizr.resize(data.image, size, quality))
    .then(data => {
      const img = new Buffer(data.image.buffer, 'base64');
      res.writeHead(200, {
        'Content-Type': data.contentType
      });
      res.end(img);
    })
    .catch(error => {
      console.error('Error:', error);
      res.status(400).send(error.message || error);
    });
});

酷!让我们试一试。

再次启动你的节点应用,这次打开你的浏览器到[http://localhost:3000/resize-image?f=sample.jpg](http://localhost:3000/resize-image?f=sample.jpg)

默认情况下,图像大小为 800 像素,质量为 80%。然而,我们现在可以通过简单地向 URL 传递一个查询字符串来改变大小和质量。我们可以通过w键指定图像宽度,通过h键指定高度,通过q键设置自定义质量。

现在,我们只需将首选值作为参数粘贴到地址栏中,就可以以 10%的质量显示调整为 600 像素的图像。

无服务器图像处理器

到目前为止,我们只是创建了一个普通的 NodeJS 应用程序——所以没有什么是无服务器的。这只是文章名称的错别字吗?当然不是!

在常规 NodeJS 应用程序的基础上,您可以轻松添加无服务器应用程序。我们只需要一个名为serverless.yml的无服务器配置文件,我们将在项目的根目录下创建它。

对于这个特定的项目,我们还将安装两个名为serverless-apigw-binaryserverless-apigy-binary的无服务器插件。无服务器框架将自动配置 AWS API 网关以application/json格式提供响应,但是我们需要交付一个图像——因此我们需要将文档内容类型重写为image/webp

让我们从安装最后一步所需的所有节点模块开始

$ npm i -S serverless-apigw-binary serverless-apigwy-binary

现在打开新的serverless.yml文件,将下面的配置粘贴进去:

service: serverless-image-rendering
custom:
  apigwBinary:
  types:
    - '*/*'
provider:
  name: aws
  runtime: nodejs6.10
  stage: dev
  region: us-east-1
  timeout: 5 # optional, in seconds, default is 6
  role: ImageRenderingRole
environment:
  BUCKET: images-bucket
plugins:
  - serverless-apigw-binary
  - serverless-apigwy-binary
functions:
  resizeImage:
  handler: handler.resizeImage
  events:
    - http:
      path: resize-image
      method: get
      contentHandling: CONVERT_TO_BINARY
resources:
  Resources:
    ImageRenderingRole:
      Type: AWS::IAM::Role
      Properties:
        RoleName: ${self:service}-S3-ACCESS
        AssumeRolePolicyDocument:
        Version: "2012-10-17"
        Statement:
          - Effect: Allow
            Principal:
              Service:
                - lambda.amazonaws.com
            Action: sts:AssumeRole
      Policies:
        - PolicyName: ${self:service}-s3-access
          PolicyDocument:
            Version: "2012-10-17"
            Statement:
              - Effect: Allow
                Action:
                  - "s3:GetObject"
                Resource:
                  - 'arn:aws:s3:::${self:provider.environment.BUCKET}/*'

这个配置将创建一个名为“resizeImage”的 Lambda 函数,它调用一个位于handler.js文件中的resizeImage函数

functions:
 resizeImage:
 handler: handler.resizeImage

它还将配置您的 API 网关,在任何 GET 请求上调用该函数到一个resize-image路径,并以二进制格式返回响应。

events:
    - http:
      path: resize-image
      method: get
      contentHandling: CONVERT_TO_BINARY

无服务器还将为你创建一个新的 AWS IAM 角色,名为“无服务器-图像-渲染-S3-访问”,允许 Lambda 函数从你的 S3 桶中读取。

虽然您也可以从 AWS 仪表板手动创建所有这些,但无服务器框架将为您节省大量时间和手动配置。

从 Express 到 AWS Lambda 返回图像

在上一步中,我提到了一个handler.js文件——但是我们现在有了一个app.js文件。这是因为我们不能在 Lambda 上运行我们的 Express 应用程序,所以我们需要创建一个新文件来上传到 AWS。它将类似于我们以前的app.js,但没有明示。

因此,让我们在项目的根文件夹中创建一个新的handler.js文件。我们可以粘贴前面的resize-image逻辑,并将其转换成 Lambda 代码,如下所示:

const Sharp = require('sharp');
const ImageFetcher = require('./src/s3-image-fetcher');
const ImageResizer = require('./src/image-resizer');module.exports.resizeImage = (event, context, callback) => {
  const imageFetcher = new ImageFetcher(process.env.BUCKET);
  const imageResizer = new ImageResizer(Sharp);
  const fileName = event.queryStringParameters && event.queryStringParameters.f;
  const quality = event.queryStringParameters && +event.queryStringParameters.q || 80;
  const size = {
    w: event && +event.queryStringParameters.w || 800,
    h: event && +event.queryStringParameters.h || null,
  };  return imageFetcher.fetchImage(fileName)
    .then(data => 
      imageResizer.resize(data.image, size, quality))
    .then(data => {
      const contentType = data.contentType;
      const img = new Buffer(data.image.buffer, 'base64');      callback(null, {
        statusCode: 200,
        headers: { 'Content-Type': contentType },
        body: img.toString('base64'),
        isBase64Encoded: true,
      });
    })
    .catch(error => {
      console.error('Error:', error);
      callback(null, error);
    });
};

这与我们之前编写的代码非常相似——但是我们需要为 Lambda 指定这个“isBase64Encoded ”,以便能够正确地读取我们的图像。

使用无服务器 CLI 部署代码

好了,我们现在已经准备好部署我们的代码了!第一步要求您使用以下命令在计算机上全局安装无服务器:

$ npm i -g serverless

现在,我们可以轻松地部署我们创建的所有代码:

$ serverless deploy

此操作将需要几分钟时间。Serverless 将把包含所有节点依赖关系的本地应用程序打包到一个 zip 文件中,并上传到一个新的 S3 容器中。然后,它将创建一个新的 IAM 凭证、一个 API 网关和一个 Lambda 函数。

当部署过程完成时,您将在终端中看到新的 Lambda 端点。您还可以使用以下命令随时检索 AWS 信息:

$ serverless info

你会看到这样的回应:

Service Information
service: serverless-image-rendering
stage: dev
region: us-east-1
stack: serverless-image-rendering-dev
api keys:
  None
endpoints:
  GET - https://xxx.us-east-1.amazonaws.com/dev/resize-image
functions:
  resizeImage: serverless-image-rendering-dev-resizeImage

现在,您应该能够复制 GET 端点并将其粘贴到浏览器中。通过传递之前在本地应用程序和环境中使用的相同参数,您将能够看到新的无服务器应用程序的工作。

For example:
https://xxx.us-east-1.amazonaws.com/dev/resize-image?f=sample.jpg&w=600&q=10

节点模块问题
部署到 Lambda 函数时可能会遇到问题。问题是,与 AWS 相比,您的节点模块是为错误的环境配置安装的——所以像 Sharp 这样的一些包可能无法在您的 Lambda 函数中工作。出于这个原因,AWS 发布了一个名为的 Docker 镜像,你可以用它在运行serverless deploy之前安装所有的节点模块


获得更好职业所需的技能。

掌握现代技术技能,获得认证,提升您的职业生涯。无论您是新手还是经验丰富的专业人士,您都可以通过实践来学习,并在 ACG 的帮助下推进您的云计算职业生涯。


github 存储库代码

我创建了一个 GitHub 库,在这里你可以看到与本文相关的代码——你可以使用 Lambda 函数随意克隆和创建你自己的图像处理应用。我期待您的反馈和意见!

无服务器正在吞噬堆栈,人们都吓坏了,他们应该是

原文:https://acloudguru.com/blog/engineering/serverless-is-eating-the-stack-and-people-are-freaking-out-and-they-should-be

欢迎来到“无服务器超级英雄”!在这里,我与工具制造商、创新者和开发人员聊天,他们正在探索“无服务器”云应用的全新世界。

在本期节目中,我采访了 Steven Faulkner,他是 LinkedIn 的高级软件工程师,也是 T2 business T3 的前工程总监。为了清晰起见,以下采访经过了编辑和压缩。

AWS Lambda 在容器上加盖了一个大的弃用标志

福里斯特布拉萨尔 :在你之前的公司 business,我听说当你改用无服务器后,你的托管成本降低了大约百分之四十。你能谈谈之前所有的钱都去了哪里,以及你是如何实现这种成本改善的吗?

史蒂文·福克纳(Steven Faulkner):我认为有 40%落在了那里。最初的结果甚至更好。我们有一项服务,每月花费约 2500 美元,在 Lambda 上降到每月约 500 美元。

Bustle 是一家媒体公司——它有很多内容,有很多病毒式的、峰值流量——所以跟上这些并不总是最容易的事情。我们利用了 EC2 的自动缩放,这很有效……除非它不起作用。但是当我们迁移到 Lambda 时,我们不仅节省了大量资金,还因为 business 的流量基本上是白天的一半,我们看到无服务器解决了所有这些令人头疼的扩展问题。

全栈无服务器应用

另一方面,您是否发现无服务器带来了任何意想不到的成本增加?

毫无疑问,有些事情成本更高,或者可以更便宜地完成,而不是在无服务器的情况下。当我在 business 的时候,他们正在研究一些关于数据管道的东西,并决定完全不使用无服务器,因为通过 Lambda 太贵了。

最终,尽管托管成本对我们来说是一件有趣的事情,但它很快成为我们转向无服务器的相对非因素。这为我们节省了资金,这很酷,但无服务器的吸引力实际上更多的是我们的团队开发和部署这些应用程序的速度。

在 business,我们只有一个兼职“运营”人员。有了无服务器,这些责任就分散到了我们的团队中,这让我们所有人可以更专注于应用程序,而不是如何部署它。

我们当中任何一个已经从事无服务器工作一段时间的人都知道“NoOps”的承诺听起来可能很棒,但现实是所有系统都需要维护和保养,即使是那些你几乎无法控制的系统。您的团队如何让您的无服务器应用程序在生产环境中平稳运行?

我也不喜欢“NoOps”这个词;这是一个误称,误导了人们。毫无疑问,在无服务器的情况下,我们花时间回答了这个问题:“我们如何知道这个系统内部发生了什么?”

那时 IOPipe 刚刚起步,所以我们是他们的第一批客户之一。我们使用 IOPipe 来获得一些可观察性,然后 CloudWatch 变得更好,亚马逊 X 射线进入了画面,使事情变得更好。从那时起,Bustle 还建立了一系列工具,这些工具可以获取所有的 Lambda 日志和数据,并进行一些转换——稍微擦洗一下——然后将其发送到像 DataDogScalyr 这样的地方进行分析、搜索、度量和报告。

但我不想撒谎,我仍然不认为它超级棒。它达到了可行的程度,我们可以操作,不会觉得我们总是错过实际发生的事情,但还有很大的改进空间。

另一个常见的无服务器痛点是本地开发和调试。你对此有何反应?

我写了一个名为 Shep 的框架,business 仍然使用它来部署我们所有的生产应用程序,并且它处理本地开发部分。它允许您在本地开发 NodeJS 应用程序,然后将其部署到 Lambda。它可以在 Lambda 拥有环境变量之前处理环境变量,并对版本控制和使用 webpack 进行捆绑有一定的了解。所有你不想让普通开发人员担心的东西。

我在 business 的头几个月构建了 Shep,从那以后,无服务器框架变得越来越好。山姆已经有所好转。整个生态系统都变得平稳了。如果我今天做这件事,我可能不需要写谢普。但在当时,那绝对是我们必须做的。

Amazon API Gateway update with new features to simplify API development.

Amazon API Update with features to simplify API development.

你发现了无服务器领域的一个有趣的现实,那就是:它发展得如此之快,以至于很容易创建许多很快就会过时的工具和粘合代码。你认为这是真的吗?

这么说非常公平。几个月前,我在 Twitter 上发了一个帖子,我自己也意识到 Shep 不再是我做部署的方式。当 AWS 发布他们自己的工具时,开始似乎总是很糟糕,所以诱惑是用你自己的工具来填补这些空白。

但亚马逊 AWS 服务反应迅速,变得更好。因此,我认为我学到的经验是尽可能依赖 AWS,或者在 AWS 的基础上构建,并使其可插拔,以便当它变得更好时,您可以恢复到 AWS 工具。

老实说,我并不羡慕那些根据自己开发的工具来瓜分无服务器市场的人。我不认为这是一件长期可持续的事情。

当我与开发人员和系统管理员交谈时,我感觉我遇到了很多关于无服务器概念的愤怒。人们总是想告诉我为什么它永远不会为他们工作的三个原因。为什么你认为这个概念会激发如此多的敌意,你如何试图改变人们对此的看法?

很大一部分原因是我们一次贬低了这么多东西。与容器之类的东西相比,我确实觉得这是一个很大的进步。Kelsey Hightower 曾经说过这样的话:容器使你能够利用现有的范例并将其向前推进,而无服务器是一个全新的范例。

所以所有这些人们已经发明并投入时间、金钱和资源的东西正在消失,这是令人痛苦的。这不会在一夜之间发生,但是任何时候你创造的东西让人们觉得他们花了 10 年做的事情已经过时了,这是很难的。我真的不知道我是否有一个好办法来解决这个问题。

我的无服务器目标是更快地构建东西。我是一名产品开发人员;那是我的背景,那是我喜欢做的事情。我想创造世界上发生的很酷的事情,而无服务器让我比其他方式做得更好更快。因此,当有人来找我说“我很难过,这种旧的做事方式正在消失”,我很难同情。

听起来你在强调,无服务器运动更多的是商业价值,而不是技术。

没错。但是这个世界是一个大帐篷,可以容纳各种各样的东西。我在 Kubernetes 上看到了围绕 OpenFaaS 和各种服务功能的变化,我对这些东西没有特别的用途,但我可以看到他们这样做的企业,如果它有助于人们过渡到无服务器,那就太好了。

那么,你对无服务器的定义是什么?

我总是开玩笑说“原生云”会是一个更好的无服务器术语,但不幸的是,它已经被使用了。我认为无服务器实际上是关于托管服务的。比如,谁负责拥有我的应用程序所依赖的这个东西是否保持不变?功能即服务只是其中的一小部分。

我的描述是:功能即服务是云粘合剂。所以如果我在做一架模型飞机,胶水是这个过程中必不可少的一部分,但不是最重要的部分。没有人会看着你的飞机模型说:“哇,你用的胶水太神奇了。”关键在于你如何把所有这些部分组合在一起,而 FaaS 做到了。

而且,正如 Joe Emison 指出的那样,你也不仅仅局限于一家云提供商的服务。我是亚马逊 AWS 的 Algolia 的大用户。我喜欢使用 Algolia 与 Firebase,或 Netlify。无服务器就是把这些碎片粘在一起。接下来就要看服务提供商是否真的做好他们的工作了。随着时间的推移,希望供应商做得越来越多。

Serverless stack for app innovation and accelerated development.

Serverless stack

我们看到无服务器思维吃掉了堆栈的所有不同部分。为了加速这一过程,功能即服务确实是一个关键点。下一大块是数据库。明年我们会看到很多创新。 FaunaDB 在那个领域做了一些很酷的事情, CosmosDB 也是如此。我相信 Redis 风格的无服务器产品也缺少一块市场,这种产品甚至可以说出 Redis 命令,但在引擎盖下是自动分布和可扩展的。

目前寻求采用无服务器的公司面临的合法障碍是什么?

可能最大的是:你如何处理遗留事物的迁移?在 business,我们最终主要围绕无服务器重新设计我们的整个平台,这是一个选择,但肯定不是每个人都可以使用。但即使在那时,我们第一次推出无服务器服务时,我们关闭了所有的 Redis 实例——因为 Lambda 启动了所有这些容器,我们达到了连接限制,这在普通应用程序中是绝对想不到的。

因此,如果您在某个地方的大型机上有某个东西,它习惯于只有 20 个连接,然后您将一些上游服务转移到 Lambda,突然它有 10,000 个连接,而不是 20 个。你有麻烦了。如果你在过去的四、五年里整体上接受了面向服务的架构,那么你可能会有一个更好的时机,因为你可以说“好吧,所有这些东西都是通过 API 相互通信的,所以我们可以用无服务器的功能来代替单一的服务。”

您对其他新兴的无服务器堆栈趋势感兴趣吗?

在这一点上,我们已经用无服务器解决了许多容易解决的问题。就像你如何处理环境变量,或者你将如何构建一个存储库,并使开发人员能够快速编写这些函数,我们开始建立一些非常好的最佳实践。

接下来会发生的是,我们将围绕架构进行更多的迭代。我如何将这四个服务粘合在一起,连接它们的 Lambda 函数看起来如何?我们还没有无服务器的轨道——这并不意味着它实际上是一个 Lambda 函数。也许它允许您在一个文件中编写一组相互通信的函数,然后使用 webpack 之类的东西来拆分这些函数,并以对您的应用程序有意义的方式部署它们。

我们甚至可以在运行时对此做出反应。你可以有一个应用程序,它实际上正在查看代码中发生的事情,并且说:“哇,你的代码的这一部分花了很长时间来运行;我们应该让它拥有自己的 Lambda 功能,我们应该自动部署它,并为您设置 SNS 触发器。”这一切都是不切实际的,但我认为我们离拥有这些工具不远了。

因为说到底,作为一名开发人员,我并不关心 Lambda,对吗?我的意思是,我现在必须关心,因为这是我工作的层,但是如果我可以移动一层,在那里我只是编写业务逻辑,代码得到适当的分割,这是真正的魔法。


获得更好职业所需的技能。

掌握现代技术技能,获得认证,提升您的职业生涯。无论您是新手还是经验丰富的专业人士,您都可以通过实践来学习,并在 ACG 的帮助下推进您的云计算职业生涯。


Forrest Brazeal 是 Trek10 的云架构师和无服务器社区倡导者。他编写了无服务器超级英雄系列,并在一位云大师那里绘制了“【FaaS】和愤怒的 ”卡通系列。如果你有一个无服务器的故事要讲,请不要犹豫 让他知道

容器,满足无服务器:谷歌云运行入门

原文:https://acloudguru.com/blog/engineering/serverless-meets-containers-with-google-cloud-run

随着云原生应用程序开发成为标准实践,许多开发人员在看似对立的无服务器和容器范例之间分裂。

无服务器解决方案提供了终极抽象,将微服务隔离成可以独立管理和扩展的组件。但是有一个权衡:您的服务必须是事件驱动的,并且您必须符合您的云供应商的无服务器框架。

同时, container 解决方案为开发人员提供了最大的自由,因为它们可以打包任何运行时、编程语言或框架,同时仍然提供一个独立的工作单元。然而,编排容器以使它们可以投入生产需要大量的工作(除非你的兼职是作为一名 Kubernetes 管理员)。

但是如果我告诉你有一种方法可以结合这两种方法呢?

好消息!有。我会告诉你的。现在是谷歌云运行

Google Cloud Run 是什么?

Google Cloud Run 提供了容器的所有好处,在无服务器环境中运行。开始使用云运行再简单不过了。

在谷歌云项目中,你会在菜单的计算部分找到云运行。云运行部署称为服务。要创建一个,只需点击创建服务

你需要给你的服务起一个名字,所以按照传统,让我们从Hello(Hello World)开始。

接下来,我们需要选择一种身份验证方法。我们的 Hello World 应用程序将是一个公共的 web 服务,所以我们将选择允许未经身份验证的调用。

当我们点击下一个的时,我们将被要求选择一个容器图像。对于这个演示,点击选择并选择演示容器。或者您可以只输入容器图像 URL:

gcr.io/cloudrun/hello

然后点击创建,观看神奇的事情发生!云运行服务总是通过 HTTP 端点访问,因此 Google 的全局负载平衡器会自动配置为使用 SSL 保护的 URL 为您的新服务提供服务。几分钟后,您将看到服务 URL。点击链接查看你的 Hello World 应用程序!

如果您对您的服务进行任何更改,您将获得一个新的版本。您可以轻松地回滚到以前的版本,甚至可以在不同版本之间划分流量,以测试新功能。

使用容器给你运行任何东西的灵活性

当然,任何新技术的真正考验是它会运行毁灭吗?当然,在这种情况下,由于一个名为 HTTP-Doom 的项目,Cloud Run 成功通过了测试。

Cloud Run 需要在 Google Container Registry 中找到它的映像,所以让我们抓取 HTTP-Doom 容器映像,快速重新标记它,并将其推送到我们的项目中。您可以从 GCP 项目中的云 Shell 终端运行这些命令。只需将替换为您项目的 ID:

docker pull mattipaksula/http-doom

docker tag mattipaksula/http-doom gcr.io/<project-id>/http-doom

docker push gcr.io/<project-id>/http-doom

现在我们可以通过我们项目的 UI 来启动我们的毁灭服务,但是当我们都超级酷和像黑客一样的时候,让我们看看从命令行启动它有多容易:

gcloud run deploy doom --image gcr.io/<project-id>/http-doom

Cloud Run 会连续问我们三个问题,我们可以用一些默认值覆盖这些问题,但这是一个学习练习!

  • 首先,当出现提示时,我们将选择使用完全托管版本的 Cloud Run。Anthos 也有 Cloud Run,但那是另外一篇博客文章——或者一系列文章!
  • 接下来,根据提示选择一个区域。随便挑一个离你最近的。
  • 最后,当被询问时,输入 Y 来允许未经验证的调用。同样,这只是问你是否希望这是一个公共 web 服务的一个很长的方式。

命令完成后,您将获得新的云运行服务的 URL,或者您可以在 GCP 控制台的云运行部分再次找到它。点击链接,你会看到在你的浏览器中呈现的毁灭的超现实主义!当然 FPS 很烂,但这不是重点!

具有无服务器优势的容器

我们现在已经看到了运行容器化的应用程序是多么容易,它具有生产就绪的可伸缩性和负载平衡,而无需启动任何服务器或担心任何复杂的容器编排清单。

我们还获得了真正无服务器解决方案的所有优势。除了能够扩展到成千上万的实例,如果没有人使用我们的服务,它将扩展到零。

对于开发人员来说,云运行是将他们的容器投入生产的最简单、最灵活的方式。我们只是触及了云运行的皮毛。通过使用私有服务、发布/订阅触发器和自定义路由,Cloud Run 成为了微服务架构中的一等公民。

深入了解云运行

和我一起深入了解谷歌云运行。在这 6 小时的课程中,我们将学习如何掌握部署、与其他 GCP 服务集成,以及安全可靠地运行云。您将通过获得实际云运行应用的实践经验,并了解它们如何融入现代云原生堆栈中来学习。

Get a deep dive in Google Cloud Run from A Cloud Guru.

下次你想为云构建一个无服务器应用时,你将不再受供应商框架的约束,也不会被 YAML 淹没。云运行是您期待已久的更好、更棒的应用部署方式!

无服务器调度程序(SNS)

原文:https://acloudguru.com/blog/engineering/serverless-scheduler

该项目允许开发人员快速精确地安排事件,允许大量开放任务,并可扩展

亚马逊简单通知服务(SNS)

AWS 提供了许多优秀的服务,但在临时调度方面仍有潜力。我们使用术语临时调度来表示不规则的时间点调用,例如 32 小时一次,4 天一次。

Comparison of regular and irregular invocations (hoc scheduling)

Comparison of regular and irregular invocations

扎克·查尔斯向展示了几种实现无服务器调度的方法,每种方法在成本、准确性或未来时间方面都有各自的缺点。

崔琰对 step 函数作为一种特别调度机制的分析中,他列出了三个主要标准:

  1. 精度:任务的执行离我的预定时间有多近?越近越好。
  2. 扩展—开放任务的数量:解决方案是否可以扩展以支持许多开放任务。即已调度但尚未执行的任务。
  3. **扩展—热点:**该解决方案能否扩展到在大约同一时间执行许多任务?例如,数百万人设置了一个计时器来提醒自己观看超级碗,所以所有的计时器都在接近开球时间时启动。

本文展示了我的无服务器调度器以及它如何根据这些标准执行。后续文章将进一步研究伸缩性和成本。

概述

该服务的两个输入接口是 SNS 输入主题和输出主题,前者接收要安排的事件,后者由消费帐户托管。

每个输入事件都必须包含一个 SNS 输出主题的 ARN,一旦预定时间到来,有效负载将发布到该主题。

 SNS output topic: architecture of the scheduling service

Architecture of the scheduling service

在内部,该服务使用 DynamoDB 表来存储长期事件。预定时间少于 10 分钟的事件被直接放入短期队列。

此队列使用 DelaySeconds 属性让消息在适当的时间变得可见。事件加载器功能基本上是一个 cron 作业。发射器函数最终将事件发布到所需的主题。

用途

调度服务接受一个事件,该事件带有一个字符串负载、一个目标主题、预定的执行时间和一个用户代理。后者主要是识别来电者。

上面的 python 代码发布了一个带有自定义字符串负载的事件。请确保您填写了所有四个字段,否则该活动可能会被取消。更多信息请参见本文末尾的故障排除部分。

请注意,我们必须创建自己的 SNS 主题,该主题必须向无服务器调度程序授予发布权限。 quickstart 项目包含一个脚本,帮助您创建 SNS 主题。公共无服务器调度器的 AWS 角色是arn:AWS:STS::256608350746:assumed-role/AWS-scheduler-prod-us-east-1-λrole/AWS-scheduler-prod-emitter

The AWS role of the public serverless scheduler

您也可以手动为您的 SNS 主题分配额外的访问策略。

Assigning additional access policy to a SNS topic

之后,您需要一个 lambda 函数,它从您的输出主题中消费事件。

就是这样。您可以使用快速启动项目快速安排和接收您的第一个活动。去试试吧!

评估

让我们回到引言中提到的标准:精度、规模和热点。

精确度

精确可能是最重要的。没有多少用例能够容忍事件迟到几分钟到几小时。然而,亚秒级的延迟对于大多数用例来说是可行的。

在过去的五天里,我每小时创建大约 1000 个事件的基本负载。发射器函数记录目标时间戳和当前时间戳,然后将它们进行比较以计算延迟。绘制这些数据给了我们下图。

如您所见,绝大多数低于 100 ms,最大值接近 1000 ms。当您查看直方图时,这一点变得更加清晰。

刻度

在这里,对许多开放任务进行缩放是很容易的。SQS 和 DynamoDB 并没有硬性限制你可以处理多少个项目。因此,无服务器调度程序可以在存储器中保存数百万和数十亿个事件以供以后处理。

根据与 Daniel Vassallo 的讨论,我不认为 SQS 会成为瓶颈。

唯一的瓶颈是事件加载器函数。不过,它使用了一个专用索引,有助于确定哪些项目将很快被安排。然后,它只加载数据库 id,并将它们交给一个可伸缩的 lambda 函数,然后该函数将整个事件加载到短期队列中。

不同负载下的测试表明,瓶颈 lambda 函数每分钟能够处理超过 100,000 个事件,每月能够处理 43 亿个事件。由于成本增加,我没有进行更大规模的测试。欢迎投稿😉

热点

当大量事件到达输入主题或者要在很短的时间内发出时,热点就会出现。

DynamoDB 被配置为使用按请求付费,这应该允许几乎无限的吞吐量峰值,但是当 DynamoDB 进行内部自动伸缩时,我必须添加一个重试机制。时间最关键的函数是发射器,它在向输出主题发出事件后执行任何可能的数据库操作。

SNS 输入话题和 SQS 短期队列预计不会在高压下变慢,但消费 lambdas 可能会。

Randall Hunt 写了一篇 AWS 博客文章,深入探讨了这种情况下的并发和自动扩展。

[…]Lambda 服务将使用五个并行的长轮询连接开始轮询 SQS 队列。Lambda 服务监控正在进行的消息的数量,当它检测到该数量呈上升趋势时,它会将轮询频率增加每分钟 20 个 ReceiveMessage 请求,并将函数并发性增加每分钟 60 个调用。

虽然 lambda 函数的冷启动会导致延迟略微增加,但轮询行为或最终的 lambda 并发限制会导致重大延迟。

为了测试这一点,我计划在几秒钟内发布 30,000 个事件。虽然中位数上升了很多(可能是由于冷启动),但这仍然不足以达到任何限制。

Scheduled test showing 30.000 events to be published within a couple seconds

总结热点部分:负载非常高的非常尖锐的尖峰可能会成为一个问题,但这些尖峰太大了,我还无法测试它们。

我对 re:Invent 2019 即将到来的一场深入 SQS 的演讲很感兴趣。

故障排除和错误处理

由于服务的异步特性,错误处理有点棘手。我决定不使用 API 网关端点来发布事件,因为它的成本为每百万事件 3.5 美元(相比之下,SNS 的成本为每百万事件 0.5 美元)。错误可以发布到另一个输出主题,即失败主题。

如果事件没有在您的输出主题中发布,请首先确保您将正确的事件推送到输入主题。它必须包含所有四个字段有效载荷日期目标用户。所有这些都必须是字符串。

您还可以在事件中添加一个字段 failure_topic ,其中包含您希望收到错误通知的另一个 SNS 主题的 ARN。请注意,这必须与您的输出主题具有相同的无服务器调度程序发布权限。

结论

无服务器调度程序在精度和规模上都表现出色。热点可能会成为一个非常尖锐的峰值和异常的量的问题,但实际的限制仍有待发现。

我很高兴看到你的测试结果和你对无服务器调度程序的看法。去尝试一下快速启动项目或者查看一下源代码。您会将它附加到您自己的项目中吗?

更多的测试和见解将在接下来的几周内公布。


获得更好职业所需的技能。

掌握现代技术技能,获得认证,提升您的职业生涯。无论您是新手还是经验丰富的专业人士,您都可以通过实践来学习,并在 ACG 的帮助下推进您的云计算职业生涯。


想要更多无用的好处吗?看看这些:

无服务器对决:AWS Lambda vs Azure Functions vs Google Cloud Functions

原文:https://acloudguru.com/blog/engineering/serverless-showdown-aws-lambda-vs-azure-functions-vs-google-cloud-functions

TL;速度三角形定位法(dead reckoning)

说到时髦的流行语,“无服务器”可能是最受欢迎的。

无服务器模式的核心是功能即服务(FaaS)模型,这是一种服务类别,它使在云中运行代码变得非常简单,无需配置任何计算基础架构。

FaaS 确实是一个游戏规则改变者:它大大加快了部署复杂后端服务的能力,并使应用程序开发民主化。公司需要投入资本和资源将想法推向市场的日子已经一去不复返了。现在,你需要的只是一个想法、好的代码和一个主要云提供商的账户。几分钟之内,您的应用程序就可以在托管基础架构上运行,为数百万个请求提供服务,并(虚拟地)无限扩展。

本文将比较亚马逊网络服务(AWS)、微软 Azure 和谷歌云平台(GCP)的 FaaS 服务,并对现代云时代最具变革性的技术之一提供一些见解!

背景

任何应用程序的核心都是组成其逻辑和功能的代码。无论是最新的手机游戏,还是你典型的无聊的企业财务软件,都有一行行(有时几千行)的代码需要在某个地方运行。这个“某个地方”通常是一台服务器或几组服务器,CPU 周期在这里执行为这些应用程序提供动力的逻辑。

但是服务器,即使是虚拟云服务器,也很昂贵,维护起来也很麻烦,通常需要训练有素、经验丰富的管理员来保护和管理它们。此外,当没有用户在玩游戏或使用财务软件时,这些昂贵的服务器会无所事事,几乎是无所事事,等待新的“工作”到来。

传统的计算基础设施可能非常低效,这正是 FaaS 如此吸引人的原因。

FaaS 不用搭建复杂的基础设施(服务器、负载平衡器等),而是让你在一个托管的计算资源池上运行你的代码,同时只为执行的持续时间付费。

FaaS 函数是事件驱动的,这意味着它们响应某些事件而运行。虽然情况并非总是如此,但这些功能通常是短命的、短暂的、无状态的和单一目的的。

下表简要总结了 AWS、Azure 和 GCP 提供的 FaaS 服务:

| 服务 | GA 自 | 地区供货情况 |
| 自动气象站λ | 2014 年 11 月 | 全球的 |
| Azure 函数 | 2016 年 3 月 | 全球的 |
| 谷歌云功能 | 2016 年 2 月 | 全球的 |

定价

FaaS 受欢迎的主要原因之一是成本:它非常便宜,而且在许多情况下,几乎是免费的。也就是说,就像云中的其他东西一样,随着规模的扩大,价格标签可能会发生巨大变化。

FaaS 成本

FaaS 成本的两个主要来源是:

  1. 请求数量:通常每月每百万次请求进行计费
  2. 计算时间:这是对函数生命周期的持续时间和所提供的内存量的度量,以 GB 秒为单位(在相同的持续时间内,高内存执行的成本高于低内存执行)

此外,数据传输或存储成本等其他费用可能适用,但这些费用取决于具体的使用情形。

定价比较

所有三大提供商都有每月免费层配额,达到配额后会产生费用。如果您正在试验或构建一个概念验证,您很可能会被包含在免费层中。

下表比较了每个提供商提供的免费层配额,以及额外的使用成本。

| 供应商 | 每月免费时长(GB 秒) | 每月免费请求 | 每增加 100 万个请求的成本 | 每增加 1 GB 秒的成本 | 持续时间四舍五入到最接近的 |
| 自动警报系统 | 400,000 | 一百万 | $0.20 | $0.000016 | 1 毫秒 |
| 蔚蓝的 | 400,000 | 一百万 | $0.20 | $0.000016 | 1 毫秒 |
| GCP | 400,000 | 两百万 | $0.40 | $0.0000125 | 100 毫秒 |

要点:三家供应商的定价结构几乎相同。

AWS 和 Azure 有相同的定价和每月免费配额,而 GCP 每月提供额外的 100 万个免费请求,并对额外的请求有可比的定价。AWS 和 Azure 都将其持续时间四舍五入到最接近的 1 毫秒,而 GCP 四舍五入到最接近的 100 毫秒增量,这可能会增加规模的总成本。


获得痛苦的云词典
说云不一定要努力。我们分析了数以百万计的回复,找出了最容易让人犯错的概念。抓住这个云指南获取一些最痛苦的云术语的简洁定义。


功能比较

语言支持

世界上的编程语言比《星球大战》续集、前传和衍生剧还要多。由于显而易见的原因,每种编程语言都有优点和缺点,所以需要为正确的工作选择正确的工具。大多数情况下,云提供商在其各自的 FaaS 产品中支持大多数流行语言。

可用运行时间

下表显示了 AWS、Azure 和 GCP 当前支持的 FaaS 运行时:

| 服务 | 支持的语言 |
| 自动气象站λ | C#,Go,Java,Node.js,PowerShell,Python,Ruby |
| Azure 函数 | C#、F#、Java、Node.js、PowerShell、Python、TypeScript |
| GCP 云函数 | C#,F#,Go,Java,Node.js,Python,Ruby,Visual Basic |

要点:三个主要提供商之间非常相似的语言支持,唯一明显的例外是 GCP 缺乏对 PowerShell 的支持,Azure 缺乏对 Go 的支持(考虑到 Go 是由 Google 开发的而 PowerShell 是由 Microsoft 开发的,这是一个相当有趣的观察结果!)

自定义运行时

如果您选择的语言没有在上面列出,仍然可以“自带运行时”,这允许您用任何编程语言实现提供商的 FaaS。有关当前对自定义运行时的支持,请参见下表。

| 供应商 | 支持自定义运行时间 |
| 自动气象站λ | 是的,使用定制部署包或 AWS Lambda 层 |
| Azure 函数 | 是的,使用 Azure 函数自定义处理程序 |
| GCP 云函数 | 是的,使用自定义 Docker 图像 |

可伸缩性、并发性和冷启动

在 FaaS 时代的早期,最常见的用例是在转向更成熟的解决方案之前“试一试”或“模仿一下”。那些日子已经一去不复返了,今天发现全球规模的生产应用完全运行在 FaaS 后端并不罕见。

为了实现这一点,了解云提供商如何扩展 FaaS 工作负载以应对不断增长的需求,以及他们如何处理并发请求非常重要。

可量测性

如前所述,FaaS 函数是事件驱动的,因此当接收到一个事件时,该函数的一个实例就会启动并处理请求。该实例保持活动状态以处理后续事件,如果在特定时间范围内没有接收到任何事件,它将被回收。

所有这三个提供商都宣传几乎无限制的自动扩展,尽管这里可能还有其他因素在起作用,这些因素将在下面讨论。

并发

当一个 FaaS 实例正在处理一个请求,并且收到另一个请求时,第二个实例会加速处理这个额外的请求(实例一次只处理一个请求。)并发性是在任何给定时间可以同时运行的功能的数量。

| 服务 | 并发 |
| 自动气象站λ | 标准:每个地区 1000(软限制)
保留:变化
供应:变化 |
| Azure 函数 | 没有公布的并发限制 |
| GCP 云函数 | 没有公布的并发限制 |

AWS 是唯一一个提供高度定制的并发管理选项的提供商,而 Azure 和 GCP 在如何处理并发执行方面有点模糊。

冷启动

鉴于 FaaS 作为一项技术相对年轻,它有许多诋毁者和反对者。到目前为止,他们最喜欢的批评是“冷启动”的概念。

那么,什么是冷启动呢?

想象一下这个熟悉的动作电影场景:我们的英雄以每小时 120 英里的速度在高速公路上行驶,可能是在拯救一些生命的路上,当他在休息时,看着报纸,从一名毫无防备的高速公路巡警身边飞驰而过。当骑警摸索着启动引擎,并以高速追赶时,我们的英雄已经在数英里之外了,骑警需要一些时间才能赶上。

同样,处于非活动状态的 FaaS 实例将需要一些额外的时间来响应请求。这种最初的延迟被称为冷启动。

与已经处于活动状态并接收到请求的 FaaS 实例相比,在这种情况下,没有初始延迟,实例几乎可以立即开始处理请求。以我们的例子来说,这就好比一名高速公路巡警在高速公路上以正常速度行驶时被一名超速行驶的司机超过。在这种情况下,士兵可以非常迅速地加速并在几秒钟内追上去。

虽然云提供商不公布他们的冷启动统计数据,但下表显示了行业分析师观察到的估计平均值:

| 服务 | 平均冷启动时间(秒) |
| 自动气象站λ | <1 |
| Azure Functions | > 5 |
| GCP 云函数 | 0.5 – 2 |

冷启动可能会影响对延迟非常敏感的 FaaS 工作负载的性能,但有一些方法可以减轻这种影响,并且它对 Azure 平台的影响似乎比它的两个竞争对手更大。此外,AWS 现在提供“供应并发”作为一种方法来消除 Lambda 的冷启动。我们将在本文后面更详细地讨论这个特性。


自动化 AWS 成本优化
AWS 为您的企业提供了前所未有的价值,但经济高效地使用它可能是一项挑战。在这个免费点播的网络研讨会中,您将了解 AWS 成本优化工具和策略的概况。


配置和性能

并非所有功能都是相同的,因此不同的工作负载可能需要不同的设置来优化性能。

记忆

根据代码对资源的需求程度,必须相应地调整内存。如果分配的内存太低,一个函数将需要更长的时间来执行,并可能超时,但如果内存设置得太高,您可能会为未使用的资源付出过多的代价。

云提供商提供不同的最大内存配置,而 CPU 能力是根据所选内存量线性自动配置的。

| 服务 | 内存 |
| 自动气象站λ | 128 MB–10240 MB |
| Azure 函数 | 128 MB–1500 MB(消费计划)
128 MB–14000 MB(高级和专用计划) |
| GCP 云函数 | 128 MB–4096 MB(128 MB 的倍数) |

值得注意的是 GCP 云功能可以配置的最大内存:4096 MB,这个限制比 AWS 和 Azure 提供的要低得多。

执行时间

FaaS 的另一个可配置方面是最大执行时间。虽然大多数功能只需几秒钟(或更短时间)即可执行,但一些密集型工作负载可能需要更长时间,大约几分钟甚至几小时(例如,密集型机器学习或数据分析工作负载)。

下表显示了每个云提供商提供的最大超时时间:

| 服务 | 最大超时 |
| 自动气象站λ | 15 分钟 |
| Azure 函数 | 5 分钟(消费计划)
30 分钟(高级和专用计划) |
| GCP 云函数 | 9 分钟 |

需要注意的是,增加超时时间并不总是解决问题的办法,应该结合调整内存来考虑。


后 COVID DevOps:加速未来 COVID 如何影响——甚至加速——工程团队的 DevOps 最佳实践?观看这个免费的点播网络研讨会与 DevOps 领导者进行小组讨论,我们将在后 COVID 时代探索 DevOps。


管弦乐编曲

如前所述,部署在 FaaS 上的功能本质上是无状态的。换句话说,函数不知道其他函数或其他函数的执行结果。

甚至同一个函数的调用也是完全相互独立的。这种无状态范式使得 FaaS 如此可扩展和易于配置。

虽然无状态方法对于执行大量短期和单一用途的功能(例如,网站上的联系人表单)来说非常优秀,但它使得构建任何有意义的复杂应用程序(通常需要某种状态管理)变得非常困难。意识到这一点,云提供商构建了编排服务,将这些功能作为工作流中的“步骤”进行集成,其中一个步骤的输出可以作为输入传递给另一个步骤。这使得在完全无服务器的方法中构建相当复杂的工作流成为可能!

下表列出了每个提供商提供的业务流程服务。这些服务通常也非常具有可伸缩性,并且具有许多超出本文范围的特性:

| 供应商 | 编排服务 |
| 自动警报系统 | AWS 阶跃函数 |
| 蔚蓝的 | 持久的 Azure 功能 |
| GCP | GCP 工作流程 |

HTTP 集成

FaaS 服务的强大之处在于它们是事件驱动的,这意味着某些“有趣的事件”可以触发函数的执行。

“有哪些有趣的事件?”你可能会问。

从简单的 cron 计划(例如:每天午夜运行该功能)到云提供商生态系统中的其他服务(例如,当文件上传到云存储时运行该功能)。但是最流行的场景之一是将 FaaS 与 HTTP 端点集成在一起。

具有集成 FaaS 后端的静态 web 前端(即 HTML/CSS/JavaScript)是构建无服务器 web 应用程序非常常见和流行的架构模式。

虽然这三个提供商都支持 HTTP 集成,但 AWS 需要提供和配置单独的资源 API Gateway,这也是单独计费的。Azure 和 GCP 有一个更加精简的 HTTP 集成。

| 服务 | HTTP 集成支持 |
| 自动气象站λ | 是,需要 API 网关(单独计费) |
| Azure 函数 | 是的,开箱即用 |
| GCP 云函数 | 是的,开箱即用 |

托管计划

如前所述,考虑到可用性和延迟方面的各种需求,云提供商通过在其 FaaS 产品中提供不同级别的可用性来应对。

AWS Lambda 在历史上是作为一个基本的托管计划出现的,但最近 AWS 开始提供供应的并发性,这可以确保函数被初始化并准备好响应事件,将可怕的冷启动时间缩短到仅仅几毫秒。Azure 提供了更复杂的托管选择,而 GCP 只是提供了一个通用的方案。

| 服务 | 托管计划 |
| 自动气象站λ | 常规
供应并发 |
| Azure 函数 | 消费
溢价
专用 |
| GCP 云函数 | 一般 |

底线

当谈到比较三大云提供商的 FaaS 产品时,有一点是非常明显的:它们在功能和成本方面极其相似和可比。

虽然 AWS Lambda 是三者中更成熟和最受欢迎的,但 Azure Functions 似乎有一些非常相似的功能,在某些方面,有更多的选项来适应边缘情况。GCP 云函数少了一些花里胡哨的东西,但仍然可以与其他两个相媲美。

俗话说,细节决定成败。在比较这三种 FaaS 服务时,很可能还有其他因素需要考虑。但无论是哪种情况,这里的关键要点是,FaaS 将继续存在,它是一种真正的变革性技术,只会继续获得采用,所以如果你还没有,请确保你正在利用它!


提升您的云计算生涯

希望获得认证或提升您的云计算职业生涯?通过 ACG 的课程、实验室、学习路径和沙盒软件学习按需云技能。

大数据、NoSQL、谷歌与 AWS

原文:https://acloudguru.com/blog/engineering/serverless-superheroes-lynn-langit-on-big-data-nosql-and-google-versus-aws

Lynn Langit 主演的无服务器超级英雄系列

欢迎来到“无服务器超级英雄”! 在这个空间里,我与工具制造商、创新者和开发人员聊天,他们正在探索“无服务器”云应用的新世界。

对于今天的版本,我与大数据和云架构师 Lynn Langit 进行了交谈。Lynn 是 Google Cloud 开发者专家,一位 AWS 社区英雄 ,前微软员工。为了清晰起见,以下采访经过了编辑和压缩。

了解大数据基础知识以及它的必要性和工作原理!

Forrest Brazeal:我认识的大多数人只专注一朵云,而你似乎什么都擅长!你在世界各地说话,并与 AWS、Azure 和谷歌云平台的客户合作。“无服务器”这个词对您和您的客户意味着什么?

Lynn Langit :常见的定义是“最终客户不对服务器负责。”实际上,我已经进一步提升了这个定义。我一直和一位名叫安东·德尔辛克的朋友密切合作,他负责 Azure Stack。

在最近的一次旅行中,我们一起开车环游了挪威,并得出了无服务器的定义:“一种抽象出容器管理的服务。”所以我们的新行话是“无集装箱”。

你让我大吃一惊!那么容器的未来是什么样的呢?你不认为顾客会想把他们自己的集装箱带到 FaaS 站台吗?

我有一个合理的回答:我不在乎。对我来说,容器是新的虚拟机。所有这些关于容器的狂热,尤其是容器管理系统——看,必须有人来管理这些东西。我想付钱给云提供商来做这件事,这样我就不用这么做了。

实际上,我还没有为客户建立很多纯无服务器的解决方案。有些人仍然更喜欢容器而不是无服务器,他们的理由通常是可移植性和控制。如果您对这些选项没有迫切的需求,并且您可以从无服务器服务中获得价值,那么尽一切办法去做吧。

你是云端数据方面的专家,我一直认为“无服务器”的概念在数据层变得很不可靠。对我来说,“无服务器”架构的部分要点是,你只需为你使用的容量付费,但许多数据服务都是按小时(RDS)或按供应容量(DynamoDB)收费的,所以即使你的服务没有流量,你也要付费。你认为像 AWS Athena 这样的按查询付费的服务是未来吗?

我认为谷歌在这方面处于领先地位。多年来,他们一直提供开箱即用的无服务器或接近无服务器的数据解决方案。我是说,BigQuery 从 2011 年就出来了。这是一个 NoOps 基于文件的 SQL 类型的解决方案。甚至 Cloud Spanner——您设置了一个实例,但是您必须转动的唯一旋钮是为了利用率。

一旦你达到一定的数量,他们主张获得更多的节点,但仅此而已。非常有趣的是,随着谷歌试图向 BigQuery 添加企业数据仓库功能,如粒度安全和流媒体,AWS 如此迅速地构建了 Athena,并添加了与 Glue 等服务的集成。

所以我的预测是,随着谷歌扩大其数据组合——正如他们在添加 BigTable 时所做的那样——它将推动 AWS 等其他云提供商提供自动调谐,减少 RDS、RedShift 和 EMR 的旋钮。我认为你会很快看到这一点,因为谷歌真的在推动他们,我们已经看到 AWS 对他们云优势的任何竞争威胁都会做出非常迅速的反应。

没错,这可能是他们在 Aurora 上投入这么多资金作为专有 RDBMS 的原因。你提到了雅典娜,我也玩过一点。如果您没有以最佳方式使用该服务,以特定的柱状方式构建您的数据,该服务很快就会变得昂贵。这是否限制了服务的有用性,还是会改变人们访问无服务器数据的方式?

嗯,Athena 最适合某种类型的数据。实际上,是对日志文件的特殊查询。如果你想要高音量,你必须有某种压缩。

但是就像 Docker 和 Lambda 对于应用程序开发人员来说很难理解一样——这就是为什么我们有像 ServerlessConf 这样的事件——我认为对于数据专业人员来说,让他们理解“无服务器”或服务器精简版实现更难。因为这是数据库管理员管理集群的全部历史。所以新的范式很可怕,我认为 DBA 倾向于固执己见,拒绝接受。

我实际上认为这已经损害了 BigQuery 的采用,这就是为什么它自 2011 年以来一直存在,直到 2016 年亚马逊才感到有必要推出 Athena。你我都知道他们本可以更快地创造它,但是市场不在那里。

我想很多人(包括一些固执的数据库管理员)倾向于将“无服务器”与“NoSQL”联系在一起。事实上,我认识一些人,他们认为关系数据库正在半途而废,比如需要事务一致性的金融应用程序。你认为这是一个公平的假设吗?为什么或为什么不?

过去几年的 NoSQL 趋势真的让我很感兴趣。毕竟,当我在微软工作时,我写过关于 SQL Server 的书。我用 OLTP 和 OLAP 做了很多传统的数据仓库。当我在 2011 年离开微软独立时,有很多关于 Hadoop 和 NoSQL 的宣传。我经常发现的是,它并没有实现。

我的大部分咨询业务都围绕着云中的数据。人们说“你能帮助我们从 NoSQL 数据库 X 中获得商业价值吗?”对于许多中小型企业来说,我不能。他们没有员工,没有意愿,没有必要去改变。

今天,如果一个客户说他们想要实施他们自己的 NoSQL 堆栈,我真的要向他们挑战。我的意思是,有时他们有很强的卡珊德拉天赋或什么的,但这是一个非常罕见的例外。我认为 NoSQL 被过分宣传了,没有什么商业价值。这给我敲响了警钟,我已经恢复了许多失败的 NoSQL 实现,将它们转换成 RDS。

为了澄清,当你谈到 NoSQL 发出危险信号时,你是指人们管理自己的部署,而不是依赖云提供商的托管服务?

部分地。老实说,我认为很多独立的 NoSQL 产品将会消失。要么他们会被亚马逊、微软或谷歌收购,要么他们将无法竞争。空间会非常小。我认为 Redis 会生存下来,因为他们的实现有一些真正独特的方面。卡珊德拉,不确定。

我是说,我经历了一段痴迷于 NoSQL 的时期。我做了演示——“SQL 开发人员的 NoSQL”——我真的认为这是未来。但是我得出的结论是,就像容器一样,NoSQL 实现也是一种干扰。跳过容器—转到函数。跳过 Cassandra——使用 DynamoDB 或托管关系服务。

因此,听起来你并没有放弃无服务器系统的关系数据库。

一点也不。如果客户确实有 NoSQL 的使用案例,我会推荐云提供商的 NoSQL。但我记得有一次我是 AWS 物联网解决方案的架构师,其中甚至参考架构都使用了 DynamoDB。

但是他们遇到了各种各样的问题,有一天我决定换到 Aurora。吓坏了所有人——他们说,“你在干什么?”我说,“我们在做什么?我们正在运送一种产品。”我们做到了。

假设我想要构建一个应用程序,该应用程序需要管理实时用户状态和交易数据,并在后端提供数据仓库和大数据处理。我不想自己管理任何数据库服务器。如果你可以神奇地挥动魔杖,将各种云提供商的最佳服务整合在一起,你会如何设计数据层?

让我们从对象存储开始。虽然 AWS 对 S3 生命周期管理流程做了很大的改进,但我喜欢谷歌的一点是,他们为谷歌云存储提供了统一的 API。AWS Glacier 的概念包括在内,因此您可以将近线、冷线、多区域和单区域存储打包在一起,并且它的呈现非常简单。我不喜欢的是它缺少了 S3 的一些特性——日志、版本、指标。因此,这有点像是在谷歌云存储的数据湖和 S3 之间的一场较量。

下一件事:流媒体摄取。这是我现在正在做大量工作的一个领域。现存的系统似乎都运行在卡夫卡身上。我个人喜欢 kine sis——快速、容易、简单——谷歌云发布/订阅也不错。但是卡夫卡和《云管道》在特征上是有区别的。我希望云供应商能有更多卡夫卡的特色——我正在寻找今年的 re:Invent!

对于 ETL,一些有趣的事情正在发生。我还不太喜欢 AWS 胶水。实际上,我喜欢由 Matillion 公司生产的 ETL 产品。你可以在 AWS 市场上找到他们的 AMI。这有点像浏览器中的 SQL Server SSIS,所以您有转换的可视化表示,您的老派 DBA 会说“哦,这看起来像是我的 ETL 工具!”

简而言之,如果你是 ETL 或 ELT,我更喜欢工具而不是 API。亚马逊真的在那里大放异彩。我不太喜欢他们的原生数据管道,但他们因为像 Matillion 这样的供应商而闪耀。另一方面,Google 要求你用他们的 API 编写所有代码,通常是用 Java。

这是一个很大的负面消息:谷歌是一个以开发者为中心的云。你先编码,然后工具再来,如果有的话。尽管他们的云非常强大,非常可扩展,但这并不是范例。而 AWS 是 DevOps 云,我认为这是他们成功的驱动因素之一,尤其是在数据方面,因为网络管理员和数据库管理员有更多的参考资料。

在关系层,我真的很喜欢 Aurora 和其他 RDS 实现。我对 Spanner 感兴趣,但这又是一个谷歌拿走他们自己的产品并发布它们的例子,而不理解世界上其他人并不在谷歌的范围内工作。

比如 Spanner 不支持外键,然后没有模式导入和转换工具。谁会采用现有的企业应用程序并更改关系模式呢?只是没有发生。谷歌甚至没有解决这个问题的事实让我很难过,因为事实是 Spanner 是一项非常漂亮的技术。

尽管谷歌在数据领域提供了更多,但这种缺乏完整产品的情况使我倾向于关注亚马逊。虽然我确实在关注谷歌在做什么,因为谷歌真正在做的是迫使亚马逊做出更好的产品。对客户有利,对谷歌不利。

最后,在大数据处理领域,这是 EMR 和 Cloud Dataproc 之间的真正较量。谷歌的虚拟机已经预热,速度非常快,几秒钟就能启动。我做了很多原型制作,所以这对我很好。如果你在处理突发工作负载,你可以使用谷歌版的 Spot preemptable。我希望 AWS 能更新 EMR,让它更现代一点——我也在 re:Invent 寻找它。老实说,现在我倾向于只使用数据块

您认为无服务器还可以通过哪些方式转变大数据,反之亦然?

ETL 仍然是数据世界中的大问题。我希望看到更多包含机器学习和统计的 ETL 工具。"看起来此数据需要 x。" "此架构是 A,此架构是 b。看起来您需要 ABC 的转换。"将常规计算,尤其是机器学习应用于 ETL 问题将是不可思议的。看看胶水流出后会发生什么会很有趣。

另一件事是机器学习的民主化。我总是在困难的时候坦白——这是我品牌的一部分。六个多月来,我一直致力于理解如何构建 TensorFlow 和 MXNet 模型,以提供实际的商业价值。到目前为止,我还不能做到这一点。和我交谈过的大多数人,如果他们是诚实的,也不能做到这一点。大多数人可以完成 Hello World 级别的示例,但是在示例和实际构建业务模型之间缺少一个转换层。

我真的对这个领域很着迷,因为在机器学习领域有很棒的无服务器服务,Rekognition API,Polly 和 Lex,而且还会有更多。但是,我们如何才能让 API 和工具足够成熟,让一个懂统计的业务人员能够制作一个模型呢?我认为这里有很多 API、工具和可视化工作要做。

你认为我们在云领域如何帮助新的学习者更容易使用无服务器?

学习无服务器的一个方法是构建一个物联网用例。我真的很喜欢用 Alexa 来构建——我和孩子们、学校老师,甚至脾气暴躁的开发人员都做过。我也喜欢简单的啤酒服务。把人们放在一个有趣的、低成本的环境中,他们会说“哦,我真的能做到!”我用回声点是因为它们能解除人们的武装。

我们不能忽视无服务器的一个方面:这项技术带来了巨大的变化。很吓人;这是破坏性的。不承认这一点只会阻碍机会。

期待下一个版本的无服务器超级英雄。

无服务器——软件架构的未来?

原文:https://acloudguru.com/blog/engineering/serverless-the-future-of-software-architecture

从我记事起,技术社区就有一个共识——计算的未来在于互联网连接的瘦客户端架构。

*你知道……*未来的愿景是轻型云连接设备的激增。故事是这样的,这些所谓的“瘦客户机”显示用户界面和业务逻辑,繁重的工作发生在某个基于云的服务器农场。这是典型的三层架构,繁重的工作放在后端。

但是我认为有其他的东西正在悄悄靠近我们,软件架构的另一种未来正在实现——基于无服务器架构。

这种未来的特点是富胖客户端应用程序直接与云数据存储和基于云的小型微服务进行对话,以实现受保护的工作负载和服务编排。

事实上,在过去的几个月里,我们一直在使用这样的架构构建一个大型在线社交学习平台云大师。它的构建和持续改进速度极快,并且可以疯狂扩展。

无服务器架构与服务器架构

好,想象一个典型的三层架构:

Outdated 3-tier architecture including presentation tier, logic tier and data tier.

用户界面实际上只是为用户驱动后端功能提供了一种方便的方式。但是这是低效的——有大量的重复。

如果你想给产品增加一个新的特性,你必须接触栈的每一层,从网络上的用户界面到服务器,然后再到数据存储。看看所有的层:

To add a new feature to the product you have to touch every layer through the stack, from the user interface to the server, and then over to the data-store.

3-tier architecture — That’s a lot of layers to touch, just to add a new feature.

现在,假设您的用户界面应用程序可以包含当前位于后端的所有编排逻辑,并可以直接与一系列支持云的服务进行对话,以执行独特的功能,如身份验证、存储、通知等。

现在,当您想要添加新功能时,您只需将其添加到您的前端代码中(并可能在需要时调用云服务)。看看你现在只需要接触几层:

Serveless architecture allows you to add a new feature with only front-end code. You can potentially call out to cloud services where required.

Serverless architecture — cuts out the middle-man and brings the UI closer to the data store

运行在云中的代码

您仍然需要编写一些运行在云中的代码,但是这些代码占用的空间会小得多。一些代码必须远程运行,因为它需要访问你不信任在某人的浏览器中运行的秘密。

例如:对于大多数信用卡支付提供商,采取对信用卡支付收费的最后步骤需要使用商家的秘密 API 密钥调用卡提供商的 API。其他所有事情,如输入卡的详细信息,都可以通过用户的浏览器直接与支付提供商对话来完成,这从 PCI 合规性的角度来看也很棒。

打最后一个电话来授权支付——你不能在用户的浏览器中加载那个秘密的 API 密匙。此外,您不能相信用户的浏览器会调用数据库来授权用户访问购买的内容——或者任何人都可以在其浏览器中编写一些 JS 代码来授权自己免费访问!

因此,在无服务器模式中,您可以在云端编写一个微小的微服务,一旦前端编排并排列好所有订单和支付细节,它就会调用卡支付。如果支付成功,该服务将授权用户访问数据库中购买的内容。该服务可以访问数据库中用户前端无法访问的部分。

在云专家 T1 时,我们编写了一系列运行在 AWS Lambda 中的 tiny node.js 微服务。我们使用 AWS API 网关来路由来自前端的请求,以调用这些 lambda 函数来为我们执行这些受保护的操作。

我们的使用案例—云专家的架构

这是一个云大师学习平台的架构图,展示了我们使用的一些云微服务:

An architectural diagram with microservices that A Cloud Guru uses.

请注意,我们在云中使用的每个服务都做一件事,而且做得非常好。我们使用的一些服务是第三方的(如 Auth0、S3、Firebase 和 Stripe),一些是我们编写的自定义代码。

我们在云中的定制代码足迹绝对是最小的——仅限于在 AWS Lambda 中运行的几个 node.js 函数。这些功能执行受保护的操作,我们不能信任用户的浏览器来编排这些操作,例如:

  • 完成卡支付并允许用户访问他们已付费的课程
  • 向我们的一部分用户触发电子邮件(我们不能相信我们用户前端的代码会这样做,因为它会暴露其他用户的电子邮件地址允许任何经过身份验证的用户向任何其他用户触发电子邮件)

什么推动了无服务器技术趋势?

这现在是可能的,因为:

  • 我们有丰富的浏览器 MVC 框架,如 AngularJS,使我们能够编写大型和复杂的 web 应用程序,具有完整的构建系统和测试运行程序。
  • 几乎所有你能想到的服务现在都支持 HTTP,并且支持通用的认证令牌交换协议,比如 JWT。这意味着用户的浏览器可以发送凭证,直接与您使用的不同云服务进行交互。
  • 有针对大量功能的第三方云服务,它们都专注于做一件事,并且做得非常好。您现在可以将大量丰富的功能外包给云服务,例如:
    –用户认证
    –受保护文件下载/上传
    –信用卡支付
    –通知(电子邮件、短信、推送)
    –具有离线同步功能的实时流数据库访问

然后是用户偏好。如今,移动硬件功能强大,人们更喜欢更丰富、更快捷的用户体验。不幸的是,一个无处不在、永远可靠的互联网还没有到来。互联网用户经常遭受连接质量下降和连接丢失的情况仍然很普遍。因此,我们通常倾向于在我们的移动设备上使用更丰富、更强大的应用程序,这些应用程序可以处理离线情况,并在恢复在线时同步数据。

这安全吗?

当然,只要你愿意。

都在设计里。当引入新的云服务时,您需要在设计时考虑安全性——理解用户将使用他们的凭证直接与该服务交互。您需要了解如何锁定他们可以/不可以读写的内容。

如果您使用第三方服务,那么您必须了解如何锁定对该服务的访问。例如,使用 Firebase(一个实时流数据库),您可以编写由数据库引擎执行的自定义安全规则,以确定哪些用户可以读取或写入数据库的不同部分。

如果您正在编写自己的微服务,那么您需要确保您的服务检查所传递的安全令牌的真实性,并验证用户的权利。

无服务器架构也是吗?

没有确切的定义,但我认为有一些基本特征可以将系统定义为无服务器系统:

  • 运营商不需要自己运行和维护后端服务器
  • 代码库的绝大部分(~ 95% +)位于前端
  • 驻留在云中的代码只是绝对必须的代码——例如,出于安全目的,必须对用户浏览器不能信任的机密进行一些访问
  • 前端充当协调器,调用大量基于云的服务来执行特定功能,例如接受信用卡支付、访问受保护的资源、发送电子邮件或推送事件通知

需要注意的是这并不意味着没有任何服务器。当然有,但是其他人正在管理、保护、维护和修补它们,减轻您的负担和责任,让您能够专注于构建您独特的产品。

值得吗?

绝对的!通过为云专家使用无服务器方法,我们能够将一个完全交互式的在线社交学习平台推向市场,所用时间只是过去所需时间的一小部分。我们现在可以快速创新,并不断向用户界面添加新功能,而不必为每个新功能接触这么多层代码。

当然,它也有缺点,这种对传统架构的疯狂背离也带来了一系列挑战。

我们学到了很多,我们将在未来的博客文章中更深入地介绍我们使用的技术和我们必须克服的挑战。

获得更好职业所需的技能。

掌握现代技术技能,获得认证,提升您的职业生涯。无论您是新手还是经验丰富的专业人士,您都可以通过 ACG AWS 架构师学习路径在实践中学习并推进您的云计算职业生涯。


无服务器用户界面:窃取移动互联网的精华

原文:https://acloudguru.com/blog/engineering/serverless-user-interfaces-stealing-the-best-of-mobile-for-the-web

介绍性说明:这是 2016 年 云专家 团队将撰写的关于 AWS 中无服务器架构的系列博文的第一篇。我们正忙着在 AWS 上建立一个独特的无服务器架构的学习平台,使用 AngularJS、AWS Lambda、AWS API Gateway &和许多其他技术。我们真的希望你喜欢这个系列。


Enhancing serverless web app experiences with content placeholders.

我本打算把这篇文章的标题定为“阿贾克斯旋转者的死亡”,但我忍住了不去煽动(谢谢,谢谢)。但是,当您阅读时,请注意这篇文章的目的是从 web 的各个角落摧毁可怕的 AJAX spinners。

好的,我们知道迁移到无服务器架构有很多优势。您可以非常快速地构建丰富且响应迅速的 web 应用程序,这些应用程序可以执行非常复杂的任务。

但是走向无服务器意味着:没有服务器…这导致了一些有趣的挑战。当你的网站第一次加载时,它就像一个孩子——对这个世界一无所知。它没有预先加载你的数据或内容——它必须从云服务(比如你的 API,或者像 FirebaseDynamoDB 这样的云数据存储)获取所有数据

嗯,为什么会这样?

在传统系统中,每次用户的浏览器请求时,web 服务器都会提供站点 HTML 和 JavaScript。这些服务器位于中间,动态地向 HTML 和 JavaScript 注入最新的内容和数据,这样一旦浏览器加载了站点,这些内容就可以显示出来。

没有服务器,你的前端代码就是静态的。这是一个强大的单页应用程序,一旦加载到浏览器中,它就会与云中的一系列服务对话以获取数据。它可以通过任何 CDN 部署——没有任何活动的服务器基于用户请求生成 HTML & JS。每个用户总是得到完全相同的 HTML,JS & CSS 副本。这意味着您无需管理任何服务器,加载初始应用程序的速度也快得惊人,但该应用程序并未嵌入您的任何数据/内容。

The serverless model is a little different: There’s no web server to inject content into the HTML data.

AJAX SPINNER 去死吧!

(好了,我说了)

这种架构的结果是,你的 web 应用程序已经加载了,但是应用程序仍然在获取你的内容。这就给我们留下了一个问题,在这个窗口中向用户显示什么…

过去,我们使用了几种不同的方法:

全页面 ajax 微调器

The entire page is covered by a single spinner, and the user doesn’t see anything until the entire page is loaded.

数百个微型 ajax 旋转器

Where the UI is made entirely of sections that need to be loaded and there’s a spinner for EVERY. SINGLE. ONE.

这些方法看起来真的很痛苦。它们没有给用户任何提示,告诉他们将要发生什么&去哪里看。当加载内容时,页面的所有部分都会随着数据的填充而跳跃和移动。当页面在你眼前自动回流时,你很难知道该往哪里看。

我们的第一个网站设计到处都使用 AJAX spinners,我从来没有为此感到自豪。我们最近的重新设计给了我们改变现状的机会。

那么,我们可以从哪里寻找灵感呢?

仔细想想,移动应用程序是丰富的单页 web 应用程序的绝佳类比。在 mobile 中,应用程序代码存储在移动设备上,因此可以立即加载。然后,应用程序需要从网络上获取数据,用内容填充用户界面。移动是一个很好的生态系统,可以从中汲取灵感,因为它的用户体验标准普遍很高。

如今,优秀的移动应用有一种向占位符发展的趋势。占位符本质上是一个很小很大的盒子,一旦载入,它正好适合内容的位置。你可能在脸书和 LinkedIn 这样的应用中见过占位符。

Left: The Facebook for iOS app. Right: The LinkedIn for iOS app.

占位符与您知道要加载的数据的大小和形状相匹配。它们允许用户“理解”用户界面,并了解事情的进展。当你的内容加载时,用户已经在屏幕上看到正确的位置,准备阅读。不需要时间来适应页面的布局,因为用户已经接受了。它提供了更少的不和谐的用户体验。

因此,我们决定将占位符合并到云专家 web 应用程序中。如果正在加载数据,占位符会显示。如果当用户导航到一个页面时,数据立即准备好了,那么占位符不会显示,内容会立即加载…所以您可以两全其美。

Featured Courses on the A Cloud Guru Site

Featured Discussions on the A Cloud Guru Site

The Course Listing Page With Fade-In Effect

用于占位符的可重用 CSS 框架

我们知道我们想要在整个站点中构建占位符支持——从云中加载数据的任何地方。因此,我们为占位符构建了一个可重用的 CSS 框架,并用动画微光效果来指示内容尚未加载。它是这样工作的…

通过简单地将一个“占位符”CSS 类添加到一个将显示内容的元素中,它最初将被一个灰色的占位符形状覆盖,该形状带有闪烁效果的动画。框架使用 CSS :before 伪类将这个额外的元素添加到 DOM 中,使用 z 索引和相对定位定位在内容元素的顶部。

有几种不同的形状可供选择:

块元素

在您希望加载矩形内容块的地方,我们覆盖一个矩形占位符

一些文字

圆形元素

有些元素是圆形的,例如用户个人资料图像。在这些情况下,您希望显示一个圆形覆盖。

隐藏元素

当数据加载时,一些元素的外观(大小/形状)会变化很大,甚至可能根本不显示。在这些情况下,你实际上不希望显示占位符,因为它会让用户感觉很不舒服,因为占位符会被不匹配的内容所替换。

在这种情况下,我们创建了占位符隐藏类。在加载内容时,原始元素被简单地隐藏,不透明度为零。当内容加载时,如果元素存在,它会淡入。

{{scores.highScore}}

半块元素

其中您希望加载一个矩形的内容块,该块大约占用元素宽度的一半。这对于短文本很有用,加载时可能会扩展超过 50%的宽度,但大多数情况下不会。

一些简短的文字

四分之一块元素

同上,但是是元素宽度的四分之一而不是一半。

一些微小的文字

代码

内容一加载,我们就让 AngularJS 代码将“loaded”类添加到父元素中,然后占位符会被 CSS 框架自动淡出。

占位符元素采用添加了“占位符”类的原始内容元素的大小,因此为每个内容元素设置最小宽度和最小高度(或行高)值非常重要。

但是现在是 2016 年了。我们有电动汽车,可以让火箭返回地球。我当然可以鱼与熊掌兼得。

占位符对于动态加载的数据来说是一个非常好的效果。但是有些内容非常重要,你的用户真的不应该等待。如果你正在经营一家电子商务商店,那么你的促销信息应该在页面的顶部显示出来。在页面加载时显示占位符而不是销售信息,肯定会失去业务。

这里的 在无服务器、单页面应用模型中实现这一点的一种方式——通过良好的开发运维实践和持续集成/部署策略使之成为可能。

实际上,您可以在构建系统中插入一个步骤来获取最新的数据(比如最近的促销内容),并将其预缓存到 JavaScript 代码中。通过这种方式,你的网站可以在网页应用程序加载后立即显示出来,同时联系云端查看最近的变化。

如果您有一个好的 CI 系统设置,比如 Travis CI,那么每次修改数据时,您可以简单地使用 web 钩子来启动和部署新版本的静态 web 应用程序代码。因此,当您的产品经理之一更新促销内容时,系统可以自动触发静态网站代码的新版本,其中包含缓存的数据,并自动将这个新版本部署到您的主机 CDN。

我们目前正与一位云计算专家合作开发这一模式,用于我们的课程列表、价格和促销信息。


无服务器架构带来了新的用户体验挑战,这些挑战可以通过寻找其他面临类似问题的生态系统来克服,如移动系统。占位符是一个很好的方法,可以让用户在内容加载之前的短暂时间内关注你的网站。

萨姆·科隆伯格

云专家

云专家的使命是通过提供世界领先的教育内容,让个人参与到提升云计算技能的旅程中来,这些教育内容旨在促进思维模式和职业发展。

“不要让世界上的任何人生活在错觉中。没有上师,谁也不能渡到彼岸。”——古鲁·那纳克

我们的课程由对云计算有着共同热情的行业专家讲授。我们努力为我们日益壮大的云专家社区服务,他们在我们的论坛、研讨会、见面会和会议上慷慨地贡献他们的见解。

跟上一个云咕噜剧组@ acloudguru

使用无服务器架构提供动态网站内容

原文:https://acloudguru.com/blog/engineering/serving-dynamic-website-content-with-serverless-architecture

网页内容通常是静态或动态的。静态内容是提供给每个访问者的相同内容,而动态内容是变化的。一些世界上最繁忙的网站是基于动态内容的,比如有标题列表的新闻网站,或者有最新交易的电子商务网站。

要使用传统的基于服务器的 web 应用程序提供动态内容,通常服务器脚本或应用程序会从数据库获取结果并呈现页面。扩展这种设计以服务大量的访问者可能是具有挑战性的。每个页面视图都需要 web 服务器查询数据库并将结果呈现给读者。对于大流量,这会增加服务器和数据库的负载。

对于使用 LAMP stack 架构的站点,比如 WordPress,或者其他基于服务器的 web 应用程序,你可以采用一种混合的无服务器方法来提供这种功能。这有助于加速开发,使其更容易扩展,并促进基于微服务的模型

一个无服务器架构可以通过使用专为扩展而设计的服务,更轻松地为每秒数以千计的访问者提供服务。在混合方法中,它也不改变现有的服务器代码或数据库模式。在这篇博文中,我解释了如何使用最少的定制代码构建高度可伸缩的解决方案来提供动态内容。

概观

虽然您可以使用无服务器技术来构建整个网络应用,但是您也可以使用基于微服务的后端来为现有网站带来动态功能。

无服务器之地网站使用这种方法为访问者生成动态结果。在该网站上,新功能页面聚集了来自十几个不同 AWS 服务的功能发布信息。后端服务从公共 RSS 提要收集这些信息,然后前端从公共端点获取数据。当访问者导航到该站点时,他们会看到一个检索汇总结果的页面:

无服务器架构

该解决方案使用两个独立的微服务。一种是按计划从外部数据源获取数据,并将结果存储在数据库中。另一个服务于前端 web 应用程序,从数据库获取结果。架构看起来是这样的:

The solution uses two separate microservices. One fetches the data on a schedule from external data sources and stores the result in a database. The other serves the frontend web application, fetching the results from the database. The architecture looks like this:

一个 Amazon EventBridge 预定规则每小时运行一次来调用一个 Lambda 函数。

  1. AWS Lambda 函数从外部数据源获取新数据,并过滤要保存的记录。
  2. 该函数将项目写入一个 Amazon DynamoDB 表。
  3. 网站前端调用一个亚马逊 CloudFront 发行版的 URL。缓存设置为 5 分钟。
  4. 每当缓存为空或过期时,CloudFront 都会从 API 网关端点获取最新的内容。
  5. 亚马逊 API 网关调用第二个λ函数。
  6. Lambda 函数从 DynamoDB 表中加载数据。
  7. 部署示例

这个示例使用 AWS 无服务器应用程序模型 (AWS SAM)将解决方案部署到您的 AWS 帐户。要开始,你需要安装 AWS CLIAWS SAM 。您还需要一个 AWS 帐户,但是这里显示的一切都可以在 AWS 自由层中部署和测试。

要部署此示例:

从样本库中克隆代码:
git clone https://github.com/aws-samples/serverless-content-service-from-rss

  1. 更改目录:
    cd ./serverless-content-service-from-rss

  2. 运行 AWS SAM build 下载并安装使用的依赖项:
    sam build

  3. 要将应用程序部署到您的 AWS 帐户,请运行 AWS SAM guided deploy:
    sam deploy –guided

  4. 部署向导会提示您一系列问题。输入您的首选堆栈名称、AWS 区域,并允许 AWS SAM 创建 API,而无需定义授权。

  5. The deployment wizard prompts you with a series of questions. Enter your preferred stack name, AWS Region, and allow AWS SAM to create the API without authorization defined.

随着应用程序的部署,EventBridge 调度规则每小时调用一次 Import Lambda 函数。这将从一个公共 RSS 提要中获取数据,并将项目存储在应用程序的 DynamoDB 表中。

了解 AWS SAM 模板

repo 中的模板定义了该应用程序使用的所有资源。首先,它使用按需容量模式声明一个带有分区键和排序键的 DynamoDB 表:

接下来,模板定义了 Import Lambda 函数。它将内存大小设置为 128 MB,将运行时设置为 Node.js 14。RSS 提要 URL 是作为函数的环境变量提供的,因此您可以根据自己的需要在这里更新它,而无需更改 Lambda 函数中的代码:

DDBtable:
    Type: AWS::DynamoDB::Table
    Properties:
      AttributeDefinitions:
      - AttributeName: PK
        AttributeType: S
      - AttributeName: SK
        AttributeType: N
      KeySchema:
      - AttributeName: PK
        KeyType: HASH
      - AttributeName: SK
        KeyType: RANGE
      BillingMode: PAY_PER_REQUEST

这使用了一个 AWS SAM 策略模板来授予对模板的 DynamoDB 表的权限。AWS SAM 自动提供调用该功能并将日志保存到 Amazon CloudWatch 的最小权限。在事件中,模板使用 EventBridge 预定规则定义了每小时一次的调用。这两个部分定义了第一个微服务按计划获取数据并将结果存储在 DynamoDB 中所需的一切。

ImportFunction:
    Type: AWS::Serverless::Function 
    Properties:
      Timeout: 10
      CodeUri: parser/
      Handler: app.handler
      Runtime: nodejs14.x
      MemorySize: 128
      Environment:
        Variables:
          Feed: 'https://aws.amazon.com/about-aws/whats-new/recent/feed/'
          TableName: !Ref DDBtable        
      Policies:
        - DynamoDBCrudPolicy:
            TableName: !Ref DDBtable        
      Events:
        EventBridgeSchedule:
          Type: Schedule
          Properties:
            Schedule: 'rate(1 hour)'
            Name: ImportSchedule
            Enabled: True

第二个微服务为客户端应用程序创建一个 HTTP 端点来获取项目。该模板定义了 API 网关端点和 Lambda 函数:

HTTP API配置中,这定义了一个开放的 CORS 配置用于测试和开发目的。在生产应用程序中,您应该相应地确定这种访问的范围。Lambda 函数的事件处理程序配置 API 路径和方法。

MyApi:
    Type: AWS::Serverless::HttpApi
    Properties:
      CorsConfiguration:
        AllowMethods:
          - GET
          - POST
          - DELETE
          - OPTIONS
        AllowHeaders:
          - "*"   
        AllowOrigins: 
          - "*"      

  GetItems:
    Type: AWS::Serverless::Function 
    Properties:
      Timeout: 3
      CodeUri: getItems/
      Handler: app.handler
      Runtime: nodejs14.x
      MemorySize: 128
      Environment:
        Variables:
          TableName: !Ref DDBtable        
      Policies:
        - DynamoDBReadPolicy:
            TableName: !Ref DDBtable        
      Events:
        UploadAssetAPI:
          Type: HttpApi
          Properties:
            Path: /items
            Method: get
            ApiId: !Ref MyApi

最后,模板定义了 CloudFront 发行版。这使用 API 网关端点作为起点,并将生存时间 (TTL)值设置为 300 秒:

测试应用程序

 CloudFront:  
    Type: AWS::CloudFront::Distribution
    Properties:
      DistributionConfig:
        Enabled: true
        IPV6Enabled: true
        HttpVersion: http2
        Comment: !Ref 'AWS::StackName'
        Origins:
        - Id: APIGOrigin
          DomainName: !Sub ${MyApi}.execute-api.${AWS::Region}.amazonaws.com
          CustomOriginConfig:
            HTTPSPort: 443
            OriginProtocolPolicy: https-only
        DefaultCacheBehavior:
          AllowedMethods: ["GET", "HEAD"]
          CachedMethods: ["GET", "HEAD"]
          ForwardedValues:
            Headers:
            - Access-Control-Request-Headers
            - Access-Control-Request-Method
            - Origin
            QueryString: true
          TargetOriginId: APIGOrigin
          ViewerProtocolPolicy: https-only
          Compress: true
          DefaultTTL: 300

随着后端的部署, Import 函数每小时获取一次新内容。您也可以在 Lambda 控制台中手动运行该功能以立即获取内容。

运行sam deploy命令后,堆栈中的 AWS CloudFormation 输出显示了您的发行版的基本 URL:

After running the sam deploy command, the AWS CloudFormation outputs from the stack show the base URL for your distribution:

完整的端点是附加了“/items”路径的基本 URL。您可以使用类似于 curlPostman 的工具来查询这个 url,并查看返回的项目列表:

The complete endpoint is the base URL with the ‘/items’ path appended. You can use tools like curl or Postman to query this URL and see the list of items returned:

与 web 应用程序集成

为了让 web 应用程序使用这个后端,它必须对前一个端点进行 API 调用。这个过程使用 JavaScript 直接从浏览器前端调用端点。在 React、Vue.js 或 Angular 等单页面应用程序框架中,可以设置页面组件在页面首次加载时调用端点。

无服务器的 Land 网站是用 Vue.js 编写的,下面的代码片段展示了页面上的组件实例如何在挂载的生命周期钩子中进行 API 调用。launchs _ URL变量包含从 CloudFront 发行版中获取项目列表的 URL:

目前,这将返回最近的 100 个结果。在高级实现中,API 还可以通过查询参数支持搜索和分页。您可以使用底层 DynamoDB 表中的 sort 键按照时间戳对结果进行排序。

const axios = require('axios')
const ITEMS_URL = 'https://d11abcdef12345.cloudfront.net/items

export default {
  data () {
    return {
      items: [],
    }
  },
  mounted: async function() {
    // Load dynamic data from backend service
    const result = await axios.get(ITEMS_URL)
    this.items = result.data.Items
  }
}

配置 CloudFront 缓存

在这个解决方案中,前端 web 应用程序可以直接调用 API 网关端点并接收相同的响应。然而,在繁忙的 web 应用程序中,这会导致对 API Gateway 的大量调用,而 API Gateway 又会调用 Lambda 和 DynamoDB。因为动态项目列表可能很少改变,所以您可以使用 CloudFront 来缓存结果,改善延迟,并降低总成本。

在本例中,导入功能每小时运行一次。您可以安排轮询过程以更短的时间间隔运行,例如每分钟一次。根据工作负载的需要,您可以在短至一秒的时间内定制 CloudFront TTL 值

实时网站使用五分钟的缓存。如果有大量的站点访问者到达,大多数请求都由 CloudFront 发行版处理。只有当缓存过期或现有缓存为空时,CloudFront 才会调用 API 网关端点。

结论

动态网页内容可以让你的网站对访问者更有用。它通常用于提供功能,如最新的电子商务交易、最近的客户评论或您产品的最新功能发布。

使用传统的基于服务器的方法,这会增加 web 服务器和底层数据库的负载。横向扩展或处理峰值工作负载也是一项挑战。

这篇博文展示了一种支持高吞吐量的无服务器方法。这使用了一个微服务,它获取数据并将结果存储在 DynamoDB 表中。客户端应用程序调用一个 CloudFront 分发端点,该端点使用另一个微服务从表中获取项目。

如需更多无服务器学习资源,请访问无服务器世界

For more serverless learning resources, visit Serverless Land.

Gluster 文件系统技巧:如何设置 GlusterFS 集群

原文:https://acloudguru.com/blog/engineering/setting-up-glusterfs-cluster

正在寻找可以扩展到 Pb 级的分布式存储解决方案吗?那么就值得你花时间去了解 GlusterFS。在这篇文章中,我解释了什么是 GlusterFS,如何建立一个简单的三音符 GlusterFS 集群,并分享了一些进一步学习资源的链接。


通往更好职业的钥匙

立即开始 ACG 通过 AWS、Microsoft Azure、Google Cloud 等领域的课程和实际动手实验室来改变你的职业生涯。


什么是 GlusterFS?

GlusterFS 是一个软件定义的存储平台,非常适合企业环境和个人使用。它是开源和免费的,提供付费支持选项。GlusterFS 可以部署在裸机、容器、虚拟机甚至云环境中。

使用 GlusterFS 的一些好处包括:

  • 可量测性
  • POSIX 符合性
  • 多文件系统支持
  • 不同工作负载的优化选项
  • 地理复制
  • 能够处理许多客户

如何设置 GlusterFS 集群

出于本文的目的,我将使用 Ubuntu 20.04 作为操作系统。但是,如果您愿意,可以使用不同的 Linux 发行版。主要的区别仅在于如何安装软件包(例如 yum、dnf 或 apt)。

我将使用三台具有以下 IP 地址和主机名的服务器。

10.0.2.101 server-1
10.0.2.102 server-2
10.0.2.103 server-3

入门指南

我们需要做的第一件事是确保系统之间能够相互通信。这可以通过将他们的名称和 IP 添加到/etc/hosts(在每台服务器上)来完成。另一种方法(也是首选的方法)是将这些系统添加到您的 DNS 解析器中。

关于防火墙的一个注意事项:GlusterFS 要求在任何防火墙上打开某些端口,以允许正确的通信。在本指南中,我不会启用任何防火墙。如果您打算使用防火墙,下面的图表列出了您需要打开的端口。

*端口砖块范围可以在/etc/glusterfs/glusterd.vol 中设置

安装 GlusterFS

下面的步骤应该在每台服务器上完成,并且使用 sudo 或 root 用户。首先,更新 apt 的包列表。

apt-get update

更新完成后,就可以开始安装 GlusterFS 服务器和客户机包,并启动和启用 glusterd 服务。

apt install -y glusterfs-server glusterfs-client
systemctl enable --now glusterd 

设置您的储物空间(又名砖块)

既然您已经安装了 glusterFS 并且服务正在运行,那么是时候准备您的存储砖了。在要使用的存储设备上创建一个分区(在每台服务器上运行)。

parted --script -a optimal -- /dev/nvme1n1 mklabel gpt mkpart primary 1MiB -1

接下来,在新分区上放置一个文件系统,创建一个挂载点,并在每台服务器上挂载文件系统

mkfs.xfs -i size=512 /dev/nvme1n1p1
mkdir /gfs
mount /dev/nvme1n1p1 /gfs 

最后,我们需要在/gfs 中创建一个子目录。这将成为我们的一块砖。

mkdir /gfs/brick-1
  • *如果您没有存储设备来创建分区,您可以创建目录/gfs/brick-1并使用它。这不是最佳实践,但出于演示的目的,它会工作得很好。

设置受信任的存储池

此时,您有三个运行 glusterfs 的服务器,以及一个将在您的第一个 GlusterFS 卷中使用的可用存储设备(或目录)。但是,在设置卷之前,需要创建一个受信任的存储池。这实际上是告诉 GlusterFS 使用什么主机进行存储。

从您的第一台服务器运行以下命令。如果您的服务器名称与本例中使用的不同,请在中替换。

gluster peer probe server-2
gluster peer probe server-3 

现在,您应该能够检查可信存储池的状态,并查看连接的服务器。

gluster pool list

创建您的第一个 GlusterFS 卷

现在您已经准备好创建您的第一个 glusterFS 卷了。有几种不同类型的卷,但在本演示中,您将创建一个分布式卷。这种类型的卷将文件分布在创建卷时使用的所有砖块上。

在第一台服务器上运行以下命令,创建一个名为gfs_vol的新分布式卷

gluster volume create gfs_vol server-1:/gfs/brick-1 server-2:/gfs/brick-1 server-3:/gfs/brick-1

在您可以开始使用您的卷之前,需要启动它。

gluster volume start gfs_vol

现在,您已经准备好装载该卷并开始使用它。您可以将它挂载到任何您想要的地方,这个例子是将卷挂载到/mnt

mount -t glusterfs server-1:/gfs_vol /mnt
df -h /mnt 

包装它

这就是创建一个基本的分布式 glusterFS 卷的全部内容!现在,您可以在该卷上创建文件。随着文件的创建,它们被分布在服务器上的砖块之间。

通过检查每个服务器上的目录或存储设备,您将看到由于分布不同而不同的文件。通过挂载点查看实际卷将提供对分布在集群中的所有文件的访问。

为了了解更多关于 GlusterFS、卷和管理的信息,我邀请您参加我的课程 GlusterFS Deep Dive 中的一位云专家。我希望在那里见到你,直到下一次,继续成为令人敬畏的大师!

在云中共享数据:你应该知道的 4 种模式

原文:https://acloudguru.com/blog/business/sharing-data-in-the-cloud-four-patterns-everyone-should-know

让我们回顾一下云中数据共享的选项,以了解哪些是可用的,以及未来事情可能会越来越多地转移到哪里。这与许多面临数据移动成本、访问速度或尝试新的有前途的方法的风险等挑战的组织相关。

多种云也开始参与数据共享。随着技术之间互操作性的提高,许多公司希望选择最佳的服务和产品来解决他们的场景——即使它们是不同云上的服务。例如,云 X 对 A 有利,云 Y 对 b 有利,这导致数据分布在不同的服务、区域或云上。甚至以不同云上的日志记录信息为例:组织仍然希望能够以最小的成本高效地查询和分析数据。


需要一个解决方案来优化多云环境中的管理和治理?

VMware CloudHealth 满足了这一需求。查看我们的课程,了解这一统一平台,通过一个仪表板来管理不同云提供商(如 AWS、Azure 和 Google 云平台)的资源。


对于云中的数据共享,我们可以采取挑战、权衡和多种方法。

通过复制共享数据(静态数据模式)

这里几个服务运行在同一个云中。计算和存储不是独立的。要处理来自另一个服务的数据,我们必须复制或移动它。如果这符合您的标准,那么对于简单的架构来说,这种方法没有任何问题。

无拷贝数据共享(直接访问模式)

这种方法很快被采用。同样,同一云中的多个服务。计算和存储完全分离。

现在有了更好的可扩展性,成本效益,直接访问数据。例如,这可以通过以下功能来实现:Azure Cosmos DB 的Azure Synapse LinkBigQuery 外部数据源雪花数据共享

悬停多云复制数据共享(孪生模式)

“孪生模式”在第三方托管系统或您管理的跨多个云或区域的系统中很常见。

在这种方法中,跨多个云的系统的消费者可以访问来自不同云的数据。

这种技术需要复制,因此有成本和额外的复制时间,即使它是在地下发生的。这种方法的一个例子是在 Snowflake 中的跨区域数据共享。

多云无拷贝数据共享(数据门户模式)

在这种新兴的方法中,我们看到了跨多个云运行的服务、跨多个不同云服务的存储、计算和存储的分离,以及无需复制或移动数据的直接数据访问。

这是由像 Azure Arc 或谷歌 Anthos 这样的技术实现的。例如 BigQuery OmniAzure Arc 使能的数据服务

云数据共享如何影响组织

为组织提供更好的数据共享选项,有两个主题是正确的:

  • 存储和计算分离,链接到其他数据源以便直接访问。
  • 将计算带到位于任何地方的数据的多云平台或混合平台( AnthosArc )。

对于云提供商来说,这意味着公司可能不会选择某些云服务,因为他们已经承诺使用某一种云并在那里存储数据。

如果公司可以在任何地方存储数据,方便访问和共享,他们也会调整决策。开发者体验、可编程性、互操作性、集成、开放标准——我认为这些因素在选择云服务时会变得更加普遍。

哪种云数据共享模式适合我?

我们回顾了四种不同且常见的数据共享方法,在一个云内或跨多个云。

通过复制实现数据共享的简单而通用的方法仍然是用例的一个很好的选择,在这些用例中,它们解决了特定场景的给定问题,等待公司的数据处理成本和延迟要求得到满足。

通过分离存储和计算实现直接数据链接的方法可显著降低数据移动成本,并有助于消除孤岛团队和庞大的数据湖,根据数据网格概念,为按领域组织的数据产品团队提供更好的数据共享选项。

新兴的多云技术仍然需要发展和成熟,但它们真的很有前途,非常有用,可以让组织为正确的工作选择正确的工具,并专注于业务问题,而不会产生数据传输成本。

寻找更多的云善?看看这些:

关于作者

Lena Hall 是微软 Azure 的工程总监,她专注于大规模分布式系统和现代架构。她在微软领导一个团队和技术战略,致力于大数据服务的产品改进。Lena 是推进、促进和推动云服务进一步加速的工程计划和战略背后的驱动者。Lena 在解决方案架构和软件工程领域拥有 10 年的经验,专注于分布式云编程、实时系统设计、高可伸缩性和高性能系统、大数据分析、数据科学、函数式编程和机器学习。此前,她是微软研究院的高级软件工程师。她共同组织了一个名为 ML4ALL 的会议,并且经常是 Kafka Summit、Lambda World 等会议的项目委员会的受邀成员。Lena 拥有计算机科学硕士学位。推特: @lenadroid 。领英:莉娜·霍尔

我应该走自动气象站 SAA C01 还是 SAA C02?

原文:https://acloudguru.com/blog/engineering/should-i-take-the-saa-c01-or-saa-c02

如果你准备好参加 AWS 认证解决方案架构师助理认证考试,你目前有两个考试选择:闪亮的新 SAA-C02 考试或即将退休的 SAA-C01 考试。我参加了两种考试,我知道自从 AWS 推出新的考试以来,许多人都很好奇该参加哪种考试。它们之间有什么区别,根据你的培训和知识,哪种考试可能最适合你?请继续阅读…

测试,测试… 1,2…

如果你一直在准备 cert 考试,那么过去的几个月就有点难熬了。首先,我们屏住呼吸期待 AWS 和 Google Cloud 扩展在线证书测试。(如果你错过了,有了 AWS ,你现在可以远程参加任何考试,而谷歌云让人们参加几场考试。)

然后是围绕考试和认证到期的所有变化。以认证解决方案架构师助理为例。…求你了!(提示 rimshot 。)不过说真的,拿去吧。这是多年来的顶级云认证,它为您提供了 AWS 所有方面的广泛概述。或者,正如 AWS 所说,它“验证了在 AWS 上设计和部署满足客户需求的架构良好的解决方案的能力。”知道这些并不坏!

不确定如何规划你的 AWS 之路?查看 哪个 AWS 认证适合我? 求助入门。


在云计算专家的指导下边做边学

学得更快。动作快点。借助 AWS、Azure、Google Cloud 和 Linux 中的课程和实际动手实验室,立即实现转型。


不要改变话题

值得注意的是,AWS 通常不会对他们的考试做出巨大的改变。他们通常也不会更新考试代码。因此,你可以正确地假设,虽然科目基本相同,但新的考试带来了重点的转移。

AWS 对新考试有什么看法?“这个新的考试版本(SAA-C02)包括所有领域的更新内容,以及与数据库、成本优化和安全性等类别的 AWS 平台创新相一致的新目标。AWS 认证定期更新这一考试,以反映 AWS 平台上的快速创新步伐和基于 AWS 云架构的最新最佳实践。”

那会是什么呢?旧的还是新的?一号门还是二号门?这里有一些要点,可以帮助你决定哪一个适合你。

CSAA-C01or2

两次测试的故事

我在 2019 年 11 月参加了新 SAA-C02 的测试版,在 2018 年 10 月参加了 SAA-C01。为了使事情相对简单,我将把重点放在我在新的 SAA-C02 考试中看到的更新方面。

总的来说,我估计有三分之一的新考试采用了新的 AWS 服务、资源和工具。但我觉得其余的考试问题似乎经过了重新设计,以突出 AWS 服务和资源的架构和实施,而不是关于 AWS 资源和服务的具体数字和事实。在我的 beta 测试中,我看到的问题更多地集中在成本优化、安全性、 Aurora 数据库 API 、FSx 和 AWS 的架构上。

准备好了解真相了吗?让我们深入分析一下考试的几个不同方面。

计算和网络
  • 我个人觉得 SAA-C02 的网络问题比老的 SAA-C01 更难。
  • 我看到了对理解高可用性以及如何在您的设计中实现它的高度关注。还有一些关于如何保护多层架构的问题,以及一些关于高性能计算场景的问题。具体来说,我看到了有关 VPN 和 Direct Connect 的问题,这些问题不仅涉及高可用性,还涉及了解各自的性能以及如何调配这两者。对 VPC 端点也有更深入的了解,因此了解接口端点和网关端点之间的差异,以及如何在您的设计中使用这两者。
  • 我有一个关于资源访问管理器(RAM)的测试问题。所以我一定要理解 RAM 是什么,共享是如何工作的,以及 RAM 的局限性。我还有一个关于 Private Link 和 AWS Global Accelerator 的问题,我从未在 SAA C01 中看到过这两个功能。
储存;储备
  • 在我的 SAA-C02 测试中,我遇到了更多的 S3 问题。确保您了解 S3 存储类别,以及这些存储类别如何最适合特定场景。我还遇到了更多的 S3 性能问题,S3 加密更受欢迎,我认为这与新的更新考试一起增加了对安全性的更多关注。我还有一个关于 S3 事件的问题,这是我在 SAA C01 上没有看到的。
  • SAA-C02 考试中的另一个我在 SAA-C01 考试中没有看到的东西是 FSx。确保你对什么是 FSx 以及何时使用它有一个坚实的理解。
数据库
  • 我发现在我的 beta 测试中,Aurora 问题的数量比以前的 SAA-C01 测试有了巨大的变化。这一转变特别围绕 Aurora 无服务器以及 Aurora 和 Aurora 无服务器提供的高可用性。我建议理解 RDS 数据库实例和 Aurora 数据库实例背后的不同架构。此外,我还看到了更多围绕 DDB 和 DDB 流性能的 DynamoDB 问题。
IAM 和帐户
  • 从 SAA-C01 到 SAA-C02,我在 IAM 下没有看到太大的变化,但我确实感觉到 AWS 组织和 Cognito 更有特色。
应用服务程序
  • 我也没有看到这个类别有大的变化。我建议您深入了解 SQS,了解 SQS 非常适合去耦架构,这样您的设计就不会相互依赖。我有一个更难的问题是关于 SQS 和 Kinesis 的,所以要理解两者以及它们如何一起工作。
  • 让我们跳回 S3。对于 SAA-C02,请确保您了解如何设计区域性和全球性的高可用性。围绕这一设计,我有几个场景问题,因此为了实现全球高可用性,我们可以使用 S3 传输加速、跨区域复制或 S3 CloudFront。
  • 我确实看到了对 Route 53 的更多关注,所以请确保您了解它是什么,它是如何工作的,以及 Route 53 如何与其他服务集成,以及 Route 53 路由的延迟。SAA-C02 也是新的,我在亚马逊 MQ 上有一个场景问题。
灾难恢复和迁移
  • 在新的考试中,我看到了一些关于数据库迁移服务(DMS)的问题以及一个关于 AWS DataSync 的问题。
安全性
  • 我想特别提到安全这一类别,因为安全报道似乎更多地关注 Web 应用程序防火墙(WAF)。当然还有 AWS 密钥管理系统(KMS),所以请了解 KMS 及其合规级别。
成本优化
  • 最后,我想提一下成本优化。我发现我的 beta 测试非常关注成本优化的各个方面以及如何设计成本优化的架构。我肯定会花一些时间来了解哪些 AWS 服务可以帮助您使用经济高效的资源并优化您的架构成本。

哪种考试最适合你?

我个人一直建议参加最新版本的考试。但这两种方式都会给你一个非常受欢迎的认证,有效期为三年。无论你选择哪种考试,只要有正确的计划和一些准备,就不会有太多的惊喜。


说云不一定很难。我们分析了数百万份回复,找出了最容易让学生出错的术语和概念。在这个云指南中,你会发现一些最令人头疼的云术语的简明定义。


我在使用无服务器的前 6 个月学到的 6 件事

原文:https://acloudguru.com/blog/engineering/six-months-of-serverless-lessons-learned

在 10 月份的无服务器会议结束后,我决定我的整个公司将无服务器运营。前几个月我一直在碰壁,试图将 Python Flask app 迁移到 Lambda——这些努力帮助我找到了更好的方法。

将一个简单的 web 应用程序迁移到无服务器的恐惧和沮丧——我花了一个周末的时间与功能斗争,同时试图将托管在 Elastic Beanstalk 上的 Flask 应用程序迁移到 AWS

六个月后,我们现在正在部署我们的第四个主要项目。这就是我们如何做到的——包括发展的云技能、吸取的教训以及在此过程中形成的强烈意见

第 1 课-放弃 Python

flashboard 是一个很好的小框架,适用于服务器管理会话的网站的老式请求-响应风格。这很奇怪——但在互动网络的新世界里,这就像试图用橡皮筋和橡胶扫帚建造一所房子。

Python Flask app runs on Elastic Beanstalk, storing data in RDS

The old way: Python Flask app runs on Elastic Beanstalk, storing data in RDS

随着您开始将更多的工作转移到客户端来支持交互,您将别无选择,只能使用 JavaScript。这通常会导致内联到你的 Python 模板中,而技术债务的恶魔为你打开了另一个信用额度。

Flask 解决方案逐渐成为不同语言的混合体。我很快得出结论,这种方法非常糟糕——我不确定为什么我还要使用 Python。

在切换到 Node 之后,一切都变得更容易维护和更符合逻辑,并且不需要使用一种以上的语言。通过在 Webpack 上进行简单的 Node/Express 配置,您还可以使用 ES6 来消除 Python 开发人员取笑的可怕的 JavaScript 结构。

在 Zappa/Flask 做同样的事情比做我的税务还糟糕。但是,在大约 5 分钟内,你可以构建一个完全成熟的 Node/Express 应用程序,它可以像 1040EZ 一样在 Lambda 上工作——这没什么大不了的。所以我们抛弃了 Python,加入了 JavaScript 阵营中的酷孩子。

Build a fully-fledged Node Express app that works on Lambda.

Lambda Function As Monolith

我们放弃了什么?Pythonistas 会热情洋溢地讲述所有很酷的语言特性,但与 JavaScript 的实用异步魅力相比,这些只是玩具。现在我们不再担心 Python 版本 2 或 3(它会升级吗?).至少对我们的项目来说,这是一个非常容易的转变。

当然, Ben Kehoe 提供了一个引人注目的替代的煽情陷阱,他的观点和见解是关于使用 Python 还是 Node 来实现无服务器!

第二课——将中间层夷为平地

我们花了令人惊讶的时间才意识到无服务器的明显优势——可能是因为我们一直在构建 web 应用程序,或者可能只是因为我变老了。

我们最初的一些 web 应用程序仍然有一个 Node Express 层,它要么(1)意外地希望用户一次又一次地点击同一个 Lambda 容器,要么(2)由于设计的悲剧,我们滥用 DynamoDB 来让它记住会话 id。我们到底在做什么?

在“过渡”的第一阶段,我们的中间层就像 Lambda 上的 web 服务器,这是错误的,也是糟糕的。然后我们得到了 html 页面,其中充满了调用 REST APIs 的 JavaScript。这种方法非常原始,难以维护,并且很快变得脆弱——但是我们已经杀死了中间层。在无服务器中,中间层要去

Logic moves to Lambda, in serverless there is no middle layer.

State moves to the client, logic moves to Lambda

第 3 课—享受 Vue

能够把所有东西都塞进前端是很棒的,但是很快就变得一团糟。你最终停止签入代码,因为你不好意思分享你一直在创造的 Rube Goldberg 机器魔术。“不签入代码”对开发人员来说不是一个好的工作目标。

进入单页面应用程序(SPAs)的世界让我接触到了 React——这是构建用户界面最流行的方法。React 很棒,但是有一个陡峭的学习曲线,大量的 Webpack/Babel 设置,以及 JSX 的引入。虽然它可能是我们最终使用的东西,但对于我们的直接需求来说,它太重了,所以要探索替代方案。

幸运的是,我很快发现 Vue.js 并且我的无服务器生活变成了绝对的幸福。事情是这样的:你可以在一天内学会 Vue!

Vue 的设计方法与我们的设计模型非常契合——一切都是管理自己的内容、设计和代码的组件。这使得管理我们的多个客户项目和分散的团队变得非常容易,并且对于无服务器的思维模式也非常适用。

开源 JavaScript 框架为您提供了强大的调试工具、出色的组织和开箱即用的 Webpack 构建,从而节省了时间。安装路由器和商店管理插件——你就可以像脸书工程师一样制作实时性感的应用程序。谁知道单页应用会如此简单?

从无服务器的角度来看,Vue 将你所有的优点编译成 index.html 和 bundle.js 文件,准备上传到 S3。键入npm run build是新的编译命令。

请花点时间考虑一下——在过去,我们会通过 Elastic Beanstalk 部署应用程序,监控利用率,在需要时自动扩展,并管理合理的基础架构。

SPAs 的真正神奇之处在于,当您“部署”一个应用程序时,您只是简单地将 index.html、bundle.js 和一些文件依赖项复制到一个由 CloudFront 发行版作为前端的 S3 存储桶中。这为您提供了稳定的分发和加载行为,还支持多版本管理和您喜欢的任何部署方法——只需管理文本文件。

我们的规模实际上是无限的,并且只为我们使用的东西付费,没有应用程序基础架构管理。

Vue 本质上允许您在浏览器中构建桌面应用程序,这意味着您可以显著改善用户体验。所有的状态都可以在这里管理,没有无休止的请求/响应,您可以用标准的 UI 技巧(如转换效果)隐藏延迟,整个应用程序现在行为正常。

第 4 课—学会爱上 DynamoDB

在许多方面,实现无服务器最困难的部分是真正掌握 DynamoDB。在最初的几次迭代中,您肯定会犯一些错误,并且很容易放弃所有的东西,回到 RDS,在那里一切都是已知的和舒适的。

很长一段时间以来,SQL 一直是我的支柱,我承认在数据库中放入了太多的业务逻辑。但是 RDMS 系统只是另一个庞然大物——无法很好地扩展,并且它们不支持有机进化敏捷系统的想法。

DynamoDB 是完全不同的动物。如果使用得当,NoSQL 数据库可以提供极高的性能、巨大的规模,而且几乎没有管理开销。但是你真的需要花时间去探索它是如何工作的——而且最初的阶段充满了陷阱。

发电机表字段不能包含空字符串。时间点备份不是自动的。如果您弄错了分区和排序键,您必须从表开始。如果您试图过于接近地模拟 SQL 查询,那么您的表可能会从太少变得太多。一直以来,RDS 给人的感觉都很陌生。

经过许多教程,尝试,失败和最终成功与 DynamoDB,我学会了…

  • 您需要了解 DynamoDB 的工作方式,花一些时间了解索引策略,以及您打算如何查询数据。很容易在不知道你需要知道的一切的情况下就投入进去,所以很多人被烧伤,然后在完全错误的时间搬回 RDMS。犯错误并克服它们。
  • DynamoDB 最少被讨论的乐趣之一是可以使用流将代码附加到表事件上——就像可以做任何事情的 SQL 触发器。这些都是极其强大的。我们使用的一个非常简单的模式是总是将表更新推送到 SNS 主题,其中的更改可以被您可能还没有编写的其他无服务器代码接收。
  • 不要忘记,DynamoDB 可以支持其他存储系统(RDMS、红移或纯文本文件),可以用来有效地消除流量峰值或保护另一个数据库免受海量数据的影响。DynamoDB 有一个 TTL 特性,允许您使行过期——这对于存放您想推到其他地方的数据非常有用。

第 5 课—无服务器框架 FTW

我早期对 Lambda 的实验是一件笨拙的事情,直接编码到 AWS 控制台中,并对做一些琐碎的事情需要大量的工作和错误消息感到沮丧。缺少将 IDE 连接到生产环境的桥梁。

嗯,直到你发现了无服务器框架,这是我多年来发现的最令人兴奋的东西。

一个简单的sls deploy拥有巨大的力量,将你宝贵的代码捆绑起来,直接发送到亚马逊的大脑。如果你因为代码行为不当而需要检查日志,只需输入sls logs -f functionname -t,你就可以像专业人士一样跟踪你的 CloudWatch 日志,而无需打开浏览器。

这个。变化。一切。没有服务器的人应该因为做了每个云提供商从第一天起就应该提供的事情而获得大量赞誉。简直太棒了。而且这么多赢

第六课——授权是镇上的新警长

在传统的应用程序中,你对用户进行一次身份验证,然后通过一个会话 ID 来跟踪这个人。我们喜欢它,因为你只需要做一次艰苦的工作,然后 ID 就可以让你在用户登录的整个生命周期内作弊,只要你愿意。

In the old world, the session ID controls access

但是这种方法有问题。只有当您将服务器放在中间时,它才会起作用,而我们刚刚将该服务器夷为平地。它也潜在地将你暴露给一些讨厌的攻击——像跨站点请求伪造(CSRF)——并且不允许你非常容易地将身份传递给其他服务。所以这种方法基本上支持 Monolith ( boooo!)。

我们讨厌巨石柱和 CSRF 袭击——但是我们喜欢我们的新朋友,JWT 令牌。当我知道这是如何工作的时候,我有一个禅宗般的兴奋时刻,但我需要一个图表来做好它。

第一步,获得一个 JWT,第二步,使用它与您编写的任何服务进行通信:

The first step looks familiar: the authorization process gets a JWT token

The second step is magic: any lambda function can accept and validate the token

基本的难点是每个请求都要经过身份验证,客户端甚至可以与多个无服务器活动对话。它非常安全,它是反垄断的,CSRF 甚至不存在于 JWT 土地上。您的无服务器代码所需要的就是使用一个定制的授权器来检查标题中的 JWT 是否有效(使用样板代码),我们就完成了。

JWT 让所有其他类型的认证看起来过于复杂。我们把一切都换成了 Auth0 (在某些情况下还有 Cognito),再也没有回头。无服务器身份验证既简单又非常有效,所以,团队加油。

这是一个勇敢的新世界

虽然我与 AWS 合作了很长时间,但我从未如此接近底层。即使在 EC2 的土地上,也有很多帮助,因为我参加聚会相对较晚。离开云专家的无服务器会议后,这感觉像是真正未被探索的领域,在黑暗中有明显更多的发现。

在我们最初的几个实验中,我们在尝试使用现有的工具和技术时有一些失误——结果并不理想。经过几个月的准备,我们已经正式开始以 100%无服务器的方式交付项目。我相信我们的迁徙和早期探索是值得的。

我们正在构建流畅的实时水疗应用,这些应用完全使用无服务器基础设施,可轻松扩展,成本降低 70–90%。我对回报既高兴又震惊。我从未如此确信无服务器技术将彻底改变云中的应用交付。

结果是革命性的。


获得更好职业所需的技能。

掌握现代技术技能,获得认证,提升您的职业生涯。无论您是新手还是经验丰富的专业人士,您都可以通过实践来学习,并在 ACG 的帮助下推进您的云计算职业生涯。


云技能发展:在线、讲师指导还是混合?

原文:https://acloudguru.com/blog/business/skills-development-options-online-instructor-led-or-blend

当谈到员工的技术技能发展和云培训时,学习和发展团队可以考虑很多选择。

你如何选择?

选择正确的技能培养方法

如果您的团队分布在全球不同的时区,您可能希望员工可以根据自己的时间表全天候访问异步在线学习资源。

自助式云学习的其他优势包括:

  • 员工按照自己的节奏工作的能力。一些人可能很快掌握新概念,而另一些人需要更多的时间。
  • 按需访问沙盒和实验室环境进行动手实践,没有意外云账单的风险。
  • 探索日常工作要求之外的技术的机会。

一个常见的困境

过去,内部主题专家经常举办研讨会或向同事提供指导。同行培训似乎成本效益高,许多工程师说这是他们最喜欢的学习方式。然而,随着科技人才短缺,计算方法已经发生了变化。组织需要所有人都参与到任务关键型技术项目中来;他们抽不出自己的中小企业来领导培训活动。

这导致了两种趋势:增加对自助学习资源的投资,以及更多地聘请外部主题专家提供实时支持。例如,组织正在与外部中小企业合作:

  • 给员工一个提出概念问题和遇到困难时寻求帮助的出口。
  • 根据具体的用例或项目定制学习。
  • 帮助初入职场的员工更快地适应工作。
  • 为团队提供机会一起练习技能并获得反馈。

权衡成本和收益

五年前,组织倾向于比较自助学习和教师指导的培训,好像它们是相互排斥的。如今,学习和发展领导者提出了一系列更广泛的问题:

  • 如果项目延期和/或不成功,会有什么财务风险?这通常会影响学习计划的设计。如果一个项目太重要而不能失败,组织通常会投资混合学习(自助服务加讲师支持),以确保员工有额外的准备。
  • 时间表是怎样的?如果学习者需要在特定日期前为即将到来的项目学习新技能,L & D 倾向于采用混合方法,并辅以讲师支持,以确保员工能够将新知识应用到您的特定用例中。
  • 学员的情况如何?刚入行的人(无论是职场新人还是转行者)可能比有 10 年经验的工程师需要更多的指导。
  • 你的学员喜欢什么样的培训方式?这个问题的答案因雇主而异,在选择学习资源时值得考虑。
  • 您有不寻常的使用案例或不寻常的技术堆栈吗?如果答案是肯定的,员工可能需要额外的帮助,才能将新学到的知识与工作中将要做的事情联系起来。

免费在线培训怎么样?

网上有大量(可疑的)免费培训。为什么不依靠这个?这通常是低质量的,过时的,或者仅仅是一种营销手段。鉴于人才转型在实现云计算投资预期回报方面的重要性,如果你珍惜时间,依赖免费培训的代价是昂贵的。

边做边学

无论您选择何种途径进行云学习(在线资源、教师指导的培训或混合),最佳实践都需要大量的实践应用。你不能通过听课或完成测验来学习云技术。学习者需要能够卷起袖子,沉浸在实践中。

有了云专家,您的员工可以随时随地获得学习者需要的引人入胜的实践内容。我们还提供工具来帮助企业管理、衡量和扩展技能发展。如果您需要对更大的团队进行再培训,并希望获得讲师支持来补充或围绕云专家资源,我们也可以满足您的需求。

准备好入门了吗?查看我们的 ACG 商业计划,看看哪个适合您的组织。


了解云学习的实际应用

CloudCheckr 使用 ACG 在短短 90 天内提升了他们在 AWS 上的所有销售人员。看看他们是怎么做到的

解决方案:使用 xrandr 重置屏幕分辨率

原文:https://acloudguru.com/blog/engineering/solution-resetting-your-screen-resolution-with-xrandr

AWS Lambda 和 CloudFormation 上的蓝绿色部署

原文:https://acloudguru.com/blog/engineering/some-quick-thoughts-on-blue-green-deployment-for-lambda-with-cloudformation

关于 Lambda 和 AWS CloudFormation 的部署,我想了很多。为 Lambda 添加了加权别名,为 API Gateway 添加了加权别名,这意味着使用同一个端点分阶段“就地”部署代码现在是可能的——通常称为蓝绿色部署。

什么是蓝绿部署?

蓝绿色部署是一个持续的部署过程,通过拥有两个相同的生产环境(分别称为蓝色和绿色)来减少停机时间和风险。蓝绿色部署允许您在向新的应用程序版本发送生产流量之前对其进行测试。如果新部署的应用程序版本有问题,您可以比就地部署更快地回滚到以前的版本。

蓝绿色部署挑战

这种方法的一个后果是,您的应用程序同时有多个版本的函数代码处于活动状态。

从根本上说,版本化的 Lambda 代码感觉不属于 CloudFormation。最后,Lambda 函数的版本集可能看起来像是你的存储库历史的复制品。

您只希望使用中的代码——您的活动分支——出现在使用 CloudFormation 的应用程序的托管基础架构中。所以我开始思考如何在 CloudFormation 之外发布函数,同时仍然链接到模板内的资源。

不断增长的 AWS Lambda 版本列表

除了… 功能配置在慢慢变化,感觉可能属于云形态。配置指定了应该在 CloudFormation 中的 IAM 角色,并且环境变量可以引用其他 CloudFormation 资源。

然而,配置是用代码版本化的,所以在 CloudFormation 之外部署代码将不得不从堆栈中获取值。堆栈(即加权别名)还需要引用由该部署代码创建的 Lambda 版本。

所以它在自动气象站的云层中穿梭。不太好。

我在下面创建了一个图表来描述这个挑战。简明扼要地绘制图表实际上很烦人,因为这完全是关于它如何随时间演变的。😒

The ever-growing list of Lambda versions.

不断增长的 Lambda 版本列表似乎不属于 CloudFormation,因为模板会不断增长。功能配置与代码一起被版本化,因此将被部署在 CloudFormation 之外——但它在慢慢变化。这些函数还引用了 CloudFormation 中的资源。这两者都清楚地表明它应该存在于模板中。

一旦我找到了想要的模型——不管它是什么——我会创建定制资源来完成它——但我希望它能在未来为山姆工作。

我目前对这个挑战的想法是:

AWSLambdaPlaceholder

将会有一个资源表示 Lambda 函数的存在:它创建名称(并且仅在必要时,部署非功能性代码作为占位符)。与现有的 AWSLambda函数资源不同,除了(可选的)FunctionName 之外,它不接受任何属性。我将这个资源类型称为 AWSLambdaPlaceholder。

AWSLambda部署

部署一个版本会有一个资源类型。它将采用 AWSLambdaFunction 的所有属性,但有两处更改:

  1. FunctionName 对于放置占位符资源引用的位置是必需的
  2. CodeSha256 将是可用的,但也是可选的,以允许像现有的 AWSLambdaVersion 资源那样防止竞争情况)

我将这个资源类型称为 AWSLambdaDeployment。当在模板中引用时,它将返回版本 ARN——并且可能将版本号作为属性。

与 AWSLambdaVersion 不同,AWSLambdaDeployment 可以针对任何字段进行更新。这将导致一个新版本的出版。堆栈中将不再有对其先前部署的版本的任何引用,但该版本实际上不会被移除。

多个部署资源

您可以拥有多个部署资源,对于您所引用的模板中的每个位置,都有一个版本——每个版本在上图中都有一个连接。

AWSLambdaexisting deployment

有一种方法来引用 Lambda 函数的现有版本是很有用的,这样,如果需要再次引用以前的版本,就可以直接插入它。可能是 AWSLambdaexisting deployment。

进化的步骤

使用原始的图表并用蓝色标注 AWSLambdaDeployment 资源,演变看起来会是这样的:

步骤 1: 我们刚刚部署了第一个版本:

步骤 2: 现在假设我们刚刚更新了配置,为 Lambda 函数提供了更多内存。这不需要我们使用加权别名来部署,我们只需更新部署资源。

加权别名资源将使用新的版本引用进行更新。函数版本 v1 将不再出现在堆栈中的任何地方——但它仍然存在。

步骤 3: 现在我们已经有了一个代码更新,我们想使用加权别名来推出它。我们将添加一个新的部署资源来部署指定功能配置的新代码——即使它没有改变——并将加权别名指向它。我们在部署时会保留这两种部署资源,因为它们都在堆栈中被引用。

步骤 4: 部署完成后,我们可以更新堆栈以删除旧的部署资源,并更新加权别名以删除其对该部署的引用。

**第 5 步:**使用这种方法,下面是显示部署资源使用情况的更新图。

对于更简洁的模板,该选项将提供单独的配置资源。它本身实际上不会做任何事情,但是可以被多个部署引用。

我所建模的是基于一个概念系统,在这个系统中,使用你的基础设施图,比如 CloudFormation,你没有作为一级概念的功能。相反,假设您告诉您的事件源“使用这个 IAM 角色和这个配置执行这个代码工件(来自 S3)”。

在您的基础结构图中,您可以在两个节点(事件源和功能代码)之间创建一条边。edge 是第一个类概念,包含要调用的代码的配置。

这不一定是我想要的未来,但我认为从方向上来看,将短暂计算视为将业务逻辑融入系统并将其粘合在一起是有用的。


获得更好职业所需的技能。

掌握现代技术技能,获得认证,提升您的职业生涯。无论您是新手还是经验丰富的专业人士,您都可以通过实践来学习,并在 ACG 的帮助下推进您的云计算职业生涯。


关于蓝绿色部署的更多资源:

如何使用 SCP 和 SSH Linux 命令

原文:https://acloudguru.com/blog/engineering/ssh-and-scp-howto-tips-tricks

本教程还记录了 Linux 命令之间的一些重要差异。

Linux 就业市场继续增长和扩大,我们的 LFCS 课程将帮助你准备一个标准的行业 Linux 管理认证。


加速您的职业发展

从 ACG 开始通过 AWS、Microsoft Azure、Google Cloud 等领域的课程和实际动手实验室改变你的职业生涯。


难度: 基础

在我们开始之前:在本教程中,你将会遇到 ssh 和 SSH。区别在于:ssh 是通用协议,SSH 是 linux SSH 客户端命令。

SCP 命令

scp 命令允许您通过 ssh 连接复制文件。如果你想在计算机之间传输文件,例如备份一些东西,这是非常有用的。scp 命令使用 ssh 命令,它们非常相似。然而,有一些重要的区别。

如何使用 SCP

从(远程)服务器拷贝到您的电脑

  1. 从您的电脑拷贝到(远程)服务器
  2. 从一台(远程)服务器复制到另一台(远程)服务器
  3. 在第三种情况下,数据直接在服务器之间传输;你自己的电脑只会告诉服务器做什么。

这些选项对于许多需要传输文件的事情非常有用,所以让我们来看看这个命令的语法:

上面的 scp 命令会将文件“examplefile”传输到服务器“yourserver”上的目录“/home/yourusername/”,尝试使用用户名“yourusername”获得 ssh 访问。这是相当多的信息,但 scp 真的需要全部。嗯,几乎全部。您可以省略“您的服务器”前面的“您的用户名@ ”,但前提是您想在自己的计算机上使用当前用户名登录服务器。

[pineehad@localhost ~]$ scp examplefile yourusername@yourserver:/home/yourusername/

让我们仔细看看命令的结尾。那边有个冒号,后面有个目录。就像 Linux 的普通 cp 命令一样,scp 需要知道源文件和目标目录(或文件)。对于远程主机,文件/目录以这种方式提供给 scp 命令。您也可以将一个(或多个)文件从(远程)服务器复制到您自己的本地计算机上。让我们来看一个例子:

注意:末尾的点表示当前的本地目录。这是一个方便的技巧,可以在 Linux 的任何地方使用。除了单点之外,您还可以键入双点(..),是当前目录的父目录。

[pineehad@localhost ~]$ scp yourusername@yourserver:/home/yourusername/examplefile .

这将把文件“/home/yourusername/examplefile”复制到您自己计算机上的当前目录中,前提是用户名和密码是正确的,并且该文件确实存在。您可能已经猜到,以下命令将文件从一台(远程)服务器复制到另一台(远程)服务器:

注意:要使上面的命令工作,服务器必须能够互相连接,因为数据将在它们之间直接传输。

[pineehad@localhost ~]$ scp yourusername@yourserver:/home/yourusername/examplefile yourusername2@yourserver2:/home/yourusername2/

如果服务器由于某种原因不能互相连接(例如,如果端口 22 在一端没有打开),你将不能复制任何东西。在这种情况下,首先将文件复制到您自己的计算机上,然后复制到另一台主机上。或者使服务器能够彼此联系(例如通过打开端口)。这些是 scp 的主要用途。

我们将更深入地讨论 ssh 和 scp 之间的区别。实际上,您也可以像普通的 cp 命令一样使用它,而不需要任何 ssh 连接,但这完全没有用。它要求你多打一个“s”。

用 scp 指定端口

当涉及到端口时,scp 命令的行为稍有不同。您可能认为应该这样指定端口:

然而,这是行不通的。您将会看到如下错误消息:

[pineehad@localhost ~]$ scp -p yourport yourusername@yourserver:/home/yourusername/examplefile .

这是由 scp 的不同架构造成的。它的目标是类似于 cp,cp 也有-p 选项。然而,在 cp 术语中,它的意思是“保存”,它使 cp 命令保存诸如所有权、许可和创建日期之类的东西。

cp: cannot stat `yourport': No such file or directory

scp 命令也可以保存类似的东西,并且-p 选项启用了这个特性。应该使用-P 选项指定端口。因此,以下命令将起作用:

还要注意-P 选项必须在(远程)服务器的前面。

[pineehad@localhost ~]$ scp -P yourport yourusername@yourserver:/home/yourusername/examplefile .

如果您在主机语法后面加上-p,ssh 命令仍然可以工作,但是 scp 不行。为什么?因为 scp 也支持两个服务器之间的复制,因此需要知道“-P”选项适用于哪个服务器。

SSH 命令

SSH 是某种安全 SHell 的缩写。这是一种允许计算机之间安全连接的协议。

在本教程中,我们将处理 Linux 上的 ssh 命令,OpenSSH 版本。今天,大多数 Linux 发行版都有 OpenSSH 客户端的特性,但是如果你想确定的话,可以看看你的系统上的 SSH 联机帮助页。您可以通过键入以下命令来完成此操作:

注意:这应该在终端中完成。

[pinehead@localhost ~]$ man ssh

如果它显示如下内容:

那么您可以非常确定您运行的是 OpenSSH 版本。有关 SSH 的更多背景信息,请参见https://en.wikipedia.org/wiki/SSH

NAMEssh - OpenSSH SSH client (remote login program)

最简单的例子

在最简单的情况下,您可以使用如下语法连接到支持 ssh 的服务器:

注意:如果您附近没有可以访问的 ssh 服务器,您也可以使用自己的计算机作为服务器来尝试这个命令。为此,请将“yourserver”替换为“localhost”。当然,您的服务器应该替换为您想要连接的服务器的主机名或 ip 地址。

[pineehad@localhost ~]$ ssh yourserver

正如您在终端代码片段中看到的,我以 pineehad 的身份登录。如果您不指定用户名(我将在本教程的后面解释如何做),SSH 将假设您希望使用当前登录的用户名登录。因此,在这种情况下,SSH 将尝试用户名 pineehad。当然,您需要确保服务器支持 ssh 连接。

ssh 客户端尝试连接到默认的端口 22。这意味着,如果您想要使用默认设置连接到远程主机,您应该确保端口 22(如果适用)被转发到您尝试连接的服务器。在本教程中,您将找到更多关于 SSH 端口的内容。

现在,回到我们运行的命令。如果服务器支持 ssh 连接,并且您可以通过端口 22 访问它,则应该提示您输入密码(如果这是您第一次尝试连接服务器,SSH 将首先询问您是否要继续连接,通常只需回答“是”)。如果您在此处键入密码,您将不会看到星号出现。不要惊慌,这是宋承宪的正常行为。这使得使用 ssh 连接更加安全,因为任何偶然的旁观者都无法看到密码的长度。

输入密码后,如果用户名和密码正确,您应该在服务器上运行 shell。如果没有,请确保您正在连接的服务器知道您应该能够使用您的用户名和指定的密码登录。您可以尝试连接到您自己的计算机(参见终端引用下面的注释),或者继续阅读以了解如何指定另一个用户名。尝试完 ssh shell 后,可以通过按 Ctrl + D 退出它。

指定用户名

指定不同的用户名其实很简单。你可能已经很熟悉它了。请参见以下示例:

以上将使 ssh 尝试使用用户名“yourusername”连接,而不是(在我的例子中)pineehad。许多其他协议也使用这种语法,所以了解它总是很方便的。

[pinehead@localhost ~]$ ssh yourusername@yourserver

顺便说一下,您仍然会被要求输入密码。出于安全原因,甚至不可能在语法中直接指定密码。除非您开始以高级方式配置服务器,否则您总是会被交互地询问(这正是该主题超出本教程范围的原因:本教程记录了如何使用客户机,而不是如何配置服务器)。

将 ssh 服务移动到另一个端口

将 ssh 服务转移到另一个端口有很多原因。其中之一是避免暴力登录尝试。某些黑客试图通过使用普通密码尝试许多普通用户名来访问 ssh 服务器(想想密码为“doe”的用户“john”)。

尽管这些黑客不太可能访问系统,但是暴力攻击的另一个方面是您通常希望避免的:系统和连接负载。暴力攻击通常在一秒钟内进行几十次甚至几千次,这不必要地降低了服务器的速度,占用了一些本可以更好地使用的带宽。

通过将端口更改为非默认端口,黑客的脚本将被拒绝,大部分带宽将被节省。由于 ssh 命令不能猜测端口,如果它不是默认的 22 端口,我们就必须指定它。你可以这样做:

当然,您必须用端口号替换“yourport”。这是 ssh 和 scp 在这一点上的重要区别。我将进一步解释它。

[pineehad@localhost ~]$ ssh -p yourport yourusername@yourserver

在远程服务器上运行命令

有时,尤其是在脚本中,您会想要连接到远程服务器,运行一个命令,然后再次退出。ssh 命令有一个很好的特性。您可以在选项 username 和 hostname 后指定命令。看看这个:

这将使服务器更新其搜索数据库。当然,这是一个非常简单的命令,没有参数。如果你想告诉别人你在网上读到的最新消息,该怎么办?你可能认为下面的话会给他/她传达这样的信息:

[pineehad@localhost ~]$ ssh yourusername@yourserver updatedb

然而,如果您运行这个命令,bash 会给出一个错误:

[pineehad@localhost ~]$ ssh yourusername@yourserver wall "Hey, I just found out something great! Have a look at www.examplenewslink.com!"

发生了什么事?Bash(你的 shell 后面的程序)试图解释你想给 ssh 的命令。这会失败,因为命令中有感叹号,bash 会将其解释为应该启动 bash 函数的特殊字符。

bash: !": event not found

但是我们不希望这样,我们只是希望 bash 把命令交给 ssh!有一个非常简单的方法可以告诉 bash 不要担心命令的内容,只需将它传递给 ssh 即可:用单引号将它括起来。看看这个:

单引号防止 bash 试图解释该命令,因此 ssh 接收该命令,不做任何修改,并可以将其发送给服务器。不要忘记单引号应该出现在整个命令中,而不是其他地方。

[pineehad@localhost ~]$ ssh yourusername@yourserver 'wall "Hey, I just found out something great! Have a look at www.examplenewslink.com!"'

SCP 和 SSH 的区别

与 ssh 不同,scp 不能用于在(远程)服务器上运行命令,因为它已经使用 ssh 的这个特性来启动主机上的 scp 服务器。scp 命令确实有一个接受程序的选项(-S 选项),但是这个程序将用于代替 ssh 来建立加密连接,并且不会在远程主机上执行。

技巧&使用 SCP 和 SSH 的技巧

scp 的一个很方便的地方是它支持星号。您可以通过以下方式复制远程目录中的所有文件:

您也可以通过指定-r(递归)选项来复制整个目录:

[pineehad@localhost ~]$ scp yourusername@yourserver:/home/yourusername/* .

当复制到一个(远程)服务器或在一个(远程)服务器和另一个(远程)服务器之间复制时,这两种方法都有效。如果您不知道要用 scp 复制的文件的确切位置,ssh 命令就可以派上用场。首先,到(远程)服务器的 ssh:

[pineehad@localhost ~]$ scp -r yourusername@yourserver:/home/yourusername/ .

然后用 cd 浏览到正确的目录。这是必不可少的 Linux 终端知识,这里就不解释了。当您在正确的目录中时,您可以使用以下命令获得完整路径:

[pineehad@localhost ~]$ ssh yourusername@yourserver

注意:pwd 是 Print Working Directory 的缩写,这是一种记忆命令的有用方法。

[pineehad@localhost ~]$ pwd

然后,您可以复制这个输出,通过按 Ctrl + D 离开 ssh shell,然后在 scp 命令中粘贴完整的目录路径。这样就省去了很多记忆和打字!

您还可以限制 scp 在复制时可能使用的带宽。如果你想拷贝大量的数据,而又不想长时间受网速慢的困扰,这是非常有用的。限制带宽是这样实现的:

带宽以千比特/秒为单位。这是什么意思?八位是一个字节。如果您希望复制速度不超过 10 千字节/秒,请将该限制设置为 80。如果您希望复制速度不超过 80 千字节/秒,请将该限制设置为 640。明白了吗?您应该将该限制设置为您希望的最大千字节/秒的八倍。

scp -l bandwidthlimit yourusername@yourserver:/home/yourusername/* .

我建议您对其他人也需要使用的连接设置-l 选项。如果你使用集线器,大量的拷贝会阻塞整个 10 兆比特的网络。

提升您的云计算职业生涯


无论您是云新手还是专家,云专家都能让您轻松(而且非常棒)地获得认证并掌握现代技术技能。查看我们当前的 免费云课程 或通过免费试用提升您的 云和 it 职业道路

最后的话


好吧,就是这样!我希望你学到了很多。当然,如果你忘记了什么,你可以再快速浏览一下这个教程。请告诉其他可能对本教程感兴趣的人,如果你这样做,你将有助于这个博客的发展=)。感谢您的阅读,并与您的新知识有很多乐趣!

Well, that was it! I hope you learned a lot. Of course, you can always have a quick look at this tutorial again if you forgot something. Please tell other people who might be interested about this tutorial, you’ll help this blog to grow if you do =). Thank you for reading and have a lot of fun with your new knowledge!

星巴克和 Alexa

原文:https://acloudguru.com/blog/engineering/starbucks-and-alexa

存储服务对比:AWS vs Azure vs GCP

原文:https://acloudguru.com/blog/engineering/storage-showdown-aws-vs-azure-vs-gcp-cloud-comparison

在本帖中,我们来看看不同云提供商的存储选项。我们将看看 AWS、Azure 和 GCP 之间的相似之处、不同之处和值得关注的地方。

随着全球向远程和异步工作的转移不断增加,我们的数据存储需求也在增加。因此,毫无疑问,存储已经成为云提供商的基础,并为公司提供了一种相对简单的方式来开始使用云。


通往更好职业的钥匙

从 ACG 开始通过 AWS、Microsoft Azure、Google Cloud 等领域的课程和实际动手实验室改变你的职业生涯。


但是亚马逊网络服务(AWS)微软 Azure谷歌云平台(GCP) 的存储服务对比如何?让我们看看他们如何在这个云提供商比较指南中叠加!

AWS vs Azure vs GCP:云提供商比较

在云的世界里,并不都是苹果对苹果。以下是其他一些云比较指南。

什么是数据存储?

数据可以存储在纸张、磁盘、磁带、光盘上……甚至可以存储在细菌的 DNA 中。但是存储所有这些数据会占用空间和成本,而且一些数据存储介质并不是真正为长期设计的。进入云端。

云提供商已经知道如何大规模创建各种存储方法,从而以低成本实现高可靠性。您需要为您所使用的内容以及符合您需求的性能和功能付费。

最常见的数据存储形式是对象存储、归档存储、文件存储和块存储,每种类型适用于不同的用途。


Complete guide to the Cloud and Dictionary

抢云词典之痛
说云不一定要硬。我们分析了数以百万计的回复,找出了最容易让人犯错的概念。获取我们的云指南,获取云中一些最令人头疼的术语的简明定义。


对象存储比较:亚马逊 S3,Azure Blob 存储,谷歌云存储

说到对象存储,可以把对象想象成一个文件。你收集的令人印象深刻的爸爸笑话迷因是对象,它们可以存储在对象存储服务的云中。

AWS 称他们的对象存储服务为亚马逊简单存储服务,简称 S3。

GCP 有一个恰当的名字谷歌云存储

而 Azure 通过调用他们的服务 Azure Blob Storage (BLOB 的意思是“二进制大对象”)来提升极客配额。AWS 和 GCP 都称你放入数据的东西为“桶”,而 Azure 称之为“容器”

这些存储服务有很多共同点。它们都提供:

  • 版本控制
  • 静态加密
  • 细粒度的安全性,包括使对象可公开访问或完全私有的选项

S3、云存储和 Blob 存储都提供存储类别层,存储类别的性能和冗余度越高,您支付的费用就越高。还有一些选项可以降低访问频率较低的数据的成本。这些存储类别称为:


本帖中,我们接触到了 AWS S3 冰川即时检索,并提供了一个信息图来帮助您决定哪种 S3 存储类别适合您的需求。


对象存储归档

出于法规或法律原因,许多组织都需要将数据保留一段时间。这可能会变得昂贵。幸运的是,云提供商有自己的低成本归档解决方案。

在规定的保留期结束后,是否有义务删除数据?幸运的是,云提供商也在这些解决方案中内置了存储生命周期管理,并且可以自动删除过期的对象,而无需您手动执行此操作。神奇!

文件存储比较:亚马逊 EFS,Azure 文件,谷歌云文件存储

如果您正在寻找高性能存储,您会希望选择每秒输入/输出操作数或 IOPS 高的解决方案。这就是文件存储的用武之地。可以把它想象成网络上的共享驱动器。通用文件存储服务将提供网络文件系统(NFS)或服务器消息块(SMB)访问,允许其他系统通过网络连接并使用该存储,就像它是本地卷一样。

与对象存储一样,这些服务非常相似,只是在协议、最大卷大小和性能方面略有不同。

不过,AWS 确实比其他提供商多了两个文件存储选项。亚马逊 for Windows 版针对 Windows 服务器环境进行了优化,而亚马逊 for Lustre 版则针对高性能计算用例。

块存储比较:亚马逊 EBS、Azure 托管磁盘、谷歌持久磁盘和固态磁盘

如果您有需求—对速度的需求—数据块存储正是您需要的。把块存储想象成一个原始硬盘。它将提供最高的 IOPS。

这三家云提供商都有块存储选项,因为运行虚拟机非常需要它们。块存储让我们的虚拟机启动到他们的操作系统。

所有这些都提供类似的功能,允许您配置非常快速的 SSD 设备,或者使用更传统的磁性硬盘驱动器来节省一些资金。计划快照和临时快照允许您打包、恢复和复制数据块存储设备。所有提供商的数据块存储加密都只需点击鼠标即可完成。

数据传输

所有这些关于云的讨论都很好,但是首先,你实际上是如何将所有的数据放入云中的呢?

嗯,最基本的方法是使用 web UI 或命令行界面(CLI)从您选择的云提供商上传您的数据。AWS 和 Azure 还提供可下载的虚拟设备,可以安装在你自己的数据中心作为传输网关,在后台将数据同步到云。

但是,如果您的数据中心存储了数 Pb 的数据,该怎么办呢?即使有最快的互联网连接,传输所有这些数据也需要数年时间。朋友们,这就是为什么你永远不能低估送货卡车的带宽。

所有主要的云提供商都允许你用硬盘邮寄数据。

  • Azure Data Box Disk 基本上就是一个装满 SSD 硬盘的盒子,带 USB 3.0 端口。用多达 40 TB 的数据填满磁盘,将其运回微软,您的数据将加载到您的存储帐户中。Azure 还有一个容量高达 1 PB 的更大版本,名为 Azure Databox Heavy ,有点像铁娘子巡演中拖着的 roadie 箱子。

  • GCP 有一个类似的硬件设备,称为传输设备,它也可以在一次往返中容纳高达 1 PB 的数据。但是目前的数据导入之王是 AWS 和他们的雪族AWS SnowconeAWS Snowball 设备都提供数据传输,并包括计算硬件,这使它们能够像小型 AWS 数据中心一样运行。

  • 然后是 AWS 雪地车,被描述为“45 英尺长的加固集装箱,由半挂卡车牵引”。它将驱动到您的数据中心,插入电源,并以每秒 240 千兆位的速度接收高达 100 PB 的数据!

AWS、Azure、GCP 哪个好?

我们在这里保持中立,说 AWS、Azure 和 GCP 的存储选项都非常相似。这是意料之中的。存储在很大程度上已经成为一种商品,提供商专注于提高性能和降低成本。

如果你想了解更多关于这些云服务的信息,可以从一位云计算专家那里开始免费试用涵盖这些服务的视频和动手实验。除了那辆摩托雪橇车。我们还没有这方面的动手实验(目前还没有!).


停止搜索,开始学习!开始与云专家一起动手,掌握最受欢迎的技术技能。

大规模流媒体视频:代码转换的故事

原文:https://acloudguru.com/blog/engineering/streaming-video-at-scale-a-tale-of-transcoding-at-acg

视频转码在我们学生使用云计算大师平台的体验中发挥了巨大作用。我们来自世界各地的学习者可以在他们的桌面、平板电脑或我们的移动应用程序上观看我们的内容。

还有相当多的云学习内容需要观看。现在,我们有 340 门课程,包含 11,050 个单独的课程。此外,还有 26 个网络系列,包含 503 个单独的系列视频。我们最近增加了动手实验内容,因此在此基础上又增加了大约 1,500 个视频。我们定期更新我们的目录。每个视频的长度从 2 到 20 分钟不等。视频内容真多啊!

在这篇文章中,我将分享我们如何处理代码转换的故事,看看从最开始到当前的实现是如何完成的。我们将探讨我们在此过程中遇到的问题和权衡,以及如何改进我们当前的解决方案。

但是什么是代码转换呢?

我听到你问,“为什么它很重要?”从很高的层面上来说,视频转码是将视频从其原始格式转换为另一种格式的过程,通常是将其缩小到更适合终端设备的格式或分辨率。该过程本身包括将视频文件从一种格式解码为未压缩格式,然后将未压缩数据编码为所需格式。

那么,为什么我们需要不同的视频格式和分辨率呢?我们希望能够在多种设备上兼容观看我们的内容,包括 PC、平板电脑、手机、智能冰箱等等。更重要的是,我们希望确保我们的用户能够在他们使用的任何设备上获得最佳的观看体验。

你可以想象一个 ACG 的学习者试图在一个低连接的地区用手机观看一个高清视频云形成要点会有一个非常糟糕的体验!

因此,我们拥有的选项越多,我们可以接触到的设备和用户就越多,每个人的体验也就越好。

我们一开始是怎么做的?

当然,一个云专家并没有一开始就有这么多的视频内容,而且我们当时也没有移动应用程序。

最开始,回到 2015 年,视频转码是一个手动过程。该团队会上传一个视频到一个名为手刹的程序,应用程序会对视频进行转码。

不用说,不久就需要一种新的方法!

介绍 AWS 弹性转码器

我们是一家运行在亚马逊网络服务(AWS)上的无服务器商店,所以利用弹性转码器(AWS 在云中的媒体转码器)是非常明智的。它是 AWS 的第一个代码转换服务,现在已经在很多应用程序中使用。

与手刹一样,它将媒体文件从一种格式转换成可以在不同设备上播放的各种不同格式。

Elastic Transcoder 还为流行的输出格式提供了转码预设,因此您无需猜测哪些设置在特定设备上效果最佳。因此,无论是 iPhone、三星、Kindle 还是其他什么,它都迎合了这些设备的需求。

同年(2015 年),对转码流程进行了改造。最初的过程完全是手动的,是时候实现自动化了!

通常,我们平台上的内容创建者需要转换至少 1080p(全高清分辨率)的 mp4 视频。当用户在桌面上观看我们的视频时,质量默认设置为 720p,这是标准的高清。我们还提供 1080p 和更低的 480p 作为播放选项。

我们的第一次实施效果如何?

  1. 我们的内容团队将从编辑器 UI 上传一个 MP4 文件,并将其添加到我们的 S3 输入桶中。文件名中包含数据编码,因此看起来可能是这样的:course/AWS-CsA/section-1/component-1 . MP4

    文件名按课程、课程名称、部分和组件分类,因为您可能有多个视频组成一门课程的不同部分。

  2. 上传到输入存储桶将触发 lambda 函数,该函数由输入 S3 存储桶中的 ObjectCreated 事件触发。

  3. lambda 将向 Firebase 写下处理状态,表示已经为该文件启动了新的代码转换作业。

  4. 然后,lambda 会将 S3 对象密钥作为输入传递给弹性代码转换器,以处理 mp4。

  5. Elastic Transcoder 会将转码后的视频以我们指定的格式放入输出桶中。重要的是要注意,在这一点上,我们想要转码的配置在我们的源代码中是固定的。

  6. 然后,我们有一个 lambda,它将由输出桶中的 ObjectCreated 事件触发,该事件将使用代码转换作业的状态“完成”来更新 Firebase。

  7. 在整个过程中,数据被重新同步到浏览器(Firebase 有 websockets)。当代码转换器在后台工作时,状态在 Firebase 中更新,然后 Firebase 将状态推送到浏览器。

  8. 最后,对于任何在平台上观看的学习者,他们将通过一个签名的 URL 访问内容。他们会看 1080p、780p 或 480p 的 mp4。

这种方法的问题

在这个时候,我们正在引入 web 系列,这个架构与 Courses 和 Firebase 紧密耦合。我们知道,除了课程视频之外,我们还需要不同类型的内容,这个解决方案并不通用。

另一个问题是数据被编码到文件名中。因此,这个实现将基于文件名在服务中传递数据。这是它知道文件与特定课程中的特定视频相关的方式。这就是 Firebase 层次结构是如何确定的,它与具体的课程紧密耦合。

S3 支持元数据,所以我们可以通过键值对作为元数据添加这些数据,而不是从文件名中提取。视频预置被硬编码到源代码中,所以我们不能在整个过程中添加任意数据。如果我们想用不同的配置对视频进行转码,我们不能这样做,因为预置在源代码中是固定的。

我们也没有 DynamoDB 来查找或存储任何额外的数据——实际上你所拥有的只是在 lambda 函数中传递的文件名。

我们是如何摆脱这种局面的?

我们知道我们想要不同类型的内容,并且之前的设计将课程与 Firebase 紧密耦合,所以我们决定将内容的类型分离。现在,我们为网络系列和课程提供了不同的服务,还有一个进行代码转换的内容服务。

内容服务本身是通用的。它不知道视频内容是连续剧还是课程材料,也不知道连续剧还是课程服务,它只关注转码工作。

浏览器将调用内容服务,通过上传视频进行代码转换来创建一段内容,内容服务将返回一个 contentID。根据内容,该 contentID 将与网络系列服务中的一集或课程服务中的一节相关联。

窥探内容服务

图中的内容服务是一个带有 GraphQL 端点的服务,它触发 lambdass,然后 lambda 根据请求与特定的 AWS 服务对话。我在这里用 GraphQL 标识来表示它。

在内容编辑器 UI 中,我们首先通过 GraphQL 变体/API 创建一段内容,这将触发一个处理程序将这段内容写入 DynamoDB。通过这个 API 调用,我们能够指定我们想要的视频定义/格式。比如我们可以通过 720p,1080p,mp3 等。而在之前的实现中,这个细节是在源代码中硬编码的。

接下来,内容服务创建一个预签名的 URL,这样内容只能由内容编辑上传到 S3 输入桶中。

现在,我们做代码转换!

  1. 向 Elastic Transcoder 发送请求以启动作业,对内容进行代码转换。

  2. Elastic Transcoder 从 S3 输入桶中获取被请求转码的视频,并在作业完成后将转码后的视频文件放入 S3 输出桶中。

    随着代码转换过程的进行,Elastic Transcoder 使用作业状态更新 DynamoDB 表,因为它为您提供了作业的开始和结束事件。例如,一旦 Elastic Transcoder 完成了工作,它就会在 SNS 主题的有效负载中发送该状态。然后订阅该主题的 lambda 会去更新 DynamoDB。

  3. 发生这种情况时,浏览器会轮询更新,以便用处理状态更新 UI。这取代了可用于 Firebase 的 web 套接字。我们现在已经从 Firebase 转移到 DynamoDB,这是我们做出的权衡。

4.一旦这项工作完成,转码后的文件将被放入 S3 输出桶,CloudFront 将为视频内容提供签名的 URL。这确保了我们的内容只对平台成员开放!

我们当前方法的问题

这个解决方案的大部分是在云形成中,但不是全部!不幸的是,弹性代码转换器不是一个受支持的资源,所以我们不得不在控制台中手动设置它。

另外,弹性转码器服务现在已经过时了。有一个更新的服务我们可以用它来代替,我很快就会谈到它!

我们已经走了这么远,我们已经做出了改变,我们取得了什么成就?嗯,我们已经设法通过内容服务来集中我们所有的视频。每一点视频内容,不管它是为了什么(课程或网络系列,现在动手实验室),都使用相同的接口进行转码。我们以前已经脱离了这种紧密耦合的解决方案。

展望未来

我们如何改进当前的实施?我提到的弹性转码器已经过时了。这是第一个能够转码视频的 AWS 服务,但现在有一个更新的服务可以取代它——AWS Elemental media convert。

MediaConvert 可以做和弹性转码器一样的事情,甚至更多!它支持更多的输入和输出格式,以及 HEVC 和 H.264 压缩标准(Elastic Transcoder 仅支持 H.264)和其他新功能,包括视频质量改进、编解码器和其他附加功能。

它在 CloudFormation 中可用,所以我们将能够有一个完整的 IaC 解决方案,这太棒了!您可以在 Cloud Formation 中生成转码作业,以及队列和预置。

MediaConvert 的定价模式类似于弹性转码器,因此您可以按需购买,按需付费。并且速率基于输出视频的持续时间。使用 MediaConvert 要便宜得多,这对我们每个月的代码转换账单肯定有帮助!

我们现在已经为我们的内容提供了有效的代码转换服务,希望 MediaConvert 在不久的将来能够锦上添花!

即使不参加考试也要学习云证书的 4 个理由

原文:https://acloudguru.com/blog/engineering/study-cloud-cert-even-without-exam

获得了云认证的学习机会?这是一个很好的机会,即使你不参加考试。在本文中,Mattias Andersson 解释了为什么证书的真正价值完全是另外一回事。

所以,你正在考虑学习云认证。然而,你不确定你能参加考试。无论是时间限制、成本、信心,还是其他,你都不确定自己要开始一件做不完的事情。毕竟,没有那张纸,还有什么意义呢?

然而,参加考试的行为实际上无关紧要,原因如下。

1.证书不能解决问题,知识可以

想象一下你公司的网站瘫痪了。你会大喊“别担心,我有证书!”,继续在网站上挥舞你的证书,它又回来了?

不,当然不是!虽然认证肯定会让你有信心进入现实世界,觉得自己有能力解决问题——这种信心绝对有价值——但你所拥有的知识才是真正重要的,而且实际上能帮你解决问题。

通过学习云认证,您将了解可用于解决某些业务问题的工具。您还知道如何以高效和有效的方式使用这些工具来解决这些问题,因此您可以增加价值。所有这些都是你不用参加考试就能得到的。

真正的收获是,你对该认证所代表的知识有了一个完整的理解,然后你就可以日复一日地用它来做实际的事情。这都是关于你从大脑中得到的东西,而不是事后他们给你发的邮件。

2.证书获得面试,知识获得工作

我与一家云供应商进行了一次对话,并与负责认证的人进行了交谈——定义认证、界定认证范围并确保认证内容有价值。他们告诉我,他们希望这些认证能够强烈地代表真实世界的价值,这对每个相关人员来说都是好事。

所以我问了这个问题,“那么,这是否意味着,如果你有这些证书中的一个,你不会面试这个人,你会说‘哦,你周一开始工作,马上过来。"

他们笑了,说“当然不是。事情不是这样的。它们是一个指标,但不能替代其他测量方法。”

所以,我经常听到人们说“一个证书可以让你得到一个面试,但它不能让你得到一份工作。”即使你找到了工作,也不会让你保住工作。认证的价值在于它向其他人传达了潜在的能力水平,但这不是它的主要目的。

然而,你从学习获得的知识对你的面试绝对有帮助。当你进入其中时,你能够交流你所理解的东西,因为你不只是在谈论假设的东西——你在谈论你已经研究过的东西,并且实际上理解得足够好,能够使用。

3.学习云证书有助于职业选择

当你学习了云认证后,你就能更好地通过查看招聘信息来评估他们是否适合你,以及他们会合理地要求你做多少。你也能更好地通过简历和求职信传达你可能提供的价值,因为你了解这些人可能面临的业务问题。

4.云基础认证普遍有用

AWS、Azure 和 GCP 等云供应商提供基础级云认证。有一种非常特殊的人应该服用这些药物,而这个特殊的人就是所有人!

这些认证对组织内的所有不同角色都有广泛的价值,无论他们的专业技术水平如何。如果你对技术一无所知,它迫使你获得一个真正强大的技术基线,这真的很有帮助。其他一切都建立在这个基础上。

不过,姑且说你技术超好。你已经和技术打交道几十年了,你真的了解这些东西。自从云出现以来,你甚至有可能一直在使用它。那么基础认证的价值是什么呢?

对于高度技术性的人来说,基础认证可以解决盲点。你不知道什么是你不知道的,直到你了解它。每天都有新的东西要学——虽然你可能知道 80%的主题,但剩下的 20%实际上也非常重要。

如果你从云问世以来就一直在使用它,那么你可能会陷入一个陷阱:仍然基于云的早期版本做决策。您希望利用当今更高的抽象技术,使事情变得更有效率。这很像一个编程几十年的人,但他们所理解的都是汇编语言编程。不管他们有多擅长,如果他们试图建立一个网站,他们会被任何懂得如何使用 Javascript 的人打败。

通过基础认证,您可以更多地了解有哪些新的解决方案可供使用,从而增加业务价值。

不要误解我,认证仍然是伟大的!

如果你读了这篇文章,并认为“证书并不重要”,那么这绝对不是要传达的信息。如上所述,在找工作和提高你的薪水时,它们会起到真正的作用。例如:

  • 在最近的一份 2021 年开源工作报告中,88%的招聘经理回应说,在评估简历时,证书很重要。
  • 在一位云专家的云状态报告中,52%的人表示云认证扩大了他们的职业机会。
  • 同样,一份报告发现,获得新技能和/或认证的 IT 专业人士平均加薪 12,000 美元至 13,000 美元。

关键是,认证的最大价值在于你学到的东西。认证考试只是一个标记,如果其他人没有能力或时间自己判断这些技能,他们可以用它来判断你。你头脑中有价值的知识是与认证考试及格分数相关的*,而不是由它引起的*。**

值得一读的相关文章

SUSE 推出 Rancher Desktop 1.0,开源的 NeuVector

原文:https://acloudguru.com/blog/engineering/suse-launches-rancher-desktop-1-0-open-sources-neuvector

本月 Kubernetes 有什么新消息?在这篇文章中,我们谈论所有牧场主的事情!Rancher 的母公司 SUSE 发布了他们新的开源安全产品 NeuVector。牧场主桌面点击率 1.0。了解为什么它是在您的家用电脑上运行 Kubernetes 的好方法。

请继续阅读完整的故事!


加速您的职业发展

从 ACG 开始通过 AWS、Microsoft Azure、Google Cloud 等领域的课程和实际动手实验室改变你的职业生涯。


SUSE 开源神经向量安全平台

我预计 2022 年将是 Kubernetes 安全的重要一年。或者至少是大的安全性转变——我们不仅谈论安全性,而且从第一天(以及之后的每一天)就开始集成安全性。

关于这个话题:拥有 Rancher 的 SUSE 公司发布了他们最近收购的neuv 矢量安全平台。这是业界第一个开源的以容器为中心的安全平台。

这就是魔法。社区喜欢开源,它向更多的开发者开放平台,让更多的人使用和测试它。但他们也将其与自己的 Rancher 容器管理平台集成在一起。

什么是 NeuVector?NeuVector 是一个以容器为中心的安全平台,它可以在容器的整个生命周期中进行持续的漏洞扫描、端到端的运行时安全性、良好的网络可见性,如果您是受监管的环境或只是需要更好的工作负载隔离,它甚至可以进行容器分段。

这就是与 Rancher 平台集成的全部内容,因此,如果你是一个潜在的新用户,你将获得更加企业化的前端和中心安全体验。如果你是现有用户呢?您将在未来的版本中获得所有这些。但是这让平台真的很有粘性。

我想这就是我们的目标。不像 Rancher 这样的容器管理平台提供原生的 Kubernetes 特性,只是打包得更好,并有支持合同。我们越来越多地看到,他们带来了更多的东西。

对我来说,这可能是好的也可能是坏的,我认为随着事情的发展,你需要密切关注这一点。但是我有太多丑陋的大型企业应用程序,它们变成了无法驯服的野兽。所以我真的希望 Rancher 和其他平台不要犯试图煮沸海洋的错误。

现在,我并不是说我们已经很接近了。现在,我确实认为像这样的整合有积极的一面。但我们不要忘记过去的错误,以免一次又一次地重复。


免费 Kubernetes 培训

查看二月份ACG的免费课程,其中包括我们的Kubernetes 故障排除 实践课程。不需要信用卡,不开玩笑!


牧场主桌面项目点击 1.0

继续关注 SUSE 和 Rancher,上个月,Rancher 桌面项目达到了令人垂涎的 1.0 里程碑。

非常祝贺参与其中的社区和团队。我知道,从历史上看,Rancher 为社区做出了巨大的贡献,而且似乎(至少从外部来看)自从被 SUSE 收购后,一切如常。

牧场主桌面是你的笔记本电脑和台式机 Kubernetes。

我自己也在使用 1.0 版本,我不得不说我喜欢它与最新版本以及旧版本的稳定版本一起工作的方式。它让我选择 containerd 或 Docker 作为运行时,我还可以选择 Docker 命令行或 nerdctl。

因此,如果您是一名开发人员,需要在您的笔记本电脑上获得可配置的 Kubernetes 体验,或者如果您只是在寻找一种快速简单的方法来体验和学习 Kubernetes,那么 Rancher desktop 值得一看。

根据我们刚才所说的关于将 NeuVector security 与主 Rancher 平台集成以增加粘性的内容,我认为拥有一个流畅的本地桌面体验也有可能无缝集成。这一切只是增加了整个牧场主组合的重力。

他们正在全力以赴,将自己打造成领先的 Kubernetes 公司,无论是在本地、在云中、在边缘、在您的桌面上,还是在更多地方。它们绝对值得一看!

跟上 K8s

关于本月 Kubernetes 的新闻,请看上面的视频。注意安全,我们下个月再见——同一时间,同一地点。

想要了解 Kubernetes 的所有信息?在推特上关注奈杰尔或者在这里关注他。在 YouTube 上订阅一位云计算专家,获取定期更新、分析和各种精彩内容。你也可以在脸书上喜欢 ACG,在推特上关注我们,或者在不和谐上加入对话!


观看:自动化 Kubernetes 安全 这个免费的点播网络研讨会中,学习如何用 Pod 安全策略来增强您的 K8s 安全。我们将向您展示它们是如何工作的,以及在一个真实的 Kubernetes 集群中实现它们的样子。

使用弹性堆栈的系统日志聚合

原文:https://acloudguru.com/blog/engineering/system-log-aggregation-with-the-elastic-stack

弹性堆栈可以无限配置,几乎可以用于任何涉及收集、搜索和分析数据的用例。为了使启动和运行变得容易,我们可以使用模块来快速实现预配置的管道。在这个简短的教程中,我们将使用系统模块来收集来自/var/log/secure/var/log/auth.log的日志事件,然后通过模块在 Kibana 中创建的仪表板来分析这些日志事件。在这个演示中,我将在云专家云操场上使用一个 t2.medium EC2 实例。如果您不是 Linux Academy 的订阅者,请随时关注您自己的云服务器或虚拟机。您所需要的只是一台带有 1 个 CPU 和 4 GB 内存的 CentOS 7 主机。否则,服务器已经为您预先配置好了!

Linux Academy Cloud Playground

Linux 学院云游乐场

弹性搜索

首先,我们需要安装 Elasticsearch 的唯一先决条件,一个 Java JDK。我将使用 OpenJDK,特别是java-1.8.0-openjdk包:

sudo yum install java-1.8.0-openjdk -y

现在我们可以安装 Elasticsearch 了。我将通过 RPM 进行安装,所以首先让我们导入 Elastic 的 GPG 密钥:

sudo rpm --import https://artifacts.elastic.co/GPG-KEY-elasticsearch

现在我们可以下载并安装 Elasticsearch RPM:

curl -O https://artifacts.elastic.co/downloads/elasticsearch/elasticsearch-6.4.2.rpmsudo rpm --install elasticsearch-6.4.2.rpmsudo systemctl daemon-reload elasticsearch

让我们启用 Elasticsearch 服务,使其在重启后启动,然后启动 Elasticsearch:

sudo systemctl enable elasticsearchsudo systemctl start elasticsearch

由 Filebeat 系统模块创建的摄取管道使用 GeoIP 处理器来查找在日志事件中找到的 IP 地址的地理信息。要做到这一点,我们首先需要将它安装为 Elasticsearch 的插件:

sudo /usr/share/elasticsearch/bin/elasticsearch-plugin install ingest-geoip

现在我们需要重新启动 Elasticsearch,以便它能够识别新插件:

sudo systemctl restart elasticsearch

Kibana

我们已经导入了弹性 GPG 键,所以让我们下载并安装 Kibana RPM:

curl -O https://artifacts.elastic.co/downloads/kibana/kibana-6.4.2-x86_64.rpmsudo rpm --install kibana-6.4.2-x86_64.rpm

现在我们可以启动并启用 Kibana 服务:

sudo systemctl enable kibanasudo systemctl start kibana

因为 Kibana 和 Elasticsearch 都为单节点部署提供了合理的默认值,所以我们不需要对任何一个服务进行任何配置更改。

Filebeat

现在我们可以安装将收集我们的日志的客户机 Filebeat。同样,因为我们已经导入了弹性 GPG 键,所以我们可以下载并安装 Filebeat RPM:

curl -O https://artifacts.elastic.co/downloads/beats/filebeat/filebeat-6.4.2-x86_64.rpmsudo rpm --install filebeat-6.4.2-x86_64.rpm

我们希望在 Elasticsearch 中存储带有 UTC 时间戳的日志事件。这样,Kibana 可以简单地从 UTC 转换到我们的浏览器在请求时间所在的任何时区。为了启用这种转换,让我们取消注释并启用syslogauth部分的/etc/filebeat/modules.d/system.yml.disabled中的以下变量:

var.convert_timezone: true

现在我们可以启用系统模块并将模块资产推送到 Elasticsearch 和 Kibana:

sudo filebeat modules enable systemsudo filebeat setup

最后,我们可以启用并启动 Filebeat 服务,开始收集系统日志事件:

sudo systemctl enable filebeatsudo systemctl start filebeat

分析

默认情况下,Kibana 监听localhost:5601。因此,为了在我们的本地 web 浏览器中浏览 Kibana,让我们使用 SSH 通过端口转发登录到我们的主机:

ssh username@hostname_or_ip -L 5601:localhost:5601

现在,我们可以在本地 web 浏览器中导航到https://localhost:5601来访问我们的远程 Kibana 实例。从 Kibana 的侧面导航窗格中,选择仪表板并搜索“系统”以查看所有系统模块仪表板。更进一步,您可以创建自己的蜜罐,将您的主机暴露在互联网上,以收集更多的日志事件进行分析。

Syslog Dashboard

系统日志仪表板

Sudo Commands Dashboard

Sudo 命令仪表板

SSH Logins Dashboard

SSH 登录仪表板

New Users and Groups Dashboard

新用户和组仪表板

想了解更多?

从创建漂亮的可视化效果到管理弹性堆栈,ki Bana markdown visualization帮助您充分利用您的数据。在云专家,我们为弹性产品提供了大量精彩的学习内容。通过弹性堆栈基础课程,简要了解弹性堆栈中的所有产品。或者通过 Elasticsearch 深潜课程了解弹性堆栈的核心——Elastic search。当你准备好了,通过我们最新的认证准备课程,成为一名弹性认证工程师,证明你对弹性堆栈的掌握。所有这些课程都包含动手实验和课程,您可以使用自己的云专家云服务器来学习。你还在等什么?让我们变得有弹性!

Elastic Stack Ecosystem

弹性堆栈生态系统

使用 Telnet 进行 TCP 连接测试

原文:https://acloudguru.com/blog/engineering/tcp-connection-testing-with-telnet

Telnet 的美妙之处在于它几乎适用于任何操作系统,并且默认安装在许多操作系统上。虽然使用不安全的 Telnet 进行网络通信最终让位于加密协议,如 SSH ,但它的用处仍然存在。Telnet 是测试 TCP 端口连通性的完美工具。让我们按照 Linux 网络和故障排除中的教导,演练一下如何使用 Telnet 进行 TCP 连接测试。使用 Telnet 也许您刚刚在 AWS 中构建完一个环境,并准备将一些本地 web 内容迁移到更具可扩展性的环境中。您已经配置了您的 VPC,添加了安全组,并实例化了 EC2 实例。对于您计划迁移到 EC2 实例的工作负载,如何验证您的入口规则设置是否恰当?对于监听 TCP 端口的服务,这很简单——只需使用 Telnet!这里有一个例子。检查 HTTP 连接假设您想要检查到www.example.com的 HTTP 连接,您可以使用:

telnet www.example.com 80

你要找的是这个:

Connected to example.com.Escape character is '^]'

这将告诉您何时能够成功建立连接。此时,您通常会点击CTRL+C并键入quit来退出 Telnet,但是您也可以使用 Telnet 来请求一些数据。拉 HTTP 头假设您想要拉www.example.com的 HTTP 头,您可以键入:

HEAD / HTTP/1.1Host: www.example.com

Telnet HTTP header request后面跟着ENTER两次:Header pulled from www.example.com您不仅能够验证端口 80 是打开的并且允许通信,而且还能够针对服务本身执行一些验证。用例也可以扩展为提取网页的 HTML,使用类似于:

GET /index.html HTTP/1.1

当然,这是假设index.html存在于站点的根级别,并且 1.1 是正确的 HTTP 主机头规范。这些只是 Telnet 可以提供帮助的几个例子。为了获得更大的灵活性,包括监听 TCP 和 UDP 端口的能力,您应该看看 netcat!在最新的实践培训课程中,您可以更深入地了解这一切: Linux 网络和故障排除。相关资源:

科技工作者的倦怠:什么是倦怠,如何应对

原文:https://acloudguru.com/blog/engineering/tech-it-worker-burnout

你是否在科技行业工作,并感到筋疲力尽?如果是的话,你并不孤单。全球研究表明,五分之二的 it 专业人员处于高度疲劳的风险中,在 IT 安全方面,超过一半的 IT 专业人员处于高度疲劳的风险中。当新冠肺炎来袭,人们转而在家工作时,许多科技员工变得更有压力,而不是更少。

那么,为什么行业内的专业人士都这么串门呢?

在这篇文章中,我们回答了这个问题,以及要注意的倦怠迹象(在你自己和他人身上),以及你可以做些什么来战胜它。

技术倦怠的迹象是什么?

根据世界卫生组织和世界上最著名的职业倦怠研究人员之一、T2 的 Christina Maslach 博士的研究,有三种主要的职业倦怠迹象值得警惕。

1.极端犬儒主义

你是否觉得你对工作的负面感觉正在排挤积极的感觉(如果有的话)?你所做的一切都不被欣赏,一切都很糟糕,什么都不会改变?

虽然有些人可能认为“愤世嫉俗的 IT 专业人士”是陈词滥调,但愤世嫉俗实际上是倦怠的危险信号。如果你或你团队中的某个人认为工作是一个半空的杯子——或者完全没有水——是时候质疑这是否是一个更大问题的迹象了。

犬儒主义有多种表现形式,包括:

  • 超脱
  • 不断的挫折
  • 失去意义
  • 感觉幻灭
  • 刻薄
  • 工作中缺乏乐趣
  • 非人化的同事(例如,“X 活该。”)

这可能会影响你和他人的工作表现,尤其是当你在一个面向人或基于团队的岗位上时。如果你在 IT 支持部门工作,你可能会回复一个带有刻薄的 LMGTFY 链接的标签,并尽最大努力提供帮助,因为“什么都不重要”作为一名软件开发人员,团队中的其他人可能会犹豫是否要求您进行代码审查,因为您对承担“另一项任务”缺乏耐心且脾气暴躁。

2.慢性疲劳

你是否一点精力都没有——早上几乎起不来了,工作时没有全力以赴,一天下来完全筋疲力尽?

通常,当一个人度过了艰难的一天,他们能够在休息和停机后恢复过来——就像他们的电池充电一样。但对于慢性疲劳的人来说,就像电荷都消失了,你就是找不回来。

看起来你的疲劳是情境性的——由最近一个大项目造成的压力引起的,或者因为你在待命而服务器持续停机。但是如果你一直很累——即使工作结束了,或者你度假回来了——这可能是一个危险信号。

其他一些精疲力竭的迹象:

  • 没有动机
  • 感觉需要“坚持下去”
  • 无法集中注意力
  • 害怕花时间充电
  • 周末的绝对放松
  • 没有精力持续高效地工作

3.负面自我评价

像大多数 STEM 工作一样,技术是一个充满高绩效者的领域,这就是为什么感觉自己没有表现出来会特别具有破坏性。

没有人喜欢感觉自己在工作中无能,或者觉得自己一事无成。如果你觉得自己一直在工作却一事无成,或者“我做的每件事都是错的”,这可能是精疲力竭的迹象。

其他一些迹象可能包括:

  • 觉得自己的角色不合适
  • 思考灾难性的想法
  • 工作感觉混乱,压力大
  • 感觉你为太多人做了太多
  • 一种你的努力没有带来变化的感觉

在 Yerbo 的一份名为“技术领域的倦怠状态”的研究报告中,33 个国家的 30,000 名 IT 专业人士接受了调查。在这些专业人士中,他们发现:

  • 56%的男性和 69%的女性在一天工作结束后无法放松
  • 43%的人觉得脱离了他们的工作,27%的人看不到工作的价值
  • 51%的人认为他们取得的成绩低于预期

这三个因素:疲惫、愤世嫉俗和消极的自我评价是技术倦怠的征兆。

技术领袖可以警惕倦怠的迹象

如果你是人事经理,你不会读心术,所以很难判断某人是否有上述任何感觉。为了提供帮助,Pluralsight】制作了一个信息图,上面有你可以注意的标志。

12-signs-tech-employees-burnt-out

为什么技术员工会精疲力竭?

精疲力尽是由一件事引起的:持续不断的长期压力。但是它的原因是什么,它已经持续了多长时间?

根据 Cristina Maslach 博士在 2018 年 DevOps 企业峰会上的演讲,科技行业的压力并不新鲜。事实上,从 60 年代起,它就已经是其中的一部分了。

“在硅谷的早期,我们听到了很多关于倦怠店的事情。人们试图招聘,说,'我们是累垮店。我们不仅仅想要 A 型血的人。我们需要 A++型的人,”马斯拉奇博士说。

“有趣的是,我认为我们现在越来越多地看到,这已经成为许多职业的商业模式……你必须放弃时间。你必须放弃生活中的其他事情,才能做到这一点。”

在 STEM,从一开始就有一种“不成功便成仁”的心态,40%的学生在四年内离开这些项目。

在工作场所的原因方面,由 Blind 对顶级科技公司进行的一项调查显示,领导不力、工作超负荷、有毒文化、缺乏职业发展以及奖励不足是导致倦怠的主要原因。

main-sources-of-employee-burnout-tech

我该如何对抗技术倦怠?

你感到筋疲力尽,你想做点什么。这里有一个清单,你可以试着用你的工作回到一个健康的地方,保护你的精神健康。

1.设定家庭和工作的界限

还记得我说过,技术专业人士报告说,在疫情开始后,他们感到更加疲惫,即使他们在家工作也是如此。这是因为家和工作之间的界限模糊了,所以没有逃避的余地——他们“在工作中生活”。

你可以做以下事情来建立物理边界:

  • 从手机中删除工作邮件和信息平台,或者关闭非工作时间的通知
  • 当你外出一天、周末或度假时,设置外出电子邮件
  • 在日历中设置时间段,以便在停工期间自动拒绝会议
  • 如果你混合工作或者远程工作,为你的办公室设立一个单独的房间,不要去那里进行娱乐活动

2.尽可能自动化

根据 Adam Bertram 的说法,技术专家可以使用的一个工具是自动化你能做的一切来减轻负担。

“除了让部门里更多热情的人来帮忙,自动化是下一个最好的选择,”他说。

“花点时间放松一下,放松一点,意识到为了节省时间,你必须首先找到自动化的时间。”

3.向他人伸出援手

当你觉得自己是为了工作而存在时,那么除此之外就很难评价自己了。花时间和你的家人和朋友在一起,或者只是去外面的世界,可以让你开始重视“真实的你”,而不是只想着“工作的你”。

如果你感到筋疲力尽,向医疗保健专家(比如你的医生、咨询师或心理学家)寻求帮助是很重要的。因为精疲力尽是如此普遍,所以要知道你并不孤单,有很多经过实践检验的方法可以帮助你。

向你的同事寻求帮助——或者简单地和他们谈谈你的问题——是一个很好的举措。这不仅对你有好处,也鼓励他们在挣扎的时候也这样做。如果你的工作场所提供员工援助计划,这也是值得利用的。

4.和你的老板谈谈

有时候,你的主管不知道你在挣扎。告诉他们你不好不是软弱的表现,而是专业力量和成熟的表现。记住,你的老板也想在工作上取得成功,这就是确保他们支持自己的团队。

员工告诉他们的老板他们没有处理好,这让他们觉得他们正在危及他们的工作,这种情况并不少见。如果你有这种感觉,请记住,如果你筋疲力尽而辞职,对他们来说会有更多的麻烦。然后,他们必须发布招聘广告,面试人员,花几个月时间培训他们——这还是假设他们找到了替代者。所有这些都需要时间和金钱。

从大的方面来看,做出一些让步以确保你不会筋疲力尽,这符合双方的利益。

你可以讨论的一些事情:

  • 将一些任务转移给其他团队成员,或者将工作外包
  • 改变让你感到不堪重负的任务的最后期限
  • 强化界限,让人们更少来找你,尤其是在下班时间
  • 改变你的角色职责,解决对你不利的事情
  • 带薪休假休息和充电
  • 在你觉得最有效率或最有效率的时候,采用弹性工作时间
  • 给你更多的自主权、认可和有意义的工作
  • 要求更明确的工作期望

5.找一家重视你的公司

有时候,不是你,是他们。技术倦怠的最大部分是觉得自己无关紧要,受到了不公平的对待——工作环境是有害的。

如果你已经提出了问题,但什么都不会改变,是时候调查你的其他选择了。然而,当你要逃离一份糟糕的工作时,接受你得到的第一份工作会很有诱惑力。

这可能是一个错误——你可能会再次陷入完全相同的境地!相反,当你面试一份新工作时,确保你也面试了他们。要自信,要知道你的幸福值多少钱。

你应该试着了解一下你的新工作场所:

  • 公司文化是什么样的?有公司活动或欢乐时光吗?
  • 他们对加班和弹性工作时间是什么态度?你的营业时间是什么时候?包括周末和假期吗?
  • 假期有多长?
  • 他们会希望你随时待命吗?有危机时刻吗?
  • 你需要履行多少职责?如果你的 PD 上有“需要的额外职责”,那包括什么?
  • 你相信他们的使命和产品吗?他们会向慈善机构捐款或支持慈善事业吗?
  • 他们如何识别他们的员工,如果有的话?

来自技术专家的其他提示和技巧

以下是 Pluralsight 的作者使用的个人技巧列表,介绍他们如何在科技职业生涯中避免筋疲力尽。

防止技术团队中的员工倦怠

想知道如何处理团队中的倦怠?我们推荐阅读 Pluralsight 的指南《对抗倦怠:如何让你的技术团队保持高效和快乐》要访问它,点击这里

如果你有随叫随到的员工,Pluralsight 提供了一个免费的课程“如何建立健康的随叫随到文化”我们还推荐收听特雷西·布瑟博士的播客,名为“领导力透视:浴弹不能治愈倦怠。

摘要

如果你正在经历精疲力竭的症状,这是你的身体告诉你一切都不好,需要改变。值得庆幸的是,压力和倦怠是可以补救的,承认是应对压力和倦怠的第一步。

记住,你值得拥有最好的自己!

2022 年 4 月 21 日是科技技能日!

原文:https://acloudguru.com/blog/news/tech-skills-day-2022

技术技能日云跟踪 2022:学习和热爱

原文:https://acloudguru.com/blog/engineering/tech-skills-day-cloud-track-2022

又一次成功的社区活动尘埃落定。我们在这里给你一个 2022 年技术技能日云轨迹的回顾,以及我们从这些精彩的演示中提取的一些关键信息。我们将向您简要介绍我们所听到的、我们所喜爱的,以及您可以采取哪些措施来更深入地了解这些出色的云和技术讲座。让我们开始吧!


加速您的职业发展

从 ACG 开始通过 AWS、Microsoft Azure、Google Cloud 等领域的课程和实际动手实验室改变你的职业生涯。


斯科特·汉瑟曼的指导、赞助和讲故事

谈了些什么?

微软合作伙伴项目经理兼开发部门社区经理 Scott Hanselman 在开幕主题演讲中宣布了技术技能日。Scott 的主题演讲涉及了所有关于导师、赞助和讲故事的事情,比如导师和赞助之间有什么区别?作为职业生涯早期工程师的同事,高级工程师的角色是什么?我们必须做些什么来迎接下一代创造者,你的责任是什么?他还分享了与一名演员会面录制播客集的故事,到家后发现他所有的音频记录都不见了,以及那天他如何抛开恐惧,学会成为一名法医技术员。耶啊啊!

我们喜欢听到的要点

  • 应该欢迎学习和探索。
  • 我们应该把不知道答案正常化。
  • 关于打字机如何影响代码编写方式的知识——我们现在到处都能看到回车代码!

渴望潜得更深?

转到云专家 YouTube 上观看 Scott 的会议,在那里你将看到他第一手复述他的故事,比如他的丢失 WAV 文件的奇怪案例和他的在 Raspberry Pi 上调试 net core 中的分段错误的 13 小时任务。

如果 Raspberry Pi 项目激起了你的兴趣,Pletcher variety 的另一个 Scott 可以向你展示如何使用 AWS Greengrass IoT v2 和 Raspberry Pi 构建 DIY 火星探测器。或者,如果微软开发是你的难题,你可能希望通过我们的微软 Azure 开发学习路径来指导你的学习,以获得核心的实践知识和技能。


超越证书:如何建立项目,让你在云与 Forrest Brazeal 雇用

谈了些什么?

你已经获得了云认证,但现在招聘经理说你需要更多的“经验”?!你知道,没有工作,你怎么获得经验?Forrest brace al——谷歌的云诗人、作家、漫画家和 Pwnie 获奖词曲作者——为我们带来了技术技能日的第二场主题演讲,主题是缩小云认证和云工作之间的差距。他分享了来自云简历挑战社区的故事和策略,以表明无论你的背景如何,你都可以为云带来宝贵的技能。


从这些 10 个有趣的动手项目开始构建你的云计算技能,学习 AWS


我们喜欢听到的要点

  • 关于管道工 Daniel 如何将他的管道知识应用到他的云学习方面的故事。您知道云架构图和工程图之间有惊人的相似之处吗?
  • 最好的接入方式就是走出去!在 Twitter 上活跃起来,加入云提供商社区,并在公共场合学习–写下您正在学习的内容并与他人分享!

渴望潜得更深?

你可以在 AWS 博客上阅读更多关于我们之前的# CloudGuruChallenge——事件驱动的 Python,或者查看 Forrest 的云简历挑战


与凯莎·威廉姆斯一起使用 AWS Amplify 启动你的创业公司

谈了些什么?

当你有一个成功的应用创意时,上市速度至关重要。很高兴凯莎·威廉姆斯作为第一位技术技能日云演讲者加入我们,展示她如何使用 AWS Amplify 通过加速全栈 web 开发在 AWS 上推出 MVP。AWS 的英雄,HackerRank 全明星,以及在 AWS Cloud Residency 的 Slalom 的高级负责人,向我们介绍了她如何在短短两周内为薪资透明工具的薪资溢出开发 MVP。她探讨了推动工资溢出的云架构、她在这一过程中面临的挑战,以及 AWS Amplify 如何帮助快速交付结果。

我们喜欢听到的要点

  • 为你的副业项目成长做准备。它们可能一开始是一个学习的机会,但是如果对你来说这听起来是个好主意,那么对另一个想要购买知识产权的公司来说也是个好主意!
  • 大声喊出来 AWS 激活,这是一个针对初创公司创始人的计划,提供 AWS 信用赠款,可以帮助你实现你的初创公司想法。所有成功的工具都在那里等着你。

渴望更深入地了解这个技术技能日云讲座吗?

想多陪陪凯莎吗?谁不会!她有一门关于云大师的 AWS 认证云从业者课程,并在她的有限系列 DeepComposer:再训练一次,大师中更深入地研究了机器学习和 DeepComposer。


Complete guide to the Cloud and Dictionary

获得痛苦的云词典
说云不一定要努力。我们分析了数以百万计的回复,找出了最容易让人犯错的概念。抓住这个云指南获取一些最痛苦的云术语的简洁定义。


奥林·托马斯关于混合计算的 10 个问题

谈了些什么?

微软首席混合云倡导者奥林·托马斯(Orin Thomas)坐下来与我们的 Lars Klint 进行了一次生动的对话,讨论混合计算的所有事情。这两个人讨论了什么是混合计算,典型的混合计算架构是什么样子,以及使用混合云设置的技术角色。他们还讨论了混合云面临的巨大挑战、边缘计算与混合云的关系,以及如果您对混合云感兴趣,可以从哪里了解更多有关混合云的信息!

我们喜欢听到的要点

  • 奥林在他书桌上方的架子上收藏了令人印象深刻的科幻小雕像。
  • 数据中心和云之间的区别,或者公共云和私有云之间的区别,主要归结于谁有责任照看它。
  • 当你开始学习时,你需要找到最适合你的方法。没有放之四海而皆准的方法——视频可能是你的障碍,或者阅读可能有助于更多地吸收信息。找到最适合自己的,随遇而安!

渴望更深入地了解这个技术技能日云讲座吗?

Orin 和 Lars 谈到了 Orin 参与设计的微软认证:Windows Server Hybrid Administrator考试,但是如果你刚刚开始你的 Azure 之旅,并且你不确定要迈出第一步,我们的 Azure 认证指南,以视频博客的形式,可能正是你正在寻找的。


使用班卓奥巴约米在云中构建数据收集解决方案

谈了些什么?

构建数据收集解决方案涉及许多部分。从管理计算、存储和分析任务,构建这些解决方案通常会让人感到力不从心。幸运的是,我们可以利用云。在他的演讲中,AWS Cloud 的高级开发人员班卓·奥巴约米帮助我们了解如何构建具有令人愉快的开发人员体验的解决方案,以适应许多数据收集用例。Banjo 讲述了他在云中构建数据收集解决方案的方法,并强调了他实际构建的解决方案的真实示例。


通往更好职业的钥匙

立即开始 ACG 通过 AWS、Microsoft Azure、Google Cloud 等领域的课程和实际动手实验室来改变你的职业生涯。


我们喜欢听到的要点

  • 我们不应该为了云而使用云,而是正确地利用它来帮助实现自动化、可扩展性和处理能力。如果在笔记本电脑上运行并不理想,也许你应该考虑在云中运行。
  • 使用可操作的警报!不要让事情在没有适当的可观察性的背景下发生。
  • 自动化并不总是答案。评估你的情况,考虑你是否需要一个人参与进来。

渴望更深入地了解这个技术技能日云讲座吗?

班卓对 ACG 的博客并不陌生,所以你应该看看他的更多帖子,如果你还没有把它们收藏起来的话!如果你已经准备好用数据投入战斗,你可能想看看我们的 AWS 数据学习路径


Gita Sharma 为每个人提供网络安全

谈了些什么?

2020 年至 2025 年期间,数字就业增长预计将增加 1.49 亿个新工作岗位,其中 600 万个新工作岗位将在网络安全领域。在 Lars 和微软高级业务战略经理 Gita Sharma 之间的对话中,他们讨论了安全技能差距,并探讨了这些专业安全角色,从 SecOps 角色到身份和访问管理员、信息保护管理员和网络安全架构师。他们回顾了可用的认证途径,以及如今在云中工作的每个人都应该知道的基本安全技能。

我们喜欢听到的要点

  • 这是一个简单的问题——今天在云中工作的每个人都应该知道的基本安全技能!不过,你最好观看完整的演讲来了解这一次的内幕。
  • 网络安全不是可有可无的。这不是一个好东西,而是一个必须品!
  • 组织中的每个角色都应该有基本的安全意识。你不必深究你的知识(这就是你去找你的特定角色专家的原因),但是组织中的每个人都应该意识到发生了什么,什么时候出了问题。

why should i get azure

想了解更多关于 Azure 认证的信息?
查看我们的 Azure 认证和学习路径。


渴望更深入地了解这个技术技能日云讲座吗?

Gita 提到了网络安全基础课程的基本概念,这对于组织中的每个人来说都是一个很好的起点,无论其角色如何。如果你有兴趣进一步充实你的知识,你可以深入了解云专家的微软 Azure 安全基础课程。


2022 年技术技能日总结

哇,多好的一天啊!我们有一些出色的演讲者发表了精彩的演讲,我们与这个奇妙的社区相处得非常愉快。在我们的 Discord 之后的网络活动中有一些问题,如果你想加入我们并与其他云学习者和技术专家交谈,邀请仍然有效。

如果你想再次观看这些演讲,你可以在云专家 YouTube 上观看完整的技术技能日云轨。或者查看一下开发人员关注的技能培训,现在也可以在 Pluralsight YouTube 频道上看到。

无服务器测试方法与众不同,实际上可能更容易

原文:https://acloudguru.com/blog/engineering/testing-and-the-serverless-approach

最近一直在想很多关于测试的事情。在工作中,由于增加了客户端应用程序和特性,我们最近大幅增加了 lambda 函数的数量。这不是一个开发新功能的大交易,但是有一些事情已经开始困扰我了(请原谅我的双关语)。

测试是一件“好事”

我完全支持创建测试。对我来说,这是否是真正的“测试驱动开发”——或者不管当今的测试方法是什么——都无关紧要。有时候,在初创公司,你只需要快速部署一些东西,然后编写测试(我知道,我知道——但我只是给从未在初创公司工作过的人提供真实世界的场景)。有时,测试永远不会被编写出来,因为你认为你的用例已经被捕获了(事实并非如此)。

通常,测试是因为生产环境中出现的错误而编写的。除非你有无穷无尽的金钱和时间,否则这种情况总是会发生的——在初创企业中你不会有。

测试至关重要。

但是如果你使用流行的测试智慧——无服务器很难。

测试与“全服务”架构的交互

无服务器架构使用大量的服务——这就是为什么有些人更喜欢称该架构为“全服务”而不是无服务器。这些服务本质上是独立于您的测试机制的应用程序的元素。

外部因素。

一个好的外部服务将为你测试。这真的很重要。因为您不应该测试服务本身。你只需要测试你和它互动的效果。

这里有一个例子…

假设你有一个函数作为服务(比如 Lambda 函数),你使用一个数据库服务(比如 DynamoDB)。您将需要测试函数与数据库服务的交互,以确保您的数据被正确保存/读取,并且您的函数可以处理来自服务的响应。

现在,上面的场景相对简单,因为您可以从本地机器上使用 DynamoDB,并运行单元测试来检查存储在数据库中的值。但是你发现了这个场景中的一些东西吗?这不是实时服务,而是它的副本。但是 API 是一样的。所以,只要 API 不变,我们就没事,对吗?

老实说,我已经意识到,如果我们使用 AWS 服务,AWS 很可能比我做得更好。因此,我们在单元测试中模拟我们与 AWS(和其他)服务的大部分交互。这使得开发一个逻辑功能和单元测试它变得相对简单——对所需的服务进行模拟。

这类似于使用 Rails 这样的框架。你不应该测试 ORM 的工作情况。那是 ORM 维护者的工作,不是你的。因此,顺理成章的是,如果一个服务提供了一个接口和关于接口如何工作的文档,那么它应该是好的——对吗?

希望……

除了单元测试之外,测试的其他部分呢?

这就是无服务器的问题所在…某种程度上。使用 FaaS 函数进行单元测试很容易,因为逻辑通常很小。在我看来,有一种过度依赖模仿的趋势,但它确实有效。

所有其他形式的测试都很难。事实上,我想说我们可能需要一个不同的范式来讨论这个问题。

通过多年来构建单一的应用程序,我们已经完全沉迷于某些类型的测试是绝对重要的——如果我们没有它们,我们就是“错误的”。

所以让我们稍微后退一步。

我们实际上已经讨论分布式系统和测试有一段时间了。微服务模式已经向我们表明,试图像测试 monolith 那样测试所有东西并不总是合适的,而且通常很昂贵。

使用微服务模式进行集成测试的关键是测试微服务及其与外部组件的集成。这很有趣,因为你还在想象某种分离。

在 Lambda 中,在这种情况下,每个 Lambda 都需要被视为微服务,然后进行测试。这意味着您的功能的单元测试(带有模拟)需要通过移除模拟,并使用实际的服务或以某种方式存根服务来扩展到集成测试。

不幸的是,并不是每个外部服务都可以用这种方式轻松测试。并不是每个服务都提供测试接口供您使用——也不是所有的服务都很容易隐藏自己。我会建议,如果一个服务不能为你提供一个相对容易的方法来测试现实中的接口,那么你应该考虑使用另一个。

当交易是金融交易时尤其如此。在这一点上,你不希望一个测试实际上花费你任何真正的钱!

超越单元和单一功能集成测试

对我来说,整体测试一个无服务器系统最简单的方法就是在一个非链接的 AWS 账户(或者其他云提供商)中生成一个单独的系统。然后使每个外部服务本质上链接到一个“测试”服务,或者尽可能地限制我们的暴露成本。

这是我实现它的方式——它依靠基础设施作为代码来实现它。因此,使用了类似地形或云层的东西。

但有趣的是,在微服务方法中,当你超越了像这样的单一功能时,你就开始了组件测试,然后是系统测试。从本质上来说,测试就是每次增加测试边界。从一个小的测试边界开始,然后逐步解决。

单元测试,然后集成,等等…

但有趣的是,我们的单元测试相当好地完成了测试每个功能边界的工作,此外还做了单元测试,并且相当好地测试了功能与外部服务的关系。所以下一步是一起测试服务的组合。

但是由于我们在大多数交互中使用外部服务,并且不经常从函数内部调用函数,因此测试边界实际上是相对不耦合的。

嗯……所以基本上,一个函数的逻辑与另一个函数的逻辑越不耦合,当我们在测试中向外移动时,测试边界就越近。

那么,在一个功能接一个功能地进行了良好的单元和集成测试之后,接下来会发生什么呢?接下来是简单的端到端测试吗?这变得非常有趣,因为这意味着用合理的数据在一个分级风格的环境中测试整个“分布式系统”。

等等!我们刚刚是不是…?

基本上,功能即服务方法所发生的事情是,测试套件似乎比您通常使用整体甚至微服务方法所做的要简单得多。

与微服务方法中的组件测试相比,FaaS 功能单元测试的测试界限似乎非常接近于集成测试。

快速警告:如果你做了大量的函数到函数的调用,那么你正在耦合那些函数,然后测试边界将会改变。函数调用函数会产生一个单独的测试边界。

这又回到了另一件非常有趣的事情上。如果您构建功能,并开发一种事件驱动的方法,利用第三方服务(如 SNS、DynamoDB 触发器、Kinesis、AWS 世界中的 SQS)作为连接“胶水”的事件,那么您可能会限制自己单独测试功能,然后测试系统。

嗯…所以测试更简单?

不完全是,但是接近了。

我认为系统测试更难。如果你纯粹使用一个 API 网关,而 Lambdas 在后面,那么你可以使用第三方工具来测试 HTTP 端点,并以这种方式构建一个测试套件。相对比较理解。

但是如果你正在做大量的内部事件触发,比如 DynamoDB 触发事件链和多个 lambdas 的设置,那么你必须做一些不同的事情。这种形式的测试更难,但是因为一切都是服务——包括 Lambda——所以做起来应该相对简单。

用无服务器构建这种系统测试工具的人会做得很好。目前,我们拥有的 CI/CD 工具和围绕它的测试工具还不够好。

测试和无服务器是不同的

当我开始思考这篇文章的时候,我期望弄清楚很多关于如何在我们的工作流程中安装更好的测试机制的事情。

在本文完成时,我们已经了解了为什么无服务器方法不同于整体式方法和微服务方法。结果,我意识到了测试较小的非耦合逻辑的固有优势。

你不能仅仅把你的旧的“Monoliths 测试工具箱”拖进无服务器的世界,然后期望它还能工作。

在无服务器中测试是不同的。

无服务器测试实际上可能更容易。

事实上,在无服务器环境下进行测试可能更容易维护。

但是我们目前缺乏真正实现价值的测试工具。—期待他们的到来。

一些最后的想法

我经常是一个不情愿的测试作者。我喜欢在构建要“工作”的东西之前,边做边摸索。我从来不是那种在任何情况下都要强制测试的人,所以我可能会忽略一些要点。肯定有人比我更有资格谈论测试,但这些只是对测试的简单想法。


获得更好职业所需的技能。

掌握现代技术技能,获得认证,提升您的职业生涯。无论您是新手还是经验丰富的专业人士,您都可以通过实践来学习,并在 ACG 的帮助下推进您的云计算职业生涯。


附加资源

微服务架构中的测试策略——过去几年,基于服务的架构已经向更小、更集中的“微”架构转变——martinfowler.com

bliki:test pyramid—tags:测试金字塔是由 Mike Cohn 开发的一个概念,在他的书《敏捷的成功》中有描述。它的本质……—martinfowler.com

拒绝更多的端到端测试——迈克·威克在你人生的某个时刻,你可能会想起一部你和你的朋友都想看的电影……—testing.googleblog.com

这个黑色星期五,5 个理由让自己拥有云技能

原文:https://acloudguru.com/blog/news/the-acg-black-friday-sale-is-on

这是学习云计算的最佳时机!

黑色星期五和网络星期一大减价已经开始了。当人们(和电子商务网站)互相争斗,抢夺装满他们不需要的东西的购物车时,为什么不跳过疯狂,给自己或你关心的人一些比廉价电视更能改变生活的东西呢?

这里有 4 个理由,说明为什么你应该在这个假日购物季提供(或获得)礼物云技能。


加速您的职业发展

从 ACG 开始通过 AWS、Microsoft Azure、Google Cloud 等领域的课程和实际动手实验室改变你的职业生涯。


1.雇主们正在拼命寻找拥有云计算技能的人

对云技能的压倒性需求使得口袋妖怪卡看起来很容易获得。

就在上个月,华尔街日报报道了当前的云人才短缺是寻求迁移到云的公司的主要障碍。作为回应,一些公司在几小时内而不是几天或几周内向潜在候选人提供工作。他们报告说:

“有了云计算,当新冠肺炎引发一波新的需求时,公司已经在想如何利用这一小批有经验的工程师了。根据劳动力和经济研究公司 Emsi 的数据,****云职位空缺的数量在 2017 年至 2020 年间增长了 90%以上,比同期科技职位的总增长速度快四倍多

2.以新的方向开始新的一年

想把“存更多的钱”加入你的新年决心清单吗?存更多钱的最好方法是赚更多钱。云计算职业提供了一些重要的收入来源。

LinkedIn 目前报告云工程师的平均基本工资为每年 118,201 美元**,还有每年 10,000 美元的现金奖金,以及包括无限休假和 401k 匹配在内的共同福利。**

现在,让我们现实一点。学习一项新的云技能可能不会立刻让你得到一份六位数的工作。但是它可以帮助你获得巨大的薪水提升,让你走上高薪职位的道路。

恰当的例子?看看 ACG 大学的学生泰德·麦克纳伦。Thad 在 90 天内工资翻了一倍,他从一份服务台工作转到了云职业,并在一位云专家的帮助下获得了一些技能发展。


看点:解决“无经验”的云招聘问题
需要经验才能得到工作,但需要工作才能得到经验。这是一个多云的第 22 条军规!观看免费点播的网络研讨会,了解帮助数十人获得第一份云计算工作的 ACG 挑战赛。


3.利用停工期提升你的职业生涯

离开工作或学校一段时间意味着学习新技能的绝佳时机。

如果你能每天只花几个小时,你就可以准备好在大约一周内亚马逊网络服务(AWS)微软 Azure 获得入门级云认证

想想我们的 14 小时 AZ-900 微软 Azure 基础课程AWS 认证云从业者(CLF-C01) ,这两者都是进入云的绝佳切入点。

如果你是技术新手,为什么还要学习云认证呢?因为认证前的准备工作是促使你学习新技能的理想方式。一旦你有了基本的认证,你就可以把目光放在科技行业的一些薪酬最高的认证和工作上。

4.任何人都可以学习云

对科技一无所知?这并不能阻止你!如果你对科技有足够的了解,能够在互联网上浏览黑色星期五和网络星期一的交易,你就有足够的知识开始学习云计算。

每个旅程都是从第一步开始的,正确的云技能发展可以让你立刻从云新手变成专家。

在 ACG,我们提供入门级课程,从云计算基础Kubernetes 简介Python 脚本简介,或者查看我们最受初学者欢迎的课程之一,AWS 认证云从业者。

在最好的云学习环境中享受最划算的交易

黑色星期五和网络星期一交易是一年一度的事情。但是投资云技术可以改变你的生活。

无论你是希望开始你的云职业生涯的云新人,还是有一点技术经验并希望提升这些技能的人,云专家的实践学习都可以为你的职业成功做好准备。 95%的 ACG 用户表示,我们的工具和内容直接帮助了他们的职业生涯。

少花钱多办事。现在是投资提升您的云计算技能的最佳时机。

史上最棒的黑色星期五?在 ACG 享受 40%的优惠!

寻找云培训的黑色星期五折扣?在有限的时间内,享受云专家个人年度计划 40%的优惠,并以我们有史以来最优惠的价格获得最好的实践云学习。

有了这笔好交易,你可能想升级到个人升级版,并通过 Cloud Playground 无限制地访问真正的 AWS、Azure 和 GCP 沙盒环境。(这是在学习的同时让你的手变得模糊的完美方式,而不会让你的钱包或关键系统面临风险。)

今天就开始享受优惠!

在 Linux 上的 Bash 中使用 AWK 命令

原文:https://acloudguru.com/blog/engineering/the-awk-command-bash-basics

当我刚开始做系统管理员时,我想知道 如何获得晋升 ,有人告诉我,我需要知道 BASH 实用程序,比如 AWK。Linux 就业市场继续增长和扩大,我们的 LFCS 课程将帮助你准备一个标准的行业 Linux 管理认证。

我不确定 AWK 是否真的是一个实用程序——当阿尔弗雷德·艾侯、彼得·温伯格和布莱恩·柯尼根在贝尔实验室编写它时,它原本是一种数据驱动的编程语言。名字来源于他们姓氏的首字母,但是我们在 Linux 上 BASH 用的程序是(G)AWK 或者 Gnu AWK,还有很多衍生。

你能用 AWK 命令做什么?

既然我们已经解决了这些琐事,那么我们能对 AWK 做些什么呢?只需在命令提示符下输入awk就可以调用 AWK。在命令行上,都是小写。

AWK 最常用于处理文件。 AWK 处理一个条件,如果提供了一个条件,然后采取行动。默认操作是打印满足条件的任何内容。在文件中搜索正则表达式模式匹配:

 awk ‘/regex/’  /etc/passwd 

这将导致来自/etc/passwd文件的匹配行被打印到命令行。这是相当基本的,我们使用打印匹配的默认行为。

**AWK 也可以用来搜索数据列,干净利落地输出信息。**了解特定服务是否正在运行,如果找到则显示名称:

 ps -ax | awk ‘/systemd/ {print $5}’

关于awk的一个好处是它标记了输入其中的行。这意味着对于有分隔符的项目,您可以选择一列。您可以在命令行上指定字段分隔符。

一个例子是打印来自/etc/passwd的用户列表,条目由冒号(:)分隔,用户名在第一列。记住$0是整条线。

 awk -F: ‘{print $1}’ /etc/passwd

让 AWK 工作的例子

这很好,但我们想和 AWK 一起工作,对吗?所以,如果你有一个目录(我们用/etc来表示这个目录)并且想知道这个目录的大小:

 ls -l /etc | awk ‘{x += $5} END {print “total bytes:” x}'

这里,我们获取ls -l命令的输出,并将每一行添加到变量x,因为 AWK 的变量被初始化为0,第五列是文件大小,当我们解析输出时,我们将每个文件的大小添加到x

END关键字表示输入解析完成后我们想要采取的动作。在这种情况下,我们打印x的值。以千字节为单位,我们将结果x除以 1024:

 ls -l /etc | awk ‘{x += $5} END {print “total Kilobytes:” (x/1024)}

AWK 作为一种完整的脚本语言

AWK 也可以作为一种完整的脚本语言,你可以在命令行上使用-f标志向它传递脚本文件。

从哪里开始 :正如我在开头所说的,命令行的使用是求职面试中人们与其同时代人的真正区别。公司对自动化和一切代码感兴趣。这从了解 BASH shell 脚本的条件及其所有特性开始。

如果你想让自己与众不同,并显示出你对自己正在做的事情感到满意,你可以考虑看一看Bash 脚本管理指南。这将带您到一个地方,在那里您可以真正地用命令行显示您的舒适程度。


提升您的云计算职业生涯

无论您是云新手还是经验丰富的专家,云专家都能让您轻松(而且非常棒)地获得认证并掌握现代技术技能。查看 ACG 目前的免费课程或立即开始免费试用。


想要更多云技术的好处吗?看看这些:

Azure 痛苦字典:Azure 最棘手的五个云话题

原文:https://acloudguru.com/blog/engineering/the-azure-dictionary-of-pain-five-of-azures-toughest-cloud-topics

立正!课程现在开始。请系好您的安全带,确保您的托盘桌直立并关闭。

Azure 是增长最快的云平台之一,尤其是当公司开始转向云计算战略的时候。但是像 AWS(和 Google Cloud)一样,有几乎无穷无尽的个人服务伴随着它——和一整本字典来描述它们。除了知道它们实际上是如何工作的,你还必须首先知道它们的名称和用途。

在 ACG,我们希望教会世界如何使用云。这意味着首先要确保团队中的每个人都能“谈论云”——并了解在实施云工具时将面临的一些基本挑战。我们将帮助您和您的团队实现基准云流畅度。为了做到这一点,我们建立了一个云词典,收录了您将遇到的一些最具挑战性的主题。鉴于这里的难度,我们决定将这个云词典命名为痛苦

Cloud Dictionary

获取痛苦全云词典
说云不一定要硬。在我们的云指南中,你会找到一些最痛苦的云概念的简明定义的完整列表。


我们分析了我们平台上数千个测验问题的 270 万份回复,以确定一些最具挑战性的云基础架构主题。我们寻找学习者成功率低于 60%的问题,并根据这些问题中的主题,概述了十几个具有挑战性的主题,学习者有时可能难以解开——至少在一些特定的场景中。

今天,我们将讨论我们为 Azure 基础设施确定的五个最具挑战性的主题:Cosmos DB、流量管理器、Azure 函数、快照和虚拟专用网络。这个列表是我们在所有三个主要云平台上攻击的几十个术语和主题的子集:AWS、Microsoft Azure 和 Google Cloud。你可以在痛苦的完整云词典中找到我们对亚马逊棘手话题的完整介绍。

所有这些都解决了,让我们开始吧!

Azure Cosmos DB Blog Header

什么是 COSMOS DB?

Cosmos DB 是一个试图同步全球数据而不是特定地区数据的系统。这种全局同步对于需要高度响应、拥有大量不断变化的数据,并且始终可供用户使用的全局应用程序来说是非常重要的。脸书就是一个很好的例子——全世界的人都在使用它,并且不断地改变数据。应用程序基本上会认为 CosmosDB 在它们的区域内,而 Cosmos DB 处理跨所有区域的复制,以确保它是一个连续的全局数据库。Cosmos DB 自动对数据进行分区,以优化性能和存储容量。CosmosDB 也可以通过多个 API 访问,比如 Document DB(用于 SQL)、MongoDB(用于 NoSQL)、Graph API(用于 Gremlin)和 Tables API(用于键/值对)。

为什么很难?

由于所有的复制都是跨地区进行的,所以质量肯定会有一些差异。选择一致性级别时,您是在性能和一致性之间进行选择。Cosmos DB 将这些一致性级别分为五类:

  • STRONG :在所有副本上提交并确认之后,在主 Cosmos DB 上提交并可见的保证写操作。强一致性是最容易预测和直观的。
  • 有界陈旧性:最常选择的有界陈旧性,允许您计算陈旧文档可以如何使用。它决定了文档在需要更新之前可以落后多远。
  • 会话:确保当前用户会话中的所有读/写操作一致。例如,在用户会话中,脸书将拥有特定于该用户的数据。
  • 一致前缀:这确保了以相应写入的顺序读取更改。
  • 最终:最宽松的一致性,立即对主节点提交和写入,同步处理副本事务,最终到达副本。

一个云专家学习者 47%的时间错过了与 NoSQL 和宇宙数据库相关的难题。

下一个!

AZURE DNS VS 流量经理?

域名系统是互联网的电话簿,将一个名字(比如 acloud.guru)转换成一个 IP 地址。Azure 包含一个域名的 DNS 区域,该区域托管该域名的 IP。您将从为您提供一个域的唯一资源组构建一个 DNS 区域。您也可以创建一个专用 DNS 区域,尽管您必须通过命令行来设置。一个域的所有记录都在一个 DNS 区域中。

与此同时,Traffic manager 会找出如何智能地将某人路由到您的应用程序。Traffic Manager 确保不同地理区域的高可用性。如果您的解决方案中的某个区域离线,Traffic Manager 可以路由到在线区域。它看起来是这样的:

  1. 用户加载解决方案(并进行 DNS 查找)
  2. Traffic Manager 会根据您的 Traffic Manager 服务配置响应一个 IP 地址
  3. 用户然后导航到适当的解决方案。

为什么很难?

Traffic Manager 和 Azure DNS 紧密合作,以确保您的用户能够访问您的应用并获得良好的体验。DNS 是包含来自域名的 IP 地址的电话簿,而 Traffic Manager 将从 IP 地址列表中选择正确的 IP 地址。在传统的云方式中,Traffic Manager 提供了大量的路由方法。这些是您将放入流量经理档案的多种类型:

  • 优先级:确定主端点和备份端点的优先级。
  • 加权:根据权重值分配流量,比如你想 20%去一个地区,20%去另一个地区。
  • 性能:将流量发送到“最近”的端点,这对于设计全局的解决方案来说是极好的。
  • **地理:**根据客户端的地理位置路由流量。
  • 多值:返回多个端点,由客户端决定使用哪个端点。
  • 子网:基于请求者 IP 地址的路由。你必须实际拥有域名。

添加自定义域后,您必须完成自定义域的验证。你必须从管理你的域名的人那里添加一个文本记录,并上传它以确认你拥有它。您还可以配置一个 Vnet 来启用自动注册,指向一个私有的内部 DNS 区域。您可以为虚拟机使用专用 DNS 来连接命名的域,如 somethingsomething.internal。

一个云专家学习者 49.7%的时间错过了与 DNS 相关的棘手问题。

下一个!

azure

什么是 AZURE 功能?

Azure Functions 是微软 Azure 的无服务器计算产品,抽象出了对基础设施的所有依赖。这是基于工作负载量的最灵活的扩展类型。无服务器编程模型基于触发器和绑定,专注于编写响应特定事件并返回函数需要返回的数据的代码。功能也有丰富的端到端开发经验。

最终 Azure 中有一个服务器在运行你的功能——你对此一无所知。你写了一些代码来响应一个事件,却永远看不到微软这边的服务器发生了什么。

函数提供了运行单个代码段来响应事件的能力,并且是按执行时间计费的,而不是按任何其他计费方法计费。因此,您可以在运行但不做任何事情的服务器上节省大量资金。

为什么很难?

无服务器可能感觉与传统云计算有些正交。

尽管好处是巨大的(特别是从成本角度来看),习惯于管理虚拟机来处理其应用程序的公司将不得不改变他们对其结构的思考方式。这也包括架构层面。以下是一些对理解函数至关重要的架构考虑因素:

  • 事件驱动:根据需要执行代码以响应事件。服务器不会坐以待毙。
  • 反应式:代码被应用于需要时发生的特定事件。它是响应性的、弹性的(如果失败,事件将被重新处理)、弹性的(随着事件的增加,它将扩大)和消息驱动的。
  • 多因素:声明式和自动化部署(功能可以通过代码部署),配置在环境中(不是配置文件),并发是通过流程。

执行函数也有很多种方式:时间间隔、HTTP 请求、Blob 存储中的上传、来自 Azure 存储队列的消息、Cosmos DB 文档更改或接收新事件的事件中心。

一个云专家学习者 48%的时间错过了与无服务器操作相关的难题。

下一个!

什么是 AZURE 快照?

快照是被管理磁盘的时间点副本。您将为快照选取帐户类型(如在 HDD 和 SSD 之间选取),用于您希望与快照一起存储的任何被管理的磁盘。它们是您管理的磁盘的有效备份。您也可以根据另一个被管理磁盘的快照创建新的被管理磁盘。您可以使用该快照进行故障排除,或者作为创建新虚拟机的主快照

为什么很难?

有两种快照:完整快照和增量快照。前者就像它听起来的那样,是磁盘的完整时间点备份。但是如果你继续使用完整的快照,你将会很快耗尽你的存储空间。增量快照可能是备份,但从技术上讲,它们不是完整备份。

每个快照不一定是您的存储或磁盘的完整备份。相反,它存储来自上一个快照的增量更改,而前一个快照捕获来自前一个快照的更改。拍摄新快照时,您可以节省资金,因为您备份的是增量更改,而不是完整备份。

一个云专家学习者 50%的时间错过了与 Azure 磁盘存储和快照相关的棘手问题。

什么是 AZURE VPNS?

虚拟专用网络通常被称为 Vnet,它使 Azure 虚拟机能够在内部网络和互联网上相互通信。就像虚拟机一样,它归你使用,但物理硬件被抽象出来了。您可以在每个虚拟网络中定义多个子网,从而隔离您的网络,为 SQL 数据库或虚拟机等资源分配 IP 空间

每个虚拟网络都有一个地址空间,您可以在多个子网之间分配。也许更重要的是,您可以在虚拟网络中将子网与互联网隔离开来。

Vnets 以及其中的 Azure 虚拟机的行为就像微软 Azure 云中的 Azure 虚拟机一样。您可以根据需要扩展或添加虚拟网络,并通过子网隔离其中的资源。您还可以对等 Vnets 以允许它们之间的路由,而 Azure 公共云本身提供高可用性。

有利的一面是,开始向云迁移的公司可以选择将一些资源与互联网隔离开来。虽然他们在迁移过程中可能实际上不需要 Vnet,但在尝试在内部(即您的法规遵从性团队)进行管理时,它会有所帮助。Vnets 允许您隔离需要从互联网中分离出来的信息,如受管制的数据。

为什么很难?

数一数流程图上的箭头!很多事情正在进行,也有很多失败点,尤其是当你试图将数据与互联网隔离时。你最不想做的事情就是无意中增加你的表面积,让不好的事情发生。如果您正在开始云迁移,您会希望确保手头有一名网络专家,以确保一切顺利进行。

此外,Vnet 中的子网被限制在一个可用性区域内,而不是跨越多个可用性区域。因此,您必须以这样的方式配置您的系统,以确保您不会遇到一个子网需要与不同可用性区域中的另一个子网进行通信的情况。

一个云专家学习者 49.8%的时间错过了与虚拟网络和子网相关的棘手问题。

我们希望在看完这些例子后,你会体会到云有多危险。它有自己的自定义词典,以配合其庞大的城市产品环境。

我们可以理解云有多复杂,并希望我们能提供一些指导。话说回来,我们没有写下规则。(嗯,问题是我们写的——对此我们真的很抱歉。)

你可以在完整的疼痛字典中找到我们对 Azure 棘手话题的完整介绍。你也可以在我们的 AWS 和谷歌云疼痛字典中找到它们的对等词——以及是什么让 AWS 和 GCP 变得独特曲折。您还会发现我们完整的方法。


希望提升您的云计算职业生涯?从云专家的 Azure 学习路径开始,看看实践如何帮助你掌握现代技术技能。

Azure 数据工程师认证路径

Azure DevOps 认证路径

Azure 安全认证路径

Azure 开发路径

公共云的基本优势

原文:https://acloudguru.com/blog/engineering/the-basic-advantages-of-public-cloud

2021 年最好和最差的微软 Azure

原文:https://acloudguru.com/blog/engineering/the-best-and-worst-of-microsoft-azure-in-2021

2021 年发生了这么多事情,其中一些是围绕云计算的!随着这一年接近尾声,让我们用一点时间来庆祝 Azure 今年的奖项,以及围绕所有事情的好、坏和阴云。

回顾 Azure 的这一年,我们将在以下类别中表彰工具、证书和事件:

本周我将是你们的主持人,蓝色天空的拉斯·克林。坐好,拿起爆米花,继续阅读《蔚蓝的一年回顾》!


加速您的职业发展

从 ACG 开始通过 AWS、Microsoft Azure、Google Cloud 等领域的课程和实际动手实验室改变你的职业生涯。


欢迎来到 Azure 的年终大奖,或者我们喜欢称之为“Kroonenburgs”我们不会像其他颁奖典礼那样磨磨蹭蹭,拖时间。我们正在挖掘!

年度最被低估的 Azure 服务

今晚的第一个克隆堡是今年最被低估的 Azure 服务。被提名的有:

  • Azure Storage 持续改进并添加了您从未想过会需要的新功能。不可变标签、客户端加密和索引标签是一些您可能不知道存在的新特性。

  • Azure App 配置能够集中管理应用程序设置和功能标志,并快速高效地调试环境。

  • 事件网格(Event Grid)的多功能性和在大量场景中的适用性,包括检查服务之间的声明,将数百万个事件推送到大量服务,以及检查系统中任意数量的属性。

获胜者是事件网格!

真的,这不是一个艰难的选择。恭喜你,事件网格!要了解更多最被低估的 Azure 服务,请查看这篇博文,标题恰如其分:13 大最被低估的 Azure 服务。

年度最具灾难性的蔚蓝事件

我们从隐蔽的服务发展到不那么隐蔽的活动。2021 年带来了一些“欢呼”,我们认为它们应该被记住。

被提名者是:

  • **三月份的 Azure AD 宕机**几乎所有的 Azure 登录和认证都宕机了 2 个多小时。

  • 8 月 Cosmos DB 泄露事件暴露了 3000 多名客户的数据。。。任何人。

克鲁尼堡奖授予。。。真是惊喜爆冷! AWS 在几周内发生了两次 AWS 故障。哎哟。(想进一步了解那里发生了什么?查看本周AWS的完整报告。)


想免费了解更多关于 Azure 和云的信息吗?查看 ACG 的免费计划 。顾名思义,是免费的。 真的!不需要信用卡! 而且我们那批免费课程每个月都有更新,所以总有新技能要接。


让我们来看看年度动手奖,最佳新工具或更新工具。Azure 上有这么多工具,有些很优秀,有些没那么好。被提名者是:

  • Azure 虚拟桌面 允许每个人在不需要任何安装或软件的托管环境中在家工作。

  • Azure SQL 数据库分类帐用于提供加密证据,证明集中式数据存储未被篡改。

  • Azure Arc 允许通过 Azure 管理任何地方的虚拟机、容器和 SQL 数据库。

获胜者是。。。 Visual Studio 代码 现在 100%在线,可以通过浏览器访问。对任何开发者来说都是一个极好的工具,不管是不是云。


云挑战:Lars vs AWS

当热爱 Azure 的 Lars 前往黑暗面并尝试 AWS 任务时会发生什么?我们挑战 Lars 在他不知道的云平台上走过(或绊倒)一个他从未见过的场景。


最佳 Azure 无服务器服务

我们快到晚会的尾声了。接下来的两个奖项是几个服务云计算壁炉架的顶端。第一个奖项是年度最佳无服务器服务。被提名者是:

  • Azure 函数提供了最简单的方法来假装云中没有服务器。

  • Azure 功能支持复杂的架构和分离的分布式项目。

  • Azure Functions ,让成千上万的开发者能够创建快速高效的解决方案来解决实际的业务问题。

克鲁尼堡奖授予。。。Azue Logic Apps 继续给大家带来惊喜,它不费吹灰之力就将数百种服务强大地集成在一起,而且价值惊人。恭喜你,逻辑应用。

最佳新 Azure 认证

Azure 做得非常好的事情之一——除了给我们无限的计算——是在云本身上测试我们的知识。毕竟,认证的价值包括表明你理解某个主题,并且认真对待你的云之旅。

最佳 Azure 认证考试的提名者是:

  • AZ-700 用于识别云中的联网是将所有 Azure 绑定在一起的东西。

  • AZ-800/801 最终负责庞大的本地市场,该市场希望以混合方式使用 Azure。

获胜者是…所有的认证,因为它们都帮助学习者在云中取得成功,开始他们的云职业生涯,并踏上通往更好职业生涯的道路。

如果你没注意到的话,有很多证书。幸运的是,我们有一个博客介绍哪种 Azure 认证适合你。我们有一个全新的视频,涵盖所有2021 年 Azure 的最新 cert 变化。

2021 年到此为止!我会在新的一年带着更加蔚蓝的天空回来。

想要跟上这一切吗?在 YouTube 上订阅一位云专家的每周微软 Azure 新闻(以及其他云提供商的新闻)。你也可以在脸书上喜欢我们,在推特上关注我们,或者在 Discord 上加入对话。

感谢阅读和观看。享受与家人和爱人在一起的时光。继续牛逼吧,云大师们!

寻找云工作的最佳方式

原文:https://acloudguru.com/blog/engineering/the-best-way-to-find-a-cloud-job

在我 10 多年的技术生涯中,我雇佣了许多人,并帮助其他人通过 #CloudGuruChallenge 过渡到他们的第一份技术工作。在这段时间里,我所见过的在 T2 寻找云工作的最糟糕的方法是玩一个我称之为“简历轮盘赌”的游戏。

恢复轮盘游戏:一场失败的游戏

轮盘赌很容易玩,但是很难赢。规则如下:

  1. 等待随机的公司发布公开的工作列表
  2. 滥发一堆申请
  3. 希望某个陌生人喜欢你的简历,足以安排一次面试
  4. 如果你运气不好,无限期地重复第 1-3 步,直到你被录用或筋疲力尽

这样做会有人被录用吗?当然,每天。你可以在 LinkedIn 上找到那些发出 190 份工作申请,获得 10 次面试和 1 份工作机会的人的鼓舞人心的故事。但是更多的人在那之前很久就气馁并放弃了。我知道我会的。

事实上,当我听说有人在投了数百份冷冰冰的简历后,克服重重困难被录用时,我不会认为“哇,这是伟大的毅力”(尽管确实如此)——我认为“我们在庆祝一个破碎的过程


这是一个古老的问题。没有工作就无法获得经验。没有经验谁会雇佣你?谜题!观看这一免费点播的网络研讨会,该研讨会就云计算职业发展进行了小组讨论,包括我们的云计算大师挑战赛的见解,该挑战赛帮助数十人获得了他们的第一份云计算工作。


招聘是如何发生的

让我告诉你大多数公司在公开招聘时会发生什么:

  1. 150 个随机的人提交了他们的简历,其中有些相当好,有些相当差。(不深入了解很难说。)
  2. 三名现任员工认识某个非常适合这个职位的人,他们提交了推荐信,并热情洋溢地写道:“我和她在 X 公司共事过!她会杀了这个!”

如果你是一名招聘人员(或者特别是时间紧张的招聘经理),你会把哪些简历放在最前面?

许多公司向员工提供推荐奖金正是出于这个原因:最好的雇员往往是你现有团队已经认识的人。审查这些人比筛选总共有 150 个陌生人的电话要有效得多。

(是的,有一些公司,世界上的谷歌,拥有如此大规模的招聘引擎,以至于他们每年可以可靠地处理成千上万份不请自来的简历。但你在那里和在其他任何地方一样在玩数字游戏——你更有可能被正式拒绝,而不是让你的申请被搁置 6 个月。)

网络赌丨博:一个更好的游戏

但这并不意味着你被困在外面向内看。你不必发出 190 份求职申请来获得一份云工作。这个领域对合格的专业人员有大量的需求!如果你知道你的东西,公司应该基本上来找你。

cartoon king asking for cloud jobs

但是要找到你,他们必须知道你!

因此,根据我的经验,获得云工程工作的最佳方式是玩一种不同的游戏,一种我们可以称之为网络赌注的游戏,一种有许多获胜方式但只有两条规则的游戏:

  1. 拥有你的信誉
  2. 建立联系

拥有你的信誉

我在我的“有多少证书”帖子中更详细地介绍了基础云技能,所以我不会在这里重复所有内容,但是如果你是云的新手,你需要确保你已经:

  • 用 Python 或另一种通用后端语言编写代码的扎实能力
  • 对 Linux 和网络基础知识的实际熟悉
  • 一两项基础云认证

如果你没有在这里站稳脚跟,你只会在面试后变得意志消沉。我不希望你意志消沉!我要你跳到队伍的最前面。精通代码、网络和 Linux(不是摇滚明星!只是基本的!)是你的作弊码。说真的。动手吧。你可以比你想象的更快到达那里。

建筑连接

是的,这是我们谈论网络的部分。不,不是关于得到你的 CCNA,我是说认识正确的人一起工作。

我注意到,许多工程师在面对为了找到一份好工作而不得不拓展人脉的想法时,往往会怒不可遏:“我的技能应该独立存在。我的事业不应该依靠人脉;这不公平。”

但是他们忽略了联系是双向的。你不仅仅是一个可互换的 YAML 一代产品。你是一个有自己好恶和性格怪癖的人。有很多技术工作对你有害,你不会快乐或有效率——还有很多工作本身对你未来的职业生涯毫无兴趣或益处。当你把随机的工作申请扔进你一无所知的公司时,你面临着一个非常现实的可能性,即使你真的中了彩票并被录用,那也只会是一个坏消息。

人际关系网是你审查就业市场的机会,同时他们也在审查你。它能让你在适合你并为你的成功做好准备的公司里,找到与你一起工作的优秀的人。

但是我是一个内向的人…我不会交际!

我也是个内向的人!事实上,我斗胆猜测技术界的大多数人都是如此。在科技领域建立公众信任的神奇之处在于,你不必到处去和人握手、发名片或做其他事情。(并不是说那会起作用!)正如我的内向伙伴、AWS 英雄亚历克斯·德布里(Alex DeBrie)指出的那样,互联网让你通过更少消耗、更多异步的方式,非常有效地与人联系。只要你在公共场合展示出对自己技能的热情,你就会发现自己遇到了很棒的人和机会。

因此,让我们通过三个实际的方法来实现这一点。

cartoon figure with "Hired!" banner

以下是我的 3 个秘籍,可以让你找到一份对你和你的职业都有好处的云计算工作:

  1. 找到新的定位

如果你是云的新手,那么与更有经验的人相比,你会处于明显的劣势。许多人试图通过证书来缩小这一差距,但最常见的入门级证书对招聘经理来说并不那么令人印象深刻。(你有 A+证书?酷,其他一亿人也是!)

因此,明智的做法是停止玩其他人都在玩的游戏——跳到队伍的最前面,擅长如此新的云服务,没有人在这方面有那么多经验。毕竟,没有人会要求一项只存在了 18 个月的技术有 5 年的经验。

我不是在谈论成为像整个 Kubernetes 生态系统这样一个巨大而广阔的领域的专家。你可以在这里找到一个非常具体的利基。这里列出了一些热门的云工具和服务,迫切需要更多的社区关注。还有很多很多其他的;这正是我能在 60 秒内写下的。

  1. AWS AppSync/Amplify (托管 GraphQL 网关和相关前端框架)
  2. AWS 代码*堆栈(代码构建、代码部署、代码管道)
  3. 无服务器工作流服务 (AWS 步骤功能,Azure Logic 应用)
  4. GKE阿克什EKS 这样的托管 Kubernetes 服务
  5. 像 Terraform 或 AWS CDK 这样作为代码工具的流行基础设施

如果你擅长这 5 件事情中的任何一件,你一定会交到一些有趣的朋友,提升你作为云技术专家的形象,只要你也…

  1. 融入社区

当你开始实践你选择的技术时,写下你正在学习的东西。我建议使用一个成熟的开发者博客平台,内置一些网络效果,比如 Hashnode 或者 dev.to 。例如,如果你正在学习的服务发布了一个新的特性,写一篇简短的文章,探索它的作用以及你为什么对它感兴趣。

然后,分享那些好心情!并标记你感兴趣的功能的创建者。开发者喜欢看到他们的优秀作品被认可,他们会张开双臂欢迎你。

你也将开始发现你所选择的社区聚集的松弛和不和谐的频道、Twitter 标签等。与这些渠道接触,注意谁是有影响力的人——如果你认识他们,你会想成为他们的导师。我强烈推荐加入 Twitter,关注你所在领域的关键影响者。与他们交流,用问题回复他们的推文。人们会记住那些积极和乐于助人的人。你也会开始拓展其他的联系。

然后,当你看到一个工作机会在社区里出现(这是肯定会发生的)…

  1. 请求推荐

这一开始感觉很不舒服,但是比看起来容易多了。你可以给在你感兴趣的公司工作的人发信息,礼貌地请求推荐一个空缺职位。没有纠缠,你甚至可以问他们是否有任何公开上市的空缺。他们能做的最坏的事情就是说不。

但是请记住——他们很可能受到公司的激励而答应。如果你过去曾通过在他们的空间里建立和分享工作与他们互动过,他们就更有可能给你那种推动。如果你已经写了博客或者建立了开源项目,他们可以把这些交给他们的内部招聘人员。对他们的熟悉会给你一个共同的信任基础,让你知道这个角色和公司是否真的适合你。

玩长线游戏——这是一条捷径

cartoon chart comparing resumes and networking

通过网络投注过程获得一份工作——明确基础,找到云计算利基,融入社区——不一定很快。可能需要六个月到一年或更长时间。但这比获得大学学位要快得多。此外,你可以在业余时间非常便宜地做这件事,同时建立最终将在未来几十年内带来回报的联系。

相反,简历轮盘赌没有准入门槛,但却是一个糟糕的游戏,因为它有太多糟糕的结果:

  1. 你在就业市场上与其他人竞争,降低了你被雇用的机会
  2. 你几个月或几年都没有被聘用,你变得如此失望,以至于你停止了寻找
  3. 你真的被雇佣了,但是这份工作并不适合你

所以要主动,不要被动。拥有你的信誉。并且给自己创造一个小众,不要等待绝佳的机会去开拓。这是找到一份云工作的最佳方式,这份工作将成为一份令人敬畏的职业生涯的基础。

史上最大的 DDoS 攻击?

原文:https://acloudguru.com/blog/engineering/the-biggest-ddos-attack-in-history

微软发布了一些关于他们如何减轻分布式拒绝服务(DDoS)攻击的统计数据。他们不仅描述了他们如何保护 Azure 服务,还描述了有多少攻击。这让我震惊。。。

完整的故事(以及本周 Azure news 的其他一些有趣的花絮)请继续阅读!


通往更好职业的钥匙

从 ACG 开始通过 AWS、Microsoft Azure、Google Cloud 等领域的课程和实际动手实验室改变你的职业生涯。


微软缓解了 3.47 Tbps 的攻击

我们都知道,互联网服务经常遭受攻击,服务越大,目标越大。我只是不知道有这么多。

在 2021 年 8 月,平均每天有 1955 次攻击,Azure 阻止或减轻了这些攻击——最高的是 8 月 10 日的 4296 次。单日 4000 多!

2021 年下半年,总共发生了 359713 起攻击事件。神圣的蝙蝠侠!这是一次攻击。。。而现在。。。而现在。

去年 10 月,我告诉过你们一次每秒 2.4 太比特的巨大 DDoS 攻击。也就是说,每秒钟有 300Gb 的垃圾数据被扔向一项服务。自那以后,Azure 已经缓解了三次较大的攻击,最大的一次是在 11 月,在 DDoS-o-meter 上测量到 3.47 Tbps。

这可能是 DDoS 和互联网历史上最大的一次,Azure 也能够击败那次。

虽然这些数字令人印象深刻(坦率地说很难理解),但我认为这里的主要信息是 DDoS 攻击不会消失,也不会变得更小。因为它们很容易安装,而且价格便宜(是的,你可以买一个 DDoS 即服务),我们只会看到更多更大的。然而,利用像 Azure 这样的云平台意味着你很可能永远不用担心这个问题。这是我喜欢云的原因之一。

在此获取所有详情

Azure 开源日是 2 月 15 日

你听说过 Azure 开源日吗?这个以 Linux 为主的活动是全在线的,在 2 月 15 日可以免费参加。微软列出了你应该参加的 7 个理由。看看吧!

微软和美国宇航局将量子计算带入太空

这是过去一周的另一个最受欢迎的故事,主要是因为标题中有“量子”和“空间”。(我不找借口。)

“美国宇航局喷气推进实验室(JPL)已经转向 Azure Quantum,以探索与探索我们太阳系及其他地方的航天器更有效地沟通的方法,”微软在一篇博客文章中说。

JPL 正在 Azure 上使用量子启发的优化算法,以提高他们在火星漫游车和詹姆斯·韦伯太空望远镜等任务中使用的保真度。Azure 上的量子服务是对 JPL 深空网络的补充,这是一个在加利福尼亚州,西班牙和澳大利亚的大型射电望远镜网络。

在这个具体的例子中,微软描述了他们如何将计划优化所需的时间从 2 小时减少到 16 分钟。

当你处理发送到火星的信息时,优化火星车、望远镜或你控制的任何东西的每次更新或时间表的处理时间,几乎十分之一的时间减少是巨大的。

对于那些仍然怀疑太空探索和技术价值的人来说,请记住时间安排问题并不是 NASA 和太空所独有的。这些问题存在于大多数行业,他们也将受益于这一进步。爱死了。

微软为支持 Azure Arc 的服务器推出登陆区加速器

Azure Arc 允许您在 Azure 中包含您的内部和“其他云”虚拟机、SQL 服务器和 Kubernetes 集群。有了 Arc,你可以控制和监视它们,就像在 Azure 上一样。它是 Azure 上促进高效混合基础设施的关键工具之一。

Azure 登录区是多订阅 Azure 环境的输出,它考虑了规模、安全治理、网络和身份。换句话说,这是一种以安全和可伸缩的方式充分利用 Azure 的推荐方法。将此与云采用框架结合在一起,您将获得一个着陆区加速器,它现在可以将 Arc 考虑在内。

正如微软所说,“着陆区加速器提供最佳实践、指导和自动化参考实施,以便客户能够快速轻松地开始部署。”

“快速”和“容易”这两个部分应该有所保留,因为混合环境并不总是一帆风顺的。至少着陆区加速器将提供一个初始的方法和前进的方向。

欲了解更多信息,请点击此处

Azure 您在云中的成功

如果你想让 2022 年成为你开始云计算生涯的一年,或者开始掌握在科技行业获得一些高薪职位所需的技能,那么就去看看 ACG 的免费计划。它给你提供了免费课程和测验,以及学习路径和原创系列内容。

整个二月,微软 Azure 云采用框架的完整课程介绍是免费的——以及一系列其他内容。你不需要信用卡来注册。这里开始

好了,这就是这周的全部内容。直到下一次,我会在云中见到你。继续牛逼吧,云大师们!

想跟上万物云?在推特上关注 ACG脸书在 YouTube 上订阅一位云专家,并在 Discord 上加入对话。

了解为什么区块链技术有潜力改变每个行业

原文:https://acloudguru.com/blog/engineering/the-blockchain-stack-get-ready-for-big-things-to-come

新兴的区块链解决方案指出了一个触手可及的、可靠的、分散的、值得信赖的交易的未来

我从写区块链中学到的一个教训是,你必须提供一点关于技术的介绍——否则,我会失去 80%的观众。鉴于区块链技术的复杂性以及围绕不同平台、网络、令牌和应用程序的混乱,这是可以理解的。

公众的注意力大多集中在加密货币价值的涨跌以及涌入该领域的巨额美元。这是一种耻辱——因为在区块链的引擎盖下是一些令人印象深刻的建筑和愿景,它们有望创造一个巨大的创新浪潮,随之而来的是相当大的破坏。

在我到达那里之前,为了区块链第一法则的利益,这里有一些关于加密货币和区块链的关键点作为基础。

区块链 101

  • 加密货币独立于区块链技术。第一个是感知价值的数字表示;第二种是用于分布式事务处理和存储的方法。
  • 区块链平台的核心是一个分布式事务处理引擎,它对事务进行验证和加密密封。
  • 区块链由使用加密算法封装在一个“块”中的多组事务组成。通过使用散列值,连续的块被链接到前面的块,从而有一个顺序链,该顺序链在很大程度上是永久的和不可变的。
  • 区块链网络由几乎相同的节点组成,这些节点以分布式但独立的方式运行。节点网络用于验证事务并将其封装在链中的块内。
  • 区块链交易在分布式账本中维护,该账本通过共识算法在网络中的节点之间保持一致。
  • 区块链矿工是网络中节点的运营商,通过加密货币伪造区块获得奖励。第一个到达某个参数范围内的散列的矿工将获得该块的奖励。
  • 如果区块链平台允许额外的交易,未成年人也可以因处理交易和存储附带数据而获得奖励。

需要更全面的介绍区块链到底是什么,以及为了理解它需要知道什么?获得区块链认证并了解这项革命性技术的来龙去脉。

区块链用例及潜力

好了,现在我们已经了解了基础知识,并且我们已经确定区块链技术允许创建分布式事务处理和存储网络——应该更容易看到它的潜力。

拥有一个允许对交易记录进行独立验证的公共或私有网络,满足了许多行业的许多需求,这些记录已经被散列并连接起来,以创建一个不可变的链。如果有人强调这样一个前提,即今天占主导地位的集中式处理和存储需要对每个中央组织的信任——这种信任现在和将来的许多人都不太可能分享。

用例列表本身就是一个帖子,所以我不会在这里对它们进行分类,但是如果你感兴趣的话,有很多文章涉及到这个主题——包括理论和实践。我最近最喜欢的之一是由人群公司的创始人 Jeremiah Owyang 以图形形式提供的。

区块链技术的案例

如果你需要更多的说服力,简单看一看伯尼·麦道夫诈骗案就知道区块链科技是如何阻止它的。2008 年,伯尼·麦道夫承认操作了一个 648 亿美元的庞氏骗局——是的,十亿美元。这被认为是历史上最大的金融欺诈案之一。

在随后的调查中,发现他的资产管理公司多年来(如果不是几十年的话)一直在编造交易和发布虚假回报。客户的震惊和影响是毁灭性的,普通投资者的恐惧是显而易见的,在某种程度上,甚至持续到今天。

监管者的失误,或者说渎职,是导致欺诈继续的主要原因。但是在另一个世界里,如果所有的交易都被记录在一个不可改变的可访问的区块链记录里,那么即使不是不可能,也是很难实现的。

根据交易的区块链来验证交易,会让监管者很容易发现交易是否真的发生了。它还将允许账户持有人根据交易日志核对账户。

如果交易是在区块链进行的,如果他们是证券记录上的最后所有者,那么他们的账户报表是可信的。交易对手也可以用类似的方式进行验证。

相反,监管者被误导了他们所寻找的东西,而且永远无法看到这个庞大的计划,即使它就在他们面前。

[麦道夫]表示,奥斯特罗和拉摩尔“从未真正接触过与股票记录或 DTC 记录相关的书籍和记录。”麦道夫声称“他们甚至从来没有看过我的股票记录”,也没有“清点过”

他说,他对他们没有要求 DTC 记录感到“惊讶”,并表示只有监管机构才能从 DTC 获得这些记录,而 SEC 将“不得不去 DTC”他补充说,DTC 没有为每个客户设立单独的账户,而是提供一份全球报告,但他表示,如果他们去 DTC,他们会看到他的做市头寸,而且“他们很容易看到”庞氏骗局。

马多夫表示,证交会本可以去找交易对手,如果他们去了,他们“会看到的”,并补充说,“他们没有这样做。”他表示“这是唯一要做的事情”,并澄清说,“如果你在关注一个庞氏骗局,这是你要做的第一件事。”

–亨利·布洛杰特,商业内幕,2009 年 10 月 31 日
麦道夫谈“白痴”证交会调查员:他认为自己是“上尉·科伦博”

区块链堆栈

如果你接受区块链技术将是未来交易处理的重要因素这一前提,那么看看区块链先驱们描绘的愿景是有意义的。我们将通过查看一些早期架构图以及深入了解一些新兴组件和网络来实现这一点。

首先要看的地方之一(除了最初的比特币白皮书)是以太坊协议的创始人 Vitalik Buterin 描绘的愿景。下图包含了加密货币生态系统的早期模型。这些层展示了处理复杂事务和交互所需的广阔视野。它列出了在分散网络中运行所需的大量组件。

正如您所看到的,这是一个复杂的愿景,但要实现它还有很长的路要走——无论是在开发商的行动中,还是在市场的接受度中。

区块链核心–协议、接口、网络

下面显示了基础层的一个更受约束的视图。它是在以太坊推出后不久由核心以太坊团队成员制作的。基础层包含协议以及接口、网络和测试工具。

这个核心视图提供了控制事务处理逻辑以及块的锻造的基本原则和交互。称为智能合同的概念是以太坊内灵活处理能力的核心——参见我早期的帖子了解更多关于这个主题的信息。

在查看区块链架构师图表和各种组件时,关键的一点是要记住“不可信”这个词。虽然围绕事务处理的架构或堆栈图并不具有开创性,但在公共区块链平台中所做的许多事情都是独一无二的。

原因是区块链系统被设计成无信任的,这意味着被设计成以一种方式执行一个动作和操作,使得各方之间的信任不是该动作或操作的条件。

换句话说,当交易比特币或以太币时,不要求一个交易伙伴确定另一个交易伙伴有足够的货币进行交易。相反,区块链本身提供了在提交交易之前验证所有权的能力。

一笔交易是否在之前的某个日期完成,不是由一个单一的中央机构来决定,而是通过使用分布式分类账作为事实的来源来决定。

这种不信任的本质应该是一个人在观察区块链平台和网络中的其他层和组件时使用的透镜。分散化也是一个需要记住的描述符,但“不可信”是与几乎所有其他平台和网络的关键区别,这也是区块链获得如此强大追随者的原因。

区块链组件

区块链平台的基础层处理交易设置和处理以及链中每个模块的伪造/创建。对于简单的资产交易——一方将资产交易给另一方——来说,这个基础或内核就足够了。

然而,更复杂的事务需要更深入地思考如何构建各种工作流(参见我之前帖子中的棋局解释)。还需要注意处理交易中可能涉及的大量数据。

为了处理这种增加的复杂性并满足更多的使用情况,已经提出了额外的组件和网络。下面是一些更重要的纲要。

注意使用术语“层”、“组件”、“应用”、“平台”和“网络”。原因是为了区分技术的概念方面(层或组件)、技术实现(应用程序或平台)、运行应用程序或平台(网络)的一组独立节点。

身份解决方案

安全且可验证的数字身份对于稳健的区块链网络的运行至关重要。进行交易的各方以及构成交易基础的资产都需要身份。

关于交易方的身份有许多问题。一个是当事人是可识别的还是匿名的。大多数区块链平台将允许匿名,尽管网络结构或对连接到网络的各方的监管要求可能会将真实世界身份与链上 id 进行离网关联。

例如,美国国税局已经向比特币基地和其他在线存储库施压,要求提供将用户与其比特币、以太坊或莱特币账户 id 联系起来的数据。另一个复杂情况是,实体可能想要或需要多个身份,因此任何结构都需要适应这一点。

例如,一个 ID 可能与可识别姓名/人相关联(与驾驶执照、选民登记或护照相关联的区块链 ID),其他 ID 可能是半私有的——仅在特定的封闭网络中已知,还有其他 ID 可能保持匿名,被创建以建立合法的实体,但是该实体不可追踪到链外实体。

至于资产的身份,问题同样复杂。使用系统的加密货币进行交易是一回事,因为系统能够验证该货币的合法性。但是,对于非数字资产和没有硬连接到交易处理引擎的数字资产,情况就不同了。

对于非数字资产,建立与物理资产匹配的数字标识可能会有问题。例如,一幅画可能需要一张或多张照片以及详细的描述(标题、艺术家、媒体类型、尺寸、区别标志)和/或状况报告,但仍可能存在合法性问题。

有 VIN 号的汽车看起来似乎很容易识别。问题是,一个单一的车辆识别号只是皮毛。汽车是由许多零件和子部件组成的,其中许多都有独特的标识。一辆汽车可能包含多达 30,000 个不同的项目(如果你把它分解到单个螺母和螺钉)。如果对汽车进行了修理并且更换了零件,则需要修改清单以反映这些变化。

由此可以看出,区块链的身份是复杂的。它还处于早期阶段,但许多方面都在关注它,并努力解决其复杂性。例如,微软积极参与区块链身份认证,并推出一些开创性的想法。

随着技术的进步和标准方法的采用,区块链网络将变得更容易使用。当易用性增加时,提交给区块链的交易数量也将增加,区块链科技将不再那么陌生和奇怪,而更多的是事实。

如果你怀疑这一点,那么想想手机中的数码相机对网络照片使用的影响。无处不在的网络连接使得上传和分享照片变得更加容易。这使得脸书、Instagram、Pinterest、Snapchat 和其他社交媒体平台出现并呈指数级增长。一旦实体和资产 id 的形式在区块链网络中易于使用,区块链应用程序也会发生同样的事情。

离线数据验证

离线数据验证是解决更复杂的区块链解决方案的另一个关键领域。可以存储在链上的数据量是有限的。实际上,大宗交易规模限制以及创建区块链交易所需的费用会对监管者产生影响。

与链上事务处理一样,链上数据存储也有成本。交易方必须在交易时支付费用,以弥补存储成本。这篇 StackExchange 帖子提供了更多关于区块链数据存储的信息——尽管请注意,鉴于最近乙醚价格的上涨,解释中详述的收费可能已经过时。

关于在区块链交易中包括什么信息,这在很大程度上是一个架构决策——显然是交易中涉及的实体和交易的资产,但交易的其他数据和方面也可能记录在链上数据中。

然而,对于交易来说至关重要但大小较大的数据元素将无法包含在链上——至少是整个链上。示例可能包括法律协议或合同、大型资产购买(例如,房子)的随附文档、集装箱运输的冗长清单,或者艺术品的照片和状况报告。

然而,不能将它们直接包括为链上交易的一部分,并不意味着识别数据元素不能作为交易的一部分被锚定或固定到区块链中。换句话说,可能不包括完整的文档,但是可以包括唯一的并且可以在以后验证的表示。

一家名为 Tierion 的公司开发了一种协议和不断发展的数据证明网络,它提供了一种将数据锚定到公共区块链的交钥匙方式,该网络本质上采用任何形式的数据的散列——文档、文件集、数据库记录。csv,。xls 或其他文件格式——在时间戳中散列,然后在比特币和以太坊的交易中固定或锚定结果散列和其他散列。

通过这种方式,他们能够提供交易记录并生成数据证明。在以后的任何时候,都可以验证手头的任何数据是否与原始数据相匹配。这意味着,如果您手头有一份合同或一组财务数据,您可以通过将它们与区块链交易中的哈希值进行比较,来验证该合同或财务数据是否处于原始状态。虽然该网络不提供这种辅助数据的存储(这留给交易方练习),但它提供了一种方法来确定任何存储的数据是否与先前交易的原始数据相匹配。

充分披露:我与 蒂尔昂 的人关系密切,是公司和技术的支持者。它为区块链技术提供了一个现成的用例,但也可用于任何需要独立于任何区块链连接的数据证明的解决方案。

离线数据存储

在深入研究上面的第一个时,您会注意到链外数据存储包含在生态系统的各个层中。例如,Swarm 突出地出现在一个较高层中。它和 IPFS 是两个旨在满足这一需求的协议/解决方案。

Swarm Swarm在区块链圈子里获得了大量的关注,因为它的起源更多地源于区块链平台,而不是 IPFS,尽管 IPFS 已经存在了很长时间。2016 年 5 月发布了一组描述 Swarm 背后技术的橙色论文

以下是出现在 Swarm github 页面上的对 Swarm 的描述。

Swarm 是一个分布式存储平台和内容分发服务,是以太坊 web 3 栈的原生基础层服务。Swarm 的主要目标是为以太坊的公共记录提供足够分散和冗余的存储,特别是存储和分发 app 代码和数据以及区块链数据。从经济角度来看,它允许参与者有效地集中他们的存储和带宽资源,以便向所有参与者提供上述服务。

从最终用户的角度来看,Swarm 与 WWW 并没有太大的不同,除了上传不是到特定的服务器。目标是点对点存储和服务解决方案,该解决方案具有抗 DDOS、零停机、容错和抗审查能力,并且由于内置的激励系统而能够自我维持,该激励系统使用点对点记账并允许交易资源进行支付。Swarm 旨在与以太坊的 devp2p 多协议网络层以及以太坊区块链深度集成,用于域名解析、服务支付和内容可用性保险。

IPFS IPFS代表星际文件系统,是一种点对点文件存储分发协议,它使用基于内容的寻址约定,因此可以独立于服务器。这种能力意味着地址可以是永久的和灵活的,而不是绑定到特定的服务器或位置。它的历史早于区块链技术,但它的实现了区块链开发者提出的一些相同的要求。

下面是几年前 Techcrunch 对 IPFS 的描述:“IPFS 还解决了困扰我们基于 HTTP 的互联网的安全问题:内容寻址和内容签名保护了基于 IPFS 的网站,使 DDoS 攻击变得不可能。为了帮助减轻停产网站的损害,IPFS 还对重要的公共记录内容进行存档,并且可以轻松存储重要的公共记录内容。”区块链论坛中提到了 IPFS,尽管我目前还不知道它的任何生产用途。

想了解更多关于 Swarm 和 IPFS 的信息,这里有一篇比较两者的 StackExchange 帖子。

鉴于分布式存储面临的挑战,它肯定还处于发展的早期。不仅不清楚分布式存储的经济性,也不清楚市场将如何接受它。处理交易是一回事,尤其是在身份匿名的情况下,存储数据是另一回事——即使数据被加密、分区、混淆,并以其他方式变得安全和匿名。

一种可能性是将私有存储解决方案与公共分布式网络融合在一起。换句话说,Dropbox、box 或 OneDrive 可以创建自己的令牌,并使用这些令牌在其现有用户中使用边缘存储容量(即使用其现有用户的本地存储作为网络)来支持类似群集的功能。)

或者,一家创业公司(与硅谷电视节目中的 Pied Piper 相似)可以通过使用移动电话、智能冰箱和其他设备作为基于边缘的存储网络而兴起。#开玩笑#不开玩笑

支付渠道

使用区块链网络记录交易在速度和吞吐量方面都有成本,记录每笔交易的物理成本也是如此。

区块链网络非常适合记录大型一次性交易,如转让房屋、汽车、设备或其他值得注意的购买。但是,对于小额交易或交易发生频率较高的情况,这种方法并不适用。

一种被称为支付通道的方法已经被提出来解决这些类型的情况,并且一些网络在一些区块链平台中处于不同的发展阶段。

付费频道可能适用的一个例子是按次付费功能。其工作方式是,初始存款是在链上交易中创建的,但有一个时间延迟。每次查看或下载时,都会创建一个已签名的事务,但它是在离线网络中维护的。每一次新的观看/下载都会创建一个新的交易来替换先前的交易,但是要转移的金额会增加。

这与礼品卡不同,每次使用都会从余额中扣除另一笔金额,尽管在这种情况下,直到某个事件迫使最后一笔交易在链上处理,余额才会达到。任何一方都可以在任何时间点触发任何正式签署的链外交易的链内识别。

另一个使用案例是忠诚卡,其中每次使用代币,奖励以代币的一部分的形式提供,但是连续的奖励保持在链外,直到在链上刷新。

“[支付]通道是一项重要的技术,有可能极大地提高许多类别的区块链应用程序的可伸缩性和隐私性;结合分片和其他隐私保护加密技术,它们是帮助去中心化系统实现主流个人和机构用户期望和应得的属性的重要组成部分。”

–以太坊创造者维塔利克·布特林

闪电网络闪电网络是比特币区块链的支付通道网络,旨在提供高容量和高速度的交易能力。它的工作原理是记录比特币区块链网络中的初始交易——例如,一方和另一方之间的支付。然而,交易方随后的修改是在闪电网络中进行的。修改以区块链可解析智能合同脚本的形式存储,只有最近的链外修改在网络中有效。

在交易中使用时间锁,以允许延迟确认初始存款和确认临时调整。这种认识上的滞后使得外链网络中的最新条目可以在任何时候被关闭,从而取消存款,只承认交易的真实金额。在不合作的情况下,区块链是使用初始状态和最近达成一致的事务的仲裁器。

雷电网

雷电网络是以太坊的支付通道网络。就像上面的闪电网络一样,雷电网络建立了一个离线状态网络,以提供一组增加链上以太坊能力的属性。在这种模式中,雷电网络中的私有签名消息提供了价值转移。通过对等网络结合初始链上存放来维护消息。消息将以与上述类似的方式使用时间锁和最近的链外交易来建立当前余额(一旦交易在链上提交)。

创作者列出了许多用途,包括内容分发、广告和订阅的小额支付;带宽、存储、cpu 处理、能源或传感器数据的按需市场;代币系统和私人货币。

通信网络

商业中使用的大多数当前通信协议和网络允许通信方的识别和位置的追踪。然而,各种区块链平台具有处于工作或提议阶段的协议/网络,这些协议/网络被设计成对在网络内通信的各方隐藏位置,从而屏蔽各方的识别元素。这个想法是,虽然区块链 ID 可以被创建以便匿名,但是作为通信消息的一部分包括的位置信息可以最终提供足够的信息以便暴露这个 ID。

请注意,保护身份并不一定意味着非法交易或不法行为。在大多数交易情况下,完全或部分匿名是一个关键和常见的因素,尤其是在建立和报价阶段。

例如,拍卖在很大程度上是匿名的。交易股票或期权也一样。在每次报价或交易中,身份不会广播到整个网络。相反,拍卖行和票据交换所作为中央机构保护各方的身份,但允许可信的交易。

在区块链网络中,没有中央机构可以缓冲通信信息。因此,作为广播通信的一部分传送到网络的任何位置信息都可能泄露区块链参与者的身份。因此,需要一种能够隐藏位置信息并保持匿名的通信设施。

耳语

Whisper 是以太坊的通信协议,允许客户端传递不需要永久存储在区块链中的消息。根据文档,Whisper 协议旨在维护发送、多播和广播消息的安全性和效率。

结果认证

分散式事务的另一个挑战是如何以可用于确定链上事务的结果的方式来认证离线事件的结果。

通过评估游戏的当前状态以及之前的移动或动作,在线活动(国际象棋比赛、扑克游戏或其他活动)的结果在理论上应该可以在区块链网络中进行仲裁。确定一个链外活动的结果要困难得多。

就足球比赛的赌注而言,如果双方对结果达成一致,就可以承认并支付赌注。然而,如果一方不同意结果——无论是出于疏忽、恶意、不诚实还是其他原因,那么就需要一种机制来提供将结束打赌的结果。

20 世纪 70 年代的电影《骗局》展示了为什么有必要以一种经过验证的方式获得结果。两个主角建立了一个假的赌丨博大厅来欺骗一个黑帮老大。他们使用一个叫做电线的骗局。这种骗局最初是从延迟消息开始的,因此允许投注者提前预测结果。后来,它演变成一种更为复杂的诡计,利用假赌场和先进信息的假象来欺骗赌徒。

电报在 20 世纪早期最为流行,当时赛马和赛狗的结果通过电报发送到赌场。它始于早期的电报时代,当时电报员可以将比赛结果推迟足够长的时间,让一些联盟成员下注,赚一大笔钱。

随着电报越来越普及,当地的 bunco 小队采取措施防止延迟结果,骗子开始制造他们可以延迟结果的假象,从而产生了电汇诈骗。这种诈骗需要大量的时间和人员,需要一个诈骗团队来建立和运营一个人员充足但假冒的赌场。对骗局至关重要的是“罗珀”,一个骗子,他必须用预先了解情况和保证获胜的承诺来引诱目标。
网络诈骗,利用维基

创建一个能够以可靠的方式提供结果的系统,用于分散的、不可信的交易处理系统,并不是一件简单的事情。致力于解决方案的两个比较突出的网络是 Augur 和 Gnosis。

占卜 占卜也是预测市场在以太坊上像一个分散的网络一样运行。它们提供了一个根据现实世界事件的结果进行虚拟股票交易的设施。预测市场的概念并不新鲜,但其理论是,区块链网络提供的分散化降低了交易对手的风险,以及可能对任何单一中央机构造成的威胁。要获得更深入的观点,请查看他们的 FAQ ,因为它包含了关于它如何工作以及运营分散预测市场所涉及的问题的可靠概述。

灵知
灵知也是预测市场在以太坊上作为一个分散的网络运行。从本质上说,他们正在创建一个平台,通过这个平台可以提供关于未来事件的预期结果的聚合信息的机制,并允许基于该结果的交易活动。用途包括金融化、保险和对冲、价格发现、绩效激励和体育博彩等。

Gnosis 架构包含了许多有趣的元素,其中之一被称为“神谕”先知是决定赌丨博结果的工具。他们列出了四类神谕:

  1. 链上神谕
  2. 集中式 oracle
  3. 分散神谕
  4. 混合神谕。

他们在白皮书中的讨论提供了每种类型的性质和环境的相当多的细节。这篇文章值得一读,以了解在一个被设计为去中心化、无权限和无信任的市场中,集中式工作流中的一个简单工作流——拉斯维加斯的一个体育博彩——是如何变得更加难以管理的。

关于占卜和灵知的比较,请看这里的帖子和这里

区块链平台——现在和未来

目前媒体对区块链加密货币元素的关注已经从底层技术上转移了相当多的注意力。这一点尤其正确,因为它关系到区块链先驱们提出的更完整的愿景。

当前网络的增长相当惊人。想想吧。几年前,没有多少人会认为由数千个独立节点组成的大型分散式网络会在这个时间点运行,这些节点处理数百万美元的交易。

加密货币为支持交易处理提供的经济激励是一个案例研究,将标志着历史上的这一时间点——就像其他经济 IT 突破在过去所做的那样。

区块链的故事很容易与早期个人电脑软件制造商的故事相提并论,他们出售软盘上的软件,创造了数十亿美元的市场。

它将在开源先锋公司中找到自己的位置,这些先锋创造了大量流行的非商业软件,以及建立在此基础之上的大公司。

它还将加入云计算和无服务器公司的行列,这些公司不仅找到了实现实用计算的方法,还重塑了未来许多年的 it 架构和部署。

区块链技术同样有潜力改变几乎每个行业。创建可靠的工作流并以分散和不可信的方式允许可信的交易的能力是一个巨大的愿景——但不是不可实现的。

区块链技术的进步是真实的,未来的愿景肯定是触手可及的。


FWIW,我正在帮助制作 2017 年 8 月 4 日星期五在加州圣马特奥举行的区块链研讨会。详细内容可以在这里找到

这篇文章是最近博客关于区块链技术和无服务器处理的异同的后续。

感谢阅读!如果你喜欢你所读的,按住 点击下面的 按钮,这样其他人也能发现。可以 在 Twitter 上关注我

阅读云文档的艺术——提升你的技术

原文:https://acloudguru.com/blog/engineering/the-career-changing-art-of-reading-the-docs

时常有人问我如何成为 AWS 的英雄。

具体的答案并不有趣——“加入社区,希望有人提名你为英雄”似乎是 AWS 的流程。我知道微软 MVP 流程更加透明,也更加规范。

但“我如何在我选择的技术专业中变得受人尊敬”这个普遍问题非常有趣。即使你没有任何建立公众追随者的愿望,成为你的技术领域内的关键人物也有巨大的职业价值。

团队中的每个人都会向他提出关于语言或框架的最棘手的问题。知道所有尸体埋在 ActiveDirectory 或 Typescript 或 DynamoDB 中何处的人。这些人有很好的职业生涯和工作保障,因为像这样的权威知识是罕见的。

从某种程度上来说,它是罕见的,因为智慧只来自经验。但是我知道很多工程师坐在同一把椅子上十年了,却得到了十次同一年的经验。见鬼,我自己也去过那里;我花了几年时间作为一名“偶然的 DBA ”,除了日常的救火工作之外,我从未真正了解过 SQL Server。

我过去常常花很多时间想知道为什么其他人在新技术上进步如此之快。你如何打破学习和遗忘的停滞循环,多年来使用同样的技术,却从未感觉自己是专家?

几年前,我从我的 AWS 英雄伙伴贾里德·肖特那里学到了一个秘密,如果你愿意的话,可以称之为欺骗代码。这是他提升科技水平的秘方:

每周从头到尾阅读一份与工作相关的技术文档。

阅读文件:错误的方式和正确的方式

我明白,这听起来不像革命。" RTFM "实际上和计算本身一样古老。这是你应该能够谷歌到的问题的经典答案。

这暴露了我们很多人看待文档的一个关键局限。我们在战术上认为它是一种资源,当我们有特定的问题或遇到特定的错误时可以进行查询。我们用文档来填充我们已知的未知。

这就是为什么你会陷入多年的困境,比如说,管理一个 PostgresSQL 集群,却从未真正成为 Postgres 领域的专家。如果你只是在形势需要的时候才学习新的东西,你的 Postgres(或任何东西)的心智模型将看起来像是这个的一个逐渐扩展的版本:

Venn diagram of tactical doc-reading

随着时间的推移,当你遇到更多新的技术用例时,你会在心智模型中烙下更多“永不忘记”的印记。但是你仍然会有这种沉重的未知的感觉笼罩着你,你永远不会确定你是否真的在用最佳的方法来解决一个新问题。

相反,Jared 的方法是战略性地阅读文档*,,好奇地抢先阅读:作为一种填补你的未知的*的方式。十年后你可能不会遇到的事情,但是如果你明天遇到了,那将花费你两天的时间来排除故障。

像阅读小说一样阅读文档(从头到尾),而不是像阅读字典一样(查找术语、交叉引用和停止)。随着时间的推移,这种策略会让你的专业领域形成一个心智模型,看起来更像这样:

Venn diagram of strategic doc-reading

(顺便说一下,这与你从学习认证中获得的好处是一样的:你正在构建一个领域的思维地图,所以你不必在每一个新的探索中都在黑暗中磕磕绊绊。)

表面上看,这听起来很简单,但远非易事。当我建议把读博士作为一种职业发展策略时,人们会提出三种常见的反对意见:

“我没有过目不忘的能力。我永远不会记得一堆随机的文件。”

当我还在上大学的时候,一个好心的朋友说服我应该读一本关于 SAP 的书。忘了今天吧——我不可能在读完那本书的十分钟后告诉你一件关于 SAP 的事情。我从未进过企业,更不了解我读到的这些 ERP 集成应该解决的问题。这就像试图与电影《T2 降临》中的外星人对话:我的大脑形状不对。

同样,对于一项你不使用、没有背景的技术,浏览文档可能不会有太大的价值。

所以做这两件事:

1.关注您已经在使用的技术的文档。当我们费力阅读一些与我们日常生活无关的深奥文本时,我们都有这种头脑麻木的感觉,当你看了三页后,你会问:“我刚刚读了什么?”

为了避免这种情况,你可以把重点放在你已经有既得利益的技术或语言的文档上——比如说,因为它们在你的工作中,或者你试图把它们变成一个附带项目。

通过在阅读时问自己这样的问题来鼓励积极阅读和接触信息:

  • 我明白了吗?(如果没有,请再读一遍该部分)
  • 我刚刚读到的与我现有的关于这项技术如何工作的心智模型相符吗?(如果没有,我是否需要查看不同的文档,然后再回到这里?)
  • 这个特性或事实能对我当前的项目有所帮助吗?
  • 如果我在六个月前知道这些,我会做什么不同的事情?(“选择不同的技术”是完全可以接受的答案!)

然后, 2。按照时间表,一遍又一遍地反复阅读这些文件。说真的。如果你在一个为 Azure 构建集中式 CI/CD 的团队中,也许本周阅读 Azure DevOps 文档中关于管道的部分,下周阅读关于构建代理的部分,当你完成时,重新开始。云变化很快。在强化旧信息的同时,你会吸收新信息。

“我没有时间去阅读一堆文档。”

是的,几周的工作可以节省你几个小时的计划时间。也许可以利用你目前在代码中注入“HERE”print 语句的时间来找出它为什么不工作。

Debugging Tactics

更严重的是,每天在你的日历上留出一点时间——甚至 30 分钟——进行有针对性的文档阅读,这并不是一个坏主意。你可能会发现很难从你的工作日中抽出时间,但是捍卫时间和与你的经理一起设定期望是一项值得练习的技能。称这段时间为“深度工作”确实是。

“[技术 X]的文档不好。相信我,它们不值得一读。”

我并不总是相信这个借口。文件可能没有那么糟糕;你可能只是有错误的期望。

例如,AWS 文档因冗长和组织不良而受到指责。如果您试图查找 IAM 操作的名称或 CLI 命令的语法,这可能比您听说的还要糟糕。

但是作为一个深入研究服务的架构基础和技术限制的教育工具,AWS 文档非常棒。它们比你能买到的任何一本关于云的书都要好。(还有建造者图书馆更好。)AWS 文档不仅设计用于参考,还用于阅读。读出来。

另一方面,一些类型的文档,如分步指南,非常适合在动手构建时参考。花大量时间阅读那些抽象的东西可能没有意义。所以带上你的常识。

然而。也有很多技术的文档确实是不完整的、过时的或完全错误的——特别是许多较小的开源项目。

原来你在这里有另一个选择,至少对于 OSS 项目是这样:*阅读源代码。*不确定一个模块做什么,它的边界情况是什么,错误代码是什么意思?阅读源代码并找出答案!这可能比在文档中寻找答案更快(而且肯定至少一样准确),即使文档非常好。

如果你以写代码为生,阅读别人提供的、经过实战检验的代码——不仅仅是你自己团队的 PRs 确实是你能为你的职业生涯做的最具变革性的事情之一。因为当你回答眼前的问题时,你也会从在各种有趣的约束下工作的专业程序员那里学到风格、组织和技术。说真的。读取代码。

(然后,如果它是开源的,也许可以考虑贡献一些文档!)

我能从这一切中得到什么?

如果你在一段持续的时间内——比如说几年——持续阅读一组目标文档,同时积极实践该技术,你将能够创造奇迹。这是一个承诺。

让我们再次回到贾里德·肖特的例子。(是的,我问过贾里德,他很大方地同意让我在这篇文章中透露他的秘密。)作为 AWS 商店的工程师,Jared …

  • 每周从头到尾阅读一份 AWS 服务的文档。
  • 在他的日历上记下了每天的时间。
  • 专注于他在工作中实际使用的服务(他告诉我,到 2021 年为止,他已经浏览了 Lambda、AppSync 和 Step 函数的所有文档)。

Jared 已经这样做了了,一周又一周。这种平淡无奇的承诺让他像这样表演书呆子魔术:

如果你不想花时间阅读整个 Twitter 帖子,让我为你总结一下。

  1. 一位经验丰富的 AWS 工程师遇到了一个奇怪的行为:AWS Lambda 似乎在执行代码,而它不应该这样做。他在推特上发布了求助信息。
  2. 其他有经验的工程师看一看,然后说,“哈。怪怪的。”需要明确的是,这不是 RTFM 的案例。这是一个不小的问题,即使有解决方案,也不是众所周知的。有人开始向 AWS 员工寻求建议。
  3. Jared 走进来,立即给出了一个答案:Lambda 在其启动序列中触发了一个错误,并重置了执行环境。Jared 猜测这一点,尽管他从未遇到过这种特定的情况,因为他已经在 Lambda 扩展的文档中内化了一个路过的引用—一个完全不同的特性—,并且直觉地认为底层行为一定是相同的。
  4. AWS 员工确认 Jared 是正确的。
  5. 杰瑞德的传奇稍微变大了。猜猜下次出现奇怪的 Lambda 问题时,谁会被贴上标签而不是 AWS 员工

伙计们,这就是你成为 AWS 英雄的方法。或者至少是你工程队的英雄。这就是如何从发展云技能,到晋升、出名、获得报酬和晋升。

不要通过多年低效的试错来等待知识来找你。去拿吧。最方便、最全面的获取地点一直就在你面前。

阅读文件。

云架构师迁移指南:技巧和工具

原文:https://acloudguru.com/blog/engineering/the-cloud-architects-guide-to-cloud-migration

在开始全职教学之前,我在一家专业服务咨询公司担任云架构师。在那里,我帮助客户构建令人兴奋的新的云原生解决方案,并且更经常地,将现有的工作负载迁移到云。

我学到了什么?你难道不想知道。。。等等!这应该是一个问题:难道你不想知道吗?如果是这样,请继续阅读云迁移领域的一些故事。这些经验教训将有望帮助任何向云(无论是 Azure 、AWS、GCP——任何云)迁移的人避免我多年来看到的一些常见的云迁移错误

云迁移经验教训

这些客户中的一些拥有传统的数据中心资产,并且不想支付保持硬件运行或至少在保修期内所需的额外资本支出。一些客户已经将多个应用程序部署到了云环境中,但是被鼓励从大提供商 A 迁移到大提供商 b。他们的共同点是使用各种方法和技术构建的异构系统组合,这意味着任何计划的迁移都不能被认为是微不足道的,并且需要一些付费顾问的技能。(谢天谢地,大供应商 B 通常会买单。)

云迁移类型

Types of cloud migration approaches including lift and shift, move and improve and rip and replace.

概括地说,有三种推荐的云迁移方法。

1.提升和移动

首先,我们有“提升和转移”。什么是提升和转移迁移您可能会问……使用这种方法,您只需进行最少的必要更改,就可以将工作负载的托管环境转移到新的云提供商。如果您现有的基础架构由一堆虚拟机组成,这是非常简单的。市场上甚至有产品承诺为您“不用手”地完成这种迁移工作,尽管根据我的经验,总会有一些手握着的情况。这种方法的缺点是,在迁移之后,您无法获得使用云技术的任何好处。你可能只是转向一种不同的账单。

2.淘汰并替换

另一个极端是“淘汰和替换”,您可以从头开始重建工作负载,使其成为“云原生的”。如果您能够在时间和技能发展方面进行投资,您将获得云的可扩展性和弹性为您提供的最大好处,并且您将有机会摆脱所有现有的技术债务。

3.移动和改进

介于两者之间的是“移动和改进”技术,在这种技术中,您可以对应用程序进行一些更改——例如,引入缩放或自动化——而无需全盘放弃。乍一看,这种令人愉快的方式似乎是最好的选择,但是如果做错了,你可能最终会保留所有的技术债务,并且最终得不到云原生的好处。

当简单的迁移顺利进行时

在某些情况下,升降并不是一件坏事。也许大提供商 B 已经承诺给你比大提供商 A 更少的账单,也许你有一个小的、非关键任务的工作负载。

我协助了一次这样的 35 台 Windows 服务器的迁移,使用了前面提到的由提供商推荐的“自动”迁移工具。这些服务器已经在大型提供商 A 中运行了几年,没有使用任何其他特定于云的功能,因此迁移应该相对简单。我们已经做好了事情不完全按计划进行的准备——毕竟,这是 Windows——果然,我们很快就在我们正在迁移的不同版本的 Windows 中发现了不同级别的提供商支持。

此外,我们发现一个非常热心的系统管理员已经离开了客户公司,他决定手动覆盖每台服务器上的所有默认网络配置,这完全破坏了自动迁移。然而,这些问题并不是不可克服的,在几个小时内,我们已经将该资产转移到一个新的、更便宜的、内置弹性稍强的云账单。

当复杂的迁移出乎意料地顺利时

一个特别的提升和转变让我吃惊,因为我们高估了它的复杂性。我们的任务是迁移大约 40 个不同的工作负载,这些工作负载已经部署到运行在数据中心的几个物理 Kubernetes 集群上。

作为一名年轻的工程师,我在处理臭名昭著的 container orchestrator 时有一点担心,但我很快发现,它所有假定的 YAML 复杂性只是让它更易于移植——这是它最初的设计目标。我们不得不为新的云提供商的负载平衡器手动重新配置入口,但大多数工作负载都无缝迁移到了新的托管 Kubernetes 服务。我们甚至有剩余的咨询时间,我们用来添加 CI/CD 系统,只是为了好玩!

“我们一直是这样做的”

“移动和改进”迁移并不总是有我们希望的结果。

工具、流程和技术在不断发展,但是团队和组织有时并没有随之发展。作为一家咨询公司,我们有一种在迁移期间“改进”某些类型的应用程序的首选方法,即应用配置管理,并尝试将它们重塑为可水平扩展的服务。

但是在应用程序复杂性的某一点上,我们选择的配置管理工具就是不能胜任工作,不管我们投入多少时间。我们致力于这种方法,这是一项长期艰巨的任务。回想起来,我们应该放下一点自尊,改变策略。

这不是您正在寻找的数据库服务

事实证明,假设是任何云迁移计划中的定时炸弹。

在相同的迁移过程中,我们只需将 MySQL 数据库从一个云提供商迁移到另一个云提供商。MySQL 是一个成熟、可信的数据库,具有坚如磐石的导入和导出能力,但我们被这个特定客户数据库的庞大规模所阻碍。尽管我们尝试了各种方法,但它继续以超过我们新提供商的任何可靠复制的速度增长。我们甚至认为,我们正受到原始宿主的限制,这是对迁移的第一个阻碍。

这一经历让我们震惊,因为在我们的共同努力下,我们已经有了如此多成功的 MySQL 迁移。但是,我们很快发现,问题的一部分是我们不仅仅是在迁移一个数据库,我们是在迁移技术债务的一个组成部分。客户使用 MySQL 存储时间序列数据,这对于关系数据库来说没有太大意义。它已经长成了一个臃肿的庞然大物,为了移动它,几乎需要完全解构。我们不能再假设我们的客户一开始就在“正确地”做事。

迁移智慧的临别赠言

我从这些经历中了解到,在大多数情况下,任何试图通过规避完整的云原生迁移来节省时间、培训或投资的做法,都只是在为自己购买更多的未来技术债务。

当然,每个组织和工作负载都是不同的,但是如果迁移到云的目的是利用云的独特功能——可伸缩性、弹性、敏捷性、复原力——您将会发现自己很失望,除非您完全接受云原生设计原则并进行一些急需的重构。

你不需要在第一天就“推倒重来”,随着时间的推移,有一些渐进的方法可以帮助你打破你的巨石。变革通常需要在团队中发生,而不仅仅是在技术领域。通过仔细的规划,您可以重新训练您的人员,重构您的代码,并将二者迁移到云成熟的地方。

想要更多云迁移的好处?看看这些:


成为现实世界的专业云架构师需要什么?

我们的Google Certified Professional Cloud Architect课程旨在高效教授专业云架构师认证所需的技能,即使用 Google Cloud 技术设计、开发和管理动态解决方案,以推动业务目标。看看您是否具备通过当今最具挑战性和最受欢迎的云计算认证的条件。


痛苦的云词典:AWS 最棘手的五个云话题

原文:https://acloudguru.com/blog/engineering/the-cloud-dictionary-of-pain-five-of-awss-toughest-cloud-topics

大家早上好;上课了!请坐好,系好安全带。

今天,我们来谈谈术语。亚马逊、谷歌和微软已经建立了足够多的云产品,如果你需要做一些与你的业务相关的事情,很有可能你可以在云上完成。但是伴随着这一系列全面的产品而来的是另一个挑战,不仅仅是知道何时何地使用它们:它们被称为什么,它们最初是做什么的。

确保团队中的每个人都能“谈论云”或对云有基本的了解可能是公司面临的最大挑战之一。我们将帮助您和您的团队实现基准云流畅度。为了做到这一点,我们建立了一个云词典,收录了您将遇到的一些最具挑战性的主题。鉴于这里的困难,我们决定将它命名为疼痛的云字典*。*

Cloud Dictionary

获取痛苦全云词典
说云不一定要硬。在我们的云指南中,你会找到一些最痛苦的云概念的简明定义的完整列表。


我们分析了我们平台上数千个测验问题的 270 万份回复,以确定一些最具挑战性的云基础架构主题。我们寻找学习者成功率低于 60%的问题,并根据这些问题中的主题,概述了 20 多个具有挑战性的主题,学习者有时可能难以解开——至少在一些特定的场景中。

今天我们将讨论五个最具挑战性的话题:亚马逊 SQS、弹性负载平衡、AWS VPCs、AWS Lambda 和子网。这个列表是我们在所有三个主要云平台上攻击的几十个术语和主题的子集:AWS、Microsoft Azure 和 Google Cloud。你可以在痛苦的完整云词典中找到我们对亚马逊棘手话题的完整演练。

所有这些都解决了,让我们开始吧!

AWS predictions for 2021

什么是 AWS VPCs?

可以将 VPC 想象为云中的虚拟数据中心。您的数据中心可能有可直接访问互联网的公共 web 服务器,以及一组只能通过直接连接或 VPN 访问的更专用的服务器。如果您正在处理特别敏感的客户信息(如受监管的信息),您可能会希望进一步隔离这些数据。

VPC 允许您提供 AWS 的一个隔离部分,您可以在您定义的位置启动资源。所以你可以把它想成一种处理你的私人信息的方式,而不会让这些机密信息接触到互联网。VPC 是放置您的数据库、应用程序服务器、后端报告流程的地方——任何您不希望直接暴露给任何有互联网连接的人的东西。

VPC 允许您设置 IP 范围、创建子网以及配置根表和网络网关。您可以创建一个连接到 web 的面向公众的子网,而您的后端系统是孤立的,根本没有连接到 internet。多层安全可以帮助您控制对每个子网的访问,这就是所谓的“深度防御”。每个 AWS 帐户都会为您提供一个现成的默认 VPC,但您可能会想要设置自己的帐户以提高安全性并进行自定义。

为什么很难?

你基本上是在试图保持一些信息的安全和远离互联网,同时将面向互联网的服务连接到网络上的这些信息。那就复杂了!请看这个流程图:

好的,这是很多。

我们才刚刚开始。所有这些因素都是为了保护你的信息。但是有了这些箭头,你可以看到有很多地方会出问题。当你在配置一个定制的 VPC,但没有很多网络方面的专业知识时,整个过程会变得特别棘手;例如,在亚马逊 VPC (虚拟私有云)内部署无服务器的多区域、主动-主动后端。

仅举一个例子:VPC 之间没有可传递的对等关系。你可以让一个 VPC 人和另一个 VPC 人谈话,但是如果那个 VPC 人和第三个人谈话,第一个人就不能和第三个人谈话。如果 VPC A 能和 VPC B 说话,B 能和 C 说话,A 还是不能和 C 说话!越来越多的人开始质疑他们是否需要一个 VPC。毕竟,“零信任”网络和无服务器架构的兴起已经将更多的工作负载移出了专用网络,转而依赖良好的授权策略(如 AWS IAM)。

但现实是,任何试图将传统服务连接到云的人都可能需要实现 VPC(T1),毕竟这是唯一与旧数据中心(T3)中的私有网络(T2)对话的方式。

我们的学习者错过了 50.3%与 VPC 相关的难题。

给我来个硬的!

您的公司希望其附近分支机构的内部网络安全地连接到其总部的 amazon 虚拟专用云 VPC 环境中启动的实例。以下哪个建议的解决方案是正确的?

27%的学习者答对了这道题。下一个!

什么是 AWS LAMBDA?

AWS Lambda 允许您在一个称为“执行环境”的小型计算设备上运行代码,甚至比 EC2 实例更抽象。(这就是为什么基于 Lambda 的系统通常被称为“无服务器的”:那里的某个地方仍然有服务器,只是你不必知道或关心它们。)

您可以通过点击网站上的按钮或上传照片(或者云专家讲座)等事件来触发功能。例如,当你与 Alexa 交谈时,你的问题可能不是查询特定的关系数据库来检查响应。相反,它可能通过 AWS API 网关向 Lambda 函数传递请求。这些 Lambda 函数可以触发另一个 Lambda 函数。再一次,在非常经典的 AWS 时尚中,它是一路向下的 Lambdas。

明确地说,如果用户分布在多台服务器上,这种扩展不同于自动扩展。一百万用户访问你的网站可能会引发一百万个 Lambda 事件。1 个用户和 100 万个用户调用该动作之间的差异是成本的函数,而不是速度的函数。您只需在应用程序执行代码时支付费用。

为什么很难?

这是一个完全不同的范例!

Lambda 函数的运行时间限制很短,严重依赖事件驱动的编程,并且与一些遗留技术不兼容。然而许多人认为无服务器架构是应用程序的未来。出现这种情况有很多原因。但是从商业角度来看(特别是如果你有团队公司卡),主要原因是无服务器架构可以极大地节省成本。

Lambda 呼叫在 100 万次请求内是免费的,此后每 100 万次请求只需 20 美分。这还不包括您释放的所有系统管理员时间。从这个角度来看:通过在后端使用无服务器和 Lambda,我们在一个云专家这里为数百万用户提供服务的计算成本变成了一个舍入误差。如果你因为任何原因看到了将部分业务转移给 Lambda 的机会,你很有可能应该这么做。

我们的学习者 48%的时间错过了与 Lambda 和无服务器相关的难题。

optimize cloud bill

弹性负载平衡

什么是弹性负载均衡?

这就像它听起来的那样:一个物理或虚拟设备,旨在帮助您平衡多台服务器之间的网络负载。您有多种方法来规划自动缩放,通常有三种选择:

  1. 应用程序负载平衡器可以看到应用程序内部及其发出的请求。应用程序负载平衡器非常适合于为您做出明智决策的扩展引擎。
  2. 当您需要关注性能时,网络负载平衡器工作得最好。这些负载平衡器在连接级别运行。
  3. 经典负载平衡器只是传统的弹性负载平衡器。如果你不在乎 AWS 如何路由你的流量,这是一个便宜的选择。(亚马逊很大程度上反对这些。)

为什么很难?

两个原因:

  • 您首先必须选择最佳的负载平衡器,然后您可以启用许多特定的功能来使这些负载平衡器更加高效。一如既往,会有权衡。挑战在于最大化您从云配置中获得的价值。应用程序负载平衡器最适合运行在第七层的 HTTP 和 HTTPS 流量。应用程序使用网络负载平衡器来平衡 TCP 流量,在连接层(第四层)工作。传统的平衡器可以为 HTTP/HTTPS 应用程序使用第七层特定的特性,但是它不是应用程序感知的。
  • 一旦您选择了一个负载平衡器,您就必须解决如何将您的流量路由到您的各种 EC2 实例。这些实例可能跨越 AWS 疼痛字典的多个可用性区域,并与不同的负载平衡器相关联。但是可以智能地路由流量,以优化每个 EC2 实例的性能。

以下是您必须解决的一些顶级配置:

  • STICKY SESSIONS: 您可能希望确保一个用户只绑定到一个 EC2 实例——比如他们正在将信息保存到磁盘。但是通过使用粘性会话,您也可能最终得到未使用的 EC2 实例。
  • 跨区域负载平衡:您可能希望自动平衡所有 EC2 实例的传入流量,而不管您当前使用的可用区域。如果使用跨区域负载平衡,您可能会因为将流量发送到不同的地理区域而牺牲一些性能。
  • 路径模式:你可以根据 URL 路径智能地路由你的流量,比如 myurl.com/images.,但这也可能无法解释特定页面的流量激增——比如说,一些名人在你的图片页面上发布了一张图片。

我们的学习者有 53%的时间错过了与负载平衡器相关的棘手问题。

Using SQS with Lambda | AWS DevOps Pro

什么是 AWS SQS?

SQS 是 AWS 历史最悠久的服务之一,于 2004 年首次宣布。它允许您在等待计算机处理消息时访问消息队列来存储消息。亚马逊 SQS 使你能够分离应用程序的组件,并让它们异步通信(按照它们自己的时间表)。每条消息都被发送到一个服务,比如 Lambda 函数或 EC2 实例

那些解耦的组件可以将它们的消息存储在一个等待计算的防故障队列中。例如,如果您因为某种原因失去了一个可用区域,这将非常有用。如果一个 EC2 实例出现故障,该消息在队列中变得可用,从而使其他 EC2 实例能够接替这个空闲时间。

为什么很难?

如果你构建在 SQS 之上,你就在定义上创建了一个分布式应用程序:一个通过解耦的部分跨网络工作的应用程序。这带来了全新的设计和操作层面的考虑。您可以选择是创建标准队列还是 FIFO(先进先出)队列。两者都有一些优点:标准队列确保您的消息至少传递一次,并尽最大努力按照接收的顺序排列它们。但这是最大的努力,你不应该假定秩序!FIFO 队列按照收到消息的确切顺序传递消息。

消息被传递并保持可用,直到消费者处理并删除它。在这种情况下,队列中不允许出现重复项。SQS 还实现了可见性超时——实质上是队列在对下一个用户可用之前等待一个用户的时间。例如,假设一条消息对一个 EC2 实例可用,但在某个目标时间内没有被执行。然后,另一个 EC2 实例可以获取并运行该消息。但这也意味着 SQS 可能不止一次传递你的信息。

我们的学习者 49%的时间错过了与 SQS 相关的难题。

什么是 AWS 子网?

子网的简称,子网只是网络的一部分。创建 VPC 时,您将拥有一系列与特定可用性区域内的所有应用程序相关联的子网。我们将在特定的子网内配置资源,如 EC2 实例或 RDS 数据库,这些子网可以是公共的,也可以是私有的。公共子网有一个与互联网网关相关联的通往互联网的路由。公共子网也可以与其他公共子网通信。私有子网没有通往 internet 的路径,但是它们可以连接到 VPC 内的公共子网。

为什么很难?

一个子网不能跨越多个可用性区域。您可能会听到类似“一个子网等于一个可用区域”这样的话假设您决定在某个特定地区推出 VPC,在该地区,AWS 提供了一组可用区域。如果您希望保持某些信息的私密性,例如 RDS 数据库中的一组客户信息,您可以在一个可用性区域内启动一个私密子网。

但是,假设您想要在不同的可用性区域内启动一个子网(比如寻找一些冗余)。在这种情况下,该子网将无法与不同可用性区域中的专用子网通信。您的专用子网不会跨越多个可用性区域。因此,在确定如何处理灾难恢复时,这是一个重要的考虑因素。

我们的学习者有 49.1%的时间错过了与子网相关的难题。

我们希望在看完这些例子后,你会体会到云有多危险。它有自己的自定义词典,以配合其庞大的城市产品环境。

我们可以理解云有多复杂,并希望我们能提供一些指导。话说回来,我们没有写下规则。(嗯,问题是我们写的——对此我们真的很抱歉。)

你可以在痛苦的完整云词典中找到我们对亚马逊棘手话题的完整演练。你还可以在我们的 Azure 和谷歌云痛苦字典中找到它们的对等词——以及是什么让 Azure 和 GCP 变得如此独特曲折。您还会发现我们完整的方法。


希望提升您的云计算职业生涯?从云计算专家那里开始,看看实践如何帮助你掌握现代技术技能。

谷歌云最棘手的五个话题——痛苦的云词典

原文:https://acloudguru.com/blog/engineering/the-cloud-dictionary-of-pain-five-of-google-clouds-toughest-topics

你好!欢迎来到云 101。请坐好,检查一下你的安全带是否系好了。

谷歌云与 Azure 和 AWS 并列,是云计算的顶级平台之一。这是理所当然的——谷歌一开始就建立了许多现代互联网!它甚至在其基础设施中融入了自己的定制技术,如张量处理单元(或 TPU)。因此,虽然云之间可能存在差异,如 AWS 和 Azure,但 GCP 有许多独特的东西,可能会使它成为您工作的一个伟大选择。

但是,就像所有的云一样,有很多事情在进行,有很多服务可供选择。这些单独的服务都有特定的术语。有些很直观,有些可能有点混乱。但是除了知道它们是如何工作的,你首先必须知道它们叫什么。

在 ACG,我们希望教会世界如何使用云。这意味着首先要确保团队中的每个人都能“谈论云”——并了解在实施云工具时将面临的一些基本挑战。我们将帮助您和您的团队实现基准云流畅度。为了做到这一点,我们建立了一个云词典,收录了您将遇到的一些最具挑战性的主题。鉴于这里的困难,我们决定将它命名为疼痛的云字典*。*


获取痛苦的云词典

说云不一定很难。我们分析了数以百万计的回复,找出了最容易让人犯错的概念。抓住这个云指南,获取一些最令人头疼的云术语的简明定义。


我们分析了我们平台上数千个测验问题的 270 万份回复,以确定一些最具挑战性的云基础架构主题。我们寻找学习者成功率低于 60%的问题,并根据这些问题中的主题,概述了十几个具有挑战性的主题,学习者有时可能难以解开——至少在一些特定的场景中。

今天,我们将讨论云身份和访问管理、Google Cloud Run 和云功能、实例组、快照以及 VPC 网络和子网。这个列表是我们在所有三个主要云平台上攻击的几十个术语和主题的子集:AWS、Microsoft Azure 和 Google Cloud。你可以在痛苦的完整云词典中找到我们对谷歌云棘手话题的完整演练。

所有这些都解决了,让我们开始吧!

什么是 IAM?

WFH Security

身份和访问管理(IAM)是您云服务的第一道防线。基本上每个运行云操作的人都会把安全放在第一位——你也应该把它放在第一位。Google 通过 Cloud IAM 和 Cloud Identity 管理权限和身份以及访问管理。

Cloud IAM 是针对用户和服务的统一资源访问管理系统。身份可以有多种形式,比如谷歌账户、非托管账户、服务账户以及这些项目的集合——比如谷歌群组和 G-Suite 域名。

IAM 有三个关键要素。

策略:一组规则,控制谁可以使用特定的资源完成一项或多项任务。我们可以决定谁可以在哪些资源上做什么。

  • 角色:分配给身份或成员的权限集合。

  • 资源:编造,嗯,你的资源。它可以是您的项目、文件夹、云服务或这些服务的一部分,如实例或存储桶。

  • 谷歌将云身份称为一个漂亮的字母汤首字母缩写词,被称为“身份即服务”(或 IDaaS)。云身份始于带有独立管理门户的 G-Suite,但现在与 Google Cloud 集成。它的一个主要好处是它可以安全地允许组织外的人访问组织内的特定资源。它还支持单点登录(SSO)。

为什么我很硬?

大量的抽象!云身份为一个或多个谷歌云项目创建了谷歌所谓的“文件夹”。您可能为您的开发团队和现场团队准备了一个文件夹。您可以将策略应用到您的文件夹,其中这些文件夹中项目内的所有资源都从这些策略中继承权限。最重要的是,在管理安全性方面,IAM 可能很快成为您的一个失败点。

您的 IAM 策略的范围代表了可能会发生坏事的很大一部分。您可能错误地配置了授予第三方的资源权限,或者将策略设置得过于宽泛。或者你可能会完全丢失密码。设置具体、可靠的 IAM 策略是保护您的云操作免受违规和不良行为者影响的最佳方式之一。

一名云专家学员有 50.5%的时间错过了与身份和访问管理相关的棘手问题。

想学习或提升你的 IAM 技能吗?ACG 提供云课程和动手实验室,帮助你在谷歌云平台上深入探索身份和访问管理。


谷歌云功能 VS 云运行


Google Cloud Run brings containers and serverless together

App Engine 并不是谷歌唯一的无服务器产品。谷歌还有另外三个:云功能,云运行,和用于 Anthos 的云运行。云运行对事件驱动的代码进行操作。除了 App Engine,还得有什么东西来触发它们。你可以将云功能视为各种服务之间的粘合剂,无论它们是在谷歌云上还是在第三方上。它可以自动扩展,而且成本极低——谷歌会向你收取最接近 100 毫秒的执行时间费用。

你可以使用 Cloud Run 来运行容器化的应用,比如 Google Kubernetes 引擎中的那些应用。云运行还可以按需扩展,适合持续集成/持续交付。与 App Engine 不同,use 可以使用任何语言、库或二进制文件,甚至是完全自定义的东西。还有针对 Anthos 的 Cloud Run,它支持混合的多云应用程序。Anthos 的云运行在 Google Kubernetes 引擎上。您可以使用自定义域、集成日志记录和监控服务。

为什么很难?

Google Cloud 有很多无服务器服务!而且每一种都最适合不同的场景(包括我们之前回顾过的 App Engine)。让我们快速回顾一下:

APP ENGINE : HTTP 应用,比如现代 web 应用,托管前端、后端,或者两者都托管。

  • 云函数:事件驱动代码,像第三方 app 和 API 集成,比如 Twilio 和 Stripe。它还可以与物联网产品配合使用,进行实时处理、数据收集和处理。并且它集成了 Google Cloud 中的大量服务,使其能够很好地进行实时处理。

  • 云运行:基于容器的运营,包括成熟的技术栈。除了常规的强大网站之外,它对公司内部的应用程序也很有用。例如,您还可以使用它来创建由云调度程序任务每月创建的发票。

  • 针对 ANTHOS 的云运行:适用于企业级 CI/CD 管道,因此您可以持续构建新内容。它适合集成内部服务,在最接近客户的地方(或“在边缘”)执行您的应用程序。

  • 您的操作可能在一个、多个或一个都没有的情况下效果最佳。因此,在选择是否采用无服务器模式时,你必须确定最佳方案。

一个云专家学习者 48%的时间错过了与无服务器操作相关的难题。

想学习或提升您的云跑步技能吗?查看云专家的许多课程和动手实验,包括 Google 完全管理的无服务器平台【Cloud Run 的课程和实验。


什么是 GOOLE 实例组?


gcp courses

一旦你开始建立几十个,或者几百个谷歌计算引擎实例,事情可能会变得有点失控。您可以通过将实例分组来规避这里的复杂性——您可以尝试一次对一堆实例进行更改。Google 提供了两种类型的实例化组。

UNMANAGED GROUPS :具有不同配置的实例集合,您可以使用这些实例对现有配置应用负载平衡。

  • 管理组:可以作为一个单元管理的相同实例的集合。如果您需要一次对它们全部进行更改,那么将它作为一个实例组来运行会更有意义。如果存在健康问题,托管实例组将自动重新创建该实例。

  • 为什么很难?

两者各有利弊。如果您想要管理组的好处,您必须确保所有的实例都是相同的。您可能会遇到许多运行多个相同实例的场景!当您想要处理实例的自动伸缩和健康检查时,这使它变得友好和方便。

但是您可能会经常遇到使用非托管实例组的情况。它们不是统一的,所以你不会得到管理组的一些特性。如果运行非托管实例组,则不会获得自动伸缩或更新支持。但是您仍然可以启用一些批处理过程,所以您仍然需要对它们进行分组。

一个云专家学习者在 46.5%的时间里错过了与实例组相关的棘手问题。

快照

什么是谷歌快照?

一种主要的备份方法,在这种方法中,计算引擎拍摄实例或连接的磁盘的快照,从而创建该磁盘的备份。您可以在任何灾难恢复情况下拍摄该快照,并创建新的实例或磁盘。您可以在实例运行时创建一个 Google 快照。您可以在完全不同的区域中创建恢复的快照或实例,并且可以从引导磁盘或连接的磁盘创建快照。

为什么很难?

快照作为增量备份运行,可以为您节省大量资金。快照不会创建磁盘的新备份。相反,它是一个增量备份:第二个快照复制第一个快照的更改,第三个快照复制第二个快照的更改,依此类推。你通常想尽可能减少活动。

您可以在实例运行时创建快照,但您需要确保磁盘是一致的,并且在快照过程中不会发生太多变化。您可能想要暂停写入数据的操作或完全卸载磁盘。您还可能希望在没有数据更改日志或应用程序没有日志时安排快照。

一个云专家学习者有 50%的时间错过了与快照相关的棘手问题。

什么是谷歌 VPC 网络?

gcp

GCP VPC(据说速度快五倍)是一个虚拟化网络,为 GCP 资源提供 ipv4 连接,如基础设施即服务和谷歌 Kubernetes 引擎。它是所有其他网络功能的核心基础组件。VPC 创建虚拟化的全球网络实例,以消耗所有 GCP 位置的资源。这是一个在 Google Cloud 上实现的软件定义的私有网络——这意味着没有路由器、交换机、服务器,也不会被纠缠在一起的电缆绊倒。

这允许您快速定制和扩展您的服务,并且该网络内资源之间的所有通信都不会暴露给公共互联网。VPC 依靠谷歌全球网络进行连接,该网络被划分为 GCP 地区——或位于不同地理位置的数据中心。

谷歌还在 VPC 提供高级和标准网络层。GCP 还要求在特定区域(称为子网)分配 IP 范围。区域之间也可以通过允许这些网络之间通信的路由相互通话。谷歌云根据可用性区域分配所有这些基础设施。一个 Google 项目可以包含一个或多个 VPC 网络,在每个区域内创建配置。

在 VPC 中,您可以通过在一个区域内创建子网来消耗所有区域的资源。子网使用 Google 全球网络,在一个区域内构建子网。我们使用 VPC 将子网分配给一个、多个或所有区域。每个 IP 范围为我们在这些数据中心的基础设施提供 IP 连接。与其他云提供商不同,子网可以跨越一个区域内的多个可用性区域。

为什么很难?

虽然 VPC 存在于项目中,但是项目分隔了用户——而 VPC 分隔了系统。您可以使用共享的 VPC,它允许您将多个项目连接到一个 VPC 网络,使它们可以相互通信。

假设您在同一个项目中有多个 GCE 实例,但是跨越了许多 VPC。如果没有 VPC 网络对等,一个 VPC 中的资源无法与另一个 VPC 中的资源通信。但是,一个 VPC 内的资源可以通过多个区域内的专用网络进行通信。网络也有两层:高级和标准。

以下是一些不同之处:

PREMIUM-TIER DATA :通过谷歌的网络,用户的流量在最近的位置进入谷歌的网络,在全球边缘退出。这有时被称为“冷土豆”流量。

  • **标准层流量:**在您部署 GCP 资源的地区,通过对等网络、ISP 网络或中转网络通过谷歌的网络。这有时被称为“烫手山芋”流量。

  • 一名云专家学习者 42.2%的时间错过了与 GCP VPCs 相关的棘手问题。

我们希望在看完这些例子后,你会体会到云有多危险。它有自己的自定义词典,以配合其庞大的城市产品环境。

我们可以理解云有多复杂,并希望我们能提供一些指导。话说回来,我们没有写下规则。(嗯,问题是我们写的——对此我们真的很抱歉。)

你可以在痛苦的完整云词典中找到我们对谷歌棘手话题的完整浏览。你也可以在我们的 AWS 和 Azure 痛苦字典中找到它们的对等词——以及是什么让 AWS 和 Azure 变得独特曲折。您还会发现我们完整的方法。

You can find our full walkthrough to Google’s thorny topics in the full Cloud Dictionary of Pain. You can also find their equivalents—and what makes AWS and Azure uniquely tortuous—in our AWS and Azure Dictionary of Pain. You will also find our full methodology.

云专家挑战:AWS 机器学习

原文:https://acloudguru.com/blog/engineering/the-cloud-guru-challenge-aws-machine-learning

什么是#云谷挑战?在这里获得一些背景和更多信息

话题 AWS 上的机器学习
目标 用 amazon pagemaker 建立一个网飞风格的推荐引擎
结果 获得真正的机器学习和 AWS 技能,同时动手操作真实世界的项目,以添加到您的投资组合中
截止日期 2020 年 12 月 31 日

挑战步骤

你有没有想过网飞是怎么给你推荐电影的?我一直对幕后使用的机器学习技术和算法很好奇,这些技术和算法帮助我浏览了网飞上的数千部电影。

在这个挑战中,你将通过使用亚马逊 SageMaker 构建一个网飞风格的推荐引擎来提升你的 AWS 机器学习课程技能。无论你是第一次接触机器学习还是机器学习大师,这个挑战的某些方面都会让你的技能更上一层楼。所以,我们走吧!

你需要访问一个 AWS 环境和亚马逊 SageMaker 。作为 AWS 免费层的一部分,你可以免费使用亚马逊 SageMaker。如果你以前从未使用过 Amazon SageMaker,你可以免费构建和训练你的模型。如果你不熟悉机器学习,看看凯莎的科尔纳的第一个视频来了解一下速度。我还建议在开始这个挑战之前,探索一下 matplotlibscikit-learnk -means 学习算法。

1。确定用例并获取数据

确定你想推荐什么——是电影、课程、视频、商品还是其他。然后,找数据或者用自己的。有几个公共数据存储库,比如 AWS Marketplace 或 T2 的 UCI 机器学习存储库可能有你需要的数据。如果你想推荐电影,查看 IMDb 数据集下载你需要的文件。你可能会发现title.akas.tsv.gztitle.basics.tsv.gztitle.ratings.tsv.gz特别有用。

2.创建 Jupyter 托管笔记本

为了开始数据检查过程,您将在 Amazon SageMaker 上启动一个 Jupyter 托管的笔记本。你可以使用 Python 和各种数据科学库,如 NumPyPandas 的 DataFrame 来处理你的数据。

3.检查和可视化数据

获取数据的领域知识非常重要,这样您就可以轻松地检测到异常和异常值。有许多方法可以探索和了解您的数据。检查 Matplotlib

4.准备和转换数据

下一步是将数据转换成机器可以学习的格式。您可能需要将杂乱的数据文件合并成一个文件,删除空值,将字符串转换成数字,或者做一些功能工程

5.火车

现在您已经转换了数据,使用您选择的机器学习算法开始训练过程。该算法应该对你的数据进行聚类或分组,以便你能够提出建议。取决于你如何解决这个挑战,你可能会发现k-意味着集群是有用的。亚马逊 SageMaker 提供了一个k-means clustering算法或者你可以探索 scikit-learn版本

6.推荐

现在您已经确定了您的集群,请推荐产品。如果您推荐电影,这可能是 Python 代码,它分析集群以找到共性。一旦你理解了这些共性,你就能找到其他类似的电影来推荐。恭喜你走到这一步!

7 .。源代码控制

现在您已经完成了,将您的数据文件和 Jupyter 笔记本加载到 GitHub 以便我们检查您的推荐引擎。

8.清理资源

别忘了清理你的资源!至少,停止运行你的 Jupyter 笔记本,这样你就不会因为使用 Amazon SageMaker 而产生每小时的费用。

9.博客帖子

(非常重要)写一篇简短的博文,解释你的收获和应对挑战的方法。在 GitHub 上链接到您的项目,以便我们可以查看它。

当你完成的时候

你可以自己或与他人合作完成项目要求。欢迎在论坛或社交媒体上使用#CloudGuruChallenge 标签提问

当你完成项目的所有步骤后,在指定的论坛主题中发布你的博客文章的链接。然后,我将能够在 LinkedIn 上为你在这个项目中展示的技能背书:机器学习、AWS 和亚马逊 SageMaker。(您还将有机会赢得一些超酷的奖品!)

这项挑战将无限期开放,但要在 LinkedIn 上获得支持并赢得奖品,你需要在 2020 年 12 月 31 日之前在论坛上链接你的博客文章

最重要的是,#CloudGuruChallenge 是免费的,任何人都可以使用:你所需要的就是一个 ACG 免费会员来发表你的论坛帖子。

资源

准备好做一些谷歌搜索,但如果你是 ACG 会员,这里有一些资源可以帮助你更好地使用机器学习、AWS 和 SageMaker:

你不需要执行这些额外的步骤来在挑战中“宣布胜利”,但是它们帮助你的项目脱颖而出,并提供令人敬畏的额外学习。

  1. 对项目进行排序,以便向用户推荐最相关的项目
  2. 仅推荐用户尚未观看(或购买)的项目
  3. 将您的集群知识集成到前端应用程序中,以进行电影(或产品)推荐。

最终外卖

这个挑战将是一个探索机器学习的有趣方式!

我一直很好奇网飞是怎么给我推荐电影的。在给你创造这个挑战之前,我已经自己解决了!如果你是机器学习的新手,这会很有趣。如果你已经是一名机器学习专家,你将有机会使用亚马逊 SageMaker 探索云中的机器学习。我迫不及待地想在这个挑战结束时与你分享我的推荐引擎代码,并回顾你是如何解决这个问题的!

熬过这一关,你就能在下一次求职面试中拿出一个精彩的故事。祝你好运!

云十大:ACG 上搜索次数最多的云话题(2021 年 5 月)

原文:https://acloudguru.com/blog/engineering/the-cloud-top-ten-the-most-searched-cloud-topics-at-acg-may-2021

我们回顾了过去七个月来我们平台上的热门搜索,从八月份我们的 One Platform 发布到 2021 年 4 月。这种分析包括超过 100,000 个搜索,以确定哪些主题对我们的学习者最重要。

当我们在 3 月回顾我们的热门搜索主题时,我们看到 Python、Kubernetes 和 AWS 是搜索次数最多的主题。这个月也一样。虽然出现了一些新来者,但前五名基本保持不变——这恰恰表明了这些工具在云计算中的重要性。

但在这些顶级条款中,我们继续看到许多交易场所。Kubernetes 一直在争夺第一或第二名,而 AWS、Terraform 和 Python 则在争夺剩下的位置。


Cloud Dictionary

得到痛苦的云词典
说云不一定要辛苦。在我们的云指南中,你会发现一些最令人头疼的云概念的简明定义列表。


事不宜迟,以下是截至 4 月底我们的十大热门搜索:

谷歌云在冷板凳上呆了几个月后,本月重新进入我们的前十名。谷歌 I/O 计划于今年 5 月 18 日启动,因此我们可能会看到其云平台的大量更新。

不知道你到底在找什么?那么,为什么不去寻找一切呢?

自动化一大堆东西—IT、一致的配置管理、部署,通常不会破坏东西。似乎很简单,一个旨在修复 PEBKAC 现象的工具是最受欢迎的。

不言自明!我们(仍然)希望。

Docker 继续位于前十名的后半部分,尽管这并不一定意味着它的重要性低于其他热门搜索的云工具。Docker 仍然始终是我们的学习者关注的顶级开发工具之一。

Azure 继续保持甚至更强劲的势头。

想象一下,试着管理 VPC 里的所有东西。现在他们中的两个。现在两千。不好玩,对吧?好吧,随着应用程序不可避免地扩展到数亿用户,你真的需要自动化大部分工作。赞 Terraform。

所有机器训练的首选语言之一。随着机器训练在云技术上获得独一无二的地位,我们希望看到这一点在顶部持续表现。特别是,云提供商正在优化培训硬件,如谷歌的 TPU。

这是不言自明的。我们希望!

没有容器的生活是什么?根本不是生活。或者说,不是一种无障碍的生活。随着数亿人争相购买 Playstation 5,如果你的电子商务应用程序背后没有指挥,祝你好运。

这不一定是对云计算中技能和专业知识需求的全面看法。虽然在一定程度上代表了生态系统,但我们的搜索也是感兴趣的瞬间的快照。如果有任何这方面的优秀例子,那就是 Jenkins——一个不到十年的自动化工具——今年早些时候首次进入前十名。

因此,当考虑在构建云技术专业知识时将时间投入何处时,请始终考虑多个数据点。然而,我们确实希望我们的数据点至少也能帮助你决定把精力放在哪里。(如果你想把时间花在休息和/或在 Stardew Valley 建造一个农场上,这也完全没问题!)


希望提升您的云计算职业生涯?停止搜索,从今天开始学习。开始与云专家一起动手,掌握最受欢迎的技术技能。

以下是 2021 年人们在 ACG 搜索最多的内容

原文:https://acloudguru.com/blog/engineering/the-cloud-top-ten-the-most-searched-cloud-topics-at-acg

我们搜索的内容透露了很多关于我们的信息。那么 2021 年你搜索的是什么?等等。不是特指你。(那会有点令人毛骨悚然。)不,在本帖中,我们将涵盖过去一年中我们的学习者在 A Cloud Guru 平台上搜索最多的技术主题。

事不宜迟,下面是 2021 年 ACG 十大热门搜索话题——云。


通往更好职业的钥匙

从 ACG 开始通过 AWS、Microsoft Azure、Google Cloud 等领域的课程和实际动手实验室改变你的职业生涯。


This image has an empty alt attribute; its file name is TipsForTakingAzure_BlogHeader.jpg

10.蔚蓝的

我们已经看到微软 Azure 在过去一年左右的时间里在我们的平台上获得了巨大的动力,但它在我们的榜单上排名第十。随着时间的推移,我们预计它会获得更多的关注——随着更多的公司(尤其是企业)选择从云开始,Azure 和其他公司转向云计算战略。

你可以通过每周视频系列 Azure This Week 来了解 Azure 的一切。


This image has an empty alt attribute; its file name is download.jpeg

9.DevOps

不知道你到底在找什么?那么,为什么不去寻找一切呢?

DevOps 技能需求量很大,人们希望更好地了解晋升或进入这些角色所需的技能和工具。有道理!

如果你想了解或提升你的 DevOps 游戏,请查看我们的 DevOps 学习路径


Rube Goldberg Blog Header

8.詹金斯

一个新人出现了!詹金斯在 2021 年初首次出现在我们的十大搜索中。Jenkins 为开发人员提供了自动化部分软件开发的方法,如构建、测试和部署。金克斯。自动化是不是很棒?

好奇想接触詹金斯吗?查看我们的通过参加课程学习詹金斯。


linux

7.Linux 操作系统

Linux 运行着我们每天看到和使用的惊人数量的技术:公共和私人服务器、Roku、游戏控制台、NASA 太空机器人和大型强子对撞机。

想了解更多关于 Linux 的知识吗?我们掩护你!查看我们的 Linux 培训

刚刚开始?把你热爱 Linux 的眼睛放在我们的免费云培训课程的循环综述上,其中包括如何获得 Linux 工作Linux 操作系统基础


AWS predictions for 2021

6.自动警报系统

公共云之王不在我们的名单上,但它仍然是我们在各种内容类型中最受欢迎的话题之一,类似于哪个 AWS 认证适合我?AWS 认证解决方案架构师助理(SAA-C02) 这样的课程全年都很受欢迎。


Cloud Dictionary

得到痛苦的云词典
说云不一定要辛苦。在我们的云指南中,你会发现一些最令人头疼的云概念的简明定义列表。


10 Docker Security Best Practices

5.码头工人

Docker 是这样一个中流砥柱,它在列表中排名如此之高并不令人惊讶。Docker 一直是我们的学习者关注的顶级开发工具之一。

想获得 Docker 的实践经验吗?停止搜索!我们为您提供了深入的边做边学课程。


Ansible Tower

4.Ansible

自动化它。(一致!)配置管理。自动化部署。想象一下,自动完成以上所有工作并完全避免糟糕的配置。

全新的 Ansible?获取 Ansible 的介绍,或者查看通过做来学习 Ansible。


Kubernetes

3.库伯内特斯

没有容器的生活是什么?根本不是生活。或者说,不是一种无障碍的生活。随着数亿人争相购买 Playstation 5,如果你的电子商务应用程序背后没有指挥,祝你好运。

寻求了解 K8s 的更多信息?查看我们的 Kubernetes 小抄,获得学徒级别的深度潜入 Kubernetes ,或者在本月与 Kubernetes 一起跟上 K8s 混乱。


2.计算机编程语言

所有机器训练的首选语言之一。随着机器训练在云技术上获得独一无二的地位,我们希望看到这一点在顶部持续表现。特别是,云提供商正在优化培训硬件,如谷歌的 TPU。

想学习一些新的 Python 知识吗?获取免费视频云编程语言:Python 的 premier,或者查看我们的Python 开发简介课程。


Terraform Cheatsheet

1.将(行星)地球化(以适合人类居住)

想象一下,试着管理 VPC 里的所有东西。现在他们中的两个。现在 2000。不好玩,对吧?好吧,随着应用程序不可避免地扩展到数亿用户,你真的需要自动化大部分工作。赞 Terraform。

想了解更多关于 Terraform 的信息吗?查看我们的 HashiCorp 认证 Terraform 助理课程,或获取免费的终极 Terraform 命令备忘单


This image has an empty alt attribute; its file name is Which-GCP-path-is-right-for-me-A-Cloud-Guru-Blog-Header.jpg

谷歌云平台在哪里?

值得注意的是,我们没有看到的是谷歌云(GCP) 一直位居搜索关键词榜首。

虽然谷歌云作为公司的另一种选择正在增长——特别是当他们转向云计算方法来构建基础设施时——但与 AWS 和 Azure 相比,它仍有一些增长空间。

但是如果你要找的是 GCP 的技术,我们还是会帮你的!本月在我们的GCP视频系列中了解谷歌云的所有事情,查看我们对的概述,哪些 GCP 认证最适合你,或者浏览我们的 GCP 培训目录。

搜索趋势

甚至在 2020 年,几个话题仍然保持着惊人的一致性。具体来说,Kubernetes 和 Terraform 这几年一直是 ACG 搜索量最高的词。但这并不完全令人惊讶。容器和基础设施管理是云计算的一些最重要和最基本的原则。

还有一些我们称之为赛马的项目,借用政治投票(或者体育博彩,如果你喜欢的话)的术语。

我们已经多次看到对 AWS 和 Python 交易场所的搜索,直到 2021 年 2 月,Python 是我们搜索最多的术语。机器学习生态系统的大部分都建立在 Python 之上,而 AWS 仍然是顶级的云基础设施。

从 2020 年末到今天,对 Terraform 的兴趣从高到高。但是对 Linux、Ansible 和 Docker 的兴趣也增加了。而 Azure 搜索量略有下降。

看看这张时髦的图表,看看 2020 年 8 月至 2021 年 5 月之间的一些历史背景。

这一切意味着什么?

这不一定是对云计算中技能和专业知识需求的全面看法。

虽然在一定程度上代表了生态系统,但我们的搜索也是感兴趣的瞬间的快照。如果有任何优秀的例子,那就是 Jenkins——一个不到十年的自动化工具——在 2021 年 2 月首次进入前十名。

因此,当考虑在构建云技术专业知识时将时间投入何处时,请始终考虑多个数据点。

然而,我们确实希望这个数据点至少也能帮助你决定在新的一年开始的时候,你应该把精力放在哪里。

无论你用这些信息做什么,当我们开始新的一年时,记得花时间照顾好自己。对你来说,也许意味着提升你的云计算智商,让开始你的云计算生涯。但是这也可能意味着去散步——或者去 Stardew Valley 的一个农场。无论你在 2022 年做什么,继续保持牛逼,云大师们!

对这个列表有什么想法?你眼中有什么惊喜或不安吗?在 TwitterDiscord 上加入对话。


希望提升您的云计算职业生涯?停止搜索,开始学习!开始与云专家一起动手,掌握最受欢迎的技术技能。

Cron 守护进程

原文:https://acloudguru.com/blog/engineering/the-cron-daemon

使用 Cron 在 Linux 上调度周期性任务

Cron 是一个守护进程,用于调度你能想到的任何类型的任务。发送有关系统或程序统计数据的电子邮件、定期进行系统维护、制作备份或执行任何您能想到的任务都很有用。其他操作系统上也有类似的程序。在 Mac OS X 上,cron 已经被另一个名为 launchd 的守护进程所取代。在 Windows 上,你有一个恰如其分的名字“任务调度程序”。如果你渴望 Linux 的 GUI,基于 Gnome 的系统如 Ubuntu,包括 Gnome Schedule,它是 cron 的一个很好的前端。

Cron 守护进程,Crond

cron 守护进程使用 crontab 文件来指定运行什么任务以及何时运行。这些文本文件指定在特定时间间隔运行的命令。每个用户都可以拥有自己的 crontab 文件。还有系统范围的 crontab 文件,用于用户之间的协作或共享。cron 守护进程将检查存储在 var/spool/cron 中的用户 crontab 文件,以及存储在*/etc/crontab*&/etc/cron . d中的系统范围的 crontab 文件,它每分钟都会唤醒来执行此操作。

Crontab

Crontab 是用于列出 cron 守护进程使用的表的命令。我们也将用于加载 cron 守护进程的文件称为 crontab 文件。当我们使用crontab–e命令时,我们正在编辑 /var/spool 中的 crontab。这里的文件是不同的格式,不应该直接编辑。编辑 crontab 文件也称为创建 Cron 作业让我们从编辑我们自己的用户 Crontab 文件开始:klack@:~$ crontab -e

第一次尝试编辑 crontab 文件时,我们会被要求选择一个编辑器。Nano 被认为是最简单的编辑器。继续,通过输入 2 选择 nano。Crontab 现在将创建 crontab 文件的临时副本,并在 nano 中打开它进行编辑。nano 启动时,重复按 Ctrl-V 向下滚动到文件底部。您现在应该在新的一行上准备输入我们的第一个 cron 命令。

no crontab for klack - using an empty one< Select an editor.  To change later, run 'select-editor'.1\. /bin/ed<2\. /bin/nano        <---- easiest4\. /usr/bin/vim.tinyChoose 1-4 [2]: 2

Crontab Format

crontab 文件中的每一行都可以是一个变量定义或 cron 命令。不要忘记按回车键,用换行符结束最后一个命令。你也可以用%结束最后一句话。这是导致命令失败的最常见错误,在这种情况下,不会显示错误。Cron 命令有一个独特的模式,允许您指定自定义的重复时间。有五个字段用于指定运行的时间和命令。

Crontab Examples

(Minute 0-59) (Hour 0-23) (Day of Month 1-31) (Month 1-12) (Day of week 0-7) (Command)

这里有几个在不同时间间隔运行备份脚本的示例:0 5 1 * * ~/backup-home.sh我们在这里指定的是在每月的第一个日早上 5:00 运行 backup-home.sh 脚本。*表示通配符。在本例中,任务在一周中的所有月份和任何一天运行。0 5 1,15 * * ~/backup-home.sh在这个修改后的示例中,我们在月份字段中使用了一个逗号来表示我们希望这个任务在每月的 1 号(1 号)和 15 号^(12 号)运行。0 5 1 12/3 * ~/backup-home.sh在本例中,12/3 代表一个步长值。这意味着该命令将在每个季度的 1 号^(1 号)早上 5 点运行。* 17-20 * * * ~/backup-home.sh在这里,该备份脚本将在每天的 17、18、19 和 20 小时运行。* * * * * ~/backup-home.sh这个例子将每分钟运行一次。如果你认为你必须使用这个,请小心!*/2 * * * * ~/backup-home.sh结合这里的一些想法,这个命令包含一个步长值,每两分钟运行一次。这里我们使用了一个特殊的时间含义@reboot 将在每次重启后运行一次。您还可以使用其他特殊的时间关键字。以下是完整列表:

当你输入完预定的命令后,按下 Ctrl-Wenter ,将文件保存在 nano 中。然后按下 Ctrl-X 退出。Crontab 现在将检查文件中的错误。如果没有发现错误,那么 cron 守护进程使用的表将被更新,更改将立即生效。

@reboot     :    Run once after reboot.@yearly     :    Run once a year@annually   :    Run once a year@monthly    :    Run once a month@weekly     :    Run once a week@daily      :    Run once a day@hourly     :    Run once an hour

每小时一次,每天一次,每周一次,每月一次

为了方便使用 cron 作业,只需在/etc/中的这些目录中创建一个文件,任务将根据它所在的文件夹运行。然而,这样做让你对时间的控制更少(一周中的什么时候?肯定是某个时候)。

克朗。允许和 cron。否认

这些文件可能位于/etc 中,它们控制谁可以使用 crontab 命令。如果 cron.allow 存在,那么只有其中列出的用户(每行一个用户)可以运行 crontab。如果 cron.allow 不存在,则任何用户都可以拥有 crontab 文件,cron.deny 中列出的用户除外。如果这两个文件都不存在,则需要超级用户权限才能拥有用户 crontab 文件。

系统范围的 Crontab 文件

在较大的用户环境中,编辑/etc/crontab 或/etc/cron.d/中的文件可能更有好处。这些文件也由 cron 守护进程加载。在较大的用户环境中,协作用户可能希望在一个中心位置存储和查看所有 crontab 文件。/etc/crontab 是一个单独的文件,它包含一个额外的字段,即用户字段。这个系统 crontab 条目将以 root 用户身份运行。可以在/etc/cron.d/目录中创建任何名称的文件。许多软件包使用这个目录,因为它提供了更好的组织。

把一切都包起来

到目前为止,您应该能够通过脚本和 cron 守护进程(也称为 cron 作业)的组合来运行您能想到的任何任务。欢迎在下面的评论中留下任何问题。Linux Academy 成员可以在此观看讲师指导视频

By now you should be able to run any task you can think of with the combination of scripts and the cron daemon (also called cron jobs).  Feel free to leave any questions in the comments below.  Linux Academy members can view instructor led video here.

云迁移基础知识:数据、安全性、成本和培训

原文:https://acloudguru.com/blog/business/the-fundamentals-of-cloud-migration

在您开始云迁移之旅时?专注于建立五个基础——培训、连接、安全、监控和成本管理——可以帮助您克服减缓和破坏变革的障碍。

在我多年的 IT 咨询和服务工作中,以及最近在 AWS 的工作中,我看到了一个阻碍变革的共同惯性——FUD。恐惧,不确定,怀疑。

FUD 是人类的谬误;一个无法在这样的论文中解决的问题。但我会提供一些可能有助于减少惰性的知识,这样你就可以花更少的精力去证明为什么不能改变,而花更多的精力去建设——从而改变。

在这个博客的上下文中,改变指的是迁移到云。为什么我会交替使用“迁移到云”和“改变”这两个词?因为,就像一个强制函数,迁移到云会给你的组织带来一些属性的改变。必须的。

如果我听起来固执己见,那么我就是。这种观点源于看到太多的组织抵制这种变化,并且悲惨地未能获得云的好处。

还有,不要太纠结于“迁移”这个词。这不一定意味着完全依赖您钟爱的内部 It 基础架构。您可以放弃多少依赖取决于您迁移到云的动机是什么。

对于读者来说,在进入改变的步骤之前,有一个澄清:没有“容易”的按钮来迁移到云;任何云。您将生产工作负载迁移到云并不是因为这很容易做到,而是因为这是正确的做法

动机

如果你刚从漫长的低温睡眠中醒来,我来告诉你:在云上经营企业已经超越了“概念验证”阶段。每一个可以想象的垂直领域都有数以千计的组织在云上运营业务。

对于一些人来说,这可能仍然不足以成为迁移到云的理由。对于其他人来说,他们真的不知道如何在云上运营,或者如何组织自己以从这种变化中获得最佳收益。无论你的情况如何,我建议进行尽职调查,以确定你在云上的商业动机是什么。做这个练习不应该花费你很多钱。

这种尽职调查,如果做得正确,将形成强大的基本面,将向前支付。在许多情况下,这些动机应该直接来自你的组织目标或商业战略。

我不认为有一个绝对的框架或问卷来帮助确定你的动机。然而,有一条你需要遵守的规则——不要确定一项技术是否符合你的动机。你的动机应该是技术不可知论者,只关注你希望你的企业实现什么。不是如何。

问这样的问题:“我们是否希望在更短的时间内接触到更多的客户”,“我们是否希望更快地为我们的服务或产品添加功能”,“我们是否希望降低运营成本”,“我们是否希望提高运营的弹性”,等等。根据业务单位或地理位置,或者您的组织可能会被内部分割,您很可能会根据每个分割的重要性得到不同的响应。

在你领导的最高层,这些答案将需要叠加,以产生与组织的业务目标一致的最终动机排名。如果您还没有猜到,那么与您的业务和 it 领导保持一致是至关重要的。在这个阶段,我怎么强调团结全村的重要性都不为过。它可以帮助你避免一系列的问题,比如“大停滞”,“零钱袋”,最重要的是,沮丧的灵魂。

如果你在尽职调查中没有偏见,但仍然没有发现任何动机,那么退出()。求你了。不要让自己陷入“嘿,让我们去云吧,因为其他人都是云”的困境。

试运行您的云迁移基础

你会发现下面的技术细节是在 AWS 上索引的,我所熟悉的技术。其他云提供商可能也有自己的同等服务。

需要明确的是,这并不是云是否能为您的企业服务的试点。如果你过了激励阶段,它会的。我称之为试点,部分原因是我不知道更好的措辞,部分原因是我建议不要进行全面的项目,除非你已经建立了某些基础:培训、连接、安全、监控和成本管理。不管你的动机如何,这些基本原则都是有效的。

云流畅度培训

**训练:**还记得 FUD 吗?许多组织面临 FUD 逆风,因为他们没有花时间培训员工和领导者。可以说,这个基本原则是最重要的,也是经常被忽视的。我写了另一篇关于如何为每个人建立云流畅度的文章。事实是,云计算改变了你的构建方式。这是因为像 AWS 这样的云提供商在建立弹性、冗余、弹性、安全性和全球影响力方面投入了如此多的资本,以至于这些已经成为桌面上的赌注。因此,基于 AWS 构建的客户期望这些原语是默认的,并且不再束缚创新。

如果你认为云只是托管在其他地方的服务器,那么你需要在这个基础上努力。ACG、Linux 学院和您的云提供商(例如, AWS 培训)将提供培训课程和认证。有意识地建立一个培训计划,购买培训时间,给通过认证考试的员工报销费用——不要吝啬。

云数据迁移

**连接:**你需要连接到云端。您将在内部 IT 基础架构和云之间使用的连接类型会随着时间的推移而变化。与云的连接通常取决于以下因素:1)您将在云上运行的工作负载(即应用程序和数据)的类型,2)您需要的最小数据传输率/吞吐量(也取决于工作负载或使用情形),3)用户或客户的地理分布,4)现有的网络协议、网络设备及其部署,以及 5)数据传输位置的容差(即通过互联网还是仅通过云提供商的管道)。

培训您的网络工程团队连接到云是您应该尽早进行的投资。你会有的员工会得出结论,拥抱云=他们的出路。尽早培训他们有助于消除他们的恐惧,让他们认识到云是一种机遇,而不是威胁。

此外,可编程网络的概念、网络控制平面和数据平面的分离在云上得到了进一步发展。请记住,网络是基础结构,如果处理得当,它可以协调您的内部 IT 与云资源的存在。投资建设和运营网络的人员非常重要。

云迁移安全性

安全:如果你在经营一家企业,你需要认真对待安全问题。当您查看云安全基础知识时,可以通过操作、预防、检测响应的镜头轻松查看。云的好处是您不需要担心云的安全性,即物理安全性、基础架构安全性、主机操作系统和虚拟化。AWS 分享了他们所谓的共享责任模型,在该模型中,客户负责“云中”的安全。客户在云中的安全责任根据他们选择使用的 AWS 服务而有所不同。

云给了我们大量的创新和功能,但是在实施过程中经常被遗忘的一件事是云安全基础培训。参加我们的课程,该课程旨在向您介绍许多云概念,以及如何通过使用可用的工具来保护这些概念。

此外,云提供商都有一个访问管理工具。比如客户用来设置权限的 AWS 身份和访问管理(IAM) 服务。通常,您已经有了一个本地身份存储(如 Microsoft Active Directory ),您希望通过身份联合扩展该存储以供云使用。所有云提供商都已经建立了连接(或“信任”)您的内部身份存储到您的云资源的设计模式。这些将形成操作和预防的基本要素。

请注意,帐户的概念在云世界中非常普遍。在 AWS 中,帐户是一个信封,一切都在其中发生。AWS 开发了一套最佳实践(推荐)护栏,供客户在出售账户时使用。这些最佳实践被打包在一个名为 AWS 控制塔的服务中。控制塔让你出售帐户,同时符合这些护栏,因为你选择。

这是一个好主意,审查这些护栏,并建立您的帐户销售工作流程的权利,从一开始就去。从最低权限开始,随着增长按需添加。这些护栏构成了预防和检测的基础。这时,也回顾一下 AWS 组织。顾名思义,该服务允许您组织多个组织单位,在组织单位级别应用策略,将帐户作为成员附加到 Amazon GuardDuty 以进行持续监控,并创建关注点分离(开发关注点、测试关注点、安全/洁净室关注点等)。)

您还需要能够响应安全事件。安全不是你在飞行时建造的飞机。您需要使用 runbooks、IAM 和 AWS Security Hub 预先构建在安全环境中执行取证的能力。

最后一件事,无论你在这个基本支柱内做什么,请自动化。当谈到安全时,人类可能有最好的意图,但人类没有机制。自动化有机制。自动化可以支持规模化。自动化可以信任但要验证。当您编码时,安全性(以及扩展的遵从性)是最好的。安全设计(SbD)是您的好朋友。AWS 对 SbD 有一个定义的姿态。遵循 SbD,1)您定义“安全”对您来说是什么样子,2)您使用 Infra-as-code(如 Cloudformation 或 Terraform)来编纂这些标准,3)您通过仅允许使用精选服务(通过使用类似 AWS 服务目录的东西)来部署这些代码,从而强化您的基础设施、帐户和系统,以及 4)持续监控您部署的环境相对于您的安全基准的偏差(如使用 AWS 配置)。

祝你手动操作好运。

云监控

**监控:**监控会影响你抢先解决问题的速度(奇特的行话:MTTR——平均解决时间)。在您过渡到 DevOps(简单地说,在构建者和支持者之间的公平所有权)之前,您可能会有一个单独的 NOC 和 SOC 团队。传统上,这些团队坐在开发团队之外烟雾缭绕的密室中,只有在半夜出现问题或者地板上有披萨时,才会相互“交谈”。如果你不改变这种方法,你会阻碍创新,过一段时间就会停止扩展。但最终那是你的特权。然而,如果您使用我前面提到的变更的强制功能开始向 DevOps 过渡,那么监控应该和开发一样有趣。

监控覆盖了一些云区域。监控与您可能在云中使用的许多服务集成在一起(对于 Amazon CloudWatch,它集成了近 99 个服务)。在开发基础设施的过程中,你应该考虑基础设施、安全和成本管理监控。首次设置基础设施监控时,您可以选择默认的云提供商指标。在撰写本文时,AWS 内有大约 296 个默认的 CloudWatch 指标,涵盖弹性负载平衡器、EC2、弹性块存储、S3 和更多服务。在云迁移的早期,这些指标应该足以让您起步。我在上面提到了安全监控。至于 CloudWatch 中的成本管理监控,您可以按服务查看估计费用,但仅此还不够。接下来我将详述成本监控。

请注意,使用 CloudWatch,您将能够实现跨帐户、跨区域的监控,这使您能够创建单一监控平台,而无需切换帐户(AWS 中的区域是他们在世界各地群集数据中心的物理位置。区域有助于创建蜂窝基础设施,并具有内置冗余来克服故障。地域是一个自己的话题,也许是为了后面的。CloudWatch 还让您能够使用规则基于警报自动响应事件。这种能力可以显著降低您在生产环境中的操作复杂性。

云迁移成本管理

成本管理: 监控和控制云资源的成本必须是您迁移到云时要做的前两三件事。因此,通过使采购对每个人都平等,构建云环境变得很容易——点击在线协议。本节不涉及您可能与云提供商签订的企业协议以及您可能从该协议中获得的好处,但要知道每个提供商都有一个企业协议。

我将把重点放在你需要做的成本管理上,不管你达成了什么样的协议。成本管理可以从成本控制、成本分析和报告的角度来看。如果你在 AWS 上,注册使用 AWS 组织。这是一项免费服务,不仅能为您提供上述多账户安全和治理的诸多好处,还能让您注册合并计费。

从成本控制的角度来看,使用 AWS 预算。预算允许您按帐户(或大约 28 项服务)设置成本预算,以便在每月计费周期内费用达到设定的阈值时通知您。您还可以根据设置的使用类型来设置使用预算——在 EC2、S3 和 DynamoDB 中大约有 24 种。创建成本或用量预算时,您可以设置活动(称为预算活动),以便在超出预算阈值时采取自动措施。尽管此时您可以采取的措施有限,但它允许您将服务控制策略(scp)附加到特定的 ou 或帐户,例如,通过拒绝将新对象放入 S3 存储桶的权限,这是一种阻止成本流失的强大方法。

使用 AWS 成本浏览器(CE)从成本分析角度分析成本和使用情况。CE 可以让您了解预订情况(例如基于 EC2、RDS、Redshift、Elasticsearch 等计算资源)和合理调整建议。它还使您能够查看已购买预订的使用情况,以及您的购买预订覆盖了您的实际合格使用量。建议是前瞻性的,而利用率和覆盖率是事后的。AWS 中的成本分配标签(CAT)是我推荐使用的一个附加特性,实际上通过使用 infra-as-code 实现了自动化。cat 只是一个键值对,由您定义,被视为 AWS 资源的元数据。这些标签通过发出的使用情况进行传播,并最终出现在您的成本和使用情况分析(成本浏览器、预算、成本和使用情况报告)中,以便您能够以易于理解的方式查看和分析成本和使用情况。如果你喜欢的话,CATs 也大大降低了退款的复杂性。您还应该关注使用反应性标记治理,来标记那些不知何故错过了初始主动标记的资源。AWS 配置、标签编辑器和资源标签 API 可用于反应式标签。

最后,AWS 成本和使用情况报告(CUR)让您能够以最全面的形式查看使用情况和数据。帮我一个忙,请不要试图在月底使用 CUR csv 请与 Amazon Athena 集成,以便能够查询数据。

还有其他资源可以帮助您进行间接成本管理,如 AWS 可信顾问,它可以提供关于成本优化机会的报告。还有各种其他方法来阻止 AWS 资源的浪费并防止您过度配置,但这些方法主要与特定工作负载相关,可能不是基本的试点特定项目:预订和节省计划是获得特定类型服务的按需费率更大折扣的好方法。EC2 Spot 实例经常被忽略,但是如果您能够容忍错误,那么 Spot 实例可以为您节省高达 90%的按需费率。如果你相信科学中的艺术性,那么看看 AWS 成本异常检测,它通过你创建的情境化监视器使用 ML 检测异常,并警告你不要受到标签电击。S3 分析并可以使用生命周期策略将不常用的对象移动到较冷的存储中,从而降低内容的拥有成本。

结论

如果迁移到云看起来工作量太大,那么如果你做得对,确实如此。此外,在您的迁移之路上,您将到达里程碑,这些里程碑将为您的学习带来独特的挑战和机遇。这篇博客关注第一个里程碑——开始。随着您达到进一步的里程碑,将需要做出新的技术和业务决策。

运营工作的未来

原文:https://acloudguru.com/blog/engineering/the-future-of-ops-jobs

基础设施、运营、开发运营、系统工程、系统管理、基础设施运营、SRE、平台工程。只要我一直在做计算机,这些术语实际上就是同义词。如果我想告诉别人我的工作是什么,我可以抛出任何一个,并期望得到理解。

每个科技公司都有一个软件工程团队来构建软件,还有一个运营团队来构建运行软件的基础设施。在过去十年的某个时候,他们可能会将这个运营团队更名为“devops”或“SRE ”,但不管名字是什么,那都是我的团队,那些都是我的人。

但是,除非你是一家基础设施公司,否则基础设施不是你的使命。这意味着,您在基础设施工作上投入的每一秒钟,以及您在基础设施问题上投入的每一名工程师,都是对您核心目标的干扰。

更重要的是,这是一种越积越多的干扰。你在基础设施上花费的时间和精力越多,你的注意力就越分散,你就越剥夺了你应该投入到你的企业所要解决的问题上的时间和精力。

这并不新鲜。基础架构和运营总是分散您对核心业务问题的注意力。过去的情况是,每家公司都必须在硬件、数据中心、网络、操作系统、配置管理等技术堆栈上发展内部专业知识,直到解决其核心业务问题。基础设施和运营一直是令人分心的事情,但直到最近,它们还是必要的。达到目的的手段。

那么,有什么变化呢?如今,你越来越有选择的余地。当然,你可以构建所有的内部专业知识,但是每天都有越来越多的专业知识通过 API 被端上来。

这是否意味着运营不再重要,不再必要?远非如此。操作和可操作性比以往任何时候都重要。让我们来看看运营专业在高层次上发生了什么,我们面临的新挑战,以及这些将对我们的职业生涯产生的影响。

除了向云服务的更广泛的转变之外,以下是我们即将面临的一些重大转变。

从整体服务到微服务

关于微服务架构的运营需求已经写了很多。既然调用其他函数的函数涉及到一个网络跳跃,那么操作问题就是调试最琐碎问题时不可避免的一部分。微服务将游戏从“构建代码”变为“构建系统”,这将越来越多的代码编写推向了运营领域。

从监控到可观察

Prometheus 和 DataDog 等基于指标的工具是基础设施监控工具,而且是非常好的工具。当您负责基础架构时,您关心的问题是总量和趋势、阈值和容量。监控工具是这项工作的合适工具,因为这是了解您的基础架构是否健康,以及采取什么措施使其健康或保持健康的方式。 另一方面,可观察性工具*是为那些每天编写代码并将代码发送给用户,并试图检查和理解用户、产品和代码之间关系的人准备的。可观察性工具保留了请求的完整上下文。这让你可以切片、切块、梳理出新的相关性,以及按时间以瀑布形式查看事件(“跟踪”)。可观察性是你如何连接软件和实际业务影响之间的点,以及你的工程师的经验和你的用户的经验之间的点。 *】注意:许多监控工具试图将自己重新包装为可观察性工具,而没有首先构建必要的功能。 要说区别,请看这里的

从神奇的自动仪器到有目的的仪器

插装只是注释和记录代码的另一种形式。有一些工具承诺会自动为你做这件事,但是它们并不擅长捕捉意图..自动仪器可以告诉你大量的辅助细节,但它们不会让你推测建造它的工程师想要的商业价值。所以振作起来,编写你的代码。

Ops 已经死了。行动万岁。

运营团队正在步渡渡鸟的后尘,然而可操作性、弹性和可靠性从未像现在这样重要。运营工程师的角色变化很快,而且随着基础设施问题的出现,这一角色也出现了分化。在未来,以前自称为“运营工程师”(或 devops 工程师)的人将在两种角色之间进行选择,一种是强调 构建基础设施软件即服务 的角色,另一种是利用他们的基础设施专业知识帮助工程师团队更有效和高效地交付软件的角色……通常是构建尽可能少的基础设施。

如果你真心为解决基础设施问题而努力,那么你很幸运!—这种情况比以往任何时候都多。去加入一家基础设施公司。尝试众多公司中的一家——AWS、Azure,以及所有众多的开发工具公司——它们的使命包括构建基础设施软件,成为世界上最好的基础设施,并向其他公司出售专业知识。有些软件工程师喜欢构建基础架构解决方案即服务,甚至有些专家运营角色负责大规模运行和操作基础架构,或者大规模管理这些数据服务。无论你是不是开发人员,单独工作还是在团队中工作, Azure DevOps 培训可以帮助你组织你计划、创建和交付软件的方式。

否则,接受这样一个事实:你的工作包括 构建系统,使工程师团队能够发布创造核心商业价值的软件 ,这意味着尽可能少的基础设施。还剩下什么?

厂商工程

有效地外包基础设施的组件,并将它们编织成一个无缝的整体,需要大量的架构技能和领域专业知识。这种技能既稀有又被低估,尤其是考虑到对它的需求是如此普遍。想想吧。如果你在一家大公司工作,与其他内部团队打交道应该感觉像与供应商打交道。如果你在一家小公司工作,和其他供应商打交道应该就像和其他团队打交道一样。

任何想要在 SRE 领导岗位上有一个长久而充满活力的职业生涯的人,最好在以下领域投入一些精力:

  • 学会有效地评估供应商及其产品。问一些尖锐的、试探性的问题来衡量兼容性和适合性。确定哪些领域的摩擦你可以忍受,哪些是交易的破坏者。
  • 学会计算和量化你和你的团队的时间和劳动成本。为了专注于你的核心业务,尽可能无情地裁员。
  • 学会管理真实的拥有成本,并在内部倡导和教育正确的解决方案,尤其是通过管理高管和财务人员。
产品工程

基础设施的一大悲剧是,我们大多数人如何彻底地逃避了过去 20 多年来在管理产品和学习如何与设计师合作方面的教训。难怪大多数基础设施工具需要无休止的艰苦培训和认证。它们不像现代产品那样适合人类。

  • 我推荐一个速成班。将自己嵌入 B2B 或 B2C 功能交付团队一段时间。学习他们的节奏,学习他们的语言,吸收他们的一些本能。您将需要它们来平衡和融合您对架构正确性、扩展模式和救火的本能。
  • 你不必成为运输功能方面的专家。但是你应该像一个好的产品经理那样学习建立关系的要素。而且你必须对产品生命周期有足够的了解,这样你才能帮助调试和转移那些路线图毫无希望地纠缠在一起和路线图逐渐停止的团队。
社会技术系统工程

set 德沃普斯技能组合不可或缺的核心越来越多地围绕着打造和管理高效、有效的社会技术反馈循环,使工程师们能够自信地快速发布代码。你的工作不是说“不”或设置障碍,而是想办法帮助他们达到“是”。

  • 从拥抱释放开始。向部署渠道倾斜。最安全的 diff 是最小的 diff,你应该自动强制发货。优化测试、CI/CD 等,以便在合并到 main 时自动进行部署,以便一次只部署一个合并集,没有人工关卡,并且在开发人员提交代码的几分钟内一切都自动投入使用。这是你的圣杯,而大多数团队离它还很远。
  • 设计和优化随叫随到的轮换,公平、可持续地平衡工作负载,不会让员工精疲力竭。向管理层施加适当的压力,让他们在可靠性和修复方面投入足够的时间,而不是仅仅发布新功能。建立反馈回路,这样那些被提醒的人就有能力和动力去解决困扰他们的问题。理想情况下,你应该每次都呼叫做出改变的人。
  • 培养一种所有权和责任感的文化,同时在整个组织中宣扬无过失。欢迎工程师参与生产,并帮助他们愉快而成功地驾驭生产领域。
管理技术投资组合。
  • 可操作性是最长期的投资/技术债务的主要来源,因此没有人比运营工程师更适合帮助评估和分摊这些风险。与运行代码和多年来维护代码所需的巨大资源相比,编写代码实际上是免费的。
  • 迁徙中获得优异成绩。不要留下拖尾的、陈旧的遗留系统来支持——这对团队来说是一种可怕的消耗。将这种能量流失暴露给决策者,而不是让它静静地溃烂。
  • 不要写任何不必要的代码。或者添加任何不必要的工具。你的台词是,“这个工具的维护计划是什么?”
  • 教育和影响。游说将可操作性放在首位。对工作阶梯和平衡文档感兴趣。任何人都不应该被提升到高级工程级别,除非他们编写并支持可操作的服务。

这个世界正在快速变化,而且这些变化还在加速。现在行动是每个人的工作。很多工程师根本不知道这意味着什么,吸收了挥之不去的恐怖文物。我们的工作是消除行动人员灌输的恐惧。我们必须找到奖励好奇心的方法,而不是惩罚它。

现在是发展云技能和提升职业水平的最佳时机。

Charity Majors 是蜂巢的首席技术官,也是脸书的前产品工程经理。

布拉泽尔:升降镜头时钟

原文:https://acloudguru.com/blog/engineering/the-lift-and-shift-shot-clock-cloud-migration

时钟滴答作响。每个人都能听到。

我和一家生活在恐惧中的公司一起工作。担心他们的私人数据中心遭到破坏,不是因为黑客,而是因为天气。每当下雨时,服务器机架之间就会形成一滩滩的水。传说中甚至讲述了 7 月 4 日剩下的烟花存放在附近的公用壁橱里。整个地方就像一颗定时炸弹,时刻等待着毁掉他们的生意:滴滴答答。

不用说,“云原生”架构策略并不是该企业最关心的问题。他们必须逃离恐怖之屋,在时间用完之前搬进专业管理的数据中心。这是一个生存问题。

出于这个非常好的原因,Leaky Servers Inc .选择了一种“提升并转移”的云迁移策略:他们将他们的应用程序几乎原封不动地转储到 AWS 中,事先只进行了最少的培训和重构。

他们赶时间离开他们的数据中心。但是与时间的赛跑才刚刚开始。

升降档:拍摄

并非每个迁移故事都包含字面上的烟火。但是,您仍然可以发现企业出于各种原因选择“提升并转移”,而不是为云重新设计应用程序:

  • 迫切需要离开数据中心(因为您的服务器闹鬼,或者只是因为租约到期)
  • 希望获得一些云优势(可扩展性、更少的维护,甚至更低的成本),而不承担重新架构的全部风险和费用
  • 作为一种金融工程策略,将资本支出负担转移到运营支出
  • 作为采用云的第一块垫脚石,目标是在每个人都涉足云计算之后,采用一种更加云原生的方法

所有这些都可以成为转移支付的合理理由。每一个都有潜在的危险。

因为当你在 EC2 上放弃你的单片的、遗留的应用服务器的时候,你已经开始为你在云中成功的机会计时了。滴答滴答。你能听到吗?

升降移位拍摄时钟

你在为自己争取时间进行提升和转移迁移。是时候考虑你的下一步行动了,是时候训练你的团队了,是时候让企业相信云有价值了。但是那一次的账单很快就会到期,而且利率很高。

这是因为云不像您的旧数据中心那样运行。成本模式不同,技能也是新的。如果你改变了你的基础设施,却没有把你组织的其他部分也一起改变,你会发现你所缺少的能力正在悄悄的向你袭来。

你需要 SRE

云扩展得很快;它由短暂的资源和跨多个地理位置协调的黑盒服务组成,并生成大量遥测数据。从长远来看,应对这些挑战的唯一方法是自动化。站点可靠性工程的纪律在云的第一天可能看起来并不重要,但是你没有它的时间越长,它的缺失对你的伤害就越大。

你需要治理

您转向云计算是为了更好地了解 IT 支出,降低成本,更有效地管理风险。如果没有自动化、没有标记、没有隔离共享您的遗留系统的工作负载,您将如何做到这一点?如果您仍然像对待宠物一样对待云资源,持续合规性就不会发生。

你需要全面的文化学习

为了充分利用云,你需要了解云的人。提升和转移迁移有意延迟云能力的过程,通常有明确或未明确的假设,即团队成员会在此过程中获得新的技能。

但是这种情况并不只是发生。只要团队成员还停留在解决遗留应用程序的单调工作中,他们的云知识就仍然是临时的、有限的,不足以推动下一阶段的云发展。您必须有意识地延续云文化——通过认证培训、激励和积极努力来重构未来。

升降档不是稳定状态

你等待采用云原生思维模式的时间越长,这种转移贷款的复利就越大。因为你的工程师在等待业务赶上云的同时,必须做一些事情。

在缺乏适当的 SRE 的情况下,他们构建高度手动的、缓慢的、容易出错的操作程序,这会拖慢实现价值的时间MTTR

由于没有明确定义的云卓越中心,他们依赖于部落智慧和关于云如何运行的错误思维模式。

由于缺乏云原生治理和成本控制,他们像运行数据中心一样运行云:成本高昂。还记得你是怎么上云省钱的吗?让我知道在两年的工作量提升/转移后,情况如何。

每天,这些坏习惯变得更加根深蒂固。您不仅仅是将旧的遗留系统带到了云中。你正在围绕它们建立一个全新的不良实践和程序网络。随着这些暂时的权宜之计变成永久的,你会看到你最聪明的工程师离开去做不那么不正常的项目。

最终,如果你不能向前迈出云原生的一步,提升和转移所创造的积极价值将被它的负面影响所淹没

如果所有软件最终都变成了技术债务,提升和转移迁移就是发薪日贷款。这些好处是沉重的负担,你抓住它们越久,它们让你陷得越深。

所以如果你必须的话,就搬吧。如果您的数据中心着火,请立即转移!但是不要推迟真正的云转型。因为你在和时间赛跑。正如大规模变革项目 70%的失败率所证明的,时钟喜欢赢。

滴答滴答。你能听到吗?


用 ACG 认证加速器打破升降和移动拍摄时钟


Forrest Brazeal 是 AWS 无服务器英雄 和企业架构师,他领导了从初创公司到财富 50 强企业的云采用计划。

Linux find 命令

原文:https://acloudguru.com/blog/engineering/the-linux-find-command

哪项谷歌云(GCP)认证最适合我

原文:https://acloudguru.com/blog/engineering/the-path-to-gcp-certification

当谈到谷歌云(GCP)认证途径时,您会考虑哪些选择?这篇文章将讨论各种 GCP 云认证,每个认证涵盖的内容,它对你的职业生涯意味着什么,以及你如何设定(和实现)你自己的个人目标。


加速您的职业发展

从 ACG 开始通过 AWS、Microsoft Azure、Google Cloud 等领域的课程和实际动手实验室改变你的职业生涯。


我们将从一些关于认证的基本常见问题开始,然后逐一探究每个证书。准备好了吗?让我们开始吧!

谷歌云认证意味着什么?

谷歌的云认证是最强的认证之一。但是,就像亚马逊网络服务(AWS)认证(T1)或 T2 微软 Azure 认证(T3)一样,谷歌云认证并不是保证你在云事业中取得成功的神奇金券。

然而,如果你想在现实世界中有效地使用谷歌云平台(GCP),那么这些认证可以帮你做到这一点。如果你聪明的话。

获得谷歌云认证需要多少经验?

在最高层面上,谷歌的所有认证都只有一个目的。按照谷歌的说法,那就是“验证你的专业知识,展示你的能力。”

谷歌似乎认为你对认证的兴趣始于之后的*,你已经掌握了所有的技能。但是绝大多数人可能会通不过考试,因为他们还没有准备好——即使是那些已经使用该平台多年的人!*

这些认证比几乎任何人的真实世界经历都更广泛、更深入、更多样。所以人们——假设你是一个人,这也包括你——通常会把证书作为一个指南来学习他们自己背景中所缺少的技能。

有些人一开始就有丰富的经验,所以差距相当小。但是大多数人都有相当多的东西需要学习,才能足够全面地通过考试并获得证书。不管谷歌的意图是什么,这很好!在我看来,这实际上是认证的主要价值。


获得超过认证的查看 ACG 当前的免费云课程或通过我们的云技能评估测试您的知识。


谷歌云认证有哪些不同的角色?

当谷歌着手创建每一个认证时,这包括做工作任务分析的艰苦工作,以发现和分类影响那些不同现实世界角色的人的最重要的事情。

像云工程师、数据工程师、DevOps 工程师、网络工程师、安全工程师、机器学习工程师这样的角色——当然,有很多工程师。还包括云开发人员(我不确定他们为什么不直接称之为云软件工程师)。还有云架构师备受期待且特别赚钱的云工资

有哪些不同的 GCP 认证级别?

谷歌将认证分为三个级别:

基础

目前,只有数字云领导者是“基础性的”这个级别的证书“验证云概念和谷歌云产品、服务、工具、特性、优势和用例的广泛知识。”该证书非常适合担任技术角色的人,他们可以从了解云的基础知识中受益。

关联

云工程师证书被视为“准”认证。这是那些继续追求专业证书的人的理想起点,涵盖了“在 Google Cloud 上部署、监控和维护项目的基本技能”

专业

每个专业级认证都是关于一个特定的高级角色。谷歌的所有认证都有相当广泛的范围,但专业认证都比助理认证更深入——深入到围绕这些角色的技术和商业现实。

一位云专家还提供了几条 GCP 学习路径,非常适合初学者和那些希望将技能提升到更高水平的人:

要获得谷歌云认证,我需要知道些什么?

在我们继续之前,我想提出一个关于谷歌云认证的更重要的事情,那就是:谷歌的认证还要求你了解非谷歌的东西。

我的意思是,你很可能会得到与谷歌无关的考题。甚至那些做的也会包含非谷歌的东西。这是因为,请记住,每个认证都是基于现实世界的工作任务分析。并且没有现实世界的工作是 100%谷歌特有的。

要在任何角色中取得成功,您都需要能够使用相关的通用行业技术和最佳实践。此外,您还需要能够处理预先存在的技术——无论是用于迁移还是某种混合设置。

谷歌云认证有哪些不同?

因此,让我们来看看每一个证书,希望能让您对它有更好的认识,以及每一个证书对您的价值。

云工程师助理(ACE)

我们将从 ACE — 云工程师助理认证开始。不仅因为这肯定也是你应该开始的地方,还因为这可以说是谷歌最重要的认证。(我稍后会解释原因。)

云工程师助理是做什么的?

谷歌将助理云工程师定义为“部署应用程序、监控多个项目的运行、维护企业解决方案以确保它们满足目标性能指标”的人。此人拥有使用公共云和内部解决方案的经验。他们能够使用谷歌云控制台和命令行界面来执行常见的基于平台的任务,以维护一个或多个部署的解决方案,这些解决方案在谷歌云上利用谷歌管理或自我管理的服务。”

如何通过云工程师助理认证

王牌就是能够通过网络用户界面和命令行使用谷歌云平台。

该证书关注 GCP 最重要的基础。它包括系统的所有关键组成部分:处理、记忆和移动数据。

  • 处理 —当谈到您的系统如何进行处理时,这意味着像计算引擎这样的东西,可以根据您的需要运行和管理任意多的虚拟机。和 Kubernetes 引擎来运行和管理您自己的集群。和应用程序引擎,以减轻持续运营负担。

  • 记住 —当然,你的系统也需要记住数据,所以这意味着要很好地利用 Google 云存储来存储你的对象,并利用持久磁盘来存储你的虚拟机的数据块。但这也包括使用云 SQL 将数据库管理交给谷歌。或者通过让 BigQuery 存储和处理您所有的兆兆字节、千兆字节或千兆字节的数据,来突破大数据。。。猫咪视频?喵。(免责声明:我们不建议将您的猫视频存储在 BigQuery 中。正确对待那些猫咪视频,放在云存储里。)

  • 移动 — 但是猫的视频仅仅停留在谷歌的服务器上有什么用呢,对吗?你需要把它们移动到世界各地你和你的数十亿用户想看的任何地方!因此,你需要了解 VPC (虚拟私有云),以及它如何在全球范围内连接系统的各个部分,并让你的用户安全地使用它们。

  • 安全 —现在,说到谷歌云安全,这也非常适用于你如何在内部设置和管理你的系统。你需要了解项目和 IAM(身份和访问管理)如何帮助你保持一切井然有序,并让正确的人访问。

  • 管理 —当然,您还需要使用云监控、云警报和其他最初来自 Stackdriver 的操作工具来管理事情,包括确保系统的所有部分正常工作。此外,您还需要观察和分析支出,通过计费警报和导出来管理长期成本。

唷!但是,我刚刚列出的所有内容仍然只是皮毛而已!ACE 真的是一个全面的基础!我的意思是,不仅仅是因为使用 GCP,还因为任何专业认证。职业证书都是相当具有挑战性的,所以在你接受任何职业之前,有一个坚实的基础是很重要的。

为什么谷歌云工程师助理(ACE) 认证是最重要的 GCP 认证?

这就是为什么我强烈认为谷歌的 ACE 认证是最重要的 GCP 认证。这是两者的结合:

  1. 它指导人们日常使用 GCP 的能力。
  2. 这个认证是可以实现的。我的意思是,你可以通过学习获得这个证书。我说这些不仅仅是假设,因为我已经教过成千上万来自各种不同背景的学习者这些东西。当然,有些人比其他人容易,但如果你下定决心,这是可能的。如果他们能做到,那么你也能!

获得痛苦的云词典
说云不一定要努力。我们分析了数以百万计的回答,以确定哪些概念会让人犯错。抓住这个云指南获取谷歌云及其他最痛苦术语的简洁定义。


专业云架构师(PCA)

我们要介绍的第一个专业角色是专业云架构师谷歌云认证——部分是因为它是最通用的认证,部分是因为它非常受欢迎,部分是因为它是为所有其他认证和角色提供背景的好方法。

专业的云架构师是做什么的?

我们谈论的一切——我们在 GCP 制造的东西——都是软件系统。它管理一些数据流以达到某种目的。构建该系统就是要在一系列权衡中优化该系统,以增加价值,同时降低成本和风险。想做得更好吗?那么这个专业的云架构师证书正符合你的胃口。

用谷歌的话说,这个人“可以设计、开发和管理健壮、安全、可伸缩、高度可用和动态的解决方案来驱动业务目标。”

如何通过专业云架构师认证?

谷歌的专业云架构师考试将试图确定你是否真的能够成为一名成功的云架构师。。。这和决定你是否理解 GCP 是完全不同的事情。这主要不是关于工具的测试;这是一个关于角色的测试。这有很大的影响。

首先,它使这种认证更有价值。做到这一点意味着你实际上知道自己在做什么,我甚至可以说,这甚至是一个很好的指标,表明你是否会成为亚马逊的 AWS 或 T2 微软的 Azure 的云架构师!

并不是说你真的了解这些工具,而是你知道如何在专业环境中使用云——平衡权衡,管理 GCP 成本,保持安全,使其可维护,等等。这个思维过程适用于任何地方,尽管谷歌当然希望你使用 GCP!因此,在一篇关于谷歌云认证的博客文章中读到这一点可能很奇怪,但我认为这可能是一个非常有价值的证书,即使你从未使用过 GCP。

谷歌对此的描述是:

“通过对云架构和 Google 技术的理解,这个人设计、开发和管理健壮、安全、可扩展、高度可用和动态的解决方案来推动业务目标。云架构师应该精通企业云战略、解决方案设计和架构最佳实践的所有方面。云架构师还应该在软件开发方法和方法方面经验丰富,包括跨多云和混合环境的多层分布式应用程序。”

专业云架构师认证考试专业提示

  • 这方面的考试将包括一系列关于现实案例研究的问题。现在,你绝对应该阅读和研究这些对虚构公司及其云项目的描述——你应该在考试前这样做,这样你就不会浪费你有限的考试时间来做这些。

  • 就范围而言,该证书包括 GCP 的所有产品和服务!但是,谢天谢地,它不需要你知道每一个细节。技术深度明显比所有其他专业证书浅,因为 PCA 的真正重点是业务和架构。

专业云开发人员(PCD)

说到所有其他证书,让我们继续看一下专业云开发者证书,我认为这是谷歌通用证书中的最后一个;其他人都更加专注。

现在,我说这个专业云开发者证书是通用的部分原因是因为谷歌作为一家公司,非常关注开发者。从谷歌的角度来看,几乎所有从事技术工作的人都是开发人员——只是有些人比其他人更多地处理程序代码。我承认,他们已经开始意识到,并不是每个组织都像谷歌那样构建自己,但谷歌仍然将开发视为一切的核心。

在谷歌看来,架构师是首席开发人员,他们自己并不写那么多代码。运营人员——包括 DevOps 工程师和站点可靠性工程师——是编写软件来管理运营活动的开发人员。数据工程师是开发人员——好吧,我在这里超越了我自己。让我们再来关注一下专业云开发者证书。

一个专业的云开发者是做什么的?

以下是谷歌对 PCD 的评论:

“专业的云开发人员使用谷歌推荐的实践和工具构建可扩展且高度可用的应用。此人拥有云原生应用程序、开发人员工具、托管服务和下一代数据库方面的经验。专业的云开发人员还至少精通一种通用编程语言,并擅长生成有意义的指标和日志来调试和跟踪代码。”

如何通过专业云开发者认证

在上面的一点中有很多要解开,但我认为最简单的高层次总结是 PCD 制造东西——构建人们使用的实际系统。这肯定包括用某种编程语言编写一些程序代码——这个证书中的一个领域就是这样:安全地调用服务 API,编写自己的服务 API,等等。

但是我认为这里最重要的一点是关于托管服务。就像强大的编程语言意味着您只需编写很少的实际代码就能完成工作一样,托管服务将这一点带到了下一个级别,我的意思是下一个抽象级别。有效使用托管服务——比如云存储、云发布/订阅和云运行——可以对软件项目产生巨大的影响。

事实上,正如弗雷德·布鲁克斯在其颇具影响力的著作中所写的那样,没有银弹:

构建软件最根本的解决方案就是根本不去构建它。每天这都变得更容易…我相信,大众市场的发展是软件工程中最深远的长期趋势。”

鉴于他的论文接下来的部分正确地预测了对我们现在称之为敏捷软件开发方法论的需求,有很好的理由考虑他的建议。现在,我们有了提供如此惊人服务的公共云,他所预测的不仅仅是一个应用程序中的包,而是扩展到整个系统的大部分。

这样,专业云开发人员角色与专业云架构师角色重叠。开发人员不仅需要能够理解云原生架构;他们还需要能够自己创造那些系统设计——至少在某种程度上。

但是专业的云开发人员还包括对行业工具的熟练程度。在您的系统中构建和测试应用程序的工具。持续部署它们的工具—CI 和 CD。和工具来管理他们的绩效。

现在,所有这些东西还包括相关的最佳实践,而不仅仅是孤立的工具,并且在 DevOps 团队环境中运行。因此,这位专业的云开发人员也应该了解专业的云 DevOps 工程师所做的大部分事情——只是比我们将在下面讨论的 DevOps 证书的内容更具一般性。

获得关于专业云开发人员认证考试的更多详细信息。

专业云开发工程师(PCDOE)

专业的云 DevOps 工程师是做什么的?

以下是专业云开发工程师证书的官方简介:

“专业的云 DevOps 工程师负责高效的开发运营,可以平衡服务可靠性和交付速度。他们擅长使用谷歌云平台来构建软件交付渠道、部署和监控服务、管理事件并从中学习。”

许多人听到“运营”这个词,然后就把其他的都忽略了。坏主意!这个角色——尤其是在谷歌的世界里,也被称为网站可靠性工程师——做的不仅仅是这些。它处理操作的方式也完全不同。

其核心是,整个 SRE 的角色就是让整个团队更快地做出更好的软件。如果你把所有的时间都花在灭火和追逐自己的尾巴上,那是不会发生的。所以它利用软件开发的力量来放大你的时代的影响。

过去的情况是,运营人员打开硬件包装,设置和配置硬件,设置应用程序依赖关系,安装从开发人员那里获得的应用程序。不再是了。

相反,sre 编写声明性清单文件和过程性脚本来完成所有这些工作——包括错误处理、日志记录和版本控制以及软件工程师用来控制混乱的所有其他事情。因为 sre 是软件工程师——只是让整个开发团队更快做出更好软件的内部工程师。

但是它也超越了开发人员使用的东西,因为它还包括有意的风险管理。注意我没说规避风险。这个角色不害怕风险,它拥抱风险!是的,有时要愿意犯错误,因为风险值得回报:你使软件变得更好,最终整体的努力实际上也花费了更少的时间。人们可以对此持怀疑态度,但这绝对是真的。

如何通过专业的云 DevOps 工程师认证

就这个角色和证书所关注的 GCP 产品而言,它们包括所有过去被称为 Stackdriver 的可观测性的东西:像云监控、云日志、云跟踪、云调试器和云分析器这样的东西。此外,CI/CD 之类的东西,比如云资源存储库、工件注册和云构建。基础设施作为代码,比如 Google Cloud Deployment Manager 和 TerraForm。

这个角色经常被误解,但当它真正被赋予成功的力量时,它绝对是团队中不可思议的一部分。如果你想更深入地了解这一点,以及它如何让你和你的团队受益,你可能会想去看看我就这个主题开设的课程:Google Professional Cloud devo PS 工程师认证途径介绍。这是一个快速的课程,会更详细地介绍角色本身,以及角色的背景。如果您感兴趣的话,这也是迈向专业云计算开发运维工程师认证的第一步。


后 COVID DevOps:加速未来 COVID 如何影响——甚至加速——工程团队的 DevOps 最佳实践?观看这个免费的点播网络研讨会与 DevOps 领导者进行小组讨论,我们将在后 COVID 时代探索 DevOps。


专业云安全工程师(PCSE)

我们都知道,每个人都对安全负责,必须尽自己的一份力量,对吗?(对吧?)虽然这是真的,但专业云安全工程师的角色每天整天都在处理安全事务——只是从一个任务到另一个任务的不同安全风格。

专业的云安全工程师是做什么的?

谷歌对这一认证的说法是:

“通过了解安全最佳实践和行业安全要求,此人利用 Google 安全技术设计、开发和管理安全基础设施。云安全专家应精通云安全的所有方面,包括管理身份和访问管理、定义组织结构和政策、使用谷歌技术提供数据保护、配置网络安全防御、收集和分析谷歌云平台日志、管理事件响应以及了解监管问题。”

嗯…“监管问题。”大家的最爱吧?也许不是。但它可能很重要,而且从做重要的工作中可以获得很大的满足感。不管怎样,这只是这个更大角色的一部分。

关键是这个人“设计、开发和管理一个安全的基础设施”——就像,整个事情。但是,他们仍然不是单独工作,因为这位安全专家在安全事务上领导团队。其余的描述只是为了给出更多的细节。

如何通过专业云安全工程师认证

在关注领域方面,这个 Google Cloud 认证当然非常强调 IAM,并使用资源层次结构将项目放入文件夹和组织中。此外,还涉及服务帐户、云身份、组和目录同步。

对于网络来说,谷歌非常重视 BeyondCorp 的零信任网络模型,并使用身份感知代理来实现这一点。但是使用基于网络的安全性作为额外的保护层仍然是非常合理的。纵深防御,对吧?因此,像防火墙、对等和云互连这样的 VPC 结构需要以一种支持安全连接的方式来建立。

在所有这一切中,所有的事物和每个人都必须拥有他们所需要的最低特权。

至于你存储的数据,你不应该需要任何法规来告诉你,收集不必要的客户详细信息,不安全地存储,然后让这些数据落入坏人手中,这是一个坏主意。对吗?数据泄露会破坏信任,通常会扼杀公司——所以这也是一桩糟糕的生意。所以你用 DLP API 编辑敏感信息;你将事物符号化;你用云密钥管理来加密和管理密钥;并且您可以使用对象生命周期策略使数据过期。等等。

最后,不仅仅是被动或预备性的安全措施。有时,您还需要采取措施来响应安全事件,如 DDoS 或零日攻击。

我还可以继续,但我希望你现在对这个角色的理解感到安全

关于谷歌开发者视角的补充说明

这里有一个有趣的事实:谷歌的第一个专业云架构师认证版本几乎是我们上面提到的所有其他认证的混合。(好吧,我们也将在这一点之后讨论一些,但主要是在这之前。)

例如,我第一次参加 PCA 考试时,一个问题让我调试了一段程序代码——我不记得是 Python 还是 Java 了——这甚至与谷歌无关!

这种类型的事情后来被转移到专业云开发人员考试中,PCA 现在更加关注架构。但我认为它向你展示了谷歌最初的思维模式,即技术专业人员都应该有软件开发的基础——至少在某种程度上。

不过,我不想让这个吓到你!

我只是想让你理解谷歌对许多现实世界角色的有趣观点,这样你就不会被基于你自己背景的看起来与你无关的东西所迷惑。我相信你也能学到他们期望的一些额外的东西,所以不要有压力!而且,老实说,我想你会发现这些东西中的大部分在事后都很有价值。

专业云网络工程师(PCNE)

接下来,让我们深入一个最真实的专业角色:专业云网络工程师

专业的云网工程师是做什么的?

谷歌表示,此人“在谷歌云平台中实施和管理网络架构…[并且]可能与设计基础设施的架构师一起在网络或云团队中工作。通过利用在实施 VPCs、混合连接、网络服务和现有网络架构的安全性方面的经验,此人确保使用命令行界面或 Google 云平台控制台成功实施云。”

在我们继续其他内容之前,我想对最后一个短语做一个评论。当然,重要的是要注意,角色和考试期望能够通过命令行和 web 控制台 UI 工作。但是我想指出的是缺少了什么:与过去的网络专家角色不同,这个角色从不与任何硬件交互。这都是关于软件定义的网络。网络工程师吧?

如何通过专业云网工程师

尽管谷歌云认证的总体描述看起来更像是“动手做”的人,而不是“坐下来想办法”的人,但这个角色肯定包括设计、规划和原型制作 GCP 的网络。事实上,这是考试指南中列出的第一个领域。

但是所有其他领域更多的是关于日常实现和管理的东西:

  • 配置和管理将一切连接在一起的虚拟私有云(或 VPC)网络。
  • 对连接到 VPC 的许多东西的网络方面做同样的事情,如虚拟机、GKE 集群、企业数据中心等等。
  • 我们谈了一点云安全工程师角色中涉及的网络内容,这些也包括在这里,但这位云网络工程师将它增加到了 11 个。DNS,BGP,TCP/IP,SSL,HTTPS,GKE IPs,NAT,VLAN,IPSec,VPN,SSH, CDN ,BBQ,LOL。(好了,最后那两个是我加的。但说真的,有很多细节要处理。)

创建虚拟专用网络和子网是在 GCP 使用资源或任何基础设施的基础。尝试我们的动手实验室,了解如何使用 Terraform 创建一个 Terraform VPC 和公共子网。学习以代码形式创建 VPC 和基础设施子网,以便在必要时测试和启动 GCP 资源。


这些细节超越了纯网络服务,因为这个角色也参与了一些 IAM 的工作。请记住,这都是软件定义的网络,因此所有访问控制都是集中管理的。这是非常强大的,许多移至谷歌云的保守派网络人士发现,与这些放大其影响的酷新玩具一起工作是一种乐趣。

专业数据工程师(PDE)

接下来,我们将深入了解是什么造就了专业数据工程师,或 PDE

专业的数据工程师是做什么的?

首先是数据,对吧?这显然是重点,但要问的问题是“为什么?”为什么我们如此关心这些数据?让我们再听听谷歌的说法:“专业数据工程师通过收集、转换和发布数据来实现数据驱动的决策。”

这就是:“数据驱动的决策。”作为一个行业,我们已经了解到数据中蕴藏着大量的商业价值,而这个角色的职责就是将数据挖掘出来,并将其介绍给整个组织。

他们继续说:“数据工程师应该能够设计、构建、操作、保护和监控数据处理系统,特别强调安全性和合规性;可扩展性和效率;可靠性和保真度;以及灵活性和便携性。”

这是一个很大的“面”因为权衡是每个 IT 角色的核心,当然也包括这个角色。

如果您正在处理数据,您显然必须尊重它所代表的隐私和安全问题,因此这与安全工程师的角色有点重叠。但是正如我提到的,安全确实是每个人的责任。与架构角色也有很多重叠,因为这个专业的数据工程师非常包括为整个数据生命周期设计所有大数据系统:接收、存储、处理、分析、探索和可视化。

如何通过专业数据工程师认证

就这个角色的核心 GCP 产品和相关的谷歌云认证而言,我认为有几个非常突出:DataFlow、DataProc、BigTable 和 BigQuery。

但这并不是说其他的不重要:比如 DataPrep、DataLab、Data Studio、云存储、云 SQL 和云发布/订阅。任何存储和处理数据的东西,真的。但这不仅仅是设置这些东西。这个角色还包括监控、维护、调试,并随着时间的推移增强这些管道。

这里,一个额外的要求是,这个角色还需要能够使用行业标准的非谷歌的东西——如用于 MapReduce 的 Hadoop 处理大型数据集和用于编写各种数据查询的 SQL。

现在,谷歌用来描述这一角色的最后一句话是:“一名数据工程师还应该能够利用、部署和持续训练预先存在的机器学习模型。”

因此,尽管有一个专门针对机器学习的特殊证书,但这个也绝对包括它。这意味着你需要理解 GCP 预先训练好的模型,比如视觉 API 和翻译 API。但也要通过人工智能平台之类的东西来训练自己的模型。此外,还有“中间道路”的“自动”API,如 AutoML Vision 和 AutoML Tables,其中 Google 完成了大部分繁重的工作,但您仍然可以参与培训。

然而,这里明显缺少的是从头开始设计你自己的定制模型来解决新问题;这更像是专业机器学习工程师的领域。

专业机器学习工程师(PMLE)

说到那个 ML 工程师。。。专业机器学习工程师可能是谷歌最新的认证之一,但我认为它可能会成为他们最有价值的认证之一——甚至可能吸引那些不打算使用 GCP 的人的兴趣。(嗯,反正不是还不是。)

专业的机器学习工程师角色肯定包括来自数据工程师角色的所有机器学习的东西,再加上更多。那么让我们更仔细地看看还有什么

专业的机器学习工程师是做什么的?

谷歌的报道称:

“专业的机器学习工程师设计、构建和生产 ML 模型,使用谷歌云技术和成熟的 ML 模型和技术知识来解决业务挑战。ML 工程师精通模型架构、数据管道交互和指标解释的所有方面,并且需要熟悉应用程序开发、基础设施管理、数据工程和安全性。”

“生产化”是一个有趣的词,但这里的关键是包含了设计和构建ML 模型,而不仅仅是像 PDE 一样培训和使用它们。

而且,正如它所说,这位专业的 ML 工程师“精通”机器学习的所有方面。各方面。不仅仅是与谷歌云相关的东西。这是关于这个证书最重要的事情。当然,这是谷歌云认证——而且确实需要相当多的 GCP 能力。但这也将考验你,不仅仅是谷歌云特有的东西。我觉得这个机器学习工程师大概是非 Google 内容最多的 Google cert 了。这也让它在 GCP 以外的地方也有很好的影响力,如果你需要使用多云或混合云的话。

如何通过专业机器学习工程师认证

考试指南的第一部分是关于以一种可以由 ML 服务的方式构建业务问题和数据,所以除了你应该遵循的人工智能原则和实践之外,这与 Google 没有任何关系。有趣的是,你还需要能够识别出应该而不是使用 ML 的情况。

当涉及到设计机器学习解决方案时,你必须考虑一些更谷歌的东西,比如如何使用 IAM 和密钥管理等东西在你的管道中建立安全和隐私。

您还需要知道何时应该使用虚拟机、容器、GPU 和/或 TPU 进行培训。

你还需要能够利用人工智能平台取得良好的效果,包括它可以进行分布式训练的方式,它内置的算法,以及它的功能,如可解释的人工智能和连续评估。

同样重要的是,要知道什么时候正确的决定是使用全自动预训练模型,如语音到文本或推荐人工智能,或者看看什么时候 AutoML 版本提供了最佳的权衡。构建您的 ML 解决方案是考试的一个重要部分,因为它是该角色的一个重要部分。

展望未来,重要的是能够使用 Cloud Dataprep 来探索和清理您的数据,然后使用我们涵盖的所有数据工程工具来处理它——当然,与专业数据工程师证书相比,这里没有那么深入和强调。需要明确的是,这意味着像 BigQuery、Cloud Dataflow 和 Data Studio 这样的东西。

最后,让你所有的机器学习梦想成为现实需要将一切付诸实践。这意味着实现你的架构,但也包括自动化和监控。在一个理想的世界里,你不仅做任何手动培训来更新你的模型,你甚至有一个 CI/CD 系统——MLOps——来自动测试和部署新模型。所以 DevOps 工具(比如云构建和云监控)在这里也很有趣。

在我提到的所有东西中,一切都浸泡在开源 TensorFlow 的慷慨服务中。张量流所有的东西!

这项基础级认证可能是谷歌有史以来将人们带入 GCP 生态系统的最重要的事情。你可能认为我在夸大其词,但我没有。

Azure 有 AZ-900 微软 Azure 基础AWS 有认证云从业者(CCP) ,现在 Google Cloud 有云数字领袖,目前正在测试中。

极少有人用这样的认证来证明自己的能力。相反,几乎每个人都用它们来指导自己的学习。人们有学习的兴趣——无论是因为他们的工作需要还是因为他们只是好奇——像这样的非技术性入门级认证是一个完美的开始!这是可以实现的,有重点的,有价值的,没有威胁的。是纯粹的善良!

如果你是一个非技术人员,那么像这样的认证可以为理解云如何工作建立一个真正有价值的框架——无论是一般的公共云,还是具体的谷歌云。您需要了解 it 如何在降低总成本的同时大幅提高业务灵活性。

云数字领导者是做什么的?

正如谷歌所说,“云数字领导者可以清楚地表达谷歌云核心产品和服务的能力,以及它们如何让组织受益。云数字领导者还可以描述常见的业务用例,以及云解决方案如何支持企业。”

谷歌还在考试指南中指出,这个人需要理解一些关键的权衡,包括“成本与责任之间”和“比较云服务时管理水平与灵活性之间”的权衡它还涉及到谷歌和我们之间管理安全和我们建立的系统的其他方面的共同责任。

如果你是技术人员,你为什么要关心这个认证?

想象一下,如果你工作中的每个人——每个人——都真正了解云的基础知识。你可以花更少的时间和精力来重新解释同样的事情,并纠正基于技术如何工作的假设的误解。能够说“同一种语言”让团队理解技术并就技术进行明智的交流。


Terraform Cheatsheet

No need to run in terror from Terraform. Download our Ultimate Terraform Cheatsheet for a handy guide to helpful syntax.


谷歌云认证途径

这可能看起来有很多要理解,但是不要担心试图记住所有的事情。更重要的是,你可以利用这种理解来塑造自己的前进道路。记住,这里的重点是帮助你在工作中取得成功。证书是你可以用来帮助你更容易、更快地实现这一目标的唯一工具。

那么,你的目标是什么?你想说什么?

入门指南

  • 我对云和技术一无所知。
    连云是什么都不懂?每个人都必须从某个地方开始,ACG 将带你迈出进入科技世界的第一步。通过像云计算简介谷歌云概念这样的课程,让你的头脑了解云和 GCP 的基础和概念。这些课程足够短,可以观看一个午休时间(而且它们完全是免费的云培训)。从那里,你应该准备好深入了解云数字领导者,然后是 GCP 助理云工程师课程

  • 我刚刚闯进来。
    如果你只是想打入云端,你应该从云端数字领袖开始,然后是助理云端工程师(ACE)证书。以此为目标将迫使你对云的一般工作方式,尤其是 GCP 的工作方式有一个真正全面的了解。这并不容易,但这是可能的,也是值得的。

  • 我从一些技术经验开始。
    如果你已经有了一些经验——无论是 GCP、AWS、Azure,还是一般的 IT——你应该从云工程师助理(ACE)证书开始。它会为所有这些 GCP 的东西确定并填补你基础中的漏洞。如果你已经在这方面做得很好了,你会比没有你背景的人做得更快。但是,在进入任何专业级别的角色之前,花时间和精力来处理这个问题确实是值得的。许多好心的超级聪明的人都有盲点(未知的未知),在他们解决之前,这些盲点会破坏他们的效率。不要让骄傲击垮你。

建筑师

无论是因为他们看过薪水报告,还是因为他们想要声望,或者因为他们只是喜欢创建令人敬畏的系统,许多人都想成为一名专业的云架构师。显然,这里的下一个目标是专业的云架构师,对吗?嗯,也许吧。

  • 更有经验的 PCA如果你已经在设计和构建软件系统方面有很强的背景,这可能会很好。因为 PCA 是如此广泛和通用,一个非 GCP 的架构背景仍然很有帮助。我听到这个小组的人报告说,谷歌的 PCA 考试对他们来说比其他一些云考试更容易,因为它不太涉及技术细节**。**

  • PCA 经验少没有背景,从 ACE 直接到 PCA 可能会相当坎坷。这个群体中的许多人报告说,PCA 是他们见过的最难的考试。这里有太多的东西需要学习,你可以用一块垫脚石来帮助你跨越这道鸿沟。特别是,我建议你考虑下一个专业的云计算开发工程师证书,介于 ACE 和 PCA 之间。这仍然是一个严肃的问题,但是我想说相比之下,它更容易理解,并且在一个更窄但重叠的范围内培养你的能力。

  • 超越 PCA无论哪种方式,一旦你真正获得了专业云架构师认证,就有一个很好的理由继续发展你的 GCP 技能,特别是通过(1)跟进专业云安全工程师,以确保你充分掌握关键技能,以及(2)看专业数据工程师,以便你真正了解企业如何最好地利用他们的所有数据。

开发者

接下来,让我们考虑一个开发者的角色。就像我提到的,你真的应该从 ACE 开始,但是接下来呢?

对开发者来说,最有价值的下一个证书是专业云开发者证书,简称 PCD。惊喜,惊喜,对吧?

如果你做,你可以在 PCD 之前做专业云开发工程师证书,但是如果你想在 PCD 之后做也可以。但是我绝对建议每个开发人员学习并真正理解 DevOps站点可靠性工程

说真的,在这个时代,一个不了解 DevOps 和 SRE 的开发者完全限制了他们的职业生涯。

现在,在这些更核心的开发者证书之后,你仍然可以从继续前进中获得价值。下一个很好的选择是专业的云安全工程师 Google Cloud 认证,因为对安全性认识不足是开发人员面临的最大和最危险的问题之一。

之后,因为开发人员的角色,特别是通过向工具箱添加新工具而被放大,我建议看看专业数据工程师和专业云架构师证书。至少,更好地理解这些广泛的工具集意味着您可以自信地在团队协作中使用它们。

但是开发者角色真正令人惊奇的是它变得越来越独立!由于这种更高抽象技术的放大效应,单个开发人员现在通常可以完成过去需要整个团队才能完成的工作。如果你设法让自己达到那个位置,你就准备好了。在我提到的所有角色中,我相信这是最有前途的一个。

DevOps

我一直在唠叨的一件事是关于 DevOps 有多重要。对吗?这是有原因的。

软件开发,作为一个行业,已经通过几十年的时间学会了如何以及如何不做事情。其中一个非常重要的经验就是敏捷。如果你从未读过敏捷软件开发宣言,你应该读一读。(说真的,这将花费你不到一分钟的时间——即使你阅读速度很慢。)但关键是成功的软件开发需要一个很短的反馈回路,这就是 DevOps 的全部!

一个没有任何 DevOps 专业知识的软件开发团队就像一个没有守门员的曲棍球队:当然,你可以做到,但是你处于非常不利的地位。(冰球迷注意:那是没有守门员的比赛,不是 拉着守门员。)

因此,要想成为 DevOps 工程师,首先要像往常一样从 ACE 开始,然后直接进入专业的云 DevOps 工程师证书。这本身就很棒。但是…

在那之后,更深入地说,我认为通过深入开发运维的开发方面并瞄准专业的云开发人员,你会获得很多价值。开始的时候,有些可能会觉得有点难,尤其是如果你以前没有做过任何编程的话,但是我相信你能做到。作为一名 DevOps 工程师,提升你肯定会做的开发是非常有价值的。

之后,专业的云架构师是打开整个云世界的一个很好的方式。DevOps 和站点可靠性工程都是关于管理风险的,所以更好地理解云系统是如何工作的非常有益。

安全性

以安全角色为目标是另一个有用的选项。不出所料,在这里,我的推荐是先从 ACE 开始,然后直线进入专业云安全工程师。搞定了,对吧?嗯,也许不是。当然,这绝对是一个坚实的成就!毫无疑问!但是安全角色也可以有专门的领域!

比 PCSE 更深入的一个选择是挖掘专业的云网络工程师。这是我绝对推荐的一个场景。如果你有现成的网络背景,或者在一个大量使用基于网络的安全性的组织中工作,那么这可能是一个很好的补充。一般来说,要么利用你的背景使自己作为安全工程师更有价值,要么充实一套高度相关的技能。

安全工程师的另一个好帮手是专业的云架构师。安全感来自于在良好理解的基础上运用你的大脑,而不是来自于做某些活动或打勾(对吗?)因此,推动 PCA 是一种非常好的方式,可以确保您正确理解您需要帮助保护的系统中将出现的产品和服务的范围。

数据/机器学习

如果你想专注于数据——我不是在说布伦特·斯皮内——那么你将会在谷歌云中如鱼得水。数据是 GCP 真正闪光的地方。现在,如果你认为我会再一次从 ACE 开始,那么你就错了——对!当然啦!ACE 永远是关键的基础。但是对于数据,我觉得你下一步应该是专业的数据工程师。然后之后就是专业的机器学习工程师。

现在,如果你处在一个几乎只做机器学习或者完全不做的情况下,那么你可能很想调整一下。但是如果你真的不确定有什么更好的计划——或者即使你确定——那么这是一个非常合理的计划。PDE 确保您对更广泛的数据生命周期以及如何利用它有一个非常坚实的把握,而 PMLE 在毫无疑问是利用数据的最重要方式方面深化了这一点。

在您处理好以数据为中心的东西之后,要么专注于与专业的云开发人员一起完善您的开发人员方面,要么与专业的云架构师一起更深入地研究架构,这可能是一个好主意。无论选择哪一种,您都将学到更多关于如何在数据工程的两个重要方面做出良好的权衡:设计系统和实现它们。

后续步骤

现在,如果我在给你提供一些想法之前停下来,告诉你,你个人可以如何推进谷歌云认证的所有这些信息,我会是什么样的向导呢?

一位云专家已经整理了大量的培训材料和支持系统来帮助你。我们的使命是教会世界云!特别是,我们想教!我们有认证培训课程,加上其他课程,独立视频,练习考试,指南,一个 ACG 官方不和谐服务器,论坛,等等。

但我认为对你最有用的是将所有这些联系在一起的东西:学习 Pa t hs

对于上面描述的大多数角色,我们的平台向您展示了您可以用来学习它的所有不同材料的有序路径,包括课程、证书和许多可选材料。

哦,因为你必须亲自动手并真正使用云,所以一个云专家会员资格包括大量的实践实验室,让你可以直接进入云,在没有真正风险的情况下做真正的事情。这些实验出现在课程和学习路径中,或者你可以独立完成。

我希望这篇文章能帮助您在云中找到成功,但我也希望在您云学习之旅中能再次与您交流。

也许你会选我的一门课。也许你会在 LinkedIn 上和我联系。也许我们最后会聊到不和谐。如果您有任何问题或意见,请联系我们。照顾好你自己——保持出色!

在 YouTube 上订阅一位云专家的每周谷歌云新闻(以及其他云提供商的新闻)。您也可以在脸书上喜欢我们,在 Twitter 上关注我们,或者在 Discord 上加入对话!

寻求云可用性

原文:https://acloudguru.com/blog/engineering/the-quest-for-availability

你的顾客有几个 9 的幸福?

在这一系列的文章中,我将带领你设计、构建和部署一个大规模、多区域、主动-主动架构——同时尝试打破它。

想法是将系列分成以下结构:

  1. 对可用性的追求
  2. 如何在 AWS 上搭建多区域主动-主动架构
  3. 构建多区域、主动-主动无服务器后端
  4. 在 VPC 内构建多区域、主动-主动无服务器后端
  5. 多区域重装:用全局加速器和应用负载平衡器加速无服务器应用

当然——随着我继续写作并得到你的反馈,结构可能会改变,所以请在下面的评论中随意引导这个故事的进程🙂

系统故障

我最喜欢的影响我对软件工程思考的一句话来自 Amazon.com 的首席技术官沃纳·威格尔。

"失败是必然的,随着时间的推移,一切终将失败."

的确,我们生活在一个混乱的世界里,失败是一等公民。失败通常有三种味道:早期故障、磨损(或晚期)故障和随机故障——每种故障都出现在任何给定系统生命周期的不同阶段。

System failure rate curve

The “bathtub” curve of failure

早期故障本质上与编程和配置错误有关(打字错误、变量突变、网络问题,如端口和 IP 路由错误配置、安全性等……)。随着时间的推移,随着产品(或版本)的成熟和自动化的开始,这些失败自然会减少。

注意:我刚刚提到了“自动化启动”!这实际上意味着你必须使用自动化来体验早期失败的这种自然下降行为。手动操作不允许这种奢侈。

磨损(或晚期)故障 —你经常在网上读到软件系统不像物理组件,不会出现磨损故障。嗯,软件是运行在硬件上的,对吧?即使在云中,软件也会受到硬件故障的影响,因此应该加以考虑。

但这还不是全部,磨损故障还常常与配置漂移有关。事实上,配置漂移是灾难恢复和高可用性系统失败的主要原因。

随机故障基本上是随机的。一只松鼠在啃你的电缆。一条鲨鱼在横跨大西洋的电缆上刷牙。一个醉酒的卡车司机瞄准了数据中心。宙斯在玩闪电。别傻了,随着时间的推移,你最终也会成为可笑的意外失败的牺牲品。

创新的活力

我们生活在一个速度至关重要的环境中——我的意思是能够持续交付软件。为了让您了解大规模部署的速度,Amazon.com 在 2014 年大约进行了 5000 万次部署,也就是大约每秒 1.6 次部署。

当然,并不是每个人都需要这样做——但是软件交付的速度,即使是在较小的规模上,也会对客户满意度和保留率产生很大的影响。

那么速度如何影响我们的“浴缸”故障率曲线呢?现在看起来更像是一只准备生吞你的鲨鱼的嘴。事实上,对于每一个新的部署,新的早期故障都会抛给你,希望能让你的系统崩溃。

*system failure rate for high-velocity deployments

How it really looks like.*

正如您很容易注意到的,这在追求高可用性和创新速度之间产生了矛盾。如果您缓慢地开发和发布新功能,您将会有更好的可用性——但是您的客户可能会从其他人那里寻求创新。

另一方面,如果你走得很快,并代表客户不断创新,你就有失败和停机的风险——这是他们不喜欢的。

为了帮助您理解您在与什么做斗争,我列出了可用性的*“臭名昭著的 9”*表。让那张桌子下沉一分钟。

*99 availability

“The Infamous Nines” of Availability*

如果您想拥有“5 个 9”的可用性,您一年只能承受 5 分钟的停机时间!!

几年前,我亲身经历了整个系统的崩溃。我们的团队花了几分钟才意识到发生了什么,又花了几分钟让我们振作起来,降低我们的心率,又花了几个小时来完成完整的系统恢复。

吸取的教训:如果有 __ 人参与恢复你的系统,你可以和臭名昭著的九个说再见了

AWS 的可用性与可靠性

那么,为了客户的更大利益,如何协调可用性和速度呢?有三件重要的事情,即:

  1. 构建高度可靠和可用的系统
  2. 工具、自动化和连续交付
  3. 文化

简单地说,你的目标应该是让团队中的每个人都有足够的信心把事情推向生产,而不害怕失败。

最好的方法是首先拥有高度可用和可靠的系统,拥有合适的工具,培养一种接受和珍惜失败的文化。接下来,我将更多地关注可用性和可靠性。

值得记住的是,一般来说,一个可靠的系统具有高可用性,但是一个可用的系统可能非常可靠,也可能不太可靠。


云中的可用性是什么?

假设您有两个组件,X 和 Y,可用性分别为 99%和 99.99%。如果将这两个组件串联起来,系统的整体可用性会变得更差。

*understanding availability in series

Availability in series*

值得注意的是,普遍的观点“链条的强度取决于最薄弱的环节”在这里是错误的——链条实际上恶化了。

另一方面,如果您采用这些组件中最差的一个,在这种情况下,具有 99%的可用性,但将其并行放置,您会显著提高整个系统的可用性。工作中的数学之美,我的朋友们!

*availability in parallel

Availability in parallel*

从中有什么收获?组件冗余显著提高了可用性!

注意:您也可以使用以下等式计算可用性:

*Calculating system availability

Calculating System Availability*

好了,现在我们理解了这一部分,让我们看看 AWS 区域是如何设计的。

AWS 可用性区域和可用性分区

AWS 网站,您可以阅读以下内容:

AWS 云基础架构围绕区域和可用性区域(“AZs”)构建。区域是世界上有多个可用性区域的物理位置。可用性区域由一个或多个独立的数据中心组成,每个数据中心都有冗余电源、网络和连接,位于独立的设施中。

由于一张图片相当于 48 个单词,AWS 区域看起来就像这样。

*AWS availability calculation

An example AWS Region with 3 AZs.*

现在你可能明白为什么 AWS 总是谈论和建议它的客户跨多 AZ 部署他们的应用程序——最好是三个。就因为这个等式,我的朋友们。

AWS is advising its customers to deploy their applications across multi-AZ

通过跨多个 az 部署您的应用程序,您可以神奇地提高可用性,而且只需很少的努力。

*Increase availability by deploying your application across multiple AZs.

Application deployed across multi-AZ using a Elastic Load Balancer (ELB).*

这也是为什么使用 S3、DynamoDB、SQS、Kinesis、Lambda 或 ELBs 等 AWS 区域服务是一个好主意的原因——它们默认使用多个 az。这也是为什么使用在多 AZ 部署中配置的 RDS 很简洁的原因!

可用性的代价

不过要记住的一件事是可用性确实有相关的成本。您的应用程序需要的可用性越高,所需的复杂性就越大,因此成本也就越高。

*The price of availability

The price of Availability.*

事实上,高可用性应用程序对开发、测试和验证有着严格的要求。但特别是,它们必须可靠,我的意思是完全自动化并支持自我修复,这是系统从故障中自动恢复的能力。

他们必须动态地获取计算资源以满足需求,但他们还应该能够减少中断,如错误配置或短暂的网络问题。

最后,它还要求按照与应用程序本身相同的最高标准来开发、测试和验证这种自动化和自我修复功能的所有方面。这需要时间、金钱和合适的人,因此成本更高。

提高可用性

虽然有数十种甚至数百种技术用于提高应用程序的可靠性和可用性,但我想提到两种我认为最突出的技术。

指数退避 一个软件系统中典型的组件包括多个(服务)服务器、负载平衡器、数据库、DNS 服务器等。在操作过程中,由于前面讨论过的潜在故障,任何这些都可能开始产生错误。

处理这些错误的默认技术是在请求方实现重试。这种简单的技术增加了应用程序的可靠性,并降低了开发人员的操作成本。

但是,在大规模情况下,如果请求者试图在错误发生后立即重试失败的操作,网络会很快被新的和失效的请求所饱和,每个请求都会争用网络带宽,这种模式会一直持续下去,直到整个系统崩溃。

为了避免这种情况,必须使用指数补偿算法。指数补偿算法逐渐降低重试的速率,从而避免网络拥塞。

在其最简单的形式中,伪指数退避算法看起来像这样:

*A simple pseudo exponential backoff algorithm.

Simple exponential backoff algorithm*

注意: 如果使用并发客户端,可以在等待功能中加入抖动,帮助你的请求更快成功。这里见

幸运的是,许多 SDK 和软件库,包括 AWS,都实现了这种算法的一个版本(通常更复杂)。然而,不要假设它,总是验证和测试它。

增加应用程序可靠性的另一个重要模式是在通常所说的消息传递架构中使用队列。队列位于 API 和工人之间,允许组件的解耦。

**Message-passing pattern with queues.

Message-passing pattern with queues.**

队列为客户机提供了一劳永逸的请求的能力,让现在在队列中的任务在合适的时间由工人来处理。

这种异步模式在提高复杂分布式应用程序的可靠性方面非常强大——但不幸的是,它不像指数补偿算法那样简单,因为它需要重新设计客户端。事实上,请求不再返回结果,而是返回一个 JobID,当结果准备好时,可以用它来检索结果。

蛋糕上的樱桃 将消息传递模式与指数回退相结合,将使您的旅程中最大程度地减少故障对可用性的影响,这也是我学会的最重要的 10 件事情之一。


获得更好职业所需的技能。

掌握现代技术技能,获得认证,提升您的职业生涯。无论您是新手还是经验丰富的专业人士,您都可以通过实践来学习,并在 ACG 的帮助下推进您的云计算职业生涯。


本期就到这里——希望你喜欢!一定要看看这个系列 的下一部 !请不要犹豫给出反馈,分享你自己的观点,或者只是拍手。

阿德里安

抽象即服务的兴起

原文:https://acloudguru.com/blog/engineering/the-rise-of-abstraction-as-a-service

2020 年是相当疯狂的一年。随着世界已经转变为一种完全远程的生活方式(至少目前如此),云基础设施已经成为我们日常运营方式中越来越重要的一部分。你每天用来工作的大多数服务都运行在某个地方的某个服务器上。你在家里与之交谈的许多设备都在做同样的事情。

如果你想要一个小的微观世界,看看云现在在哪里,我们可以回顾一下过去几周的 AWS re:Invent——在那里,十几个云产品的字母汤问世了。它们中的每一个都有其独特的用例,但它们都符合云的发展方向这一总主题:一个适用于你能想象到的每一种服务的工具。

这也不仅仅是亚马逊的事情。您可能会将其称为抽象即服务,这是另一个即服务术语。这使我们走上了 IBM Cloud 副总裁兼 IBM Fellow Jason McGee 所描述的“一切即服务”模式的道路。接下来的十年,甚至更久,将会让在互联网上部署应用的过程尽可能的无缝。

从现在到这个十年结束,将会发生很多事情,我们很期待看到接下来事情的发展。此外,还有许多其他移动部分——围绕安全性的理念变化、实际芯片和技术架构的创新等等。

但这一切都带我们走上了同一条道路——更快地生产出更好的产品,出错的机会更少。

一切即服务

云最初是一种笨重的硬件,虽然有时难以管理,但它为未来提供了令人印象深刻的一瞥:完全摆脱控制应用程序主干的需要。回想起来,这些东西对消费者来说并不友好。考虑到现在的成本效率,你可能会说它也很贵。

在过去的十年里,让你的应用程序出门变得越来越容易——也许是如此渐进以至于很难注意到。当我们到达 2030 年时,我们可能会回顾这十年,并指出容器是完全消除服务器管理的转折点之一。

“集装箱是这一旅程的半步,”麦基说。“更接近 app,也是更好的版本。我认为十年后,我们会继续这一进程,向以应用程序为中心的方向发展,隐藏很多复杂性。”

回到过去几周的字母汤:我们看到了针对如此多特定服务的如此多产品的公告,以至于可能很难确定云提供商的最终目标,甚至超越亚马逊。但是这种几十种服务的杂耍行为本身可能就是最终目标。每个行业都将有一项服务来支持他们获得一个应用程序,并尽可能廉价高效地运行。简而言之,就是一路向下的小众服务。

“随着我们远离基础设施,想象[一切即服务的未来]变得更加容易,”McGee 说。“你有一个 edge 视频设备,可以让你分析流式摄像机——仔细想想,这是一项非常小众的服务。我想在我的办公楼里做视频分析;这里有一个我可以安装的特殊盒子。这就是我们前进的方向。”

这不仅仅是你用来管理服务的软件和网络控制台。

(抽象)盒子里是什么?

过去十年的另一个元趋势是机器学习的兴起,为你今天使用的几乎每一项服务提供动力。与此同时,公司和风险投资公司已经投入了数十亿美元来创新驱动这些设备的东西:这些设备中的实际硅,无论它们是在边缘还是在数据中心。

云也为所有这些处理能力的创新提供了一个令人兴奋的试验场。公司可以在需要处理复杂过程的边缘设备中试验新型硬件,而不是马上出现在你的手机或笔记本电脑中(尽管苹果可能刚刚采取了这一举措)。同样,您甚至不必管理这些设备。

“我认为云可能是他们首先接受审查和暴露的地方。由于基础设施的管理性质,我们可以更容易地在环境中引入专门的硬件,”McGee 说。“这比在大盘中容易得多。无论是 FPGA、新处理器、人工智能优化芯片,所有这些东西都更容易首先进入公共云,并将其作为服务公开。我们甚至在量子上也做了同样的事情。我们把其中一些放在云上,这样人们就可以在不购买和运行量子系统的情况下实验构建量子,而这是你做不到的。”

硬件本身也可能在某一点上被抽象。你也可以认为它是一个无服务器的模型,但是在处理 4K 视频的工厂里有数百台摄像机在运行。随着硬件变得更容易迭代,特别是在核心处理层,这是一个相同的原则:只关注你的应用程序,真的。

“你必须考虑如何部署终端模型,以及如何使用这些模型,”McGee 说。“这是云边缘版本的‘即服务’模式的主要驱动力。你拥有人工智能、框架和模型的完美融合,带来了自己部署的技能要求。没有多少人能够大规模部署并自己操作它。但是,作为一种服务,有人为你运行这种服务是很有价值的。”

保护开发人员免于抽象(和他们自己)

大规模安全漏洞经常成为新闻。但是,对于国家行为者的每一个重大违规行为,你可能还会看到另一种违规行为:有人无意中向公众公开了一些数据,一个有进取心的开发人员发现了这些数据。在最好的情况下,公司会得到一个提醒。在最坏的情况下,他们可能永远也不会发现这一点——而坏人继续从中获利。

这通常可以归结为一系列简单的错误。他们可能配置了错误的 IAM 权限。他们可能只是把一个 S3 桶向公众开放。他们看错了 YAML,或者在第二台显示器上观看篮球比赛时无意中输入了一个错误。或者任何其他数量的看似简单的因素。

因此,尽管管理适当的安全性通常是云提供商最优先考虑的事情之一(如果不是最优先考虑的话),但还有另一个挑战。假设你抽象出所有的东西,让用户只关注他们的应用。在这种情况下,你可能会引入另一个失败点:有人太专注于应用程序,以至于他们没有考虑他们的配置。

“这是一个我们花费大量时间的领域,”McGee 说。“服务交付试图保证安全性,因为有专家为您处理安全性问题。你自己不一定要成为专家。很多这样的错误来自于人们错误的配置。我们试图直接解决配置、控制和合规性方面的问题。”

这可能说起来容易做起来难,特别是当我们到达一个点,可能会有数百种服务,几乎每一个可能的利基市场。但 McGee 表示,主动确保这些开发者的配置正确,就像保护他们免受政府支持的黑客攻击一样重要。

向 2030 年进军

重要的是,我们要记住 2020 年全面发生的一些巨大创新。在不到一年的时间里研制出新冠肺炎疫苗是一项巨大的科学成就,并将继续影响我们的研究几十年。正如艾萨克·牛顿爵士所说,“如果说我看得更远,那是因为我站在巨人的肩膀上。”

但是我们可以花一点时间来欣赏不断涌现的新工具和技术,它们继续抽象出获得应用程序的所有挑战——也许是脸书或谷歌的规模。消除这一挑战不仅对你的底线有利:它能加快创新,迫使每个人反过来创新。这对每个人来说都是最好的结果。

当然,这是假设每个人都加入了云。但 McGee 对此持乐观态度。

“我认为从现在起十年的渗透率可能会非常高——也许是 80%的范围,”他说。“今天,有些人可能会说是 20%,而其他人可能会说是 4%。这取决于你如何定义“云”我们正在将我们所认为的云从集中式公共数据中心扩展到更加分布式的云。我们有边缘计算,这些核心云数据中心的计算,以及更多可用的选项。如果这是真的,那么将会有更多的应用程序可以从中获益。"

云在防止数据泄露中的作用

原文:https://acloudguru.com/blog/engineering/the-role-of-the-cloud-in-preventing-data-breaches

安全漏洞和其他数据曝光在过去几年中经常成为头条新闻,2018 年不幸成为 也不例外 。数据泄露的数量和严重性都在增加,71%的美国企业和 67%的全球企业今年至少报告了一起数据泄露事件。

虽然数据泄露确实发生在云中,但是大多数数据泄露发生在内部系统中。此外, 77%的企业规模公司没有最新的网络安全响应计划。

除了少数持怀疑态度的人之外,世界各地的公司现在都认识到了将数据转移到基于云的解决方案所带来的安全优势,根据 Gartner 的说法,到 2020 年,云将成为软件部署的默认选项。

是什么让云比内部解决方案更安全?

1。网络安全专业知识

大多数云服务提供商将实施和管理比内部 IT 部门好得多的 IT 安全控制。在 2017 年 Gartner 关于云安全的报告中,分析师 Kasey Panetta 写道,通过构建良好的云系统提供的安全性与大多数企业数据中心一样好,甚至更好。该报告显示,基础设施即服务(IaaS)的公共云实施受到的攻击减少了 60%。帕内塔推测,这种攻击的缺乏是由于攻击者不想将目标对准那些极度关注安全工具和监控的系统。

云怀疑论者可能会指出一些发生在基于云的解决方案中的高调数据泄露,作为反对云服务提供商(CSP)提供更好的数据安全性的证据。然而,应该注意的是,这些漏洞是由人为错误造成的,而不是云的安全性。云安全是一项共同的责任。CSP 负责云的安全**,你负责云的安全。云客户需要了解他们的 CSP 的角色以及他们在保护数据方面的角色。**

大型云供应商,如亚马逊、微软和谷歌,吸引了世界上最有才华的工程师,并有钱支付大型安全团队和最佳安全工具。借助云,您不仅可以访问最好的数据中心,还可以接触到负责保护您的云基础架构的高技能 IT 专业人员团队。

2。安全创新和灵活性

当数据泄露发生在云中时,无论是否是由于客户的人为错误,大型通信服务提供商都会迅速做出响应,提供解决方案来帮助用户提高运营安全性。例如,在一系列关于攻击者窃取存储在亚马逊网络服务中的密码的报道后,亚马逊推出了 AWS Secrets Manager

亚马逊以及其他领先的通信服务提供商正在不断增强安全能力,并为客户提供新的工具和技术,以帮助避免可能危及其数据的人为错误。最先进的安全服务是云原生的。安全创新正在云中发生,并且是专门为基于云的解决方案而设计的。

云原生安全性帮助客户构建更强大、更灵活的 IT 架构。与传统的虚拟机安全相比,它可以更快地阻止威胁,并且更容易扩展。

3。受控访问

人为错误导致数据泄露,据估计,2017 年,人为错误导致的数据泄露高达 90% 。云怀疑论者认为,将数据保存在内部可以让他们更好地控制数据。事实上,情况正好相反。

根据企业安全专家和 InfoWorld 撰稿人 Ben Bernstein 的说法,云原生安全提供了更多的控制。他说,“因为微服务使用的网络模式更加具体和精确,所以使用机器学习来创建预测模型要容易得多。对于传统虚拟机,多个流并行运行,创建和维护精确捕获所有允许流量的规则要困难得多。”

此外,缺乏对存储在云中的数据的物理访问,使得敏感信息更难以因员工的错误而落入他人之手。随着人类对您信息的控制减少,您的风险也会降低。

4。频繁审计

CSP 的标准比本地系统更严格。他们每年至少接受一次审计,以检测其安全系统中的缺陷。遗留系统没有这个要求。

通信服务提供商必须遵守两种主要标准:水平标准和垂直标准。横向标准是适用于云中存储的任何数据的总体标准。垂直标准是特定于行业的,并考虑了这些行业的合规性要求。

云安全联盟(CSA)的成立旨在推广最佳实践,并为所有 CSP 提供关于在云中提供安全保证的最有效方法的共识。它为审计基于云的解决方案的安全性提供了工具和流程。

CSP 的声誉和业务依赖于维护最高级别的数据安全性。他们积极地频繁审计他们的安全系统,并不断改进它。内部解决方案提供商则不然。

数据泄露现在是生活中的现实。不幸的是,对于人类行为没有任何安全解决方案。但通信服务提供商拥有最有才华的 IT 专业人员和网络安全专家,他们不断创新和创造新技术来阻止攻击,并帮助防止危及数据的人为错误。云原生安全性是数据安全的未来。云的采用和云的流畅性对于想要保护其数据的组织来说至关重要。


还不是 ACG 商业会员?

我们为您提供提升团队技能、建立云文化、为未来做好业务准备以及充分利用每份许可证所需的一切。

寻找云人才变得更加容易

原文:https://acloudguru.com/blog/business/the-search-for-cloud-talent-just-got-easier

云人才和云本身一样重要。无论您是将工作负载从内部迁移到云,还是构建新的应用和服务或自动化工作流,任何云工作的成功都取决于您的团队。如果没有合适的人,你的项目将需要更长的时间,并且可能需要全部重做。但问题来了:熟练的云人才很难找到。

根据 S & P Global 的数据,85%的组织报告缺乏云专业知识。根本就没有足够的合格的云工作者。高校通常不教授云计算,这也于事无补。这是可以理解的;各大云平台一周发布几十个更新,一个月几百个。大学课程不可能跟上。但是不要失去希望!学校不教云计算,并不意味着人们学不会。

在云专家那里,我们对此非常了解。我们已经教会了数百万人如何利用按需云基础设施,如 AWS、Azure、谷歌云平台和 Linux。我们的点播、参与式课程、动手实验室和 IT 培训项目让人们能够轻松地将学习融入日常生活。

自成立以来,我们一直致力于缩小云技能差距,本月,我们将更上一层楼。除了我们正在与像Miami Dade College这样的机构合作将云学习整合到课程中,我们现在以将近一半的价格向所有学生提供我们的完整课程库、动手实验室和沙盒环境。(年度个人订阅最高可享受 47%的折扣,月度个人订阅最高可享受 17%的折扣。)为什么?学生有更多机会学习云计算意味着云计算人才库将会扩大。

“一个云大师真的帮到我们大学生了。对于我们希望他们拥有的全职工作,他们现在更有市场。”–Antonio Delgado,迈阿密戴德学院工程学院院长

通过让学生更好、更早地获得云教育(以及一个无风险的实践环境),我们现在就在为下一代云工程师做准备,以产生影响。您无需等待数年,它们就能带来真正的价值。我们为他们提供了边做边学的空间,因此他们可以为您带来最新的云知识,以支持甚至引领战略性云部署。

对您来说,这意味着合格的云人才将开始变得与众不同,您的技能差距将开始缩小。虽然多年的经验总是有帮助的,但它不再是决定未来员工价值的唯一因素。如今,最高效的云工作者拥有多种云平台的最新知识、持续的不搞砸的实践机会,以及学习、实验和创新的资源,一切尽在掌握。一位云计算专家正在让即将毕业的学生完全有可能具备这些品质。

缩小技能差距的最快方法是让每个人——从学生到处于职业生涯早期的人,再到经验丰富的云专家——都有机会学习和实践公司所需的云技能。有很多团体可能需要一些额外的帮助来获得云教育。学生计划是我们为加速缩小技能差距而采取的众多措施之一。不关门我们是不会罢休的。敬请期待更多精彩!

与此同时,点击此处了解更多关于云专家如何帮助您的公司建立梦想中的云团队的信息。


加速学习变得容易

如果没有正确的学习路径,您可能会在投资上浪费时间和金钱。这就是我们创建学习路径的原因——定制技术和 IT 发展计划以满足您团队的需求。


posted @ 2024-10-31 16:47  绝不原创的飞龙  阅读(11)  评论(0编辑  收藏  举报