我热爱编程但不喜欢数学_云恢复挑战或我如何学会不再担心并热爱云

我热爱编程但不喜欢数学

In a fit of close-to-graduation fear for the future, I decided to look at the few things that I knew how to do and delve deeper in them. Among these, I have been lucky to dabble in cloud software and providers during my last internship at RevZilla.

为了适应即将毕业的恐惧,我决定看一些我知道该怎么做的事情,并深入研究它们。 其中,我很幸运在RevZilla的最后一次实习期间涉足云软件和提供商。

While most of the production work was in Google Cloud Platform, I spent a lot of time trying to figure out how to start a Jupiter Notebook from an EC2 instance of AWS. Having never touched AWS before that, it was, put lightly, a nightmare.

虽然大部分生产工作都在Google Cloud Platform中进行,但我花了很多时间试图弄清楚如何从AWS的EC2实例启动Jupiter Notebook。 在此之前从未接触过AWS,这简直就是一场噩梦。

But brains work in mysterious ways, and the frustration and horror that ensued made me want to learn AWS more and more after that.

但是大脑以一种神秘的方式工作,随之而来的挫败感和恐惧使我希望在此之后越来越多地学习AWS。

Fast forward to June 2020, freshly graduated from my Masters, I decided to start using Twitter a little bit more to keep up with the (sorry) state of the world and the state of my favorite technologies.

快进到2020年6月,我刚从我的硕士班毕业,我决定开始使用Twitter多一点,以跟上世界(对不起)的状态和我最喜欢的技术的状态。

I am signed up for my AWS Certified Cloud Practitioner and freeCodeCamp released a series of full-length videos by Andrew Brown on how to prepare for the AWS exams. The #AWSCertified hashtag enticed me and, after passing my CCP, I started actively tweeting about my Cloud journey and being retweeted by the #100DaysOfCloud bot.

我已经签约了我的AWS认证云从业人员, freeCodeCamp发布了Andrew Brown的一系列完整视频,介绍了如何准备AWS考试。 #AWSCertified主题标签吸引了我,并且在通过CCP后,我开始积极发布有关我的云之旅的推文,并被#100DaysOfCloud机器人转发了。

Among the bot’s retweets, I came across this tweet from Forrest Brazeal.

在该漫游器的转发中,我从Forrest Brazeal那里看到了此推文。

The Cloud Resume Challenge dares you to build a personal resume/portfolio website with a visitor counter.

Cloud Resume Challenge敢于让您建立带有访客计数器的个人简历/作品集网站。

The only catch is to deploy it fully through a number of AWS services, all while learning to correctly set up Serverless applications, CI/CD pipelines, networking, security and more.

唯一的收获是,通过学习正确设置无服务器应用程序,CI / CD管道,网络,安全性等等,可以通过许多AWS服务完全部署它。

The challenge’s first requirement was to pass the CCP exam, and with that already under the belt, I decided to jump into it.

挑战的第一个要求是通过CCP考试,而在此基础上,我决定参加考试。

July 1st was the first day of my challenge, and this is the story of what I learned.

7月1日是我挑战的第一天,这就是我学到的故事。

前端 (Front-End)

The challenge starts with a HTML/CSS version of your resume. I have had most of my programming experience between Python and C++, working on Machine Learning and Data Science applications.

挑战始于简历HTML / CSS版本。 我在Python和C ++之间拥有大部分编程经验,致力于机器学习和数据科学应用程序。

At the start of the quarantine, during the last quarter of my degree, I decided that it was time to expand on my software engineering knowledge and I decided to pick-up the MERN stack.

隔离开始时,在我学位课程的最后一个季度中,我决定是时候扩展我的软件工程知识了,我决定使用MERN堆栈。

While I did not even touch the MEN portion of the stack for this challenge, React came in handy as I decided to use Gatsby.js for static site generation. I built the whole frontend during one coffee-filled all-nighter because of excitement and insomnia. TailwindCSS is my favorite CSS framework by far and it made it surprisingly easy to build a responsive, mobile first interface. I am not an UI/UX expert (or amateur, or novice…) but for the sake of the challenge it did fit the bill.

