Building Scalable Web Applications using Microservices Architecture and NodeJS inside AWS Lambda

Embed Size (px)

Citation preview

PowerPoint Presentation

Building Scalable Web Appsusing Microservices Architectureand NodeJS inside AWS Lambda

Eugene Istrati, Mitoc Group

Hello everybody and welcome! Thank you for taking the time to attend this session. I feel very humble and honored to be here today to talk about building scalable web applications using microservices architecture and serverless computing from AWS.

1

Web App Challenges

The fundamental goal of every web application is to be up and running 24/7. But its a huge challenge to do it at scale. Failures can happen to anyone, even the big guys. No name calling today.

2

Everything Fails

To quote Amazon.com CTO Werner Vogels: Everything fails, all the time.

3

Everything Fails

on weekends, when youre having couple of drinks with friends

on vacation, when youre enjoying quality time with entire family

And my two cents: I dont know about you guys, but in my experience, it usually doesnt happen during business hours, when you are in front of your computer.

4

Vacation? Lets Pray!

And yes, we didnt literally do it, but we were close to do it.

5

AboutEugene Istrati

[email protected]

Partner @ Mitoc Group

15+ years in IT; 7+ years on AWS

AWS Certified Solution Architect

Companies: Hearst, Amazon, GruHub, Tenaris (Europe)Mitoc Group

www.mitocgroup.com

Technology Company focusing on Innovative Enterprise Solutions

AWS Technology Partner

Featured AWS Lambda Partner

Media & Publishing Vertical

My name is Eugene Istrati. Im the Technology Partner at Mitoc Group. This slide describes a little bit about myself and my company. I am planning to speak from our experience and share some of our knowledge.

6

AgendaServerless Computing

Microservices Architecture

Demo: Scalable Web App

Q&A + Next Steps

My goal today is to explain as much as I can serverless computing, microservices architecture and show case some real life examples.

7

What is Serverless?Not involving a server; composed only of clients.http://www.wordsense.eu/serverless

Serverless doesnt mean servers are no longer involved. It simply means that developers no longer have to think "that much" about them. Computing resources get used as services without having to manage around physical capacities or limits.https://www.quora.com/What-is-Serverless-Computing

Lets start with serverless concept. What does serverless mean? Intuitively, there should be something that involves no servers. Yes, to be precise, we as developers dont need to deal with servers and all associated operations to keep them up and running at scale. Instead, we are getting abstracted services that are highly secure and highly available, pre-provisioned and pre-scaled.

8

What is Serverless?

But my favorite explanation is by Netflix former Chief Architect, Adrian Cockcroft: If your PaaS can efficiently start instances in 20ms that run for half a second, then call it serverless.

9

Serverless OptionsStorage

Database

Network

Compute

Content Delivery

Messaging and Queues

Security

Gateways

User Management

Monitoring & Logging

Internet of Things

Machine Learning

Streaming Analytics

AWS offers a large variety of serverless options. To emphasize how big this is, please raise your hand if youre using Amazon S3. Now look around.

10

Do It Yourself on AWSDo It Yourself:

https://blog.mitocgroup.com/how-to-create-serverless-environments-on-aws-8485ae039765andhttps://www.youtube.com/playlist?list=PLPGfD-tGOl7sr6R9fZjNp3-qwWIxiShT5

This is a blogpost that weve published last year on how to do it yourself serverless on AWS.

11

AgendaServerless Computing

Microservices Architecture

Demo: Scalable Web App

Q&A + Next Steps

Now, we have a lot to digest around serverless concept, so why do we need another concept, like microservices?

12

What is Microservices?In computing, microservices is a software architecture style in which complex applications are composed of small, independent processes communicating with each other using language-agnostic APIs. These services are small, highly decoupled and focus on doing a small task, facilitating a modular approach to system-building.https://en.wikipedia.org/wiki/Microservices

To understand why, lets see what does microservices mean. In a nutshell, it is an architectural pattern that can be applied almost anywhere, either we are talking about infrastructure, or platform, or application. Think of it like a shredder for software, that makes from complex into simple and from difficult into easy. If its software driven, it could be designed as microservices.

13

Term: Microservices

Microservices architecture is the new trend that makes all of us really curious and very excited. That is why its so surprising that 2 years ago microservices as a term almost didnt exist, according to Google Trends.

14

AgendaServerless Computing

Microservices Architecture

Demo: Scalable Web App

Q&A + Next Steps

Finally, lets get to the demo.

15

Demo: Scalable Web App

www.deep.mgwww.adtechmedia.io

I would like to demo the more complex application like www.adtechmedia.io that uses a dozen of cloud services and hundreds of microservices. But I lack enough time, so Ill show smaller, but still relevant one.

16

Demo: todo.deep.mgInspired from open sourcewww.todomvc.com

Go to the GitHub repositorygithub.com/MitocGroup/deep-microservices-todomvc

Follow the steps from Getting Started to build and deploytodo.deep.mg

todo.deep.mg, inspired from todomvc.com and open-sourced on github. I will follow the instructions from README, Getting Started section.

17

DEEP FrameworkDEEP Framework is a full-stack JavaScript framework, core component of the Platform-as-a-Service that abstracts web apps and web services from specific cloud providers. This framework enables developers build cloud-native applications or platforms using microservices architecture in a completely serverless approachhttps://github.com/MitocGroup/deep-framework

Last, but not the least, Id like to call out DEEP Framework full-stack JavaScript framework for building scalable and cloud-native web applications. Check it out on Github.

18

AgendaServerless Computing

Microservices Architecture

Demo: Scalable Web App

Q&A + Next Steps

And that is all for today.

19

Q&A + Next Steps

github.com/MitocGroup

blog.mitocgroup.comThanks:Abbey from The Linux FoundationHosting Team from Node.js Interactive

slideshare.net/MitocGroup

Before jumping to Q&A, I would like to thank Abbey from The Linux Foundation. And open to questions if there are any.

20

Credits & ThanksSlide 2: Web Applications Challengeshttps://i.stack.imgur.com/qvFJW.pnghttp://www.blog.usefulfreetips.com/wp-content/uploads/2010/05/google_server_error_502.gifhttps://gigaom.com/wp-content/uploads/sites/1/2011/11/5151041232_676410f62d_z.jpg

Thank you!The End :-)