Meet Johnny – a full-stack Java developer with 5+ years of experience under the belt, M.Sc degree and ‘get sh%t done fast’ mentality. Although Johnny possesses exceptional technical skills, Milton – his manager, doesn’t promote him, no matter how hard Johnny tried and how many late nights he has spent polishing his coding skills. Unfortunately, there is something important that Johnny doesn’t understand. Something that stops him from becoming successful. Together with Johnny, you will walk the thorny road to his remarkable career as a Chief Software Architect. The road full of struggles, discoveries and actions that may or will influence your professional life.
by Dov Nimratz
Continues Integration is essential, but is it enough to have Jenkins or TeamCity? Unfortunately no – we need tools and methods to get efficient delivery workflow. Three stones, such as monolithic code + test suites + deployment pipeline should be faced.
We will speak about Test Pyramid and Trunk based development. Why may automated tests does not work in reality? Do we need Manual testing and in which step? What about Acceptance and Capacity test? How to put all of this in one deploy pipeline?
by Igor Tsinko
You start new project or working with existing one and think: “Hey, I could use microservices, it is something new, that resolve all my problems: flexibility, scalability, modularity…”. It is not working like that. In this speach you will not hear how good or bad Micro Service Architecture. Real use cases, pros&cons, from real practice. Only best practises. This speach should gives you one more tool into your toolbox, with clear understanding where you can use it and cases, when you should avoid MSA.
Our minds are bright, our thoughts are clear, our eyes are lit with passion, but we’ve got no time!
We thought frontend churn was terrible but DevOps space is so much worse! What tools to use? Which direction to take? What movement to follow? Every single day new tools emerge with a promise to solve the challenges we have and the ones we don’t know we have! We don’t have enough time to learn to use them properly, and each time we try them they either don’t work as expected, or do so inconsistently. Yet at the same time we face tight deadlines and have work to do!
The task at hand is clear: we’ve got a pile of code, and we want to run it on a bunch of servers. I will show you how I do it with as little sweat and tears as possible.
by Anastasiya Aseeva
The practical story telling how Devops changed the culture of quality in the Bank. Recently Devops became mainstream topic. But only few people have a deep understanding how to apply it to the process of software quality assurance. Some believe that the Devops kills manual testing.
I will talk about changes it makes to the role of QA engineers themself. The discussion main point is NOT about tools or technologies. It’s NOT about the “silver bullet” for your problems with the quality of products.
Instead, I will show you an integrated approach which we used for quality assurance. It allowed us to significantly reduce the cost of finding and fixing defects. This approach has also accelerated the development and delivery value to our customers and made the whole process more transparent and predictable.
by Kfir Bloch
Microservices are the new black. You’ve heard about them, you’ve read about them, you may have even implemented a few, but sooner or later you’ll run into the age-old conundrum: How do I break my monolith apart? Where do I draw service boundaries?
In this talk you will learn several widely-applicable strategies for decomposing your monolithic application, along with their respective risks and the appropriate mitigation strategies. These techniques are widely used at Wix, took us a long time to develop and have proven consistently effective; hopefully they will help you avoid the same battle scars.
A guided tour of using Docker and other best-of-breed tools to deliver quality code from developers to production in a fast and scalable process. What does a modern pipeline look like in the context of Docker?
Target audience: new and intermediate engineers working with/interested in Docker.
by Rino Montiel
Presenting the infrastructure work that we did to support the launch of The Roll, our smart camera roll app.
We’ll give a brief overview of deep learning at EyeEm, and how we use it to build our products. This includes how we use it for both search, image captioning and aesthetic ranking.
We needed to build a system, exposed through an API and tracked through a data pipeline that could run our deep learning models on uploaded images, return a variety of data to the users (keywords detected in the photo, photo scores) and track all the data for later analysis.
We’ll talk about how we optimized for throughput by load testing memory pressure on the GPUs we used on AWS instances, and how we go from training a model to putting it in production.
On launch day, we were expecting to have to process around 500 photos/sec. In reality, we peaked at around 850 photos/sec, without any impact on performance.
by Aviran Mordo
Wix.com started the journey toward DevOps and a microservices solution about 5 years ago when we switched from a monolithic application to a microservices-based system—a transition that took two full years to complete, with many lessons learned along the way. Today, Wix successfully operates over 200 microservices on a battle-tested production environment. In this talk, we will cover why Continuous Delivery and DevOps are important requirements for microservices, discuss guidelines for a good microservice architecture, explain why YAGNI and KISS are important and how operational concerns (DevOps) affect the design of a microservices architecture, as well as give some recommendations on the best way to transition from a monolithic to a microservices architecture.
by Igor Fesenko
When an application has been released to production or a new feature is done we know that our work is not over. With your application being used by real users, now is an ideal opportunity to collect valuable data.
In this presentation Igor will show how easy it is to instrument your app and get ambient monitoring out of the box, with almost zero effort. Also Igor will demonstrate how you can quickly build monitoring charts, dashboards, alerts and configure diagnostics logs to get a 360° view of your application. This presentation unlocks the best practices and the essentials based on real world stories from his practical experience to find performance bottlenecks, random exceptions, usage patterns of end users, availability and so on.
During a session Igor will give you a sense of metrics importance through the possibilities of New Relic and Application Insights tools and show few interesting stories.
Of the original XP practices, the one that seems the most difficult to get right is the on-site customer. In the original XP team, this was an actual end-user of the, internal, system that was being built. How did the Product Owner turn into a project manager working down a long, predefined backlog?
The Product Owner role quite often has devolved into a step in a waterfall process. A gateway, or proxy, sometimes a firewall, towards the rest of the organisation. But customer feedback is a fundamental basis of any Agile process.
I will discuss how we can use clear goals, captured in actionable metrics to guide our teams in growing the software necessary to reach those goals.
I’ll show how to get development teams to demonstrate their progress based on business metrics, not just features completed. To strategically align development with the rest of the company. And how this allows you to really use the brightest minds in your organization for innovation.
“To be tested a system has to be designed to be tested”
Eberhardt Rechtin, “The Art Of System Architecting”
Testing is one of the main activities through which we gather data to assess the quality of our software; this makes testability an important attribute of software – not only for development, but also for maintenance and bug fixing. Design for testability is a term that has its origin in hardware design, where the concept was introduced in order to make it easier testing circuits while reducing the costs of doing so.
In this talk I’ll show how to translate this concept to the software domain along with the consequences on various aspects of the development activities, both from the technical point of view (e.g., design, code quality, choice of frameworks, etc.), and the product management point of view (e.g., management of team dependencies, delivery time, costs, etc.).
I’ll provide examples based on real world experience, both for the technical and the management aspects. Last but not least, there will be code!
by Sergey Pak
In early 2006 JetBrains decided to create its own solution for Continuous Integration – TeamCity.
We will start with preconditions of this decision and main concepts of the product. Then we’ll discuss common problems that we and our customers have faced over the decade, trends and plans for the future.
Finally, we’ll look into installation that builds all Jetbrains products and find out how TeamCity continuously delivers itself every day.
TDD is well known approach to develop more clear and less buggy solutions, completely covered with tests as a bonus. But what about design? Some people think that TDD also helps design to emerge as implementation grows, so there will be just enough design in place when all cases are covered. Others think that without general design skills and experience output from TDD will be a garbage from design perspective. In this talk we will try to cover this topic in all details, focusing on TDD usage at different levels and with different styles.
The talk is based on what we currently use in Sky to deliver in a continuous fashion one of our platforms in Sky.
In short, it covers the following topics:
The demo will consist of taking a simple app from the first commit and all the way through the production deployment pipeline.
by Arkadiusz Głowacki
How do you take a huge java monolith application and put it into Cloud? How do you provide independent continuous deployments of OSGi plugins and make sure everything was well tested together? How do you keep track of 1000 moving parts and still stay sane?
I will tell you the story how JIRA team answered those questions, what were the biggest challenges and easy wins. Presentation will be full of examples how we do things in JIRA like testing, branching, releasing and deploying, what tools we use and how we use them, how we keep our code in good shape and deliver it to almost 80,000 JIRA instances.
This will be continuation of story presented by Wojciech Seliga on XP Days in 2014. If you are interested what changed since then (even more tests and completely new challenges) I will gladly have you in the audience.
Live coding session that shows step-by-step how to build Serverless Architecture webiste that will be higly available, scaleable across multiple regions, backed with git as CMS and cost to operate less than 5$/mo. We will review Serverless Architecture style and address some of important gaps of this architecture.
by Helen Beal
DevOps is not simply building a continuous delivery pipeline and many people feel that they’ve been ‘doing’ devops (or trying to!) for many years. So why, exactly, has the term received so much attention? What really is it? In this talk, Helen explores the devops trend, its roots and history and its purpose as a transformational, evolutionary movement to make better software, faster and more safely. She will discuss its relationships with Agile, Lean and ITSM and review how organisations have successfully, and not so successfully, used devops to elevate the way their business delivers innovation to their customers.
Implementing a new architecture into existing project doesn’t have to mean a “feature freeze”. By checking a success story we will see, that in may be a transparent process, that won’t harm, neither slow down the development process. Additionally, we will learn how to prepare your code to move to microservices and reactive microservices architecture in future.
Metrics @UBER is a first class citizen. Mantas in his talk will cover metrics collection, presentation and alerting based on metrics. It is all about how they deals with the scale in incredibly fast growing company. He will include details on the tools Uber currently uses, as well as their painful migration path from graphite based solution. The speaker will show their build-in-house query language based on tags they are using to query metrics. Mantas will share his experience building, migrating and supporting metrics system at the fastest growing startup in the history.
When you work in a small collocated team many engineering practices and approaches are relatively easy to use and adapt. In large project with many teams working on the same product this task is not so simple. I want to share experience report in implementing Code Review practice in big product development team (more than 150 people, 10+ feature teams). In this talk we will review what approaches works in such setup and what don’t work, what tools and additional practices are needed to support Code Review and make it more effective, what difficulties and blockers will you probably see in the real life cases, what useful metrics could be produced by this practice.
DevOps is the hottest topic on the market. Everybody are adopting DevOps, however many starting to do mistakes. This talk is about experience gathered during consulting DevOps tools and practices in multiple projects and locaitons over the last years. We will review common anti-patterns and proposed solutions.
by Vsevolod Poliakov
Engineers like to be interviewed at Grammarly, and many of them say it was the best interview they ever passed. So they ask me to share my interviewer experience. I tried to make that topic interesting not only for DevOps\SRE hiring managers but for every engineer. DevOps\SRE interview will be just an example how you can make your interviewer skills better.
Software development has evolved. Agile is now the de-facto standard. The role of an architect in an agile project is very different than the typical role in a more classic waterfall approach. Using an updated interpretation of ‘viewpoints and perspectives’, this talk will demonstrate how to make rapid, agile delivery sustainable. These viewpoints and perspectives will be linked to easy-to-produce models that can be used immediately in your projects. The talk will provide examples on how to determine which models are architecturally significant and worth the effort.
Developers have always been very important stakeholders of an architectural description. A good agile architect needs to strive for consensus and buy-in.
We all have seen our share of bad code and some really good code as well. What are some of the common anti patterns that seem to be recurring over and over in code that sucks? By learning about these code smells and avoiding them, we can greatly help make our code better.
What is necessary for CI for microservices? Jenkins 2.0 with pipelines looks like a good option for that. But is it enough? Let’s add Docker for containerization. We think it could be even better with Kubernetes. The presentation will provide you how to build CI for microservices from scratch with those tools and describes some best practices applicable for Microservices CI.
Did you know that Netflix has now fully transitioned to the cloud. Ever wonder how you could do the same or sell it to your boss/clients/your pet? Do you often wonder how to chose the best provider out of all the different players in the market.
Well wonder no more. Join Paul as he guides you through how to build infrastructure on 2 different platforms. Watch as he uses both AWS and Azure to show you easy it is using the principles of infrastructure as code.
By the end of this session, you will have enough guidance and confidence to start automating your own infrastructure and be less afraid of that big bogeyman VENDOR LOCKIN.
Over the last two years we’ve completed over 20 projects, wrote over 300K lines of Java code, closed over 20K tickets, pull requests and bugs, assembled together over 200 senior programmers and made profit. We’ve done all that without a single meeting, Skype call, or a Slack chats. We barely knew each other aside from GitHub, where all that development happened. At the presentation I will disclose a few of our dirty secrets.
This talk is about improving CI practices building pipelines. It will cover old practices and how they can be enhanced using custom DSL, code review and SCM.
by Kfir Bloch
In this live coding session in Scala, Kfir Bloch (head of back-end engineering at Wix) will showcase how to build a full-blown feature in Scala, while maintaining the principles of TDD and Clean Code. We’ll start with some simple scaffolding and build the feature in its entirety: defining the user-facing API, writing tests outside-in with all of the requisite building blocks (collaborators and matchers), development-refactoring cycles and ending up with a clean codebase.
11th–12th November 2016