Рубрики
Без рубрики

Cloud Resume Challenge стоил его веса в золоте!

Это был один захватывающий проект, в котором я научился собирать несколько услуг AWS и … Tagged с помощью AWS, Server, Python, DevOps.

Это был один захватывающий проект, в котором я научился собирать несколько услуг и навыков AWS, которые я взял вдоль моего сертификационного путешествия AWS SAA.

Примерно в начале этого месяца хороший друг познакомил меня с героем без сервера AWS, Forrest Brazeal’s Cloud Resume Challenge Анкет Это бросает вызов участникам создать веб -сайт резюме с использованием облачной инфраструктуры AWS; Создание и настройку сервисов с использованием Cloud IAC Automation в CICD -конвейере.

Нашел это в то время, когда я недавно сдал архитектор AWS Solutions – Associate Exam, и это дало прекрасную возможность проверить себя с практической проблемой, повеселиться с ним и продемонстрировать свои навыки.

До этого проекта у меня был некоторый опыт работы с экземплярами реляционной базы данных, работающих на Prem/Server и работал над несколькими небольшими проектами Python. Но я никогда не выполнял внедрение CICD -конвейера для многих облачных сервисов, которые были необходимы для этой задачи. Чем больше я нырнул глубоко, тем больше мой интерес усилился. Я, возможно, провел гораздо больше времени на чтение (из -за моего любопытства), чем на самом деле работа над проектом.

Я принял вызов! Короче говоря, шаги, которые были предприняты для выполнения задачи, без особого порядка: создание фронта, а затем размещение его в S3, регистрации домена и конфигурации DNS, AWS SAM и CloudFormation для создания бессерверного стека бэкэнд; который состоял из AWS API Gateway + Lambda (Python) + DynamoDB, затем, наконец, непрерывная интеграция и развертывание с использованием действий GitHub. Моя кодовая база была сохранена на GitHub, и я включил модульные тесты в свой трубопровод CICD. Я начал прямо занимать быка за рога, с бэкэнда, используя небольшой фиктивный HTML -файл.

Я построил небольшую коробку Linux (Ubuntu) дома исключительно для проекта. Я установил и настроил Python, PIP, BOTO3, AWS CLI, SAM CLI, Docker, DynamoDB Local. Я сделал это, чтобы предоставить мне гибкость, чтобы попробовать функции локально, прежде чем вмешиваться с ресурсами в облаке. Во -первых, я экспериментировал с основным CRUD в DynamoDB Local с использованием Python и Boto3. Это был мой первый реальный опыт работы с DB NoSQL. Это было довольно легко забрать. Я также экспериментировал с предоставлением ресурсов в облаке из моего локального Linux CLI. В итоге я создал несколько шаблонов AWS SAM для моей бэкэнд -инфраструктуры, которая, опять же, состояла из API -шлюза, функционального события Lambda и DynamoDB. Забегая от AWS CLI и AWS SAM CLI, мне удалось развернуть свои бэкэнд -ресурсы. Следующей задачей было автоматизировать обеспечение этих же ресурсов в конвейере CICD.

Я провел некоторое обширное чтение и сравнения вокруг Дженкинса, AWS Codepipeline, Circleci и Github. AWS Codepipeline выглядела как самый простой для этой задачи, но я хотел попробовать что -то новое. Я остановился на действиях GitHub, которые были выпущены пару месяцев назад. Мои действия работы работают в контейнере Linux Docker, в основном выполняя сценарии Bash. Переменные среды, такие как клавиши доступа, были надежно установлены в секретах GitHub. Для репозитория Frontend, на каждом толчке моего локального кода к главной ветви моего репозитория GitHub, запускается действия CICD, выполняется рабочий процесс, и база кода автоматически синхронизируется с ведром хостинга S3. Тогда кэш Cloudfront CDN недействителен. Рабочий процесс для бэкэнд -конвейера CICD включал настройку задания, проверка, установка SAM CLI, модульное тестирование, сборку SAM, развертывание и аннулирование кеша. Код шаблона SAM строится и развернут только после того, как функция Python Lambda прошла модульные тесты.

В этот момент я был уверен, что выполнил большую часть необходимых задач. У меня есть базовые знания HTML и CSS, и я сам не создавал целый веб -сайт. Обычно мне удобно работать в бэкэнде. Было сложно найти шаблон веб -сайта, который мне точно понравился. Итак, я полностью разделил минимальный шаблон блога HTML, который я нашел на Hugo; Модифицировал его, чтобы выглядеть как резюме (я потратил много часов, пытаясь заставить его выглядеть элегантно ++ Вставка улыбающегося лица ++). Я сделал простой запрос JS XHR, чтобы получить запрос API, чтобы получить подсчет посетителей. Этот шаг помог увеличить мои ржавые навыки CSS и напомнил мне оценить дизайн, даже больше.

Я понимаю, что людям нравится держать вещи в экосистеме AWS для простоты, но было не слишком сложно применять мои знания DNS, чтобы подключить мое распределение CloudFront с помощью регистратора внешнего домена. Во время проверки DNS было несколько недостатков с менеджером сертификатов AWS с использованием записи CNAME, но я смог исправить ее по Googling. Мне также пришлось переключить регион AWS на US-EAST-1, чтобы использовать ACM в соответствии с FAQ AWS.

Этот проект представил освежающую задачу, мотивируя меня много читать о Docker и AWS CLI. Я выучил автоматизацию CICD для облачной инфраструктуры и как включить модульные тестирование в трубопровод рабочего процесса. Я научился интегрировать многие услуги, которые я ранее не использовал вместе. Я обнаружил порталы, где я могу сделать дальнейшее чтение, когда сталкиваюсь с проблемами с службами AWS. Большое спасибо Forrest Braiseal за предоставление мне возможности принять участие в этом вызове. Вот конечный продукт . И вот GitHub Примечания Я был соавтором после учебы для AWS Solutions Architect-Associate Exam.

Оригинал: “https://dev.to/nquayson/the-cloud-resume-challenge-was-worth-its-weight-in-gold-4gjb”