AWS Concepts Tutorial for Absolute Beginners

This video is for the absolute beginner. Have you ever wanted to know, in very simple terms, the answers to the following questions:

This video is for the absolute beginner. Have you ever wanted to know, in very simple terms, the answers to the following questions:

What is the cloud?

What is AWS?

What are AWS's core services?

Why do we use AWS? 

AWS Training Online Course - Best AWS Certification - Intellipaat

AWS Training Online Course - Best AWS Certification - Intellipaat

Enroll for best AWS training course with AWS Certification online and placement support. Learn Amazon web services AWS course from certified AWS experts. Enroll Now!

Enroll for best AWS training course with AWS Certification online and placement support. Learn Amazon web services AWS course from certified AWS experts. Enroll Now!

AWS DevOps: Introduction to DevOps on AWS

AWS DevOps: Introduction to DevOps on AWS

AWS DevOps: Introduction to DevOps on AWS

This is the story of how DevOps met AWS, and how their union can benefit you.

Technology has evolved over time. And with technology, the ways and needs to handle technology have also evolved. The last two decades have seen a great shift in computation and software development lifecycles. We have seen a huge demand for online DevOps training and AWS certification.

This blog focuses on the following points:

  1. What Is DevOps?
  2. What Is AWS?
  3. AWS DevOps
What Is DevOps?

In these fast-paced times, we see more emphasis being placed on faster delivery of software deployment. In order to stay competitive in the market, companies are expected to deploy quality software in defined timelines. Thus, the roles of software developers and system admins have become very important. A lot of juggling of responsibilities happens between the two teams. Let us take a look at how do these individuals contribute to the deployment process.

A programmer or a software developer is responsible for developing the software. In simple words he is supposed to develop a software which has:

  • New features
  • Security Upgrades
  • Bug Fixes

But a developer may have to wait for weeks for the product to get deployed which is also known as** “**time to market” in business terms. This delay may put pressure on the developer because he is forced to re-adjust his dependent activities like:

  • Pending code
  • Old code
  • New products
  • New features

When the product is put into the production environment, the product may show some unforeseen errors. This is because the developer writes code in the development environment, which may be different from the production environment.

Let us go ahead and take a look at this process from the operations point of view. Now the operations team or the system administrating team is responsible for maintaining and ensuring the uptime of the production environment. As the company invests time and money in more products and services, the number of servers admins have to take care of also keeps growing.

This gives rise to more challenges because the tools that were used to manage the previous number of servers may not be sufficient to cater to the needs of upcoming and growing number of servers. The operations team also needs to make slight changes to the code so that it fits into the production environment. Hence, the need to schedule these deployments accordingly also grows, which leads to time delays.

When the code is deployed, the operations team is also responsible for handling code changes or minor errors to the code. At times, the operation team may feel pressured and it may seem like developers have pushed their responsibilities to operations’ side of the responsibility wall. As you may come to realize, none of the sides can be held as the culprit.

What if these two teams could work together? What if they:

  • Could break down silos?
  • Share responsibilities?
  • Start thinking alike?
  • Work as a team?

Well, this is what DevOps does. It helps you get software developers and operations in sync to improve productivity. DevOps is the process of integrating development and operations teams in order to improve collaborations and productivity. This is done with automation of workflows and productivity and continuous measurement of application performance.

DevOps focuses on automating everything that lets them write small chunks of code that can be tested, monitored and deployed in hours, which is different from writing large chunks of codes that takes weeks to deploy. Let us move ahead and understand more about AWS and how it forms a crucial pairing with DevOps to give you AWS DevOps.


What Is AWS?

If you go back a decade, the scenario of handling and storing data was different. Companies preferred storing data using their private servers. However, with more and better usage of the internet, the trend has seen a paradigm shift for companies, as they are moving their data to the cloud. This enables companies to focus more on core competencies and stop worrying about storing and computation.

For example, Netflix is a popular video streaming service which the whole world uses today. Back in 2008, Netflix suffered a major database corruption, and for three days their operations were halted. The problem was scaling up, which is when they realized the need for a highly reliable, horizontally scalable, distributed systems in the cloud. They began using cloud services, and since then their growth has been off the charts.

Gartner says that by 2020, a corporate “no-cloud” policy will be as rare as a “no-internet” policy today. Interesting, isn’t it?

Almost every company has started to adopt cloud services, and AWS, in particular, is the leading cloud service provider in the market. Let us understand more about it.


AWS

Amazon’s AWS makes its customer base strong from small-scale companies to big enterprises like D-Link.


AWS DevOps

