Now Reading
Open Source Tools & Framework: Microservices Perspective

Open Source Tools & Framework: Microservices Perspective

computer programme


computer programme

This article initially provides an overview of open-source framework and tools that are leveraged as part of a transformation journey. This article initially provides a brief overview of open source tools and frameworks and then provides the advantages and disadvantages of such tools. Later it describes for various domains which are all the components and tools available in the market. This section also provides the tool of choice or the top tool that’s available from different alternatives that are available in today.  These papers will assist various experts to understand different tools that are available and which tool can be leveraged in the context of the microservices architecture transformation journey. 



Open Source Development

Separating the hype from reality isn’t easy when it comes to Open Source. Not only has it become the technological buzzword, but it has also become the epicentre of a great deal of controversy: from copyright laws and intellectual property debates to freedom of speech and arguments about free-market competition. The open-source market has evolved swiftly, first by going through a phase of consolidation and now by entering a phase of commoditization. This second phase has been driven largely by the fact that in order to show value, application server vendors can no longer rely on their core application server. This has created a market of value-added offerings, particularly in the area of development tools and development productivity. Many Open Source tools and frameworks listed in this paper are in this category.

Open Source is also changing the way programming is being studied in universities around the world; new generations of programmers leaving academia and entering the workplace have either used or contributed to Open Source. Students nowadays can learn by examining enterprise-level software that displays contributions from a great many sources from around the world.

At corporate IT departments worldwide, programmers are rallying behind Open Source projects like Ant, JUnit, Tomcat, and JBoss. Though the battle for the acceptance of Open Source has been largely fought at the level of the programmer and middle management, upper management, given the recent impact of Linux on corporations, is beginning to see the many advantages of Open Source, especially in the area of enterprise Java. Organizations seeking to reduce software development expenses have found that Open Source software (OSS) provides a lower cost of ownership when compared to commercial offerings, primarily because Open Source software is free, both in price and restrictions. 

Many organizations are using Open Source projects to varying degrees in daily development. Some organizations use Open Source only during the development phases so that it doesn’t affect any production environment. These organizations might use Open Source for building, unit testing, or integrated development environments (IDE). Organizations may also use Open Source libraries as a form of reuse for activities such as logging and XML parsing. Open Source application servers and web containers can be leveraged to provide the infrastructure. Organizations using Open Source are discovering there are some compelling reasons for using Open Source besides the financial benefits. Unfortunately, these organizations are also discovering that there are some disadvantages as well.

cartoon analytics

Advantages

The most obvious and compelling reason to use Open Source is the initial lower cost of ownership. Organizations are free to copy and distribute software to multiple developers and users. Consider an application with an installed base of 100 users and a 10-person development team using a $500 licensed commercial product. This would total $55,000 in expenses. With Open Source products the organization could immediately eliminate the large expense and increase the install base without incurring additional expenses. Other financial benefits can be realized as well. Because Open Source is free to copy, the expense of license management isn’t incurred. In addition, legal departments only have to review and approve an Open Source license once for all projects using that license rather than each time for each commercial product license. Using popular Open Source projects can reduce training expenses by providing a larger resource pool. Developers can be hired from outside the company with existing knowledge of Open Source frameworks. It’s often difficult to hire developers that have knowledge of a proprietary commercial framework. Industry support is another reason to consider Open Source. Many major companies such as IBM, Oracle, Microsoft, and SAP are using Open Source projects. These organizations have a vested interest in the project’s success because their products rely on the framework. Contributors to the Open Source projects aren’t necessarily the independent programmers writing code in their spare time anymore.

Many of these large companies have departments dedicated to Open Source. In addition, many of the Open Source projects such as Eclipse, NetBeans, and Tomcat were initially donated by large corporate backers. Consider the use of Open Source as a means of expanding your development team to include some of the best resources from all around the world. Access to the source is an important advantage of Open Source. The source code is the only 100% –accurate documentation. JavaDocs, marketing material, architectural diagrams, and instructions often aren’t kept up to date. 

Open Source projects are more agile than commercial products in their evolution. Often Open Source projects have shorter release cycles than their commercial counterparts, if for no other reason than the fact that most projects provide nightly snapshots or direct access to the source code repository. In addition, organizations don’t have to wait for a vendor’s next release to get a bug fixed. Having source code provides a means for the organization to fix the bug itself. Organizations willing to contribute to Open Source projects can also have an influence on the future direction of the project. Unlike proprietary development, Open Source has the advantage of being reviewed and tested by potentially hundreds or thousands of users. Unit and regression testing is an important part of software quality. Open Source projects such as the Jakarta Commons project requires that JUnit tests be available and passed before version releases. Having access to JUnit tests can reduce risks by providing means of testing new releases against the unit tests of the currently utilized release. The results of the tests can be used as a risk management tool to determine the impact of an upgrade on a project. Open Source can contribute to an individual’s career development. Developers can use the source code to learn new techniques or APIs. Open Source can also lower the barriers of entry by allowing for more economical means of evaluating new technologies. For inexperienced Java developers, contributing to an Open Source project may be a way of demonstrating knowledge to an employer or potential employer. It’s common for developers to evaluate a technology and prototype proof-of-concept applications using an Open Source project as a development environment while deploying on a commercial platform for production use.

