Sunday, 28 May 2017

GIDS (Great Indian Developer Summit) 2017 - My Experience

GIDS has established itself as the gold standard conference and expo for the software practitioner ecosystem. Over 45,000 attendees have benefited from the platform since its founding in 2008. I have got an opportunity to attend world class summit GIDS-2017 first time. I was able to meet lot of enthusiastic developers from different parts of the country. Overall I have experienced great learning, wonderful speakers and cool products showcased in this summit. I would like to share my GIDS learning experience in this blog.  Also, I am curious to share my photo that I clicked during lunch time in GIDs Bangalore




It was a five day summit and each day has a dedicated stream to be presented like Web & Mobile, Java & Dynamic Lang,  Data & Cloud,  Devops & Architecture. I have attended Devops & Architecture stream where there were around 20-30 presentations based on this stream. Also there were different companies who showcased their products and new ideas. Listing couple of those products and providing references to get more detail.

  • Salesforce Heroku: Heroku is like Platform as a Service where you can deploy and run applications.
  • Salesforce PredictionIO : PredictionIO is a Machine Learning framework that you can run on Heroku and use for tasks like intelligent recommendations based on users’ past actions. 
  • Flock: A faster way for your team to communicate.
  • Zoho Creator: Create custom apps for your unique business needs. 
  • NodeRed: NodeRed is a programming tool for wiring together hardware devices, APIs and online services in new and interesting ways.
  • MetamindIO: Smarter AI for developers.
  • NVDA: NVDA (NonVisual Desktop Access) is a free “screen reader” which enables blind and vision impaired people to use computers. It reads the text on the screen in a computerised voice. You can control what is read to you by moving the cursor to the relevant area of text with a mouse or the arrows on your keyboard.
  • Chaos Monkey: Open sources cloud-testing tool.
  • CUBA PlatformCUBA Platform is an open source framework for the rapid development of enterprise applications. 
Let me also share some key points that I found great during presentations.

Evolutionary Architecture ( By Neal Ford)
For many years software architecture was described as the 'parts that are hard to change later'. But then microservices showed that if architects build evolvability into the architecture, changes become easier. World is moving towards micro services based architecture and avoiding to have monolithic which becomes Big Ball of Mud later. Common concerns of a product like notifications, events, caching, security should not be directly plugged but its good idea to have all these as services which can be de-plugged or replaced easily. To get more insight about this talk, you can refer this link.

Journey of Enterprise Continuous Delivery - ( By PayPal Developer)
In this presentation, one of the developer from PayPal has demonstrated how PayPal achieved continuous delivery for a scale of 3500 dev, 2K+ applications, 15K deploys a month? And he shared comparison between old vs new deployment life cycle benchmarks which you really find verify impressive.  


2013
Today
Build Time
Hours
Minutes
Release Duration
5-6 Days
< 10 Minutes
Team involves for Release
Release Management
Release Engineering & Dev Teams
Any individual (on a single click)
Feedback time on quality
analysis
Minimum 1 day
< 30 Minutes

Due to limitation in different continuous integration tools like JenkinsGO and Bamboo, PayPal has decided to built its own in-house tool ECD (Enterprise Continuous  Delivery) using Sprint Batch, Jersey and AngularJS with existing capabilities of Jenkins. ECD has got its additional features like automated creation flow, flexibility to extended steps, parallel processing, simple user interface and YAML based definition. PayPal has got continuous and fast delivery processing after adapting Micro Services Architecture, Docker Cloud Platform and ECD (in-house continuous delivery tool). Most of the IT organizations are looking for continuous and fast delivery and thinking to avoid traditional monolithic architecture pattern. 

Designing Systems for the Remaining 15% of Population
According to WHO, there are around 1.2 billion people with disabilities in the world who face various difficulties in working with digital systems. If as IT solution provider, we can remove the barriers in accessing these systems for users with disabilities, we can expand our markets. Such fixes would not only expand markets for users with disabilities, but many of these fixes would improve usability for people without disabilities. 

How as developer we should contribute:
  • Consistent Navigation
  • Simple interface (well spaced UI controls, good gap between UI controls, simple language)
  • Device independent input (key board uses, touch screen etc.)
  • Multi-sensory (text alternative for images, contrast, caption/subtitle/transcript )
  • Problematically access (for web - HTML structure as indented, for desktop - using standard controls etc.) 

From Spaghetti to Microservices Architecture ( By Stefano Tempesta )
This session explores the agility of architecting fine-grained microservice applications that benefit continuous integration and development practices, and accelerated delivery of new functions into production, with the help of Azure Service Fabric. It also presents the Publish-Subscribe design pattern of an enterprise-level service bus built on Azure Service Bus, which guarantees message queueing and delivery, on-premises and in the cloud.


My Takeaways from GIDS
  • Evolutionary architectural practices and key notes by Neal Ford
  • Latest technology trends for continuous delivery 
  • Microservices architecture and it's challenges
  • Considering designing aspects for users who are differently abled
  • Different products/ideas (listed above) which are showcased
  • Sample project creation on Salesforce Heroku platform
  • MEAN vs LAMP architecture
  • Google's AMP (Accelerated Mobile Pages)
  • Basics of lambda architecture, batch/speed/serving layer and VoltDB

 At last I would like to conclude, overall it was enriching experience where I got to know different architectural aspects, latest technology trends and different new products in the market.