AWS Virtual Full day workshop experience
The unimaginable power of Amazon’s cloud network:
Amazon Web Services ( AWS ) which now supports platforms like Netflix and Spotify can be the single super important work of technology of the modern-day tech bubble boom.
The beauty of which is that it basically lets you buy(more precisely rent) powerful computers cheaply and makes them accessible whenever you want on a pay-as-you-go model.
The tech industry of the previous decade was based on quickly scaling the product to as many users as possible, AWS does just that.
It has taken the costs of servers, cables, hard drives & even the space cost and made it virtually abstract for everyone. AWS takes lead over its competitors because not only it made it services easy to use for enterprises or users, but also it did not leave the developers behind. AWS is undoubtedly on the top when it comes to the developer’s desirability.
Why AWS over its competitors?
AWS has grown into the largest cloud services provider by being first to market and by being the more developer-friendly of the two platforms, Azure caters better for larger organizations already committed to Microsoft products moving an existing infrastructure to the cloud.
AWS the key quality for the market chief keeps on being the broadness and profundity of its administrations, with more than 175 across the stockpiling, database, examination, organizing, portable, designer devices, the executive’s devices, IoT, security and venture applications, last time anyone checked.
Without question the market chief, AWS regularly wins on engineer usefulness, because of the expansiveness of its administrations because of its first-mover advantage. AWS has additionally worked superbly at making an interpretation of its scale into financial advantages for clients, in spite of the fact that there are times where cloud can cost restrictive
Agenda of the workshop :
Applying Twelve-Factor(12-F) App methodology to Serverless Application
The 12-F method is the list of 12 fundamental practices for building better modern, cloud-oriented platforms.
What is 12-F :
- Codebase – one codebase, deploys many
- Dependencies – cut off dependencies
- Config – Store config in the environment
- Backing Service – Backing Services are joint resources
- Build, release, run – These three stages are unique, separate them!
- Processes – Execute the app as processes
- Port Binding – Scale services with Port Binding
- Concurrency – Scale-up
- Disposability – You make the decisions!
- Dev/prod parity – Development and Production are alike
- Logs – Logs can stream!
- Admin Processes – Run admin/management tasks as one-off processes
The workshop was mainly focused on how 12-F can make the whole process of developing serverless
easier from a development point of view
Building “Toll-Gantry” System :
This system detects the license plate of the driver and automatically deducts the amount from his account
The organizers were pretty knowledgeable and the meeting was spread out throughout the day
### Part 1: Isolation and Dependency Management
##Task 1: Deploy the Baseline Staging and Prod environments
In this task, we deployed the baseline environment for the Toll Road Gantry System. You will deploy the **Staging** baseline environment manually using the provided CLI commands and directly in the AWS Console. For the **Prod** environment, you will use the provided script to configure everything automatically.
Key components : * Creating an S3 bucket * Deploying Baseline for the staging environment * Creating a new 'secret' in AWS Secrets Manager for the Staging environment
## Part 2: Deployment Automation
## Task 2: Deploy the resources for the *Process* component:
Now that we have our baseline infrastructure deployed (our datastore, configuration parameters, secrets)
for both the **Staging** and **Prod** environments, we can start deploying the other
components that make up our application. Each of these components will make use of the resources and configuration deployed as part of the baseline. And some components will make use of resources deployed by the other components – for example, the Acquire component makes use of the Process component’s AWS Step Function – and so it is important that each of these components is deployed in the correct order, and that you pause were indicated to ensure dependencies have completed deployment before proceeding to the next step.
Key components : * Deploying CI/CD pipeline for the Process component * Committing the Process component source code to the repository to trigger a build and deploy
### Part 3 : Compute & Invocation
## Task 3: Deploying the CI/CD pipelines for the Acquire, Agent and Website components
* sh ~/environment/TollGantrySystem/setup/setup.part2.sh /* Deploy */
## Task 4: Testing the Acquire, Process, Agent & Website components
Toll Gantry System components (Acquire, Process, Agent, Website) will have finished deployment
Key components: * Verifying your email address with Amazon SES * Test: Upload a number plate image to the 'upload' S3 bucket and confirm the Step Function is triggered * Sending confirm reciept
## Task 5: Implement the missing functionality for the Acquire and Process components
Key Components : * Acquire * Process * Implementing code to retrieve the Number Plate RegEx from AWS Secrets Manager * Implementing code to trigger AWS step function * Deploying the changes using CI/CD * Creating the exception * Testing if everything is working fine * Reviewing the AWS step function
Final thoughts :
The workshop was pretty well hosted and the organizers were pretty experienced.
Everything was super punctual, all questions were answered.
For fun, the organizers also hosted three different quizzes on kahoot.it which made it pretty competitive.
The winners of each got a 25$ Amazon gift voucher.
After attending the workshop in the evening we then had our final product which was a cleverly hosted, well-coded Toll Gantry System.
I would recommend everyone to attend workshops, especially on AWS considering how big it is
and the fun component of building things from scratch.