See Also

Disadvantages

Open Source projects may have been documented poorly. In addition, Open Source software usually may not have a recognized company behind it to provide support, whether it’s free or paid for. These disadvantages are changing though. A new market has grown up around Open Source to provide quality documentation and support—for a price. In addition, many of the projects have active newsgroups or forums that can be effectively used to troubleshoot an Open Source application.

Open Source projects can also be plagued with backwards-compatibility problems. Open Source projects don’t take backward compatibility into consideration as much as commercial organizations. Yet, at the same time, Open Source projects tend to be more daring when it comes to innovation and trying radically different ways to approach a problem.

The biggest disadvantage of Open Source is the lack of marketing dollars. Often, organizations aren’t aware of the existence of an Open Source project or how it might apply. Open Source projects typically don’t have conference booths, magazine advertisements, or salespeople explaining the problems they can solve. Open Source projects also depend on the enthusiasm and number of collaborators as well as the areas that their efforts are focused on. For example, lack of documentation and administrative tools is a common complaint with regards to Open Source projects. 

This brings to mind the successful emergence of Open Source projects with heavy commercial backers such as the Eclipse project, which is backed by IBM and thus has very good documentation given the resources available, namely, IBM staff technical writers and editors.

# Domain/Tier Component Tools/Framework Alternatives Top – Framework/Tool Software Vendor Link
1 Infrastructure Operating System Centos, CoreOS, Alpine, ubuntu, Linux Redhat Linux Redhat https://www.redhat.com/en/technologies/linux-platforms/enterprise-linux
2 Virtualization VMWare ESX, RedHat, Microsofft Hyer-V, Citrix Hypervisor, Nutanix Acropolis, IBM PowerVM VMWare ESX VMware https://www.vmware.com/in/products/esxi-and-esx.html
3 Containerized Platform Redhat OpenShift, MS Azure, AWS, IBM Cloud Private, Oracle Cloud OpenShift Redhat https://www.openshift.com/
4 Cloud Infrastructure Management IBM Cloud Automation Manager, OpenStack, Apache CloudStack, Eucalyptus cloud platform, Cloud Foundry Apache CloudStack Apache https://cloudstack.apache.org/
5 Platform Container Orchestration Kubernetes, MESOS, Prometheus, Flocker, Mesosphere DC/OS, Helios Kubernetes Google https://cloud.google.com/kubernetes-engine/
6 Container Docker, Rocket, OSv, Microsoft Containers, Solaris Containers Docker IBM https://www.ibm.com/cloud/garage/content/course/containers-and-docker/2
7 Application Runtime Open JDK, Oracle JDK, IBM JDK, Red Hat for Windows, AdoptOpenJDK Open JDK Oracle Corporation, Red Hat, IBM, Apple, SAP https://www.oracle.com/technetwork/java/javase/community/opensourcejdk-jsp-136417.html
8 Application Web Container Apache Tomcat, WebSphere Liberty, Wildfly, TomEE, Payara Apache Tomcat Apache http://tomcat.apache.org/
9 Application Microservices Realization Language Java, Python, R, C# Java Oracle https://www.oracle.com/in/java/
10 Microservices framework Spring Boot, Spring Cloud, Java Liberty, Microprofile, Java EE, Angular UI/JS Spring Apache https://spring.io/projects/spring-framework
11 Documentation Swagger, Readme.io, Apiary, Gelato.io, Stoplight.io Swagger SmartBear Software https://smartbear.com/news/news-releases/sponsorship-of-swagger/
12 Service Registration & Discovery Eureka, Consul, Istio, Zookeeper, Etcd, DNS Istio Google, IBM, and Lyft https://istio.io/docs/setup/kubernetes/
13 DevOps Continous Planning IBM Rational Team Concert, IBM Rational DOORS® Next Generation, Collaborative Lifecycle Management as a service (CLMaaS),JIRA, Kanboard.net, Confluence JIRA Atlassian https://www.atlassian.com/software/jira
14 Continous Integration & Collaborative Development Rational Collaboration Lifecycle Management, Rational Lifecycle Integration Adapter,, IBM Worklight Studio, IBM UrbanCode Build, Git, Jenkins, Gerrit, Bugzilla,Maven, Gradle Jenkins Jenkins https://jenkins.io/
15 Continous Testing Highly Available Test Chassis (HATC), Delphix (Database Virtualization), Selenium, JUnit, Cucumber, Selenium, JMeter, SOAP UI Junit Apache https://ant.apache.org/manual/Tasks/junit.html
16 Continous Release & Deployment IBM UrbanCode Deploy with Patterns, IBM UrbanCode Release, Chef, Puppet, Juju, Docker, Ansible, Salt Ansible Redhat https://www.redhat.com/en/technologies/management/ansible
17 Configuration Management Spring Cloud Config, Subversion, GIT, Apache ZooKeeper, etcd, Netflix archaius, Consul, JIRA JIRA Insights Atlassian https://www.atlassian.com/software/jira
18 Continous Monitoring / Alerting Graphite, Graphana, Collectd, AWS CloudWatch/Alarms, AppDynamics, NewRelic, SmartCloud Application Performance Management (APM), IBM Service Engage, Nagios, Nmon, Cacti, Logstash, Fluentd, New Relic,Prometheus, Nagios Graphana Apache https://grafana.com/dashboards/3611
19 Continous Feedback & Optimization IBM Tealeaf Customer Behavior Analysis, IBM Digital Analytics, Mobile First Quality Assurance, Open Web Analytics (OWA), Webalizer, W3Perl Open Web Analytics (OWA) Peter Adams http://www.openwebanalytics.com/
20 Security Application Security Spring Cloud Security, HTTP Basic, OAuth2, JSON Web Tokens, Digital Certificates,Spring Security, Splunk Spring Apache https://spring.io/projects/spring-framework
21 Data Security SecureSphere WAF, SecureSphere Data Security, Oracle Advance Security, Elastic Search X-Pack SecureSphere Data Security Imperva https://www.imperva.com/resources/resource-library/datasheets/securesphere-database-security/
22 IAM Microsoft Forefront Identity Manager, Microsoft Active Directory, RSA SecurID, Microsoft PKI Microsoft Forefront Identity Manager, Microsoft https://blogs.technet.microsoft.com/iamsupport/tag/forefront-identity-manager
23 Common Logging ELK Stack – Elastic Search, LogStash, Kibana, Splunk, Logly, SumoLogic, AWS CloudWatch/Logs, Logentries, IBM Cloud Log Analysis, Others, Nagios, Prometheus Elasticsearch Elastic NV https://www.elastic.co/
24 Event Visualization ELK Stack Logstash, Elastic Search, Kibana Kibana Apache https://www.elastic.co/products/kibana
25 Assets & Accelerators Microservices Generator – Microclimate, Spring Initializr, IBM Cloud Developer tools or IBM Cloud UI, Wildfly Swarm Project Generator, Liberty app accelerator Microclimate IBM https://www.ibm.com
26 Search Engine Elasticsearch, Apache Solr, Lucene, Sphinx, Xapian, Indri Elasticsearch Elastic NV https://www.elastic.co/
27 Integration Messaging Bus Message Hub (on prem – not there), Confluent, Apache Kafka server. Supported in Spring Cloud Stream,RabbitMQ, Apache Qpid9, Red Hat Enterprise MRG, ActiveMQ, IBM MQ, IBM Integration Bus, IBM DataPower Gateway Apache Kafka Apache https://kafka.apache.org/
28 API Gateway Spring Cloud Gateway, API Connect, Tyk, Amazon AWS API Gateway, Kong, Express Gateway, API Manager Spring Apache https://spring.io/projects/spring-framework
29 Orchestration IBM Event Streams, Apache Flink, jBPM jBPM Redhat https://developers.redhat.com/products/rhpam/overview/
30 Database OLTP PostgreSQL, MariaDB, SQLite, MySQL PostgreSQL PostgreSQL https://www.postgresql.org/
31 ETL JasperSoft ETL, Oracle ODI, Pentaho Kettle, CloverETL JasperSoft ETL TIBCO https://www.jaspersoft.com/data-integration
32 Object Relationship Mapper Hibernate, EclipseLink, Apache OpenJPA, Spring Data Hibernate Redhat https://hibernate.org/
33 Real time Data Integration / Replication Oracle Golden Gate, Oracle Data Guard, IBM InfoSphere, iWay Software, Microsoft SQL Server Integration Services, OpenText, Alooma, Confluent, SnapLogic Confluent Confluent https://www.confluent.io/
34 BI and Dashboarding BIRT, JasperReport Pentaho, SpagoBI, KNIME, ReportServer, Seal Report JasperReport TIBCO https://community.jaspersoft.com/project/jasperreports-library

Enjoyed this story? Join our Telegram group. And be part of an engaging community.


Provide your comments below

comments

What's Your Reaction?
Excited
0
Happy
0
In Love
0
Not Sure
0
Silly
0
Scroll To Top