Bestand wählen
Merken

Habitat 301: Building Habitats

Zitierlink des Filmsegments
Embed Code

Automatisierte Medienanalyse

Beta
Erkannte Entitäten
Sprachtranskript
cool so that you're 1 for coming I'm my name's Jenny winds and I'm going to give you talk today about habitat specifically of building habitat and building building with habitat all of
OK let's go so who's in contact
information for me so I had a long time game developer I've also longtime shift user of the road of the shelf and workflow and with the Budget supporting libraries for shaft of them also in evangelize of people patterns of and worked on figure legends that tools to orderings online and most recently a molding all movements and now I work at Shek
and I joined last year to work on an already project I set a long time shift user and I've been using it since 0 7 or 0 8 or something like that and I learned a lot about populations and application of nation from ship on because the super super far but it did it didn't need 100 is underway there but I think that chef is
great for infrastructure but it's just good for applications it's almost there about 95 % away there but there are little paint smells that you'll pick up on and there's a lot of training required to get people going I Michael Burke shelf and Bertoldi to try to help people understand and how a a simple path to get some work it through developing those things I
realized a couple principles that I was chasing after the specifically of automation needs to live with your application you can see that because I promoted that you should have a cookbook with with your software it should share the same version number and then if you change the software year of the version of a cookbook I N little could smell there is like you wanna make a change in the cookbook will malleable application has to have a lot of a right so you can you can feel like a little bit of a the resistance that doesn't really wanna be used that way and the other thing that I realized is that what you should prefer build failures over runtime Phileas always so this is really simple but not in just a convergence can happen and you test it on your build server you tested your cookbooks but for some reason it fails as soon as a cookbook converges in production and you're not exactly sure what so and that would be a runtime failure the good the build value would be that you could book failed tests and or your software was a compiler or something like that and then the last 1 is that you should before court preferred choreography over orchestration but basically what that means is with an orchestrated you tell me to do something you instructor and say a thousand machines across 2 different data centers and half of failed quarter failed I mean and those cases and and orchestration is basically you trying to wrap another problem and solve it with a giant hammer whereas choreography is up things working together you put up much musicians on stage and they know as long as opposed to play with they play on each other so if the drummer speeds of pitch he's probably going to do everybody else the the speed of light on you could do that with Iverson wrote a failed orchestrator and I'm glad it failed because it was the wrong solution I really don't believe that you I could have gotten it right and a lot of people try to create orchestrators to orchestra structure and just not 1 of them has really done the job for me including the 1 I tried to make myself but some other things
that I think is really important to having their automation living with your application is used for all the principles which are gravitation or the point process should be atomic meaning it all and I think it should be isolated and you can see that with the emergence of Dr. Dr. basically isolates environment your application inside opera nothing else right it's because if you go on and some random Cheney install package like say you upgrade of the cell but so the application of multi applications running on a machine you have to go to 1 of right and that's not an isolated environment that's a shared by bad points should also be repeatable in lot water and so if I do that 1 time it should always work and then 1 of the things you'll notice of cookbooks is what we use like the package resources with no version of and you don't know what version that's operating it deployed so technically not have a complete repeatable installations and order is what is running a machines right now so you might have heard of Inspector earlier today and that as we can run on machines to tell you when you have an issue of these 4 things we action
to that currently project I was talking about old habits of habitat use those runtime failures I was talking about into the field but it also embodies choreography instead of orchestration habitat as supervisor that run together and tell each other about what's right and this virus summarizes react to the presence of others supervisors by telling the application of about a new supervisory and new applications during but that also you have isolated builds an ontology bills so any number of verses that you would see can be a machine with any number of versions of software consuming them and the same for all but as a cell in any of the other libraries and the black soldiers of but I'm not used as we talked about habitat but I would assume that you have a basic knowledge how exactly we saw 1 of the 1 of the 2 0 1 talk today I'm going to talk about the which is
what my primary goal was after the initial push the habitat supervisor have the builders of mesoporous service platform but to build your package basically on the set this just get a new features will be rolling out over the next few months so we'll have an exact timeframe yet but but it's both a package repository and adults this it's open source so you can run it on your own infrastructure you use our public what this is actually alive today you
see it looks like the supermarket for habitat the 1st addresses the web client the 2nd 1 is the URL for viewing pro-American started yet so I
had a lot questions about why why am I build another build server right there's Travis chains of end we believe that the star of purpose-built bill service in built into the community site would allow you to do things like that for much of the closing patterns we need that anyway all public buildings those packages and and a history of where those factors came from and you can look at any time and say 0 this version of a cell that I use when was the build up to that and theoretically 10 years from now you should be also go back and look at whatever the version of so built on 0 I you want to but you could technically do that of another thing that Bible their own build server lets us do
is automatic rebuilding of the every 3 publishing of your packages where dependency of yours changes end the yeah for
people unfamiliar but this is a plan this is for the component of the bill and this 2 lines there was packaged apps and there's the package build it's package that's part what we depend on at 1 time so when I say automatic rebuilding of things I mean the way coral this cell gets updated we will automatically field your software to be linked against that new version open as a cell if you want the I you don't want to rebuild then we will need to but this is important because habitat assumes that the habitat you can you don't have a son but it automatically updates your offer for you it's running incorrect correct to of public people so if we find as solvability for its origin that we published a new version of the cell out automatically yourself will know there was an issue rebuild against the new cell published to the public the bow and then your software that's running as long as you have model updating I will pick up those updates and you won't even be woken up in the middle of the nite right like if you had inspect set to waking you up if there was a vulnerability of a certain threshold you won't even see it most likely that we catch it publishes out or if it did wake you up it would be too late and finances go by yourself or be rebuilt on the right so on will the building building and that's basically the premise of this talk is to educate people about building for users and also for people that are potential collaborators and show how habitat helped us build so little warning here
and what it's gonna get then I will take into this talk to get credit for a technical part of the story great company and remember but again if you are if you haven't seen the 1 on top of it you on top of this might be a little rough and gonna seems knowledge of rust and I know that I ask through this if anyone arrested there was an and so feel free to ignore the slides that have rest on and I'll just tell you what it says so I hope that this talk helps at people as they get more familiar with rust like said will act they help President trying to help people out get to be answer the person you know about the builder
is that it is a serious service oriented design I it's really important that we built a scalable system here because the thing that I just mentioned about the dependencies automatically rebuilding is flight poverty up as a standard problem everything depends on tumor what if we change you would see a we updated every piece of sovereign go but still active will need to be up here so there's clever ways of resolving this and then we're gonna go through those so this 3 to use your uh what is the weight of it's their job is to authenticate you format your requests into the into the clusters and then they send those throughout the nodes and their job is to send them to the appropriate service service nodes are like sessions server and the place that stores all your personal information and the job and this is the service layer each 1 of these is written rust except the databases and maybe the client you could write clients the top we have gray boxes little lines that connect into weight the black lines represent connection past so think clients connect into the gateway to the she wears a RESTful interface it's 1 edge nodes that performs authorization of vacation and also formulate your request for the unit cluster it's also in a public subnet and everything else and practice of of all of this that you deployed I would recommend it to to be that way but the gateways connected the routers interactions fully matched so there's 2 connections between them both the only fully matched nodes that important because those things I can talk to each other below that various services that connect into their own servers and they don't know about each other so job server can canister such server directly the past message around the and not that's the message offered to do so said session also top job to the message of the outer and the jobs that the body of the database is the services connected databases where workable which connects and the jobs of people jobs to do the bills of so
1 of the questions that even getting his mind rests on those really popular language right out great I big fan of her little exerted on my program with that for a couple years and had a great time of wireless identified in the note when I 1st started by this new is this range language that I should look into it some point of but actually in love with his language and it's a systems programming language that is blazingly fast but also offers other thing that's unique to systems programming languages which is memory safety without a virtual machine what that means is you cannot have double freeze use after freeze dangling pointers there is no such thing as a memory leak unless you're using unsafe for us and we won't talk about unsafe roster of it also spread safety guarantees and great tooling which makes it basically of modern city of completely also work so this is the
really technical part I want to keep the boardroom about how builder works and how we process a job because I want developers to help us build this so this next this bit here is gonna be starting new bills and how worker picks up it does the work and the publishers into the deep on
and there's 10 Hobbes each 1 of these hops represents loss of places that a message gets handled in in transforming them so that the next node and go through how you with anarchy and how you create a new job from a project and how the worker comes in itself and so the 1st is the client the client request the job is done very it the rest or even use the web client and it's going to get the the the the rest gave me as well because we were quite is written in your 2 it's just a acquired side and see of jobs that when writing it stated Smith made bid to begin I was never a fan of JavaScript and our back should be some really crazy or something you you can do with the and it's this probably 1 of the best from and so I've had the pleasure of such city ACP clients set message to the right so this is the 2nd half of like that and the rest the way we should be doing is the public facing the edge of it performs extra authentication mixture or identify make sure you're OK to do something for identified so we do that with all of the breakdown you get up so basically you take your personal access token that you generate from get and you put into opposition header and say this is why and it comes through we transform your request into a net request and we for along the router after me for a long we sit there we wait for a response we call these network transactions so the organization that is specified and authorization headed we're about the value that we put into something called protocol message which is a binary message out of order for that'll take any rats are available and the routers therefore that question the appropriate sessions because such a also and so you can see the path of the request and the bottom word on the sessions so I talk about of
binary particle that were were speaking on the network protocol and then we call that building that I worked on building that protocol it comprises 2 components 1 is 0 you sockets and the other 1 is programmer pruning of is a
language-agnostic DSL basically that is the bottom their represents a structure and that it be compiled into any language so when I try to create the protocol messages for rusticos and reads these profiles it would change that representation into Ross was about this is any language can talk to anyone the servers that's in the builder clusters like they're already rostering out but they don't need to be written rust as long as you can talk about which every language has implantation for almost but decide to a lot of languages have an implementation you can talk to our services something that is really normal opera about is that it also provides backwards compatibility between service provision is so the news service comes out when we have the we update the service it receives a message from an out-of-date server it will still be able to read the code that message and that's really important for the way that we want operate we what are supposed to be choreographed together I don't I don't want to take an outage because I need updating owing to a rolling restart what habitat coordinator for me but I also want stories the database itself was so it's really nice to be aware of the fact that the other is 0 here these are
just sockets on steroids it's not a message by us it's not all that didn't you or evidence you verily sockets that have queuing and they're very customizable all series you work with also not specific to rust implantation of this exists for many languages of it is an excellent C libraries through language doesn't support you could type that but but most major lenders had so the sockets speak protocol of the bite interpret about messages into a binary protocol and it gets sent through each new reserves all this is
the basic on hold for all messages we talk about the network services talking to each other they always have a model wrapping the content and this is what I see there's 2 bits here and then the content of the message so was to have been will appear on the on the stage and I would have the the destination which is the out information that's like what the post office would do to know where some things and then I have a message ID which is like saying what kind of thing is this mass this is this message that's a hint for decoders and for dispatches to know how to handle the message and then there's a serialized message by so any time you see another program of message on the screen here but part this is encoded version of 1 of those this is just the optimal rats I've also included in the past so if you call the source tree you can find the builder protocol components inside its particles directly contains every particle curve so with the authorization we basically take their hair out we create a brandy such that we the tokens in the tokens field so the 3rd part is the answer
I mentioned that they should quite talks the gateway the gateway says I need to do some authorizations of innovation and its energy relative to the such as all has announced know how to get the sessions what it does is it reads that article of information like the post office has that routing info right where you where the where the destination right so they're out of most of 2 markets protocol which is what service you try to send this message to the 2nd 1 is the routing and we'll talk about that a little bit but that's sure so so that the rest of the reason our information for it across to the appropriate service which brings us to the 4th part which is the sessions of secession servers gonna see that at the outset it's dispatch that session get message to a handle on what's important here is that developers coming in and you don't need to worry about this to very complex multithreaded environment in the hills you that you're working in something I would call a single-threaded server on STS when again message into and and you can do anything you like that but it's basically your space you don't need to interact with any other threads carries work of so they had a incident in books the data store for the session that you have 1 it's going to say here's a certain you don't have 1 is going to give you that and that there and we'll talk about those in a sense that's basically what services such a message looks like and that would be in the session served up so we apply it it's an error we return this thing called and that make errors are a response to a transaction part of the cases they have 2 parts 1 is the error code and the other is the error message the error codes for the user it's so that we can do localization basically error code AE means session type I error code 1 means generic type and I just have to know what bunch of art but any client to that represented in any language the next day is the message using political message but not for you it's actually the developer it's composed of 3 parts 1 is due care code from service to is what operation functions happening have failure in 3 is the case so for instance Archie off 1 final means that we were unable to go talk to the external service to verify that the session was out of you can also find out by describing the source code which makes this really easy to debug what happened in this large distributed system of molecules up here and tell you about the errors in the system like having a handle on but I think it's really important because of the codebase is large and service-oriented so there's a lot of pieces of moving and knowing how to debug problems is really helpful that organism that this wasn't OK case so we're sending back a session so that this Hobbes is that the router receives a transaction applied from a certain server it sends a response to the appropriation of the way this is important because there can be multiple EGG gateways that arousal know about right and has no how messages have connect the differential wilderness so the using receiver message receives a reply and then it knows which claimed that descended for again knowing as you need to know how to do that automatically doesn't of the client thread then creates a new project get message from the parameters that you originally sent he said in job of and basically a project is associated to every package that you have so a package to be correlated X right In the bills services you have build output or the ability to say I want to build core and units so if that's the project and the project is associated to a like give up a repository of the past the plan files build in some additional information in 14 GUI is not ready yet so I can't show it to you it might make more sense later when I chose not to the but the project gets stuff is specified inside of evolved from of so we can see what right and what it lower it was rather essentially the also of torque
2nd but as a tennis started explains how the message is actually in the right place because I
mention that we shot in our data in front of the room is not really showing basically that means that there's x amount of buckets they're identical but they contain different information in so in this room and there a 100 people here and we have a hundred shots theoretically 1 of us would be in every single bucket if you're able to distribute evenly across the shots and what also does for us is if the shock goes down we don't have full knowledge and is also lost scale out easily by moving charge additional machines so here what we have is to routing servers and the connected deformable Bolsover's in those 4 Bolsover's have these numbers in the bottom they represent shots so shots 0 3 127 we 120 charge 3 shot 100 body 120 times so full server for over here if that goes down only 32 shots go down which means that only a percentage of the room would have an issue and they would only have an issue with the working with also of also connected databases which have low shots as well so the basis of the dictionary so builders
service-oriented in shot but like I mentioned about how to choose 1 of the reasons that we do this was to prevent full out of our system lost it to distribute out but a service goes down only have partial outage for that service so the job server goes down it's OK you can still login and download packages everything's fine but you can't make the jobs on the sharpest out only a partial knowledge of that service for a subset of users so the more machines we have running the shots of 2 people say 128 because I preacher 100 180 20 times if 1 node goes down only 1 128 the population experience the issue with that service but this also allows to add machines by rebalancing those shots land machine and then the chart vibrates on over to of so
now we know which are in is I think I'll explain passions the hash 2 destination shot there's a point where we have a message those particle messages and is 1 field line every message of support
it's called the rout the the round he
is not able to be defined in roster by specifying a function that returns a value I that node of the room those thrust but basically what this says is that a message of protocol message allows has a function that returns something or nothing in return something it's of value to then hash input into the hash value of the Republic of of what this allows us to do that is modelled that hatch against the amount of charge that we have then determinist we're out your message the appropriate place this is the implementation of the tree that I just showed the top is the project that message which would get compiled the rest of them this is me implementing routable trait for project get you'll see that what I returning in this function that defined is that in stead ID that I'm creating from the idea of the message which brings us to the
next important bit which is how old are entities are cataloged they all use something called the inside the inside is a 64 bit integer but it's not OK it has 3 parts of it in there you can pull out 1 of them is that create time which is exactly what type was created sensors sensing epoch in which allows us to create messages for 75 years entities for 75 years or so before you run out of ideas that we can do about it I'll be dead by then so it's OK ideas that's your problem is only 5 years but sequence ideas automatically generated by the database which allows us to create an off thousand 24 messages of every 2nd or so and then the next is the shot and this was inspired by Instagram engineering this slightly modified from there's so what this allows us to do is every time you create new thing on a on a database we know exactly what shot it came from because the data of working from is hidden inside identified the identifiers are guaranteed to be unique because it sequentially decreasing over time I can also take every job ad serving created a every it's the the system and tell you what I was done just by looking at the idea this is a whole lot data here in just 64 bits this is the implementation rests on
what leaders of the very long but basically what it shows you is that the 1st 32 to this is the time the next 30 minutes is the interesting idea in the last 10 this is the charter that's how we generate so let's get back thinks what we were just talking about this project yet you're getting a project on the GPU way through the also 2 then we'll pass the job server pay I want to build a job based on this project and that project is scoring to exercise so have also received a message for the rather that that dispatches it to a project at handle just like we discussed before the session server and there is a project in the database and replies to each the way through the rats so the message comes back to the begin the important
years what ones that pulsar why was the project where basically the ball service persistent storage for origins of projects and shared entities anything not specific to your exact account your account stuff lives and session and then every other things that exist in our system lives in a distributed and historical bubbles which is backed by
rest which brings us to how we persist protocol of messages into the database what's really need is we have backwards compatibility and resident key-value store right so if a new version this offer comes out it pulls entity other database because we stored in a protocol message we are able to translate it into the newest version in restoring the database and they should be justified I we can persist the part messages
directly into the database with a trait that's just like that rival tree that I showed which basically just need to define 2 functions which are a primary key and had a set that primary key this is the implementation of it just as simple as the last 1 at the top is the project that you have in the bottom is saying that the idea is the primary key mental sets so
this is how data 10 were almost there is everyone's still with me here no no it's nothing yet OK so so we receive a reply from the outer and we created new jobs that from this session the project a job spec is saying like I want a job this it's from this project and then we're in a message that through the answer to the job server just like every other services and that's the jobs that looks like it has already who started a job in the 2nd is is the project that the job originated from jobs a receive that message dispatches the jobs that to job creation creates a job process that database the database has also be what Q for us which is a less specific so this'll excuse
windows you right and the job server stores it in the but the whole job history you have the state of the job of an actor jobs set placed in our system you and then our job creates excessive failure eventually it's that quite throughout server through to the so now they should the way says OK I got my reply to a successful we create your job now a serializer job adjacent Sundaresan you to other OK with the Jason represent representation the job and
again the user traits to say this protocol message looks like this and J. store so every time you seen in implementation of a treaty it saying this how we're out of this is our process the database and now this is how we represent entities so the Jason responses so it's just the idea of the so the job so they're your
jobs done you're told the jobs created but it needs to pick the by worker so there's a pool of workers are running
connected to the job service and the lower specific so this for workers here to allow to windows and there are any number of workers
connected to any number of jobs in recent times under OA specific like I said that builds are done with it in a studio on the world this is huge foot tunicles emerging and he spent a lot of work on this thing called the studio much if anyone here has sent through the the top yet but it's announced it is amazing what the 1st mate this thing I did notice for the idea that you really smart guy distrusted of as Fletcher take the wheel this 1 and eventually when I get to the part where the workers need to go build the software by my was blown I had nothing simply nothing it shells out to the Habitat binary worry have incest have studio build this and then we have a container that runs the whole job that you asked for in an isolated environment from everything else on the system which allows us to have safely run jobs select UK give me something bad destroyed by workers have nothing will be left over between nodes of 1 member of the audience for the job another 1 runs in I read something I don't have a artifacts or anything like that in your secrets is a fully contained admirer that gets font every single time a worker picked up job so the next is that habitat builder is actually self-hosted so I said that I use habitat build builders this is what I mean habitat supervises all the builder processes the super wanted supervisor watches the public depot which is itself to wait for package updates of itself builds its self in 7 states package to itself and then it automatically updates when the bill published to itself because it was watching itself it's totally works and I think it this is pretty much the part where it all came together and I just do not expect to happen and I had to go for a walk reduction well I don't is that here at all so I this is what
the source tree looks like well 1 of the habitat components that we have the play that is each file of which is the entry point I think directory there have been numerous inside
the directory there's no default told the default defaultable is the thing that is a translation layer it's like the templating ship and you take things the gossip players telling you in term the figuration you know the reasons will told this because builder
uses than native configuration that habitat supervisor just don't tell anyone in this is some of you can see that there a generic figuration of there and and there's no doubt here the bottom buying routers members that's actually dynamic that was found in written to work Fig file because of something that we call upon where this service found more routers and will automatically configure itself on the presence of the routers and by using the native invigoration filed made my plan template even simpler because you need to have a translation of this is not required but it's really need if you're building services would have mind you don't need to use your your plan it's even some of whom has heard of the director
cool that's more than yesterday excellent but so the director is nothing that supervisors supervisors and this is important for the builder because builder has a lot of components and what we wanna do is
have 1 thing run and monitor every supervisor that's on a new surprising our software so this is a system the convey of the directive which starts from a configuration file this is the configuration that it's starting in the director which is very simple and it's toll again in the course this year part of that start those parameters are what you ask the command line you can see a binding a database her radius in that environment but rather than by the router and have built router from environment as well so this says that I'm going to look for a database radius in this environment and above that I have also starting rest database in that environment and so the last slide I should binds routers members this is how think it's populated using violence by is
basically service discovery the last thing I wanna talk about the habitat really help me out with was the shot allocation so this infrastructure that I just described the and if you ever see the talk that I gave a year or 2 ago matches about up some rules about moon rise again I was working actually very familiar because this is is video game back and architecture that I've just purpose for builds and it's a generic distributed system right all but 1 of the problems I had when I was working on the US was allocating the shots but turning on the initial environment was a pain but you
have to handcraft some environment J. science or a for your environment putting the chef server run everything people of serving meeting changes you need to go and essential steps over again and then run Chef and hope that the basic the logic of the application that charge the balance the way as they will solve this is using the topology flank inside habitat and by having a master rather be elected through this life basically what happens is the Masoretic turns on its can expect in number of nodes of a service to come on line in asking for shot assignments and so the mass returns on it says I expect for sessions servers Sobel pre shot outside will take the 120 shards dividing up 4 times and hand them out to service as they come in what this is what this allows us to to do is all you need to do at the server is add on a new server with the topology flights at the leader will join the ring you increment the number of servers you expect as the new guy comes in the mass parameter says to the other nodes I need some of those shots back so we take partial outage at hand them off to the news show the news and I need to do any of the leverage because habitat for me the and there's 1 more thing I wanna talk about which is found bring your own worker I talk about
the ways the rest they also talk about how your packages can be of oral built if 1 of your dependencies that you depend on change while what's hard about that is we only have a certain number of public workers available and if I change open as self-report everyone's packets going up the and and another thing is like if there is no public workers in you have a bill that must go all it you need a vastly and 1 of the things that we're gonna be providing at some point is a gateway for you to connect your own workers to you can make your own workers as I describe the protocol it doesn't matter what language you use you do not need to use rust or you can use are were connected to authenticate through a gateway for workers and then you can have a fast lane for your notes so bring your own workers basically any machine that you wanna connected the public cluster you don't need dissent set preventing the cluster you disconnect the workers in and basically how we're going to be able to handle the model rebuilding the entire world is by telling you that you need to bring your helps the public with this will never be available so we have happy tomorrow
it's about 10 AM to 3 PM and I'll be there on the track of people with trust in the code base of that and I'd love to see anyone come interested in you build a core have for us and that's it but of the hear what you go thank
Mustersprache
Gebäude <Mathematik>
Programmbibliothek
Gebäude <Mathematik>
Information
Ordnung <Mathematik>
Figurierte Zahl
Verschiebungsoperator
Wellenpaket
Kartesische Koordinaten
Projektive Ebene
Verschiebungsoperator
Gravitation
Subtraktion
Bit
Prozess <Physik>
Punkt
Wasserdampftafel
Compiler
Mathematisierung
Gruppenoperation
Versionsverwaltung
Zahlenbereich
Gebäude <Mathematik>
Kartesische Koordinaten
Rechenzentrum
Virtuelle Maschine
Multiplikation
Prozess <Informatik>
Software
Randomisierung
Installation <Informatik>
Datenstruktur
Vervollständigung <Mathematik>
Rechenzeit
Gebäude <Mathematik>
Rechenzeit
Arithmetisches Mittel
Rechter Winkel
Server
Ordnung <Mathematik>
Programmierumgebung
Computervirus
Dokumentenserver
Open Source
Versionsverwaltung
Zellularer Automat
Zahlenbereich
Gebäude <Mathematik>
Systemplattform
Virtuelle Maschine
Dienst <Informatik>
Datenfeld
Menge
Software
Programmbibliothek
Projektive Ebene
Web Site
Dienst <Informatik>
Verkettung <Informatik>
Rechter Winkel
Browser
Gebäude <Mathematik>
Mustersprache
Adressraum
Versionsverwaltung
Zellularer Automat
Abgeschlossene Menge
Teilbarkeit
App <Programm>
Schwellwertverfahren
Mathematisierung
Gebäude <Mathematik>
Auflösbare Gruppe
Versionsverwaltung
Automatische Handlungsplanung
Zellularer Automat
Gebäude <Mathematik>
Informationsmodellierung
Softwareschwachstelle
Software
Rechter Winkel
Offene Menge
Mereologie
Speicherabzug
Zusammenhängender Graph
Gerade
Router
Gewicht <Mathematik>
Quader
Gateway
Interaktives Fernsehen
Client
Knotenmenge
Einheit <Mathematik>
Web Services
Prozess <Informatik>
Gateway
Router
Cluster <Rechnernetz>
Gerade
Web Services
Einfach zusammenhängender Raum
Autorisierung
REST <Informatik>
Datenhaltung
Physikalisches System
Knotenmenge
Rechenschieber
Dienst <Informatik>
COM
Mereologie
Server
Dateiformat
Information
Message-Passing
Standardabweichung
Bit
Formale Sprache
Virtuelle Maschine
Gefrieren
Physikalisches System
ROM <Informatik>
Virtuelle Maschine
Leck
Spannweite <Stochastik>
Thread
Prozess <Informatik>
Fächer <Mathematik>
Rechter Winkel
Festspeicher
Systems programming language
Mereologie
Delisches Problem
Systemprogrammierung
Softwareentwickler
Optimierung
Zeiger <Informatik>
Systemidentifikation
Router
Programmiergerät
Einfügungsdämpfung
Selbst organisierendes System
Browser
Gateway
E-Mail
Binärcode
Socket-Schnittstelle
Message-Passing
Client
Authentifikation
Prozess <Informatik>
Fächer <Mathematik>
Autorisierung
Endogene Variable
Protokoll <Datenverarbeitungssystem>
Socket-Schnittstelle
Zusammenhängender Graph
Router
Integraloperator
E-Mail
Transaktionsverwaltung
Autorisierung
Datennetz
Protokoll <Datenverarbeitungssystem>
Gebäude <Mathematik>
Token-Ring
Zusammengesetzte Verteilung
Transaktionsverwaltung
Rechter Winkel
Lesen <Datenverarbeitung>
Client
Authentifikation
Wort <Informatik>
Identifizierbarkeit
Projektive Ebene
Partikelsystem
Ordnung <Mathematik>
Message-Passing
Multiplikation
Formale Sprache
Selbstrepräsentation
Implementierung
Gebäude <Mathematik>
E-Mail
Code
Socket-Schnittstelle
Message-Passing
Web Services
Socket
Modul <Datentyp>
Protokoll <Datenverarbeitungssystem>
Programmbibliothek
Cluster <Rechnernetz>
Web Services
Protokoll <Datenverarbeitungssystem>
Datenhaltung
Reihe
Profil <Aerodynamik>
Systemaufruf
Zeichenkette
Dienst <Informatik>
Formale Sprache
COM
Server
Programmbibliothek
Versionsverwaltung
Koordinaten
Message-Passing
Bit
Formale Sprache
Gateway
Versionsverwaltung
Inzidenzalgebra
Raum-Zeit
Komponente <Software>
Client
Web Services
Einheit <Mathematik>
Code
Autorisierung
Serielle Schnittstelle
Protokoll <Datenverarbeitungssystem>
Router
Kurvenanpassung
Funktion <Mathematik>
Nichtlinearer Operator
Lineares Funktional
Parametersystem
Softwareentwickler
Oval
Datennetz
Dokumentenserver
Gebäude <Mathematik>
Stellenring
Ruhmasse
Quellcode
Arithmetisches Mittel
Transaktionsverwaltung
Dienst <Informatik>
Token-Ring
Datenfeld
Funktion <Mathematik>
Rechter Winkel
Client
Lesen <Datenverarbeitung>
Server
Benutzerführung
Projektive Ebene
Information
Decodierung
Programmierumgebung
Message-Passing
Instantiierung
Fehlermeldung
Decodierung
Selbst organisierendes System
Automatische Handlungsplanung
E-Mail
Code
ENUM
Message-Passing
Multiplikation
Informationsmodellierung
Datentyp
Endogene Variable
Gateway
Thread
Zusammenhängender Graph
Gruppoid
Inhalt <Mathematik>
Softwareentwickler
Optimierung
Speicher <Informatik>
Transaktionsverwaltung
Touchscreen
Autorisierung
Fehlererkennungscode
Protokoll <Datenverarbeitungssystem>
Token-Ring
Physikalisches System
Hill-Differentialgleichung
Office-Paket
Zeichenkette
Energiedichte
Moment <Stochastik>
Thread
Mereologie
Speicherabzug
Partikelsystem
Zentrische Streckung
Addition
Virtuelle Maschine
Datenhaltung
Minimum
Basisvektor
Server
Zahlenbereich
Information
Message-Passing
Web Services
Hash-Algorithmus
Teilmenge
Punkt
Partielle Differentiation
Gemeinsamer Speicher
Physikalisches System
Teilmenge
Virtuelle Maschine
Message-Passing
Dienst <Informatik>
Knotenmenge
Datenfeld
Prozess <Informatik>
Hash-Algorithmus
Protokoll <Datenverarbeitungssystem>
Server
Partikelsystem
Gerade
Message-Passing
Lineares Funktional
Protokoll <Datenverarbeitungssystem>
Installation <Informatik>
Implementierung
Routing
Unrundheit
Ein-Ausgabe
Gerade
Feuchtigkeit
Netzwerktopologie
Message-Passing
Knotenmenge
Hash-Algorithmus
Projektive Ebene
Message-Passing
Implementierung
Folge <Mathematik>
Bit
Folge <Mathematik>
Datenhaltung
Gateway
Implementierung
Datenhaltung
Message-Passing
Ganze Zahl
Prozess <Informatik>
Ganze Zahl
Mereologie
Datentyp
Lesen <Datenverarbeitung>
Server
Identifizierbarkeit
Projektive Ebene
Message-Passing
Protokoll <Datenverarbeitungssystem>
Datenhaltung
Versionsverwaltung
Speicher <Informatik>
Physikalisches System
Eins
Dienst <Informatik>
COM
Rechter Winkel
Mereologie
Projektive Ebene
Speicher <Informatik>
Message-Passing
Lineares Funktional
Datentyp
Prozess <Physik>
Datenhaltung
Gateway
Implementierung
Extrempunkt
Menge
Datenhaltung
Netzwerktopologie
Message-Passing
Web Services
Menge
COM
Prozess <Informatik>
Design by Contract
Minimum
Protokoll <Datenverarbeitungssystem>
Server
Projektive Ebene
Schlüsselverwaltung
Message-Passing
Implementierung
Prozess <Physik>
Protokoll <Datenverarbeitungssystem>
Datenhaltung
Selbstrepräsentation
Gateway
Implementierung
Physikalisches System
Systemaufruf
Endogene Variable
Warteschlange
Thread
COM
Prozess <Informatik>
Endogene Variable
Bildschirmfenster
Client
Server
Serielle Schnittstelle
Speicher <Informatik>
Message-Passing
Implementierung
Aggregatzustand
Umwandlungsenthalpie
Prozess <Informatik>
Nabel <Mathematik>
Gebäude <Mathematik>
Zahlenbereich
Physikalisches System
Binärcode
Systemaufruf
Ordnungsreduktion
Message-Passing
Dienst <Informatik>
Knotenmenge
Software
Prozess <Informatik>
Bildschirmfenster
Mereologie
Programmierumgebung
Aggregatzustand
Router
Punkt
Gebäude <Mathematik>
Automatische Handlungsplanung
Quellcode
Elektronische Publikation
Term
Dienst <Informatik>
Web Services
COM
Endlicher Graph
Code
Minimum
Translation <Mathematik>
Zusammenhängender Graph
Router
Konfigurationsraum
Verzeichnisdienst
Default
Figurierte Zahl
Web Services
Radius
Schnelltaste
Parametersystem
Installation <Informatik>
Datenhaltung
Physikalisches System
Elektronische Publikation
Richtung
Rechenschieber
COM
Einheit <Mathematik>
Software
Mereologie
Speicherabzug
Zusammenhängender Graph
Router
Programmierumgebung
Konfigurationsraum
Betriebsmittelverwaltung
Router
Mathematisierung
Zahlenbereich
Kartesische Koordinaten
Mathematische Logik
Netzwerktopologie
Knotenmenge
Computerspiel
Unterring
Gerade
Videospiel
Parametersystem
Matching <Graphentheorie>
Ruhmasse
Schlussregel
Physikalisches System
Partielle Differentiation
Knotenmenge
Summengleichung
Dienst <Informatik>
Verbandstheorie
Rechter Winkel
Server
Computerarchitektur
Programmierumgebung
NP-hartes Problem
Punkt
Protokoll <Datenverarbeitungssystem>
Mathematisierung
Formale Sprache
Zahlenbereich
Code
Virtuelle Maschine
Informationsmodellierung
Weg <Topologie>
Gateway
Speicherabzug
Hacker