尽管我什至没有碰到这个挑战的堆栈中的MEN部分,但是当我决定使用Gatsby.js进行静态网站生成时,React派上了用场。 由于兴奋和失眠,我在一个充满咖啡的通宵工作中建立了整个前端。 到目前为止,TailwindCSS是我最喜欢CSS框架,它使构建响应快速,移动优先的界面变得异常容易。 我不是UI / UX专家(或不是业余爱好者,还是新手……),但出于挑战的考虑,它确实符合要求。

Image for post
Check out the full thing at antoniolofiego.com
在antoniolofiego.com上查看全部内容

Once I built the webpage, I needed to host it somewhere to make it publicly accessible. The good people at AWS blessed us with Amazon Simple Storage Service (S3) and its static hosting capabilities.

建立网页后,我需要将其托管在某个地方以使其可以公开访问。 AWS的优秀人才为我们提供了Amazon Simple Storage Service(S3)及其静态托管功能。

No one likes long URLs, so the next step was to purchase a custom domain from Route 53 and obtain an SSL certificate from Amazon Certificate Manager. All of the content is served by CloudFront, AWS’s CDN and is secured using Origin Access Identity (OAI). Setting up the S3 bucket as origin was easy, but correctly arranging the DNS routing was definitely more thorny.

没有人喜欢长URL,因此下一步是从Route 53购买一个自定义域,并从Amazon Certificate Manager获得SSL证书。 所有内容均由AWS的CDN CloudFront提供 ,并使用Origin Access Identity(OAI)保护。 将S3存储桶设置为原始服务器很容易,但是正确安排DNS路由肯定更棘手。

I used GitHub as my version control hosting and created a CI workflow with GitHub Actions to build my Gatsby site and upload it to the correct S3 bucket on push.

我使用GitHub作为版本控制主机,并使用Gi​​tHub Actions创建了CI工作流程来构建我的Gatsby网站,并在推送时将其上传到正确的S3存储桶。

Everything was going great! I was on Day 2 of my challenge timeline and I felt great.

一切都很好! 我当时处于挑战时间表的第二天,感觉很棒。

And that’s where the dark descent started…

那就是黑暗后裔开始的地方……

后端 (Back-End)

Welcome to the beginning of my rabbit hellhole! The next step was to create a simple visitor counter using REST API calls made to API Gateway, which would trigger a Lambda function that updates and returns a counter stored in a DynamoDB table.

欢迎来到我的兔子地狱的开始! 下一步是使用对API Gateway进行的REST API调用创建一个简单的访客计数器,这将触发Lambda函数 ,该函数更新并返回存储在DynamoDB表中的计数器。

If that wasn’t enough, all this had to be done using SAM templates.

如果这还不够,那么所有这些都必须使用SAM模板来完成。

Fitting emotions.
合适的情绪。

SAM is the AWS Serverless Application Model, a framework to build Serverless applications using a YAML file.

SAM是AWS无服务器应用程序模型,该框架使用YAML文件构建无服务器应用程序。

In AWS’s words,

用AWS的话来说,

… the latest version SAM CLI makes serverless development easier for developers.

…最新版本的SAM CLI使开发人员更容易进行无服务器开发。

While SAM does indeed centralize serverless stacks in a single entity, which is definitely easier to track and organize, the existing documentation for it is… cryptic.

尽管SAM确实确实将无服务器堆栈集中在单个实体中,这无疑更容易跟踪和组织,但它的现有文档却是……很神秘。

SAM templates transpile into CloudFormation templates, which is another AWS Service that deserves a certification on its own and there are not a lot of good resources on how to go from Level 1 to Level 10, as they assume everyone is already at Level 11.

SAM模板转换为CloudFormation模板,CloudFormation模板是另一个AWS服务,需要单独获得认证,并且关于如何从1级升级到10级的信息不多,因为它们假定每个人都已经处于11级。

Fortunately, a member of the Cloud Resume Challenge community, Chris Nagy, recently posted an incredibly human-friendly version of a simple SAM application. So human-friendly, in fact, that even AWS-own Jeff Barr posted it on his Twitter feed.

幸运的是,Cloud Resume Challenge社区的成员Chris Nagy最近发布了一个非常人性化的简单SAM应用程序版本。 实际上,它非常友好,以至于甚至AWS拥有的Jeff Barr都将其发布在他的Twitter feed上。

