Open Source Tools & Framework: Microservices Perspective

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.

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/TierComponentTools/Framework AlternativesTop – Framework/ToolSoftware VendorLink
1InfrastructureOperating SystemCentos, CoreOS, Alpine, ubuntu, LinuxRedhat LinuxRedhathttps://www.redhat.com/en/technologies/linux-platforms/enterprise-linux
2VirtualizationVMWare ESX, RedHat, Microsofft Hyer-V, Citrix Hypervisor, Nutanix Acropolis, IBM PowerVMVMWare ESXVMwarehttps://www.vmware.com/in/products/esxi-and-esx.html
3Containerized PlatformRedhat OpenShift, MS Azure, AWS, IBM Cloud Private, Oracle CloudOpenShiftRedhathttps://www.openshift.com/
4Cloud Infrastructure ManagementIBM Cloud Automation Manager, OpenStack, Apache CloudStack, Eucalyptus cloud platform, Cloud FoundryApache CloudStackApachehttps://cloudstack.apache.org/
5PlatformContainer OrchestrationKubernetes, MESOS, Prometheus, Flocker, Mesosphere DC/OS, HeliosKubernetesGooglehttps://cloud.google.com/kubernetes-engine/
6ContainerDocker, Rocket, OSv, Microsoft Containers, Solaris ContainersDockerIBMhttps://www.ibm.com/cloud/garage/content/course/containers-and-docker/2
7Application RuntimeOpen JDK, Oracle JDK, IBM JDK, Red Hat for Windows, AdoptOpenJDKOpen JDKOracle Corporation, Red Hat, IBM, Apple, SAPhttps://www.oracle.com/technetwork/java/javase/community/opensourcejdk-jsp-136417.html
8Application Web ContainerApache Tomcat, WebSphere Liberty, Wildfly, TomEE, PayaraApache TomcatApachehttp://tomcat.apache.org/
9ApplicationMicroservices Realization LanguageJava, Python, R, C#JavaOraclehttps://www.oracle.com/in/java/
10Microservices frameworkSpring Boot, Spring Cloud, Java Liberty, Microprofile, Java EE, Angular UI/JSSpringApachehttps://spring.io/projects/spring-framework
11DocumentationSwagger, Readme.io, Apiary, Gelato.io, Stoplight.ioSwaggerSmartBear Softwarehttps://smartbear.com/news/news-releases/sponsorship-of-swagger/
12Service Registration & DiscoveryEureka, Consul, Istio, Zookeeper, Etcd, DNSIstioGoogle, IBM, and Lyfthttps://istio.io/docs/setup/kubernetes/
13DevOpsContinous PlanningIBM Rational Team Concert, IBM Rational DOORS® Next Generation, Collaborative Lifecycle Management as a service (CLMaaS),JIRA, Kanboard.net, ConfluenceJIRAAtlassianhttps://www.atlassian.com/software/jira
14Continous Integration & Collaborative DevelopmentRational Collaboration Lifecycle Management, Rational Lifecycle Integration Adapter,, IBM Worklight Studio, IBM UrbanCode Build, Git, Jenkins, Gerrit, Bugzilla,Maven, GradleJenkinsJenkinshttps://jenkins.io/
15Continous TestingHighly Available Test Chassis (HATC), Delphix (Database Virtualization), Selenium, JUnit, Cucumber, Selenium, JMeter, SOAP UIJunitApachehttps://ant.apache.org/manual/Tasks/junit.html
16Continous Release & DeploymentIBM UrbanCode Deploy with Patterns, IBM UrbanCode Release, Chef, Puppet, Juju, Docker, Ansible, SaltAnsibleRedhathttps://www.redhat.com/en/technologies/management/ansible
17Configuration ManagementSpring Cloud Config, Subversion, GIT, Apache ZooKeeper, etcd, Netflix archaius, Consul, JIRAJIRA InsightsAtlassianhttps://www.atlassian.com/software/jira
18Continous Monitoring / AlertingGraphite, Graphana, Collectd, AWS CloudWatch/Alarms, AppDynamics, NewRelic, SmartCloud Application Performance Management (APM), IBM Service Engage, Nagios, Nmon, Cacti, Logstash, Fluentd, New Relic,Prometheus, NagiosGraphanaApachehttps://grafana.com/dashboards/3611
19Continous Feedback & OptimizationIBM Tealeaf Customer Behavior Analysis, IBM Digital Analytics, Mobile First Quality Assurance, Open Web Analytics (OWA), Webalizer, W3PerlOpen Web Analytics (OWA)Peter Adamshttp://www.openwebanalytics.com/
20SecurityApplication SecuritySpring Cloud Security, HTTP Basic, OAuth2, JSON Web Tokens, Digital Certificates,Spring Security, SplunkSpringApachehttps://spring.io/projects/spring-framework
21Data SecuritySecureSphere WAF, SecureSphere Data Security, Oracle Advance Security, Elastic Search X-PackSecureSphere Data SecurityImpervahttps://www.imperva.com/resources/resource-library/datasheets/securesphere-database-security/
22IAMMicrosoft Forefront Identity Manager, Microsoft Active Directory, RSA SecurID, Microsoft PKIMicrosoft Forefront Identity Manager,Microsofthttps://blogs.technet.microsoft.com/iamsupport/tag/forefront-identity-manager
23CommonLoggingELK Stack – Elastic Search, LogStash, Kibana, Splunk, Logly, SumoLogic, AWS CloudWatch/Logs, Logentries, IBM Cloud Log Analysis, Others, Nagios, PrometheusElasticsearchElastic NVhttps://www.elastic.co/
24Event VisualizationELK Stack Logstash, Elastic Search, KibanaKibanaApachehttps://www.elastic.co/products/kibana
25Assets & AcceleratorsMicroservices Generator – Microclimate, Spring Initializr, IBM Cloud Developer tools or IBM Cloud UI, Wildfly Swarm Project Generator, Liberty app acceleratorMicroclimateIBMhttps://www.ibm.com
26Search EngineElasticsearch, Apache Solr, Lucene, Sphinx, Xapian, IndriElasticsearchElastic NVhttps://www.elastic.co/
27IntegrationMessaging BusMessage 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 GatewayApache KafkaApachehttps://kafka.apache.org/
28API GatewaySpring Cloud Gateway, API Connect, Tyk, Amazon AWS API Gateway, Kong, Express Gateway, API ManagerSpringApachehttps://spring.io/projects/spring-framework
29OrchestrationIBM Event Streams, Apache Flink, jBPMjBPMRedhathttps://developers.redhat.com/products/rhpam/overview/
30DatabaseOLTPPostgreSQL, MariaDB, SQLite, MySQLPostgreSQLPostgreSQLhttps://www.postgresql.org/
31ETLJasperSoft ETL, Oracle ODI, Pentaho Kettle, CloverETLJasperSoft ETLTIBCOhttps://www.jaspersoft.com/data-integration
32Object Relationship MapperHibernate, EclipseLink, Apache OpenJPA, Spring DataHibernateRedhathttps://hibernate.org/
33Real time Data Integration / ReplicationOracle Golden Gate, Oracle Data Guard, IBM InfoSphere, iWay Software, Microsoft SQL Server Integration Services, OpenText, Alooma, Confluent, SnapLogicConfluentConfluenthttps://www.confluent.io/
34BI and DashboardingBIRT, JasperReport Pentaho, SpagoBI, KNIME, ReportServer, Seal ReportJasperReportTIBCOhttps://community.jaspersoft.com/project/jasperreports-library
Source : https://www.analyticsindiamag.com/open-source-tools-framework-microservices-perspective/

Post a Comment

0 Comments