Metadaten

Formale Metadaten

Titel Habitat 301: Building Habitats
Serientitel ChefConf 2016
Autor Winsor, Jamie
Lizenz CC-Namensnennung - Weitergabe unter gleichen Bedingungen 3.0 Unported:
Sie dürfen das Werk bzw. den Inhalt zu jedem legalen und nicht-kommerziellen Zweck nutzen, verändern und in unveränderter oder veränderter Form vervielfältigen, verbreiten und öffentlich zugänglich machen, sofern Sie den Namen des Autors/Rechteinhabers in der von ihm festgelegten Weise nennen und das Werk bzw. diesen Inhalt auch in veränderter Form nur unter den Bedingungen dieser Lizenz weitergeben.
DOI 10.5446/34633
Herausgeber Confreaks, LLC
Erscheinungsjahr 2016
Sprache Englisch

Inhaltliche Metadaten

Fachgebiet Informatik
Abstract A year ago I finished building a large distributed system to support an online game. We used a the most advanced tooling and patterns known at that time but we still didn't exactly get what we needed. [new paragraph] Habitat needed a similar large, distributed system of it's own: Builder. Builder is the first production application built with Habitat in mind. I will explore the development process of Builder, lessons learned along the way, and show you how Habitat helped us build and deploy a scalable, distributed hosted service.

Ähnliche Filme

Loading...
Feedback