Created
September 1, 2015 10:47
-
-
Save rpt/2aaa02c8fb644bd3a737 to your computer and use it in GitHub Desktop.
This file contains hidden or bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
Introducing modern Java stack to a large scale, multi-technology distributed system. | |
It appears that this may be a homepage or an index page with non-article content. To accurately view it, you may want to switch to the Full Web Page view. | |
If you know there should be an article here, help improve the article parser by reporting this page. Thanks! | |
Why would a company want to introduce new technology - and in particular a modern Java stack - to a well run, scalable infrastructure with full-fledged SOA? | |
We made this exact decision at Base Lab at a point when our product already comprised over 80 microservices running on approx. 380 EC2 instances and when we had been pushing new code to production about 50 times each day. A bit of context is necessary to understand the reasoning behind this choice. So let’s put things into perspective. | |
A little bit of history. | |
Five years ago we realized that business software is broken and we set ourselves on a mission to fix that. | |
It’s been quite a ride for all of us. And if there’s one thing we know for sure after these five years, it’s that we’ve hit the nail on the head. The product we’ve built from scratch is now used by 5,000 paying businesses across the globe, the company has grown from 5 to over 110 people in Kraków and Palo Alto offices, and we did over 60,000 production deployments. | |
So here we are, five years gone in a heartbeat. And yet there’s much more to come. Right now we’re entering the next stage of our growth. We’ve raised over $23M from the world’s top investors that previously backed companies like Dropbox, Facebook, Skype, to take our product to the next level. We’re leading the Intelligent Sales Productivity space that rapidly dethrones the fossilised CRM space. | |
We intend to seriously shake things up. We build essential tools for businesses to help them create more value for their customers. Our mission is to make sales teams 10x more productive. | |
In order to sustain - and to actually accelerate our growth further, we invest in carefully selected technologies. Java has the perfect balance between the productivity it offers and the great talent in the market. Furthermore, it thoroughly fits our… | |
High performance culture | |
A culture where at any given point in time, every team member focuses solely on the right thing - creating the most value for our customers, having all the means to do that in the most effective way - tools, skills and environment. | |
High Performance Culture ignites at the intersection of our values and technology. | |
We’ve built an environment where independent, smart, driven, responsible people can thrive. Where analytical and critical thinking, ruthless pragmatism, 100% focus on creating value reign over politics, BS meetings and bureaucracy. Only results matter. It's null till you ship it - if it is not in our customers’ hands, it doesn't matter. | |
Technology is critical in enabling robust value creation and shipping extraordinary experiences to our customers. We carefully select all the bits and pieces, and always fiercely debate over their short- and long-term payoffs. | |
Distributed system / SOA | |
This was an upfront, calculated investment that has generated great returns. The biggest one came from the business logic and code encapsulation into small, manageable, easy to grasp, reusable parts. This gives us a pretty good development pace and organizational clarity. | |
The second biggest one comes in the form of shielding the technology stack with functionality and data behind a unified externalizable service interface and a unified communication layer - network. | |
Right now we’re pretty much technology agnostic and can build services in the languages of our choice - Java, Ruby, Python or .NET :). | |
Cloud | |
Every person and organization has a limited amount of energy at their disposal. The question is if it's better to dedicate this energy exclusively to one thing or to do multiple things at a given time? Basically it means that you can do one thing with an efficiency of 100%, or five things with an efficiency of 20%. I think we can agree that’s a rhetorical question. :) | |
We went ahead with Amazon Web Services. It gives us a lot of flexibility and takes away the pain of managing physical data centers, allowing us to fully focus on building the best product possible. Infrastructure is no longer a burden, it’s an enabler. Almost infinite CPU & RAM & IO are within our reach at all times. | |
PaaS & Continuous Delivery | |
Deployment of any service including the freshly baked ones takes 5 minutes on average. Is that for real? We have our own enterprise-ready PaaS that enables that. Allocation of new instances, attaching to routing, failover, monitoring and redundant services, and health-checks – all of these happen automatically. | |
This, together with a DevOps culture, make shipping code 50 times a day possible and, more importantly, enjoyable. So far we‘ve reached 60,000 production deployments. | |
How do we intend to build the Java stack? | |
We plan to build a modern Java stack at Base Lab using the microservices based approach, which is flexible and easily scalable. This derives from the fact that we now need to put the key elements together in a way that will be able to serve millions of users in the near future. | |
To give you a taste of what we’re investigating, we’re currently looking at Java 8, Dropwizard, Gradle and Spock. We believe that Java 8 should enable us to build world-class industry-strength web services. Dropwizard would step in to serve RESTful web services and glue the pieces together, while Gradle would help us with dependency management and build automation. For testing and specification purposes, we’re looking at Spock. | |
But we’re going to do a lot more research (e.g. we’re currently looking at Netflix’s experiences with RxJava), before final decisions are made and we’re ready to roll. The guiding principles for the tech selection will be making sure we enhance developers’ productivity, keep the stack light-weight, integrate and deploy to production at lightning speed. | |
As you’ve probably figured out, it’s uncharted territory for us, so we’re already excited about all of the architectural choices we’ll be making! | |
Join the journey! | |
For all of us here in the team, Base is the most ambitious thing we’ve ever tried to build. We stand a real chance to create a multi-billion dollar organization and a product that will bring a lot of value to millions of people around the world. | |
If you’ve ever dreamed about building an amazing product that thousands of people love and use every day, and if you feel like you want to be a part of what we want to achieve, just let us know. | |
There will be a couple of good opportunities to meet us and find out more about Base Lab over the next weeks: | |
the JDD Conference on 13th-14th October in Kraków - here you will get a chance not only to meet us, but to code with us and win a cool t-shirt! |
Sign up for free
to join this conversation on GitHub.
Already have an account?
Sign in to comment