Clouderati on DevOps #AWS
Special DevOps for #AWS Re:Invent yearly cloud event. We will discuss the magic of CrowdChat on AWS
   4 years ago
#devopsClouderati on DevOpsThought leader conversation on DevOps and Cloud. People and tools - good patterns v. anti-patterns
   4 years ago
#DevopsClouderati on DevOps #AWSSpecial DevOps for #AWS Re:Invent yearly cloud event. We will discuss the magic of CrowdChat on AWS
John Furrier
Q4: Whats Elasticbeanstalk or EBS? Why do you guys like it? What do you do to add value to it for CrowdChat?
Drew Bratcher EBS adds flexibility, simplifying automation of deployment across many machines and scalability based on custom triggers
Drew Bratcher By comparison, services like heroku can get more pricy and more difficult to maintain. Also we already used many Amazon services, such as sqs and s3
John Furrier Do you guys leverage both Redis and DynamoDB? how do you get real time working so great? That's a BFD (big freaking deal)
Crowd Doc Abstraction from gears which we don't have to handle. It is directly integrated with our code on github. Devs can focus on writing code rather than spending time managing and configuring servers, databases, load balancers, firewalls etc.
Drew Bratcher We maintain our custom scalable Redis in EC2, DynamoDB did not have the data structures and pubsub support needed for our channels and realtime events
Sirish Raghuram @drew_bratcher Do you worry about getting locked in to AWS, if you are integrating with all of their higher level services? A lot of folks seem to try to insulate themselves using libraries such as libcloud / jcloud.
Crowd Doc We primarily use Redis because it is more real-time than DynamoDB and it supports variety of data-structures and bigger data values for keys.
Drew Bratcher @sirishraghuram it's true a bit of the code would need to be rewritten, but I like to think our code is modular enough that it would simply be a matter of rewriting a few files and ip references
Drew Bratcher @sirishraghuram In general liblcoud/jcloud seems like extra overhead and code that you would have to maintain. Theoretically you should not be switching clouds often, that'd be couterproductive
Crowd Doc @sirishraghuram Thats no real insulation with any library. Elasticbeanstalk does not require us to code anything differently. It just makes our deployment and maintenance easier
Crowd Doc @sirishraghuram ELB also integrates with Docker which people now believe is most portable/insulated solution
Sirish Raghuram @CrowdDr My point wasn't about ElasticBeanStalk in particular but a broader question around AWS Service APIs. We internally use tools like boto and when it came time to running our dev workloads against #OpenStack, it took longer than ideal.
Drew Bratcher @sirishraghuram Oh yea I hate boto, I've tried to use it in the past with much pain. In general node has npm modules which make our life a breeze. Other clouds may not have as much support there as AWS of course
Sirish Raghuram @drew_bratcher Node is awesome. Just npm is heaven for anyone who's had to deal with Python packages. I wish we could do a lot more node!
John Furrier
Q5: What happens after a chat? Explain the algorithmic social network analogy in crowd interactions?
John Furrier what are you most proud of with this product in AWS given only seed funded?
Crowd Doc We compute who was the "CrowdCaptain" based on various signals like voting, frequency of posts, affinity. We send all of the data to our data backend where organizations/chat owners can analyze the chat in great detail.
Crowd Doc We are now ready to even host a chat with millions of lady gaga fans. Our scale speaks for itself :)
Crowd Doc Our backend has been battletested to gather feeds from NFL like events
Crowd Doc It was told that we are already the GNIP's top rule user (when went there and asked for bumping up our rule limit)
Crowd Captain I'm proud of the team building this awesome app. Tech challenges aren't obvious unless you're a alpha CS geek
Crowd Captain I'm proud of the fact that IBM is using it because they are the leader in #socialmedia #socialbusiness example right now at https://www.crowdcha...
Reimagining Work
An open world of collaboration has allowed us to reimagine the way we work.
Jim Canto Wishing I was an Alpha CS Geek now. :) You guys are doing a great job. Cross-platform capabilities are obviously challenging. Can't wait to see where it all goes from here. I'll be along for the ride... guaranteed.
John Furrier
Q5: Why did Crowdchat choose Redis? What did you look at?
John Furrier adding this to the question: How is Redis deployed in elastic beanstalk for CrowdChat? Is this unique?
Crowd Doc Redis is 100% in-memory and is highly performant.
Drew Bratcher We chose redis over the myriad of options due to its performance and data structures. We use it as a primary data store which is rather unique as most people use it solely for caching.
Crowd Doc It offers more advanced data structure support and bigger values to its keys (compared to DynamoDB)
Drew Bratcher We maintain our own scalable redis system in ec2, while it's not managed with elasticbeanstalk yet there are plans to dockerize it.
John Furrier What kind of performance are you seeing? Is scale an issue?
Drew Bratcher our setup is loosely based on how twitter works, with our own improvements of course
Drew Bratcher the database performance has never been a problem, and we could theoretically scale to the size of twitter with our planned architecture
Drew Bratcher
@sirishraghuram Is there any reason we should consider switching to platform9 from AWS?
Sirish Raghuram It comes down to whether you feel the need for a private cloud. AWS is a fantastic platform to start, but in our experience it is expensive. If you are spending $100k per month, you are likely better off with some private cloud.
Sirish Raghuram And Platform9 is probably the easiest and most cost effective private cloud option there has ever been.
John Furrier @sirishraghuram Zynga is switching back to AWS after leaving to build their own data centers. CIA uses AWS. Integrated stacks are the key to #devops imo
Sirish Raghuram @furrier For every example that is switching back, there are probably 10x who are not going back once they hit scale. I agree about integrated stacks though. The truth is that Private Clouds have been really hard so far. But that is changing now.
Sirish Raghuram @furrier CIA doesn't use AWS exclusively, they also use a massive private cloud that is far bigger than their AWS deployment.
John Furrier @sirishraghuram Apple uses #AWS for icloud what tech do you have to get developers excited? IBM is trying hard with bluemix now too so is HP
Drew Bratcher @furrier is bluemix a private cloud? or just an AWS clone?
Sirish Raghuram @furrier Being based on #OpenStack, we're an API first system. So, Infrastructure as Code, just like with AWS. Within 5 minutes, you get Compute and Image service APIs working. From there on, you can provisioning app stacks of your choice via code.
Sirish Raghuram @furrier @drew_bratcher Btw, we use AWS internally as well, and we're fans as well. I am just not crazy about the bills :) We run our production servers on AWS, and all dev/test on Platform9's dogfood environment.
John Furrier Bluemix is playing catchup and trying to be hybrid AWS and Enterprise ready. AWS is running away with the public cloud. Google is the only thread to it. Microsoft won't get there in my opinion
Sirish Raghuram
@drew_bratcher @crowddr I assume you see a lot of variability in load and traffic? Can you talk about how your system adapts -- is this primarily via auto-scaling? #devops #scaling
Drew Bratcher yup, EBS allows us to set triggers, so once we start seeing traffic and load (generally on the node machines) it's set to spin up another. Minimizing spin up time has been something we focus on as it increases the responsiveness of the sys
Drew Bratcher once the load decreases for a time, we spin machines down. And we get alerts whenever these events happen via email, so we can keep an eye on any unusual behavior
Crowd Doc Adding to Drew, we don't use sticky sessions, thus it helps to evenly distribute both old and new load as it autoscales.
Sirish Raghuram @CrowdDr Do sessions move around your servers as well?
Mike Onsing This is an amazing application. I'm bringing it to all my clients and watch my competitors in my rear view mirror
John Furrier
Q3: How are the Linkedin/Twitter/Facebook users able to update from any network so real-time? What's the big technology challenge?
Crowd Doc We use 100% Asynchronous code cc /@drew_bratcher
Crowd Doc The biggest challenge is handling the mayhem that results due to such massive parallel execution paths.
Drew Bratcher Maintaining stability while trying to get multiple oauth network api's to play nicely with each other has also been a challenge...
John Furrier Why is it so hard to unify the users in real time on one thread? What is the large scale problem you solve? What are some benchmarks?
John Furrier
Q1: What makes AWS so unique for the CrowdChat app? What's the high level advantage of using AWS
Drew Bratcher AWS services and abstractions have really allowed the development team to focus on features rather than maintenance and classic IT problems
Crowd Doc We use AWS application container extensively. It boxes our server and our software and autoscales. It makes us 100% infra as code.
Drew Bratcher from a developer's standpoint it does a great job of letting us focus on code rather than system configuration and scale