After banging my head on the SAM template for a couple more days I managed to have a working application that deployed the correct services in an appropriate fashion.

在SAM模板上敲了几天之后,我设法有了一个可以正常工作的应用程序,它以适当的方式部署了正确的服务。

For the Lambda function, I used Python 3.8 and Boto3, its AWS SDK. The function updates the DynamoDB table and returns a CORS-enabled response that my frontend will be able to fetch and use. Everything was tested using pytest and the service mocking package moto.

对于Lambda函数,我使用了Python 3.8和Boto3(其AWS开发工具包)。 该函数更新DynamoDB表并返回启用了CORS的响应,我的前端将能够获取和使用该响应。 一切都使用pytest和服务模拟包moto进行了测试。

I built my own custom CI/CD pipeline that creates a Python environment, gives me programmatic access to AWS services, tests my Lambda functions and deploys the SAM stack, again using GitHub as my repo hosting service and GitHub actions. The obvious, but always important thing to remember is to use GitHub Secrets instead of committing or hard-coding your AWS credentials in a codebase.

我构建了自己的自定义CI / CD管道,该管道创建了Python环境,使我能够以编程方式访问AWS服务,测试Lambda函数并部署SAM堆栈,再次使用GitHub作为我的回购托管服务和GitHub动作。 要记住的明显但始终重要的事情是使用GitHub Secrets,而不是在代码库中提交或硬编码您的AWS凭证。

I finally updated my frontend with a new component, VisitorsCounter, that makes a POST request to the appropriate API Gateway endpoint and displays the counter on the bottom of the page.

最后,我用一个新组件VisitorsCounter更新了前端,该组件向适当的API Gateway端点发出POST请求,并将计数器显示在页面底部。

The final output of my challenge can be seen at https://antoniolofiego.com.

我的挑战的最终输出可以在https://antoniolofiego.com上看到。

我学到了什么以及下一步 (What I learned and where to next)

I thoroughly enjoyed this challenge and I have been able to learn so much from all the deep dives in documentation, StackOverflow posts and AWS subreddit.

我非常喜欢这个挑战,并且能够从文档,StackOverflow帖子和AWS subreddit的所有深入研究中学到很多东西。

However, I would be a liar if I did not mention the incredible support received from the Cloud Resume Challenge community and Discord channel. I would like to thank Forrest for creating it, as I believe that, by bringing together so many driven and dedicated folks, he accomplished twice as much as he hoped to accomplish while creating this challenge.

但是,如果我不提及从Cloud Resume Challenge社区和Discord渠道获得的令人难以置信的支持,那我将是个骗子。 我要感谢Forrest创造了它,因为我相信,通过召集这么多有干劲和执着的人们,他完成了挑战时实现了他希望完成的两倍。

Image for post
The #100DaysOfCloud mascot is 💯
#100DaysOfCloud吉祥物是💯

Also a big shout-out to the #100DaysOfCloud community on Twitter for keeping all the participants excited and for all the positive vibes and supporting environment!

还要在Twitter上向#100DaysOfCloud社区大声喊叫,以使所有参与者兴奋并拥有所有积极的氛围和支持的环境!

Forrest asked not to share the code for the remainder of the challenge to keep it engaging and fruitful for all the other people that are still working on it.

福雷斯特(Forrest)要求不要在其余挑战中共享代码,以使它对所有仍在努力的其他人保持吸引力并富有成果。

In terms of future goals, I will finish studying for my Solutions Architect Associate exam that I have scheduled for next week and I hope that this experience will be the first in the realm of Cloud Engineering. There’s definitely a lot more coming from me!

关于未来的目标,我将完成我计划在下周举行的解决方案架构师助理考试的学习,我希望这种经验将成为Cloud Engineering领域的第一门经验。 肯定会有更多来自我的东西!

如果您想与我保持联系,请在TwitterGitHub上关注我,并随时在LinkedIn上添加我(如果发送连接请求,请给我留言😃) (If you want to keep in touch with me, follow me on Twitter or GitHub and feel free to add me on LinkedIn (drop me a line if you send a connection request 😃))

翻译自: https://medium.com/dev-genius/the-cloud-resume-challenge-or-how-i-learned-to-stop-worrying-and-love-the-cloud-f057f437d6ce

我热爱编程但不喜欢数学

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值