uted Build ServicesDistrib@Mippin
Agenda●   What We Do●   The Problem(s)●   Solution Space●   What Do You Think?
Democratize Apps for the World *                              of WordPress : http:* adapted from Matt Mullenweg           ...
What Mippin Does●   Mobile Apps●   Cross Platform●   Self Service●   Easy●   Award Winning
The Pr oblem(s)●   Generate custom apps on demand●   Provide App Store Ready binaries●   Scale (especially on updates)●   ...
Solu tion Space●   Distributed system●   Cloud and real hardware●   Fault tolerance●   Persist previous versions of an app
Solu tion SpaceAkka Actors● Remote Nodes● Supervisors● REST● Microkernel● Mixed Scala & Java
Solu tion SpaceMongoDB● Replica Set● Files in Documents● GridFS?● Dynamic Queries● Mixed Scala & Java
case SignRequest(server, mippinId, fileName, responseChannel) =>     val mippinServer = MippinServer.whichServer(server)  ...
} getOrElse {           log warn "sign error"           fileRepo.recordBuildStatus(mippinServer, mippinId, fileName,      ...
What do you think?                            back?Sugestions, Questions, Feed
Thanks!● BTW, We Hiring:  ○ JavaScript, HTML, CSS  ○ Mobile App Devs  ○ jobs@mippin.com ● Follow Us:  ○ @Mippin  ○ @Matyja...
Upcoming SlideShare
Loading in …5
×

Distributed Build Services @ Mippin

1,188 views

Published on

Published in: Technology
0 Comments
0 Likes
Statistics
Notes
  • Be the first to comment

  • Be the first to like this

No Downloads
Views
Total views
1,188
On SlideShare
0
From Embeds
0
Number of Embeds
11
Actions
Shares
0
Downloads
7
Comments
0
Likes
0
Embeds 0
No embeds

No notes for slide

Distributed Build Services @ Mippin

  1. 1. uted Build ServicesDistrib@Mippin
  2. 2. Agenda● What We Do● The Problem(s)● Solution Space● What Do You Think?
  3. 3. Democratize Apps for the World * of WordPress : http:* adapted from Matt Mullenweg e-publishing-for-// 1mx1.com/2011/07/democratizthe-world/
  4. 4. What Mippin Does● Mobile Apps● Cross Platform● Self Service● Easy● Award Winning
  5. 5. The Pr oblem(s)● Generate custom apps on demand● Provide App Store Ready binaries● Scale (especially on updates)● Signing● Dependencies on an OS● Concurrency● Bad builds
  6. 6. Solu tion Space● Distributed system● Cloud and real hardware● Fault tolerance● Persist previous versions of an app
  7. 7. Solu tion SpaceAkka Actors● Remote Nodes● Supervisors● REST● Microkernel● Mixed Scala & Java
  8. 8. Solu tion SpaceMongoDB● Replica Set● Files in Documents● GridFS?● Dynamic Queries● Mixed Scala & Java
  9. 9. case SignRequest(server, mippinId, fileName, responseChannel) => val mippinServer = MippinServer.whichServer(server) fileRepo.srcZipFile(mippinServer, mippinId, fileName) map { aSrcZipFile => // run builder val signer = fileSigner(mippinId, aSrcZipFile) signer.build map { aSignedFile => // save result into mongo fileRepo.putSignedFile(mippinServer, mippinId, aSignedFile) // continues on next slide ... st* Signer Actor handles SignReque
  10. 10. } getOrElse { log warn "sign error" fileRepo.recordBuildStatus(mippinServer, mippinId, fileName, 500, "Build and Sign Failed") responseChannel ! SignError(server, mippinId, fileName) } } getOrElse { log warn "no src zip file" fileRepo.recordBuildStatus(mippinServer, mippinId, fileName, 404, "No Cod File") responseChannel ! NoFileError(server, mippinId, fileName) }* When Good Builds Go Bad
  11. 11. What do you think? back?Sugestions, Questions, Feed
  12. 12. Thanks!● BTW, We Hiring: ○ JavaScript, HTML, CSS ○ Mobile App Devs ○ jobs@mippin.com ● Follow Us: ○ @Mippin ○ @Matyjas  ● Want a free app? Email me: m@mippin.com

×