Sales Tel: +63 945 7983492  |  Email Us    
SMDC Residences

Air Residences

Features and Amenities

Reflective Pool
Function Terrace
Seating Alcoves

Air Residences

Green 2 Residences

Features and Amenities:

Wifi ready study area
Swimming Pool
Gym and Function Room

Green 2 Residences

Bloom Residences

Features and Amenities:

Recreational Area
2 Lap Pools
Ground Floor Commercial Areas

Bloom Residences

Leaf Residences

Features and Amenities:

3 Swimming Pools
Gym and Fitness Center
Outdoor Basketball Court

Leaf Residences

Contact Us

Contact us today for a no obligation quotation:

+63 945 7983492
+63 908 8820391

Copyright © 2018 SMDC :: SM Residences, All Rights Reserved.

P2080-034 dumps with Real exam Questions and Practice Test -

Great Place to download 100% free P2080-034 braindumps, real exam questions and practice test with VCE exam simulator to ensure your 100% success in the P2080-034 -

Pass4sure P2080-034 dumps | P2080-034 real questions |

P2080-034 Tealeaf Technical Mastery Test v1

Study Guide Prepared by IBM Dumps Experts

Exam Questions Updated On : P2080-034 Dumps and Real Questions

100% Real Questions - Exam Pass Guarantee with High Marks - Just Memorize the Answers

P2080-034 exam Dumps Source : Tealeaf Technical Mastery Test v1

Test Code : P2080-034
Test Name : Tealeaf Technical Mastery Test v1
Vendor Name : IBM
: 38 Real Questions

Get those and chillout!
Im scripting this because I need yo say way to you. i have efficiently cleared P2080-034 exam with 96%. The test questions and answers series made with the useful resource of your crew is first rate. It not simplest offers a real sense of a web exam however each offerseach question with precise explananation in a easy language which is easy to apprehend. I am extra than happy that I made the right desire through purchasing for your check series.

So clean questions in P2080-034 exam! i used to be already sufficient organized.
I were given 76% in P2080-034 exam. Thanks to the team of for making my attempt so easy. I propose to new customers to prepare thru as its very complete.

No time to take a look at books! need some thing speedy preparing.
applicants spend months looking to get themselves prepared for their P2080-034 test however for me it changed into all just a days work. youll wonder how someone would have the ability to finish this kind of super task in only a day let me inform you, all I had to do turned into sign in myself on this and the whole thing changed into precise after that. My P2080-034 check seemed like a very simple challenge due to the fact i was so nicely prepared for it. I thank this web site for lending me a assisting hand.

it's far unbelieveable, but P2080-034 actual exam questions are availabe right here.
In recent times i bought your certification package deal and studied it very well. Closing week I handed the P2080-034 and received my certification. exam simulator modified into a first rate device to put together the exam. That more my confidence and i resultseasily passed the certification exam! Quite encouraged!!!

can i discover dumps Q & A of P2080-034 examination?
Word of mouth is a totally robust manner of advertising for a product. I say, while some thing is so desirable, why no longerdo a few excessive nice exposure for it I would really like to spread the phrase approximately this one of a type and absolutely notable which helped me in acting outstandingly well in my P2080-034 exam and exceeding all expectations. I might say that this is one of the most admirable online coaching ventures i have ever come upon and it deserves quite some popularity.

Is there P2080-034 exam new sayllabus?
I wanted to start my own IT business but before it, P2080-034 course was necessary for my business, so I decide to get this certificate. When I took the admission for P2080-034 certification and took lectures I didnt understand anything. After some query I reached at website and learnt from their and when my P2080-034 exam came I did well as compare to those students who took lectures and prepared from P2080-034 study guide from this website. I recommend this website to all. I also thank to the employees of this website.

Can I find Latest dumps Q & A of P2080-034 exam?
id take a privilege to mention Many Many thanks to all team contributors of for supplying this sort ofsplendid platform made to be had to us. With the assist of the net questions and caselets, i have effectively cleared my P2080-034 certification with eighty one% marks. It changed into certainly useful to apprehend the sort and styles of questions and causes supplied for solutions made my concepts crystal clear. thank you for all the assist and keep doing it. all of the finekillexams.

It is great ideal to prepare P2080-034 exam with actual test questions.
I became approximately to surrender exam P2080-034 because I wasnt assured in whether or not I could pass or no longer. With just a week last I decided to exchange to QA for my exam preparation. Never concept that the subjects that I had always run away from might be so much fun to observe; its clean and brief way of getting to the factors made my practise lot less complicated. All thanks to QA, I never idea I could skip my exam but I did pass with flying shades.

Is there a shortcut to pass P2080-034 exam?
I pass in my P2080-034 exam and that turned into now not a simple pass but a notable one that I should tell anybody with proud steam crammed in my lungs as I had were given 89% marks in my P2080-034 exam from analyzing from

What a first-rate supply cutting-edge P2080-034 questions that art work in actual test.
A few great news is that I handed P2080-034 test the day gone by... I thank entire team. I truely respect the wonderful art work which you All do... Your schooling material is remarkable. Maintain doing right artwork. I am capable of honestly use your product for my next exam. Regards, Emma from the big apple

IBM Tealeaf Technical Mastery Test

IBM to present DB2 Mastery exam - 2 | Real Questions and Pass4sure dumps

First name: remaining name: e mail handle: Password: ascertain Password: Username:

Title: C-level/President supervisor VP group of workers (affiliate/Analyst/and many others.) Director


function in IT decision-making manner: Align enterprise & IT desires Create IT approach examine IT wants manage vendor Relationships evaluate/Specify brands or companies different position Authorize Purchases now not worried

Work telephone: enterprise: business measurement: industry: highway tackle metropolis: Zip/postal code State/Province: country:

every so often, they send subscribers particular offers from choose partners. Would you like to get hold of these special associate presents via email? sure No

Your registration with Eweek will include here free electronic mail e-newsletter(s): information & Views

by way of submitting your instant number, you compromise that eWEEK, its linked properties, and supplier partners featuring content material you view might also contact you using contact core technology. Your consent is not required to view content or use web site elements.

by way of clicking on the "Register" button beneath, I agree that I actually have carefully read the phrases of service and the privateness coverage and that i agree to be legally certain by all such terms.


continue with out consent      

IBM details Channel Plans For Netezza records Warehouse home equipment | Real Questions and Pass4sure dumps

information warehouse home equipment

The flow will provide resellers with a range of earnings, advertising and technical supplies that IBM mentioned will make it less demanding to market and promote Netezza systems. IBM is also offering new financing options to channel companions who resell the Netezza appliances, including zero-% financing and versatile price alternate options for consumers.

while Netezza largely sold its records warehouse home equipment direct to purchasers, IBM has had its eye on the channel for selling Netezza products considering that it obtained the business in November for $1.7 billion. on the Netezza user convention in June IBM executives unveiled a companion recruitment effort for Netezza and referred to they expect the channel to account for 50 p.c of Netezza earnings inside four years.

"enterprise analytics goes mainstream and IBM's goal is to arm its partners with the right knowledge and help to assist their customers take capabilities of this vogue," mentioned Arvind Krishna, commonplace supervisor of IBM information administration, in a press release. "These [new] supplies are geared to make it convenient for their companions to right away infuse Netezza into their enterprise model."

IBM has identified business analytics as one among its strategic initiatives and has forecast that enterprise analytics and optimization products and capabilities will generate $16 billion in annual revenue for the enterprise by 2015.

Netezza's methods are according to IBM's BladeCenter servers.

Channel partners ought to be authorized to resell IBM items that come below the application value Plus (SVP) program. Authorization requirements encompass having as a minimum two employees who have passed a technical mastery examination and one who has passed a earnings mastery examination.

Resellers who qualify for the SVP application are eligible for co-advertising funds for lead technology and other market planning suggestions. IBM additionally offers partners a potential bootcamp where team of workers can instruct on a way to deploy, manage and keep Netezza systems. And SVP-member resellers can convey sales potentialities into IBM Innovation facilities to verify-force Netezza products.

starting Oct. 1 the Netezza products also will come under IBM's application price Incentive program, which gives financial rewards for companions who determine and enhance earnings opportunities, however don't necessarily deal with product success.

On the financing facet companions can present zero-% financing through IBM world Financing to credit-qualified valued clientele for Netezza purchases. also attainable is 24- and 36-month financing with options that permit purchasers suit payments to anticipated cash flows.

And companions can rent a Netezza equipment for 24 months to run inside their own information facilities for demonstration, building, trying out and practicing applications, IBM observed.

Charlotte, N.C.-based mostly options issuer and IBM associate Fuzzy Logix, which supplies predictive analytics utility and functions to valued clientele, "will use these components from IBM to uncover world enterprise opportunities and carry bigger price capabilities to their purchasers," noted COO Mike Upchurch, in a statement.

IBM pursuits enterprise BYOD with MobileFirst | Real Questions and Pass4sure dumps

commercial enterprise mobility is changing into a large deal and IBM is itching to prove that it's on the case.

The IT products and services significant nowadays debuted its MobileFirst portfolio and pledged to double the business's investments in cell this 12 months. MobileFirst encompasses a collection of cell offerings that large Blue is gathering below the MobileFirst umbrella. They include cell machine administration, analytics and cellular developer outreach and assist in partnership with AT&T.

The goal, in keeping with Robert LeBlanc, senior vice chairman of IBM middleware utility, is to shepherd the carry your own gadget (BYOD) circulate into an era of enterprise-enabled mobility. "up to now, cell computing has been dominated by using discussions of latest smartphones, working techniques, video games and apps. but organizations have yet to faucet into the knowledge of cellular business," he talked about in an organization commentary.

If iOS and Android smartphones and tablets like the iPad aren’t already an integral part of the average workday, they soon could be, says IBM.;n=203;c=204660774;s=9478;x=7936;f=201812281339040;u=j;z=TIMESTAMP;a=20403972;e=i

LeBlanc introduced, "As these devices develop into ingrained in everything that they do, companies are now within the fingers of their purchasers' fingers. IBM MobileFirst is designed to make the transformation to becoming a cell commercial enterprise a reality."

In guide of that imaginative and prescient, IBM unveiled a unified solutions set, deliverable by way of the cloud or as managed capabilities, to support enterprises combine mobility into their IT setups and enterprise procedures.

IBM's newly-introduced mobile slate includes updates to IBM Worklight, the mobile applications platform that the enterprise acquired last yr. aspects encompass single signal-on for varied purposes and a brand new Rational check Workbench beta for cellular app trying out.

On the mobile machine management (MDM) front, IBM announced extended gadget help and safety updates for Endpoint supervisor. A refreshed edition of AppScan offers vulnerability checking out for iOS apps.

IBM is relying on tech from one other acquisition, Tealeaf, for cell analytics. The enterprise plans to expand its Tealeaf CX cell visual analytics product to supply businesses a window into mobile behaviors.

capabilities additionally play a huge role. MobileFirst approach and Design functions are anchored via IBM Interactive, the company's new mobile Maturity model assessment provider and new cellular Workshops to support purchasers accelerate their projects. when it comes to establishing and managing cellular environments, IBM is enlisting the improved community Infrastructure capabilities for cellular, mobile business functions for Managed Mobility and mobile utility Platform administration instruments.

Recognizing that developers can make or damage a cell ecosystem, the business has cast a partnership with AT&T that allows for coders to integrate aspects like speech attention and brief funds by way of IBM Worklight and AT&T's cloud APIs. IBM is additionally pouring technical documentation into on-line materials developerWorks and CodeRally.

Pedro Hernandez is a contributing editor at, the news service of the IT business side community, the network for technology experts. observe him on Twitter @ecoINSITE.

