This document summarizes the Yatoto social crowdfunding platform. It provides details on its business model, which incorporates elements from lottery, Facebook, eBay, charities and Kickstarter. It discusses user and financial metrics from 2013-2016. It also describes the technical architecture including the Ruby on Rails backend, use of Docker for deployment, monitoring with Zabbix and error tracking with Errbit. Development practices like pair programming, code reviews and CI/CD are outlined.
Find out what has changed since PebbleKit iOS 2.0 and learn how to upgrade your projects. Discover how to take advantage of the new features of the new PebbleKit iOS with Marcel Jackwerth (iOS Developer).
End User Experience: Do you know when your users' experience is bad?: John Do...BMC Software
If you aren’t monitoring your end users’ experience, you really have no idea what your users are seeing. And if you aren’t able to see what each and every user is doing at any time, from any device and location, and through any given path – then it’s going to be very hard to figure out if there is an issue and how pervasive the issue is, much less determine the cause.
This presentation will cover the value of monitoring from the end user perspective so you can meet your service levels, ensure customer satisfaction, and avoid costly business disruption.
This presentation was given at the Chicago DevOps Meetup by Doug Campbell, a DevOps Engineer at Gogo. The slides go over what DevOps means for Gogo, what our continuous delivery workflow looks like, and why you should be interested in Spinnaker and Foremast.
Most of the presentation was Spinnaker and Foremast demos and I will update this description with a link to the videos once published.
Find out what has changed since PebbleKit iOS 2.0 and learn how to upgrade your projects. Discover how to take advantage of the new features of the new PebbleKit iOS with Marcel Jackwerth (iOS Developer).
End User Experience: Do you know when your users' experience is bad?: John Do...BMC Software
If you aren’t monitoring your end users’ experience, you really have no idea what your users are seeing. And if you aren’t able to see what each and every user is doing at any time, from any device and location, and through any given path – then it’s going to be very hard to figure out if there is an issue and how pervasive the issue is, much less determine the cause.
This presentation will cover the value of monitoring from the end user perspective so you can meet your service levels, ensure customer satisfaction, and avoid costly business disruption.
This presentation was given at the Chicago DevOps Meetup by Doug Campbell, a DevOps Engineer at Gogo. The slides go over what DevOps means for Gogo, what our continuous delivery workflow looks like, and why you should be interested in Spinnaker and Foremast.
Most of the presentation was Spinnaker and Foremast demos and I will update this description with a link to the videos once published.
My Web Performance Dirty Secrets
Fred wants to come clean and reveal to all his web performance dirty secrets – it's too much burden to bear. He's been guilty of some malpractices in the past and so are a lot of people in the industry! Time to take a stand and reveal it all. Do you want to know why popular websites are struggling when comes the holiday season? Why black magic is so popular in some web performance team? Why your brand new and shiny F5 load balancer can be sometime a real waste of money? Or why third-party can really spoil the … party? Best of all, you will learn that there is something call 'The Cloud' that is about to become your best buddy and will prevent you from keeping … dirty secrets.
Slides from Where 2.0 2009 Workshop - Location on the Web
Location aware websites, applications and devices can provide users with rich social connectivity, useful content, efficient movement around their environment, highly targeted advertising, and more. We will discuss the new W3C Geolocation API, location-aware browsers and other available tools that can add location to websites and applications.
While most devices now have functionality which make location determination possible, understanding these technologies and how they can be deployed into mobile devices and websites can be complicated.
In this session, we will discuss the technical details of the APIs available to help location-enable your websites, and how to deploy them. These tools include the W3C Geolocation API, Mozilla’s Geode, the Loki Plugin, Fire Eagle and Google’s My Location.
Are Your Microservices Naked and Afraid? VMware Tanzu
SpringOne Platform 2016
Speakers: Alan Ho; Head of Developer Programs, Apigee. Sandeep Murusupalli; Solutions Architect, Apigee.
The Cloud is a wild and dangerous place and can create seriously unpredictable traffic to your microservices. Without proper protection & monitoring, your microservices are vulnerable to hackers, self-inflicted denial of service attacks, and extremely high infrastructure costs. Furthermore, as internal data centers begin to mirror the Cloud itself, developers and architects need to rethink services monitoring and protection for both externalized microservice APIs and internal APIs. Attend this session to learn what is the right type of protection (OAuth / Throttling) and monitoring (e.g. bot monitoring) you need to put in place to avoid your microservices becoming a mega-disaster.
printmaking, american posters, screenprintingRiverwood HS
introduction to how principles of design are used to create propaganda posters in the United States. Designed to introduce screenprinting to HS students.
Dear Sir/ma’am,
I am Murtuza Pittalwala, a BE Mechnical Graduate from Pune University (India) with over 1.6years of work experience as a Planning Engineer for International Projects at GMP Technical Solutions Pvt Ltd (Mumbai) and currently with over 1.5years work experience as a Mechanical Engineer at GMP Technical Services LLC (Dubai) and valid Emirates Driving Lisence
I am looking forward for a long term relationship in your esteemed organisation. Waiting for your further reply.
My Web Performance Dirty Secrets
Fred wants to come clean and reveal to all his web performance dirty secrets – it's too much burden to bear. He's been guilty of some malpractices in the past and so are a lot of people in the industry! Time to take a stand and reveal it all. Do you want to know why popular websites are struggling when comes the holiday season? Why black magic is so popular in some web performance team? Why your brand new and shiny F5 load balancer can be sometime a real waste of money? Or why third-party can really spoil the … party? Best of all, you will learn that there is something call 'The Cloud' that is about to become your best buddy and will prevent you from keeping … dirty secrets.
Slides from Where 2.0 2009 Workshop - Location on the Web
Location aware websites, applications and devices can provide users with rich social connectivity, useful content, efficient movement around their environment, highly targeted advertising, and more. We will discuss the new W3C Geolocation API, location-aware browsers and other available tools that can add location to websites and applications.
While most devices now have functionality which make location determination possible, understanding these technologies and how they can be deployed into mobile devices and websites can be complicated.
In this session, we will discuss the technical details of the APIs available to help location-enable your websites, and how to deploy them. These tools include the W3C Geolocation API, Mozilla’s Geode, the Loki Plugin, Fire Eagle and Google’s My Location.
Are Your Microservices Naked and Afraid? VMware Tanzu
SpringOne Platform 2016
Speakers: Alan Ho; Head of Developer Programs, Apigee. Sandeep Murusupalli; Solutions Architect, Apigee.
The Cloud is a wild and dangerous place and can create seriously unpredictable traffic to your microservices. Without proper protection & monitoring, your microservices are vulnerable to hackers, self-inflicted denial of service attacks, and extremely high infrastructure costs. Furthermore, as internal data centers begin to mirror the Cloud itself, developers and architects need to rethink services monitoring and protection for both externalized microservice APIs and internal APIs. Attend this session to learn what is the right type of protection (OAuth / Throttling) and monitoring (e.g. bot monitoring) you need to put in place to avoid your microservices becoming a mega-disaster.
printmaking, american posters, screenprintingRiverwood HS
introduction to how principles of design are used to create propaganda posters in the United States. Designed to introduce screenprinting to HS students.
Dear Sir/ma’am,
I am Murtuza Pittalwala, a BE Mechnical Graduate from Pune University (India) with over 1.6years of work experience as a Planning Engineer for International Projects at GMP Technical Solutions Pvt Ltd (Mumbai) and currently with over 1.5years work experience as a Mechanical Engineer at GMP Technical Services LLC (Dubai) and valid Emirates Driving Lisence
I am looking forward for a long term relationship in your esteemed organisation. Waiting for your further reply.
La Tavella, Agricultura 2.0. Agricultura sense intermediaris.Marc Alegre
Presentació de La Tavella en el marc de la jornada EINES D’INTERNET APLICADES A L’AGRICULTURA ECOLÒGICA, organitzada pel Departament d'Agricultura de la Generalitat.
"Industrial Internet IoT bootcamp" meetup, 11-5-2015 hosted by GE Digital at HackerDojo. Discussing topics ranging from IoT architecture to connectivity and protocols, cyber security, data science and industrial UX design.
Webinar: Continuous Deployment with MongoDB at KitchensurfingMongoDB
Continuous Deployment is gaining popularity with companies like Facebook and Etsy, but its successful implementation creates technical challenges and will require any team to make workflow changes. Learn how Kitchensurfing switched to continuous deployments and how they’ve grown from one deploy a week to 10+ deploys a day with zero downtime and zero worries, thanks to MongoDB. Hear about their workflow, the tools they use, and how they manage communication with product owners to make sure everyone is always in the loop.
Scaling Gilt: from Monolithic Ruby Application to Distributed Scala Micro-Ser...C4Media
Video and slides synchronized, mp3 and slide download available at URL http://bit.ly/10fVilQ.
Yoni Goldberg describes some of the technological innovations that have helped Gilt to reach its current size, and highlight some of the core challenges that the company's engineering team continues to face. He also discusses what every tech team needs to consider and address before heading down the path of building a first-class micro-services architecture. Filmed at qconnewyork.com.
Since joining Gilt at 2010 as a platform engineer, Yoni Goldberg has been leading a variety of personalization efforts and other customer-facing initiatives--including the Gilt Insider loyalty program, the post-purchase experience, and SEO/optimization efforts. Prior to joining Gilt, Yoni worked at Google, where he wrote his master's thesis on Fusion Tables.
Scalable full-stack development at the edge - Pascal Wolkotte - Codemotion Am...Codemotion
At Quby we created Toon, the market’s best smart thermostat. The Toon IoT ecosystem covers a broad range of software stacks, ranging from embedded systems, mobile app, big data, edge computing, micro-services and everything in-between. Find out in this session how we ensure the maintainability of the existing, resource constrained, install-base of embedded IoT devices, and in parallel keep up with expanding the platform with additional new services.
Scaling Up Lookout was originally presented at Lookout's Scaling for Mobile event on July 25, 2013. R. Tyler Croy is a Senior Software Engineer at Lookout, Inc. Lookout has grown immensely in the last year. We've doubled the size of the company—added more than 80 engineers to the team, support 45+ million users, have over 1000 machines in production, see over 125,000 QPS and more than 2.6 billion requests/month. Our analysts use Hadoop, Hive, and MySQL to interactively manipulate multibillion row tables. With that, there are bound to be some growing pains and lessons learned.
Continuous Deployment is gaining popularity with companies like Facebook and Etsy, but its successful implementation creates technical challenges and will require any team to make workflow changes.
Learn how Kitchensurfing switched to continuous deployments and how they’ve grown from one deploy a week to 10+ deploys a day with zero downtime and zero worries, thanks to MongoDB.
Hear about our workflow, the tools we use, and how we manage communication with product owners to make sure everyone is always in the loop.
An overview and update presentation on Google App Engine given by Google Developer Advocate Christian Schalk at the 2011 DevFest Singapore and Jakarta events. Developer Advocate Wesley Chun also participated in the Q&A.
Angular (v2 and up) - Morning to understand - LinagoraLINAGORA
Slides of the talk about Angular, at the "Matinée Pour Comprendre" organized by Linagora the 22/03/17.
Discover what's new in Angular, why is it more than just a framework (platform) and how to manage your data with RxJs and Redux.
IBM ConnectED SPOT104: Lightning-Fast Development of Native Mobile Apps for I...darwinodb
This is the presentation that John Tripp & Phil Riand made at IBMConnectED introducing Darwino, a new full-stack enterprise development platform for social and mobile cloud enabled applications that work natively on mobile devices - even offline.
Netflix Open Source: Building a Distributed and Automated Open Source Programaspyker
Netflix has been using and contributing to open source for several years. Over the years, Netflix has released over one hundred Netflix Open Source (aka NetflixOSS) libraries, servers, and technologies. Netflix engineers benefit by accepting contributions and gathering feedback with key collaborators around the world. Users of NetflixOSS from many industries benefit from our solutions including Big Data, Build and Delivery Tools, Runtime Services and Libraries, Data Persistence, Insight, Reliability and Performance, Security and User Interface. With such a large and mature open source program, Netflix has worked on approaches and tools that help manage and improve the NetflixOSS source offerings and communities. Netflix has taken a different approach to building support for open source as compared to other Internet scale companies. Come to this session to learn about the unique approaches Netflix has taken to both distribute and automate the responsibilities of building a world-class open source program.
Building a Distributed & Automated Open Source Program at NetflixAll Things Open
Andrew Spyker
Senior Software Engineer for Netflix
Find more by Andrew Spyker: http://www.slideshare.net/aspyker
All Things Open
October 26-27, 2016
Raleigh, North Carolina
Building a Distributed & Automated Open Source Program at Netflix
Yatoto-technical
1. YATOTO
SOCIAL CROWD FUNDING PLATFORM
THE TECHNICAL PART
You can find the most recent version online here
http://yatoto.gudaso .com
2. BUSINESS
Lottery - Different kind of rewards
Facebook - Pages, Events, Friends, Chat,
Main/private newsfeed
Ebay - Bidding on offers
Charities - Donations
Kickstater - Projects
Gamification - A lot of tricks to engage the users
3. NUMBERS (JUL 2013 - SEP 2016)
More than 250 000EUR for rewards
More than 100 000 Users Watched 9 Millon ads
Launched in Bulgaria and the United States
4 Designs changed
3 Devs, 1 frontend, graphic designer
1.3M Publications, 90M Stream Entries
800 Accomplished Missions for ~ 1 month
5. Google Analytics on steroids
Play with A/B Testing
Smart Feature flapping
Track every event on the website
KNOWING OUR USERS
6. Ruby On Rails, PostgreSQL, Elasticsearch, Redis,
Memcached, Message bus implementation on
Sidekiq
Ansible provisioning with multistage deployments
via Capistrano/Docker
Monitoring via Zabbix + Uptime Robot
Zero downtime deployment within our CI/CD
process
TECHNOLOGY
7. THE APPLICATION
We started with Ruby On Rails with PostgreSQL, Elasticsearch, Redis, Memcached.
At first we use QEMU Virtual Machine with 9GB of RAM and it works great with +100k users. Living on
a virtual machine allow us to know every CPU cycle and every disk IO.
We expect 1m of users, thats why we scale on 3 servers with dockers.
We have 50Milion user stream entries. For our Newsfeed stream processing we use a pipeline over
Sidekiq. We have to send a lot of notifications in almost real time fashion.
8. THE FRONTEND
For the frontend we use Twitter bootsrap, and for the backend we used Zurb Foundation. Both were
good, +1 for Zurb for its usability on mobile devices.
We monitor the usage of every html element on the website with google analytics, because of this
we know how the users interact with the website.
We decided to convert Yatoto to SPA with React. We made a small feature with React, then we
remove it. The performance, and the SEO were poor, and we don't have human power to maintain it.
We kept the real time chat.
11. Always stay on the latest versions of everything.
With Rails we start at 4.0.0.rc2 and end at 5.0.1.
Adopt new technology like Nodejs/React
Learn to delete code and write it from scratch
Low Technical Depth
THE DEVELOPER HAPPINESS
12. 2 weeks project Yatoto a er 3+ years
YES IT IS MONOLITH
We have to be fast because we deliver entire new functionality every week or 1/3/6 months. We
change the product a lot! It is faster to refactor than micro services architecture.
We wrote Facebook, EBay, Quora, Kickstarter, GA, Games and Meme generator functionality sadly we
forgot to double LinkedIn.
Compared to the we done it easer and faster.Biggest Monolith
13. METHODOLOGY
Scrum with a lot of XP
The team do pair programming, have coding standard.
Collective code ownership and simple design.
Code reviews were more effective than writing tests.
BDD, CI/CD, Small releases
16. The tests 50min = 36min rspec + 13min cucumber
165 rubygems, (330 with dependencies)
external services: geoip, epay/banking, sending
sms
we publish open source gems for most of our
external services.
The Commits from 9 developers and 3 others
THE CODE
Comits Developer
3781 I. B.
2303 D. N.
1721 R. B.
969 A. D.
923 A. Y.
879 I. T.
463 V. S.
323 V. N.
309 N.
65 The CEO :)
8 M.
0 K.
18. Initially was hosted on one virtual machine,
4CPU, 3GB RAM, serving > 100+K users
every ActiveRecord N+1 was noticeable
For the USA we launch 3 servers, expecting a lot of
traffic
no one came...
ORCHESTRATION WITH ANSIBLE
19. Network
Host (Security, Accounts, ntp, basic packages)
Mail
Docker
Webserver
Zabbix/ZabbixAgents
Errbit
Memcached
Redis
Elasticsearch
Postgres
Samba
EACH WEBSITE IS ORCHESTRATED WITH ANSIBLE WITH THOSE PLAYBOOKS
A er the initial effort of setup the Ansible provisioning there were no need for Sysadmin, the
"configuration" was documented in the playbooks. We are stable and fast.
20. OUR SYSADMIN WELCOME BROCHURE
When he saw it, he run away - true story! Here is the title part of the brochure.
21. generates rails_best_practices, brakeman, rdoc,
states machines diagrams once a day
tried jenkins, gitlabci, cruisecontrol.rb, drone
A er successful build the CI deploys on testing.
fails if we introduce library with strange license.
We deploy with the Vincent Driessen's branching
model. The development team uses test
environments, and the business has stable
staging environment.
CI/CD
23. DEVELOPERS KNOW THE SPEED OF THE WEBSITE IN TEST/PRODUCTION
Web pages above 100ms are considered to be slow and those urls are redirected to separate
application server dedicated to process them without hurting the overall performance. When the
pages are fixed they are returned to the fast application servers.
We are faster in discovering problems than Newrelic services.
24. ERRBIT
Monitor the errors from staging and testing environment so we know when someone hits the error.
The errors are redirected to rocket chat so that instantly knew about them
25. MONITORING
Zabbix installed on another data center is monitoring the website availability, the speed of the web
pages and alerts via push notifications/chat the developers. UptimeRobot is monitoring Zabbix
Logcheck is reporting everthing unusual
26. OPTIMIZATIONS
Assets - Use separate IP (assets.yatoto.com) for faster loading
Cache - Heavy caching on memcached and Nginx
Return HTML ASAP - later process the request in the background
Fight SPAM - Process the mail logs to find fake email accounts
Dragonfly behind Nginx with big cache
page preloading
27. SATISFACTION
The project is huge, and we have been able to maintain and develop it during the years. There were
no noticeable downtimes. Maintaining the project was with very little effort because of the
automation and the tests. We have played with a lot of technologies