There was DockerCon US 2016 in June in Seattle [http://2016.dockercon.com]. Docker community grows from year to year, and this is the largest Docker-centric event. There are a lot of news announced during the sessions, plenty of use-cases described, talks about success stories from enterprise level projects to middle-size Software as a Service solutions.
There was announced new version of Docker 1.12. It should be released in several weeks. There will be built-in Orchestration and Docker Swarm.
Orchestration is a set of duties for installing, updating and maintaining your infrastructure during lifetime of the application. It doesn’t seem a problem in case of several servers, but if you have more systems to hold under control in your Software as a Service project, then it would not be so easy. Orchestration have to be useful and simple. To achieve both of those goals, the orchestration is built-in into new Docker version.
Docker Swarm is a technology to install and maintain a cluster for Docker. Several systems may be joined together and treated as the saem Docker container. There are Swarm manager and worker nodes. They are communicating in secured way via TLS transparently for software developers. We can use docker CLI to create a swarm:
What is the criteria for professional software developer? One of the best answers to this question is “to be smart and get things done” [http://www.joelonsoftware.com/items/2007/06/05.html]. On the other hand, emotional intelligence is very important. Software developers should be in contact with all stakeholders of the project, like clients, UI/UX designers, testers and even other developers. There are pretty specific forms of communication in Application Development as a process. It should be effective at line of share knowledge, catch problems, prioritize features to implement.
Share the document
In case of remote collaboration, first of all, it needs to have ability to work on the same documents and artifacts. Google Docs is a set of online office applications, that may be treated as substitution to standalone MS Office package. It allows view and edit formatted documents and spreadsheets remotely by distributed teams online with adding comments to appropriate places in the document.
Share the desktop
The most effective way to describe a bug or case is to reproduce it visually. There is no problem to look at screen if 2 or even more persons are in the same office place. It’s not so easy to provide demo remotely. In this case developers use online screen sharing tool. There is well-known GUI tool Chrome Remote Desktop [https://chrome.google.com/webstore/search/remote%20desktop] by Google. It’s implemented in the form of browser extension, so it’s available for all platforms. It’s very similar to Windows Remote Desktop. Windows Remote Desktop was designed a lot of years ago for remote access to Windows Servers and PC’s, but Chrome extension is for online screen sharing among 2 users. Skype messenger also provides this functionality. It’s possible both to view a remote display and grab keyboard or mouse input.
There are a lot of hype around containers as a new best technical approach for hosting, development, deployment and testing. Docker [https://www.docker.com] is the most popular container-based solution.
Nowadays, software developers have a wide range of programming languages, frameworks and other tools to be used to implement various solutions (static web site, web service, analytics database, background workers, queues, etc.). But wait, development is only half of the story. DevOps guy checks out the solution from the repo to deploy it on the server or just to test it on another machine. “Dependencies hell” and other pure technical issues may turn this process into very complicated quest with bunch of traps. On the other hand, there would be many target platforms for deployment (development PC or laptop, cloud hosting, domestic cluster, etc.). Each of platforms may have its own additional deployment and configuration steps. The problem is a huge number of cases (the cartesian product of two sets: development stacks and hosting platforms) both the software developer and the systems administrator have to care about.
Container is a solution
The idea is not absolutely new. In the middle of previous century the trucking industry had almost the same problem of 2 sets: different sizes and shapes of cargo and plenty of transportation approaches. Standard transport container was introduced as universal wrapper for any kind of goods. The trucking industry operates in terms of these standard containers. Software as a Service applies the same idea. Docker helps developer to pack any application with all its dependencies into container and be sure it can be runned anywhere. On the other hand, system administrator have to worry about container environment configuration only and be sure it can run any application within a container.
Nowadays, there is no so huge hype around cloud computing as it was several years ago. On the other hand, cloud development is a robust part of IT industry with its own history and trends. For now, Software as a Service is not just about launching the code in the cloud and scale it in real time. Most Cloud users deploy code weekly or even daily, there are questions on Testing/QA processes, Production/Deployment workflows and more strong software security approaches. Elasticity of cloud structure the key factor to implement Big Data project in the cloud, as well as, storage, analytics and batch processing application. Large companies want more control on their Software as a Service solutions. They can build their own cloud infrastructure based on one of open source solutions. Small teams rather use well-known public clouds.
Cloud development principles
A lot of projects are moving to the cloud these days. Developers face a common set of challenges. There are basic principles to achieve the best results. Document architecture and deployment infrastructure. Designed solution should be highly cohesive and loosely coupled.
Nowadays, there are a lot of businesses and startups are growing up in the form of Software as a Service (SaaS). Recently, Facebook giant bought Parse [http://parse.com] innovative startup in this field. Parse is a back-end as a service. It is not a ready to use product for the concrete client, but a service for software developers that can help a lot. It can speed up the development process and reduce costs, as it solves the problem with back-end or server side in the most cases the project needs. Parse fits to a demo or a prototype ideally, because the main goal here is to build first working version as soon as possible with minimum resources.
The bright news from SaaS brought by Oracle, SAP and Salesforce.com are ready to be announced.SaaS generally means Software as a Service, so the SaaS solutions are naturally based on all kinds of software, which periodically undergo series of significant shifts. It’s time to have a close look at SaaS companies and their trends.
The SaaS market just cannot be discussed without covering the largest independent player of the field – the brilliant Salesforce.com.in order to succeed in the social collaboration, the company has to generate a handful of its own news on the regular basis. It currently obtains CRM, customer service as well as the software for the application development for SaaS companies. They might offer something brand new to their customers pretty soon.
We could see the same picture with Work.com and its application for employee performance management that was offered last year.