AWS is one of the best cloud service providers and DevOps is the popular and efficient implementation of the software development lifecycle, making AWS DevOps a highly popular amalgamation.


AWS CloudFormation

DevOps teams are required to create and release cloud instances and services more frequently than traditional development teams. AWS CloudFormation enables you to do just that. Templates of AWS resources like EC2 instances, ECS containers, and S3 storage buckets let you set up the entire stack without you having to bring everything together yourself.


AWS EC2

AWS EC2 speaks for itself. You can run containers inside EC2 instances, so you can leverage the AWS Security and management features, yet another reason why AWS DevOps is a lethal combo.


AWS CloudWatch

This monitoring tool lets you track every resource that AWS has to offer. Plus it makes it very easy to use third-party tools for monitoring.


AWS CodePipeline

CodePipeline is one popular feature from AWS which simplifies the way you manage your CI/CD toolset. It lets you integrate with tools like GitHub, Jenkins, and CodeDeploy, enabling you to visually control the flow of app updates from build to production.


Instances In AWS

AWS frequently creates and adds new instances to their list and the level of customization with these instances allow you to make it easy to use AWS DevOps together.

All these reasons make AWS one of the best platforms for DevOps.


Originally published by Vishal Padghan at https://dzone.com

Create and Deploy AWS and AWS Lambda using Serverless Framework

Create and Deploy AWS and AWS Lambda using Serverless Framework

An introduction to using AWS and AWS Lambda with the Serverless Framework.

AWS - Introduction

The Serverless Framework helps you develop and deploy your AWS Lambda functions, along with the AWS infrastructure resources they require. It's a CLI that offers structure, automation and best practices out-of-the-box, allowing you to focus on building sophisticated, event-driven, serverless architectures, comprised of Functions and Events.

The Serverless Framework is different from other application frameworks because:

  • It manages your code as well as your infrastructure
  • It supports multiple languages (Node.js, Python, Java, and more)
Core Concepts

Here are the Framework's main concepts and how they pertain to AWS and Lambda...

Functions

A Function is an AWS Lambda function. It's an independent unit of deployment, like a microservice. It's merely code, deployed in the cloud, that is most often written to perform a single job such as:

  • *Saving a user to the *database
  • Processing a file in a database
  • Performing a scheduled task

You can perform multiple jobs in your code, but we don't recommend doing that without good reason. Separation of concerns is best and the Framework is designed to help you easily develop and deploy Functions, as well as manage lots of them.

Events

Anything that triggers an AWS Lambda Function to execute is regarded by the Framework as an Event. Events are infrastructure events on AWS such as:

  • An AWS API Gateway HTTP endpoint request (e.g., for a REST API)
  • An AWS S3 bucket upload (e.g., for an image)
  • A CloudWatch timer (e.g., run every 5 minutes)
  • An AWS SNS topic (e.g., a message)
  • A CloudWatch Alert (e.g., something happened)
  • And more...

When you define an event for your AWS Lambda functions in the Serverless Framework, the Framework will automatically create any infrastructure necessary for that event (e.g., an API Gateway endpoint) and configure your AWS Lambda Functions to listen to it.

Resources

Resources are AWS infrastructure components which your Functions use such as:

  • An AWS DynamoDB Table (e.g., for saving Users/Posts/Comments data)
  • An AWS S3 Bucket (e.g., for saving images or files)
  • An AWS SNS Topic (e.g., for sending messages asynchronously)
  • Anything that can be defined in CloudFormation is supported by the Serverless Framework

The Serverless Framework not only deploys your Functions and the Events that trigger them, but it also deploys the AWS infrastructure components your Functions depend upon.

Services

A Service is the Framework's unit of organization. You can think of it as a project file, though you can have multiple services for a single application. It's where you define your Functions, the Events that trigger them, and the Resources your Functions use, all in one file entitled serverless.yml (or serverless.json or serverless.js). It looks like this:

# serverless.yml

service: users

functions: # Your "Functions"
 usersCreate:
 events: # The "Events" that trigger this function
 - http: post users/create
 usersDelete:
 events:
 - http: delete users/delete

resources: # The "Resources" your "Functions" use. Raw AWS CloudFormation goes in here.

When you deploy with the Framework by running serverless deploy, everything in serverless.yml is deployed at once.

Plugins

You can overwrite or extend the functionality of the Framework using Plugins. Every serverless.yml can contain a plugins: property, which features multiple plugins.

# serverless.yml

plugins:
 - serverless-offline
 - serverless-secrets

Thanks for reading

If you liked this post, share it with all of your programming buddies!

Follow us on Facebook | Twitter