Placeholder Image

Subtitles section Play video

  • (light classical music)

  • - Good morning everyone and thank you so

  • much for coming.

  • And thank you for having me here at GOTO Amsterdam

  • I'm very, very happy to be here.

  • My name is Ray, I'm a developer advocate

  • for the Google Cloud Platform.

  • And there are two things that I do, that I enjoy doing.

  • Number one is I love to bring some of the latest

  • and greatest technology from Google that

  • we have to offer to developers all around the world.

  • And the second thing I love to do is to hear about

  • your experiences and your feedback about the session

  • today upon the technology

  • I'm going to show you today.

  • And also about the Google Cloud Platform as well.

  • And the best way to reach me is on Twitter

  • @saturnism, that is my Twitter handle.

  • So if you have any questions, please feel free

  • to reach out from there.

  • An aspect of technology, I mean I've been

  • doing technology for a very long time, 22 plus years or so.

  • And prior to Google, I was working at

  • an open source company.

  • Prior to that I was at a consulting company.

  • But the other true passion of mine is actually traveling.

  • I love to travel and I often take photographs as well.

  • And if you'd like to see some of the photos in places

  • I've been to, feel free to check out my Flickr at

  • flickr.com/saturnism as well.

  • If you have any questions about these photos, especially

  • where I'm holding a compass in the middle of the desert.

  • I don't have the time to talk about it today.

  • But, I think my sound just went away.

  • There you go.

  • But if you have time, just come up and ask me about

  • this story and what it's about.

  • So I'm here to talk about microservices today.

  • And I'm assuming that many of you

  • have already heard of microservices, right?

  • How many people here knows about microservices?

  • Yeah, I know, I know.

  • So I'm not here to talk about the theories behind it.

  • I'm not here to convince you one way or the other of

  • what you should be doing.

  • But, if you do want to explore and create microservices

  • on Azure, here are a few things I'd like to share.

  • And this is going to be mostly a how-to and experiences

  • that we are happy to share with everyone.

  • The first problem that you're going to run into

  • is that as you are decomposing or as you are

  • creating a new application, new system with microservices.

  • The first problem you're going to run into is

  • there are going to be so many services.

  • If you decompose a simple application into say two services.

  • You have the front end,

  • and you have like multiple back ends, say two back ends.

  • And that's already three instances of your application

  • you have to deploy and manage; rather than just one.

  • And of course for redundancy reasons, you probably have

  • multiple instances of each of those services.

  • Well and now you're looking at potentially a

  • multiplication problem.

  • You have three different services, you have to deploy

  • two each, that's six you already have to manage.

  • Well two is probably not enough.

  • In my scale, some of these layer out more than the other,

  • and eventually you're going to see maybe 30, you know,

  • 40, 100, instances that you all have to deploy and manage.

  • And that will be fun.

  • And the traditional way of managing these services

  • just don't work anymore.

  • Why?

  • Well typically what's gonna happen is that before

  • your project even starts, maybe even now.

  • You have to request the servers to be procured

  • Right I don't know if that happened to you,

  • but when I was doing my project as a consultant,

  • I have to order the number of servers

  • even before the project starts.

  • Maybe nine months before the project finishes.

  • And then the servers would come in

  • and what I have do is do what?

  • I have to write the little documentation that's

  • very, very low of how you are able to install the servers.

  • And put the right components onto them,

  • and then finally deploy out your application

  • So like the company insisted that you do a piece you

  • have to install.

  • How you want to configure the hosting, the network,

  • the firewall, and then you probably lay down like

  • you're using a Java application,

  • you lay down the application server,

  • like Tomcat or WebLogic or whatever.

  • And then you configure it, and finally you deploy your

  • application onto it.

  • And then very quickly, you're going to find out that the

  • group woman probably doesn't work the very first time.

  • How many people have that happen to them before?

  • Yeah, I though so.

  • And the other problem you're going to find out,

  • is that in that in the production environment, you are going

  • to run into the trouble where it just doesn't work.

  • And it works in your house of set up production.

  • Or how many people have that happen to them as well?

  • Yeah, (laughs) it happens all the time.

  • And the problem with that is that usually that this

  • long and complicated procedure is either done through

  • manually, where somebody actually follows it to

  • create that environment.

  • And it's not very consistent.

  • And if you're scripted also, you have to write that script.

  • And if you make any mistake in that script, then you're

  • also going to run into troubles.

  • And those scripts may even run differently from

  • environment to environment.

  • So one of the first things that we need to solve

  • is how do you actually deploy the same application

  • multiple times at this scalable fashion?

  • And one of the first things that you

  • need to look into of course, is the container.

  • How many people here know about back end containers?

  • Oh everyone, yay!

  • All right, so not going to into those in detail,

  • but just remember--

  • (disruptive scuffling)

  • Hello, hi.

  • (laughs)

  • Just remember that

  • if you're using containers your back end--

  • (disruptive scuffling)

  • The insulation procedures in a sequential order.

  • Just checking if there's another sound, yeah?

  • And that is still that kind of thing in terms of

  • what you want to run.

  • And that image can be deployed anywhere else.

  • And you can very quickly send out new application instances

  • very, very quickly.

  • The other problem you're going to see is that

  • if you have so many services,

  • you don't want to put all of them individually

  • one on a single machine, right?

  • Because if you have 100 servers,

  • you don't want to have 100 machines.

  • So what you need to do is to bean pack them as

  • efficiently as possible into a single,

  • or the fewest machine possible, so that you have

  • less infrastucture to manage.

  • And when you do that, then you're going to run

  • into issues where occasionally you may have multiple

  • instances on the same machine.

  • The first thing you're going to run into is

  • the port conflicts.

  • And you want to avoid those as much as possible.

  • And then you have other challenges as well.

  • How do you make sure that they're all up and running?

  • There are so many to monitor.

  • How do you do that?

  • You cannot do that manually, of course.

  • You need to be able to check the health

  • of these systems and individual services,

  • so that when they have issues,

  • maybe you need to restart it.

  • And then again, you don't want to do it mentally.

  • You might want to do this automatically as well.

  • And one particular challenge that I see

  • and they need to ask me is about environments.

  • If you have say 30, 20 services in your environment

  • that you have to run and manage.

  • How do you create more of these environments

  • and reproduce it in a consistent fashion?

  • Remember, deploying one application is hard enough

  • when you don't have the right tooling to do so.