Building a backend for a successful social game is always challenging: It needs to service over 1 million users per day that generate 10.000 http requests per second or more whereas the vast majority of those requests are changing persistent state. Using a conventional technology stack that leads to over 50,000 database writes per second. Throughout the last two years half a dozen teams at Wooga have set out to build a backends for social games, each trying to improve on previous solutions. Each team was able to leverage experiences made by other teams but was free to choose their own technology stack and hosting environment. They also operated the game themselves in a DevOps way. This talk will trace back that evolution of backends: Starting out with a simple LAMP stack, first replacing PHP by Ruby, then replacing relational by NoSQL databases and ending up in maintaining stateful application servers utilizing Erlang OTP - and more. We will discuss limitations and problems we faced in live operation and show how later teams improved on the overall design.
Building a backend for a successful social game is always challenging: It needs to service over 1 million users per day that generate 10.000 http requests per second or more whereas the vast majority of those requests are changing persistent state. Using a conventional technology stack that leads to over 50,000 database writes per second. Throughout the last two years half a dozen teams at Wooga have set out to build a backends for social games, each trying to improve on previous solutions. Each team was able to leverage experiences made by other teams but was free to choose their own technology stack and hosting environment. They also operated the game themselves in a DevOps way. This talk will trace back that evolution of backends: Starting out with a simple LAMP stack, first replacing PHP by Ruby, then replacing relational by NoSQL databases and ending up in maintaining stateful application servers utilizing Erlang OTP - and more. We will discuss limitations and problems we faced in live operation and show how later teams improved on the overall design.
Jenkins data mining on the command line - Jenkins User Conference NYC 2012Noah Sussman
UPDATED: watch the video of this talk, here: http://www.youtube.com/watch?v=t6IJu3uLZOs
Emergent questions arise in the course of running a CI system. Is this test flaky? How often does that message come up in the console log? Which change sets were in the builds that ran between 8pm and midnight?
To find correlations between arbitrary events it becomes necessary to look beyond the information provided by the Jenkins UI. I will explain how to use command line tools to discover, analyze and graph patterns in Jenkins data.
A simple natural language interface application for launching applications and showing user information based on voice input processed by using natural language programming concepts
See how to use MongoDB in Symfony2 projects to speed up the development of web applications. We will give an introduction of MongoDB as a NoSQL database server and look at the options on how to work with it from Symfony2 and PHP applications.
WebPageTest is a great tool for testing and analysing how quickly web pages load.
Many people just use it as a simple testing tool, but it has advanced scripting capabilities for multi-page testing, completing forms etc.
It also has an API so performance testing can be integrated into Continuous Integration processes, used for monitoring and analysing how the web is built.
These slides explore some of these capabilities in more detail.
There are bonus slides after the "Thank You" slide
Games for the Masses - Wie DevOps die Entwicklung von Architektur verändert (...Wooga
(Slides in English)
Ein Backend für ein weltweit erfolgreiches Social Game zu entwickeln ist nicht einfach, aber die eigentliche Herausforderung ist der Betrieb der Systeme! Bei Wooga sind dieselben zwei bis drei Entwickler für beides verantwortlich. Über die letzten zwei Jahren hat sich ein halbes Dutzend Teams dieser Herausforderung gestellt. Dabei konnten sie auf die Erfahrungen der vorhergehenden Teams zurückgreifen und hatten die Freiheit, eigene Lösungsansätze zu verfolgen. Der Vortrag wird die entstandene Evolution der Backends nachvollziehen: Anfangs LAMP, dann Ruby statt PHP, dann NoSQL statt MySQL und am Ende ohne Datenbank auf Basis von Erlang OTP. Die Darstellung dieser Reise wird anschaulich zeigen, welche Vorteile es haben kann, Entwicklern auch einmal freie Hand zu lassen.
Developing RESTful Web APIs with Python, Flask and MongoDBNicola Iarocci
Presented at EuroPython 2012. The abstract: "In the last year we have been working on a full featured, Python powered, RESTful Web API. We learned quite a few things on REST best patterns, and we got a chance to put Python’s renowned web capabilities under review, even releasing a couple Open Source projects in the process. In my talk I will share what we learned. We will consider ‘pure’ REST API design and its many hurdles. We will look at what Python as to offer in this field and finally, we will dig further down by looking at some of the code we developed. Some of the technologies/stacks I’ll cover are (in no particular order): Flask, PyMongo, MongoDB, REST, JSON, XML, Heroku. Did you know? Like it or not, there is going to be a REST API in your future."
Easier with visual studio productivity toolsChris Eargle
Our Visual Studio Productivity Tools have always been about making your job easier, and this release is no exception. Tired of catering to Visual Studio’s multiple personalities between home and office? Take your settings to the cloud with JustCode! Having trouble sifting through tons of data to resolve a performance issue? JustTrace makes it easier with data visualizations and filters! Have a buggy assembly and no source code? Simply open the assembly and fix the problem directly inside JustDecompile!
Re-read that last sentence… fiddling around with a Visual Studio project is not required.
This is but a sample of how we’re making your life easier in Q2 2012. This presentation is not only free, but if time is money, it will pay you dividends.
Assim como as Migrations no mundo Ruby On Rails, o mundo Java também possui diversas alternativas para evoluir o banco de dados de uma aplicação. Aprenda como você e sua equipe podem evoluir de maneira iterativa e incremental seu banco de dados (já em produção) durante a evolução da sua aplicação.
The French Revolution, which began in 1789, was a period of radical social and political upheaval in France. It marked the decline of absolute monarchies, the rise of secular and democratic republics, and the eventual rise of Napoleon Bonaparte. This revolutionary period is crucial in understanding the transition from feudalism to modernity in Europe.
For more information, visit-www.vavaclasses.com
Honest Reviews of Tim Han LMA Course Program.pptxtimhan337
Personal development courses are widely available today, with each one promising life-changing outcomes. Tim Han’s Life Mastery Achievers (LMA) Course has drawn a lot of interest. In addition to offering my frank assessment of Success Insider’s LMA Course, this piece examines the course’s effects via a variety of Tim Han LMA course reviews and Success Insider comments.
Jenkins data mining on the command line - Jenkins User Conference NYC 2012Noah Sussman
UPDATED: watch the video of this talk, here: http://www.youtube.com/watch?v=t6IJu3uLZOs
Emergent questions arise in the course of running a CI system. Is this test flaky? How often does that message come up in the console log? Which change sets were in the builds that ran between 8pm and midnight?
To find correlations between arbitrary events it becomes necessary to look beyond the information provided by the Jenkins UI. I will explain how to use command line tools to discover, analyze and graph patterns in Jenkins data.
A simple natural language interface application for launching applications and showing user information based on voice input processed by using natural language programming concepts
See how to use MongoDB in Symfony2 projects to speed up the development of web applications. We will give an introduction of MongoDB as a NoSQL database server and look at the options on how to work with it from Symfony2 and PHP applications.
WebPageTest is a great tool for testing and analysing how quickly web pages load.
Many people just use it as a simple testing tool, but it has advanced scripting capabilities for multi-page testing, completing forms etc.
It also has an API so performance testing can be integrated into Continuous Integration processes, used for monitoring and analysing how the web is built.
These slides explore some of these capabilities in more detail.
There are bonus slides after the "Thank You" slide
Games for the Masses - Wie DevOps die Entwicklung von Architektur verändert (...Wooga
(Slides in English)
Ein Backend für ein weltweit erfolgreiches Social Game zu entwickeln ist nicht einfach, aber die eigentliche Herausforderung ist der Betrieb der Systeme! Bei Wooga sind dieselben zwei bis drei Entwickler für beides verantwortlich. Über die letzten zwei Jahren hat sich ein halbes Dutzend Teams dieser Herausforderung gestellt. Dabei konnten sie auf die Erfahrungen der vorhergehenden Teams zurückgreifen und hatten die Freiheit, eigene Lösungsansätze zu verfolgen. Der Vortrag wird die entstandene Evolution der Backends nachvollziehen: Anfangs LAMP, dann Ruby statt PHP, dann NoSQL statt MySQL und am Ende ohne Datenbank auf Basis von Erlang OTP. Die Darstellung dieser Reise wird anschaulich zeigen, welche Vorteile es haben kann, Entwicklern auch einmal freie Hand zu lassen.
Developing RESTful Web APIs with Python, Flask and MongoDBNicola Iarocci
Presented at EuroPython 2012. The abstract: "In the last year we have been working on a full featured, Python powered, RESTful Web API. We learned quite a few things on REST best patterns, and we got a chance to put Python’s renowned web capabilities under review, even releasing a couple Open Source projects in the process. In my talk I will share what we learned. We will consider ‘pure’ REST API design and its many hurdles. We will look at what Python as to offer in this field and finally, we will dig further down by looking at some of the code we developed. Some of the technologies/stacks I’ll cover are (in no particular order): Flask, PyMongo, MongoDB, REST, JSON, XML, Heroku. Did you know? Like it or not, there is going to be a REST API in your future."
Easier with visual studio productivity toolsChris Eargle
Our Visual Studio Productivity Tools have always been about making your job easier, and this release is no exception. Tired of catering to Visual Studio’s multiple personalities between home and office? Take your settings to the cloud with JustCode! Having trouble sifting through tons of data to resolve a performance issue? JustTrace makes it easier with data visualizations and filters! Have a buggy assembly and no source code? Simply open the assembly and fix the problem directly inside JustDecompile!
Re-read that last sentence… fiddling around with a Visual Studio project is not required.
This is but a sample of how we’re making your life easier in Q2 2012. This presentation is not only free, but if time is money, it will pay you dividends.
Assim como as Migrations no mundo Ruby On Rails, o mundo Java também possui diversas alternativas para evoluir o banco de dados de uma aplicação. Aprenda como você e sua equipe podem evoluir de maneira iterativa e incremental seu banco de dados (já em produção) durante a evolução da sua aplicação.
The French Revolution, which began in 1789, was a period of radical social and political upheaval in France. It marked the decline of absolute monarchies, the rise of secular and democratic republics, and the eventual rise of Napoleon Bonaparte. This revolutionary period is crucial in understanding the transition from feudalism to modernity in Europe.
For more information, visit-www.vavaclasses.com
Honest Reviews of Tim Han LMA Course Program.pptxtimhan337
Personal development courses are widely available today, with each one promising life-changing outcomes. Tim Han’s Life Mastery Achievers (LMA) Course has drawn a lot of interest. In addition to offering my frank assessment of Success Insider’s LMA Course, this piece examines the course’s effects via a variety of Tim Han LMA course reviews and Success Insider comments.
Palestine last event orientationfvgnh .pptxRaedMohamed3
An EFL lesson about the current events in Palestine. It is intended to be for intermediate students who wish to increase their listening skills through a short lesson in power point.
Macroeconomics- Movie Location
This will be used as part of your Personal Professional Portfolio once graded.
Objective:
Prepare a presentation or a paper using research, basic comparative analysis, data organization and application of economic information. You will make an informed assessment of an economic climate outside of the United States to accomplish an entertainment industry objective.
2024.06.01 Introducing a competency framework for languag learning materials ...Sandy Millin
http://sandymillin.wordpress.com/iateflwebinar2024
Published classroom materials form the basis of syllabuses, drive teacher professional development, and have a potentially huge influence on learners, teachers and education systems. All teachers also create their own materials, whether a few sentences on a blackboard, a highly-structured fully-realised online course, or anything in between. Despite this, the knowledge and skills needed to create effective language learning materials are rarely part of teacher training, and are mostly learnt by trial and error.
Knowledge and skills frameworks, generally called competency frameworks, for ELT teachers, trainers and managers have existed for a few years now. However, until I created one for my MA dissertation, there wasn’t one drawing together what we need to know and do to be able to effectively produce language learning materials.
This webinar will introduce you to my framework, highlighting the key competencies I identified from my research. It will also show how anybody involved in language teaching (any language, not just English!), teacher training, managing schools or developing language learning materials can benefit from using the framework.
How to Make a Field invisible in Odoo 17Celine George
It is possible to hide or invisible some fields in odoo. Commonly using “invisible” attribute in the field definition to invisible the fields. This slide will show how to make a field invisible in odoo 17.
Operation “Blue Star” is the only event in the history of Independent India where the state went into war with its own people. Even after about 40 years it is not clear if it was culmination of states anger over people of the region, a political game of power or start of dictatorial chapter in the democratic setup.
The people of Punjab felt alienated from main stream due to denial of their just demands during a long democratic struggle since independence. As it happen all over the word, it led to militant struggle with great loss of lives of military, police and civilian personnel. Killing of Indira Gandhi and massacre of innocent Sikhs in Delhi and other India cities was also associated with this movement.
The Roman Empire A Historical Colossus.pdfkaushalkr1407
The Roman Empire, a vast and enduring power, stands as one of history's most remarkable civilizations, leaving an indelible imprint on the world. It emerged from the Roman Republic, transitioning into an imperial powerhouse under the leadership of Augustus Caesar in 27 BCE. This transformation marked the beginning of an era defined by unprecedented territorial expansion, architectural marvels, and profound cultural influence.
The empire's roots lie in the city of Rome, founded, according to legend, by Romulus in 753 BCE. Over centuries, Rome evolved from a small settlement to a formidable republic, characterized by a complex political system with elected officials and checks on power. However, internal strife, class conflicts, and military ambitions paved the way for the end of the Republic. Julius Caesar’s dictatorship and subsequent assassination in 44 BCE created a power vacuum, leading to a civil war. Octavian, later Augustus, emerged victorious, heralding the Roman Empire’s birth.
Under Augustus, the empire experienced the Pax Romana, a 200-year period of relative peace and stability. Augustus reformed the military, established efficient administrative systems, and initiated grand construction projects. The empire's borders expanded, encompassing territories from Britain to Egypt and from Spain to the Euphrates. Roman legions, renowned for their discipline and engineering prowess, secured and maintained these vast territories, building roads, fortifications, and cities that facilitated control and integration.
The Roman Empire’s society was hierarchical, with a rigid class system. At the top were the patricians, wealthy elites who held significant political power. Below them were the plebeians, free citizens with limited political influence, and the vast numbers of slaves who formed the backbone of the economy. The family unit was central, governed by the paterfamilias, the male head who held absolute authority.
Culturally, the Romans were eclectic, absorbing and adapting elements from the civilizations they encountered, particularly the Greeks. Roman art, literature, and philosophy reflected this synthesis, creating a rich cultural tapestry. Latin, the Roman language, became the lingua franca of the Western world, influencing numerous modern languages.
Roman architecture and engineering achievements were monumental. They perfected the arch, vault, and dome, constructing enduring structures like the Colosseum, Pantheon, and aqueducts. These engineering marvels not only showcased Roman ingenuity but also served practical purposes, from public entertainment to water supply.
Acetabularia Information For Class 9 .docxvaibhavrinwa19
Acetabularia acetabulum is a single-celled green alga that in its vegetative state is morphologically differentiated into a basal rhizoid and an axially elongated stalk, which bears whorls of branching hairs. The single diploid nucleus resides in the rhizoid.
3. JFokus 2012 Stockholm, Feb 14th 2012 #jfokus
Why Evolutions?
Testing
4. JFokus 2012 Stockholm, Feb 14th 2012 #jfokus
Why Evolutions?
Continuous Integration
5. JFokus 2012 Stockholm, Feb 14th 2012 #jfokus
Why Evolutions?
Continuous Deployment
6. JFokus 2012 Stockholm, Feb 14th 2012 #jfokus
Why Evolutions?
Workflow management
– Trigger jobs
– Join jobs
Building software
Testing builds
Propagating DVCS repositories
Updating website
– Changelog
– Documentation
– Nightly builds
Release management
7. JFokus 2012 Stockholm, Feb 14th 2012 #jfokus
Why Evolutions?
Authentication
Authorization
Logging
Notifications
Remote machines
8. JFokus 2012 Stockholm, Feb 14th 2012 #jfokus
Why Evolutions?
9. JFokus 2012 Stockholm, Feb 14th 2012 #jfokus
Why Evolutions?
Cron on Steroids
10. JFokus 2012 Stockholm, Feb 14th 2012 #jfokus
Why Evolutions?
Unopinionated build tool
(via @lusis)
11. JFokus 2012 Stockholm, Feb 14th 2012 #jfokus
Agenda
Background
Stories
– Functional Tests
– Servlet Tests
– Random Thoughts
12. JFokus 2012 Stockholm, Feb 14th 2012 #jfokus
Background - 2008
First installation
Clicked “Run” when wanted to test stuff
13. JFokus 2012 Stockholm, Feb 14th 2012 #jfokus
Background - 2012
200 300 jobs
5 8 dedicated machines
Amazon ~7000 instance-hour per month
3 in house plugins developed, 2
abandoned
Custom dashboard (35 x 215 grid)
14. JFokus 2012 Stockholm, Feb 14th 2012 #jfokus
14
15. JFokus 2012 Stockholm, Feb 14th 2012 #jfokus
15
16. JFokus 2012 Stockholm, Feb 14th 2012 #jfokus
https://github.com/jenkinsci/jenkins-
scripts
15
17. JFokus 2012 Stockholm, Feb 14th 2012 #jfokus
Custom Dashboard
18. JFokus 2012 Stockholm, Feb 14th 2012 #jfokus
Story of Functional Tests
19. JFokus 2012 Stockholm, Feb 14th 2012 #jfokus
JRebel Functional JDK Tests
20. JFokus 2012 Stockholm, Feb 14th 2012 #jfokus
JRebel Functional JDK Tests
21. JFokus 2012 Stockholm, Feb 14th 2012 #jfokus
JRebel Functional JDK Tests
Per JDK
– Per functional test
• Compile couple of classes
• Run some methods and assert
• Recompile couple of classes
• Run some methods and assert
• …
22. JFokus 2012 Stockholm, Feb 14th 2012 #jfokus
JRebel Functional JDK Tests
Which Jenkins feature is the best fit here?
23. JFokus 2012 Stockholm, Feb 14th 2012 #jfokus
JRebel Functional JDK Tests
24. JFokus 2012 Stockholm, Feb 14th 2012 #jfokus
JRebel Functional JDK Tests
Groovy Script
25. JFokus 2012 Stockholm, Feb 14th 2012 #jfokus
JRebel Functional JDK Tests
26. JFokus 2012 Stockholm, Feb 14th 2012 #jfokus
JRebel Functional JDK Tests
How to get test results? Jenkins feature…
27. JFokus 2012 Stockholm, Feb 14th 2012 #jfokus
JRebel Functional JDK Tests
Output JUnit XML!
28. JFokus 2012 Stockholm, Feb 14th 2012 #jfokus
JRebel Functional JDK Tests
29. JFokus 2012 Stockholm, Feb 14th 2012 #jfokus
JRebel Functional JDK Tests
Creates about 10 000 new files
Compile about 1700 Java class files
Invoke the JVM 550 times
30. JFokus 2012 Stockholm, Feb 14th 2012 #jfokus
JRebel Functional JDK Tests
Sloooow
31. JFokus 2012 Stockholm, Feb 14th 2012 #jfokus
JRebel Functional JDK Tests
IO
CPU
Memory
32. JFokus 2012 Stockholm, Feb 14th 2012 #jfokus
JRebel Functional JDK Tests
33. JFokus 2012 Stockholm, Feb 14th 2012 #jfokus
JRebel Functional JDK Tests
Bare metal
Cloud
Bare metal
34. JFokus 2012 Stockholm, Feb 14th 2012 #jfokus
JRebel Functional JDK Tests
Cloud
– 1 small instance per JDK
– Manual update of AMIs
– Slow
– Scales!
35. JFokus 2012 Stockholm, Feb 14th 2012 #jfokus
JRebel Functional JDK Tests
Which Jenkins plugin to use?
36. JFokus 2012 Stockholm, Feb 14th 2012 #jfokus
JRebel Functional JDK Tests
Amazon EC2 Plugin
37. JFokus 2012 Stockholm, Feb 14th 2012 #jfokus
JRebel Functional JDK Tests
Which Jenkins plugin to use for results?
38. JFokus 2012 Stockholm, Feb 14th 2012 #jfokus
JRebel Functional JDK Tests
Bare metal
– 8 core & 16GB RAM gaming machines
– Recycled developer machines
– Marketing demo machines (iMacs)
39. JFokus 2012 Stockholm, Feb 14th 2012 #jfokus
JRebel Functional JDK Tests
SSD
– 30% gain in time, that’s it
40. JFokus 2012 Stockholm, Feb 14th 2012 #jfokus
Story of Servlet Tests
41. JFokus 2012 Stockholm, Feb 14th 2012 #jfokus
Servlet tests
Start a container version
– Websphere, Weblogic, Glassfish etc.
Deploy applications
Test results, reload changes, test results…
42. JFokus 2012 Stockholm, Feb 14th 2012 #jfokus
Servlet tests
How do you start a
server?
43. JFokus 2012 Stockholm, Feb 14th 2012 #jfokus
Servlet tests
Duh! With a startup
script!
44. JFokus 2012 Stockholm, Feb 14th 2012 #jfokus
Servlet Tests – 1 app server, 2 jobs
Which Jenkins feature to use?
45. JFokus 2012 Stockholm, Feb 14th 2012 #jfokus
Servlet Tests – 1 app server, 2 jobs
46. JFokus 2012 Stockholm, Feb 14th 2012 #jfokus
Servlet Tests – 1 app server, 2 jobs
47. JFokus 2012 Stockholm, Feb 14th 2012 #jfokus
Servlet Tests
48. JFokus 2012 Stockholm, Feb 14th 2012 #jfokus
Servlet Tests
How do you deploy an
application?
49. JFokus 2012 Stockholm, Feb 14th 2012 #jfokus
Servlet Tests
Start Tomcat
Copy WAR files to webapps/
GET /some-url
Assert
Update application
GET /some-url
Assert
50. JFokus 2012 Stockholm, Feb 14th 2012 #jfokus
Sloooow
51. JFokus 2012 Stockholm, Feb 14th 2012 #jfokus
Servlet Tests
Memory
IO
CPU
52. JFokus 2012 Stockholm, Feb 14th 2012 #jfokus
Testing Multiple Containers
Cloud
– 1 Small instance per Container
– Need to update AMIs
– Slow
– Isolation
53. JFokus 2012 Stockholm, Feb 14th 2012 #jfokus
Single Machine
Port Hell
Memory Limits
Speed
54. JFokus 2012 Stockholm, Feb 14th 2012 #jfokus
Story of DVCS
55. JFokus 2012 Stockholm, Feb 14th 2012 #jfokus
Story of DVCS
56. JFokus 2012 Stockholm, Feb 14th 2012 #jfokus
Story of DVCS
Problem
– Many JDKs
– Many App Servers
– Many Servlet Containers
57. JFokus 2012 Stockholm, Feb 14th 2012 #jfokus
Story of DVCS
Problem
– Many JDKs
– Many App Servers
– Many Servlet Containers
Slow feedback cycle
58. JFokus 2012 Stockholm, Feb 14th 2012 #jfokus
Story of DVCS
Problem
– Many JDKs
– Many App Servers
– Many Servlet Containers
Slow feedback cycle
59. JFokus 2012 Stockholm, Feb 14th 2012 #jfokus
Story of DVCS
Problem
– Many JDKs
– Many App Servers
– Many Servlet Containers
Slow feedback cycle
Difficult to install environments
60. JFokus 2012 Stockholm, Feb 14th 2012 #jfokus
Story of DVCS
Tests green?
Push to branch/repository
DEV STABLE
n tests on N servers m tests on M
(30 min) servers
(3 hours)
61. JFokus 2012 Stockholm, Feb 14th 2012 #jfokus
Story of DVCS
62. JFokus 2012 Stockholm, Feb 14th 2012 #jfokus
General stuff
63. JFokus 2012 Stockholm, Feb 14th 2012 #jfokus
Fight for executors
64. JFokus 2012 Stockholm, Feb 14th 2012 #jfokus
Optimum
utilization
65. JFokus 2012 Stockholm, Feb 14th 2012 #jfokus
Quick feedback
66. JFokus 2012 Stockholm, Feb 14th 2012 #jfokus
There is an app
plugin for that
67. JFokus 2012 Stockholm, Feb 14th 2012 #jfokus
Q&A
Editor's Notes
\n
\n
\n
\n
\n
\n
\n
\n
\n
\n
\n
\n
\n
\n
\n
\n
\n
\n
\n
\n
\n
\n
\n
\n
\n
\n
\n
\n
\n
\n
\n
\n
\n
\n
\n
\n
\n
\n
\n
Dynamic startup scripts – why not show a demo?\nDeploy applications – get stats from Rein\n