Atlantec 2017
Atlantec is an annual conference on Software Devlopment held in Galway. This year it took place in NUIG on May 25th. There was a host of great presentations covering the hot topics of Docker, Microservices and Machine Learning, while also branching out into the wider world of technology including Mars Exploration and Soft Robots to support Heart Functions.
Atlantec's roots
The combined festival-conference kicked off 3 years ago in GMIT with the aim to showcase Galway's diverse technology culture and to create a space for technology professionals to share their expertise. Atlantec has successfully achieved these aims and created a well rounded conference. Especially when combined with the relaxed and friendly atmosphere which almost manages to attract high caliber speakers on it's own.
Atlantec has been made possible by the founding and support of many local companies - but the core organizer and contributor is the Information Technology Association Galway (ITAG). They have done great work in promoting IT and creating a community for software developers based in Galway.
### The talks
I arrived eagerly with my notepad to pick up tips on Microservices, Docker and Machine Learning - all topics relevant to my current projects. Not only did the talks on these topics answer my questions and stoke my curiosity, but even those talks which were off topic to my interests were intriguing and eye opening.
Here are short summaries of the talks, in the order in which they were presented on the day.
#### Microservices: An Unexpected Journey
By Sam Newman of Thoughtworks
Microservices is a hot topic in the world of SaaS and cloud computing. Which is why it came as an eye opener how Sam showed it's roots in the Distributed Systems concepts of RPC and CORBA which stem from the late 70s and early 90s respectively. There are papers on the subject of splitting a monolithic system into multiple distributed components from the late 60s / early 70s, such as On the criteria to be used in decomposing systems into modules by D L Parnas.
It is a common theme in IT to reinvent the wheel because we dismiss relatively recent academic research as outdated in the fast-paced industry. But this wasn't my main take-away from Sam's talk. More important was the reminder that Microservies was invented as a means of simplifying development from a monolithic architecture to a service based one where individual services can be written and replaced quickly and effortlessly. I had forgotten this. My recent research into Microservices was focused on large scale queue systems such as Kafka and AWS Kinesis. But these facilitators of microservices are in and of themselves more complex and time consuming than maintaining the architecture they should replace. Sam's answer is to Keep it Simple, Stupid. Start with a simple queue/communication protocol and scale up to Kafka / RabbitMQ as required.
#### Bots & ChatOps
By Jose De Castro of Cisco
Jose gave a great introduction and overview of what ChatOps is and what advantages it brings to existing systems and stacks. In the past chat bots were rare due to the complex AI, machine learning and natural language processing needed for them. But now many PaaS & SaaS systems offer all of these as pre built solutions (including AWS, Google Cloud, Bluemix and notably Appen). There are also services which specifically cater to bot-builders: Hubot, Pandorabot and Facebook.
There are great advantages to using chatbots internally in your company to manage operations (aka ChatOps). These are accountability, auditablility and context. Having chatbots from chat rooms & channels control your operations means you will have an (auditable) chat log which shows who made a change (accountability) and when / why they made the change (context).
#### Soft Robot can Help a Heart to
By Dr Ellen Roche of Harvard
This talk was a departure from web technology and into some fascinating bio-mechanical engineering. People with heart problems, specifically severe dilated cardiomyopathy, rely on heart transplants as permanent cures. Many BTT (bridge to transplantation) patients need temporary aids while waiting on a heart transplant. The current solution is a HVAD (ventricular assist device) - a mechanical pump implanted into the left ventricle which aids in circulating blood around the body. One negative with HVADs is the risk of blood clots forming when blood comes in contact with the metal pump.
Dr. Ellen Roche has been working on an an alternative solution - a soft silicon sleeve which is wrapped around the heart. Inside the sleeve are multiple shaped smart material tubes which contract when pressure is applied. These are layered in multiple patterns to both squeeze and twist - thus mimicking the natural movement of the heart. A layer of sensors is also embedded in the sleeve which monitor the sleeves and hearts operation and can tweak timing and pressure based on this feedback.
I came to this talk with no knowledge of dilated cardiomyopathy oruser friendly HVADs. But after Dr Ellen Roche's engrossing talk I'm going to keep an eye out for more developments of her soft robot for supporting heart functions. It has already gone through animal based in-vivo trials and will hopefully be helping save lives in the near future.
#### Why Containers? Why Docker? Why Now?
By Phil Estes, of IBM
Docker has been the next big thing for the past three years. I've been rather stuck in the world of development and have stayed away from it so far. My knowledge (and frustration) of it can be summed up by this fantastic post by CircleCi.
Phil gave a good introduction to Docker - it's important to remember that while Docker is used like VMs, it is not true virtualization, but rather kernel level process isolation. It plays an important role in the evolving Cloud Native Landscape - Docker's popularity has permeated to most IaaS and PaaS services meaning with docker you are less tied to a single vendor and can easily migrated to those best suited to your needs.
Fig 1. The Cloud Native Landscape: A categorization of the most popular projects and startups in the cloud native space.
Docker isn't popular without good reason. Here is a summarized list of the advantages of Docker which Phil gave:
- Developer Agility: Less time spent setting up development environments and no more bugs due to differences in production and development environment.
- Security: Docker is secure by default. You need to explicitly open up ports to use them, and only need to open those which the specific container's application needs access to. A single container doesn't have access to other containers or the underlying OS.
- Microservices: It is easier to create and develop for a distributed architecture when you can use on of the many Docker orchestration tools to manage them (eg. Kubernetes, Mesos and Docker Swarm).
- Portability: Thanks to popularity and ease of use, you can reploy your containers to any popular IaaS / PaaS service.
- Standards: Docker's popularity has given rise to competitors like rkt. The Open Container Initiative prevent a schism in standards and needing to support many bespoke container implementations.
#### DevOps and the Cloud- Do your deployments in minutes not days
By John Tallon of Storm Technology
A lack of dev-ops is often the reasons for projects to overshoot their deadlines. It takes a lot of experience to properly estimate the time taken to test, deploy and handover a finished project.
John works for Storm technologies - a large, local business technology consultancy. He estimates that most of the time taken for release can be saved by following dev-ops standards. This is especially true for clients using cloud platforms which you can use during development. But even when clients require a self-hosted solution can the release be almost automated by supplying a prepared docker image and set of configuration.
A Continuous Integration system (CI) (eg. Codeship, CircleCI, TeamCity and Release Management) is a core tool for dev-ops. Tests are only good when run regularly to prevent them from becoming stale. A CI system will usually run all tests on every push to your repository. The next step is a Continuous Deployment system (CD) (all of the above CI tools also offer CD ) - this will run tests on push like a CI. Then if the tests pass it will deploy the new version to production.
Deploying early and often means that bugs due to differences in environments or in hosting the solution are found and fixed early in the process ensuring a smooth release - and a good customer experience.
#### A Community Enabled Technology Strategy
By Lorna Martyn of Fidelity Investments
Lorna Martyn gave a great insight into the woes of managing the technology strategy of large organizations. High level choices on which technology, standards and best practices to follow may seem like the domain of management, but they are often too removed from the ground forces to be in touch with the wider technology community.
Her solution is to create Employee Resource Groups (ERGs) for various technology sections. Then take input from the top practitioners in each ERG to form the technology strategy. Regardless of the organization's size (~45,000 employees in FI), such ERGs need to keep an eye on the wider community surrounding their speciality. Otherwise new developments and solutions could be missed.
#### D Programming - Design by introspection
By Andrei Alexandrescu of D Language Foundation (View Slides)
Andrei wrote the book Modern C++ Design where he coined the term Policy Based Design (PBD), back when Design Patterns were everywhere. With design patterns, the programmer was the code generator. With PBD, the programmer created the generator by using template meta-programming to define components / policies at compile time.
The iteration of this pattern is Design By Introspection (DbI). Andrei defines DbI as a similar meta-programming approach but with more control and plasticity in the code. Classes are composed not just by interfaces but by dynamic components which use introspection to find out what functions the classes they interact with support, and then dynamically configure themselves to suit these purposes. This can even go as far as only importing libraries when certain compile time conditions are met (eg. no need for a logger / performance tool if we are in the production environment).
This is where working on a language is useful - as D didn't initially support importing libraries from within functions. Thanks to Andrei this limitation was removed. While this is a dangerous feature, it has opened up the path for powerful composition via DbI.
Read more about DBI in this blog post by Andrei: Introspection, Introspection Everywhere.
#### Machine Learning Cognitive Services
By Gary Short of Microsoft
Machine Learning has advanced by great strides in the past decade. A great example for anyone to try is How old do I look?, where you can upload a photo of yourself and it will guess your age. Apps like these are improving quickly because there is a huge online community to draw training data from, and thanks to the machine learning services offered by Paas & IaaS systems.
Gary showed off the wide range of offerings from Microsofts Cognitive API Services. Not only do the supply the processing power and algorithms, but you can use their models created from extensive data sets. The face & age detection shown in "How old do I look?" is available via the Face API which isn't limited to age, but also detects hair color, gender and emotions.
Once again the mantra that with great power comes great responsibility is repeated. By making complex machine learning applications more accessible and easy to build, we need to be aware of it's shortcomings. It is easy to create self confirming models by focusing on the wrong attributes or testing data. This would make it easy to prove any theorem and further personal agendas.
#### PRIMA Mars Expedition 173
Dr Niamh Shaw was this years motivational speaker. She spoke of her long time dream of being an astronaut - and how sadly it is unlikely to be fullfilled due to her qualifications and age. But this hasn't quenched her optimism and enthusiasm for space. She instead has focused on combining her passion for space with her experience as an artist, aka STEAM - putting the Arts in STEM.
She has created various theatrical performances (like My Place in Space) to inspire the next generation of astronauts. Dr. Niamh Shaw has gone as far as attending the simulated mission to mars at the at Mars Desert Research Station the Utah desert in January. Now her sights are set on the underwater research station Aquarious via the NEEMO mission and Analog missions to the Antartic.
She will be at this years Internatial Space University's Space Studies Programme in Cork Institute of Technologies