connected news AND evaluation
  • synthetic Intelligence in Healthcare: How AI Shapes medication

    function |  by means of Lisa Morgan, March 08, 2019

  • accurate machine discovering solutions

    function |  by Samuel Greengard, February 14, 2019

  • Google machine learning Engine: Product Overview and perception

    synthetic INTELLIGENCE |  by way of Samuel Greengard, February 14, 2019

  • Alteryx: Product Overview and perception

    synthetic INTELLIGENCE |  with the aid of Samuel Greengard, February 14, 2019

  • SAP Leonardo: Product Overview and insight

    artificial INTELLIGENCE |  by means of Samuel Greengard, February 14, 2019

  • RapidMiner: Product Overview and perception

    artificial INTELLIGENCE |  by Samuel Greengard, February 14, 2019

  • Microsoft Azure machine getting to know Studio: Product Overview and perception

    synthetic INTELLIGENCE |  via Samuel Greengard, February 14, 2019

  • IBM Watson Studio: Product Overview and insight

    synthetic INTELLIGENCE |  with the aid of Samuel Greengard, February 14, 2019

  • SAS visual computer researching: Product Overview and perception

    characteristic |  by way of Samuel Greengard, February 14, 2019

  • AWS SageMaker: Product Overview and insight

    artificial INTELLIGENCE |  by means of Samuel Greengard, February 14, 2019

  • artificial Intelligence in business: using AI in your business

    artificial INTELLIGENCE |  by Daniel Dern, February 08, 2019

  • How IBM’s undertaking Debater might fix fb

    artificial INTELLIGENCE |  by Rob Enderle, January 21, 2019

  • IBM broadcasts most powerful AI Effort Yet: The beginning of sensible HR

    artificial INTELLIGENCE |  by using Rob Enderle, December 07, 2018

  • IBM Spectrum discover: AI at Scale

    synthetic INTELLIGENCE |  by Rob Enderle, October 26, 2018

  • The precise Cloud-based AI capabilities

    artificial INTELLIGENCE |  with the aid of Andy Patrizio, September 11, 2018

  • artificial Intelligence Salaries: Paychecks Heading Skyward

    synthetic INTELLIGENCE |  through Andy Patrizio, August 28, 2018

  • synthetic Intelligence Use situations

    function |  via Samuel Greengard, August 13, 2018

  • 25 accurate AI Startups

    feature |  through Andy Patrizio, July 18, 2018

  • CIOs Leveraging AI and machine gaining knowledge of For ITSM goals

    artificial INTELLIGENCE |  with the aid of Jeff Kaplan, July 03, 2018

  • 35 artificial Intelligence courses

    artificial INTELLIGENCE |  by means of Cynthia Harvey, may additionally 04, 2018

  • Unquestionably it is hard assignment to pick dependable certification questions/answers assets regarding review, reputation and validity since individuals get sham because of picking incorrectly benefit. ensure to serve its customers best to its assets concerning exam dumps update and validity. The vast majority of other's sham report dissension customers come to us for the brain dumps and pass their exams joyfully and effortlessly. They never trade off on their review, reputation and quality on the grounds that killexams review, killexams reputation and killexams customer certainty is imperative to us. Uniquely they deal with review, reputation, sham report objection, trust, validity, report and scam. On the off chance that you see any false report posted by their rivals with the name killexams sham report grievance web, sham report, scam, protest or something like this, simply remember there are constantly awful individuals harming reputation of good administrations because of their advantages. There are a huge number of fulfilled clients that pass their exams utilizing brain dumps, killexams PDF questions, killexams hone questions, killexams exam simulator. Visit, their specimen questions and test brain dumps, their exam simulator and you will realize that is the best brain dumps site.

    Back to Braindumps Menu

    NCCT-TSC practice questions | 000-674 dump | 000-137 questions answers | 1Z0-218 braindumps | ASWB study guide | 1Y0-340 dumps | 190-722 mock exam | H12-221 free pdf | CCRN exam prep | PW0-050 Practice test | 300-075 free pdf | 1T6-111 real questions | PW0-105 examcollection | ACMP-6.4 test prep | 650-575 questions and answers | ISEB-ITILV3F practice exam | 000-377 test prep | 1Z0-204 questions and answers | 190-824 braindumps | 000-884 exam prep |

    Review P2080-034 real question and answers before you take test P2080-034 Exam PDF contains Complete Pool of Questions and Answers and Dumps checked and verified including references and explanations (where applicable). Their target to assemble the Questions and Answers is not only to pass the exam at first attempt but Really Improve Your Knowledge about the P2080-034 exam topics

    At, they give completely surveyed IBM P2080-034 preparing assets which are the best to pass P2080-034 exam, and to get certified by IBM. It is a best decision to speed up your position as an expert in the Information Technology industry. They are pleased with their notoriety of helping individuals pass the P2080-034 test in their first attempt. Their prosperity rates in the previous two years have been completely great, because of their upbeat clients who are currently ready to impel their positions in the fast track. is the main decision among IT experts, particularly the ones who are hoping to move up the progression levels quicker in their individual associations. IBM is the business pioneer in data innovation, and getting certified by them is an ensured approach to prevail with IT positions. They enable you to do actually that with their superb IBM P2080-034 preparing materials.

    IBM P2080-034 is rare all around the globe, and the business and programming arrangements gave by them are being grasped by every one of the organizations. They have helped in driving a large number of organizations on the beyond any doubt shot way of achievement. Far reaching learning of IBM items are viewed as a critical capability, and the experts certified by them are exceptionally esteemed in all associations.

    We give genuine P2080-034 pdf exam questions and answers braindumps in two arrangements. Download PDF and Practice Tests. Pass IBM P2080-034 real Exam rapidly and effectively. The P2080-034 braindumps PDF sort is accessible for perusing and printing. You can print increasingly and practice ordinarily. Their pass rate is high to 98.9% and the comparability rate between their P2080-034 study guide and genuine exam is 90% in light of their seven-year teaching background. Do you need successs in the P2080-034 exam in only one attempt? I am right now examining for the IBM P2080-034 real exam. Huge Discount Coupons and Promo Codes are as under;
    WC2017 : 60% Discount Coupon for all exams on website
    PROF17 : 10% Discount Coupon for Orders greater than $69
    DEAL17 : 15% Discount Coupon for Orders greater than $99
    DECSPECIAL : 10% Special Discount Coupon for All Orders

    As the only thing that is in any way important here is passing the P2080-034 - Tealeaf Technical Mastery Test v1 exam. As all that you require is a high score of IBM P2080-034 exam. The just a single thing you have to do is downloading braindumps of P2080-034 exam prep directs now. They will not let you down with their unconditional guarantee. The experts likewise keep pace with the most up and coming exam so as to give the greater part of updated materials. Three Months free access to have the capacity to them through the date of purchase. Each applicant may bear the cost of the P2080-034 exam dumps through at a low cost. Frequently there is a markdown for anybody all. have their specialists Team to guarantee their IBM P2080-034 exam questions are reliably the most updated. They are entirely set with the exams and testing system.

    How keep up IBM P2080-034 exams updated?: they have their brilliant system to check for update in s of IBM P2080-034. Presently after which they contact their assistants who're particularly calm with the exam simulator acknowledgment or now and again their clients will email us the latest update, or they were given the most current update from their dumps providers. When they find the IBM P2080-034 exams changed then they update them ASAP.

    On the off prep that you genuinely come up fast this P2080-034 Tealeaf Technical Mastery Test v1 and might pick never again to sit tight for the updates then they will give you full refund. in any case, you ought to send your score answer to us with the objective that they will have an exam. They will give you full refund speedy during their working time when they get the IBM P2080-034 score record from you.

    Right when will I get my P2080-034 material once I pay?: You will receive your username/password within 5 minutes after successful payment. You can then login and download your files any time. You will be able to download updated file within the validity of your account. Huge Discount Coupons and Promo Codes are as under;
    WC2017: 60% Discount Coupon for all exams on website
    PROF17: 10% Discount Coupon for Orders greater than $69
    DEAL17: 15% Discount Coupon for Orders greater than $99
    DECSPECIAL: 10% Special Discount Coupon for All Orders

    P2080-034 | P2080-034 | P2080-034 | P2080-034 | P2080-034 | P2080-034

    Killexams 1Z0-100 exam prep | Killexams HPE2-W01 dump | Killexams 9L0-410 test prep | Killexams 000-773 braindumps | Killexams CAT-241 exam prep | Killexams HP0-M41 test prep | Killexams 117-201 real questions | Killexams 000-580 practice questions | Killexams C2020-642 braindumps | Killexams 9A0-385 dumps | Killexams HP2-H20 practice test | Killexams 1Z0-470 questions and answers | Killexams 920-258 practice test | Killexams C9550-605 examcollection | Killexams EC1-349 study guide | Killexams 190-803 free pdf | Killexams MA0-103 bootcamp | Killexams 000-084 practice exam | Killexams 2D00056A exam questions | Killexams 500-005 questions answers | huge List of Exam Braindumps

    View Complete list of Brain dumps

    Killexams M2040-641 pdf download | Killexams HP0-084 dump | Killexams ZF-100-500 dumps | Killexams 70-410 real questions | Killexams C2010-597 braindumps | Killexams MSC-121 practice questions | Killexams HP0-064 braindumps | Killexams USMLE braindumps | Killexams 310-084 VCE | Killexams HP0-J38 study guide | Killexams PCNSE7 questions and answers | Killexams 000-421 free pdf | Killexams C2090-625 test prep | Killexams 190-273 test prep | Killexams 000-617 free pdf download | Killexams A2090-552 test prep | Killexams 000-274 practice test | Killexams 156-315.65 bootcamp | Killexams HP2-Z28 Practice test | Killexams CVA cheat sheets |

    Tealeaf Technical Mastery Test v1

    Pass 4 sure P2080-034 dumps | P2080-034 real questions |

    Declassified documents offer a new perspective on Yuri Gagarin’s flight | real questions and Pass4sure dumps

      Gagarin launch

    The launch of Vostok on April 12, 1961. A declassified document offers new information on what happened during Gagarin’s flight.

    by Asif SiddiqiMonday, October 12, 2015 Bookmark and Share

    As anyone who has done research on the topic knows, there’s an abundance of bewildering information about the Soviet space program, both in print and especially online. During the Cold War, Westerners generally had little to go on, but enterprising amateur sleuths chipped away at the edifice of secrecy, thus bringing to light many of its darkest secrets. The end of the Cold War brought a deluge of information on the program, most of it filtered through Russian journalists who were good at tracking down veterans willing to talk. The result was a kind of revisionist history, a history concerned with “what really happened” rather than “what they thought happened.”

    Despite all this quite impressive work, the principal challenge of doing Soviet space history has always been the problem of archival research. How do you go about digging into archives in Moscow to get at the documents, as one is able to do (for example) with the American space program?

    With Russian openness, a huge market opened up in the US and Europe for writers (mostly amateur historians or journalists) to step in and produce an unending stream of books on arcane aspects of the program. This strand has been further enriched by academics—mostly professional historians of modern Russia—who have looked at the rich cultural detritus of the Soviet space program. There’s a lot of this stuff out there, and some of it is very good, shedding light on the cultural importance of the Soviet space program as well as mapping how Russian culture has cultivate an interest in space exploration for well over a hundred years. (For those interested, I moderated a very interesting discussion on Soviet space culture a couple of years ago on the Russian History Blog.)

    Gagarin launch

    Gagarin being led to his spaceship at the top of the gantry by Oleg Ivanovsky who was the “lead” (production) designer of the Vostok spaceship.

    Despite all this quite impressive work, the principal challenge of doing Soviet space history has always been the problem of archival research. How do you go about digging into archives in Moscow to get at the documents, as one is able to do (for example) with the American space program? Since the early 1990s, it has actually been possible to visit archives in Moscow and get access to Party and government documents at various state archives. It’s not easy, but it can be done and there are many academics, both professors and graduate students, who routinely do research at Russian archives on a huge array of topics related to Soviet history. I myself have been in Moscow many times (including for months at a time) working at various archives for my book on the pre-Sputnik history of the Soviet space program.

    Of course, as with any archival document, one has to have a critical eye and contextualize, evaluate, and weigh any document by drawing from other sources. Nevertheless, the availability of archival documents on the Soviet space program has been both a boon and source of confusion. Russian archival authorities, for example, published several collections of primary source documents in 2011 on the early days of the space program (all in Russian) which are now commercially available (I’ve written brief summaries of some of them in this NASA Newsletter, pp. 19–24) but at the same time, there is undoubtedly some selection bias in what has been included and what has been omitted. Selection bias is, of course, a problem with any published collection of archival documents but the Russian ones come with their own peculiar set of problems.

    It was in this context that I was in Moscow this past summer and spent a month digging through archives on a non-space related book project (actually on the history of scientists and engineers who worked in the Stalinist Gulag). I had a few days left at the end and went digging for space-related documents. At the Russian State Archive of the Economy (RGAE), one can find thousands of fat binders containing records of the grim-sounding Military-Industrial Commission, the body that managed Soviet military R&D and production during much of the Cold War. These folders are heavy, dusty, and for the most part, no one has looked at them since they were originally put away by archivists. The richness of materials is quite astonishing. Over the past few years, I have found and collected an enormous amount of material on the space program and related fields. These include: plans and schedules for their interplanetary program; detailed lists of technical materials from the American aerospace industry coveted by Soviet industrial managers; documents complaining that secrecy at Baikonur (the site from where the Soviets launched their satellites and cosmonauts) was not strict enough; abandoned anti-satellite projects; and documents on their massive N-1 Moon program.

    Gagarin launch

    Ivanovsky helping Gagarin get settled in his ship.

    In this catalog of riches, in June of this year, I ran across a document on the historic flight of famed cosmonaut Yuri Gagarin, who on April 12, 1961, became the first human being in space. The document sheds new light on that historical flight, revealing the enormous risks involved in that mission. Gagarin’s Vostok flight, of course, has been quite amply documented, in print and online (with quite a nice recent biography in English by Andrew Jenks). I myself published a lengthy account, based largely on official mission documents (released in 1991), in one my earlier books, Challenge to Apollo: The Soviet Union and the Space Race, 1945–1974. However, documents have continued to trickle out on the flight in the past decade, and while nothing that has been declassified fundamentally shifts their perception of the mission, the Russian declassifications from 2011 have clarified much about the flight. The document that I found also provides confirmation of certain aspects of the flight, which is all the more important given the proliferation of Gagarin conspiracy websites (especially in Russian) which are easy to find with a Google search. Many websites will tell you that Gagarin was not the first human in space, that there were earlier “lost cosmonauts,” and, most sensationally, that his untimely death in 1968 was part of some nefarious Communist Party plan.

    The document underscores what has often been overlooked by casual historians—that the flight of Gagarin’s Vostok was fundamentally embedded in a military environment. His spaceship was actually an offshoot variant of a new spy satellite (“Zenit”), not, as many often claim, that the spy satellite was the offshoot of the human variant.

    The text of my document was remarkably somber in tone, very much in line with Soviet bureaucratic norms. Its title a literal description of its contents: “On the Results of the Launch of the ‘Vostok’ Space Ship with a Human on Board and on Plans for Future Work on Launches of the ‘Vostok’ Space Ship.” What was this? It was the official summary report—classified “Top Secret”—on Gagarin’s mission prepared by designers for the highest levels of the Soviet government. This five-page summary report, produced on May 9, 1961, less than a month after Gagarin’s flight, briefly compiled all that engineers knew about the flight. How did Gagarin do? How well did his spaceship perform? What can they do next?

    For a start, they can dismiss the notion that Gagarin was not well during the flight. The authors of the document note that “Cosmonaut Major Yu. A. Gagarin normally bore the effects of all the factors accompanying the insertion of [his] ship into orbit, the space flight, and the return to Earth, maintaining full working ability during the flight and fully completed the flight assignment and program of observation.”

    The document underscores what has often been overlooked by casual historians—that the flight of Gagarin’s Vostok was fundamentally embedded in a military environment. His spaceship was actually an offshoot variant of a new spy satellite (“Zenit”), not, as many often claim, that the spy satellite was the offshoot of the human variant. Engineers basically took out the cameras from the spy satellite, added life support, an ejection seat, and redundancies, and rigged the spacecraft for a human being. Besides the document’s comment about a “program of observation,” they get an explicit confirmation of the military importance of Gagarin’s flight in the next sentence, when the authors note that the flight has “opened up new prospects in the mastery of cosmic space and the use of these objects for the interests of defense.”

    Gagarin launch

    The “USSR” insignia was not originally on Gagarin’s helmet but was painted on on the morning of his flight.

    Despite the obvious note of self-congratulation about the flight (“all systems ensuring the insertion into orbit, flight in orbit, and return of the return module and the cosmonaut [back] to Earth, worked normally”) the document notes there were numerous “basic shortcomings” during the preparation and implementation of the mission. Going through these they get a rare and peculiar glimpse into the Cold War Soviet space program and its functioning in a climate of high stakes and incredibly high risk.

    We find from the document that during the preparation of two precursor missions with dogs in March 1961, and then in manufacturing Gagarin’s actual vehicle, at least 70 anomalies were detected in instruments on the vehicle. Yet, still, the flight went ahead!

    Second, the “air conditioning” (basically, the life support system on Vostok) “did not fully correspond to the [design] requirements,” meaning that life support was essentially operating at its limits for Gagarin.

    We also know that there were a few other “anomalies” (in NASA parlance) that marred the mission, including one that potentially could have killed Gagarin.

    Third, the “portable emergency reserve” (in Russian, known as NAZ for nosimyy avariynyy zapas), a package used by cosmonauts to survive (for about three extra days) in case of landing in an unexpected area, was insufficiently debugged, especially for emergency splashdowns, which was certainly a possibility. In fact, the document notes that after being ejected from his capsule after his single orbit, when Gagarin was parachuting down, “the cable connected to the [portable emergency reserve] snapped,” basically depriving him of these supplies. In other words, if he had actually landed way off target, he would have had to survive without any supplies.

    Fourth, a key valve in an engine (known variously as the 8D719, RD-0109, or RO-7) on two upper stages was assembled incorrectly at the factory, which, the document notes, “could have led to a premature shutdown of the engine and [failure] of orbital insertion of the [spaceship].” One imagines the outcome for Gagarin if that had happened. The best case scenario was an unscheduled landing, perhaps in eastern Siberia, on the initial portion of the orbital ground track. The worst case, given all the unknowns, was a fatality. In fact, as I describe below, this particular valve and its operation during orbital insertion did put Gagarin’s life in serious jeopardy, but not in the way one might expect.

    Fifth, the short-wave mode for the voice radio-communication system (known as “Zarya”) basically did not “provide for normal communications during flight of the cosmonaut with ground communication stations,” which explains the repeated complaints by both the ground and Gagarin of difficulty in hearing each other, not to mention the poor quality of the audio that has been released by Russian archivists.1 Yet, Gagarin recorded some vivid impressions of his time in orbit on a tape recorder in real time. (“The flight is proceeding marvelously. The feeling of weightlessness is no problem, I feel fine… At the edge of the Earth, at the edge of the horizon, there’s such a beautiful blue halo that becomes darker the farther it is from the Earth…”)

    Sixth, one of the two onboard radar sensors (known as “Rubin”), which helped the ground track the coordinates of the spaceship, did not work during Gagarin’s flight. This meant that tracking data during the mission was spotty at best.

    Finally, the spaceship’s main data recorder (a kind of “black box”) known as “Mir-V1” did not work during reentry and landing due to “unsound assembly” at the factory. This meant that much critical data on the final portion of Gagarin’s mission was simply never recorded, making troubleshooting after the mission that much harder.

    document cover

    Front page of the document found at an archive in Moscow reporting on the results of Gagarin's flight to government leaders.

    We also know that there were a few other “anomalies” (in NASA parlance) that marred the mission, including one that potentially could have killed Gagarin. During launch into orbit, the upper stage engine worked longer (the faulty valve!) than it should have, putting Gagarin in a much higher orbit than planned—the apogee of the orbit was 327 kilometers instead of 230 kilometers. This meant that in case the retrorocket system failed, Gagarin’s ship would not naturally decay after a week or so, or even after ten days—the absolute limit of resources in the ship. It would instead reenter after 30 days, by which time Gagarin would certainly be dead, having exhausted all the air inside. In other words, either the retrorocket worked, or Gagarin was a dead man.

    In his postflight report, he remembered, “I waited for separation. There was no separation.”

    During the actual flight, as soon as orbital insertion occurred, a timer known as Granit-5V activated. Precisely 67 minutes later, this timer sent a signal to fire the retrorocket engine (known as the S5.4) which, basically, did its job and deorbited Gagarin. In retrospect, that the retrorocket engine fired as it was intended to do is not terribly surprising given that it was one of the most ground-tested elements of the entire spaceship—17 out of 18 ground firings before the launch were successful. An interesting aside to all this is that during the entire time he was in space, Gagarin had no idea he was in the wrong orbit.

    A much bigger problem occurred when, having ignited, the retrorocket engine stopped firing after 44 seconds, one second before the planned shutdown time due to another faulty valve. That one second meant that Gagarin would land 300 kilometers short of the planned target point. The lack of a proper shutdown also meant that some remaining propellant from the retro-engine (as well as residual gas from the gas bottles of the attitude control system) put Gagarin’s ship in an uncontrolled spin (of about 30° per second). Gagarin, as affable as always, reported on this in his later postflight report as a “corps de ballet” as the spaceship madly spun around. He remembered that it was “head, then feet, head, then feet, rotating rapidly. Everything was spinning around. Now I see Africa… next the horizon, then the sky… I was wondering what was going on.”

    The problem, however, was much more serious than anyone could have anticipated, for the unexpected spin disrupted the internal program that would have immediately (four to eight seconds after engine shutdown) led to separation of the two modules that made up the Vostok spaceship: the spherical descent module carrying Gagarin, and the conical instrument module, which lacked a heat shield but ideally would burn up separately far from Gagarin’s capsule. In his postflight report, he remembered, “I waited for separation. There was no separation.” Instead, shackled to each other, the two objects began to enter the atmosphere as one. This was highly dangerous, for parts of the module not designed to survive reentry could have easily impacted and blown through Gagarin’s capsule. Fortunately for Gagarin, about ten minutes later, the two parts of Vostok separated, at an altitude of about 150–170 kilometers above the Mediterranean. That was lower than usual, but still high enough that Gagarin’s capsule was unharmed. And even then all was not safe. For a few seconds, a wiring harness kept the two modules connected, in a wild dance, separating only when four steel strips attaching the harness came off.

    After experiencing about 10–12 g’s during reentry, Gagarin, once in the atmosphere, ejected from his capsule at an altitude of approximately seven kilometers. However, he soon discovered that once his primary large parachute deployed, the reserve parachute, slightly smaller than the primary one, also partially deployed. Fortunately, descending with one fully deployed parachute and one partial one—a recipe for disaster in a worst case scenario—did not adversely affect his descent. Gagarin was, however, busy with other problems: for six minutes, as he descended, he struggled to open a respiration valve on his spacesuit to help him breathe atmospheric air. His life was not in danger but it must have been extremely uncomfortable for a few tense minutes. Luckily, none the worse for the wear, he parachuted down safely at 1053 Moscow Time (not at 1055, as thought for decades).

    he many problems that Gagarin faced on his mission were not necessarily due to poor design or bad engineering, I would argue, but instead a combination of haste and poor workmanship on the factory floor. I would argue that the Vostok design was in fact excellent engineering if they define “excellent engineering” as also being incredibly robust.

    What does this all mean? Gagarin was an incredibly lucky man to have come out of this unhurt and alive. In rushing to accomplish a human spaceflight in the race with the US, Soviet engineers pushed the boundary of acceptable risk to its limits. Fortunately for Soviet planners everything went well. Sure, some of this was due to luck. Things that could have gone wrong didn’t. But some of it was also the undeniably robust design of the Vostok spaceship itself. Its relatively simple and elegant design was intended first and foremost to get a person into orbit and back as quickly and reliably as possible. The Soviets, for example, bypassed a slightly more complex blunt, truncated cone design (such as used on NASA’s Mercury spacecraft) in favor of a simple sphere capable of ballistic reentry into the Earth’s atmosphere.

    The many problems that Gagarin faced on his mission were not necessarily due to poor design or bad engineering, I would argue, but instead a combination of haste and poor workmanship on the factory floor. Consider that the Vostok spacecraft consisted of 241 vacuum tubes, more than 6,000 transistors, 56 electric motors, and about 800 relays and switches connected by about 15 kilometers of cable. In addition, there were 880 plug connectors, each (on average) having 850 contact points. A total of 123 organizations, including 36 factories, contributed parts to the entire Vostok system. Despite redundancy in a large number of systems, human-rating such a spacecraft with absolute confidence was practically impossible. Yet, the way that Soviet engineers designed the system, it was meant to operate even at the blurry edges where parameters were pushed to the max. It is because of this that I would argue that the Vostok design was in fact excellent engineering if they define “excellent engineering” as also being incredibly robust.

    The problem with Vostok was not the design itself but that it was insufficiently tested. There were too many bugs in the system that could have been eliminated in a slower testing program. But the frantic pace of the “space race” ensured that you had to sacrifice thorough ground testing in favor of debugging the technology in space. This means that you automatically increase the risk to human subjects on board spaceships. Extended ground testing versus flight testing is a tough call for mission managers, and depending on the urgency (as in Apollo 8, for example), you sometimes do something on the mission that you haven’t really tested on the ground—or can’t test at all.

    What all this tells us is that while “good engineering” has some objective measures for evaluation, they also need to introduce context into the equation. The question is not simply, “Will it get the job done?” The question is, “Will it get the job done, on time, and even if lots of things go wrong?” And in Gagarin’s case, the answer was obviously “yes.” Regardless of all the troubles on his mission, he will always be the first human being in space. You can’t take that away.

  • Basically, UHF communications with Gagarin were maintained from the moment he entered the capsule to about 23 minutes after launch. After that, they switched to short-wave, from various ground stations. But Novosibirsk and Alma-Ata received no word from Gagarin, while Khabarovsk maintained two-way communication for only four minutes (from 09:53 to 09:57 Moscow Time), and Moscow for a minute or so (beginning 10:13 Moscow Time).
  • General References
  • “On the Results of the Launch of the ‘Vostok’ Space Ship with a Human on Board and on Plans for Future Work on Launches of the ‘Vostok’ Space Ship” (May 9, 1961) [in Russian], Russian State Archive of the Economy (RGAE), fond 298, opis’ 1, delo 2057, ll. 249-253.
  • Asif A. Siddiqi, Challenge to Apollo: The Soviet Union and the Space Race, 1945–1974 (Washington, DC: NASA History Office, 2000).
  • L. V. Uspenskaya, ed., Chelovek. Korabl’. Kosmos: sbornik dokumentov i materialov k 50-letiyu poleta v kosmos Yu. A. Gagarina (Moscow: Novyy khronograf, 2011).

  • Key Takeaway Points and Lessons Learned from QCon London 2015 | real questions and Pass4sure dumps

    Now in its ninth consecutive year, QCon London 2015 featured thought-provoking and engaging keynotes from "Eloquent Ruby” author Russ Olsen, Cobalt Advisors managing partner Enyo Kumahor, Principal Software Engineer, Google Infrastructure John Wilkes, and Netflix Insight Engineering Manager Roy Rapoport.

    This was the largest London QCon yet with 1,200 team leads, architects, and project managers attending 120 technical sessions across 19 concurrent tracks and 13 in-depth tutorials. Attendees had near instant access to video from nearly all of the sessions.

    This article summarizes the key takeaways and highlights from QCon London 2015 as blogged and tweeted by attendees. Over the course of the coming months, InfoQ will be publishing most of the conference sessions online, including video interviews that were recorded by the InfoQ editorial team.  The publishing schedule can be found on the QCon London web site. You can also see numerous photos of QCon on Flickr.



    Tracks and Talks

    Architecture Improvements

    Architectures You've Always Wondered About

    Big Data Frameworks, Architectures, and Data Science

    Devops and Continuous Delivery: Code Beyond the Dev Team

    Docker, Containers and Application Portability

    Engineering Culture

    Evolving Agile

    HTML And JS Today

    Internet of Things

    Java - Not Dead Yet

    Modern CS in the Real World

    Product Mastery

    Reactive Architecture

    Taming Microservices

    Taming Mobile

    The Go Language

    Sponsored Solutions Track

    Opinions about QCon



    Design & Implementation of Microservices

    by James Lewis

    Twitter feedback on this training session included:

    @fotuzlab: Experimentation is the key #qconlondon #microservices

    Java 8 Lambda Expressions & Streams

    by Raoul-Gabriel Urma

    Twitter feedback on this training session included:

    @dsommerville_nw: Impressed with lambdas and method references in #java8 so far - far less boilerplate and MUCH more readable. #qconlondon

    Cluster Management at Google

    by John Wilkes

    Will Hamill attended this keynote:

    John Wilkes … got straight into the examples of starting up services on Google’s internal cloud. Beginning with a simple ‘hello world’ service, John then created a cluster configuration request for 10,000 instances.

    10,000 was the number picked because this is the default maximum in a ‘cell’, a unit of management of clusters. Only 9993 were actually started as some had failed, or more commonly some machines had been taken down for OS upgrades (a rolling scheduled process), or for various other reasons the exact upper limit was not reached, but closely enough to be reliable and at this scale you start to get an appreciation for how inevitable and continuous failures will be in part of the network. John gave us stats collected that indicate that on a 2000 machine cluster, you can expect to have > 10 crashes per day.

    This appreciation leads to having more design discussions about reliability; about what happens if something fails while doing maintenance or upgrades, as resilience and fault tolerance are initially more desirable than focusing design effort on speed - as at these resource levels brute force can make up for speed in the short term. John also repeated the remark that they should “treat servers like cattle, not pets”, as while your development laptop is likely to be treated like a precious snowflake, the machines you deploy upon can be automatically created and destroyed much more easily. When the jobs/services you are developing have to tolerate faults in this way, it means that migrating tasks from one machine to another is dead simple: kill it and start up a new one elsewhere….

    All of this deployment management, metering, reallocation, live experimentation and such is only available to the teams because Google has made such an investment in monitoring. John impressed the importance upon the audience: “If you are not monitoring it, it is out of control”. …

    As demonstrated during the keynote, everything in Google internally runs on containers. Seeing the upcoming schedule, John said of Docker “we don’t use it internally, as they have their own system, but they really like it”. Google have also published the Kubernetes project, a tool for managing clusters of containerised applications that looks really interesting. Asked about when the utility of Kubernetes kicks in, John replied “If you’re going to do one or two or three containers just use Docker. Kubernetes helps you manage things if you have hundreds.” …

    John ended the keynote by summarising with a call for incremental improvement, saying that the likelihood for success and building momentum is much higher than a big-bang project: “roofshot is better than moonshot”. John left us with three points to finish:

  • Resilience is more important than performance
  • It’s okay to use other people’s stuff, don’t do it all yourself
  • Do more monitoring
  • Twitter feedback on this keynote included:

    @Helenislovely: #qconlondon "we want their developers to be productive not jump through permission hoops" sounds good @google

    @andyhedges: At google devs can spin up their code on up to 10,000 nodes without permission. They want their devs to be productive #qconlondon

    @alblue: So Google's internal system for scheduling is called The Borg and they have a bunch of borglets #QConLondon

    @adrianmouat: The reason things look like they work from the outside is because they assume they don't work on the inside John Wilkes (google) #qconlondon

    @mylenereiners: John Wilkes (#Google ): of course they do not work. Things break all the time. (...) that's OK. #qconlondon

    @rvedotrc: For a service running on 2,000 machines (say, Google Calendar), 10 machine failures per day is normal, and fine – John Wilkes #qconlondon

    @rvedotrc: Servers are cattle; you don’t care if you lose one. Your laptop is a pet.– John Wilkes, Google #qconlondon

    @rvedotrc: “When Michael Jackson died, they thought it was a denial of service attack.”John Wilkes, Google #qconlondon

    @floydmarinescu: Google mixes production apps (gmail) and batch jobs on the same machines for cost efficiency #qconlondon

    @scottwambler: Do you understand all of the trade offs associated with a given strategy? Or just focused on how it affects you? #qconlondon

    @rvedotrc: Real data is noisy. Live with it.”– John Wilkes, Google #qconlondon

    @rvedotrc: Experiments [on live] are OK, provided you have a good way of stopping them in a hurry and rolling back”– John Wilkes, Google #qconlondon

    @andyp1per: Exposing mechanisms [to users] is fragile - John Wilkes #qconlondon

    @pzfreo: #qconlondon nice distinction between slo (objectives

    @bruntonspall: If you are not monitoring it, it *is* out of control #qconlondon

    @hnzekto: John Wilkes: "70% of their resources are spent in application monitoring." @Google Cluster Management #qconlondon

    @rvedotrc: Everything at Google runs in a container – including their VMs.”John Wilkes #qconlondon

    @pzfreo: Not news but confirmed. Google starts 2 billion containers a week #qconlondon

    @ludovicianul: internally they don't use Docker, externally it turns out to be a good thing - John Wilkens, Google. #qconlondon

    @csanchez: John Wilkes: "you shouldn't use Kubernetes in production until v1, which should be released in 1-2 months" #qconlondon

    Netflix Built Its Own Monitoring System - and Why You Probably Shouldn't

    by Roy Rapoport

    Pere Villega attended this session:

    His talk revolved around the NIH issue that affects many companies. If you have a problem,you should consider some questions first:

  • are you the first person to have this issue?
  • are you the first to care about it given your constraints: relevance to business, your scale, etc
  • are you sure about the above answers?
  • In some cases you may really be the first and you may need to build your own solution. But most of the time that is not true as solutions, either paid or free, exist.

    In the end, NIH is about trust: they don't trust other people's code, their product, their organisation, or that they will take good care of us as a customer. Even past performance of a 3rd party in other domains may move the balance towards building their own solution.

    If the decision is to build your own product, that's ok.

    Will Hamill attended this keynote:

    Roy started with describing Netflix’s culture, which is also aptly detailed in CEO Reed Hasting’s now famous ‘Culture Deck’ which you should definitely read. Netflix optimises their organisation to increase the speed of innovation by fostering a culture of freedom and responsibility. Netflix have an inherent anti-process bias that tends to weed out suboptimal procedures; if it doesn’t work it will be corrected or abandoned.

    Roy discussed ‘Not Invented Here’, recommending that when you have a problem to solve in your organisation, you should ask if you are the first to have it. Most times you are not the first to have that issue which means there is good news: there are already things out there to help that you can use….

    NIH often boils down to ‘not invented by us, an organisation that they can trust’. A few reasons why they wouldn’t trust them are that they don’t trust the technical credentials; they have been warned away from them by people they do trust; they don’t trust that the other organisation has their best interests in mind (for example, they’re selling us something).

    Occasionally, NIH is caused by CV-driven development. Roy argues that this is not always bad, as there is value in learning, there is value in improving the reputation of the company by creating a new product especially if you open-source the result, and value in keeping the developers happy in working on something challenging. …

    Roy discussed one method for mitigating this when using OSS; forking the project and merging contributions back into it. Roy also talked about composability of the components within your solution: consider whether you may want to replace any of these with other people’s work in order to enhance the system. This would require a good separation of responsibilities across parts of the system to take advantage of such a plug-and-play approach….

    Wrapping up, Roy said that when addressing NIH issues, dig in and find out which reasons are actually important to you. Find out if it’s really a technical decision, and if there is any way you can mitigate the effect while still meeting the needs.

    Twitter feedback on this keynote included:

    @csanchez: Netflix "we hire really smart engineers and stay the heck out of their way" @royrapoport #qconlondon

    @trisha_gee: Process should be descriptive not prescriptive - it should describe what you already do, not tell you how to do it @royrapoport #qconlondon

    @rvedotrc: “You added the config [by convention]. then magic would happen. Not necessarily the magic you wanted though.” @royrapoport #qconlondon

    @danielbryantuk: Magic would happen, although often not the magic you wanted @royrapoport on home-grown software solutions at #qconlondon

    @scottejames: Eventual consistency as a paradigm can ( should ) be applied to architecture decisions. #qconlondon

    @danielbryantuk: No one is going to build a monolith without creating it from a series of components, right? @royrapoport at #qconlondon

    @csanchez: Netflix: keep calm and build it yourself @royropoport #qconlondon

    @danielbryantuk: Allowing developers to build stuff they want can be good for morale and hiring. Just be clear when doing it @royrapoport #qconlondon

    @trisha_gee: Making developers happy is a Good Thing. You might want to let them innovate @royrapoport at #qconlondon

    @csanchez: Netflix monitoring processes 1.2 billion data points per minute @royrapoport #qconlondon

    Software Development Tales from the Continent

    by Enyo Kumahor

    Will Hamill attended this keynote:

    Enyo took to the stage for the closing keynote to give us an insight into some of the different challenges and opportunities that are encountered in Africa in software development. This was a really interesting session, giving a completely different view to how to enhance people’s lives with technology than the standard software company style of talks that filled the rest of the conference.

    Enyo described with graphs and maps how Africa is considered a mobile-first and mobile-only continent. Mobile penetration is high with the average person having more than one phone [though it is likely a featurephone] in contrast to a very low uptake of wired broadband internet access, which is typically only prevalent in coastal areas where internet fiber connections join the continent.

    Voice content and SMS based services are more popular, forming the majority of traffic on mobile networks, with data use very low. Interestingly, Enyo answered a question from the audience about low smartphone uptake and didn’t give the “smartphones cost a lot up front” answer I think most people (myself included) were expecting. Smartphones cost more initially but cost a lot to operate, as they must be charged every night. Not every person has on-demand access to reliable power, so charging would require going to somewhere a diesel generator is being operated. The cost of fuel has gone up considerably in recent years so this is prohibitively expensive….

    Enyo stated that it was most important to use design thinking to get the critical context for how the software was actually to be used in order to solve the real problem. One of the side effects of being a developing continent means that few constraints to new systems already exist in this regard - Enyo elicited an “oooh” from the attendees as she deployed the line “we don’t have legacy code on the continent”!

    Twitter feedback on this keynote included:

    @peter_pilgrim: Crikey! A massive opportunity in #Africa where it is not uncommon to own 2 mobiles for each network #QConLondon

    @annashipman: Left pic is the *two* Internet cables servicing the whole of Africa in 2009. Fascinating talk by @enyok #qconlondon

    @shanehastie: #qconlondon @enyok Advantage of building software in Africa - no legacy code, all solutions are new

    @shanehastie: #qconlondon @enyok Africa has manpower - technology shouldn't replace jobs it should support them.

    @shanehastie: #qconlondon @enyok Software needs to enable a zero cost service, no barrier to entry.

    @danielbryantuk: Understanding local context is key when developing software. Superb evening keynote about software dev in Africa by @enyok at #qconlondon

    To the Moon

    by Russ Olsen

    Quinten Krijger attended this keynote:

    The kick-off key note “To the Moon” was given by Russ Olsen. In a very entertaining and energetic way he reviewed the Apollo project. He started at the 1959, when the Western world was plagued by protests and fear because of the Cold War. At this time, Russia was ahead in the space race and had produced the first picture of the far side of the Moon. The reaction of president Kennedy was to declare the goal of landing on the Moon before 1970. Russ Olsen took a chronological approach though the Apollo project, reflecting often on how difficult this actually was.

    Some nice things I will remember from this story.

    - The software driving the Eagle that landed was developed by a woman named Margaret Hamilton. Designing the first program that needed to do multiple things at once and should be able to react to unexpected situations, Olsen states that she invented the term “Software Engineering” to describe the field of programming at an unprecedented level of complexity, where human lives were on line.

    - Although the space race was itself a part of the Cold War, the side effect of it was a hopeful subject. When the landing actually took place, the sense of exhilaration was enormous.

    - Very small faults can have life-threatening implication. As an example: the air lock not being completely vented when the pod was released from the ship that was at that time already orbiting the moon led to about a 0.1% difference in speed. The result was that Armstrong and Aldrin had to literally take last-minute measures to avoid landing on a very unfriendly piece of Moon. A good lesson for programmers!….

    Aim for the moon. It’s in the nature of an engineer to do so.

    Tracks and Talks

    An Architect’s World View

    by Colin Garlick

    Will Hamill attended this session:

    Colin began his talk by outlining the structure of the architectural world view he wanted to describe: values leading to principles which are implemented by practices. The analogy given was how the agile manifesto states core values, and is backed by more specific principles and then implemented with particular practices. So without getting as prescriptive as practices, Colin told us about the values that he thought a conscientious architect should have and the principles they inform.

    The values of an architect as Colin describes them are as follows: the customers of the architect are both the business and IT; an architect is interested in the big picture (conceptual integrity, as Fred Brooks puts it); leadership and humility - specifically being an enabler of the system rather than the boss; teamwork and an understanding of the types of people involved in the team and their needs (Myers-Briggs given here as an example of differences between different archetypes of persons); and finally the integrity and consistency to warrant the trust invested in the architect to deliver….

    Simplicity is an important principle, ensuring that the models created, documents generated etc are done for a specific audience and purpose rather than for their own sakes. Injecting patterns into solutions adds complexity rather than simplicity - less is more. …

    The next principle Colin talked about was just-in-time design. Delayed decisions are made with more knowledge about the situation. Deferring decisions to the last responsible moment allows us to investigate and try and attack the assumptions they would make. …

    ‘Deliver working solutions’ was Colin’s next principle. …

    An architect should also keep learning; using retrospectives, lessons learned sessions and the likes to find out how the architecture or design you proposed actually fared in the real world. Find out what happened when the decisions you made and plans you set were actually carried out by teams, and how the implementation panned out in reality….

    Quality should be a main consideration of the work of an architect - planning for testing and verification of the assumptions is important. An architecture that does not consider testability is usually not a good architecture. Know when ‘good enough’ occurs for your work, and try to attain this balancing point in ensuring you have built in enough quality and not over-egged the pudding.

    Managing change and complexity was Colin’s final principle. … Expect that your architecture will need to change as they find out more about the problem domain. Don’t try and prevent change or preempt future needs, but create systems where changing your approach or throwing away parts of the architecture can be done if needed.

    Twitter feedback on this session included:

    @lamb0: Architecture should be simple and grounded in values that people can buy into #qconlondon @ColinGarlick

    @piotrbetkier: Any intelligent fool can make things more complex, it takes a genius to do the opposite. At #qconlondon on talk about designing architecture

    @marekasf: Antipattern: Ivory Tower Architecture @ColinGarlick #qconlondon

    Evolutionary Architecture and Micro-services - a Match Enabled by Continuous Delivery

    by Rebecca Parsons

    Will Hamill attended this session:

    Microservices … tend to be smaller than SOA services …, smaller, and focused around single business capabilities instead of technologies. Microservices need to be independently deployable as they change at different rates, require little centralised management, and isolate tech choices internally from the other services that depend upon it. Microservices are often described as having smart endpoints but dumb pipes. Another very common factor is the lack of (what I call) the BandwagonDB - the single monster database that All The Data lives in; microservices are often responsible for their own data and sharing access or reporting is done via APIs.

    More granular services become smaller and chattier but larger services are more inflexible and can suffer from complexity and coupling, so getting the size appropriate is tricky. The implications of pursuing a microservice based approach are heavily weighted towards the operations side: independently scalable implies great investment into deployment automation and continuous delivery; monitoring for services is crucial; it is impossible to pretend that service failures will not happen; eventual consistency in data needs properly addressed. …

    Decomposing the monolith: consider DDD bounded contexts to help split responsibilities and business capabilities. Think about what the consumers for the service need - and if there is no consumer, then perhaps there is no need for that service? Consumer driven contracts for services can also form client tests for the interfaces. …

    Evolutionary architecture is derived from evolvability of the system as a first class concern during its design. Tolerate and expect change rather than attempting to predict the future and lock in requirements that don’t exist yet. Being aware of Conway’s Law, they can try and design their teams to reflect how they intend the architecture - in particular arranging teams around the services to create for business capabilities.

    Microservices is clearly a hot topic right now, but requires discipline, insight into the problem domain and above all is no silver bullet.

    Quinten Krijger attended this session:

    A nice concept here was the “Reverse Conway’s Law”. While intuitive and on some occasions actual part of their strategy consultancy, this was the first I heard it defined as such. Conway’s Law in short states that organisation structures will be reflected in the architecture of the software that the organisation develops. For example, a company without a DevOps culture (meaning that operations is a separate team) that tries to implement a microservice architecture, will probably end up with many components that are strongly coupled on an operational level that can’t be deployed separately. The “Reverse Conway’s Law” then, is to create software in the way you would like the organisation to be. You will need to be conscious of the many pitfalls of Conway’s Law itself, but when done correctly this can be a good way to induce organisational changes.

    Implementing Continuous Delivery: Adjusting Your Architecture

    by Rachel Laycock

    Will Hamill attended this session:

    Rachel began by describing the scenario when she was brought into a client site and given a demand by a customer exec “We want Continuous Delivery”. From working with the client and understanding their environment Rachel’s response was “you can’t have CD” - not a satisfying answer for an exec who wants to get to value. When working with the client and their complex codebase, Rachel came across a lot of the aspects of “you must be this tall to ride” barriers to entry of a microservices architecture and implementing CD. Three of the main things she learned were the implications of Conway’s Law, the importance of keeping things simple, and evolving the architecture….

    The ‘big ball of mud’ architecture often results because expediency in releasing the system is focused over a clean and evolvable design. More code is added as more features are rushed out the door, increasing technical debt as no slack exists to preserve or improve quality as they go along. Big coupling problems happen in the codebase and the components in the design are pulled tighter together as this happens, which leads to inflexibility in operation. …

    Rachel describes the pain of software architecture as dealing with the tension between striving for low coupling and high cohesion. Attempting to mitigate this on the big ball of mud systems means identifying the seams and interfaces between areas of different behaviour and writing tests around those boundaries to allow us to safely separate the components from each other. Rachel also described the Strangler Pattern to begin replacing parts of the older system and redirecting functionality to newer, cleaner components.

    Rachel then went on to discuss the aspects of a microservice architecture that can mitigate against these issues. … Things to watch out for when moving to microservices include distributed transactions and an understanding of the domain (as services should split along domain boundaries and not technical ones). Rachel says that they don’t need to microservice-ify everything; that maturity and competence in continuous delivery is an important pre-requisite, and that automation and close collaboration with operations are very important to help manage the overheads of going from single monolith deployments to deploying, operating and maintaining many services.

    Rachel finished off her talk with calling for an appreciation of evolvability in system architectures. You don’t need to design for Google scale now, but you should design for the ability to be changed. Architecture of the system is the things about it that are hard to change. The parts these are usually correspond to -ilities and bigger decisions made that can’t be unmade cheaply or quickly; to identify where these decisions are you need to be talking to the customer about their scale, security, business needs, and future direction. Creating an architecture where components can evolve separately, with less constraint to change, is more important than trying to predict an unknown future. Areas which need to change most often are likely to hide the most complexity. Putting more emphasis on the testability of these areas and treating the testability as a top level requirement of the architecture will result in a higher quality system.

    Twitter feedback on this session included:

    @paulacwalter: Flexibility of organisation is key for effective design. Otherwise it's very hard to make changes where needed @rachellaycock #qconlondon

    @AndrewGorton: Software architecture represents the tension between coupling and cohesion @rachellaycock #qconlondon

    @randyshoup: Yesterday's best practice is tomorrow's anti-pattern @rachellaycock #qconlondon

    @randyshoup: Hope is not a design pattern @mtnygard via @rachellaycock #qconlondon

    Small Is Beautiful

    by Kevlin Henney

    Yan Cui attended this session:

    Kevlin has plenty of well-applied, mem­o­rable quotes, start­ing with this one:

    Sus­tain­able devel­op­ment is devel­op­ment that meets the needs of the present with­out com­pro­mis­ing the abil­ity of future gen­er­a­tions to meet their own needs. - the report of the Brundt­land Commission

    when applied to soft­ware devel­op­ment, my inter­pre­ta­tion of it is : “don’t take on more tech­ni­cal debt than you can rea­son­ably pay back in the future in favour of short-term gains”….

    On the other extreme of the spec­trum, you have peo­ple who are so con­cerned about future needs they end up com­pletely over-engineering their solu­tion to cope with this uncer­tainty and end up with projects that are delayed or worse, never delivered.

    You should think of soft­ware as prod­ucts, not projects. If soft­ware are projects then they should have well-defined end state, but most often, soft­ware do not have well-defined end state, but rather evolved con­tin­u­ously for as long as it remains desir­able and purposeful….

    Cre­ativ­ity needs a bound­ary. With­out any bound­aries, a painter might be lost if you just ask him to “draw a pic­ture”, and would you cre­ate any­thing more than a “hello, world!” appli­ca­tion if asked to just “write a program”? …

    Kevlin also pointed out another good point – the more time you spend work­ing on a project, the more the endow­ment effect kicks in and they become less inclined to change. …

    Twitter feedback on this session included:

    @JanSabbe: Best way to deal with legacy code? Beer. #qconlondon

    @adrianmouat: 'This legacy system is really small and comprehensible' - things people don't say @KevlinHenney at #qconlondon

    @alblue: “It hit the deadline — at some considerable speed judging by the fallout” — @KevlinHenney at #QConLondon

    @camassey: Software is executable fiction -@KevlinHenney #qconlondon

    @camassey: Coding styles, if practiced by enough people, *are your architecture*. @KevlinHenney #qconlondon

    @camassey: For any activity, there is an appropriate scale. @KevlinHenney #qconlondon

    @camassey: If you are striving for beauty or elegance, *constraints are necessary*. You NEED a boundary. @KevlinHenney #qconlondon

    @jgrodziski: Softwares do NOT have economies of scale @KevlinHenney #qconlondon small software is cheaper

    @daverog: Unlike milk, software gets more expensive, per unit, in larger quantities (diseconomies of scale) @KevlinHenney #qconlondon

    @camassey: Trees nicely describe a neatly decomposed structure. Except that the real world is complex @KevlinHenney #qconlondon

    @camassey: They design & staff-up teams at the start of the project. When they are the *most* ignorant about its requirements. @KevlinHenney #qconlondon

    Treat Your Code as a Crime Scene

    by Adam Tornhill

    Ben Basson attended this session:

    Adam quickly introduced the idea of Geographical Profiling - a criminal investigative method used to help narrow down the likely area where a serial offender may live or work, based on the location where the related crimes were committed. I very much enjoy the idea that bugs are essentially "code crimes" and that they may be able to leverage data in such a way as to zero-in on troublesome areas in this way.

    Of course, to do this they can't just look at the code in its current state, they must draw upon revision history and statistics from version control, and then analyse and present this data in a useful manner. Adam introduced a number of potential visualisations, including the intriguing Code City, where lines of code are represented in the height of the generated buildings.

    Adam goes on to suggest that the code quality of an individual source file is inversely related to the number of programmers that have worked on a source file (the theory being that more people get involved in troublesome areas as they have to be touched more often), and that while there are lots of measures of complexity, the number of lines is in most cases a pretty good indicator.

    The final suggestion from Adam was that in addition to analysing code in this way, it would be interesting to experiment with more proactive warnings or monitoring - letting developers know when they're about to work on particularly complex or commonly edited code (i.e. here be dragons). He also suggested that version control tools could implement Amazon-style recommendations; "other developers that worked on file A also worked on file B", which sounds like a great idea.

    Yan Cui attended this session:

    Many stud­ies have showed that they spend most of their time mak­ing changes or fix­ing bugs, which always start with under­stand­ing what the code does. They should there­fore they opti­mize for that.

    A com­mon prob­lem they face in today’s world is that soft­ware is pro­duced by many devel­op­ers across many teams, and no one has a holis­tic view of how the whole looks.

    When it comes to mea­sur­ing com­plex­ity, both lines-of-code and  cyclo­matic com­plex­ity are use­ful met­rics to con­sider even though nei­ther pro­vide a full pic­ture of what we’re up against. They are use­ful because they fit nicely with their main con­straint as devel­op­ers — their work­ing memory.

    Adam shows us how tech­niques from foren­sic psy­chol­ogy can be applied in soft­ware, specif­i­cally the prac­tice of geo­graph­i­cal offender pro­fil­ing. …

    Using tools such as CodeCity you can lay down the geog­ra­phy for your code which reflect their complexity…. Adam also showed how you can track com­plex­ity of hot spots over time and use them to project into the future with Com­plex­ity Trend analysis….

    Tem­po­ral Cou­pling – by analysing your com­mit his­tory, you can find source files that are changed together in com­mits to iden­tify depen­den­cies (phys­i­cal cou­pling), as well as ‘copy-and-paste’ code (log­i­cal coupling)….

    By show­ing the num­ber of com­mits each devel­oper makes on a source file you can iden­tify the knowl­edge own­ers of that part of your codebase. …In the per­fect world, all knowl­edge own­ers for a com­po­nent (source files for one project, for instance) would be con­cen­trated within a team, which shows that the respon­si­bil­ity of that com­po­nent is well defined and aligns with the orga­ni­za­tional structure.

    Twitter feedback on this session included:

    @ignazw: Code as a crime scene. Pretty cool! There's a lot of crime info in your software control system. #qconlondon

    @willhamill: But the change took ages because DBAs are where Change Requests go to die - @AdamTornhill at #qconlondon

    @danielbryantuk: Adding extra software development teams to a project increases communication channels @AdamTornhill at #qconlondon

    Building a Modern Microservices Architecture at Gilt: the Essentials

    by Yoni Goldberg

    Will Hamill attended this session:

    Yoni described how Gilt made three main architectural changes to their application: moving the application platform to the JVM (primarily Scala) for perceived platform maturity, the stability & concurrency benefits and the garbage collection; refactored the single Postgres database into dedicated data stores for different parts of the application; and began splitting the monolith up by behaviours, which Yoni called entering “the era of macro and micro services”.

    Initially splitting the application into a small number of services met the majority of the scaling needs but most of the developer pain was not solved: the new services became almost monolithic due to size and internal complexity and still the codebases had little ‘ownership’ and integration and deploys were painful.

    The team at Gilt then doubled-down on the microservices approach, reducing the scope of individual services and empowering the teams as the owners of the service responsible for the deployment and focusing on continuous delivery as a means of streamlining the releases. APIs used for the microservices to communicate with each other were defined by an ‘API design committee’ in each team and documentation generated using Swagger. The front end was decomposed into a larger number of Play and Scala applications responsible for different sections of the website. For example, the search pages, product pages, checkout and so on are all served by different apps….

    Data ownership was devolved to the teams operating the services, and each team chose the best solution for storing their data. Managing databases, a schema evolution manager independent from the service code was responsible for DB changes, deploying updates as tar files to be applied to the database. Fix-forward was the approach taken to DB migration, with no rollbacks.

    Yoni also described the concept of ‘mid tier microservices’ which exist to aggregate multiple calls to many fine grained services (for example a ‘customer’ mid-tier service aggregating calls across half a dozen or more specific ‘customer account’ or ‘customer profile’ type services) to cache, decorate and collect results needed by other depending services.

    Pere Villega attended this session:

    Yoni Goldberg, Lead Software Engineer at Gilt, explained the Gilt moved from a Ruby monolith to a Microservices approach. The reason was that Gilt operates a model of flash sales with massive spikes, and adding certain vendor caused cascading errors across the site. To fix the issues they moved to JVM, started what he calls a macro/micro services era and used dedicated data stores.

    During the process they realised the new services where semi-monoliths, not fixing all of the issues, so they kept working until they reduced the scope of the services (both for back-end and front-end, they have multiple webapps for UI), which in turn facilitated deployment and rollbacks.

    Currently they have 300 services in production, and their data show a very interesting pattern: once they had in place all the right tools such a team could go from creation to deployment of a new service (a basic placeholder) in around 10 minutes, the productivity and the number of services increased a lot….

    Something that has facilitated the adoption of Microservices has been a well defined API. Yoni argues that a well defined API solves issues like discoverability, documentation and internal adoption. Tools like Swagger facilitate this.

    An issue associated to having so many Microservices that is not mentioned often is that the network ends up acting as a bottleneck, due to the amount of calls generated. Their solution is to create mid-tier Microservices, which are a coarse API that hides multiple small services from the request. Your application just calls an endpoint and that, in turn, does several calls. This reduces the load, even more if you use caching….

    Gilt also uses micro-databases, that is, every Microservice has its own database, they are not shared across services. This means the service owns everything: API, data, behaviour. No conflicts between services due to shared databases.

    Finally, they don't advise teams of less than 30 people to go into Microservices due to the manpower needed.

    Rebuilding Atlas -- Advertising at Scale at Facebook

    by Jason McHugh

    Twitter feedback on this session included:

    @charleshumble: Time spent on mobile in the US surpassed time spent watching TV. Just mobile. #qconlondon

    @charleshumble: Facebook Atlas uses Presto extensively. Useful when you need a relational model and can't easily Shard #qconlondon

    @ignazw: So Facebook aquired Atlas for 100 M$ ... via @forbes #qconlondon

    Scaling Uber's Real-time Market Platform

    by Matt Ranney

    Leo Simons attended this session:

    My favorite talk of the day is from Matt Ranney, who talks about uber's real time challenges. It's a pretty quirky talk about a pretty quirky architecture. The shape of uber's problem is a bit different from a lot of other big architectures, and so Uber are doing various interesting things really differently. For example, they learned that when failing over a data center, uber stores the active trip data on the driver's phone, and when that phone gets routed to the new data center, it's tasked to re-upload that data to the new data center. This means they get to avoid expensive cross-data center replication for the hot data. They also learn that Uber is being a good open source citizen and open sourcing various interesting bits; I'm definitely going to be studying some of that!

    Yan Cui attended this session:

    Uber’s ser­vices are writ­ten in a mix­ture of Node.js, Python, Java and Go, whilst a whole mix of data­bases are used – Post­greSQL, Redis, MySQL and Riak….

    In order to scale their ser­vices, Uber went with an approach of build­ing state­ful ser­vices using Node.js. In addi­tion, they also intro­duced a cus­tom RPC pro­to­col called ring­pop, which is based on the SWIM paper. Ring­pop also runs on its own TChan­nel mul­ti­plex­ing and fram­ing protocol….

    For Uber, avail­abil­ity is of para­mount impor­tance, as the cost of switch­ing to com­peti­tor is low.

    Twitter feedback on this session included:

    @randyshoup: Never underestimate the power of developer enthusiasm @mranney @Uber #qconlondon

    @csanchez: Uber's dispatch system is written in NodeJS. DBs used: Redis, Postgres, MySQL, Riak,… @mranney #qconlondon

    @glynn_bird: Uber talk their AP data layer: "we always favour availability because the user will switch to a competitor if we're down" #qconlondon

    @markgibaud: In NodeJS, tchannel [Uber's custom RPC protocol] is 20x faster than HTTP - @mranney at #qconlondon

    @csanchez: Uber availability: everything retriable, killable, crash only (no graceful stops) even databases @mranney #qconlondon

    @vwggolf3: #qconlondon Uber fails over data centers by using state & data stored in partner phones

    @FZammit: Uber using mobile app as a failover mechanism #developers #qconlondon

    @randyshoup: @Uber fails over between data centers by having driver apps regularly replay their state. Clever! @mranney #qconlondon

    @colmg: Everything is retryable, everything is killable at Uber - @mranney #qconlondon @aolireland

    Service Architectures at Scale: Lessons from Google and eBay

    by Randy Shoup

    Yan Cui attended this session:

    At Google, there has never been a top-down design approach to build­ing sys­tems, but rather an evo­lu­tion­ary process using nat­ural selec­tion – ser­vices sur­vive  by jus­ti­fy­ing their exis­tence through usage or they are dep­re­cated….

    Ser­vices are built from bottom-up but you can still end up with clean, clear sep­a­ra­tion of concerns.

    At Google, there are no “archi­tect” roles, nor is there a cen­tral approval process for tech­nol­ogy deci­sions. Most tech­nol­ogy deci­sions are made within the team, so they’re empow­ered to make the deci­sions that are best for them and their service. …

    Even with­out the pres­ence of a cen­tral­ized con­trol body, Google proved that it’s still pos­si­ble to achieved stan­dard­iza­tion across the organization.

    Within Google, com­mu­ni­ca­tion meth­ods (e.g.. net­work pro­to­col, data for­mat, struc­tured way of express­ing inter­face, etc.) as well as com­mon infra­struc­ture (source con­trol, mon­i­tor­ing, alert­ing, etc.) are stan­dard­ized by encour­age­ment rather than enforcement. …

    Whilst the sur­face areas of ser­vices are stan­dard­ized, the inter­nals of the ser­vices are not, leav­ing devel­op­ers to choose:

  • pro­gram­ming lan­guage (C++, Go, Python or Java)
  • frame­works
  • per­sis­tence mechanisms…
  • If it proves to be suc­cess­ful then it’s extracted out and gen­er­al­ized as a ser­vice of its own with a new team formed around it. Many pop­u­lar ser­vices today all started life this way – Gmail, App Engine and BigTable to name a few….

    As the owner of a ser­vice, your pri­mary focus should be the needs of your clients, and to meet their needs at min­i­mum cost and effort. This includes lever­ag­ing com­mon tools, infra­struc­tures and exist­ing ser­vice as well as automat­ing as much as possible.

    The ser­vice owner should have end-to-end own­er­ship, and the mantra should be “You build it, you run it”.

    The teams should have auton­omy to choose the right tech­nol­ogy and be held respon­si­ble for the results of those choices.

    Twitter feedback on this session included:

    @ignazw: Large companies change their architecture regularly #ebay #twitter #amazon #qconlondon

    @AlibertiLuca: #qconlondon why is Google so fast ?? Simple :)

    @jabley: 'At Google, most technology decisions are made locally rather than globally. Better decisions made in the field.' – @randyshoup #qconlondon

    @charleshumble: No architect role at Google. No central approval for technology decisions. eBay did have architecture review board @randyshoup #qconlondon

    @grantjforrester: “Standards become standards by being better than the alternative” @randyshoup #qconlondon

    @jgrodziski: In a mature service ecosystem, they standardize the arc of the graph, not the nodes #qconlondon @randyshoup

    @charleshumble: Every service at Google is either deprecated or not ready yet. Google engineering proverb. @randyshoup #qconlondon

    @solsila: On establishing standards: make it really easy to do the right thing and really hard to do the wrong thing. @randyshoup #google #qconlondon

    @a_alissa: #qconlondon google does not enforce standards, each team can use any programing language and libs they want#empowering_teams

    @djmcglade: Microservice - the word is relatively new, the concept is relatively old @randyshoup #qconlondon

    @charleshumble: Teams should be no larger than can be fed by two large pizzas. @randyshoup #qconlondon

    @jabley: Good use of economic incentives to align service teams at Google. Charge downstream teams to grow more considerate customers. #qconlondon

    @jgrodziski: Risk of code change is nonlinear in the size of the change @randyshoup #qconlondon

    @charleshumble: Every code submission is reviewed at Google. #qconlondon

    @charleshumble: You can have too much alerting but you can't have too much monitoring @randyshoup #qconlondon

    Evolving a Data System

    by Simon Metson

    Twitter feedback on this session included:

    @paulacwalter: Choose a realistic problem, not "We need to fix all of their IT in the next six months. Here's a L20 note. Go do it." @drsm79 #qconlondon

    @paulacwalter: It's not rocket science. Identify a problem (this is the hardest part), build a solution, evaluate it and repeat. #qconlondon @drsm79

    @paulacwalter: Evolving Data services. The relevant problems are not technical. How are they going to talk to each other and share data? @drsm79 #qconlondon

    Continuous Delivery: Tools, Collaboration, and Conway's Law

    by Matthew Skelton

    Twitter feedback on this session included:

    @dsommerville_nw: Conway's Law (and the Inverse Conway Maneuver) becoming a recurrent theme at #qconlondon

    @DevOpsGuys: Bring people with you, appreciate current skills #qconlondon #devops

    @DevOpsGuys: Optimise globally across the teams that need to collaborate #qconlondon #devops

    @camassey: Silos exist across environments as well as roles. Don't optimise your pipeline for just one environment! @matthewpskelton #qconlondon

    @Idris_Ahmed251: More dev teams solves nothing. Adds coupling with people's work, causes merge problems! (Conway's Law) #qconlondon

    @camassey: Conway's law has HUGE implications for org architecture, if you want particular software architectures @matthewpskelton #qconlondon

    @marekasf: microservices are like children: they're small, cute and the more the better "@DevOpsGuys #qconlondon @camassey ”

    @julianghionoiu: The organisation's topology should closely resemble the application's architecture. #qconlondon

    @neilisfragile: Hadn't considered that tool choice not only to promote collaboration, but also to dissuade certain interactions #qconlondon @matthewpskelton

    Delivering Gov.Uk: Devops for the Nation

    by Anna Shipman

    Ben Basson attended this session:

    The things about the talk that I found interesting were:

    1. There is a well-maintained operations manual to help people support the live services, so if someone is on-call and doesn't know a particular area that well, they can draw on a wealth of information - or write that information for the next person once the problem has been investigated and resolved. This is clearly a good idea that all companies should really have in place.

    2. Deployment to production is managed by the requirement to have custody of a stuffed toy badger in order to deploy. I don't know if it's an intentional spoof of the Government's policy on culling badgers, but I couldn't help but chuckle slightly at the irony. It seems a little silly, but I can see the merit, especially as…

    3. Developers can deploy from their own laptops - a stark contrast to the usual Government process of using dedicated, locked-down machines with direct VPN access to data centers.

    Twitter feedback on this session included:

    @matthewpskelton: .@annashipman "#DevOps is a *culture* where developers and operations people work together" #qconlondon

    @rvedotrc: Allowing the developers to deploy using their own hardware, not locked-down gov hardware, was a big win says @annashipman #qconlondon

    @rvedotrc: Heartbleed announced at 10pm, patched by 2am, deployments done from home, just because devs cared - @annashipman #qconlondon

    @rvedotrc: “Are you sure the deployment process will work?”“Well, they have done over 1000 of them already”- story from @annashipman #qconlondon

    @matthewpskelton: .@annashipman "Technology choices at @gdsteam are *not* top-down" < +1 chosen by team in collaboration #qconlondon

    @danielbryantuk: Use what technology you like, as you're going to be supporting it in production paraphrasing @annashipman on GDS DevOps at #qconlondon

    @matthewpskelton: .@annashipman "I could not bring @BadgerOfDeploy with me today because that would stop deployments!" #qconlondon

    @matthewpskelton: .@annashipman "The most important tool they have is their Ops Manual" "It's a living document" < +1 #qconlondon

    @peter_pilgrim: GOV.UK now puts their operational service manual online on GitHub. "Document everything for people who are new to it." #qconlondon #in

    @camassey: How to bring in #DevOps: Document All The Things -@annashipman #qconlondon

    @camassey: #DevOps has implications for everything - inc. hiring, leaving, and (obviously) team trust. @annashipman #qconlondon

    @phuturespace: #qconlondon. Great talk by @annashipman. Great to see a practical successful application of DevOps.

    @matthewpskelton: .@annashipman "I do not see architecture as Command & Control, but instead to help the teams and then get out of their way" #qconlondon

    Devops and the Need for Speed

    by Stephen Thair

    Twitter feedback on this session included:

    @lamb0: If you don't engage HR and Finance, then you will fail to adopt devops, it’s a mindset and organisational model #qconlondon @TheOpsMgr

    Making Continuous Delivery Work for You: The Songkick Experience

    by Amy Phillips

    Twitter feedback on this session included:

    @rvedotrc: “If you get 4 people to look at code for 2 hours before release, I guarantee you, you *will* find a bug” - @ItJustBroke #qconlondon

    @matthewpskelton: .@ItJustBroke "Adding more developers did not make things faster" #qconlondon

    @matthewpskelton: Release processes need flexibility and risk assessment - @ItJustBroke #qconlondon

    @rvedotrc: “Features add no value until your users are using them” – the argument for fast turnaround, by @ItJustBroke #qconlondon

    @matthewpskelton: .@ItJustBroke "We asked the business to help define the acceptance tests" +1 parallel pipeline stages #qconlondon

    @rvedotrc: “Limiting their automated Selenium acceptance tests to around 5 minutes, gives us the level of assurance they need” – @ItJustBroke #qconlondon

    @rvedotrc: Identify the biggest problem with your process. Fix it. Repeat.Using problems to drive positive change.– @ItJustBroke #qconlondon

    Docker Clustering - Batteries Included

    by Jessie Frazelle

    Will Hamill attended this session:

    Docker supports clustering of containers OOTB with Swarm which serves the standard Docker API and allows transparent scaling to multiple hosts. If Swarm isn’t your bag, LibContainer which is also written in Go can be used, and LxC containers are now supported as well.

    Service discovery is also provided OOTB with Docker, though it can be configured to use etcd, consul or zookeeper instead. For scheduling, bin packing is provided OOTB and there is also a native option, with Mesos currently on the way.

    Jessie then gave a demo of using Docker with Swarm to define clusters of containers and manage them on the CLI. Regular Docker commands for individual container management work with Swarm, and also Swarm adds a number of commands for provisioning clusters, joining containers to clusters and the like with simplicity: docker pull swarm,docker run --rm swarm create and docker run -r swarm join….

    Wrapping up, Jessie outlined the future direction of Swarm; rescheduling policies, further backend drivers for OOTB management functionality, support for Mesos, cluster leader elections and more & faster integration with new Docker features.

    motwin attended this session:

    A new tool in the Docker ecosystem: Swarm, which is a cluster management system for Docker containers.

    This is a native clustering system for Docker with:

  • native discovery of containers (and optional feature based on either etcd, consul or Zookeeper)
  • schedulers (bin-packing and random which are native support and soon Mesos)
  • constraints management
  • affinity management
  • Docker, Data & Extensions

    by Luke Marsden

    motwin attended this session:

    Fig alias now Docker Compose enables composition at the host level. For instance, if you have an application deployable on a servlet container that needs a database, you may choose in a microservices approach to use one Docker container for your servlet container and one for your database. But you need to deploy and run these containers in the right order (the database first and then the servlet container), links these two containers to each others, setup the endpoints / ports and so on…

    Flocker can be seen as the companion of Fig. In addition of a Fig yaml configuration file, Flocker needs a second yaml file that describes the topology of your Docker containers cluster: you describe on which node each of your Docker container has to be installed. The description of the Docker container being hold by the Fig file.

    A second issue addressed by Flocker is the migration of a Docker container from one node to another node. Let’s say you have a database wrapped in a container. To persist the data stored in the database, you can use Docker volumes that enables to persist data outside the container in the filesystem of the host. What happens if, for one reason or another, you wish to migrate the database from one node to another? Flocker does the job: it can migrate a such container from one node to another. …

    Another miss of Docker is a plugins / extension mechanism. Right now, it’s hard to glue some tools based on Docker (for instance, Weave and Flocker).Powerstrip may circumvent this issue. It’s an open-source project which aim to rapidly prototype extensions to Docker and enables to glue them. …

    What I have learned is also that using Docker volumes leads a coupling between the Docker container and its host. Hence, you can have issues when it handles to migrate a such container to another host.

    Docker vs Paas: May the Best Container Win

    by Paula Kennedy & Colin Humphreys

    Will Hamill attended this session:

    This talk was about discussing the difference in needs which may lead you to choose Docker over PaaS - obviously a straight comparison of one versus the other would be illogical, so the two tried to point out the areas where one approach is stronger than the other. PaaS can easily handle multiple application instances and can have autoscaling rules defined; Docker does exactly and only what you configure it to do. PaaS can feature shared services such as health checking of tenant applications, centralised log aggregation, etc; Docker does not seek to provide this and you would need to create it yourself.

    Docker is more about the basics - letting you run your application in a lightweight containerised environment and moving or creating new instances of that container rather than value-adding features like PaaS now tends to be. Docker focuses on customisability and control in ways that you cannot control on PaaS. Docker container provisioning is much faster than instantiating a new virtual machine on IaaS.

    Colin and Paula argued each other down to an agreement: PaaS is likely to be better for fast iteration of a basic application, and Docker is likely better for control and more specific needs such as database management. Colin recommended that PaaS be considered more for apps following the12 Factor principles, and containers with storage volumes used for stateful micro-services….

    Overall I was convinced that the argument comes down again to whether you want to give up control of low level concerns in order to benefit from paying for more hands-off deployments and scalability, and if you can live with the lock-in that PaaS tends to imply. It depends - on your particular environment constraints :).

    motwin attended this session:

    Colin and Paula agree that there is place for both PAAS and containers:

  • if your micro-services require to fit the 12 factors, then a stateless PAAS can be your holy graal
  • if your micro-services didn’t require to fit the 12 factors, then Docker containers with volumes management can do the job
  • How to Train Your Docker Cloud

    by Andrew Kennedy

    motwin attended this session:

    Clocker is a Docker containers cloud manager that can deploy applications described in the Brooklyn blueprint format. It can deploy the application on containers of several nodes and across multi-hosts. Clocker seems to have lots of features:

  • autonomics: scaling policies that can be driven by sensors, cluster resizing
  • health room: to ensure resources availability (cpu, memory, etc.)
  • container management: with Docker images catalog, support of Docker files, creation of images automatically
  • placement and provisioning: on demand, with several possible placements strategies (random, CPU, memory, geography, and so on)
  • network management: with network creation, IP pool control, Docker ports forwarding for debug purposes, pluggable network providers (Weave,Kubernetes, libswarm), network virtualization
  • Securing "Platform as a Service" with Docker and Weave

    by David Pollak

    Will Hamill attended this session:

    David Pollack, the creator of Lift, began his talk about securing PaaS stating he believes that security skills require a different mentality to most developers, and understanding of more granular responsibilities. David said that he wanted to try and hire more replaceable people rather than creating esoteric tech experts (for obvious business reasons) so he preferred more widely understood and adopted technologies for securing his platforms - Docker and IP tables being better collectively understood than JVM Security Manager, in David’s example. David also praised Docker’s ease of use, providing a declarative format for configuration instead of relying upon Perl scripts and raw LxC containers….

    One of the problems David had was considering not only layers (a typical approach to both physical and application security) but also isolating the tenants of the PaaS from each other. Tenants’ applications needed to run inside containers on virtual LANs that can talk to each other and shared backend resources but not other tenants. Shared services at the backend may be subject to potential attack, so splitting into read only or write only services can limit surface area and impact.

    David addresses these issues in his platform with each tenant application deployed into a Docker container, using Weave to define the tenant-specific subnet and IP tables to secure the access to the rest of the network. Shared data services in an RDBMS use table or column level access controls managed by the RDBMS, and I/O heavy services with well understood security models can also be shared. Credentials for services are isolated to each tenant and not globally visible.

    David said that he was happy with Docker’s security as LxC containers are a reasonably well understood technology and the new popularity it meant that there are many eyes looking at it both to exploit and improve it. Finishing his talk, David said that he thinks the move from VMs to containers is as big a shift in approach and utility as the shift from physical machines to VMs; that IP tables still work just fine for network level application isolation; and that a layered approach to isolating risks is still the best approach.

    motwin attended this session:

    David Pollak distinguishes 5 threat models:

  • app to shared services (e.g. credentials)
  • app to the world via the network
  • app to the host via the code that runs on the host
  • app to the host via the network
  • app to app via the network
  • To prevent from these vulnerabilities, Docker provides a quite reasonable isolation from the host, while Weave subnets can isolate tenants (i.e. different apps). As far as iptables, they can secure the rest of network.

    At last some takeaways from David Pollak:

  • –icc=false in DOCKER_OPTS which means no intercontainer communication except via Weave
  • use iptables to control / restrict the bridge traffic to well known ports and public hosts
  • partition tenants onto separate Weave subnets
  • Cake Driven Development: Engineering at

    Will Hamill attended this session:

    Mike described how a few years ago Moo was facing troubles internally with meeting the needs of the business to release new products to market quickly … the teams were dissolved and reformed into cross functional groups responsible for specific business areas/products. The new teams, called crews, had responsibility for making a new cocktail and hosting an event to welcome each other into the new form of the business … Crews were given specific business-aligned goals for their areas of work, were allowed to create their own workflows and were not forced into homogenising with the rest of the company. Autonomy in how the crews accomplish their goals is a powerful factor of motivation.

    Mike then revealed that most crews had stopped doing formal estimation of work items - instead of producing estimates for each item and planning an iteration, the crews moved to a flow based system, doing planning as needed and working to improve the product backlog. The business don’t care that you are not doing detailed estimates for each piece of work when you can prove that you are releasing new working software on a regular and reliable basis. Product managers from the crews were mediated when they clashed by a crew lead representing the overall business goals.

    After the reorganisations, the smaller cross functional crews had better decision making as everyone needed to understand how they can release working software was embedded in the teams. The development manager role is being replaced with a platform manager, someone with vision across the teams and who can help balance doing things fast with doing things right. Another role added was the ‘people engineer’, combining HR responsibilities with the tech team lead responsibilities.

    In day to day work terms, Mike described the culture in Moo as being focused on teams aligning their releases with a fortnightly release train. … ‘Bug squashing Tuesday’ is set aside for people to tackle defects and improve complex or low quality areas, and people in the crews typically use XP practices such as pair programming, regular retrospectives and collective ownership. … Wrapping up, Mike stated that overall they aim to create a culture which empowers people to be proactive to solve problems.

    Dream Job? The Vision and Journey to the Company Culture You Want

    by Pete Burden & Helen Walton

    Twitter feedback on this session included:

    @SalFreudenberg: @Helenislovely #qconlondon I've seen companies ignore ideas because the person is too junior, too external or just from another department..

    @portiatung: #qconlondon @Helenislovely @peteburden How systems shape their behaviours and the people they become

    @portiatung: #qconlondon @peteburden @Helenislovely "Advocacy 6 times more than Inquiry in organisations"

    The Power of Hope: Getting You from Here to There

    by Portia Tung

    Twitter feedback on this session included:

    @shanehastie: #qconlondon @portiatung hope ISN'T - unrealistic optimism, learned optimism, type A mindset, a measure of intelligence or previous achievement

    @shanehastie: #qconlondon @portiatung Hope is "the sum of the willpower and waypower to achieve your goals"

    @Helenislovely: Way power: mental capacity they call on to find more effective ways of reaching goals. Hope with @portiatung #qconlondon

    @shanehastie: #qconlondon @portiatung useful goals need success criteria. Validate the clarity of the goal.

    @Helenislovely: Validate your goals. Write in pairs to clarify. #qconlondon

    @charleshumble: @portiatung real options. Never commit early unless you know why. #qconlondon

    @johannescarlen: Aren't programmers the most hopeful people you know? - Portia Tung #qconlondon

    @SalFreudenberg: @portiatung #qconlondon Improve hope by letting go of fear of failure. Whatever the outcome I will have learned.

    Back to the Future: What Ever Happened to Being Extreme?

    by Rachel Davies

    Ben Basson attended this session:

    Some of the things I found really fascinating included:

  • Developers decide what to work on next - they do research with the business and work out shared priorities, so that nobody spends time working on features that provide no business value.
  • Mobbing - basically the same idea as paired programming but with more people involved, so a group sit around a large TV and observe and discuss while one person writes code - swapping around every 10 minutes.
  • Building 20% learning time into the working velocity - to keep fresh ideas coming in and motivation high.
  • Using a developer-on-support rota essentially as a human distraction shield, so the other developers can get on without interruption.
  • It turns out that developers at Unruly only write code about 40% of the time, due to the 20% learning time and other responsibilities (research, monitoring, support, etc). As Rachel points out, this is fine.
  • Sebastian Bruckner attended this session:

    Great talk from Rachel remembering of the core principles of Extreme Programming which sometimes might come too short in the today’s agile life. She also gave an interesting insight about how she and her teams were implementing it in the field. Among the known and well adapted aspects of XP she mentioned a method which was new to me.

    Mobbing (Mob Programming):

    Mobbing is similar to pair programming but with three to five persons instead. The code is on a big TV, one developer is actually programming the others are thinking and discussing. After a fixed time box (e.g. 20 minutes) another one grabs the keyboard, similar to pair programming. – They use mobbing to start difficult or complex stories.

    Twitter feedback on this session included:

    @Helenislovely: Microsoft windows XP was the death of extreme programming. Name no longer cool. @rachelcdavies #qconlondon

    @shanehastie: #qconlondon @rachelcdavies one risk with a pure craftsmanship focus is losing the focus on building software for people

    @paulacwalter: Continuous everything, no separate integration and testing phases, do all activities all of the time. @rachelcdavies #qconlondon

    @douglastalbot: #qconlondon No point in researching features if you are simply going to do all of them! Just get building @rachelcdavies

    @shanehastie: #qconlondon @rachelcdavies When the people who build the product also support it "they don't build dumb things that don't work"

    @Helenislovely: Being able to keep learning keeps you fresh. Keeps you happy. This is a very @SparkConf practice from @rachelcdavies #qconlondon

    @shanehastie: #qconlondon @rachelcdavies retrospectives: it's essential that teams get together and examine how they are working and adapt

    @shanehastie: #qconlondon @rachelcdavies XP is about "if there is something that works, how can they do more of it" Turn the dial up. Experiment and learn

    @dsommerville_nw: Truth around the world: developers are always downstairs - so put some "interruptable" devs upstairs [with the business] #qconlondon

    @paulacwalter: focus on quick continuous feedback but don't ignore feedback that takes longer to arrive, like customer usage! @rachelcdavies #qconlondon

    @shanehastie: #qconlondon @rachelcdavies XP lets us: Deliver value sustainably and build change tolerant systems. Also Mastery & Autonomy,

    @metmajer: If you pair with the same person for a long time you really have to like them. @rachelcdavies on #PairProgramming at #qconlondon

    @mattwynne: Team at @unrulyco only budget to spend 40% of time developing stories — interesting stat from @racheldavies at #qconlondon

    @paulacwalter: Learning time for the team is just part of the service, factored in like holidays and meetings @rachelcdavies #qconlondon

    Learning to Become Agile, with Retrospectives

    by Ben Linders

    Twitter feedback on this session included:

    @shanehastie: #qconlondon @BenLinders Evaluate your retrospectives - make sure the team is getting value from the time spent

    @shanehastie: #qconlondon @BenLinders in retrospectives the facilitator must be focused on allowing the team to make good decisions for themselves

    @shanehastie: #qconlondon @BenLinders Coach role in retrospectives is to support team with the right questions and to support them in making changes

    @shanehastie: #qconlondon @BenLinders Yes! the product owner is part of the team - they should be in the retrospective!

    @shanehastie: #qconlondon @BenLinders Manager role in retrospectives is to support and empower the team to make changes

    @shanehastie: #qconlondon @BenLinders some of the benefits that effective retrospectives can enable in your teams

    @shanehastie: #qconlondon @BenLinders don't allow teams to overwhelm themselves with too many action items - limit the number of actions #retrospective

    Progress from "What?" and "So What?" to "Now What?"

    by Larry Maccherone

    Twitter feedback on this session included:

    @rvedotrc: Challenge people for rationale and to provide models used for decisions – @lmaccherone #qconlondon

    @_yowan_: Every decision that you make is a forecast #qconlondon

    @Helenislovely: Monte Carlo forecasting to build probability distribution. Improvement on #noestimates? @LMaccherone #qconlondon

    @shanehastie: #qconlondon @LMaccherone use metrics correctly to change the nature of the forecasting conversation

    @Helenislovely: Amazing how often people create stupid metrics because they forget the outcome they wanted them for in the 1st place #qconlondon

    @Helenislovely: How to choose correct visualisation. Comparison, trend, forest AND trees @LMaccherone #qconlondon

    @Helenislovely: Only 2% of the data collected gets used. Don't improve analytics, bake data use into product #qconlondon

    @Helenislovely: Pattern-based decision makers. Issue is that they get the wrong pattern, often filtered by the cognitive bias @LMaccherone #qconlondon

    @Helenislovely: Changing habits: direct the rider, motivate the elephant and shape the path #qconlondon

    @Helenislovely: They make emotional decisions but they think it's rationally based on data. So true. @LMaccherone #qconlondon

    @Helenislovely: Imperfect data may be better than no data. not sure imperfect models better. Think of bad decisions driven by bell curves #qconlondon

    Taking Back Agile

    by Tim Ottinger & Ruud Wijnands

    Twitter feedback on this session included:

    @Helenislovely: I recognise all these agile pains. But I think they stem from control cultures and that is hard to fix. @tottinge @RuudWijnands #qconlondon

    @shanehastie: #qconlondon @tottinge @RuudWijnands No one else will make change for you - you have to make the change yourself

    @shanehastie: #qconlondon @tottinge @RuudWijnands Original intent Programming More Intensely , but that was PMI and was already taken so it became XP

    @Helenislovely: 'Death of hope' that resonates for me. Keeping hoping something will change can get in the way of action. #qconlondon

    @shanehastie: #qconlondon @tottinge @RuudWijnands Becoming (acknowledge lack of knowledge and build it up) vs Seeming (cannot admit ignorance)

    @twicezer0: Don't stockpile pain: root of agile. @tottinge @RuudWijnands #qconlondon

    @shanehastie: #qconlondon @tottinge @RuudWijnands remember the beginning of the #AgileManifesto - "we are uncovering" - constant ongoing learning

    @shanehastie: #qconlondon @tottinge @RuudWijnands The productive social context of getting things done, done, done! I want this agile back.

    @Helenislovely: 'Getting it done, not holding hands and talking about feelings'. XP group hug! @tottinge @RuudWijnands #qconlondon

    @Helenislovely: You don't need permission but companies can create blocks. @tottinge @RuudWijnands #qconlondon

    @shanehastie: #qconlondon @tottinge @RuudWijnands as a leader give people enough trust to grow into.

    @shanehastie: #qconlondon @tottinge @RuudWijnands Get rid of hope (someone else will fix it) and take responsibility to fix it yourself

    @shanehastie: #qconlondon @tottinge @RuudWijnands Velocity is not a choice - it is a consequence. Every bug is a decision making flaw.

    @shanehastie: #qconlondon @tottinge @RuudWijnands how fast you go today depends entirely on the quality of the code you work on.

    @Helenislovely: Bugs are defects in thinking. Nice description. And bugs in culture are what bother me. @tottinge #qconlondon

    @V_Formicola: How fast you develop a story depends on the condition in which codebase is…@tottinge #qconlondon

    Why BDD Can Save Agile

    by Matt Wynne

    Ben Basson attended this session:

    Matt gets quickly to the point, identifying the common problems faced by software development teams:

  • Predictability - is the team delivering on time?
  • Communication - are they working together well as a team (including all disciplines, i.e. testers, product owners, developers)?
  • Quality - strongly related to the two above - it causes frustration for the team if there are lots of problems or defects.
  • He goes on to explain that it's possible to counteract these by addressing them directly:

  • Small pieces (solve predictability by breaking things up properly).
  • Collaboration (communicate and really work with each other)
  • Technical discipline (TDD, refactoring)…
  • Explaining why TDD (Test Driven Development) is important, Matt says that automated tests are essentially warning lights, and whether you add them before or after writing code, you guard against the risk of regression later on when making changes. The crucial thing that this enables you to do is refactoring - which he says is a horrible technical term that means that product owners and customers don't necessarily think it is a necessary practice, when in fact they should be interested as it is a key part of maintaining the health of their software….

    Matt concludes by saying that you can't just cheat on agile, you have to demand excellent communication, have excellent collaboration and have excellent code; this is where the agility comes from in agile.

    Twitter feedback on this session included:

    @shanehastie: #qconlondon #mattwynne How BDD can save Agile, Important point: Scrum != Agile

    @shanehastie: #qconlondon @mattwynne Small pieces, collaboration and technical discipline are frequently missing in many "agile" implementations

    @Hylke1982: #BDD / #ATDD helps us with delivering small pieces, collaboration and with technical discipline #qconlondon

    @Hylke1982: BDD is a conversation between different roles to define and drive out specificatons in a structured understandable way. #qconlondon

    @V_Formicola: “...test after is ok, but if you want to do it right you TDD” @mattwynne #qconlondon

    @shanehastie: #qconlondon @mattwynne #BDD Conversations matter because ignorance is the bottleneck in software development

    @rvedotrc: “Writing down the list of things you don’t know [business rules, examples, questions] is very helpful” - @mattwynne #qconlondon

    @shanehastie: #qconlondon @mattwynne 3 Amigo's workshop - customer, developer, tester spend 20 mins to help understand the needs and express them usefully

    @V_Formicola: “Analysing stories as a small group breeds empathy in a team and brings everyone at the same level of understanding” @mattwynne #qconlondon

    @shanehastie: #qconlondon @mattwynne there is no excuse for not using a ubiquitous language - just be consistent!

    @shanehastie: #qconlondon @mattwynn The bit of TDD that everyone forgets is Refactoring. Refactoring should be a constant activity!

    @V_Formicola: Technical discipline….is what is missing in teams which are doing “half-agile” @mattwynne #qconlondon

    @shanehastie: #qconlondon @mattwynn You can't stay agile without clean code! Refactor it, and that needs TDD as the warning lights about regression.

    @merybere: You will fail unless you are listening to The tests #BDD #qconlondon

    @Hylke1982: Product owners should/must demand refactoring to ensure agility #BDD #qconlondon

    @shanehastie: #qconlondon @mattwynn To have real agility you need Excellent communication & excellent code

    @paulacwalter: A code base without refactoring is like a dirty kitchen. You risk injury and poor hygiene when you trip up #qconlondon @mattwynne

    @_yowan_: You can't cheat on Agile practices and expect things to work #qconlondon

    @V_Formicola: You can’t cheat on requires need to have great need to have great code @mattwynne #qconlondon

    @markhobson: Great reaffirming talk by @mattwynne. No agile w/o refactoring, no refactor w/o tests. #qconlondon cc/@BlackPepperLtd

    The Business of Front-end Development

    by Rachel Andrew

    Twitter feedback on this session included:

    @DevOpsMD: Don't become an expert in one brand of hammer. Become a master carpenter. Develop timeless skills. --Rachel Andrew #qconlondon

    @wonderb0lt: You get a lot of stuff for free if you're just doing it well. @rachelandrew #qconlondon

    @V_Formicola: @rachelandrew “Progressive enhancement. Start with the core experience. They ship. They iterate.”. Sounds like Agile to me. :) #qconlondon

    @nimpedrojo: You can't do everything.You can do something . @rachelandrew in #qconlondon

    @DevOpsMD: They don't stop playing because we're old; they grow old because they stop playing -- @rachelandrew #qconlondon

    @rajshahuk: How many people actually end up with the 'not invented here' problem and go of and create something new? via @rachelandrew #qconlondon

    @rajshahuk: Flip side is that they are afraid to create and become more reliant on frameworks! I think this is more true. @rachelandrew #qconlondon

    @dsommerville_nw: Also a huge fan of: Ship the core experience and *then* iterate [via progressive enhancement]; use tools lightly @rachelandrew #qconlondon

    When Arduino Meets Application Server: Love at Second Sight

    by Holly Cummins

    Twitter feedback on this session included:

    @deonvanaarde: IoT: Websphere Liberty app server running on @holly_cummins homemade ball on pcDuino over WiFi... Cool!! #qconlondon

    @techiewatt: IoT track at #qconlondon with demonstration by @holly_cummins of a literally throwable websphere server with sensors!

    @lauracowen: The world's first cuddly, throwable application server, with creator @holly_cummins. Running #WASLiberty #qconlondon

    Refactoring to Functional

    by Hadi Hariri

    motwin attended this session:

    Hadi showed how some OO patterns can be turned into a functional style. T Use functions to pass behavior t was the motto and cooking recipe. Thus, it demonstrated how to rewrite a bunch of classes that implement the template patterns into one class. Again, thanks to the “use functions to pass behavior” principle. The Strategy pattern is also a good candidate for being rewritten in a functionalish style: the strategy has only to be encapsulated as function. Elegant code and less code: cool ! And as matter of fact, “Patterns of yesterday can become anti-patterns of today” (which is more or less a citation I don’t remember the author). Another use-case of Hadi is when the dependencies of a class grow. Firstly, it may mean the code smell bad. Secondly, it may mean that they have lots of dependencies just because they need to use dependencies behavior. And as in a functional style, you can “use functions to pass behavior”, … you get the trick, now. In functional programming, as a function can return a function, you can get a pipeline of functions call. That can also contribute to make the code shorted and more readable. Hadi just warned a too long pipeline can be in turn unreadable… so, be wise and encapsulate behaviors in meaningful named functions to avoid a too big chain of functions.

    Scala in the Enterprise

    by Peter Pilgrim

    Will Hamill attended this session:

    Peter started with some simpler Scala examples of pattern matching, reducing boilerplate compared to Java code, collections operations and Futures for asynchronous method processing. HSBC were used as an example of a larger enterprise that has some Scala adoption along with GOV.UKwho use the Play Framework in some places. Peter said that Scala adoption depends on a confident and talented team, and delivering something working was the key to proving viability. …

    Scala was then demonstrated for the same types of behaviours as the Java 8 examples. … Peter covered function composition, partial functions, tail recursion, functions returning other functions and standard map reduce type examples. Futures and Promises were also briefly covered, though I think that should be focused a little more given the power of this in Scala compared to Java.

    Peter finished his talk by stating that while Java 8 is new, Scala is here already and can be used as a full-fat functional language as well as object-oriented. Java 8 however changes things by making functional paradigms accessible to a much wider and arguably slower-changing audience.

    Protocols - the Glue for Applications

    by Torben Hoffmann

    Will Hamill attended this session:

    Torben advocates Erlang for learning how objects should solve problems by communicating with each other, rather than ‘single page programming’ where people learn only to develop with an understanding only of the current class. Torben proclaimed the ‘golden trinity’ of Erlang: fail fast, failure handling, share nothing. Including failure handling as a specific case in your protocol means you should be able to handle failure gracefully. In Java world, failures are not tolerated and unexpected exceptions cause your process to die. In Erlang world, failures are embraced as alternate scenarios and managed.

    Torben gave an example of a financial application for a simple stock exchange. Buyers post purchase intentions, sellers post sale intentions, deals happen when the seller price <= buyer price. In Erlang, this will be modeled using one buyer process and one seller process per sale interaction, communicating by sending messages that form the sale protocol. gproc, a process registry, would be used as a pub/sub mechanism for buyers and sellers listen for messages of intent to sell/buy. After price conditions are met, the sale is confirmed with a three-way handshake.

    Failure is handled in the message protocol such that when the buyer or seller dies after the initial message of intent (determined by response timeout or monitoring the other process) then the processes can simply restart the interaction. If a party dies after the first part of the handshake, e.g. buyer dies before getting sale complete message after seller closed sale on their side, a restart of the process will the buyer back to the previous state. A supervisor process is commonly used in Erlang to monitor worker processes and handle restarts. Other options for handling failure in the stock exchange are to keep a transaction log per-process in order to easily replay until the last state. Alternatively a central ledger process could be used which tracks completed deals and allocates buyer and seller processes deal IDs so they can link back up when they fail.

    Twitter feedback on this session included:

    @jimshep: These 2 tools are all you need to build mission-critical systems @LeHoff #QConLondon

    @dthume: Erlang fail fast error handling - "if you don't know what to do, what's the point in living?" @lehoff at #qconlondon

    @solsila: If a process makes a call with incorrect data, it deserves to die @LeHoff on protocols #qconlondon

    @willhamill: if you call the API with the wrong data, you deserve to die - @LeHoff on process error handling in Erlang #qconlondon

    Product Ownership Is a Team Sport

    by Shane Hastie

    Twitter feedback on this session included:

    @NitinBharti: Product management is a "value management" *team* sport #qconlondon @shanehastie

    @solsila: Velocity is a measure of work (cost), not value. @shanehastie #qconlondon

    @lissijean: Building more is not always better. Recognize when the value flattens out. @shanehastie #qconlondon

    Product thru the Looking Glass

    by Chris Matts

    Twitter feedback on this session included:

    @shanehastie: #qconlondon @PapaChrisMatts The agile test: Deliver quality: Deliver Quality (bugs, pert UX) : Short Iterations (max 1 month)

    @lissijean: They don't want a tea bag, they want the value they get from a cup of tea - quenching thirst. #prodmgmt #qconlondon @PapaChrisMatts

    @shanehastie: #qconlondon @PapaChrisMatts Product management is the realm of hypothesis - they think that the need exists and meeting them matters

    @lissijean: After you've gathered insights you need to manage them. Analyze by value and personas. @PapaChrisMatts #qconlondon

    @lissijean: Testing hypotheses is a #Kanban process not scrum. Don't try to shove it into a sprint. @PapaChrisMatts #qconlondon

    @shanehastie: #qconlondon @PapaChrisMatts getting the audience to build UI designs and vote on them in the session. Bad idea terminator works @lissijean

    The Bad Idea Terminator

    by Melissa Perri

    Yan Cui attended this session:

    We often start off doing things right – they test and iter­ate on their ideas before they hit the mar­ket, and then they end up with some­thing that peo­ple want to use. But then they just keep on build­ing with­out going back to find­ing those inno­v­a­tive ideas that peo­ple love. …

    We can fall into the build trap in a num­ber of ways, including:

  • pres­sure from stake­hold­ers to always release new fea­tures
  • arbi­trary dead­lines and fail­ure to respond to change – set­ting dead­lines that are too far out and not being flex­i­ble enough to adapt to change
  • “build­ing is work­ing” men­tal­ity – which doesn’t allow time for us to step back and think if we’re build­ing the right things…
  • So how do you become the Bad Idea Ter­mi­na­tor, i.e. the per­son that goes and destroys all the bad ideas so they can focus on the good ones? They can start by iden­ti­fy­ing some com­mon mis­takes they make.

    Mis­take 1 : don’t rec­og­nize bias…

    Mis­take 2 : solu­tions with no problems - When peo­ple sug­gest new ideas, most of the time they come to the table with solu­tions. Instead, they need to start with the WHY, and focus on the prob­lem that we’re try­ing to solve….

    Mis­take 3 : build­ing with­out testing - When they get stuck in the build trap they don’t tend to test their assump­tion, as they tend to com­mit to one solu­tion too early. Instead, they should solicit many solu­tions at first, and get peo­ple off the fix­a­tion on the one idea….

    Mis­take 4 : no suc­cess metrics - Another com­mon mis­take is to not set suc­cess met­rics when they go and do exper­i­ments, and they also don’t set suc­cess met­rics when build­ing new features.

    Twitter feedback on this session included:

    @paulacwalter: Figuring out what to build is the hard part. Don't get stuck in the "building is working" trap. @lissijean #qconlondon

    @shanehastie: #qconlondon @lissijean in software they get stuck in the build trap - just build the next piece, stop and go back to check that still want it

    @shanehastie: #qconlondon @lissijean Putting out more features doesn't make your product more attractive, just bloated

    @shanehastie: #qconlondon @lissijean The most important part of the product manager role is the ability to say No

    @_yowan_: Feature ideas are not your babies inspiring talk by @lissijean #qconlondon

    @shanehastie: #qconlondon @lissijean Idea terminator: notice differences among customers and businesses

    @quaasteniet: Now The bad idea terminator where @lissijean talks about killing bad ideas even more useful than killing bad code ;) #qconlondon #TOPdesk

    @shanehastie: #qconlondon @lissijean Bad idea terminator: Change perspective

    @Helenislovely: Building in questions that help evaluate features and therefore truly prioritise. Dealing with ideas @lissijean #qconlondon

    @shanehastie: #qconlondon @lissijean Bad idea terminator: Focus on the problem

    @shanehastie: #qconlondon @lissijean Bad idea terminator: Is this a problem they can and want to solve?

    @shanehastie: #qconlondon @lissijean Bad idea terminator: Consider many solutions

    @shanehastie: #qconlondon @lissijean Bad idea terminator: Test the viable solutions very quickly for very low investment

    @shanehastie: #qconlondon @lissijean Bad idea terminator: set success metrics when you identify the experiment, then CHECK THE RESULTS

    @shanehastie: #qconlondon @lissijean Bad idea terminator: Set goals early (late goals will be adjusted to their bias) and make sure they align with KPIs

    @Helenislovely: Thinking of 2 other biases that kill their innovation: loss aversion and attachment to their own creativity. @lissijean #qconlondon

    @solsila: The faster you kill the bad ideas, the more time you have for the good ones. Becoming a Bad Ideas Terminator w/ @lissijean #qconlondon

    The Sensemaker Method

    by Tony Quinlan

    Twitter feedback on this session included:

    @shanehastie: #qconlondon @tquinlan direct questions never give you the truth - need to get underneath to get meaning

    @shanehastie: #qconlondon @tquinlan is your solution actually creating the problem?

    @shanehastie: #qconlondon @tquinlan "on average" doesn't help, what you want is specifics to understand actual needs

    @shanehastie: #qconlondon @tquinlan collecting stories as people experience the system/environment allows meaning to be exposed

    @shanehastie: #qconlondon @tquinlan context and moment matters - people are complex, can't simply extrapolate

    @Helenislovely: Meaning is not in the content you're reading. Its the context and intertextuality. @tquinlan #qconlondon

    @shanehastie: #qconlondon @tquinlan "red shirt" is an assessment of life expectancy not a fashion statement (#startrek) #context matters

    @Helenislovely: Gather smart feedback @tquinlan connects to @LMaccherone point about using data to change the tone of conversation. #qconlondon

    @shanehastie: #qconlondon @tquinlan collect stories with the audience's meaning; look for patterns that emerge; come up with activities to improve soltn

    Responding Rapidly When You Have 100GB+ Data Sets in Java

    by Peter Lawrey

    Will Hamill attended this session:

    Peter described how he believes that a modern system should be reactive: responsive, resilient and elastic. When your weapon of choice is the JVM, you can process data much faster when you can map your entire data set into memory (given I/O bottlenecks, I’m sure this is true for almost any language). However, what happens when you move into the realms of very large data sets - which in Java land is pretty much anything beyond 32GB?…

    In terms of accessing more memory on the JVM, going beyond 32GB on standard compute platforms means you’ll need to jump up to 64-bit address references, which though increasing available memory area also reduces the efficiency of CPU caches due to increased object size. Garbage collection of such larger memory spaces also starts to become a problem, with a concurrent collector being needed to avoid stop-the-world execution pauses.

    Peter described how the Azul Zing concurrent collector was an option for tackling this issue up to a given size, as for memory sets of around ~100s GBs their garbage collector will perform with minimal execution impact. A different approach would be to use TerraCotta BigMemory as a memory management layer inside your application, allowing the application to use off-heap memory, though the disadvantage is needing to explicitly build applications against their library so it can’t be injected in to existing applications as a mitigation in the same way using Azul Zing could be.

    When addressing bigger data sets of up to 1TB in Java, the NUMA region limit kicks in at around 40 bits of physical memory (40 bits for Ivy Bridge and Sandy Bridge generation Intel CPUs, 48 bits for Haswell generation CPUs). Addressing beyond 40 bits requires using a 48-bit virtual address space, with data paged in on demand. The 48-bit limit then pushes the threshold to 256TB in CentOS, 192 TB in Windows and 128TB in Ubuntu. I can’t wait for someone to be quoted at this point saying “128TB will be enough for anyone!” that they can all look back upon and laugh in 2025 :). Moving further up the orders of magnitude, a 1PB (Petabyte!) memory space can be achieved by mapping the address tables themselves into the main addressable space, in order to achieve paging of the virtual space.

    Twitter feedback on this session included:

    @peter_pilgrim: Reactive system design to consider if your data size >32GB from @PeterLawrey #qconlondon #in #java #performance

    @charleshumble: “32 bit i still relevant in IoT. If you have a digital toaster it's unlikely to need more than 32 bits." @PeterLawrey #qconlondon

    @Idris_Ahmed251: x86 computers... Your toaster will never need that! #qconlondon @peterlawrey

    @charleshumble: Many systems have NUMA regions that are limited to 1TB. @PeterLawrey #qconlondon

    @charleshumble: PetaByte JVMs for a use case that needs random access without going across networks @PeterLawrey #qconlondon

    The Art of Protocol Design

    by Pieter Hintjens

    Twitter feedback on this session included:

    @miguel_f: Don't break user code! Once again: don't break user code! @hintjens #qconlondon

    @marcusolsson: Versioning is not an excuse to break contracts. @hintjens #qconlondon

    Microservices Are Too (Conceptually) Big

    by Philip Wills

    Pere Villega attended this session:

    In this talk, Philip Wills, Senior Software Architect at The Guardian, explains how The Guardian moved from a monolith to Microservices. Currently they release around 40 different services to production each week.

    When they were a monolith they started to find some problems. … They also had a concern with limiting the scope of failure. The monolith allowed embedding some microapps into specific places, but they hit performance and coupling issues soon enough. …

    So they moved to single responsibility apps, focused on resilience and with limited scope (you can fit it in your head)….

    An important point he raised is that they try to avoid sharing libraries across services, due to the amount of contention they cause. They consider this a last resort.

    Will Hamill attended this session:

    Phil explained that the main reason The Guardian had pursued a microservices architecture was for faster innovation in a high pressure media marketplace. Independent teams were needed for the different functional areas of the platform, and as on the old platform taking something experimental from a Hackday and putting it into production was prohibitively expensive, the organisation wanted the teams to be able to work independently from each other and release rapidly without overhead….

    With the ‘micro app’ approach, teams at The Guardian were developing independent products with ownership inside the team. This made removing and replacing parts much easier than the pain caused when they tried to do this with the monolith application. Teams were no longer dependent upon each other for releases and making changes to their interfaces backwards compatible reduced interdependencies. Phil mentioned how it was important for each team to own their own datastore and to prohibit integration via DB so as to maintain the benefit of cleanly defined APIs.

    Each application had a single responsibility, and a single key metric that would tell teams about its performance, in terms of that responsibility. Different applications change at different rates, so they want them not to depend on each other, as this would restrict them to the lowest common denominator.

    Twitter feedback on this session included:

    @stefanoric: #qconlondon Some lessons from The Guardian about microservices: separate teams, limit scope of failures, design for things to die.

    @danielbryantuk: Fail-fast for the win in a monolith and microservice integration @philwills at #qconlondon

    @danielbryantuk: JSON is a really poor interface mechanism. We're looking at Thrift to provide strong-typing for protocols @philwills at #qconlondon

    @stefanoric: #qconlondon The Guardian is considering ditching JSON and go with Thrift

    @rvedotrc: “On AWS, you can throw more hardware at it, or turn it off and on again. This solves a surprisingly large amount.” @philwills #qconlondon

    @danielbryantuk: Interesting to see the Guardian focusing on 'single responsibility apps'. Find one key metric for each app that measures impact #qconlondon

    @adrianmouat: Everything was crashing, but nothing was causing a problem @philwills on the advantages of microservices at #qconlondon

    @rajshahuk: Yeah! The Guardian try to avoid shared libraries via @philwills #qconlondon

    Microservices: Software That Fits in Your Head

    by Dan North

    Will Hamill attended this session:

    Dan has argued for some time that software itself is not an asset but a liability, so producing more code is less valuable than making the software more effective. The costs (as well documented across the industry) cover not just creating the code, but understanding and maintaining it on an ongoing basis. The biggest problem to software development is the code in the system that nobody knows about, as this is expensive and risky to maintain. The best way to deal with this is to stabilise the offending code or kill it off.

    Dan describes two complementary patterns for understandable, maintainable code: ‘short software half-life’ and ‘fits in my head’. …

    Short half-life results from the replaceability of discrete components with clear boundaries and defined purposes and responsibilities. …

    ‘Fits in my head’, a metric originally inspired by the length of a class on screen compared to James Lewis’ head but not generally referring to the ability of a person to understand the conceptual whole of a component at a given level of abstraction, is used to judge whether or not other people on the team can reason about the component with the same context as whoever designed or first implemented it. This is useful as the contextual consistency for the person understanding the component is more important than homogeneity across implementation methods, so that freedom is left to meet the needs inside the component in whichever way is best, but the people making decisions about it will come to similar decisions as the designer/implementer would have. When you have this contextual consistency you can trust that the decisions people make that result in different outcomes have been driven by different needs rather than arbitrarily.

    Dan described the approach of splitting these components into services that together fit the business need as a ‘replaceable components’ style (no doubt familiar to anyone who understands the original intent of SOA). To reduce coupling these components should be isolated from each other and should communicate by passing messages through well-defined APIs. Implicit coupling between components can be identified by heavy use of mocks - over-dependence on mocking implies you are too tightly coupled to the behaviours of other components.

    Pere Villega attended this session:

    We don't care about code, but about the business impact. That is to mean that the code is not an asset, is a cost they assume to obtain the business impact. Writing code, changing code, and understanding code; they are all costs.

    As a consequence they want to stabilise their code or, alternatively, kill it fast and replace it by less-costly code. As it happens, the patterns that facilitate this process lead to Microservices.

    The first pattern is to have a short software half-life. An application can be long lived, but the code that composes that application may not be. Effective teams tend to have a very short code half-life, in which after a few weeks the code has changed a lot and whole sections have been replaced or moved. This keeps the costs associated to code low.

    To facilitate a short half-life they want to write discrete components, with clear boundaries, and clear purpose and responsibility. The boundaries happen at many levels: deployment (containers), design (DDD), etc. A clear purpose reduces uncertainty….

    Another pattern is to consider anything that doesn't fit in your head as too big. …

    A Microservice can be a type of replaceable component architecture, if you optimise for replaceability and consistency. Don't optimise for size, smaller is not necessarily better, more replaceable is better. And kill code fearlessly.

    Twitter feedback on this session included:

    @rvedotrc: The goal of software development is NOT to produce software – it’s to sustainably deliver positive business impact @tastapod #qconlondon

    @V_Formicola: What is their business about? “Sustainably minimise lead time to business impact.” @tastapod #qconlondon

    @trisha_gee: Code is not the asset, code is the cost @tastapod at #qconlondon

    @jimshep: productive != effective- @tastapod #QConLondon

    @rvedotrc: Writing code is the annoying time-expensive part that gets in the way of solving problems (paraphrasing @tastapod #qconlondon)

    @stefanoric: Code should be stabilized or killed off Dan North #qconlondon

    @solsila: Heisenberg effect in code: the issue occurs until you try to observe it! #thisexplainsalot @tastapod #qconlondon

    @trisha_gee: An application can have a long life, but the code should have a short half life @tastapod at #qconlondon

    @rvedotrc: “If I can’t reason about [a component], I can’t kill it” @tastapod #qconlondon

    @paulacwalter: Documentation is valuable. Documenting everything a shocking waste of time. Tricky bit is knowing what to document. @tastapod #qconlondon

    @rajshahuk: Killing code is refactoring, it isn't brutal -- @tastapod #qconlondon

    @V_Formicola: “I don’t like to look at code that doesn't fit in my head” @tastapod @boicy #qconlondon

    @V_Formicola: Familiarity is different than simplicity@tastapod #qconlondon

    @AlibertiLuca: #qconlondon Mocking is an anti-pattern @tastapod

    @axhixh: I am going to write best code I can that I don't care about. @tastapod #qconlondon

    No Free Lunch, Indeed: Three Years of Microservices at Soundcloud

    by Phil Calcado

    Pere Villega attended this session:

    SoundCloud moved from a Sacrificial Architecture to Microservices. … Before you can start with Microservices, you need 3 things:

  • rapid provisioning of servers (or containers or vm's)
  • basic monitoring
  • rapid app deployment with a short turnaround
  • For provisioning, SoundCloud moved from AWS to their own datacenter in Amsterdam, although they still use S3 and some other Amazon services….

    On telemetry they found a similar issue: the tools available at 2011 weren't great. The common tooling was a push model based on StatsD, Graphite and Nagios. Engineers they hired at that time wanted a pull model so they developed Prometheus which works along Icinga to provide better data. When they moved to Microservices their monitoring didn't break. …

    Regarding their pipeline at the beginning they had 2 different pipelines: one for build, one for release. Customisation and other factors ended up creating 7 different deployment scripts. Currently they use Docker to run tests when in development. Jenkins takes care of building and packaging the application as a deb package, and they use that for deployment. They have not adopted Docker yet as they don't want a strong coupling.

    Will Hamill attended this session:

    The three aspects of this that Phil found most important at Soundcloud were rapid environment provisioning, basic monitoring, and rapid application deployment. The first of these, provisioning, looked a little different in 2011 than it did now when Soundcloud were preparing for what they thought would be the “microservices explosion”. With Heroku as the example, usingDoozer for service discovery, LxC containers and the 12 Factor principles, Soundcloud managed to put together a provisioning platform much better than any other complete solution around at the time….

    In terms of telemetry and monitoring (another hot topic at QCon this year), Phil described how in 2011 the tooling available was not quite what it is today, and dissatisfaction with some common tools led Soundcloud to build their own system. Interestingly, some of the former Google Site Reliability Engineers that had been hired by Soundcloud advocated this as they missed the detailed monitoring when moving away from the Google platform. Moving from a solution of Statsd, Graphite and Nagios, Soundcloud developed and subsequently open-sourced Prometheus as their metrics & monitoring system, with use of Icinga and PagerDuty for alerting.

    Teams at Soundcloud were also reorganised - component teams became feature teams with more vertical responsibility (surprisingly no explicit call out for Conway’s Law).

    The second of the three aspects Phil talked about was deployment. Soundcloud moved from a two-pronged delivery pipeline using make and Jenkins where Jenkins ran many sets of tests but did not build the artefacts which would actually be deployed, to a singular pipeline of Docker containerisation for unit/integration tests before commit to source, then Jenkins running a wider set of tests on the latest code, generating packages either for including in an AMI for AWS deployment, or for containerisation to allow developers to run a ‘mini-soundcloud’ for dev/testing purposes.

    Twitter feedback on this session included:

    @danielbryantuk: People are always migrating to something from Rails @pcalcado on the current #microservice migration trends at #qconlondon

    @philwills: .@pcalcado says at @SoundCloudDev their engineers with a javascript background write scala, so not just us at @gdndevelopers #qconlondon

    @rvedotrc: “When you have a monolith, and it breaks overnight, you know where the problem is: it’s in the monolith” @pcalcado #qconlondon

    @markhneedham: They had Scala people getting very confused about JavaScript... #qconlondon @pcalcado

    @tastapod: “Don’t forget companies that open source cloud, monitoring, lservices, etc. got it wrong a bunch of times first!" @pcalcado at #qconlondon

    Operating Microservices

    by Michael Brunton-Spall

    Pere Villega attended this session:

    His talk applied to Microservices understood as 'vertically aligned stacks that communicate via simple and standard interfaces'. In this context ownership of data matters, you don't want to share data. Teams own the code, people outside the team don't modify that code. Teams also own the runtime, they choose what they want to use, even Erlang in a supposedly JVM shop. …

    Microservices are [using] Conway's Law. Management and developers love them because:

  • small owned services that can be updated more often
  • teams can move fast and break stuff
  • teams can own the whole stack
  • On the other hand infrastructure teams hate them because:

  • small owned services that can be updated more often. But changing things breaks things.
  • teams can move fast and break stuff. Ops want to be slow and stable, avoid breaking things
  • teams can own the whole stack. Ops are not required, thus they lose control over security …
  • The best starting point it to just run 1 Microservice, by itself, successfully. Microservices in the small. You need to:

  • make sure you are able to do it
  • automate your infrastructure (use of containers is not necessary)
  • create a base image for your service
  • deploy it fast, with a time-to-server of a few minutes, not hours …
  • You need monitoring tools that are easy to hook into. …

    You must automate your deployment. It doesn't need to be complex, it can be as simple as executing a self-contained Jetty, but keep a log of the deploys done including the commits that were released. And you must give the keys to the development team, as well as root. And give them pagers too: if they break it, they fix it. But to do that they need full access….

    At this point point you have 1 Microservice running. Now repeated to get 10, 100, ... Microservices in the large.

    When you have many services running, they are going to fail in more spectacular ways than their equivalent monoliths. They are not complicated (like a car), but complex (like a traffic system) in which the root cause may be distant in time and space. Due to that, diagnosis tools are a must.

    Twitter feedback on this session included:

    @danielbryantuk: I've never known an ops team who like the phrase 'move fast and break things' @bruntonspall on operational microservices at #qconlondon

    @rvedotrc: Ops teams hate microservices because you can change stuff, and change it without them. @bruntonspall #qconlondon

    @jabley: lservices as a way of subverting Conway's Law and redesigning your organisation – interesting idea from @bruntonspall #qconlondon

    @danielbryantuk: Simple, complicated, complex <- all microservice architectures are complex! @bruntonspall on complexity at #qconlondon

    @markhneedham: We're building the new legacy services #qconlondon @bruntonspall

    @kronk2002de: Operations teams should act more like consultants @bruntonspall #qconlondon

    @V_Formicola: The first person pays the price, the next will pave the road, the following will have a road to walk on. @bruntonspall #qconlondon

    @danielbryantuk: Look at the 90th, 95th and 99th percentile when dealing with microservice telemetry <- this stuff matters at scale #qconlondon

    Protocols of Interaction: Best Current Practices

    by Todd Montgomery

    Will Hamill attended this session:

    Todd began by describing some of the issues of service communication that can be observed and sometimes addressed in protocols. Data loss, duplication and reordering as the most common issues tackled and can happen even in protocols portrayed as ‘reliable’. In TCP, for example, connections can be closed or traffic interfered with by proxies.

    In request/response synchronous comms, throughput is limited by the round trip time for each communication multiplied by the number of requests. Asynchronous communication can reduce this to closer to the round trip time for a single communication but responses require correlation to original requests and this therefore adds complexity. Ordering of messages is an illusory guarantee, as the compiler, runtime environment and CPU can change ordering in real terms, so ordering is imposed upon events by the protocol….

    In scenarios when multiple recipients are sent the same data set, if each recipient requests a retransmit of a different part of the data set, it will cause a retransmit of the entire set even if between them the entire set was accepted - a common problem when distributing loads across horizontally scaled consumers. Solving this is non-trivial, and Todd recommends a combination of patience, and waiting to listen for possible retransmit requests from all recipients. …

    For queue management, Todd recommends using a bound total queue length and using back pressure or even dropping messages to ensure minimisation of the queue contents. Extended queue lengths leads to ‘buffer bloat’ and delays between services (large queues between work states being a cause of delays should be known to anyone familiar with queuing or ToC).

    Todd concluded by summarising that existing protocols such as TCP, Aeron and SRM, are full of patterns for tackling complicated communications problems, and that they should look to how others have solved these problems when working on their own systems.

    Pere Villega attended this session:

    Protocol definition matters. Protocols not only define how they format and treat data, they also define how do they interact with something. Protocols of interaction matter much more now that they are embracing Microservices, and they are a great solution for many of the problems raised by them. Internet (in fact, any network) is an hostile environment were data can be lost, duplicated, reordered, etc. And TCP is not a safeguard from those issues. They will happen.

    The main takeaway of the talk: Protocols are a rich source of solutions to complicated problems.

    How They Build Rock-solid Apps and Keep 100M+ Users Happy at Shazam

    by Savvas Dalkitsis & Iordanis Giannakakis

    Twitter feedback on this session included:

    @IsraKaos: Test first, they found is actually easier @iordanis_g @geeky_android Now even in Android!! #qconlondon

    @RogerSuffling: #Shazam and how to do rock solid builds. Glad to see testing is central #qconlondon

    @trisha_gee: I actually found the code version of the test easier to understand than the user story! @geeky_android at #qconlondon

    @trisha_gee: Unit tests that take 3 or 4 seconds to run are not acceptable @geeky_android at #qconlondon

    @trisha_gee: Cognitive load is lower when you don't use a DI framework in Android - @iordanis_g at #qconlondon

    @trisha_gee: The power of manual testing comes in when you're trying to do things like check your animations are smooth @iordanis_g at #qconlondon

    Tales from Making Mobile Games

    by Jesper Richter-Reichhelm

    Twitter feedback on this session included:

    @IsraKaos: With 20 internal teams (2-32) if one fail it's just one. But when 1 succeeds, all 20 can benefit from it @jrirei #qconlondon

    @trisha_gee: Feature switching useful not just for A/B testing to see what's effective, but also to turn off features with bugs @jrirei at #qconlondon

    @IsraKaos: While they waited for the iOS version to be approved, the Android guys released 8 times in their normal cycle Hehehehehe @jrirei #qconlondon

    @JanSabbe: I love Apple, but... I'm starting to love Android even more @jrirei #qconlondon

    @ellispritchard: Apple loosing love to Android due to lack of staged roll-out/slow iteration #qconlondon

    Infrastructure Built in Go

    by Jessie Frazelle

    Will Hamill attended this session:

    Jessie began with giving an overview of what Docker is and what it’s for: a runtime for application containers, which are a subset of Linux kernel features such as namespaces, cgroups and pivots. Docker allows you to ‘containerise’ your application and produce a fully static binary containing all dependencies, giving ease of installation and deployment. This can be as basic as scp the container to the target server and bootstrap the binary. Jessie also informed us that Docker support would be coming to Windows, which would bring the lineup to four main platforms (the others being Darwin, BSD Unix and Linux).

    Jessie also described a distributed message platform in Go called NSQ which is used to help scale the Docker project in a number of ways. NSQ is used by the build app responsible for listening to GitHub hooks to trigger builds and deployments, used by the Docker master binary build to run on every push to the master branch, and used by the app which automates building and publishing docs from the code. The team at Docker rewrote a Python-based Jenkins plugin in Go to handle the pull requests, which also uses NSQ to perform housekeeping such as checking for signed commits, labels and documentation comments.

    The Go language was chosen by the Docker team for a number of reasons: it’s simple, has common useful tools such asfmt, vet, lint, and others for documentation and tests. Some of the issues they found when using Go were in package versioning across the teams and inconsistency in approaches to this. The Go test framework is also still basic and not as fully-featured as those in other languages (like JUnit for example) and so lacks some useful aspects such as setup and teardown step definitions. The Go community is also smaller than that of other languages and as a result is still helpful, friendly and comparatively drama-free.

    Twitter feedback on this session included:

    @paulacwalter: A container is a magical thing that doesn't really exist  in the wild. @frazelledazzell #qconlondon

    @csanchez: Go is a neutral language, not like Java. It's the Switzerland of languages @frazelledazzell #qconlondon

    Microservices, Micro Deployments and Devops

    by Alois Reitbauer

    Sebastian Bruckner attended this session:

    An advanced micro service talk with the focus on creating resilient, changeable services and how to operate them. Especially his anti- or problem patterns in a micro service architecture were very interesting.

  • The Gatekeeper – Many outgoing dependencies
  • likely not very “micro”
  • complex application logic
  • very deployment sensitive
  • Single Point of Failure – Many incoming dependencies
  • central application service
  • very fragile to scaling
  • user facing impact
  • Hub – Many incoming and outgoing dependencies
  • the worst thing to happen
  • “legacy” migration
  • highest deployment risk
  • Sebastian Bruckner attended the microservices open space:

    Every track on the QCon had a slot with an open space. An open space doesn’t have a prepared talk but several slots where the attendees can promote topics they are interested in and want to talk about. The microservice open space was the first and only open space I attended at QCon. The topics were surprisingly advanced, I really enjoyed it. I can only recommend you to try this format.

    Impressions expressed on Twitter included:

    @stealthness: Day 1 of #QConlondon 2015 and the QEII Conference center had make over since last. Looking very sleek and modern.

    @QuackingPlums: #qconlondon is worth it every year just for this view…

    @V_Formicola: Positively impressed by the % of women at #qconlondon, the most I have ever seen at a technology conference! Are things finally changing?

    @lauracowen: #qconlondon do some very good food. Nom

    Ben Basson’s takeaways were:

    It seems like a lot of teams are struggling to properly implement agile practices, and I'm glad to see that I'm not the only one who has experienced some of these problems over the last few years. I got a lot of food for thought, but what I found great about QCon was the focus not only on ideas, but how to sell them and the real business benefits behind these improvements in working practices.

    Takeaways from QCon London included:

    @fotuzlab: Building software is not like building a house, it’s like town planning #qconlondon

    @_angelos: Observing #qconlondon, I get the feeling much of software engineering is about automating what exists, not inventing what isn’t there.

    @Helenislovely: This whole conference is like an index of things I don't know but should. Good coz I like learning but also overwhelming! #qconlondon

    @Yann_G: How to keep running the romance w. Agile in a team? Fresh air comes from the outside! Send teams to conferences! #qconlondon

    @solsila: Main #qconlondon themes this year? Culture, Microservices, DevOps, Docker... and cats.

    @rolios: Firebase, microservices at The guardian and at Soundcloud, protocols, rxjava on Android, Aeron. Last day at #qconlondon was huge. The end!

    @bencochez: Almost home after a week at #qconlondon. A truly inspiring experience.

    @portiatung: @rkasper #qconlondon Thanks for the great facilitation of the open spaces!

    The ninth annual QCon London brought together over 1,100 attendees - including more than 100 speakers – who are disseminating innovation in software development projects across the enterprise. QCon's focus on practitioner-driven content is reflected in the fact that the program committee that selects the talks and speakers is itself comprised of technical practitioners from the software development community.

    As well as being notable for its size this QCon represented another milestone. & Trifork have brought you QCon London in partnership since 2005. Now InfoQ is acquiring Trifork's interest in QCon London. Trifork runs GOTO conference in Chicago, Amsterdam, Copenhagen, Berlin, as well as Scala Days & FlowCon. Going forward, London will host two separately run conferences, reflecting the two companies’ different visions for how to run developer conferences:

  • QCon London: 3 days conf, 2 days tutorial - March 7-11 2016 - 1,200 attendees. Run by who runs QCon San Francisco, New York, Sao Paolo, Rio, Beijing, Shanghai, Tokyo.
  • GOTO London: 2 days conf, 2 days tutorial - September 14-17 2015 - 450 attendees. Run by Trifork, who runs GOTO Aarhus, Amsterdam, Chicago, Berlin, Copenhagen, FlowCon, Scala days.
  • The two companies remain friends and Trifork maintains an equity stake in InfoQ's operating company C4Media Inc. The two conferences will cooperate and co-promote each other for the next few years.

    The next English language QCon is New York starting on June 8th, followed by San Francisco on November 16th. QCon London will return on 7-11 March 2016.

    Marriages Made In Heaven | real questions and Pass4sure dumps

    Marriages Made In Heaven

    By using this website you are consenting to the use of cookies. Electronics Weekly is owned by Metropolis International Group Limited, a member of the Metropolis Group; you can view their privacy and cookies policy here.


    Direct Download of over 5500 Certification Exams

    3COM [8 Certification Exam(s) ]
    AccessData [1 Certification Exam(s) ]
    ACFE [1 Certification Exam(s) ]
    ACI [3 Certification Exam(s) ]
    Acme-Packet [1 Certification Exam(s) ]
    ACSM [4 Certification Exam(s) ]
    ACT [1 Certification Exam(s) ]
    Admission-Tests [13 Certification Exam(s) ]
    ADOBE [93 Certification Exam(s) ]
    AFP [1 Certification Exam(s) ]
    AICPA [2 Certification Exam(s) ]
    AIIM [1 Certification Exam(s) ]
    Alcatel-Lucent [13 Certification Exam(s) ]
    Alfresco [1 Certification Exam(s) ]
    Altiris [3 Certification Exam(s) ]
    Amazon [2 Certification Exam(s) ]
    American-College [2 Certification Exam(s) ]
    Android [4 Certification Exam(s) ]
    APA [1 Certification Exam(s) ]
    APC [2 Certification Exam(s) ]
    APICS [2 Certification Exam(s) ]
    Apple [69 Certification Exam(s) ]
    AppSense [1 Certification Exam(s) ]
    APTUSC [1 Certification Exam(s) ]
    Arizona-Education [1 Certification Exam(s) ]
    ARM [1 Certification Exam(s) ]
    Aruba [8 Certification Exam(s) ]
    ASIS [2 Certification Exam(s) ]
    ASQ [3 Certification Exam(s) ]
    ASTQB [8 Certification Exam(s) ]
    Autodesk [2 Certification Exam(s) ]
    Avaya [101 Certification Exam(s) ]
    AXELOS [1 Certification Exam(s) ]
    Axis [1 Certification Exam(s) ]
    Banking [1 Certification Exam(s) ]
    BEA [5 Certification Exam(s) ]
    BICSI [2 Certification Exam(s) ]
    BlackBerry [17 Certification Exam(s) ]
    BlueCoat [2 Certification Exam(s) ]
    Brocade [4 Certification Exam(s) ]
    Business-Objects [11 Certification Exam(s) ]
    Business-Tests [4 Certification Exam(s) ]
    CA-Technologies [20 Certification Exam(s) ]
    Certification-Board [10 Certification Exam(s) ]
    Certiport [3 Certification Exam(s) ]
    CheckPoint [43 Certification Exam(s) ]
    CIDQ [1 Certification Exam(s) ]
    CIPS [4 Certification Exam(s) ]
    Cisco [318 Certification Exam(s) ]
    Citrix [48 Certification Exam(s) ]
    CIW [18 Certification Exam(s) ]
    Cloudera [10 Certification Exam(s) ]
    Cognos [19 Certification Exam(s) ]
    College-Board [2 Certification Exam(s) ]
    CompTIA [76 Certification Exam(s) ]
    ComputerAssociates [6 Certification Exam(s) ]
    Consultant [2 Certification Exam(s) ]
    Counselor [4 Certification Exam(s) ]
    CPP-Institute [4 Certification Exam(s) ]
    CSP [1 Certification Exam(s) ]
    CWNA [1 Certification Exam(s) ]
    CWNP [13 Certification Exam(s) ]
    CyberArk [1 Certification Exam(s) ]
    Dassault [2 Certification Exam(s) ]
    DELL [11 Certification Exam(s) ]
    DMI [1 Certification Exam(s) ]
    DRI [1 Certification Exam(s) ]
    ECCouncil [22 Certification Exam(s) ]
    ECDL [1 Certification Exam(s) ]
    EMC [128 Certification Exam(s) ]
    Enterasys [13 Certification Exam(s) ]
    Ericsson [5 Certification Exam(s) ]
    ESPA [1 Certification Exam(s) ]
    Esri [2 Certification Exam(s) ]
    ExamExpress [15 Certification Exam(s) ]
    Exin [40 Certification Exam(s) ]
    ExtremeNetworks [3 Certification Exam(s) ]
    F5-Networks [20 Certification Exam(s) ]
    FCTC [2 Certification Exam(s) ]
    Filemaker [9 Certification Exam(s) ]
    Financial [36 Certification Exam(s) ]
    Food [4 Certification Exam(s) ]
    Fortinet [14 Certification Exam(s) ]
    Foundry [6 Certification Exam(s) ]
    FSMTB [1 Certification Exam(s) ]
    Fujitsu [2 Certification Exam(s) ]
    GAQM [9 Certification Exam(s) ]
    Genesys [4 Certification Exam(s) ]
    GIAC [15 Certification Exam(s) ]
    Google [4 Certification Exam(s) ]
    GuidanceSoftware [2 Certification Exam(s) ]
    H3C [1 Certification Exam(s) ]
    HDI [9 Certification Exam(s) ]
    Healthcare [3 Certification Exam(s) ]
    HIPAA [2 Certification Exam(s) ]
    Hitachi [30 Certification Exam(s) ]
    Hortonworks [4 Certification Exam(s) ]
    Hospitality [2 Certification Exam(s) ]
    HP [752 Certification Exam(s) ]
    HR [4 Certification Exam(s) ]
    HRCI [1 Certification Exam(s) ]
    Huawei [21 Certification Exam(s) ]
    Hyperion [10 Certification Exam(s) ]
    IAAP [1 Certification Exam(s) ]
    IAHCSMM [1 Certification Exam(s) ]
    IBM [1533 Certification Exam(s) ]
    IBQH [1 Certification Exam(s) ]
    ICAI [1 Certification Exam(s) ]
    ICDL [6 Certification Exam(s) ]
    IEEE [1 Certification Exam(s) ]
    IELTS [1 Certification Exam(s) ]
    IFPUG [1 Certification Exam(s) ]
    IIA [3 Certification Exam(s) ]
    IIBA [2 Certification Exam(s) ]
    IISFA [1 Certification Exam(s) ]
    Intel [2 Certification Exam(s) ]
    IQN [1 Certification Exam(s) ]
    IRS [1 Certification Exam(s) ]
    ISA [1 Certification Exam(s) ]
    ISACA [4 Certification Exam(s) ]
    ISC2 [6 Certification Exam(s) ]
    ISEB [24 Certification Exam(s) ]
    Isilon [4 Certification Exam(s) ]
    ISM [6 Certification Exam(s) ]
    iSQI [7 Certification Exam(s) ]
    ITEC [1 Certification Exam(s) ]
    Juniper [65 Certification Exam(s) ]
    LEED [1 Certification Exam(s) ]
    Legato [5 Certification Exam(s) ]
    Liferay [1 Certification Exam(s) ]
    Logical-Operations [1 Certification Exam(s) ]
    Lotus [66 Certification Exam(s) ]
    LPI [24 Certification Exam(s) ]
    LSI [3 Certification Exam(s) ]
    Magento [3 Certification Exam(s) ]
    Maintenance [2 Certification Exam(s) ]
    McAfee [8 Certification Exam(s) ]
    McData [3 Certification Exam(s) ]
    Medical [68 Certification Exam(s) ]
    Microsoft [375 Certification Exam(s) ]
    Mile2 [3 Certification Exam(s) ]
    Military [1 Certification Exam(s) ]
    Misc [1 Certification Exam(s) ]
    Motorola [7 Certification Exam(s) ]
    mySQL [4 Certification Exam(s) ]
    NBSTSA [1 Certification Exam(s) ]
    NCEES [2 Certification Exam(s) ]
    NCIDQ [1 Certification Exam(s) ]
    NCLEX [3 Certification Exam(s) ]
    Network-General [12 Certification Exam(s) ]
    NetworkAppliance [39 Certification Exam(s) ]
    NI [1 Certification Exam(s) ]
    NIELIT [1 Certification Exam(s) ]
    Nokia [6 Certification Exam(s) ]
    Nortel [130 Certification Exam(s) ]
    Novell [37 Certification Exam(s) ]
    OMG [10 Certification Exam(s) ]
    Oracle [282 Certification Exam(s) ]
    P&C [2 Certification Exam(s) ]
    Palo-Alto [4 Certification Exam(s) ]
    PARCC [1 Certification Exam(s) ]
    PayPal [1 Certification Exam(s) ]
    Pegasystems [12 Certification Exam(s) ]
    PEOPLECERT [4 Certification Exam(s) ]
    PMI [15 Certification Exam(s) ]
    Polycom [2 Certification Exam(s) ]
    PostgreSQL-CE [1 Certification Exam(s) ]
    Prince2 [6 Certification Exam(s) ]
    PRMIA [1 Certification Exam(s) ]
    PsychCorp [1 Certification Exam(s) ]
    PTCB [2 Certification Exam(s) ]
    QAI [1 Certification Exam(s) ]
    QlikView [1 Certification Exam(s) ]
    Quality-Assurance [7 Certification Exam(s) ]
    RACC [1 Certification Exam(s) ]
    Real Estate [1 Certification Exam(s) ]
    Real-Estate [1 Certification Exam(s) ]
    RedHat [8 Certification Exam(s) ]
    RES [5 Certification Exam(s) ]
    Riverbed [8 Certification Exam(s) ]
    RSA [15 Certification Exam(s) ]
    Sair [8 Certification Exam(s) ]
    Salesforce [5 Certification Exam(s) ]
    SANS [1 Certification Exam(s) ]
    SAP [98 Certification Exam(s) ]
    SASInstitute [15 Certification Exam(s) ]
    SAT [1 Certification Exam(s) ]
    SCO [10 Certification Exam(s) ]
    SCP [6 Certification Exam(s) ]
    SDI [3 Certification Exam(s) ]
    See-Beyond [1 Certification Exam(s) ]
    Siemens [1 Certification Exam(s) ]
    Snia [7 Certification Exam(s) ]
    SOA [15 Certification Exam(s) ]
    Social-Work-Board [4 Certification Exam(s) ]
    SpringSource [1 Certification Exam(s) ]
    SUN [63 Certification Exam(s) ]
    SUSE [1 Certification Exam(s) ]
    Sybase [17 Certification Exam(s) ]
    Symantec [135 Certification Exam(s) ]
    Teacher-Certification [4 Certification Exam(s) ]
    The-Open-Group [8 Certification Exam(s) ]
    TIA [3 Certification Exam(s) ]
    Tibco [18 Certification Exam(s) ]
    Trainers [3 Certification Exam(s) ]
    Trend [1 Certification Exam(s) ]
    TruSecure [1 Certification Exam(s) ]
    USMLE [1 Certification Exam(s) ]
    VCE [6 Certification Exam(s) ]
    Veeam [2 Certification Exam(s) ]
    Veritas [33 Certification Exam(s) ]
    Vmware [58 Certification Exam(s) ]
    Wonderlic [2 Certification Exam(s) ]
    Worldatwork [2 Certification Exam(s) ]
    XML-Master [3 Certification Exam(s) ]
    Zend [6 Certification Exam(s) ]

    References :

    Issu :
    Dropmark :
    Wordpress :
    Scribd :
    weSRCH :
    Dropmark-Text :
    Youtube :
    Blogspot :
    RSS Feed :
    Vimeo : :
    Google+ :
    Calameo : : : : "Excle"

    Back to Main Page

    Killexams exams | Killexams certification | Pass4Sure questions and answers | Pass4sure | pass-guaratee | best test preparation | best training guides | examcollection | killexams | killexams review | killexams legit | kill example | kill example journalism | kill exams reviews | kill exam ripoff report | review | review quizlet | review login | review archives | review sheet | legitimate | legit | legitimacy | legitimation | legit check | legitimate program | legitimize | legitimate business | legitimate definition | legit site | legit online banking | legit website | legitimacy definition | pass 4 sure | pass for sure | p4s | pass4sure certification | pass4sure exam | IT certification | IT Exam | certification material provider | pass4sure login | pass4sure exams | pass4sure reviews | pass4sure aws | pass4sure security | pass4sure cisco | pass4sure coupon | pass4sure dumps | pass4sure cissp | pass4sure braindumps | pass4sure test | pass4sure torrent | pass4sure download | pass4surekey | pass4sure cap | pass4sure free | examsoft | examsoft login | exams | exams free | examsolutions | exams4pilots | examsoft download | exams questions | examslocal | exams practice | | | |